diff --git a/DEVELOPING.md b/DEVELOPING.md
index 3e0a1516ef..1d46c0a318 100644
--- a/DEVELOPING.md
+++ b/DEVELOPING.md
@@ -35,10 +35,11 @@ Our monorepo comes with few preconfigured
1. Open root folder of this repo in VS Code.
2. Install lerna globally `npm i -g lerna`
3. Run `lerna bootstrap`
-4. Create .env files for all the micro service packages.
-5. Run DB migrations using `lerna run db:migrate`.
-6. Build all microservices in one go - `lerna run build`.
-7. Run `lerna run start` to start all the micro services in one go.
+4. Run `npm i`
+5. Create .env files for all the micro service packages.
+6. Run DB migrations using `lerna run db:migrate`.
+7. Build all microservices in one go - `lerna run build`.
+8. Run `lerna run start` to start all the micro services in one go.
## Building the project
diff --git a/README.md b/README.md
index d0df27621a..70d9b10c52 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,11 @@
-# loopback4-microservice-catalog
+# Sourceloop
[![LoopBack](https://github.com/strongloop/loopback-next/raw/master/docs/site/imgs/branding/Powered-by-LoopBack-Badge-(blue)-@2x.png)](http://loopback.io/)
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lerna.js.org/)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
-The `loopback4-microservice-catalog` is a collection of pre-built microservices that aim to reduce time to market for Enterprise projects. Large enterprises usually face a similar set of challenges when developing cloud native platforms as part of digital transformation efforts or the creation of new products. The services are implemented as [LoopBack Extensions](https://loopback.io/doc/en/lb4/Extending-LoopBack-4.html), allowing you to install them into existing LoopBack applications or use the [LoopBack Command-line interface](https://loopback.io/doc/en/lb4/Command-line-interface.html) to generate standalone services. Our recommended approach is to deploy these services as standalone micro-services in Docker.
+The `Sourceloop` is a collection of pre-built microservices that aim to reduce time to market for Enterprise projects. Large enterprises usually face a similar set of challenges when developing cloud native platforms as part of digital transformation efforts or the creation of new products. The services are implemented as [LoopBack Extensions](https://loopback.io/doc/en/lb4/Extending-LoopBack-4.html), allowing you to install them into existing LoopBack applications or use the [LoopBack Command-line interface](https://loopback.io/doc/en/lb4/Command-line-interface.html) to generate standalone services. Our recommended approach is to deploy these services as standalone micro-services in Docker.
The current catalog consists of the following services:
@@ -28,7 +28,7 @@ This repository also contains a set of example projects in the [sandbox](sandbox
## Table of Contents
-- [loopback4-microservice-catalog](#loopback4-microservice-catalog)
+- [Sourceloop](#Sourceloop)
* [Table of Contents](#table-of-contents)
+ [Long Term Support](#long-term-support)
+ [Documentation](#documentation)
@@ -212,15 +212,15 @@ You can now run the example service with `npm start`.
### DataSources and Migrations
-The `loopback4-microservice-catalog` can support any Loopback 4 [DataSource](https://loopback.io/doc/en/lb4/DataSource.html). While you may see existing `DataSource`s and [Database Migrations](https://loopback.io/doc/en/lb4/Database-migrations.html#overview), it is not mandatory to use them.
+The `Sourceloop` can support any Loopback 4 [DataSource](https://loopback.io/doc/en/lb4/DataSource.html). While you may see existing `DataSource`s and [Database Migrations](https://loopback.io/doc/en/lb4/Database-migrations.html#overview), it is not mandatory to use them.
### Production Deployment
-Inside of the `sandbox` folder, you will find example applications and Dockerfiles for each application. The `loopback4-microservice-catalog` is agnostic of the Docker deployment strategy. Deploy the services into the platform of your choice.
+Inside of the `sandbox` folder, you will find example applications and Dockerfiles for each application. The `Sourceloop` is agnostic of the Docker deployment strategy. Deploy the services into the platform of your choice.
### Related Projects
-The `loopback4-microservice-catalog` utilizes many extensions created by SourceFuse.
+The `Sourceloop` utilizes many extensions created by SourceFuse.
* [sourcefuse/loopback4-ratelimiter: A rate limiting extension for loopback4 applications (github.com)](https://github.com/sourcefuse/loopback4-ratelimiter)
* [sourcefuse/loopback4-notifications: An extension for setting up various notification mechanisms in loopback4 application, vis-a-vis, Push notification, SMS notification, Email notification (github.com)](https://github.com/sourcefuse/loopback4-notifications)
@@ -234,7 +234,7 @@ The `loopback4-microservice-catalog` utilizes many extensions created by SourceF
### Feedback
-If you've noticed a bug or have a question or have a feature request, [search the issue tracker]([Issues · sourcefuse/loopback4-microservice-catalog · GitHub](https://github.com/sourcefuse/loopback4-microservice-catalog/issues)) to see if someone else in the community has already created a ticket. If not, go ahead and [make one](https://github.com/sourcefuse/loopback4-microservice-catalog/issues/new/choose)! All feature requests are welcome. Implementation time may vary. Feel free to contribute the same, if you can. If you think this extension is useful, please [star](https://help.github.com/en/articles/about-stars) it. Appreciation really helps in keeping this project alive.
+If you've noticed a bug or have a question or have a feature request, [search the issue tracker]([Issues · sourcefuse/loopback4-microservices-catalog · GitHub](https://github.com/sourcefuse/loopback4-microservice-catalog/issues)) to see if someone else in the community has already created a ticket. If not, go ahead and [make one](https://github.com/sourcefuse/loopback4-microservice-catalog/issues/new/choose)! All feature requests are welcome. Implementation time may vary. Feel free to contribute the same, if you can. If you think this extension is useful, please [star](https://help.github.com/en/articles/about-stars) it. Appreciation really helps in keeping this project alive.
### Contributing
diff --git a/sandbox/audit-ms-example/README.md b/sandbox/audit-ms-example/README.md
index 29cbee5a13..3acf7d04ba 100644
--- a/sandbox/audit-ms-example/README.md
+++ b/sandbox/audit-ms-example/README.md
@@ -1,3 +1,7 @@
# auth-multitenant-example
[![LoopBack](https://github.com/strongloop/loopback-next/raw/master/docs/site/imgs/branding/Powered-by-LoopBack-Badge-(blue)-@2x.png)](http://loopback.io/)
+
+#### API Details
+
+Visit the [OpenAPI spec docs](./openapi.md)
\ No newline at end of file
diff --git a/sandbox/audit-ms-example/openapi.md b/sandbox/audit-ms-example/openapi.md
new file mode 100644
index 0000000000..c11eb415a9
--- /dev/null
+++ b/sandbox/audit-ms-example/openapi.md
@@ -0,0 +1,1477 @@
+---
+title: Audit Service v1.0.0
+language_tabs:
+ - "'javascript": JavaScript
+ - "'javascript--nodejs": Node.JS'
+language_clients:
+ - "'javascript": request'
+ - "'javascript--nodejs": ""
+toc_footers: []
+includes: []
+search: false
+highlight_theme: darkula
+headingLevel: 2
+
+---
+
+
+
+
Audit Service v1.0.0
+
+> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
+
+An audit microservice example
+
+Base URLs:
+
+* http://localhost:3000
+
+# Authentication
+
+- HTTP Authentication, scheme: bearer
+
+AuditController
+
+## AuditController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/audit-logs/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /audit-logs/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuditLog model count|[loopback.Count](#schemaloopback.count)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuditController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/audit-logs/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /audit-logs/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[audit_logs.Filter](#schemaaudit_logs.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "id": "string",
+ "action": "string",
+ "actedAt": "2019-08-24T14:15:22Z",
+ "actedOn": "string",
+ "actionKey": "string",
+ "entityId": "string",
+ "actor": "string",
+ "before": {},
+ "after": {},
+ "actionGroup": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuditLog model instance|[AuditLogWithRelations](#schemaauditlogwithrelations)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuditController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "action": "string",
+ "actedAt": "2019-08-24T14:15:22Z",
+ "actedOn": "string",
+ "actionKey": "string",
+ "entityId": "string",
+ "actor": "string",
+ "before": {},
+ "after": {},
+ "actionGroup": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/audit-logs',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /audit-logs`
+
+> Body parameter
+
+```json
+{
+ "action": "string",
+ "actedAt": "2019-08-24T14:15:22Z",
+ "actedOn": "string",
+ "actionKey": "string",
+ "entityId": "string",
+ "actor": "string",
+ "before": {},
+ "after": {},
+ "actionGroup": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewAuditLog](#schemanewauditlog)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "id": "string",
+ "action": "string",
+ "actedAt": "2019-08-24T14:15:22Z",
+ "actedOn": "string",
+ "actionKey": "string",
+ "entityId": "string",
+ "actor": "string",
+ "before": {},
+ "after": {},
+ "actionGroup": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuditLog model instance|[AuditLog](#schemaauditlog)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuditController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/audit-logs',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /audit-logs`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[audit_logs.Filter1](#schemaaudit_logs.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "id": "string",
+ "action": "string",
+ "actedAt": "2019-08-24T14:15:22Z",
+ "actedOn": "string",
+ "actionKey": "string",
+ "entityId": "string",
+ "actor": "string",
+ "before": {},
+ "after": {},
+ "actionGroup": "string"
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of AuditLog model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[AuditLogWithRelations](#schemaauditlogwithrelations)]|false|none|[(tsType: AuditLogWithRelations, schemaOptions: { includeRelations: true })]|
+|» AuditLogWithRelations|[AuditLogWithRelations](#schemaauditlogwithrelations)|false|none|(tsType: AuditLogWithRelations, schemaOptions: { includeRelations: true })|
+|»» id|string|false|none|none|
+|»» action|string|true|none|none|
+|»» actedAt|string(date-time)|true|none|none|
+|»» actedOn|string|false|none|none|
+|»» actionKey|string|true|none|none|
+|»» entityId|string|true|none|none|
+|»» actor|string|true|none|none|
+|»» before|object|false|none|none|
+|»» after|object|false|none|none|
+|»» actionGroup|string|false|none|none|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+ToDoController
+
+## ToDoController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/to-dos/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /to-dos/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ToDo model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## ToDoController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/to-dos/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /to-dos/{id}`
+
+> Body parameter
+
+```json
+{
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[ToDo](#schematodo)|false|none|
+
+> Example responses
+
+> 204 Response
+
+```json
+null
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|No Content|Inline|
+
+Response Schema
+
+Status Code **204**
+
+*ToDo PUT success*
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+
+
+This operation does not require authentication
+
+
+## ToDoController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/to-dos/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /to-dos/{id}`
+
+> Body parameter
+
+```json
+{
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[ToDoPartial](#schematodopartial)|false|none|
+
+> Example responses
+
+> 204 Response
+
+```json
+null
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|No Content|Inline|
+
+Response Schema
+
+Status Code **204**
+
+*ToDo PATCH success*
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+
+
+This operation does not require authentication
+
+
+## ToDoController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/to-dos/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /to-dos/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[ToDo.Filter](#schematodo.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ToDo model instance|[ToDoWithRelations](#schematodowithrelations)|
+
+
+This operation does not require authentication
+
+
+## ToDoController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/to-dos/{id}',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /to-dos/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+> Example responses
+
+> 204 Response
+
+```json
+null
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|No Content|Inline|
+
+Response Schema
+
+Status Code **204**
+
+*ToDo DELETE success*
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+
+
+This operation does not require authentication
+
+
+## ToDoController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/to-dos',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /to-dos`
+
+> Body parameter
+
+```json
+{
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewToDo](#schemanewtodo)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ToDo model instance|[ToDo](#schematodo)|
+
+
+This operation does not require authentication
+
+
+## ToDoController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/to-dos',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /to-dos`
+
+> Body parameter
+
+```json
+{
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[ToDoPartial](#schematodopartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ToDo PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## ToDoController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/to-dos',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /to-dos`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[ToDo.Filter1](#schematodo.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of ToDo model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[ToDoWithRelations](#schematodowithrelations)]|false|none|[(tsType: ToDoWithRelations, schemaOptions: { includeRelations: true })]|
+|» ToDoWithRelations|[ToDoWithRelations](#schematodowithrelations)|false|none|(tsType: ToDoWithRelations, schemaOptions: { includeRelations: true })|
+|»» id|string|false|none|none|
+|»» title|string|true|none|none|
+|»» description|string|true|none|none|
+|»» items|[string]|false|none|none|
+
+
+This operation does not require authentication
+
+
+# Schemas
+
+AuditLog
+
+
+
+
+
+
+```json
+{
+ "id": "string",
+ "action": "string",
+ "actedAt": "2019-08-24T14:15:22Z",
+ "actedOn": "string",
+ "actionKey": "string",
+ "entityId": "string",
+ "actor": "string",
+ "before": {},
+ "after": {},
+ "actionGroup": "string"
+}
+
+```
+
+AuditLog
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|id|string|false|none|none|
+|action|string|true|none|none|
+|actedAt|string(date-time)|true|none|none|
+|actedOn|string|false|none|none|
+|actionKey|string|true|none|none|
+|entityId|string|true|none|none|
+|actor|string|true|none|none|
+|before|object|false|none|none|
+|after|object|false|none|none|
+|actionGroup|string|false|none|none|
+
+NewAuditLog
+
+
+
+
+
+
+```json
+{
+ "action": "string",
+ "actedAt": "2019-08-24T14:15:22Z",
+ "actedOn": "string",
+ "actionKey": "string",
+ "entityId": "string",
+ "actor": "string",
+ "before": {},
+ "after": {},
+ "actionGroup": "string"
+}
+
+```
+
+NewAuditLog
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|action|string|true|none|none|
+|actedAt|string(date-time)|true|none|none|
+|actedOn|string|false|none|none|
+|actionKey|string|true|none|none|
+|entityId|string|true|none|none|
+|actor|string|true|none|none|
+|before|object|false|none|none|
+|after|object|false|none|none|
+|actionGroup|string|false|none|none|
+
+AuditLogWithRelations
+
+
+
+
+
+
+```json
+{
+ "id": "string",
+ "action": "string",
+ "actedAt": "2019-08-24T14:15:22Z",
+ "actedOn": "string",
+ "actionKey": "string",
+ "entityId": "string",
+ "actor": "string",
+ "before": {},
+ "after": {},
+ "actionGroup": "string"
+}
+
+```
+
+AuditLogWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|id|string|false|none|none|
+|action|string|true|none|none|
+|actedAt|string(date-time)|true|none|none|
+|actedOn|string|false|none|none|
+|actionKey|string|true|none|none|
+|entityId|string|true|none|none|
+|actor|string|true|none|none|
+|before|object|false|none|none|
+|after|object|false|none|none|
+|actionGroup|string|false|none|none|
+
+ToDo
+
+
+
+
+
+
+```json
+{
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+
+```
+
+ToDo
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|id|string|false|none|none|
+|title|string|true|none|none|
+|description|string|true|none|none|
+|items|[string]|false|none|none|
+
+NewToDo
+
+
+
+
+
+
+```json
+{
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+
+```
+
+NewToDo
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|title|string|true|none|none|
+|description|string|true|none|none|
+|items|[string]|false|none|none|
+
+ToDoWithRelations
+
+
+
+
+
+
+```json
+{
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+
+```
+
+ToDoWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|id|string|false|none|none|
+|title|string|true|none|none|
+|description|string|true|none|none|
+|items|[string]|false|none|none|
+
+ToDoPartial
+
+
+
+
+
+
+```json
+{
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+
+```
+
+ToDoPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|id|string|false|none|none|
+|title|string|false|none|none|
+|description|string|false|none|none|
+|items|[string]|false|none|none|
+
+loopback.Count
+
+
+
+
+
+
+```json
+{
+ "count": 0
+}
+
+```
+
+loopback.Count
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|count|number|false|none|none|
+
+audit_logs.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "id": true,
+ "action": true,
+ "actedAt": true,
+ "actedOn": true,
+ "actionKey": true,
+ "entityId": true,
+ "actor": true,
+ "before": true,
+ "after": true,
+ "actionGroup": true
+ }
+}
+
+```
+
+audit_logs.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» id|boolean|false|none|none|
+|»» action|boolean|false|none|none|
+|»» actedAt|boolean|false|none|none|
+|»» actedOn|boolean|false|none|none|
+|»» actionKey|boolean|false|none|none|
+|»» entityId|boolean|false|none|none|
+|»» actor|boolean|false|none|none|
+|»» before|boolean|false|none|none|
+|»» after|boolean|false|none|none|
+|»» actionGroup|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+audit_logs.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "id": true,
+ "action": true,
+ "actedAt": true,
+ "actedOn": true,
+ "actionKey": true,
+ "entityId": true,
+ "actor": true,
+ "before": true,
+ "after": true,
+ "actionGroup": true
+ }
+}
+
+```
+
+audit_logs.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» id|boolean|false|none|none|
+|»» action|boolean|false|none|none|
+|»» actedAt|boolean|false|none|none|
+|»» actedOn|boolean|false|none|none|
+|»» actionKey|boolean|false|none|none|
+|»» entityId|boolean|false|none|none|
+|»» actor|boolean|false|none|none|
+|»» before|boolean|false|none|none|
+|»» after|boolean|false|none|none|
+|»» actionGroup|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+ToDo.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "id": true,
+ "title": true,
+ "description": true,
+ "items": true
+ }
+}
+
+```
+
+ToDo.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» id|boolean|false|none|none|
+|»» title|boolean|false|none|none|
+|»» description|boolean|false|none|none|
+|»» items|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+ToDo.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "id": true,
+ "title": true,
+ "description": true,
+ "items": true
+ }
+}
+
+```
+
+ToDo.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» id|boolean|false|none|none|
+|»» title|boolean|false|none|none|
+|»» description|boolean|false|none|none|
+|»» items|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
diff --git a/sandbox/auth-ms-basic-example/README.md b/sandbox/auth-ms-basic-example/README.md
index c320e093a8..915a1c1459 100644
--- a/sandbox/auth-ms-basic-example/README.md
+++ b/sandbox/auth-ms-basic-example/README.md
@@ -1,3 +1,7 @@
# auth-basic-example
[![LoopBack](https://github.com/strongloop/loopback-next/raw/master/docs/site/imgs/branding/Powered-by-LoopBack-Badge-(blue)-@2x.png)](http://loopback.io/)
+
+#### API Details
+
+Visit the [OpenAPI spec docs](./openapi.md)
\ No newline at end of file
diff --git a/sandbox/auth-ms-basic-example/openapi.md b/sandbox/auth-ms-basic-example/openapi.md
new file mode 100644
index 0000000000..0765255c83
--- /dev/null
+++ b/sandbox/auth-ms-basic-example/openapi.md
@@ -0,0 +1,3934 @@
+---
+title: Authentication Service v1.0.0
+language_tabs:
+ - "'javascript": JavaScript
+ - "'javascript--nodejs": Node.JS'
+language_clients:
+ - "'javascript": request'
+ - "'javascript--nodejs": ""
+toc_footers: []
+includes: []
+search: false
+highlight_theme: darkula
+headingLevel: 2
+
+---
+
+
+
+Authentication Service v1.0.0
+
+> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
+
+Auth microservice basic example
+
+Base URLs:
+
+* http://localhost:3000
+
+# Authentication
+
+- HTTP Authentication, scheme: bearer
+
+LoginController
+
+## LoginController.resetPassword
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "refreshToken": "string",
+ "username": "string",
+ "password": "string",
+ "oldPassword": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Authorization':'string'
+};
+
+fetch('http://localhost:3000/auth/change-password',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /auth/change-password`
+
+> Body parameter
+
+```json
+{
+ "refreshToken": "string",
+ "username": "string",
+ "password": "string",
+ "oldPassword": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|Authorization|header|string|false|none|
+|body|body|[ResetPasswordPartial](#schemaresetpasswordpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|If User password successfully changed.|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## LoginController.postLoginViaGoogle
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "client_id": "string",
+ "client_secret": "string"
+};
+const headers = {
+ 'Content-Type':'application/x-www-form-urlencoded',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/google',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/google`
+
+> Body parameter
+
+```yaml
+client_id: string
+client_secret: string
+
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[ClientAuthRequest](#schemaclientauthrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|POST Call for Google based login|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.loginViaGoogle
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/google',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/google`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|client_id|query|string|false|none|
+|client_secret|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Google Token Response (Deprecated: Possible security issue if secret is passed via query params, please use the post endpoint)|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.googleCallback
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/google-auth-redirect',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/google-auth-redirect`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|code|query|string|false|none|
+|state|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Google Redirect Token Response|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.postLoginViaInstagram
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "client_id": "string",
+ "client_secret": "string"
+};
+const headers = {
+ 'Content-Type':'application/x-www-form-urlencoded',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/instagram',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/instagram`
+
+> Body parameter
+
+```yaml
+client_id: string
+client_secret: string
+
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[ClientAuthRequest](#schemaclientauthrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|POST Call for Instagram based login|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.instagramCallback
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/instagram-auth-redirect',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/instagram-auth-redirect`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|code|query|string|false|none|
+|state|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Instagram Redirect Token Response|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.postLoginViaKeycloak
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "client_id": "string",
+ "client_secret": "string"
+};
+const headers = {
+ 'Content-Type':'application/x-www-form-urlencoded',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/keycloak',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/keycloak`
+
+POST Call for keycloak based login
+
+> Body parameter
+
+```yaml
+client_id: string
+client_secret: string
+
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[ClientAuthRequest](#schemaclientauthrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Keycloak Token Response|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.loginViaKeycloak
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/keycloak',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/keycloak`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|client_id|query|string|false|none|
+|client_secret|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Keycloak Token Response (Deprecated: Possible security issue if secret is passed via query params, please use the post endpoint)|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.keycloakCallback
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/keycloak-auth-redirect',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/keycloak-auth-redirect`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|code|query|string|false|none|
+|state|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Keycloak Redirect Token Response|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.login
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "client_id": "string",
+ "client_secret": "string",
+ "username": "string",
+ "password": "string"
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/auth/login',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/login`
+
+Gets you the code that will be used for getting token (webapps)
+
+> Body parameter
+
+```json
+{
+ "client_id": "string",
+ "client_secret": "string",
+ "username": "string",
+ "password": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[LoginRequest](#schemaloginrequest)|false|none|
+
+> Example responses
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Auth Code|None|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+## LoginController.loginWithClientUser
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "client_id": "string",
+ "client_secret": "string",
+ "username": "string",
+ "password": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'device_id':'string'
+};
+
+fetch('http://localhost:3000/auth/login-token',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/login-token`
+
+Gets you refresh token and access token in one hit. (mobile app)
+
+> Body parameter
+
+```json
+{
+ "client_id": "string",
+ "client_secret": "string",
+ "username": "string",
+ "password": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|device_id|header|string|false|none|
+|body|body|[LoginRequest](#schemaloginrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Token Response Model|[TokenResponse](#schematokenresponse)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+## LoginController.me
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth/me',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/me`
+
+To get the user details
+
+> Example responses
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|User Object|None|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+Response Schema
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## LoginController.getToken
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "code": "string",
+ "clientId": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'device_id':'string'
+};
+
+fetch('http://localhost:3000/auth/token',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/token`
+
+ Send the code received from the above api and this api will send you refresh token and access token (webapps)
+
+> Body parameter
+
+```json
+{
+ "code": "string",
+ "clientId": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|device_id|header|string|false|none|
+|body|body|[AuthTokenRequest](#schemaauthtokenrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Token Response|[TokenResponse](#schematokenresponse)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+## LoginController.exchangeToken
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "refreshToken": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'device_id':'string'
+};
+
+fetch('http://localhost:3000/auth/token-refresh',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/token-refresh`
+
+ Gets you a new access and refresh token once your access token is expired. (both mobile and web)
+
+> Body parameter
+
+```json
+{
+ "refreshToken": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|device_id|header|string|false|none|
+|body|body|[AuthRefreshTokenRequest](#schemaauthrefreshtokenrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|New Token Response|[TokenResponse](#schematokenresponse)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+ForgetPasswordController
+
+## ForgetPasswordController.forgetPassword
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "username": "string",
+ "client_id": "string",
+ "client_secret": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/forget-password',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/forget-password`
+
+> Body parameter
+
+```json
+{
+ "username": "string",
+ "client_id": "string",
+ "client_secret": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[ForgetPasswordDto](#schemaforgetpassworddto)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "code": "string",
+ "expiry": 0,
+ "email": "string",
+ "user": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "firstName": "string",
+ "lastName": "string",
+ "middleName": "string",
+ "username": "string",
+ "email": "string",
+ "phone": "string",
+ "authClientIds": "string",
+ "lastLogin": "2019-08-24T14:15:22Z",
+ "dob": "2019-08-24T14:15:22Z",
+ "gender": "M",
+ "defaultTenantId": "string"
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success Response.|[ForgetPasswordResponseDto](#schemaforgetpasswordresponsedto)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+## ForgetPasswordController.resetPassword
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "token": "string",
+ "password": "string",
+ "client_id": "string",
+ "client_secret": "string"
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/auth/reset-password',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /auth/reset-password`
+
+> Body parameter
+
+```json
+{
+ "token": "string",
+ "password": "string",
+ "client_id": "string",
+ "client_secret": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[ResetPasswordWithClient](#schemaresetpasswordwithclient)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|If User password successfully changed.|None|
+
+
+This operation does not require authentication
+
+
+## ForgetPasswordController.verifyResetPasswordLink
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/auth/verify-reset-password-link?token=string',
+{
+ method: 'GET'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/verify-reset-password-link`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|token|query|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Check if Token Is Valid and not Expired.|None|
+
+
+This operation does not require authentication
+
+
+SignupRequestController
+
+## SignupRequestController.requestSignup
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "email": "string",
+ "data": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/sign-up/create-token',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/sign-up/create-token`
+
+> Body parameter
+
+```json
+{
+ "email": "string",
+ "data": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[SignupRequestDto](#schemasignuprequestdto)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "code": "string",
+ "expiry": 0,
+ "email": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Sucess Response.|[SignupRequestResponseDto](#schemasignuprequestresponsedto)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+## SignupRequestController.signupWithToken
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "email": "string",
+ "password": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/sign-up/create-user',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/sign-up/create-user`
+
+> Body parameter
+
+```json
+{
+ "email": "string",
+ "password": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[LocalUserProfileDto](#schemalocaluserprofiledto)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "email": "string",
+ "password": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Sucess Response.|[LocalUserProfileDto](#schemalocaluserprofiledto)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+## SignupRequestController.verifyInviteToken
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/auth/sign-up/verify-token',
+{
+ method: 'GET'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/sign-up/verify-token`
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Sucess Response.|None|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+AuthClientController
+
+## AuthClientController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth-clients/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth-clients/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuthClient model count|[loopback.Count](#schemaloopback.count)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth-clients/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /auth-clients/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|number|true|none|
+|body|body|[AuthClient](#schemaauthclient)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|AuthClient PUT success|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth-clients/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /auth-clients/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|number|true|none|
+|body|body|[AuthClientPartial](#schemaauthclientpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|AuthClient PATCH success|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth-clients/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth-clients/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|number|true|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuthClient model instance|[AuthClient](#schemaauthclient)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth-clients/{id}',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /auth-clients/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|number|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|AuthClient DELETE success|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth-clients',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth-clients`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[AuthClientExcluding_id_](#schemaauthclientexcluding_id_)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuthClient model instance|[AuthClient](#schemaauthclient)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth-clients',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /auth-clients`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[AuthClientPartial](#schemaauthclientpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuthClient PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth-clients',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth-clients`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[auth_clients.Filter](#schemaauth_clients.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of AuthClient model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[AuthClient](#schemaauthclient)]|false|none|none|
+|» AuthClient|[AuthClient](#schemaauthclient)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» id|number|false|none|none|
+|»» clientId|string|true|none|none|
+|»» clientSecret|string|true|none|none|
+|»» secret|string|true|none|none|
+|»» redirectUrl|string|false|none|none|
+|»» accessTokenExpiration|number|true|none|none|
+|»» refreshTokenExpiration|number|true|none|none|
+|»» authCodeExpiration|number|true|none|none|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+LogoutController
+
+## LogoutController.keycloakLogout
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "refreshToken": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'Authorization':'string'
+};
+
+fetch('http://localhost:3000/keycloak/logout',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /keycloak/logout`
+
+This API will log out the user from application as well as keycloak
+
+> Body parameter
+
+```json
+{
+ "refreshToken": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|Authorization|header|string|false|This is the access token which is required to authenticate user.|
+|body|body|[RefreshTokenRequestPartial](#schemarefreshtokenrequestpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "success": true
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success Response|[SuccessResponse](#schemasuccessresponse)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## LogoutController.logout
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "refreshToken": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'Authorization':'string'
+};
+
+fetch('http://localhost:3000/logout',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /logout`
+
+To logout
+
+> Body parameter
+
+```json
+{
+ "refreshToken": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|Authorization|header|string|false|This is the access token which is required to authenticate user.|
+|body|body|[RefreshTokenRequestPartial](#schemarefreshtokenrequestpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "success": true
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success Response|[SuccessResponse](#schemasuccessresponse)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+OtpController
+
+## OtpController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/otp-caches/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /otp-caches/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "otp": "string",
+ "username": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Otp model instance|[Otp](#schemaotp)|
+
+
+This operation does not require authentication
+
+
+## OtpController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/otp-caches/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /otp-caches/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Otp DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## OtpController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "otp": "string",
+ "username": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/otp-caches',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /otp-caches`
+
+> Body parameter
+
+```json
+{
+ "otp": "string",
+ "username": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[Otp](#schemaotp)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "otp": "string",
+ "username": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Otp model instance|[Otp](#schemaotp)|
+
+
+This operation does not require authentication
+
+
+ToDoController
+
+## ToDoController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/to-dos/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /to-dos/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ToDo model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## ToDoController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/to-dos/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /to-dos/{id}`
+
+> Body parameter
+
+```json
+{
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[ToDo](#schematodo)|false|none|
+
+> Example responses
+
+> 204 Response
+
+```json
+null
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|No Content|Inline|
+
+Response Schema
+
+Status Code **204**
+
+*ToDo PUT success*
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+
+
+This operation does not require authentication
+
+
+## ToDoController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/to-dos/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /to-dos/{id}`
+
+> Body parameter
+
+```json
+{
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[ToDoPartial](#schematodopartial)|false|none|
+
+> Example responses
+
+> 204 Response
+
+```json
+null
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|No Content|Inline|
+
+Response Schema
+
+Status Code **204**
+
+*ToDo PATCH success*
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+
+
+This operation does not require authentication
+
+
+## ToDoController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/to-dos/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /to-dos/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[ToDo.Filter](#schematodo.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ToDo model instance|[ToDoWithRelations](#schematodowithrelations)|
+
+
+This operation does not require authentication
+
+
+## ToDoController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/to-dos/{id}',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /to-dos/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+> Example responses
+
+> 204 Response
+
+```json
+null
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|No Content|Inline|
+
+Response Schema
+
+Status Code **204**
+
+*ToDo DELETE success*
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+
+
+This operation does not require authentication
+
+
+## ToDoController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/to-dos',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /to-dos`
+
+> Body parameter
+
+```json
+{
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewToDo](#schemanewtodo)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ToDo model instance|[ToDo](#schematodo)|
+
+
+This operation does not require authentication
+
+
+## ToDoController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/to-dos',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /to-dos`
+
+> Body parameter
+
+```json
+{
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[ToDoPartial](#schematodopartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ToDo PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## ToDoController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/to-dos',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /to-dos`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[ToDo.Filter1](#schematodo.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of ToDo model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[ToDoWithRelations](#schematodowithrelations)]|false|none|[(tsType: ToDoWithRelations, schemaOptions: { includeRelations: true })]|
+|» ToDoWithRelations|[ToDoWithRelations](#schematodowithrelations)|false|none|(tsType: ToDoWithRelations, schemaOptions: { includeRelations: true })|
+|»» id|string|false|none|none|
+|»» title|string|true|none|none|
+|»» description|string|true|none|none|
+|»» items|[string]|false|none|none|
+
+
+This operation does not require authentication
+
+
+# Schemas
+
+LoginRequest
+
+
+
+
+
+
+```json
+{
+ "client_id": "string",
+ "client_secret": "string",
+ "username": "string",
+ "password": "string"
+}
+
+```
+
+LoginRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|client_id|string|true|none|This property is supposed to be a string and is a required field|
+|client_secret|string|true|none|This property is supposed to be a string and is a required field|
+|username|string|true|none|This property is supposed to be a string and is a required field|
+|password|string|true|none|This property is supposed to be a string and is a required field|
+
+TokenResponse
+
+
+
+
+
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+
+```
+
+TokenResponse
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|accessToken|string|true|none|This property is supposed to be a string and is a required field|
+|refreshToken|string|true|none|This property is supposed to be a string and is a required field|
+|expires|number|true|none|none|
+|pubnubToken|string|false|none|none|
+
+AuthTokenRequest
+
+
+
+
+
+
+```json
+{
+ "code": "string",
+ "clientId": "string"
+}
+
+```
+
+AuthTokenRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|code|string|true|none|none|
+|clientId|string|true|none|none|
+
+Function
+
+
+
+
+
+
+```json
+null
+
+```
+
+### Properties
+
+*None*
+
+AuthRefreshTokenRequest
+
+
+
+
+
+
+```json
+{
+ "refreshToken": "string"
+}
+
+```
+
+AuthRefreshTokenRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|refreshToken|string|true|none|none|
+
+ClientAuthRequest
+
+
+
+
+
+
+```json
+{
+ "client_id": "string",
+ "client_secret": "string"
+}
+
+```
+
+ClientAuthRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|client_id|string|true|none|This property is supposed to be a string and is a required field|
+|client_secret|string|true|none|This property is supposed to be a string and is a required field|
+
+ResetPasswordPartial
+
+
+
+
+
+
+```json
+{
+ "refreshToken": "string",
+ "username": "string",
+ "password": "string",
+ "oldPassword": "string"
+}
+
+```
+
+ResetPasswordPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|refreshToken|string|false|none|none|
+|username|string|false|none|This property is supposed to be a string and is a required field|
+|password|string|false|none|This property is supposed to be a string and is a required field|
+|oldPassword|string|false|none|This property is supposed to be a string and is a required field|
+
+ResetPassword
+
+
+
+
+
+
+```json
+{
+ "refreshToken": "string",
+ "username": "string",
+ "password": "string",
+ "oldPassword": "string"
+}
+
+```
+
+ResetPassword
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|refreshToken|string|true|none|none|
+|username|string|true|none|This property is supposed to be a string and is a required field|
+|password|string|true|none|This property is supposed to be a string and is a required field|
+|oldPassword|string|false|none|This property is supposed to be a string and is a required field|
+
+SuccessResponse
+
+
+
+
+
+
+```json
+{
+ "success": true
+}
+
+```
+
+SuccessResponse
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|success|boolean|false|none|none|
+
+RefreshTokenRequestPartial
+
+
+
+
+
+
+```json
+{
+ "refreshToken": "string"
+}
+
+```
+
+RefreshTokenRequestPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|refreshToken|string|false|none|none|
+
+RefreshTokenRequest
+
+
+
+
+
+
+```json
+{
+ "refreshToken": "string"
+}
+
+```
+
+RefreshTokenRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|refreshToken|string|true|none|none|
+
+Otp
+
+
+
+
+
+
+```json
+{
+ "otp": "string",
+ "username": "string"
+}
+
+```
+
+Otp
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|otp|string|true|none|none|
+|username|string|true|none|none|
+
+AuthClient
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+
+```
+
+AuthClient
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|id|number|false|none|none|
+|clientId|string|true|none|none|
+|clientSecret|string|true|none|none|
+|secret|string|true|none|none|
+|redirectUrl|string|false|none|none|
+|accessTokenExpiration|number|true|none|none|
+|refreshTokenExpiration|number|true|none|none|
+|authCodeExpiration|number|true|none|none|
+
+AuthClientExcluding_id_
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+
+```
+
+AuthClientExcluding_id_
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|clientId|string|true|none|none|
+|clientSecret|string|true|none|none|
+|secret|string|true|none|none|
+|redirectUrl|string|false|none|none|
+|accessTokenExpiration|number|true|none|none|
+|refreshTokenExpiration|number|true|none|none|
+|authCodeExpiration|number|true|none|none|
+
+AuthClientPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+
+```
+
+AuthClientPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|id|number|false|none|none|
+|clientId|string|false|none|none|
+|clientSecret|string|false|none|none|
+|secret|string|false|none|none|
+|redirectUrl|string|false|none|none|
+|accessTokenExpiration|number|false|none|none|
+|refreshTokenExpiration|number|false|none|none|
+|authCodeExpiration|number|false|none|none|
+
+User
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "firstName": "string",
+ "lastName": "string",
+ "middleName": "string",
+ "username": "string",
+ "email": "string",
+ "phone": "string",
+ "authClientIds": "string",
+ "lastLogin": "2019-08-24T14:15:22Z",
+ "dob": "2019-08-24T14:15:22Z",
+ "gender": "M",
+ "defaultTenantId": "string"
+}
+
+```
+
+User
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|firstName|string|true|none|none|
+|lastName|string|false|none|none|
+|middleName|string|false|none|none|
+|username|string|true|none|none|
+|email|string|false|none|none|
+|phone|string|false|none|none|
+|authClientIds|string|false|none|none|
+|lastLogin|string(date-time)|false|none|none|
+|dob|string(date-time)|false|none|none|
+|gender|string|false|none|This field takes a single character as input in database. 'M' for male and 'F' for female.|
+|defaultTenantId|string|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|gender|M|
+|gender|F|
+|gender|O|
+
+ForgetPasswordResponseDto
+
+
+
+
+
+
+```json
+{
+ "code": "string",
+ "expiry": 0,
+ "email": "string",
+ "user": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "firstName": "string",
+ "lastName": "string",
+ "middleName": "string",
+ "username": "string",
+ "email": "string",
+ "phone": "string",
+ "authClientIds": "string",
+ "lastLogin": "2019-08-24T14:15:22Z",
+ "dob": "2019-08-24T14:15:22Z",
+ "gender": "M",
+ "defaultTenantId": "string"
+ }
+}
+
+```
+
+ForgetPasswordResponseDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|code|string|true|none|none|
+|expiry|number|true|none|none|
+|email|string|true|none|none|
+|user|[User](#schemauser)|false|none|This is signature for user model.|
+
+ForgetPasswordDto
+
+
+
+
+
+
+```json
+{
+ "username": "string",
+ "client_id": "string",
+ "client_secret": "string"
+}
+
+```
+
+ForgetPasswordDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|username|string|true|none|none|
+|client_id|string|true|none|none|
+|client_secret|string|true|none|none|
+
+ResetPasswordWithClient
+
+
+
+
+
+
+```json
+{
+ "token": "string",
+ "password": "string",
+ "client_id": "string",
+ "client_secret": "string"
+}
+
+```
+
+ResetPasswordWithClient
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|token|string|true|none|none|
+|password|string|true|none|none|
+|client_id|string|true|none|none|
+|client_secret|string|true|none|none|
+
+SignupRequestResponseDto
+
+
+
+
+
+
+```json
+{
+ "code": "string",
+ "expiry": 0,
+ "email": "string"
+}
+
+```
+
+SignupRequestResponseDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|code|string|true|none|none|
+|expiry|number|true|none|none|
+|email|string|true|none|none|
+
+SignupRequestDto
+
+
+
+
+
+
+```json
+{
+ "email": "string",
+ "data": {}
+}
+
+```
+
+SignupRequestDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|email|string|true|none|none|
+|data|object|false|none|none|
+
+LocalUserProfileDto
+
+
+
+
+
+
+```json
+{
+ "email": "string",
+ "password": "string"
+}
+
+```
+
+LocalUserProfileDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|email|string|true|none|none|
+|password|string|true|none|none|
+
+SignupRequest
+
+
+
+
+
+
+```json
+{
+ "email": "string",
+ "expiry": "string"
+}
+
+```
+
+SignupRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|email|string|true|none|none|
+|expiry|string|false|none|none|
+
+ToDo
+
+
+
+
+
+
+```json
+{
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+
+```
+
+ToDo
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|id|string|false|none|none|
+|title|string|true|none|none|
+|description|string|true|none|none|
+|items|[string]|false|none|none|
+
+NewToDo
+
+
+
+
+
+
+```json
+{
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+
+```
+
+NewToDo
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|title|string|true|none|none|
+|description|string|true|none|none|
+|items|[string]|false|none|none|
+
+ToDoWithRelations
+
+
+
+
+
+
+```json
+{
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+
+```
+
+ToDoWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|id|string|false|none|none|
+|title|string|true|none|none|
+|description|string|true|none|none|
+|items|[string]|false|none|none|
+
+ToDoPartial
+
+
+
+
+
+
+```json
+{
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+
+```
+
+ToDoPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|id|string|false|none|none|
+|title|string|false|none|none|
+|description|string|false|none|none|
+|items|[string]|false|none|none|
+
+loopback.Count
+
+
+
+
+
+
+```json
+{
+ "count": 0
+}
+
+```
+
+loopback.Count
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|count|number|false|none|none|
+
+auth_clients.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "id": true,
+ "clientId": true,
+ "clientSecret": true,
+ "secret": true,
+ "redirectUrl": true,
+ "accessTokenExpiration": true,
+ "refreshTokenExpiration": true,
+ "authCodeExpiration": true
+ }
+}
+
+```
+
+auth_clients.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» clientId|boolean|false|none|none|
+|»» clientSecret|boolean|false|none|none|
+|»» secret|boolean|false|none|none|
+|»» redirectUrl|boolean|false|none|none|
+|»» accessTokenExpiration|boolean|false|none|none|
+|»» refreshTokenExpiration|boolean|false|none|none|
+|»» authCodeExpiration|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+ToDo.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "id": true,
+ "title": true,
+ "description": true,
+ "items": true
+ }
+}
+
+```
+
+ToDo.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» id|boolean|false|none|none|
+|»» title|boolean|false|none|none|
+|»» description|boolean|false|none|none|
+|»» items|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+ToDo.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "id": true,
+ "title": true,
+ "description": true,
+ "items": true
+ }
+}
+
+```
+
+ToDo.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» id|boolean|false|none|none|
+|»» title|boolean|false|none|none|
+|»» description|boolean|false|none|none|
+|»» items|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
diff --git a/sandbox/auth-multitenant-example/README.md b/sandbox/auth-multitenant-example/README.md
index 29cbee5a13..3acf7d04ba 100644
--- a/sandbox/auth-multitenant-example/README.md
+++ b/sandbox/auth-multitenant-example/README.md
@@ -1,3 +1,7 @@
# auth-multitenant-example
[![LoopBack](https://github.com/strongloop/loopback-next/raw/master/docs/site/imgs/branding/Powered-by-LoopBack-Badge-(blue)-@2x.png)](http://loopback.io/)
+
+#### API Details
+
+Visit the [OpenAPI spec docs](./openapi.md)
\ No newline at end of file
diff --git a/sandbox/auth-multitenant-example/openapi.md b/sandbox/auth-multitenant-example/openapi.md
new file mode 100644
index 0000000000..e1b87f0d89
--- /dev/null
+++ b/sandbox/auth-multitenant-example/openapi.md
@@ -0,0 +1,3990 @@
+---
+title: Authentication Service v1.0.0
+language_tabs:
+ - "'javascript": JavaScript
+ - "'javascript--nodejs": Node.JS'
+language_clients:
+ - "'javascript": request'
+ - "'javascript--nodejs": ""
+toc_footers: []
+includes: []
+search: false
+highlight_theme: darkula
+headingLevel: 2
+
+---
+
+
+
+Authentication Service v1.0.0
+
+> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
+
+This is a sample application for sandbox testing of auth microservice components.
+
+Base URLs:
+
+* http://localhost:3000
+
+# Authentication
+
+- HTTP Authentication, scheme: bearer
+
+LoginController
+
+## LoginController.resetPassword
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "refreshToken": "string",
+ "username": "string",
+ "password": "string",
+ "oldPassword": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Authorization':'string'
+};
+
+fetch('http://localhost:3000/auth/change-password',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /auth/change-password`
+
+> Body parameter
+
+```json
+{
+ "refreshToken": "string",
+ "username": "string",
+ "password": "string",
+ "oldPassword": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|Authorization|header|string|false|none|
+|body|body|[ResetPasswordPartial](#schemaresetpasswordpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|If User password successfully changed.|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## LoginController.postLoginViaGoogle
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "client_id": "string",
+ "client_secret": "string"
+};
+const headers = {
+ 'Content-Type':'application/x-www-form-urlencoded',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/google',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/google`
+
+> Body parameter
+
+```yaml
+client_id: string
+client_secret: string
+
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[ClientAuthRequest](#schemaclientauthrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|POST Call for Google based login|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.loginViaGoogle
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/google',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/google`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|client_id|query|string|false|none|
+|client_secret|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Google Token Response (Deprecated: Possible security issue if secret is passed via query params, please use the post endpoint)|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.googleCallback
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/google-auth-redirect',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/google-auth-redirect`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|code|query|string|false|none|
+|state|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Google Redirect Token Response|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.postLoginViaInstagram
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "client_id": "string",
+ "client_secret": "string"
+};
+const headers = {
+ 'Content-Type':'application/x-www-form-urlencoded',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/instagram',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/instagram`
+
+> Body parameter
+
+```yaml
+client_id: string
+client_secret: string
+
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[ClientAuthRequest](#schemaclientauthrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|POST Call for Instagram based login|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.instagramCallback
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/instagram-auth-redirect',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/instagram-auth-redirect`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|code|query|string|false|none|
+|state|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Instagram Redirect Token Response|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.postLoginViaKeycloak
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "client_id": "string",
+ "client_secret": "string"
+};
+const headers = {
+ 'Content-Type':'application/x-www-form-urlencoded',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/keycloak',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/keycloak`
+
+POST Call for keycloak based login
+
+> Body parameter
+
+```yaml
+client_id: string
+client_secret: string
+
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[ClientAuthRequest](#schemaclientauthrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Keycloak Token Response|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.loginViaKeycloak
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/keycloak',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/keycloak`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|client_id|query|string|false|none|
+|client_secret|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Keycloak Token Response (Deprecated: Possible security issue if secret is passed via query params, please use the post endpoint)|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.keycloakCallback
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/keycloak-auth-redirect',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/keycloak-auth-redirect`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|code|query|string|false|none|
+|state|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Keycloak Redirect Token Response|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.login
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "client_id": "string",
+ "client_secret": "string",
+ "username": "string",
+ "password": "string"
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/auth/login',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/login`
+
+Gets you the code that will be used for getting token (webapps)
+
+> Body parameter
+
+```json
+{
+ "client_id": "string",
+ "client_secret": "string",
+ "username": "string",
+ "password": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[LoginRequest](#schemaloginrequest)|false|none|
+
+> Example responses
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Auth Code|None|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+## LoginController.loginWithClientUser
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "client_id": "string",
+ "client_secret": "string",
+ "username": "string",
+ "password": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'device_id':'string'
+};
+
+fetch('http://localhost:3000/auth/login-token',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/login-token`
+
+Gets you refresh token and access token in one hit. (mobile app)
+
+> Body parameter
+
+```json
+{
+ "client_id": "string",
+ "client_secret": "string",
+ "username": "string",
+ "password": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|device_id|header|string|false|none|
+|body|body|[LoginRequest](#schemaloginrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Token Response Model|[TokenResponse](#schematokenresponse)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+## LoginController.me
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth/me',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/me`
+
+To get the user details
+
+> Example responses
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|User Object|None|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+Response Schema
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## LoginController.getToken
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "code": "string",
+ "clientId": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'device_id':'string'
+};
+
+fetch('http://localhost:3000/auth/token',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/token`
+
+ Send the code received from the above api and this api will send you refresh token and access token (webapps)
+
+> Body parameter
+
+```json
+{
+ "code": "string",
+ "clientId": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|device_id|header|string|false|none|
+|body|body|[AuthTokenRequest](#schemaauthtokenrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Token Response|[TokenResponse](#schematokenresponse)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+## LoginController.exchangeToken
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "refreshToken": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'device_id':'string'
+};
+
+fetch('http://localhost:3000/auth/token-refresh',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/token-refresh`
+
+ Gets you a new access and refresh token once your access token is expired. (both mobile and web)
+
+> Body parameter
+
+```json
+{
+ "refreshToken": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|device_id|header|string|false|none|
+|body|body|[AuthRefreshTokenRequest](#schemaauthrefreshtokenrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|New Token Response|[TokenResponse](#schematokenresponse)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+ForgetPasswordController
+
+## ForgetPasswordController.forgetPassword
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "username": "string",
+ "client_id": "string",
+ "client_secret": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/forget-password',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/forget-password`
+
+> Body parameter
+
+```json
+{
+ "username": "string",
+ "client_id": "string",
+ "client_secret": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[ForgetPasswordDto](#schemaforgetpassworddto)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "code": "string",
+ "expiry": 0,
+ "email": "string",
+ "user": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "firstName": "string",
+ "lastName": "string",
+ "middleName": "string",
+ "username": "string",
+ "email": "string",
+ "phone": "string",
+ "authClientIds": "string",
+ "lastLogin": "2019-08-24T14:15:22Z",
+ "dob": "2019-08-24T14:15:22Z",
+ "gender": "M",
+ "defaultTenantId": "string"
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success Response.|[ForgetPasswordResponseDto](#schemaforgetpasswordresponsedto)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+## ForgetPasswordController.resetPassword
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "token": "string",
+ "password": "string",
+ "client_id": "string",
+ "client_secret": "string"
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/auth/reset-password',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /auth/reset-password`
+
+> Body parameter
+
+```json
+{
+ "token": "string",
+ "password": "string",
+ "client_id": "string",
+ "client_secret": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[ResetPasswordWithClient](#schemaresetpasswordwithclient)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|If User password successfully changed.|None|
+
+
+This operation does not require authentication
+
+
+## ForgetPasswordController.verifyResetPasswordLink
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/auth/verify-reset-password-link?token=string',
+{
+ method: 'GET'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/verify-reset-password-link`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|token|query|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Check if Token Is Valid and not Expired.|None|
+
+
+This operation does not require authentication
+
+
+SignupRequestController
+
+## SignupRequestController.requestSignup
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "email": "string",
+ "data": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/sign-up/create-token',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/sign-up/create-token`
+
+> Body parameter
+
+```json
+{
+ "email": "string",
+ "data": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[SignupRequestDto](#schemasignuprequestdto)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "code": "string",
+ "expiry": 0,
+ "email": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Sucess Response.|[SignupRequestResponseDto](#schemasignuprequestresponsedto)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+## SignupRequestController.signupWithToken
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "email": "string",
+ "password": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/auth/sign-up/create-user',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/sign-up/create-user`
+
+> Body parameter
+
+```json
+{
+ "email": "string",
+ "password": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[LocalUserProfileDto](#schemalocaluserprofiledto)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "email": "string",
+ "password": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Sucess Response.|[LocalUserProfileDto](#schemalocaluserprofiledto)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+## SignupRequestController.verifyInviteToken
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/auth/sign-up/verify-token',
+{
+ method: 'GET'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/sign-up/verify-token`
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Sucess Response.|None|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+AuthClientController
+
+## AuthClientController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth-clients/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth-clients/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuthClient model count|[loopback.Count](#schemaloopback.count)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth-clients/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /auth-clients/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|number|true|none|
+|body|body|[AuthClient](#schemaauthclient)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|AuthClient PUT success|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth-clients/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /auth-clients/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|number|true|none|
+|body|body|[AuthClientPartial](#schemaauthclientpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|AuthClient PATCH success|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth-clients/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth-clients/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|number|true|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuthClient model instance|[AuthClient](#schemaauthclient)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth-clients/{id}',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /auth-clients/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|number|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|AuthClient DELETE success|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth-clients',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth-clients`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[AuthClientExcluding_id_](#schemaauthclientexcluding_id_)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuthClient model instance|[AuthClient](#schemaauthclient)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth-clients',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /auth-clients`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[AuthClientPartial](#schemaauthclientpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuthClient PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('http://localhost:3000/auth-clients',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth-clients`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[auth_clients.Filter](#schemaauth_clients.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of AuthClient model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[AuthClient](#schemaauthclient)]|false|none|none|
+|» AuthClient|[AuthClient](#schemaauthclient)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» id|number|false|none|none|
+|»» clientId|string|true|none|none|
+|»» clientSecret|string|true|none|none|
+|»» secret|string|true|none|none|
+|»» redirectUrl|string|false|none|none|
+|»» accessTokenExpiration|number|true|none|none|
+|»» refreshTokenExpiration|number|true|none|none|
+|»» authCodeExpiration|number|true|none|none|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+LogoutController
+
+## LogoutController.keycloakLogout
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "refreshToken": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'Authorization':'string'
+};
+
+fetch('http://localhost:3000/keycloak/logout',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /keycloak/logout`
+
+This API will log out the user from application as well as keycloak
+
+> Body parameter
+
+```json
+{
+ "refreshToken": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|Authorization|header|string|false|This is the access token which is required to authenticate user.|
+|body|body|[RefreshTokenRequestPartial](#schemarefreshtokenrequestpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "success": true
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success Response|[SuccessResponse](#schemasuccessresponse)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## LogoutController.logout
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "refreshToken": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'Authorization':'string'
+};
+
+fetch('http://localhost:3000/logout',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /logout`
+
+To logout
+
+> Body parameter
+
+```json
+{
+ "refreshToken": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|Authorization|header|string|false|This is the access token which is required to authenticate user.|
+|body|body|[RefreshTokenRequestPartial](#schemarefreshtokenrequestpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "success": true
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success Response|[SuccessResponse](#schemasuccessresponse)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+OtpController
+
+## OtpController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/otp-caches/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /otp-caches/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "otp": "string",
+ "username": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Otp model instance|[Otp](#schemaotp)|
+
+
+This operation does not require authentication
+
+
+## OtpController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/otp-caches/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /otp-caches/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Otp DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## OtpController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "otp": "string",
+ "username": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/otp-caches',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /otp-caches`
+
+> Body parameter
+
+```json
+{
+ "otp": "string",
+ "username": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[Otp](#schemaotp)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "otp": "string",
+ "username": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Otp model instance|[Otp](#schemaotp)|
+
+
+This operation does not require authentication
+
+
+PingController
+
+## PingController.ping
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/ping',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /ping`
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "greeting": "string",
+ "date": "string",
+ "url": "string",
+ "headers": {
+ "Content-Type": "string"
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Ping Response|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» greeting|string|false|none|none|
+|» date|string|false|none|none|
+|» url|string|false|none|none|
+|» headers|object|false|none|none|
+|»» Content-Type|string|false|none|none|
+
+
+This operation does not require authentication
+
+
+TodoController
+
+## TodoController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/todos/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /todos/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ToDo model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## TodoController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/todos/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /todos/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[ToDoPartial](#schematodopartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|ToDo PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## TodoController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/todos/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /todos/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[todos.Filter](#schematodos.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ToDo model instance|[ToDoWithRelations](#schematodowithrelations)|
+
+
+This operation does not require authentication
+
+
+## TodoController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/todos/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /todos/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|ToDo DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## TodoController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/todos',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /todos`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewToDo](#schemanewtodo)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ToDo model instance|[ToDo](#schematodo)|
+
+
+This operation does not require authentication
+
+
+## TodoController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/todos',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /todos`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[todos.Filter1](#schematodos.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of ToDo model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[ToDoWithRelations](#schematodowithrelations)]|false|none|[(tsType: ToDoWithRelations, schemaOptions: { includeRelations: true })]|
+|» ToDoWithRelations|[ToDoWithRelations](#schematodowithrelations)|false|none|(tsType: ToDoWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» title|string|true|none|none|
+|»» description|string|true|none|none|
+|»» items|[string]|false|none|none|
+
+
+This operation does not require authentication
+
+
+HomePageController
+
+## HomePageController.homePage
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'text/html'
+};
+
+fetch('http://localhost:3000/',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /`
+
+> Example responses
+
+> 200 Response
+
+```
+"string"
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Home Page|string|
+
+
+This operation does not require authentication
+
+
+# Schemas
+
+LoginRequest
+
+
+
+
+
+
+```json
+{
+ "client_id": "string",
+ "client_secret": "string",
+ "username": "string",
+ "password": "string"
+}
+
+```
+
+LoginRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|client_id|string|true|none|This property is supposed to be a string and is a required field|
+|client_secret|string|true|none|This property is supposed to be a string and is a required field|
+|username|string|true|none|This property is supposed to be a string and is a required field|
+|password|string|true|none|This property is supposed to be a string and is a required field|
+
+TokenResponse
+
+
+
+
+
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+
+```
+
+TokenResponse
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|accessToken|string|true|none|This property is supposed to be a string and is a required field|
+|refreshToken|string|true|none|This property is supposed to be a string and is a required field|
+|expires|number|true|none|none|
+|pubnubToken|string|false|none|none|
+
+AuthTokenRequest
+
+
+
+
+
+
+```json
+{
+ "code": "string",
+ "clientId": "string"
+}
+
+```
+
+AuthTokenRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|code|string|true|none|none|
+|clientId|string|true|none|none|
+
+Function
+
+
+
+
+
+
+```json
+null
+
+```
+
+### Properties
+
+*None*
+
+AuthRefreshTokenRequest
+
+
+
+
+
+
+```json
+{
+ "refreshToken": "string"
+}
+
+```
+
+AuthRefreshTokenRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|refreshToken|string|true|none|none|
+
+ClientAuthRequest
+
+
+
+
+
+
+```json
+{
+ "client_id": "string",
+ "client_secret": "string"
+}
+
+```
+
+ClientAuthRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|client_id|string|true|none|This property is supposed to be a string and is a required field|
+|client_secret|string|true|none|This property is supposed to be a string and is a required field|
+
+ResetPasswordPartial
+
+
+
+
+
+
+```json
+{
+ "refreshToken": "string",
+ "username": "string",
+ "password": "string",
+ "oldPassword": "string"
+}
+
+```
+
+ResetPasswordPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|refreshToken|string|false|none|none|
+|username|string|false|none|This property is supposed to be a string and is a required field|
+|password|string|false|none|This property is supposed to be a string and is a required field|
+|oldPassword|string|false|none|This property is supposed to be a string and is a required field|
+
+ResetPassword
+
+
+
+
+
+
+```json
+{
+ "refreshToken": "string",
+ "username": "string",
+ "password": "string",
+ "oldPassword": "string"
+}
+
+```
+
+ResetPassword
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|refreshToken|string|true|none|none|
+|username|string|true|none|This property is supposed to be a string and is a required field|
+|password|string|true|none|This property is supposed to be a string and is a required field|
+|oldPassword|string|false|none|This property is supposed to be a string and is a required field|
+
+SuccessResponse
+
+
+
+
+
+
+```json
+{
+ "success": true
+}
+
+```
+
+SuccessResponse
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|success|boolean|false|none|none|
+
+RefreshTokenRequestPartial
+
+
+
+
+
+
+```json
+{
+ "refreshToken": "string"
+}
+
+```
+
+RefreshTokenRequestPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|refreshToken|string|false|none|none|
+
+RefreshTokenRequest
+
+
+
+
+
+
+```json
+{
+ "refreshToken": "string"
+}
+
+```
+
+RefreshTokenRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|refreshToken|string|true|none|none|
+
+Otp
+
+
+
+
+
+
+```json
+{
+ "otp": "string",
+ "username": "string"
+}
+
+```
+
+Otp
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|otp|string|true|none|none|
+|username|string|true|none|none|
+
+AuthClient
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+
+```
+
+AuthClient
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|id|number|false|none|none|
+|clientId|string|true|none|none|
+|clientSecret|string|true|none|none|
+|secret|string|true|none|none|
+|redirectUrl|string|false|none|none|
+|accessTokenExpiration|number|true|none|none|
+|refreshTokenExpiration|number|true|none|none|
+|authCodeExpiration|number|true|none|none|
+
+AuthClientExcluding_id_
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+
+```
+
+AuthClientExcluding_id_
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|clientId|string|true|none|none|
+|clientSecret|string|true|none|none|
+|secret|string|true|none|none|
+|redirectUrl|string|false|none|none|
+|accessTokenExpiration|number|true|none|none|
+|refreshTokenExpiration|number|true|none|none|
+|authCodeExpiration|number|true|none|none|
+
+AuthClientPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+
+```
+
+AuthClientPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|id|number|false|none|none|
+|clientId|string|false|none|none|
+|clientSecret|string|false|none|none|
+|secret|string|false|none|none|
+|redirectUrl|string|false|none|none|
+|accessTokenExpiration|number|false|none|none|
+|refreshTokenExpiration|number|false|none|none|
+|authCodeExpiration|number|false|none|none|
+
+User
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "firstName": "string",
+ "lastName": "string",
+ "middleName": "string",
+ "username": "string",
+ "email": "string",
+ "phone": "string",
+ "authClientIds": "string",
+ "lastLogin": "2019-08-24T14:15:22Z",
+ "dob": "2019-08-24T14:15:22Z",
+ "gender": "M",
+ "defaultTenantId": "string"
+}
+
+```
+
+User
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|firstName|string|true|none|none|
+|lastName|string|false|none|none|
+|middleName|string|false|none|none|
+|username|string|true|none|none|
+|email|string|false|none|none|
+|phone|string|false|none|none|
+|authClientIds|string|false|none|none|
+|lastLogin|string(date-time)|false|none|none|
+|dob|string(date-time)|false|none|none|
+|gender|string|false|none|This field takes a single character as input in database. 'M' for male and 'F' for female.|
+|defaultTenantId|string|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|gender|M|
+|gender|F|
+|gender|O|
+
+ForgetPasswordResponseDto
+
+
+
+
+
+
+```json
+{
+ "code": "string",
+ "expiry": 0,
+ "email": "string",
+ "user": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "firstName": "string",
+ "lastName": "string",
+ "middleName": "string",
+ "username": "string",
+ "email": "string",
+ "phone": "string",
+ "authClientIds": "string",
+ "lastLogin": "2019-08-24T14:15:22Z",
+ "dob": "2019-08-24T14:15:22Z",
+ "gender": "M",
+ "defaultTenantId": "string"
+ }
+}
+
+```
+
+ForgetPasswordResponseDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|code|string|true|none|none|
+|expiry|number|true|none|none|
+|email|string|true|none|none|
+|user|[User](#schemauser)|false|none|This is signature for user model.|
+
+ForgetPasswordDto
+
+
+
+
+
+
+```json
+{
+ "username": "string",
+ "client_id": "string",
+ "client_secret": "string"
+}
+
+```
+
+ForgetPasswordDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|username|string|true|none|none|
+|client_id|string|true|none|none|
+|client_secret|string|true|none|none|
+
+ResetPasswordWithClient
+
+
+
+
+
+
+```json
+{
+ "token": "string",
+ "password": "string",
+ "client_id": "string",
+ "client_secret": "string"
+}
+
+```
+
+ResetPasswordWithClient
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|token|string|true|none|none|
+|password|string|true|none|none|
+|client_id|string|true|none|none|
+|client_secret|string|true|none|none|
+
+SignupRequestResponseDto
+
+
+
+
+
+
+```json
+{
+ "code": "string",
+ "expiry": 0,
+ "email": "string"
+}
+
+```
+
+SignupRequestResponseDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|code|string|true|none|none|
+|expiry|number|true|none|none|
+|email|string|true|none|none|
+
+SignupRequestDto
+
+
+
+
+
+
+```json
+{
+ "email": "string",
+ "data": {}
+}
+
+```
+
+SignupRequestDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|email|string|true|none|none|
+|data|object|false|none|none|
+
+LocalUserProfileDto
+
+
+
+
+
+
+```json
+{
+ "email": "string",
+ "password": "string"
+}
+
+```
+
+LocalUserProfileDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|email|string|true|none|none|
+|password|string|true|none|none|
+
+SignupRequest
+
+
+
+
+
+
+```json
+{
+ "email": "string",
+ "expiry": "string"
+}
+
+```
+
+SignupRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|email|string|true|none|none|
+|expiry|string|false|none|none|
+
+ToDo
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+
+```
+
+ToDo
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|title|string|true|none|none|
+|description|string|true|none|none|
+|items|[string]|false|none|none|
+
+NewToDo
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+
+```
+
+NewToDo
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|title|string|true|none|none|
+|description|string|true|none|none|
+|items|[string]|false|none|none|
+
+ToDoWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+
+```
+
+ToDoWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|title|string|true|none|none|
+|description|string|true|none|none|
+|items|[string]|false|none|none|
+
+ToDoPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "title": "string",
+ "description": "string",
+ "items": [
+ "string"
+ ]
+}
+
+```
+
+ToDoPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|title|string|false|none|none|
+|description|string|false|none|none|
+|items|[string]|false|none|none|
+
+loopback.Count
+
+
+
+
+
+
+```json
+{
+ "count": 0
+}
+
+```
+
+loopback.Count
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|count|number|false|none|none|
+
+auth_clients.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "id": true,
+ "clientId": true,
+ "clientSecret": true,
+ "secret": true,
+ "redirectUrl": true,
+ "accessTokenExpiration": true,
+ "refreshTokenExpiration": true,
+ "authCodeExpiration": true
+ }
+}
+
+```
+
+auth_clients.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» clientId|boolean|false|none|none|
+|»» clientSecret|boolean|false|none|none|
+|»» secret|boolean|false|none|none|
+|»» redirectUrl|boolean|false|none|none|
+|»» accessTokenExpiration|boolean|false|none|none|
+|»» refreshTokenExpiration|boolean|false|none|none|
+|»» authCodeExpiration|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+todos.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "title": true,
+ "description": true,
+ "items": true
+ }
+}
+
+```
+
+todos.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» title|boolean|false|none|none|
+|»» description|boolean|false|none|none|
+|»» items|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+todos.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "title": true,
+ "description": true,
+ "items": true
+ }
+}
+
+```
+
+todos.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» title|boolean|false|none|none|
+|»» description|boolean|false|none|none|
+|»» items|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
diff --git a/sandbox/in-mail-example/README.md b/sandbox/in-mail-example/README.md
index 518030e403..129b20bfc3 100644
--- a/sandbox/in-mail-example/README.md
+++ b/sandbox/in-mail-example/README.md
@@ -28,6 +28,10 @@ You can also run `node .` to skip the build step.
Open http://127.0.0.1:3000 in your browser.
+#### API Details
+
+Visit the [OpenAPI spec docs](./openapi.md)
+
## Rebuild the project
To incrementally build the project:
diff --git a/sandbox/in-mail-example/openapi.md b/sandbox/in-mail-example/openapi.md
new file mode 100644
index 0000000000..5f34490faa
--- /dev/null
+++ b/sandbox/in-mail-example/openapi.md
@@ -0,0 +1,3891 @@
+---
+title: In-mail Service v1.0.0
+language_tabs:
+ - "'javascript": JavaScript
+ - "'javascript--nodejs": Node.JS'
+language_clients:
+ - "'javascript": request'
+ - "'javascript--nodejs": ""
+toc_footers: []
+includes: []
+search: false
+highlight_theme: darkula
+headingLevel: 2
+
+---
+
+
+
+In-mail Service v1.0.0
+
+> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
+
+in mail example
+
+Base URLs:
+
+* http://localhost:3000
+
+
+# Authentication
+
+- HTTP Authentication, scheme: bearer
+
+OriginatorController
+
+## API provides an interface for restore message from trash.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "messageIds": [
+ "string"
+ ],
+ "threadIds": [
+ "string"
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/mails/bulk/restore',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /mails/bulk/restore`
+
+> Body parameter
+
+```json
+{
+ "messageIds": [
+ "string"
+ ],
+ "threadIds": [
+ "string"
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|object|false|none|
+|body|body|[IdArraysPartial](#schemaidarrayspartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Restore Message Successful!|None|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Message identity does not exist.|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+
+
+This operation does not require authentication
+
+
+## API for moving mails to trash and then delete
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "messageIds": [
+ "string"
+ ],
+ "threadIds": [
+ "string"
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/mails/bulk/{storage}/{action}',
+{
+ method: 'DELETE',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /mails/bulk/{storage}/{action}`
+
+> Body parameter
+
+```json
+{
+ "messageIds": [
+ "string"
+ ],
+ "threadIds": [
+ "string"
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|storage|path|string|true|none|
+|action|path|string|true|none|
+|filter|query|object|false|none|
+|body|body|[IdArraysPartial](#schemaidarrayspartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Trash/Deletion of Mail(s) sucessful!|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Message identity does not exist.|None|
+
+
+This operation does not require authentication
+
+
+## API provides interface to mark read, unread and important
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "messageIds": [
+ "string"
+ ],
+ "threadIds": [
+ "string"
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/mails/marking/{markType}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /mails/marking/{markType}`
+
+> Body parameter
+
+```json
+{
+ "messageIds": [
+ "string"
+ ],
+ "threadIds": [
+ "string"
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|markType|path|string|true|none|
+|body|body|[IdArraysPartial](#schemaidarrayspartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Message is marked read/unread/important|None|
+
+
+This operation does not require authentication
+
+
+## API provides an interface for removing attachment before message is sent
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/mails/{messageId}/attachments/{attachmentId}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /mails/{messageId}/attachments/{attachmentId}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|messageId|path|string|true|none|
+|attachmentId|path|string|true|none|
+|filter|query|object|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Deletetion of Attachment Successful!|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Message identity does not exist.|None|
+
+
+This operation does not require authentication
+
+
+## API provides an interface for adding attachment before message is sent.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/mails/{messageId}/attachments',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /mails/{messageId}/attachments`
+
+> Body parameter
+
+```json
+{
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|messageId|path|string|true|none|
+|filter|query|object|false|none|
+|body|body|object|false|none|
+|» attachments|body|[[AttachmentPartial](#schemaattachmentpartial)]|false|[(tsType: Partial, schemaOptions: { partial: true })]|
+|»» AttachmentPartial|body|[AttachmentPartial](#schemaattachmentpartial)|false|(tsType: Partial, schemaOptions: { partial: true })|
+|»»» deleted|body|boolean|false|none|
+|»»» deletedOn|body|string(date-time)¦null|false|none|
+|»»» deletedBy|body|string¦null|false|none|
+|»»» createdOn|body|string(date-time)|false|none|
+|»»» modifiedOn|body|string(date-time)|false|none|
+|»»» createdBy|body|string|false|none|
+|»»» modifiedBy|body|string|false|none|
+|»»» id|body|string|false|none|
+|»»» name|body|string|false|none|
+|»»» path|body|string|false|none|
+|»»» thumbnail|body|string|false|none|
+|»»» mime|body|string|false|none|
+|»»» extId|body|string|false|none|
+|»»» extMetadata|body|object|false|none|
+|»»» messageId|body|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "items": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ]
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|collect single attachment for user by message identifier|[Attachment add response schema](#schemaattachment add response schema)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Message identity does not exist.|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+
+
+This operation does not require authentication
+
+
+## API for sending a drafted message.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/mails/{messageId}/send',
+{
+ method: 'PATCH'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /mails/{messageId}/send`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|messageId|path|string|true|none|
+|filter|query|object|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Mail is Successfully sent!|None|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Message identity does not exist.|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+
+
+This operation does not require authentication
+
+
+## Update API. Update draft messages.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "threadId": "string",
+ "groups": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string"
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "body": "string",
+ "subject": "string",
+ "status": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/mails/{messageId}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /mails/{messageId}`
+
+> Body parameter
+
+```json
+{
+ "threadId": "string",
+ "groups": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string"
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "body": "string",
+ "subject": "string",
+ "status": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|messageId|path|string|true|none|
+|body|body|[composeMailBody](#schemacomposemailbody)|false|none|
+
+> Example responses
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Message identity does not exist.|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+|application/json|Unknown|collect single message for user by message identifier|None|
+
+Response Schema
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+None
+
+
+## ComposeAPI. For drafting, reply on and create new message
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "threadId": "string",
+ "groups": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string"
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "body": "string",
+ "subject": "string",
+ "status": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/mails',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /mails`
+
+> Body parameter
+
+```json
+{
+ "threadId": "string",
+ "groups": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string"
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "body": "string",
+ "subject": "string",
+ "status": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[composeMailBody](#schemacomposemailbody)|false|none|
+
+> Example responses
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|collect single message for user by message identifier|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Message identity does not exist.|None|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+CollectorController
+
+## GET Message API. Collect a single message based on message identity.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/mails/{messageId}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /mails/{messageId}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|messageId|path|string|true|none|
+|filter|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "item": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Gets mail details based on unique message id|Inline|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthrized token in header.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Message identity does not exist|None|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» item|string|false|none|none|
+
+
+This operation does not require authentication
+
+
+## Collect a list of all messages.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/mails',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /mails`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|messageFilter|query|object|false|none|
+|groupFilter|query|object|false|none|
+
+> Example responses
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|fetch mails|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthrized token in header.|None|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+## GET Thread Message API. Collect complete single message thread based on thread identity.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/threads/{threadId}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /threads/{threadId}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|threadId|path|string|true|none|
+|filter|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "item": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {}
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Fetches a thread along with message, group, attachment(s) etc based on unique thread Id|Inline|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Message identity does not exist|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» item|[Thread](#schemathread)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» subject|string|true|none|none|
+|»» messageCounts|number|false|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+
+
+This operation does not require authentication
+
+
+## Thread List API. Collect a list of all threads.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/threads',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /threads`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|threadFilter|query|object|false|none|
+|groupFilter|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "version": "string",
+ "items": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ]
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|fetch threads|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» version|string|false|none|none|
+|» items|[[Thread](#schemathread)]|false|none|none|
+|»» Thread|[Thread](#schemathread)|false|none|none|
+|»»» deleted|boolean|false|none|none|
+|»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»» deletedBy|string¦null|false|none|none|
+|»»» createdOn|string(date-time)|false|none|none|
+|»»» modifiedOn|string(date-time)|false|none|none|
+|»»» createdBy|string|false|none|none|
+|»»» modifiedBy|string|false|none|none|
+|»»» id|string|false|none|none|
+|»»» subject|string|true|none|none|
+|»»» messageCounts|number|false|none|none|
+|»»» extId|string|false|none|none|
+|»»» extMetadata|object|false|none|none|
+
+
+This operation does not require authentication
+
+
+PingController
+
+## PingController.ping
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/ping',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /ping`
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "greeting": "string",
+ "date": "string",
+ "url": "string",
+ "headers": {
+ "Content-Type": "string"
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Ping Response|[PingResponse](#schemapingresponse)|
+
+
+This operation does not require authentication
+
+
+ReplyAndForwardController
+
+## API provides interface to forward single message.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "groups": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string"
+ }
+ ],
+ "subject": "string",
+ "body": "string",
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "status": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/threads/{threadId}/forward',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /threads/{threadId}/forward`
+
+> Body parameter
+
+```json
+{
+ "groups": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string"
+ }
+ ],
+ "subject": "string",
+ "body": "string",
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "status": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|threadId|path|string|true|none|
+|body|body|object|false|none|
+|» groups|body|[[GroupPartial](#schemagrouppartial)]|true|[(tsType: Partial, schemaOptions: { partial: true })]|
+|»» GroupPartial|body|[GroupPartial](#schemagrouppartial)|false|(tsType: Partial, schemaOptions: { partial: true })|
+|»»» deleted|body|boolean|false|none|
+|»»» deletedOn|body|string(date-time)¦null|false|none|
+|»»» deletedBy|body|string¦null|false|none|
+|»»» createdOn|body|string(date-time)|false|none|
+|»»» modifiedOn|body|string(date-time)|false|none|
+|»»» createdBy|body|string|false|none|
+|»»» modifiedBy|body|string|false|none|
+|»»» id|body|string|false|none|
+|»»» party|body|string|false|none|
+|»»» type|body|string|false|none|
+|»»» isImportant|body|boolean|false|none|
+|»»» storage|body|string|false|none|
+|»»» visibility|body|string|false|none|
+|»»» extId|body|string|false|none|
+|»»» extMetadata|body|object|false|none|
+|»»» messageId|body|string|false|none|
+|»»» threadId|body|string|false|none|
+|» subject|body|string|false|none|
+|» body|body|string|false|none|
+|» attachments|body|[[AttachmentPartial](#schemaattachmentpartial)]|false|[(tsType: Partial, schemaOptions: { partial: true })]|
+|»» AttachmentPartial|body|[AttachmentPartial](#schemaattachmentpartial)|false|(tsType: Partial, schemaOptions: { partial: true })|
+|»»» deleted|body|boolean|false|none|
+|»»» deletedOn|body|string(date-time)¦null|false|none|
+|»»» deletedBy|body|string¦null|false|none|
+|»»» createdOn|body|string(date-time)|false|none|
+|»»» modifiedOn|body|string(date-time)|false|none|
+|»»» createdBy|body|string|false|none|
+|»»» modifiedBy|body|string|false|none|
+|»»» id|body|string|false|none|
+|»»» name|body|string|false|none|
+|»»» path|body|string|false|none|
+|»»» thumbnail|body|string|false|none|
+|»»» mime|body|string|false|none|
+|»»» extId|body|string|false|none|
+|»»» extMetadata|body|object|false|none|
+|»»» messageId|body|string|false|none|
+|» meta|body|[[MetaPartial](#schemametapartial)]|false|[(tsType: Partial , schemaOptions: { partial: true })]|
+|»» MetaPartial|body|[MetaPartial](#schemametapartial)|false|(tsType: Partial , schemaOptions: { partial: true })|
+|»»» deleted|body|boolean|false|none|
+|»»» deletedOn|body|string(date-time)¦null|false|none|
+|»»» deletedBy|body|string¦null|false|none|
+|»»» createdOn|body|string(date-time)|false|none|
+|»»» modifiedOn|body|string(date-time)|false|none|
+|»»» createdBy|body|string|false|none|
+|»»» modifiedBy|body|string|false|none|
+|»»» id|body|string|false|none|
+|»»» key|body|string|false|none|
+|»»» value|body|string|false|none|
+|»»» extId|body|string|false|none|
+|»»» extMetadata|body|object|false|none|
+|»»» messageId|body|string|false|none|
+|» status|body|string|false|none|
+
+#### Enumerated Values
+
+|Parameter|Value|
+|---|---|
+|»»» type|from|
+|»»» type|to|
+|»»» type|cc|
+|»»» type|bcc|
+|»»» storage|draft|
+|»»» storage|send|
+|»»» storage|inbox|
+|»»» storage|trash|
+|»»» visibility|read|
+|»»» visibility|new|
+|»»» visibility|unread|
+|»»» visibility|important|
+|»»» visibility|not-important|
+
+> Example responses
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Message is forwarded to another recipient|None|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Message identity does not exist.|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+## API provides interface to reply to a single message
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "body": "string",
+ "subject": "string",
+ "status": "string",
+ "extId": "string"
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/threads/{threadId}/mails/{messageId}/replies',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /threads/{threadId}/mails/{messageId}/replies`
+
+> Body parameter
+
+```json
+{
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "body": "string",
+ "subject": "string",
+ "status": "string",
+ "extId": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|threadId|path|string|true|none|
+|messageId|path|string|true|none|
+|replyAll|query|boolean|false|none|
+|body|body|object|false|none|
+|» attachments|body|[[AttachmentPartial](#schemaattachmentpartial)]|false|[(tsType: Partial, schemaOptions: { partial: true })]|
+|»» AttachmentPartial|body|[AttachmentPartial](#schemaattachmentpartial)|false|(tsType: Partial, schemaOptions: { partial: true })|
+|»»» deleted|body|boolean|false|none|
+|»»» deletedOn|body|string(date-time)¦null|false|none|
+|»»» deletedBy|body|string¦null|false|none|
+|»»» createdOn|body|string(date-time)|false|none|
+|»»» modifiedOn|body|string(date-time)|false|none|
+|»»» createdBy|body|string|false|none|
+|»»» modifiedBy|body|string|false|none|
+|»»» id|body|string|false|none|
+|»»» name|body|string|false|none|
+|»»» path|body|string|false|none|
+|»»» thumbnail|body|string|false|none|
+|»»» mime|body|string|false|none|
+|»»» extId|body|string|false|none|
+|»»» extMetadata|body|object|false|none|
+|»»» messageId|body|string|false|none|
+|» meta|body|[[MetaPartial](#schemametapartial)]|false|[(tsType: Partial , schemaOptions: { partial: true })]|
+|»» MetaPartial|body|[MetaPartial](#schemametapartial)|false|(tsType: Partial , schemaOptions: { partial: true })|
+|»»» deleted|body|boolean|false|none|
+|»»» deletedOn|body|string(date-time)¦null|false|none|
+|»»» deletedBy|body|string¦null|false|none|
+|»»» createdOn|body|string(date-time)|false|none|
+|»»» modifiedOn|body|string(date-time)|false|none|
+|»»» createdBy|body|string|false|none|
+|»»» modifiedBy|body|string|false|none|
+|»»» id|body|string|false|none|
+|»»» key|body|string|false|none|
+|»»» value|body|string|false|none|
+|»»» extId|body|string|false|none|
+|»»» extMetadata|body|object|false|none|
+|»»» messageId|body|string|false|none|
+|» body|body|string|true|none|
+|» subject|body|string|false|none|
+|» status|body|string|true|none|
+|» extId|body|string|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Message is replied back to the sender|None|
+
+
+This operation does not require authentication
+
+
+# Schemas
+
+idResponse
+
+
+
+
+
+
+```json
+false
+
+```
+
+### Properties
+
+*None*
+
+composeMailBody
+
+
+
+
+
+
+```json
+{
+ "threadId": "string",
+ "groups": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string"
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "body": "string",
+ "subject": "string",
+ "status": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|threadId|string|false|none|none|
+|groups|[[GroupPartial](#schemagrouppartial)]|true|none|[(tsType: Partial, schemaOptions: { partial: true })]|
+|attachments|[[AttachmentPartial](#schemaattachmentpartial)]|false|none|[(tsType: Partial, schemaOptions: { partial: true })]|
+|meta|[[MetaPartial](#schemametapartial)]|false|none|[(tsType: Partial , schemaOptions: { partial: true })]|
+|body|string|true|none|none|
+|subject|string|false|none|none|
+|status|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+Attachment
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+}
+
+```
+
+Attachment
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|name|string|true|none|none|
+|path|string|true|none|none|
+|thumbnail|string|true|none|none|
+|mime|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|messageId|string|false|none|none|
+
+AttachmentPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+}
+
+```
+
+AttachmentPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|name|string|false|none|none|
+|path|string|false|none|none|
+|thumbnail|string|false|none|none|
+|mime|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|messageId|string|false|none|none|
+
+IdArraysPartial
+
+
+
+
+
+
+```json
+{
+ "messageIds": [
+ "string"
+ ],
+ "threadIds": [
+ "string"
+ ]
+}
+
+```
+
+IdArraysPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|messageIds|[string]|false|none|none|
+|threadIds|[string]|false|none|none|
+
+IdArrays
+
+
+
+
+
+
+```json
+{
+ "messageIds": [
+ "string"
+ ],
+ "threadIds": [
+ "string"
+ ]
+}
+
+```
+
+IdArrays
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|messageIds|[string]|false|none|none|
+|threadIds|[string]|false|none|none|
+
+
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+}
+
+```
+
+MetaPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|key|string|false|none|none|
+|value|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|messageId|string|false|none|none|
+
+GroupPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string"
+}
+
+```
+
+GroupPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|party|string|false|none|none|
+|type|string|false|none|none|
+|isImportant|boolean|false|none|none|
+|storage|string|false|none|none|
+|visibility|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|messageId|string|false|none|none|
+|threadId|string|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|type|from|
+|type|to|
+|type|cc|
+|type|bcc|
+|storage|draft|
+|storage|send|
+|storage|inbox|
+|storage|trash|
+|visibility|read|
+|visibility|new|
+|visibility|unread|
+|visibility|important|
+|visibility|not-important|
+
+Attachment add response schema
+
+
+
+
+
+
+```json
+{
+ "items": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ]
+}
+
+```
+
+Attachment add response schema
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|items|[[Attachment](#schemaattachment)]|false|none|none|
+
+AttachmentExcluding_deleted_WithRelations
+
+
+
+
+
+
+```json
+{
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {}
+ ]
+ }
+ }
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {}
+ }
+ ]
+ }
+ }
+}
+
+```
+
+AttachmentExcluding_deleted_WithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|name|string|true|none|none|
+|path|string|true|none|none|
+|thumbnail|string|true|none|none|
+|mime|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|messageId|string|false|none|none|
+|message|[MessageExcluding_deleted_WithRelations](#schemamessageexcluding_deleted_withrelations)|false|none|(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })|
+
+ThreadExcluding_deleted_WithRelations
+
+
+
+
+
+
+```json
+{
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [],
+ "group": [
+ {}
+ ]
+ }
+ }
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {}
+ }
+ ]
+ }
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {}
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": []
+ }
+ },
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {}
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {}
+ }
+ ],
+ "group": []
+ }
+ }
+ ]
+}
+
+```
+
+ThreadExcluding_deleted_WithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|subject|string|true|none|none|
+|messageCounts|number|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|message|[[MessageExcluding_deleted_WithRelations](#schemamessageexcluding_deleted_withrelations)]|false|none|[(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })]|
+|group|[[GroupExcluding_deleted_WithRelations](#schemagroupexcluding_deleted_withrelations)]|false|none|[(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })]|
+
+GroupExcluding_deleted_WithRelations
+
+
+
+
+
+
+```json
+{
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {}
+ ]
+ }
+ }
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {}
+ }
+ ]
+ }
+ },
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {}
+ }
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {}
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {}
+ },
+ "thread": {}
+ }
+ ]
+ }
+}
+
+```
+
+GroupExcluding_deleted_WithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|party|string|true|none|none|
+|type|string|true|none|none|
+|isImportant|boolean|false|none|none|
+|storage|string|false|none|none|
+|visibility|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|messageId|string|false|none|none|
+|threadId|string|false|none|none|
+|message|[MessageExcluding_deleted_WithRelations](#schemamessageexcluding_deleted_withrelations)|false|none|(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })|
+|thread|[ThreadExcluding_deleted_WithRelations](#schemathreadexcluding_deleted_withrelations)|false|none|(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|type|from|
+|type|to|
+|type|cc|
+|type|bcc|
+|storage|draft|
+|storage|send|
+|storage|inbox|
+|storage|trash|
+|visibility|read|
+|visibility|new|
+|visibility|unread|
+|visibility|important|
+|visibility|not-important|
+
+
+
+
+
+
+
+
+```json
+{
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {}
+ ]
+ }
+ }
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {}
+ }
+ ]
+ }
+ }
+}
+
+```
+
+MetaExcluding_deleted_WithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|key|string|true|none|none|
+|value|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|messageId|string|false|none|none|
+|message|[MessageExcluding_deleted_WithRelations](#schemamessageexcluding_deleted_withrelations)|false|none|(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })|
+
+MessageExcluding_deleted_WithRelations
+
+
+
+
+
+
+```json
+{
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {}
+ ]
+ }
+ }
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {}
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {}
+ ]
+ }
+ },
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {}
+ }
+ ],
+ "group": [
+ {}
+ ]
+ }
+ }
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {}
+ ]
+ }
+ }
+ ],
+ "meta": [],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {}
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {}
+ }
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {}
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {}
+ },
+ "thread": {}
+ }
+ ]
+ }
+}
+
+```
+
+MessageExcluding_deleted_WithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|sender|string|true|none|none|
+|subject|string|true|none|none|
+|body|string|true|none|none|
+|status|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|threadId|string|false|none|none|
+|attachment|[[AttachmentExcluding_deleted_WithRelations](#schemaattachmentexcluding_deleted_withrelations)]|false|none|[(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })]|
+|group|[[GroupExcluding_deleted_WithRelations](#schemagroupexcluding_deleted_withrelations)]|false|none|[(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })]|
+|meta|[[MetaExcluding_deleted_WithRelations](#schemametaexcluding_deleted_withrelations)]|false|none|[(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })]|
+|thread|[ThreadExcluding_deleted_WithRelations](#schemathreadexcluding_deleted_withrelations)|false|none|(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|draft|
+|status|send|
+
+Message
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string"
+}
+
+```
+
+Message
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|sender|string|true|none|none|
+|subject|string|true|none|none|
+|body|string|true|none|none|
+|status|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|threadId|string|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|draft|
+|status|send|
+
+PingResponse
+
+
+
+
+
+
+```json
+{
+ "greeting": "string",
+ "date": "string",
+ "url": "string",
+ "headers": {
+ "Content-Type": "string"
+ }
+}
+
+```
+
+PingResponse
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|greeting|string|false|none|none|
+|date|string|false|none|none|
+|url|string|false|none|none|
+|headers|object|false|none|none|
+|» Content-Type|string|false|none|none|
+
+Thread
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+Thread
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|subject|string|true|none|none|
+|messageCounts|number|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
diff --git a/sandbox/notification-socket-example/README.md b/sandbox/notification-socket-example/README.md
index 8237f70647..1258028899 100644
--- a/sandbox/notification-socket-example/README.md
+++ b/sandbox/notification-socket-example/README.md
@@ -1,3 +1,7 @@
# notification-socket-example
[![LoopBack](https://github.com/strongloop/loopback-next/raw/master/docs/site/imgs/branding/Powered-by-LoopBack-Badge-(blue)-@2x.png)](http://loopback.io/)
+
+#### API Details
+
+Visit the [OpenAPI spec docs](./openapi.md)
\ No newline at end of file
diff --git a/sandbox/notification-socket-example/openapi.md b/sandbox/notification-socket-example/openapi.md
new file mode 100644
index 0000000000..adc3572fb0
--- /dev/null
+++ b/sandbox/notification-socket-example/openapi.md
@@ -0,0 +1,2557 @@
+---
+title: Notification Service v1.0.0
+language_tabs:
+ - "'javascript": JavaScript
+ - "'javascript--nodejs": Node.JS'
+language_clients:
+ - "'javascript": request'
+ - "'javascript--nodejs": ""
+toc_footers: []
+includes: []
+search: false
+highlight_theme: darkula
+headingLevel: 2
+
+---
+
+
+
+Notification Service v1.0.0
+
+> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
+
+sandbox
+
+Base URLs:
+
+* http://localhost:3000
+
+# Authentication
+
+- HTTP Authentication, scheme: bearer
+
+NotificationUserController
+
+## NotificationUserController.createAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+ }
+];
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/notification-users/bulk',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /notification-users/bulk`
+
+> Body parameter
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+ }
+]
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewNotificationUser](#schemanewnotificationuser)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Notification User model instance|[NotificationUser](#schemanotificationuser)|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/notification-users/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /notification-users/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|NotificationUser model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.deleteAllHard
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/notification-users/hard',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /notification-users/hard`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Notification DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/notification-users/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /notification-users/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[NotificationUser](#schemanotificationuser)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|NotificationUser PUT success|None|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/notification-users/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /notification-users/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[NotificationUserPartial](#schemanotificationuserpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|NotificationUser PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/notification-users/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /notification-users/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|NotificationUser instance|[NotificationUser](#schemanotificationuser)|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/notification-users/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /notification-users/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|NotificationUser DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/notification-users',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /notification-users`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewNotificationUser](#schemanewnotificationuser)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|NotificationUser model instance|[NotificationUser](#schemanotificationuser)|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/notification-users',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /notification-users`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[NotificationUserPartial](#schemanotificationuserpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|NotificationUser PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/notification-users',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /notification-users`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[notification_users.Filter](#schemanotification_users.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of NotificationUser model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[NotificationUser](#schemanotificationuser)]|false|none|none|
+|» NotificationUser|[NotificationUser](#schemanotificationuser)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» id|string|false|none|none|
+|»» notificationId|string|true|none|none|
+|»» userId|string|true|none|none|
+|»» isRead|boolean|false|none|none|
+|»» actionMeta|object|false|none|none|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.deleteAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/notification-users',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /notification-users`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Notification DELETE success|None|
+
+
+This operation does not require authentication
+
+
+NotificationUserNotificationController
+
+## NotificationUserNotificationController.getNotification
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/notification-users/{id}/notification',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /notification-users/{id}/notification`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "id": "string",
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Notification belonging to NotificationUser|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[Notification](#schemanotification)]|false|none|none|
+|» Notification|[Notification](#schemanotification)|false|none|none|
+|»» id|string|false|none|none|
+|»» subject|string¦null|false|none|none|
+|»» body|string|true|none|none|
+|»» receiver|object|true|none|none|
+|»» type|number|true|none|none|
+|»» sentDate|string(date-time)|false|none|none|
+|»» options|object|false|none|none|
+
+
+This operation does not require authentication
+
+
+PubnubNotificationController
+
+## PubnubNotificationController.grantAccess
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "receiver": {},
+ "type": 0,
+ "options": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'Authorization':'string',
+ 'pubnubToken':'string'
+};
+
+fetch('http://localhost:3000/notifications/access/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /notifications/access/{id}`
+
+> Body parameter
+
+```json
+{
+ "receiver": {},
+ "type": 0,
+ "options": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|Authorization|header|string|false|none|
+|pubnubToken|header|string|true|none|
+|body|body|[NotificationAccess](#schemanotificationaccess)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "ttl": 0,
+ "cipherKey": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Access response|[AccessResponseDto](#schemaaccessresponsedto)|
+
+
+This operation does not require authentication
+
+
+## PubnubNotificationController.revokeAccess
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/notifications/access/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /notifications/access/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Object with success|None|
+
+
+This operation does not require authentication
+
+
+NotificationController
+
+## NotificationController.createBulkNotificaitions
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = [
+ {
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+ }
+];
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/notifications/bulk',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /notifications/bulk`
+
+> Body parameter
+
+```json
+[
+ {
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+ }
+]
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NotificationExcluding_id_](#schemanotificationexcluding_id_)|false|none|
+
+> Example responses
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Notifications|None|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+## NotificationController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/notifications/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /notifications/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Notification model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## NotificationController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/notifications/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /notifications/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "id": "string",
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Notification model instance|[Notification](#schemanotification)|
+
+
+This operation does not require authentication
+
+
+## NotificationController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/notifications',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /notifications`
+
+> Body parameter
+
+```json
+{
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NotificationExcluding_id_](#schemanotificationexcluding_id_)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "id": "string",
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Notification model instance|[Notification](#schemanotification)|
+
+
+This operation does not require authentication
+
+
+## NotificationController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/notifications',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /notifications`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[notifications.Filter](#schemanotifications.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "id": "string",
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Notification model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[Notification](#schemanotification)]|false|none|none|
+|» Notification|[Notification](#schemanotification)|false|none|none|
+|»» id|string|false|none|none|
+|»» subject|string¦null|false|none|none|
+|»» body|string|true|none|none|
+|»» receiver|object|true|none|none|
+|»» type|number|true|none|none|
+|»» sentDate|string(date-time)|false|none|none|
+|»» options|object|false|none|none|
+
+
+This operation does not require authentication
+
+
+## NotificationController.deleteAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/notifications',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /notifications`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Notification DELETE success|None|
+
+
+This operation does not require authentication
+
+
+NotificationNotificationUserController
+
+## NotificationNotificationUserController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/notifications/{id}/notification-users',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /notifications/{id}/notification-users`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[NewNotificationUserInNotification](#schemanewnotificationuserinnotification)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Notification model instance|[NotificationUser](#schemanotificationuser)|
+
+
+This operation does not require authentication
+
+
+## NotificationNotificationUserController.patch
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/notifications/{id}/notification-users',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /notifications/{id}/notification-users`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+|body|body|[NotificationUserPartial](#schemanotificationuserpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Notification.NotificationUser PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## NotificationNotificationUserController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/notifications/{id}/notification-users',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /notifications/{id}/notification-users`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Notification has many NotificationUser|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[NotificationUser](#schemanotificationuser)]|false|none|none|
+|» NotificationUser|[NotificationUser](#schemanotificationuser)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» id|string|false|none|none|
+|»» notificationId|string|true|none|none|
+|»» userId|string|true|none|none|
+|»» isRead|boolean|false|none|none|
+|»» actionMeta|object|false|none|none|
+
+
+This operation does not require authentication
+
+
+## NotificationNotificationUserController.delete
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/notifications/{id}/notification-users',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /notifications/{id}/notification-users`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Notification.NotificationUser DELETE success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+PingController
+
+## PingController.ping
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/ping',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /ping`
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "greeting": "string",
+ "date": "string",
+ "url": "string",
+ "headers": {
+ "Content-Type": "string"
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Ping Response|[PingResponse](#schemapingresponse)|
+
+
+This operation does not require authentication
+
+
+HomePageController
+
+## HomePageController.homePage
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'text/html'
+};
+
+fetch('http://localhost:3000/',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /`
+
+> Example responses
+
+> 200 Response
+
+```
+"string"
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Home Page|string|
+
+
+This operation does not require authentication
+
+
+# Schemas
+
+Notification
+
+
+
+
+
+
+```json
+{
+ "id": "string",
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+}
+
+```
+
+Notification
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|id|string|false|none|none|
+|subject|string¦null|false|none|none|
+|body|string|true|none|none|
+|receiver|object|true|none|none|
+|type|number|true|none|none|
+|sentDate|string(date-time)|false|none|none|
+|options|object|false|none|none|
+
+NotificationExcluding_id_
+
+
+
+
+
+
+```json
+{
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+}
+
+```
+
+NotificationExcluding_id_
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|subject|string¦null|false|none|none|
+|body|string|true|none|none|
+|receiver|object|true|none|none|
+|type|number|true|none|none|
+|sentDate|string(date-time)|false|none|none|
+|options|object|false|none|none|
+
+NotificationUser
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+
+```
+
+NotificationUser
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|id|string|false|none|none|
+|notificationId|string|true|none|none|
+|userId|string|true|none|none|
+|isRead|boolean|false|none|none|
+|actionMeta|object|false|none|none|
+
+NewNotificationUser
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+
+```
+
+NewNotificationUser
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|notificationId|string|true|none|none|
+|userId|string|true|none|none|
+|isRead|boolean|false|none|none|
+|actionMeta|object|false|none|none|
+
+NotificationUserPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+
+```
+
+NotificationUserPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|id|string|false|none|none|
+|notificationId|string|false|none|none|
+|userId|string|false|none|none|
+|isRead|boolean|false|none|none|
+|actionMeta|object|false|none|none|
+
+AccessResponseDto
+
+
+
+
+
+
+```json
+{
+ "ttl": 0,
+ "cipherKey": "string"
+}
+
+```
+
+AccessResponseDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|ttl|number|false|none|none|
+|cipherKey|string|false|none|none|
+
+NotificationAccess
+
+
+
+
+
+
+```json
+{
+ "receiver": {},
+ "type": 0,
+ "options": {}
+}
+
+```
+
+NotificationAccess
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|receiver|object|true|none|this will contain the list of reciever to give access|
+|type|number|true|none|none|
+|options|object|false|none|this will contain the ttl property for now|
+
+NewNotificationUserInNotification
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+
+```
+
+NewNotificationUserInNotification
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|notificationId|string|false|none|none|
+|userId|string|true|none|none|
+|isRead|boolean|false|none|none|
+|actionMeta|object|false|none|none|
+
+loopback.Count
+
+
+
+
+
+
+```json
+{
+ "count": 0
+}
+
+```
+
+loopback.Count
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|count|number|false|none|none|
+
+notification_users.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+notification_users.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+notification_users.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+notification_users.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[notification_users.ScopeFilter](#schemanotification_users.scopefilter)|false|none|none|
+
+notification_users.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "id": true,
+ "notificationId": true,
+ "userId": true,
+ "isRead": true,
+ "actionMeta": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+notification_users.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» notificationId|boolean|false|none|none|
+|»» userId|boolean|false|none|none|
+|»» isRead|boolean|false|none|none|
+|»» actionMeta|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[notification_users.IncludeFilter.Items](#schemanotification_users.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+notifications.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+notifications.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+notifications.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+notifications.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[notifications.ScopeFilter](#schemanotifications.scopefilter)|false|none|none|
+
+notifications.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "id": true,
+ "subject": true,
+ "body": true,
+ "receiver": true,
+ "type": true,
+ "sentDate": true,
+ "options": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+notifications.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» id|boolean|false|none|none|
+|»» subject|boolean|false|none|none|
+|»» body|boolean|false|none|none|
+|»» receiver|boolean|false|none|none|
+|»» type|boolean|false|none|none|
+|»» sentDate|boolean|false|none|none|
+|»» options|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[notifications.IncludeFilter.Items](#schemanotifications.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+PingResponse
+
+
+
+
+
+
+```json
+{
+ "greeting": "string",
+ "date": "string",
+ "url": "string",
+ "headers": {
+ "Content-Type": "string"
+ }
+}
+
+```
+
+PingResponse
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|greeting|string|false|none|none|
+|date|string|false|none|none|
+|url|string|false|none|none|
+|headers|object|false|none|none|
+|» Content-Type|string|false|none|none|
+
diff --git a/sandbox/scheduler-example/README.md b/sandbox/scheduler-example/README.md
index 2a613d02ac..6619510dfe 100644
--- a/sandbox/scheduler-example/README.md
+++ b/sandbox/scheduler-example/README.md
@@ -28,6 +28,10 @@ You can also run `node .` to skip the build step.
Open http://127.0.0.1:3000 in your browser.
+#### API Details
+
+Visit the [OpenAPI spec docs](./openapi.md)
+
## Rebuild the project
To incrementally build the project:
diff --git a/sandbox/scheduler-example/openapi.md b/sandbox/scheduler-example/openapi.md
new file mode 100644
index 0000000000..9c652a32c9
--- /dev/null
+++ b/sandbox/scheduler-example/openapi.md
@@ -0,0 +1,17800 @@
+---
+title: Scheduler Service v1.0.0
+language_tabs:
+ - "'javascript": JavaScript
+ - "'javascript--nodejs": Node.JS'
+language_clients:
+ - "'javascript": request'
+ - "'javascript--nodejs": ""
+toc_footers: []
+includes: []
+search: false
+highlight_theme: darkula
+headingLevel: 2
+
+---
+
+
+
+Scheduler Service v1.0.0
+
+> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
+
+scheduler-example
+
+Base URLs:
+
+* http://localhost:3000
+
+
+# Authentication
+
+- HTTP Authentication, scheme: bearer
+
+AttachmentController
+
+## AttachmentController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/attachments/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /attachments/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Attachment model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## AttachmentController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/attachments/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /attachments/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[Attachment](#schemaattachment)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Attachment PUT success|None|
+
+
+This operation does not require authentication
+
+
+## AttachmentController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/attachments/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /attachments/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[AttachmentPartial](#schemaattachmentpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Attachment PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## AttachmentController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/attachments/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /attachments/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[attachments.Filter](#schemaattachments.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Attachment model instance|[AttachmentWithRelations](#schemaattachmentwithrelations)|
+
+
+This operation does not require authentication
+
+
+## AttachmentController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/attachments/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /attachments/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Attachment DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## AttachmentController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/attachments',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /attachments`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewAttachment](#schemanewattachment)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Attachment model instance|[Attachment](#schemaattachment)|
+
+
+This operation does not require authentication
+
+
+## AttachmentController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/attachments',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /attachments`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[AttachmentPartial](#schemaattachmentpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Attachment PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## AttachmentController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/attachments',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /attachments`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[attachments.Filter1](#schemaattachments.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {}
+ ]
+ }
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Attachment model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|[(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })]|
+|» AttachmentWithRelations|[AttachmentWithRelations](#schemaattachmentwithrelations)|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» fileUrl|string|true|none|none|
+|»» iconLink|string|false|none|none|
+|»» mimeType|string|false|none|none|
+|»» title|string|false|none|none|
+|»» eventId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+|»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» deleted|boolean|false|none|none|
+|»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»» deletedBy|string¦null|false|none|none|
+|»»» createdOn|string(date-time)|false|none|none|
+|»»» modifiedOn|string(date-time)|false|none|none|
+|»»» createdBy|string|false|none|none|
+|»»» modifiedBy|string|false|none|none|
+|»»» id|string|false|none|none|
+|»»» bgColor|string|false|none|none|
+|»»» description|string|false|none|none|
+|»»» endDateTime|string(date-time)|false|none|none|
+|»»» fgColor|string|false|none|none|
+|»»» iCalUid|string|false|none|none|
+|»»» isFullDayEvent|boolean|false|none|none|
+|»»» isLocked|boolean|false|none|none|
+|»»» link|string|false|none|none|
+|»»» location|string|false|none|none|
+|»»» meetingLink|string|false|none|none|
+|»»» identifier|string|false|none|none|
+|»»» startDateTime|string(date-time)|false|none|none|
+|»»» status|string|false|none|none|
+|»»» summary|string|false|none|none|
+|»»» timezone|string|false|none|none|
+|»»» calendarId|string|true|none|none|
+|»»» parentEventId|string|false|none|none|
+|»»» extId|string|false|none|none|
+|»»» extMetadata|object|false|none|none|
+|»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» deleted|boolean|false|none|none|
+|»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»» deletedBy|string¦null|false|none|none|
+|»»»» createdOn|string(date-time)|false|none|none|
+|»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»» createdBy|string|false|none|none|
+|»»»» modifiedBy|string|false|none|none|
+|»»»» id|string|false|none|none|
+|»»»» source|string|false|none|none|
+|»»»» enableWorkingHours|boolean|false|none|none|
+|»»»» location|string|false|none|none|
+|»»»» identifier|string|true|none|none|
+|»»»» summary|string|false|none|none|
+|»»»» timezone|string|false|none|none|
+|»»»» extId|string|false|none|none|
+|»»»» extMetadata|object|false|none|none|
+|»»»» events|[[EventWithRelations](#schemaeventwithrelations)]|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» EventWithRelations|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» workingHours|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» WorkingHourWithRelations|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» deleted|boolean|false|none|none|
+|»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»» createdBy|string|false|none|none|
+|»»»»»» modifiedBy|string|false|none|none|
+|»»»»»» id|string|false|none|none|
+|»»»»»» dayOfWeek|number|false|none|none|
+|»»»»»» end|string|false|none|none|
+|»»»»»» start|string|false|none|none|
+|»»»»»» calendarId|string|true|none|none|
+|»»»»»» extId|string|false|none|none|
+|»»»»»» extMetadata|object|false|none|none|
+|»»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» subscriptions|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» deleted|boolean|false|none|none|
+|»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»» createdBy|string|false|none|none|
+|»»»»»» modifiedBy|string|false|none|none|
+|»»»»»» id|string|false|none|none|
+|»»»»»» accessRole|string|false|none|none|
+|»»»»»» bgColor|string|false|none|none|
+|»»»»»» fgColor|string|false|none|none|
+|»»»»»» isHidden|boolean|false|none|none|
+|»»»»»» isPrimary|boolean|false|none|none|
+|»»»»»» identifier|string|true|none|none|
+|»»»»»» defaultReminders|object|false|none|none|
+|»»»»»» notificationSettings|object|false|none|none|
+|»»»»»» calendarId|string|true|none|none|
+|»»»»»» extId|string|false|none|none|
+|»»»»»» extMetadata|object|false|none|none|
+|»»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» parentEvent|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» attendees|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» AttendeeWithRelations|[AttendeeWithRelations](#schemaattendeewithrelations)|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» identifier|string|true|none|none|
+|»»»»» isOptional|boolean|false|none|none|
+|»»»»» isOrganizer|boolean|false|none|none|
+|»»»»» messages|string|false|none|none|
+|»»»»» responseStatus|string|false|none|none|
+|»»»»» eventId|string|true|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» attachments|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» AttachmentWithRelations|[AttachmentWithRelations](#schemaattachmentwithrelations)|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+
+This operation does not require authentication
+
+
+AttendeeController
+
+## AttendeeController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/attendees/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /attendees/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Attendee model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## AttendeeController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/attendees/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /attendees/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[Attendee](#schemaattendee)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Attendee PUT success|None|
+
+
+This operation does not require authentication
+
+
+## AttendeeController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/attendees/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /attendees/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[AttendeePartial](#schemaattendeepartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Attendee PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## AttendeeController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/attendees/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /attendees/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[attendees.Filter](#schemaattendees.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Attendee model instance|[AttendeeWithRelations](#schemaattendeewithrelations)|
+
+
+This operation does not require authentication
+
+
+## AttendeeController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/attendees/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /attendees/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Attendee DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## AttendeeController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/attendees',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /attendees`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewAttendee](#schemanewattendee)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Attendee model instance|[Attendee](#schemaattendee)|
+
+
+This operation does not require authentication
+
+
+## AttendeeController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/attendees',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /attendees`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[AttendeePartial](#schemaattendeepartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Attendee PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## AttendeeController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/attendees',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /attendees`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[attendees.Filter1](#schemaattendees.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {}
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Attendee model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|[(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })]|
+|» AttendeeWithRelations|[AttendeeWithRelations](#schemaattendeewithrelations)|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» identifier|string|true|none|none|
+|»» isOptional|boolean|false|none|none|
+|»» isOrganizer|boolean|false|none|none|
+|»» messages|string|false|none|none|
+|»» responseStatus|string|false|none|none|
+|»» eventId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+|»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» deleted|boolean|false|none|none|
+|»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»» deletedBy|string¦null|false|none|none|
+|»»» createdOn|string(date-time)|false|none|none|
+|»»» modifiedOn|string(date-time)|false|none|none|
+|»»» createdBy|string|false|none|none|
+|»»» modifiedBy|string|false|none|none|
+|»»» id|string|false|none|none|
+|»»» bgColor|string|false|none|none|
+|»»» description|string|false|none|none|
+|»»» endDateTime|string(date-time)|false|none|none|
+|»»» fgColor|string|false|none|none|
+|»»» iCalUid|string|false|none|none|
+|»»» isFullDayEvent|boolean|false|none|none|
+|»»» isLocked|boolean|false|none|none|
+|»»» link|string|false|none|none|
+|»»» location|string|false|none|none|
+|»»» meetingLink|string|false|none|none|
+|»»» identifier|string|false|none|none|
+|»»» startDateTime|string(date-time)|false|none|none|
+|»»» status|string|false|none|none|
+|»»» summary|string|false|none|none|
+|»»» timezone|string|false|none|none|
+|»»» calendarId|string|true|none|none|
+|»»» parentEventId|string|false|none|none|
+|»»» extId|string|false|none|none|
+|»»» extMetadata|object|false|none|none|
+|»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» deleted|boolean|false|none|none|
+|»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»» deletedBy|string¦null|false|none|none|
+|»»»» createdOn|string(date-time)|false|none|none|
+|»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»» createdBy|string|false|none|none|
+|»»»» modifiedBy|string|false|none|none|
+|»»»» id|string|false|none|none|
+|»»»» source|string|false|none|none|
+|»»»» enableWorkingHours|boolean|false|none|none|
+|»»»» location|string|false|none|none|
+|»»»» identifier|string|true|none|none|
+|»»»» summary|string|false|none|none|
+|»»»» timezone|string|false|none|none|
+|»»»» extId|string|false|none|none|
+|»»»» extMetadata|object|false|none|none|
+|»»»» events|[[EventWithRelations](#schemaeventwithrelations)]|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» EventWithRelations|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» workingHours|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» WorkingHourWithRelations|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» deleted|boolean|false|none|none|
+|»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»» createdBy|string|false|none|none|
+|»»»»»» modifiedBy|string|false|none|none|
+|»»»»»» id|string|false|none|none|
+|»»»»»» dayOfWeek|number|false|none|none|
+|»»»»»» end|string|false|none|none|
+|»»»»»» start|string|false|none|none|
+|»»»»»» calendarId|string|true|none|none|
+|»»»»»» extId|string|false|none|none|
+|»»»»»» extMetadata|object|false|none|none|
+|»»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» subscriptions|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» deleted|boolean|false|none|none|
+|»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»» createdBy|string|false|none|none|
+|»»»»»» modifiedBy|string|false|none|none|
+|»»»»»» id|string|false|none|none|
+|»»»»»» accessRole|string|false|none|none|
+|»»»»»» bgColor|string|false|none|none|
+|»»»»»» fgColor|string|false|none|none|
+|»»»»»» isHidden|boolean|false|none|none|
+|»»»»»» isPrimary|boolean|false|none|none|
+|»»»»»» identifier|string|true|none|none|
+|»»»»»» defaultReminders|object|false|none|none|
+|»»»»»» notificationSettings|object|false|none|none|
+|»»»»»» calendarId|string|true|none|none|
+|»»»»»» extId|string|false|none|none|
+|»»»»»» extMetadata|object|false|none|none|
+|»»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» parentEvent|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» attendees|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» AttendeeWithRelations|[AttendeeWithRelations](#schemaattendeewithrelations)|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»» attachments|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» AttachmentWithRelations|[AttachmentWithRelations](#schemaattachmentwithrelations)|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» fileUrl|string|true|none|none|
+|»»»»» iconLink|string|false|none|none|
+|»»»»» mimeType|string|false|none|none|
+|»»»»» title|string|false|none|none|
+|»»»»» eventId|string|true|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+
+This operation does not require authentication
+
+
+CalendarController
+
+## CalendarController.createWithSubscription
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/calendarSubscription',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /calendars/calendarSubscription`
+
+> Body parameter
+
+```json
+{
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewCalendar](#schemanewcalendar)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar model instance|[CalendarDTO](#schemacalendardto)|
+
+
+This operation does not require authentication
+
+
+## CalendarController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /calendars/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## CalendarController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /calendars/{id}`
+
+> Body parameter
+
+```json
+{
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[CalendarDTO](#schemacalendardto)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Calendar PUT success|None|
+
+
+This operation does not require authentication
+
+
+## CalendarController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /calendars/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[CalendarPartial](#schemacalendarpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Calendar PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## CalendarController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /calendars/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[calendars.Filter](#schemacalendars.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ }
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": []
+ }
+ }
+ ]
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar model instance|[CalendarWithRelations](#schemacalendarwithrelations)|
+
+
+This operation does not require authentication
+
+
+## CalendarController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/calendars/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /calendars/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Calendar DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## CalendarController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /calendars`
+
+> Body parameter
+
+```json
+{
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewCalendar](#schemanewcalendar)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar model instance|[Calendar](#schemacalendar)|
+
+
+This operation does not require authentication
+
+
+## CalendarController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /calendars`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[CalendarPartial](#schemacalendarpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## CalendarController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /calendars`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[calendars.Filter1](#schemacalendars.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Calendar model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[CalendarWithRelations](#schemacalendarwithrelations)]|false|none|[(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })]|
+|» CalendarWithRelations|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» source|string|false|none|none|
+|»» enableWorkingHours|boolean|false|none|none|
+|»» location|string|false|none|none|
+|»» identifier|string|true|none|none|
+|»» summary|string|false|none|none|
+|»» timezone|string|false|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+|»» events|[[EventWithRelations](#schemaeventwithrelations)]|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» EventWithRelations|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» deleted|boolean|false|none|none|
+|»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»» deletedBy|string¦null|false|none|none|
+|»»»» createdOn|string(date-time)|false|none|none|
+|»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»» createdBy|string|false|none|none|
+|»»»» modifiedBy|string|false|none|none|
+|»»»» id|string|false|none|none|
+|»»»» bgColor|string|false|none|none|
+|»»»» description|string|false|none|none|
+|»»»» endDateTime|string(date-time)|false|none|none|
+|»»»» fgColor|string|false|none|none|
+|»»»» iCalUid|string|false|none|none|
+|»»»» isFullDayEvent|boolean|false|none|none|
+|»»»» isLocked|boolean|false|none|none|
+|»»»» link|string|false|none|none|
+|»»»» location|string|false|none|none|
+|»»»» meetingLink|string|false|none|none|
+|»»»» identifier|string|false|none|none|
+|»»»» startDateTime|string(date-time)|false|none|none|
+|»»»» status|string|false|none|none|
+|»»»» summary|string|false|none|none|
+|»»»» timezone|string|false|none|none|
+|»»»» calendarId|string|true|none|none|
+|»»»» parentEventId|string|false|none|none|
+|»»»» extId|string|false|none|none|
+|»»»» extMetadata|object|false|none|none|
+|»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» parentEvent|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» attendees|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» AttendeeWithRelations|[AttendeeWithRelations](#schemaattendeewithrelations)|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» deleted|boolean|false|none|none|
+|»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»» createdBy|string|false|none|none|
+|»»»»»» modifiedBy|string|false|none|none|
+|»»»»»» id|string|false|none|none|
+|»»»»»» identifier|string|true|none|none|
+|»»»»»» isOptional|boolean|false|none|none|
+|»»»»»» isOrganizer|boolean|false|none|none|
+|»»»»»» messages|string|false|none|none|
+|»»»»»» responseStatus|string|false|none|none|
+|»»»»»» eventId|string|true|none|none|
+|»»»»»» extId|string|false|none|none|
+|»»»»»» extMetadata|object|false|none|none|
+|»»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» attachments|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» AttachmentWithRelations|[AttachmentWithRelations](#schemaattachmentwithrelations)|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» deleted|boolean|false|none|none|
+|»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»» createdBy|string|false|none|none|
+|»»»»»» modifiedBy|string|false|none|none|
+|»»»»»» id|string|false|none|none|
+|»»»»»» fileUrl|string|true|none|none|
+|»»»»»» iconLink|string|false|none|none|
+|»»»»»» mimeType|string|false|none|none|
+|»»»»»» title|string|false|none|none|
+|»»»»»» eventId|string|true|none|none|
+|»»»»»» extId|string|false|none|none|
+|»»»»»» extMetadata|object|false|none|none|
+|»»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»» workingHours|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»» WorkingHourWithRelations|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» deleted|boolean|false|none|none|
+|»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»» deletedBy|string¦null|false|none|none|
+|»»»» createdOn|string(date-time)|false|none|none|
+|»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»» createdBy|string|false|none|none|
+|»»»» modifiedBy|string|false|none|none|
+|»»»» id|string|false|none|none|
+|»»»» dayOfWeek|number|false|none|none|
+|»»»» end|string|false|none|none|
+|»»»» start|string|false|none|none|
+|»»»» calendarId|string|true|none|none|
+|»»»» extId|string|false|none|none|
+|»»»» extMetadata|object|false|none|none|
+|»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»» subscriptions|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» deleted|boolean|false|none|none|
+|»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»» deletedBy|string¦null|false|none|none|
+|»»»» createdOn|string(date-time)|false|none|none|
+|»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»» createdBy|string|false|none|none|
+|»»»» modifiedBy|string|false|none|none|
+|»»»» id|string|false|none|none|
+|»»»» accessRole|string|false|none|none|
+|»»»» bgColor|string|false|none|none|
+|»»»» fgColor|string|false|none|none|
+|»»»» isHidden|boolean|false|none|none|
+|»»»» isPrimary|boolean|false|none|none|
+|»»»» identifier|string|true|none|none|
+|»»»» defaultReminders|object|false|none|none|
+|»»»» notificationSettings|object|false|none|none|
+|»»»» calendarId|string|true|none|none|
+|»»»» extId|string|false|none|none|
+|»»»» extMetadata|object|false|none|none|
+|»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+
+This operation does not require authentication
+
+
+SubscriptionController
+
+## SubscriptionController.findMe
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/subscriptions/me',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /calendars/subscriptions/me`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[subscriptions.Filter](#schemasubscriptions.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {}
+ ]
+ }
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Subscription model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|[(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })]|
+|» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» accessRole|string|false|none|none|
+|»» bgColor|string|false|none|none|
+|»» fgColor|string|false|none|none|
+|»» isHidden|boolean|false|none|none|
+|»» isPrimary|boolean|false|none|none|
+|»» identifier|string|true|none|none|
+|»» defaultReminders|object|false|none|none|
+|»» notificationSettings|object|false|none|none|
+|»» calendarId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+|»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» deleted|boolean|false|none|none|
+|»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»» deletedBy|string¦null|false|none|none|
+|»»» createdOn|string(date-time)|false|none|none|
+|»»» modifiedOn|string(date-time)|false|none|none|
+|»»» createdBy|string|false|none|none|
+|»»» modifiedBy|string|false|none|none|
+|»»» id|string|false|none|none|
+|»»» source|string|false|none|none|
+|»»» enableWorkingHours|boolean|false|none|none|
+|»»» location|string|false|none|none|
+|»»» identifier|string|true|none|none|
+|»»» summary|string|false|none|none|
+|»»» timezone|string|false|none|none|
+|»»» extId|string|false|none|none|
+|»»» extMetadata|object|false|none|none|
+|»»» events|[[EventWithRelations](#schemaeventwithrelations)]|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» EventWithRelations|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» bgColor|string|false|none|none|
+|»»»»» description|string|false|none|none|
+|»»»»» endDateTime|string(date-time)|false|none|none|
+|»»»»» fgColor|string|false|none|none|
+|»»»»» iCalUid|string|false|none|none|
+|»»»»» isFullDayEvent|boolean|false|none|none|
+|»»»»» isLocked|boolean|false|none|none|
+|»»»»» link|string|false|none|none|
+|»»»»» location|string|false|none|none|
+|»»»»» meetingLink|string|false|none|none|
+|»»»»» identifier|string|false|none|none|
+|»»»»» startDateTime|string(date-time)|false|none|none|
+|»»»»» status|string|false|none|none|
+|»»»»» summary|string|false|none|none|
+|»»»»» timezone|string|false|none|none|
+|»»»»» calendarId|string|true|none|none|
+|»»»»» parentEventId|string|false|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» parentEvent|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» attendees|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» AttendeeWithRelations|[AttendeeWithRelations](#schemaattendeewithrelations)|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»»» deleted|boolean|false|none|none|
+|»»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»»» createdBy|string|false|none|none|
+|»»»»»»» modifiedBy|string|false|none|none|
+|»»»»»»» id|string|false|none|none|
+|»»»»»»» identifier|string|true|none|none|
+|»»»»»»» isOptional|boolean|false|none|none|
+|»»»»»»» isOrganizer|boolean|false|none|none|
+|»»»»»»» messages|string|false|none|none|
+|»»»»»»» responseStatus|string|false|none|none|
+|»»»»»»» eventId|string|true|none|none|
+|»»»»»»» extId|string|false|none|none|
+|»»»»»»» extMetadata|object|false|none|none|
+|»»»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» attachments|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» AttachmentWithRelations|[AttachmentWithRelations](#schemaattachmentwithrelations)|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»»» deleted|boolean|false|none|none|
+|»»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»»» createdBy|string|false|none|none|
+|»»»»»»» modifiedBy|string|false|none|none|
+|»»»»»»» id|string|false|none|none|
+|»»»»»»» fileUrl|string|true|none|none|
+|»»»»»»» iconLink|string|false|none|none|
+|»»»»»»» mimeType|string|false|none|none|
+|»»»»»»» title|string|false|none|none|
+|»»»»»»» eventId|string|true|none|none|
+|»»»»»»» extId|string|false|none|none|
+|»»»»»»» extMetadata|object|false|none|none|
+|»»»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» workingHours|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» WorkingHourWithRelations|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» dayOfWeek|number|false|none|none|
+|»»»»» end|string|false|none|none|
+|»»»»» start|string|false|none|none|
+|»»»»» calendarId|string|true|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» subscriptions|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+
+This operation does not require authentication
+
+
+## SubscriptionController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/subscriptions/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /subscriptions/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Subscription model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## SubscriptionController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/subscriptions/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /subscriptions/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[Subscription](#schemasubscription)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Subscription PUT success|None|
+
+
+This operation does not require authentication
+
+
+## SubscriptionController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/subscriptions/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /subscriptions/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[SubscriptionPartial](#schemasubscriptionpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Subscription PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## SubscriptionController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/subscriptions/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /subscriptions/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[subscriptions.Filter1](#schemasubscriptions.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Subscription model instance|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|
+
+
+This operation does not require authentication
+
+
+## SubscriptionController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/subscriptions/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /subscriptions/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Subscription DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## SubscriptionController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/subscriptions',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /subscriptions`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewSubscription](#schemanewsubscription)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Subscription model instance|[Subscription](#schemasubscription)|
+
+
+This operation does not require authentication
+
+
+## SubscriptionController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/subscriptions',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /subscriptions`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[SubscriptionPartial](#schemasubscriptionpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Subscription PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## SubscriptionController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/subscriptions',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /subscriptions`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[subscriptions.Filter](#schemasubscriptions.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {}
+ ]
+ }
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Subscription model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|[(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })]|
+|» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» accessRole|string|false|none|none|
+|»» bgColor|string|false|none|none|
+|»» fgColor|string|false|none|none|
+|»» isHidden|boolean|false|none|none|
+|»» isPrimary|boolean|false|none|none|
+|»» identifier|string|true|none|none|
+|»» defaultReminders|object|false|none|none|
+|»» notificationSettings|object|false|none|none|
+|»» calendarId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+|»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» deleted|boolean|false|none|none|
+|»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»» deletedBy|string¦null|false|none|none|
+|»»» createdOn|string(date-time)|false|none|none|
+|»»» modifiedOn|string(date-time)|false|none|none|
+|»»» createdBy|string|false|none|none|
+|»»» modifiedBy|string|false|none|none|
+|»»» id|string|false|none|none|
+|»»» source|string|false|none|none|
+|»»» enableWorkingHours|boolean|false|none|none|
+|»»» location|string|false|none|none|
+|»»» identifier|string|true|none|none|
+|»»» summary|string|false|none|none|
+|»»» timezone|string|false|none|none|
+|»»» extId|string|false|none|none|
+|»»» extMetadata|object|false|none|none|
+|»»» events|[[EventWithRelations](#schemaeventwithrelations)]|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» EventWithRelations|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» bgColor|string|false|none|none|
+|»»»»» description|string|false|none|none|
+|»»»»» endDateTime|string(date-time)|false|none|none|
+|»»»»» fgColor|string|false|none|none|
+|»»»»» iCalUid|string|false|none|none|
+|»»»»» isFullDayEvent|boolean|false|none|none|
+|»»»»» isLocked|boolean|false|none|none|
+|»»»»» link|string|false|none|none|
+|»»»»» location|string|false|none|none|
+|»»»»» meetingLink|string|false|none|none|
+|»»»»» identifier|string|false|none|none|
+|»»»»» startDateTime|string(date-time)|false|none|none|
+|»»»»» status|string|false|none|none|
+|»»»»» summary|string|false|none|none|
+|»»»»» timezone|string|false|none|none|
+|»»»»» calendarId|string|true|none|none|
+|»»»»» parentEventId|string|false|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» parentEvent|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» attendees|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» AttendeeWithRelations|[AttendeeWithRelations](#schemaattendeewithrelations)|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»»» deleted|boolean|false|none|none|
+|»»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»»» createdBy|string|false|none|none|
+|»»»»»»» modifiedBy|string|false|none|none|
+|»»»»»»» id|string|false|none|none|
+|»»»»»»» identifier|string|true|none|none|
+|»»»»»»» isOptional|boolean|false|none|none|
+|»»»»»»» isOrganizer|boolean|false|none|none|
+|»»»»»»» messages|string|false|none|none|
+|»»»»»»» responseStatus|string|false|none|none|
+|»»»»»»» eventId|string|true|none|none|
+|»»»»»»» extId|string|false|none|none|
+|»»»»»»» extMetadata|object|false|none|none|
+|»»»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» attachments|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» AttachmentWithRelations|[AttachmentWithRelations](#schemaattachmentwithrelations)|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»»» deleted|boolean|false|none|none|
+|»»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»»» createdBy|string|false|none|none|
+|»»»»»»» modifiedBy|string|false|none|none|
+|»»»»»»» id|string|false|none|none|
+|»»»»»»» fileUrl|string|true|none|none|
+|»»»»»»» iconLink|string|false|none|none|
+|»»»»»»» mimeType|string|false|none|none|
+|»»»»»»» title|string|false|none|none|
+|»»»»»»» eventId|string|true|none|none|
+|»»»»»»» extId|string|false|none|none|
+|»»»»»»» extMetadata|object|false|none|none|
+|»»»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» workingHours|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» WorkingHourWithRelations|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» dayOfWeek|number|false|none|none|
+|»»»»» end|string|false|none|none|
+|»»»»» start|string|false|none|none|
+|»»»»» calendarId|string|true|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» subscriptions|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+
+This operation does not require authentication
+
+
+CalendarEventController
+
+## CalendarEventController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/{id}/events',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /calendars/{id}/events`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[NewEventInCalendar](#schemaneweventincalendar)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar model instance|[Event](#schemaevent)|
+
+
+This operation does not require authentication
+
+
+## CalendarEventController.patch
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/{id}/events',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /calendars/{id}/events`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+|body|body|[EventPartial](#schemaeventpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar.Event PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## CalendarEventController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/{id}/events',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /calendars/{id}/events`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|object|false|none|
+|timeMax|query|string(date-time)|false|none|
+|timeMin|query|string(date-time)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Calendar has many Event|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[Event](#schemaevent)]|false|none|none|
+|» Event|[Event](#schemaevent)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» bgColor|string|false|none|none|
+|»» description|string|false|none|none|
+|»» endDateTime|string(date-time)|false|none|none|
+|»» fgColor|string|false|none|none|
+|»» iCalUid|string|false|none|none|
+|»» isFullDayEvent|boolean|false|none|none|
+|»» isLocked|boolean|false|none|none|
+|»» link|string|false|none|none|
+|»» location|string|false|none|none|
+|»» meetingLink|string|false|none|none|
+|»» identifier|string|false|none|none|
+|»» startDateTime|string(date-time)|false|none|none|
+|»» status|string|false|none|none|
+|»» summary|string|false|none|none|
+|»» timezone|string|false|none|none|
+|»» calendarId|string|true|none|none|
+|»» parentEventId|string|false|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+
+
+This operation does not require authentication
+
+
+## CalendarEventController.delete
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/{id}/events',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /calendars/{id}/events`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar.Event DELETE success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+CalendarSubscriptionController
+
+## CalendarSubscriptionController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/{id}/subscriptions',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /calendars/{id}/subscriptions`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[NewSubscriptionInCalendar](#schemanewsubscriptionincalendar)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar model instance|[Subscription](#schemasubscription)|
+
+
+This operation does not require authentication
+
+
+## CalendarSubscriptionController.patch
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/{id}/subscriptions',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /calendars/{id}/subscriptions`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+|body|body|[SubscriptionPartial](#schemasubscriptionpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar.Subscription PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## CalendarSubscriptionController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/{id}/subscriptions',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /calendars/{id}/subscriptions`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Calendar has many Subscriptions|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[Subscription](#schemasubscription)]|false|none|none|
+|» Subscription|[Subscription](#schemasubscription)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» accessRole|string|false|none|none|
+|»» bgColor|string|false|none|none|
+|»» fgColor|string|false|none|none|
+|»» isHidden|boolean|false|none|none|
+|»» isPrimary|boolean|false|none|none|
+|»» identifier|string|true|none|none|
+|»» defaultReminders|object|false|none|none|
+|»» notificationSettings|object|false|none|none|
+|»» calendarId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+
+This operation does not require authentication
+
+
+## CalendarSubscriptionController.delete
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/{id}/subscriptions',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /calendars/{id}/subscriptions`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar.Subscription DELETE success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+CalendarWorkingHourController
+
+## CalendarWorkingHourController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/{id}/working-hours',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /calendars/{id}/working-hours`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[NewWorkingHourInCalendar](#schemanewworkinghourincalendar)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar model instance|[WorkingHour](#schemaworkinghour)|
+
+
+This operation does not require authentication
+
+
+## CalendarWorkingHourController.patch
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/{id}/working-hours',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /calendars/{id}/working-hours`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+|body|body|[WorkingHourPartial](#schemaworkinghourpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar.WorkingHour PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## CalendarWorkingHourController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/{id}/working-hours',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /calendars/{id}/working-hours`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Calendar has many WorkingHour|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[WorkingHour](#schemaworkinghour)]|false|none|none|
+|» WorkingHour|[WorkingHour](#schemaworkinghour)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» dayOfWeek|number|false|none|none|
+|»» end|string|false|none|none|
+|»» start|string|false|none|none|
+|»» calendarId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+
+This operation does not require authentication
+
+
+## CalendarWorkingHourController.delete
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/calendars/{id}/working-hours',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /calendars/{id}/working-hours`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar.WorkingHour DELETE success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+EventController
+
+## EventController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/events/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /events/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## EventController.getFeeBusyStatus
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "timeMax": "2019-08-24T14:15:22Z",
+ "timeMin": "2019-08-24T14:15:22Z",
+ "items": [
+ {
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "extId": "string",
+ "extMetadata": {},
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "attendeeId": "string",
+ "isOptional": true,
+ "attendeeIdentifier": "string",
+ "isOrganizer": true,
+ "messages": "string",
+ "eventId": "string"
+ }
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/events/freeBusy',
+{
+ method: 'GET',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /events/freeBusy`
+
+> Body parameter
+
+```json
+{
+ "timeMax": "2019-08-24T14:15:22Z",
+ "timeMin": "2019-08-24T14:15:22Z",
+ "items": [
+ {
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "extId": "string",
+ "extMetadata": {},
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "attendeeId": "string",
+ "isOptional": true,
+ "attendeeIdentifier": "string",
+ "isOrganizer": true,
+ "messages": "string",
+ "eventId": "string"
+ }
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[FreeBusyRequest](#schemafreebusyrequest)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Return value of EventController.getFeeBusyStatus|None|
+
+
+This operation does not require authentication
+
+
+## EventController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/events/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /events/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[Event](#schemaevent)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Event PUT success|None|
+
+
+This operation does not require authentication
+
+
+## EventController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/events/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /events/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[EventPartial](#schemaeventpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Event PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## EventController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/events/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /events/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[events.Filter](#schemaevents.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ },
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": []
+ }
+ }
+ ]
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event model instance|[EventWithRelations](#schemaeventwithrelations)|
+
+
+This operation does not require authentication
+
+
+## EventController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/events/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /events/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Event DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## EventController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/events',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /events`
+
+> Body parameter
+
+```json
+{
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewEvent](#schemanewevent)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event model instance|[Event](#schemaevent)|
+
+
+This operation does not require authentication
+
+
+## EventController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/events',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /events`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[EventPartial](#schemaeventpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## EventController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/events',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /events`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[events_attendees_view.Filter](#schemaevents_attendees_view.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Event model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[EventWithRelations](#schemaeventwithrelations)]|false|none|[(tsType: EventWithRelations, schemaOptions: { includeRelations: true })]|
+|» EventWithRelations|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» bgColor|string|false|none|none|
+|»» description|string|false|none|none|
+|»» endDateTime|string(date-time)|false|none|none|
+|»» fgColor|string|false|none|none|
+|»» iCalUid|string|false|none|none|
+|»» isFullDayEvent|boolean|false|none|none|
+|»» isLocked|boolean|false|none|none|
+|»» link|string|false|none|none|
+|»» location|string|false|none|none|
+|»» meetingLink|string|false|none|none|
+|»» identifier|string|false|none|none|
+|»» startDateTime|string(date-time)|false|none|none|
+|»» status|string|false|none|none|
+|»» summary|string|false|none|none|
+|»» timezone|string|false|none|none|
+|»» calendarId|string|true|none|none|
+|»» parentEventId|string|false|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+|»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» deleted|boolean|false|none|none|
+|»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»» deletedBy|string¦null|false|none|none|
+|»»» createdOn|string(date-time)|false|none|none|
+|»»» modifiedOn|string(date-time)|false|none|none|
+|»»» createdBy|string|false|none|none|
+|»»» modifiedBy|string|false|none|none|
+|»»» id|string|false|none|none|
+|»»» source|string|false|none|none|
+|»»» enableWorkingHours|boolean|false|none|none|
+|»»» location|string|false|none|none|
+|»»» identifier|string|true|none|none|
+|»»» summary|string|false|none|none|
+|»»» timezone|string|false|none|none|
+|»»» extId|string|false|none|none|
+|»»» extMetadata|object|false|none|none|
+|»»» events|[[EventWithRelations](#schemaeventwithrelations)]|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» EventWithRelations|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» workingHours|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» WorkingHourWithRelations|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» dayOfWeek|number|false|none|none|
+|»»»»» end|string|false|none|none|
+|»»»»» start|string|false|none|none|
+|»»»»» calendarId|string|true|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» subscriptions|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» accessRole|string|false|none|none|
+|»»»»» bgColor|string|false|none|none|
+|»»»»» fgColor|string|false|none|none|
+|»»»»» isHidden|boolean|false|none|none|
+|»»»»» isPrimary|boolean|false|none|none|
+|»»»»» identifier|string|true|none|none|
+|»»»»» defaultReminders|object|false|none|none|
+|»»»»» notificationSettings|object|false|none|none|
+|»»»»» calendarId|string|true|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»» parentEvent|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»» attendees|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»» AttendeeWithRelations|[AttendeeWithRelations](#schemaattendeewithrelations)|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» deleted|boolean|false|none|none|
+|»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»» deletedBy|string¦null|false|none|none|
+|»»»» createdOn|string(date-time)|false|none|none|
+|»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»» createdBy|string|false|none|none|
+|»»»» modifiedBy|string|false|none|none|
+|»»»» id|string|false|none|none|
+|»»»» identifier|string|true|none|none|
+|»»»» isOptional|boolean|false|none|none|
+|»»»» isOrganizer|boolean|false|none|none|
+|»»»» messages|string|false|none|none|
+|»»»» responseStatus|string|false|none|none|
+|»»»» eventId|string|true|none|none|
+|»»»» extId|string|false|none|none|
+|»»»» extMetadata|object|false|none|none|
+|»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»» attachments|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»» AttachmentWithRelations|[AttachmentWithRelations](#schemaattachmentwithrelations)|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» deleted|boolean|false|none|none|
+|»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»» deletedBy|string¦null|false|none|none|
+|»»»» createdOn|string(date-time)|false|none|none|
+|»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»» createdBy|string|false|none|none|
+|»»»» modifiedBy|string|false|none|none|
+|»»»» id|string|false|none|none|
+|»»»» fileUrl|string|true|none|none|
+|»»»» iconLink|string|false|none|none|
+|»»»» mimeType|string|false|none|none|
+|»»»» title|string|false|none|none|
+|»»»» eventId|string|true|none|none|
+|»»»» extId|string|false|none|none|
+|»»»» extMetadata|object|false|none|none|
+|»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+
+This operation does not require authentication
+
+
+EventAttachmentController
+
+## EventAttachmentController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/events/{id}/attachments',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /events/{id}/attachments`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[NewAttachmentInEvent](#schemanewattachmentinevent)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event model instance|[Attachment](#schemaattachment)|
+
+
+This operation does not require authentication
+
+
+## EventAttachmentController.patch
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/events/{id}/attachments',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /events/{id}/attachments`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+|body|body|[AttachmentPartial](#schemaattachmentpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event.Attachment PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## EventAttachmentController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/events/{id}/attachments',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /events/{id}/attachments`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Event has many Attachment|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[Attachment](#schemaattachment)]|false|none|none|
+|» Attachment|[Attachment](#schemaattachment)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» fileUrl|string|true|none|none|
+|»» iconLink|string|false|none|none|
+|»» mimeType|string|false|none|none|
+|»» title|string|false|none|none|
+|»» eventId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+
+
+This operation does not require authentication
+
+
+## EventAttachmentController.delete
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/events/{id}/attachments',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /events/{id}/attachments`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event.Attachment DELETE success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+EventAttendeeController
+
+## EventAttendeeController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/events/{id}/attendees',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /events/{id}/attendees`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[NewAttendeeInEvent](#schemanewattendeeinevent)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event model instance|[Attendee](#schemaattendee)|
+
+
+This operation does not require authentication
+
+
+## EventAttendeeController.patch
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/events/{id}/attendees',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /events/{id}/attendees`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+|body|body|[AttendeePartial](#schemaattendeepartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event.Attendee PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## EventAttendeeController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/events/{id}/attendees',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /events/{id}/attendees`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Event has many Attendee|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[Attendee](#schemaattendee)]|false|none|none|
+|» Attendee|[Attendee](#schemaattendee)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» identifier|string|true|none|none|
+|»» isOptional|boolean|false|none|none|
+|»» isOrganizer|boolean|false|none|none|
+|»» messages|string|false|none|none|
+|»» responseStatus|string|false|none|none|
+|»» eventId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+
+This operation does not require authentication
+
+
+## EventAttendeeController.delete
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/events/{id}/attendees',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /events/{id}/attendees`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event.Attendee DELETE success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+PingController
+
+## PingController.ping
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/ping',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /ping`
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "greeting": "string",
+ "date": "string",
+ "url": "string",
+ "headers": {
+ "Content-Type": "string"
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Ping Response|[PingResponse](#schemapingresponse)|
+
+
+This operation does not require authentication
+
+
+SettingsController
+
+## SettingsController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/settings/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /settings/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Settings model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## SettingsController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/settings/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /settings/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[Settings](#schemasettings)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Settings PUT success|None|
+
+
+This operation does not require authentication
+
+
+## SettingsController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/settings/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /settings/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[SettingsPartial](#schemasettingspartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Settings PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## SettingsController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/settings/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /settings/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[settings.Filter](#schemasettings.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Settings model instance|[SettingsWithRelations](#schemasettingswithrelations)|
+
+
+This operation does not require authentication
+
+
+## SettingsController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/settings/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /settings/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Settings DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## SettingsController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/settings',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /settings`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewSettings](#schemanewsettings)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Settings model instance|[Settings](#schemasettings)|
+
+
+This operation does not require authentication
+
+
+## SettingsController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/settings',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /settings`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[SettingsPartial](#schemasettingspartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Settings PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## SettingsController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/settings',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /settings`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[settings.Filter1](#schemasettings.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Settings model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[SettingsWithRelations](#schemasettingswithrelations)]|false|none|[(tsType: SettingsWithRelations, schemaOptions: { includeRelations: true })]|
+|» SettingsWithRelations|[SettingsWithRelations](#schemasettingswithrelations)|false|none|(tsType: SettingsWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» ownerId|string|true|none|none|
+|»» ownerType|string|false|none|none|
+|»» settingName|string|false|none|none|
+|»» settingValue|string|false|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|ownerType|global|
+|ownerType|user|
+|ownerType|calendar|
+|ownerType|event|
+
+
+This operation does not require authentication
+
+
+ThemeController
+
+## ThemeController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/themes/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /themes/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Theme model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## ThemeController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/themes/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /themes/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[Theme](#schematheme)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Theme PUT success|None|
+
+
+This operation does not require authentication
+
+
+## ThemeController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/themes/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /themes/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[ThemePartial](#schemathemepartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Theme PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## ThemeController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/themes/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /themes/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[themes.Filter](#schemathemes.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Theme model instance|[ThemeWithRelations](#schemathemewithrelations)|
+
+
+This operation does not require authentication
+
+
+## ThemeController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/themes/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /themes/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Theme DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## ThemeController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/themes',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /themes`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewTheme](#schemanewtheme)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Theme model instance|[Theme](#schematheme)|
+
+
+This operation does not require authentication
+
+
+## ThemeController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/themes',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /themes`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[ThemePartial](#schemathemepartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Theme PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## ThemeController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/themes',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /themes`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[themes.Filter1](#schemathemes.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Theme model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[ThemeWithRelations](#schemathemewithrelations)]|false|none|[(tsType: ThemeWithRelations, schemaOptions: { includeRelations: true })]|
+|» ThemeWithRelations|[ThemeWithRelations](#schemathemewithrelations)|false|none|(tsType: ThemeWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» calBg|string|false|none|none|
+|»» calFg|string|false|none|none|
+|»» eventBg|string|false|none|none|
+|»» eventFg|string|false|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+
+
+This operation does not require authentication
+
+
+WorkingHourController
+
+## WorkingHourController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/working-hours/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /working-hours/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|WorkingHour model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## WorkingHourController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/working-hours/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /working-hours/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[WorkingHour](#schemaworkinghour)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|WorkingHour PUT success|None|
+
+
+This operation does not require authentication
+
+
+## WorkingHourController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/working-hours/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /working-hours/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[WorkingHourPartial](#schemaworkinghourpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|WorkingHour PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## WorkingHourController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/working-hours/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /working-hours/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[working_hours.Filter](#schemaworking_hours.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|WorkingHour model instance|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|
+
+
+This operation does not require authentication
+
+
+## WorkingHourController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/working-hours/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /working-hours/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|WorkingHour DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## WorkingHourController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/working-hours',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /working-hours`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewWorkingHour](#schemanewworkinghour)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|WorkingHour model instance|[WorkingHour](#schemaworkinghour)|
+
+
+This operation does not require authentication
+
+
+## WorkingHourController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/working-hours',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /working-hours`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[WorkingHourPartial](#schemaworkinghourpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|WorkingHour PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## WorkingHourController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/working-hours',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /working-hours`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[working_hours.Filter1](#schemaworking_hours.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {}
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ }
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of WorkingHour model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|[(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })]|
+|» WorkingHourWithRelations|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» dayOfWeek|number|false|none|none|
+|»» end|string|false|none|none|
+|»» start|string|false|none|none|
+|»» calendarId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+|»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» deleted|boolean|false|none|none|
+|»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»» deletedBy|string¦null|false|none|none|
+|»»» createdOn|string(date-time)|false|none|none|
+|»»» modifiedOn|string(date-time)|false|none|none|
+|»»» createdBy|string|false|none|none|
+|»»» modifiedBy|string|false|none|none|
+|»»» id|string|false|none|none|
+|»»» source|string|false|none|none|
+|»»» enableWorkingHours|boolean|false|none|none|
+|»»» location|string|false|none|none|
+|»»» identifier|string|true|none|none|
+|»»» summary|string|false|none|none|
+|»»» timezone|string|false|none|none|
+|»»» extId|string|false|none|none|
+|»»» extMetadata|object|false|none|none|
+|»»» events|[[EventWithRelations](#schemaeventwithrelations)]|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» EventWithRelations|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» bgColor|string|false|none|none|
+|»»»»» description|string|false|none|none|
+|»»»»» endDateTime|string(date-time)|false|none|none|
+|»»»»» fgColor|string|false|none|none|
+|»»»»» iCalUid|string|false|none|none|
+|»»»»» isFullDayEvent|boolean|false|none|none|
+|»»»»» isLocked|boolean|false|none|none|
+|»»»»» link|string|false|none|none|
+|»»»»» location|string|false|none|none|
+|»»»»» meetingLink|string|false|none|none|
+|»»»»» identifier|string|false|none|none|
+|»»»»» startDateTime|string(date-time)|false|none|none|
+|»»»»» status|string|false|none|none|
+|»»»»» summary|string|false|none|none|
+|»»»»» timezone|string|false|none|none|
+|»»»»» calendarId|string|true|none|none|
+|»»»»» parentEventId|string|false|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» parentEvent|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» attendees|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» AttendeeWithRelations|[AttendeeWithRelations](#schemaattendeewithrelations)|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»»» deleted|boolean|false|none|none|
+|»»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»»» createdBy|string|false|none|none|
+|»»»»»»» modifiedBy|string|false|none|none|
+|»»»»»»» id|string|false|none|none|
+|»»»»»»» identifier|string|true|none|none|
+|»»»»»»» isOptional|boolean|false|none|none|
+|»»»»»»» isOrganizer|boolean|false|none|none|
+|»»»»»»» messages|string|false|none|none|
+|»»»»»»» responseStatus|string|false|none|none|
+|»»»»»»» eventId|string|true|none|none|
+|»»»»»»» extId|string|false|none|none|
+|»»»»»»» extMetadata|object|false|none|none|
+|»»»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» attachments|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» AttachmentWithRelations|[AttachmentWithRelations](#schemaattachmentwithrelations)|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»»» deleted|boolean|false|none|none|
+|»»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»»» createdBy|string|false|none|none|
+|»»»»»»» modifiedBy|string|false|none|none|
+|»»»»»»» id|string|false|none|none|
+|»»»»»»» fileUrl|string|true|none|none|
+|»»»»»»» iconLink|string|false|none|none|
+|»»»»»»» mimeType|string|false|none|none|
+|»»»»»»» title|string|false|none|none|
+|»»»»»»» eventId|string|true|none|none|
+|»»»»»»» extId|string|false|none|none|
+|»»»»»»» extMetadata|object|false|none|none|
+|»»»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» workingHours|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» WorkingHourWithRelations|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»» subscriptions|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» accessRole|string|false|none|none|
+|»»»»» bgColor|string|false|none|none|
+|»»»»» fgColor|string|false|none|none|
+|»»»»» isHidden|boolean|false|none|none|
+|»»»»» isPrimary|boolean|false|none|none|
+|»»»»» identifier|string|true|none|none|
+|»»»»» defaultReminders|object|false|none|none|
+|»»»»» notificationSettings|object|false|none|none|
+|»»»»» calendarId|string|true|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+
+This operation does not require authentication
+
+
+# Schemas
+
+Attachment
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+Attachment
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|fileUrl|string|true|none|none|
+|iconLink|string|false|none|none|
+|mimeType|string|false|none|none|
+|title|string|false|none|none|
+|eventId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+NewAttachment
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewAttachment
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|fileUrl|string|true|none|none|
+|iconLink|string|false|none|none|
+|mimeType|string|false|none|none|
+|title|string|false|none|none|
+|eventId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+AttendeeWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+}
+
+```
+
+AttendeeWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|identifier|string|true|none|none|
+|isOptional|boolean|false|none|none|
+|isOrganizer|boolean|false|none|none|
+|messages|string|false|none|none|
+|responseStatus|string|false|none|none|
+|eventId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+EventWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ },
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": []
+ }
+ }
+ ]
+}
+
+```
+
+EventWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|bgColor|string|false|none|none|
+|description|string|false|none|none|
+|endDateTime|string(date-time)|false|none|none|
+|fgColor|string|false|none|none|
+|iCalUid|string|false|none|none|
+|isFullDayEvent|boolean|false|none|none|
+|isLocked|boolean|false|none|none|
+|link|string|false|none|none|
+|location|string|false|none|none|
+|meetingLink|string|false|none|none|
+|identifier|string|false|none|none|
+|startDateTime|string(date-time)|false|none|none|
+|status|string|false|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|calendarId|string|true|none|none|
+|parentEventId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|parentEvent|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|attendees|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|[(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })]|
+|attachments|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|[(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })]|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+
+AttachmentWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+}
+
+```
+
+AttachmentWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|fileUrl|string|true|none|none|
+|iconLink|string|false|none|none|
+|mimeType|string|false|none|none|
+|title|string|false|none|none|
+|eventId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+
+AttachmentPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+AttachmentPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|fileUrl|string|false|none|none|
+|iconLink|string|false|none|none|
+|mimeType|string|false|none|none|
+|title|string|false|none|none|
+|eventId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+Attendee
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+Attendee
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|identifier|string|true|none|none|
+|isOptional|boolean|false|none|none|
+|isOrganizer|boolean|false|none|none|
+|messages|string|false|none|none|
+|responseStatus|string|false|none|none|
+|eventId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+NewAttendee
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewAttendee
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|identifier|string|true|none|none|
+|isOptional|boolean|false|none|none|
+|isOrganizer|boolean|false|none|none|
+|messages|string|false|none|none|
+|responseStatus|string|false|none|none|
+|eventId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+AttendeePartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+AttendeePartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|identifier|string|false|none|none|
+|isOptional|boolean|false|none|none|
+|isOrganizer|boolean|false|none|none|
+|messages|string|false|none|none|
+|responseStatus|string|false|none|none|
+|eventId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+Calendar
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+Calendar
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|source|string|false|none|none|
+|enableWorkingHours|boolean|false|none|none|
+|location|string|false|none|none|
+|identifier|string|true|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+WorkingHourExcluding_id_
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+WorkingHourExcluding_id_
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|dayOfWeek|number|false|none|none|
+|end|string|false|none|none|
+|start|string|false|none|none|
+|calendarId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+NewCalendar
+
+
+
+
+
+
+```json
+{
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+}
+
+```
+
+NewCalendar
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|source|string|false|none|none|
+|enableWorkingHours|boolean|false|none|none|
+|location|string|false|none|none|
+|identifier|string|true|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|workingHours|[[WorkingHourExcluding_id_](#schemaworkinghourexcluding_id_)]|false|none|[(tsType: Omit, schemaOptions: { exclude: [ 'id' ] })]|
+|subscription|object|false|none|none|
+
+WorkingHour
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+WorkingHour
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|dayOfWeek|number|false|none|none|
+|end|string|false|none|none|
+|start|string|false|none|none|
+|calendarId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+CalendarDTO
+
+
+
+
+
+
+```json
+{
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+}
+
+```
+
+CalendarDTO
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|id|string|false|none|none|
+|source|string|false|none|none|
+|enableWorkingHours|boolean|false|none|none|
+|location|string|false|none|none|
+|identifier|string|true|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|workingHours|[[WorkingHour](#schemaworkinghour)]|false|none|none|
+|subscription|object|false|none|none|
+
+CalendarWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ }
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": []
+ }
+ }
+ ]
+}
+
+```
+
+CalendarWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|source|string|false|none|none|
+|enableWorkingHours|boolean|false|none|none|
+|location|string|false|none|none|
+|identifier|string|true|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|events|[[EventWithRelations](#schemaeventwithrelations)]|false|none|[(tsType: EventWithRelations, schemaOptions: { includeRelations: true })]|
+|workingHours|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|[(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })]|
+|subscriptions|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|[(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })]|
+
+CalendarPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+CalendarPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|source|string|false|none|none|
+|enableWorkingHours|boolean|false|none|none|
+|location|string|false|none|none|
+|identifier|string|false|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+Event
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+Event
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|bgColor|string|false|none|none|
+|description|string|false|none|none|
+|endDateTime|string(date-time)|false|none|none|
+|fgColor|string|false|none|none|
+|iCalUid|string|false|none|none|
+|isFullDayEvent|boolean|false|none|none|
+|isLocked|boolean|false|none|none|
+|link|string|false|none|none|
+|location|string|false|none|none|
+|meetingLink|string|false|none|none|
+|identifier|string|false|none|none|
+|startDateTime|string(date-time)|false|none|none|
+|status|string|false|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|calendarId|string|true|none|none|
+|parentEventId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+
+AttachmentExcluding_id_
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+AttachmentExcluding_id_
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|fileUrl|string|true|none|none|
+|iconLink|string|false|none|none|
+|mimeType|string|false|none|none|
+|title|string|false|none|none|
+|eventId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+AttendeeExcluding_id_
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+AttendeeExcluding_id_
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|identifier|string|true|none|none|
+|isOptional|boolean|false|none|none|
+|isOrganizer|boolean|false|none|none|
+|messages|string|false|none|none|
+|responseStatus|string|false|none|none|
+|eventId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+NewEvent
+
+
+
+
+
+
+```json
+{
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewEvent
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|bgColor|string|false|none|none|
+|description|string|false|none|none|
+|endDateTime|string(date-time)|false|none|none|
+|fgColor|string|false|none|none|
+|iCalUid|string|false|none|none|
+|isFullDayEvent|boolean|false|none|none|
+|isLocked|boolean|false|none|none|
+|link|string|false|none|none|
+|location|string|false|none|none|
+|meetingLink|string|false|none|none|
+|identifier|string|false|none|none|
+|startDateTime|string(date-time)|false|none|none|
+|status|string|false|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|calendarId|string|true|none|none|
+|parentEventId|string|false|none|none|
+|attachments|[[AttachmentExcluding_id_](#schemaattachmentexcluding_id_)]|false|none|[(tsType: Omit, schemaOptions: { exclude: [ 'id' ] })]|
+|attendees|[[AttendeeExcluding_id_](#schemaattendeeexcluding_id_)]|false|none|[(tsType: Omit, schemaOptions: { exclude: [ 'id' ] })]|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+
+EventAttendeeViewItemDTO
+
+
+
+
+
+
+```json
+{
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "extId": "string",
+ "extMetadata": {},
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "attendeeId": "string",
+ "isOptional": true,
+ "attendeeIdentifier": "string",
+ "isOrganizer": true,
+ "messages": "string",
+ "eventId": "string"
+}
+
+```
+
+EventAttendeeViewItemDTO
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|id|string|false|none|none|
+|bgColor|string|false|none|none|
+|description|string|false|none|none|
+|endDateTime|string(date-time)|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|fgColor|string|false|none|none|
+|iCalUid|string|false|none|none|
+|isFullDayEvent|boolean|false|none|none|
+|isLocked|boolean|false|none|none|
+|link|string|false|none|none|
+|location|string|false|none|none|
+|meetingLink|string|false|none|none|
+|identifier|string|false|none|none|
+|startDateTime|string(date-time)|false|none|none|
+|status|string|false|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|attendeeId|string|false|none|none|
+|isOptional|boolean|false|none|none|
+|attendeeIdentifier|string|false|none|none|
+|isOrganizer|boolean|false|none|none|
+|messages|string|false|none|none|
+|eventId|string|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+
+FreeBusyRequest
+
+
+
+
+
+
+```json
+{
+ "timeMax": "2019-08-24T14:15:22Z",
+ "timeMin": "2019-08-24T14:15:22Z",
+ "items": [
+ {
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "extId": "string",
+ "extMetadata": {},
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "attendeeId": "string",
+ "isOptional": true,
+ "attendeeIdentifier": "string",
+ "isOrganizer": true,
+ "messages": "string",
+ "eventId": "string"
+ }
+ ]
+}
+
+```
+
+FreeBusyRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|timeMax|string(date-time)|true|none|none|
+|timeMin|string(date-time)|true|none|none|
+|items|[[EventAttendeeViewItemDTO](#schemaeventattendeeviewitemdto)]|false|none|none|
+
+FreeBusyDTO
+
+
+
+
+
+
+```json
+{
+ "timeMax": "2019-08-24T14:15:22Z",
+ "timeMin": "2019-08-24T14:15:22Z",
+ "items": [
+ {
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "extId": "string",
+ "extMetadata": {},
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "attendeeId": "string",
+ "isOptional": true,
+ "attendeeIdentifier": "string",
+ "isOrganizer": true,
+ "messages": "string",
+ "eventId": "string"
+ }
+ ]
+}
+
+```
+
+FreeBusyDTO
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|timeMax|string(date-time)|true|none|none|
+|timeMin|string(date-time)|true|none|none|
+|items|[[EventAttendeeViewItemDTO](#schemaeventattendeeviewitemdto)]|false|none|none|
+
+EventPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+EventPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|bgColor|string|false|none|none|
+|description|string|false|none|none|
+|endDateTime|string(date-time)|false|none|none|
+|fgColor|string|false|none|none|
+|iCalUid|string|false|none|none|
+|isFullDayEvent|boolean|false|none|none|
+|isLocked|boolean|false|none|none|
+|link|string|false|none|none|
+|location|string|false|none|none|
+|meetingLink|string|false|none|none|
+|identifier|string|false|none|none|
+|startDateTime|string(date-time)|false|none|none|
+|status|string|false|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|calendarId|string|false|none|none|
+|parentEventId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+
+Settings
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+Settings
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|ownerId|string|true|none|none|
+|ownerType|string|false|none|none|
+|settingName|string|false|none|none|
+|settingValue|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|ownerType|global|
+|ownerType|user|
+|ownerType|calendar|
+|ownerType|event|
+
+NewSettings
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewSettings
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|ownerId|string|true|none|none|
+|ownerType|string|false|none|none|
+|settingName|string|false|none|none|
+|settingValue|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|ownerType|global|
+|ownerType|user|
+|ownerType|calendar|
+|ownerType|event|
+
+SettingsWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+SettingsWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|ownerId|string|true|none|none|
+|ownerType|string|false|none|none|
+|settingName|string|false|none|none|
+|settingValue|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|ownerType|global|
+|ownerType|user|
+|ownerType|calendar|
+|ownerType|event|
+
+SettingsPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+SettingsPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|ownerId|string|false|none|none|
+|ownerType|string|false|none|none|
+|settingName|string|false|none|none|
+|settingValue|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|ownerType|global|
+|ownerType|user|
+|ownerType|calendar|
+|ownerType|event|
+
+Subscription
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+Subscription
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|accessRole|string|false|none|none|
+|bgColor|string|false|none|none|
+|fgColor|string|false|none|none|
+|isHidden|boolean|false|none|none|
+|isPrimary|boolean|false|none|none|
+|identifier|string|true|none|none|
+|defaultReminders|object|false|none|none|
+|notificationSettings|object|false|none|none|
+|calendarId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+NewSubscription
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewSubscription
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|accessRole|string|false|none|none|
+|bgColor|string|false|none|none|
+|fgColor|string|false|none|none|
+|isHidden|boolean|false|none|none|
+|isPrimary|boolean|false|none|none|
+|identifier|string|true|none|none|
+|defaultReminders|object|false|none|none|
+|notificationSettings|object|false|none|none|
+|calendarId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+SubscriptionWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ }
+}
+
+```
+
+SubscriptionWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|accessRole|string|false|none|none|
+|bgColor|string|false|none|none|
+|fgColor|string|false|none|none|
+|isHidden|boolean|false|none|none|
+|isPrimary|boolean|false|none|none|
+|identifier|string|true|none|none|
+|defaultReminders|object|false|none|none|
+|notificationSettings|object|false|none|none|
+|calendarId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+SubscriptionPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+SubscriptionPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|accessRole|string|false|none|none|
+|bgColor|string|false|none|none|
+|fgColor|string|false|none|none|
+|isHidden|boolean|false|none|none|
+|isPrimary|boolean|false|none|none|
+|identifier|string|false|none|none|
+|defaultReminders|object|false|none|none|
+|notificationSettings|object|false|none|none|
+|calendarId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+Theme
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+Theme
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|calBg|string|false|none|none|
+|calFg|string|false|none|none|
+|eventBg|string|false|none|none|
+|eventFg|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+NewTheme
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewTheme
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|calBg|string|false|none|none|
+|calFg|string|false|none|none|
+|eventBg|string|false|none|none|
+|eventFg|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+ThemeWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+ThemeWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|calBg|string|false|none|none|
+|calFg|string|false|none|none|
+|eventBg|string|false|none|none|
+|eventFg|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+ThemePartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+ThemePartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|calBg|string|false|none|none|
+|calFg|string|false|none|none|
+|eventBg|string|false|none|none|
+|eventFg|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+NewWorkingHour
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewWorkingHour
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|dayOfWeek|number|false|none|none|
+|end|string|false|none|none|
+|start|string|false|none|none|
+|calendarId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+WorkingHourWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ }
+}
+
+```
+
+WorkingHourWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|dayOfWeek|number|false|none|none|
+|end|string|false|none|none|
+|start|string|false|none|none|
+|calendarId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+WorkingHourPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+WorkingHourPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|dayOfWeek|number|false|none|none|
+|end|string|false|none|none|
+|start|string|false|none|none|
+|calendarId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+Date
+
+
+
+
+
+
+```json
+null
+
+```
+
+### Properties
+
+*None*
+
+NewEventInCalendar
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewEventInCalendar
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|bgColor|string|false|none|none|
+|description|string|false|none|none|
+|endDateTime|string(date-time)|false|none|none|
+|fgColor|string|false|none|none|
+|iCalUid|string|false|none|none|
+|isFullDayEvent|boolean|false|none|none|
+|isLocked|boolean|false|none|none|
+|link|string|false|none|none|
+|location|string|false|none|none|
+|meetingLink|string|false|none|none|
+|identifier|string|false|none|none|
+|startDateTime|string(date-time)|false|none|none|
+|status|string|false|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|calendarId|string|false|none|none|
+|parentEventId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+
+NewSubscriptionInCalendar
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewSubscriptionInCalendar
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|accessRole|string|false|none|none|
+|bgColor|string|false|none|none|
+|fgColor|string|false|none|none|
+|isHidden|boolean|false|none|none|
+|isPrimary|boolean|false|none|none|
+|identifier|string|true|none|none|
+|defaultReminders|object|false|none|none|
+|notificationSettings|object|false|none|none|
+|calendarId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+NewWorkingHourInCalendar
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewWorkingHourInCalendar
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|dayOfWeek|number|false|none|none|
+|end|string|false|none|none|
+|start|string|false|none|none|
+|calendarId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+NewAttachmentInEvent
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewAttachmentInEvent
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|fileUrl|string|true|none|none|
+|iconLink|string|false|none|none|
+|mimeType|string|false|none|none|
+|title|string|false|none|none|
+|eventId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+NewAttendeeInEvent
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewAttendeeInEvent
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|identifier|string|true|none|none|
+|isOptional|boolean|false|none|none|
+|isOrganizer|boolean|false|none|none|
+|messages|string|false|none|none|
+|responseStatus|string|false|none|none|
+|eventId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+loopback.Count
+
+
+
+
+
+
+```json
+{
+ "count": 0
+}
+
+```
+
+loopback.Count
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|count|number|false|none|none|
+
+attachments.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+attachments.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+attachments.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+attachments.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[attachments.ScopeFilter](#schemaattachments.scopefilter)|false|none|none|
+
+attachments.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "fileUrl": true,
+ "iconLink": true,
+ "mimeType": true,
+ "title": true,
+ "eventId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+attachments.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» fileUrl|boolean|false|none|none|
+|»» iconLink|boolean|false|none|none|
+|»» mimeType|boolean|false|none|none|
+|»» title|boolean|false|none|none|
+|»» eventId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[attachments.IncludeFilter.Items](#schemaattachments.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+attachments.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "fileUrl": true,
+ "iconLink": true,
+ "mimeType": true,
+ "title": true,
+ "eventId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+attachments.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» fileUrl|boolean|false|none|none|
+|»» iconLink|boolean|false|none|none|
+|»» mimeType|boolean|false|none|none|
+|»» title|boolean|false|none|none|
+|»» eventId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[attachments.IncludeFilter.Items](#schemaattachments.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+attendees.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+attendees.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+attendees.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+attendees.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[attendees.ScopeFilter](#schemaattendees.scopefilter)|false|none|none|
+
+attendees.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "identifier": true,
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": true,
+ "responseStatus": true,
+ "eventId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+attendees.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» identifier|boolean|false|none|none|
+|»» isOptional|boolean|false|none|none|
+|»» isOrganizer|boolean|false|none|none|
+|»» messages|boolean|false|none|none|
+|»» responseStatus|boolean|false|none|none|
+|»» eventId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[attendees.IncludeFilter.Items](#schemaattendees.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+attendees.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "identifier": true,
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": true,
+ "responseStatus": true,
+ "eventId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+attendees.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» identifier|boolean|false|none|none|
+|»» isOptional|boolean|false|none|none|
+|»» isOrganizer|boolean|false|none|none|
+|»» messages|boolean|false|none|none|
+|»» responseStatus|boolean|false|none|none|
+|»» eventId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[attendees.IncludeFilter.Items](#schemaattendees.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+subscriptions.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+subscriptions.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+subscriptions.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+subscriptions.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[subscriptions.ScopeFilter](#schemasubscriptions.scopefilter)|false|none|none|
+
+subscriptions.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "accessRole": true,
+ "bgColor": true,
+ "fgColor": true,
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": true,
+ "defaultReminders": true,
+ "notificationSettings": true,
+ "calendarId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+subscriptions.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» accessRole|boolean|false|none|none|
+|»» bgColor|boolean|false|none|none|
+|»» fgColor|boolean|false|none|none|
+|»» isHidden|boolean|false|none|none|
+|»» isPrimary|boolean|false|none|none|
+|»» identifier|boolean|false|none|none|
+|»» defaultReminders|boolean|false|none|none|
+|»» notificationSettings|boolean|false|none|none|
+|»» calendarId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[subscriptions.IncludeFilter.Items](#schemasubscriptions.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+calendars.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+calendars.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+calendars.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+calendars.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[calendars.ScopeFilter](#schemacalendars.scopefilter)|false|none|none|
+
+calendars.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "source": true,
+ "enableWorkingHours": true,
+ "location": true,
+ "identifier": true,
+ "summary": true,
+ "timezone": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+calendars.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» source|boolean|false|none|none|
+|»» enableWorkingHours|boolean|false|none|none|
+|»» location|boolean|false|none|none|
+|»» identifier|boolean|false|none|none|
+|»» summary|boolean|false|none|none|
+|»» timezone|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[calendars.IncludeFilter.Items](#schemacalendars.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+calendars.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "source": true,
+ "enableWorkingHours": true,
+ "location": true,
+ "identifier": true,
+ "summary": true,
+ "timezone": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+calendars.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» source|boolean|false|none|none|
+|»» enableWorkingHours|boolean|false|none|none|
+|»» location|boolean|false|none|none|
+|»» identifier|boolean|false|none|none|
+|»» summary|boolean|false|none|none|
+|»» timezone|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[calendars.IncludeFilter.Items](#schemacalendars.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+events.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+events.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+events.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+events.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[events.ScopeFilter](#schemaevents.scopefilter)|false|none|none|
+
+events.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "bgColor": true,
+ "description": true,
+ "endDateTime": true,
+ "fgColor": true,
+ "iCalUid": true,
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": true,
+ "location": true,
+ "meetingLink": true,
+ "identifier": true,
+ "startDateTime": true,
+ "status": true,
+ "summary": true,
+ "timezone": true,
+ "calendarId": true,
+ "parentEventId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+events.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» bgColor|boolean|false|none|none|
+|»» description|boolean|false|none|none|
+|»» endDateTime|boolean|false|none|none|
+|»» fgColor|boolean|false|none|none|
+|»» iCalUid|boolean|false|none|none|
+|»» isFullDayEvent|boolean|false|none|none|
+|»» isLocked|boolean|false|none|none|
+|»» link|boolean|false|none|none|
+|»» location|boolean|false|none|none|
+|»» meetingLink|boolean|false|none|none|
+|»» identifier|boolean|false|none|none|
+|»» startDateTime|boolean|false|none|none|
+|»» status|boolean|false|none|none|
+|»» summary|boolean|false|none|none|
+|»» timezone|boolean|false|none|none|
+|»» calendarId|boolean|false|none|none|
+|»» parentEventId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[events.IncludeFilter.Items](#schemaevents.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+events_attendees_view.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+events_attendees_view.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+events_attendees_view.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+events_attendees_view.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[events_attendees_view.ScopeFilter](#schemaevents_attendees_view.scopefilter)|false|none|none|
+
+events_attendees_view.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "bgColor": true,
+ "description": true,
+ "endDateTime": true,
+ "fgColor": true,
+ "iCalUid": true,
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": true,
+ "location": true,
+ "meetingLink": true,
+ "identifier": true,
+ "startDateTime": true,
+ "status": true,
+ "summary": true,
+ "timezone": true,
+ "calendarId": true,
+ "parentEventId": true,
+ "extId": true,
+ "extMetadata": true,
+ "attendeeId": true,
+ "isOptional": true,
+ "attendeeIdentifier": true,
+ "isOrganizer": true,
+ "messages": true,
+ "responseStatus": true,
+ "eventId": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+events_attendees_view.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» bgColor|boolean|false|none|none|
+|»» description|boolean|false|none|none|
+|»» endDateTime|boolean|false|none|none|
+|»» fgColor|boolean|false|none|none|
+|»» iCalUid|boolean|false|none|none|
+|»» isFullDayEvent|boolean|false|none|none|
+|»» isLocked|boolean|false|none|none|
+|»» link|boolean|false|none|none|
+|»» location|boolean|false|none|none|
+|»» meetingLink|boolean|false|none|none|
+|»» identifier|boolean|false|none|none|
+|»» startDateTime|boolean|false|none|none|
+|»» status|boolean|false|none|none|
+|»» summary|boolean|false|none|none|
+|»» timezone|boolean|false|none|none|
+|»» calendarId|boolean|false|none|none|
+|»» parentEventId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+|»» attendeeId|boolean|false|none|none|
+|»» isOptional|boolean|false|none|none|
+|»» attendeeIdentifier|boolean|false|none|none|
+|»» isOrganizer|boolean|false|none|none|
+|»» messages|boolean|false|none|none|
+|»» responseStatus|boolean|false|none|none|
+|»» eventId|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[events_attendees_view.IncludeFilter.Items](#schemaevents_attendees_view.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+PingResponse
+
+
+
+
+
+
+```json
+{
+ "greeting": "string",
+ "date": "string",
+ "url": "string",
+ "headers": {
+ "Content-Type": "string"
+ }
+}
+
+```
+
+PingResponse
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|greeting|string|false|none|none|
+|date|string|false|none|none|
+|url|string|false|none|none|
+|headers|object|false|none|none|
+|» Content-Type|string|false|none|none|
+
+settings.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "ownerId": true,
+ "ownerType": true,
+ "settingName": true,
+ "settingValue": true,
+ "extId": true,
+ "extMetadata": true
+ }
+}
+
+```
+
+settings.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» ownerId|boolean|false|none|none|
+|»» ownerType|boolean|false|none|none|
+|»» settingName|boolean|false|none|none|
+|»» settingValue|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+settings.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "ownerId": true,
+ "ownerType": true,
+ "settingName": true,
+ "settingValue": true,
+ "extId": true,
+ "extMetadata": true
+ }
+}
+
+```
+
+settings.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» ownerId|boolean|false|none|none|
+|»» ownerType|boolean|false|none|none|
+|»» settingName|boolean|false|none|none|
+|»» settingValue|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+subscriptions.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "accessRole": true,
+ "bgColor": true,
+ "fgColor": true,
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": true,
+ "defaultReminders": true,
+ "notificationSettings": true,
+ "calendarId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+subscriptions.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» accessRole|boolean|false|none|none|
+|»» bgColor|boolean|false|none|none|
+|»» fgColor|boolean|false|none|none|
+|»» isHidden|boolean|false|none|none|
+|»» isPrimary|boolean|false|none|none|
+|»» identifier|boolean|false|none|none|
+|»» defaultReminders|boolean|false|none|none|
+|»» notificationSettings|boolean|false|none|none|
+|»» calendarId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[subscriptions.IncludeFilter.Items](#schemasubscriptions.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+themes.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "calBg": true,
+ "calFg": true,
+ "eventBg": true,
+ "eventFg": true,
+ "extId": true,
+ "extMetadata": true
+ }
+}
+
+```
+
+themes.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» calBg|boolean|false|none|none|
+|»» calFg|boolean|false|none|none|
+|»» eventBg|boolean|false|none|none|
+|»» eventFg|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+themes.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "calBg": true,
+ "calFg": true,
+ "eventBg": true,
+ "eventFg": true,
+ "extId": true,
+ "extMetadata": true
+ }
+}
+
+```
+
+themes.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» calBg|boolean|false|none|none|
+|»» calFg|boolean|false|none|none|
+|»» eventBg|boolean|false|none|none|
+|»» eventFg|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+working_hours.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+working_hours.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+working_hours.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+working_hours.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[working_hours.ScopeFilter](#schemaworking_hours.scopefilter)|false|none|none|
+
+working_hours.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "dayOfWeek": true,
+ "end": true,
+ "start": true,
+ "calendarId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+working_hours.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» dayOfWeek|boolean|false|none|none|
+|»» end|boolean|false|none|none|
+|»» start|boolean|false|none|none|
+|»» calendarId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[working_hours.IncludeFilter.Items](#schemaworking_hours.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+working_hours.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "dayOfWeek": true,
+ "end": true,
+ "start": true,
+ "calendarId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+working_hours.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» dayOfWeek|boolean|false|none|none|
+|»» end|boolean|false|none|none|
+|»» start|boolean|false|none|none|
+|»» calendarId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[working_hours.IncludeFilter.Items](#schemaworking_hours.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
diff --git a/sandbox/video-conferencing-ms-example/README.md b/sandbox/video-conferencing-ms-example/README.md
index 13f7f211ae..24eddbfc17 100644
--- a/sandbox/video-conferencing-ms-example/README.md
+++ b/sandbox/video-conferencing-ms-example/README.md
@@ -1,3 +1,7 @@
# video-conferencing-ms-example
-[![LoopBack](https://github.com/strongloop/loopback-next/raw/master/docs/site/imgs/branding/Powered-by-LoopBack-Badge-(blue)-@2x.png)](http://loopback.io/)
\ No newline at end of file
+[![LoopBack](https://github.com/strongloop/loopback-next/raw/master/docs/site/imgs/branding/Powered-by-LoopBack-Badge-(blue)-@2x.png)](http://loopback.io/)
+
+#### API Details
+
+Visit the [OpenAPI spec docs](./openapi.md)
\ No newline at end of file
diff --git a/sandbox/video-conferencing-ms-example/openapi.md b/sandbox/video-conferencing-ms-example/openapi.md
new file mode 100644
index 0000000000..8b5ba8c8e1
--- /dev/null
+++ b/sandbox/video-conferencing-ms-example/openapi.md
@@ -0,0 +1,675 @@
+---
+title: Video Conferencing Service v1.0.0
+language_tabs:
+ - "'javascript": JavaScript
+ - "'javascript--nodejs": Node.JS'
+language_clients:
+ - "'javascript": request'
+ - "'javascript--nodejs": ""
+toc_footers: []
+includes: []
+search: false
+highlight_theme: darkula
+headingLevel: 2
+
+---
+
+
+
+Video Conferencing Service v1.0.0
+
+> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
+
+A Video conferencing service example
+
+Base URLs:
+
+* http://localhost:3000
+
+# Authentication
+
+- HTTP Authentication, scheme: bearer
+
+VideoChatArchiveController
+
+## VideoChatArchiveController.setUploadTarget
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'text/plain'
+};
+
+fetch('http://localhost:3000/archives/storage-target',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /archives/storage-target`
+
+> Body parameter
+
+```json
+{}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```
+null
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|text|
+
+
+This operation does not require authentication
+
+
+## VideoChatArchiveController.getArchive
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/archives/{archiveId}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /archives/{archiveId}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|archiveId|path|string|true|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+## VideoChatArchiveController.deleteArchive
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'text/plain'
+};
+
+fetch('http://localhost:3000/archives/{archiveId}',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /archives/{archiveId}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|archiveId|path|string|true|none|
+
+> Example responses
+
+> 200 Response
+
+```
+null
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|text|
+
+
+This operation does not require authentication
+
+
+## VideoChatArchiveController.getArchives
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/archives',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /archives`
+
+> Example responses
+
+> 200 Response
+
+```json
+{}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+VideoChatSessionController
+
+## VideoChatSessionController.getAttendeesList
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'text/plain'
+};
+
+fetch('http://localhost:3000/session/{meetingLinkId}/attendees',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /session/{meetingLinkId}/attendees`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|meetingLinkId|path|string|true|none|
+|active|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```
+[]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+## VideoChatSessionController.endSession
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/session/{meetingLinkId}/end',
+{
+ method: 'PATCH'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /session/{meetingLinkId}/end`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|meetingLinkId|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|MessageRecipient PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## VideoChatSessionController.getMeetingToken
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/session/{meetingLinkId}/token',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /session/{meetingLinkId}/token`
+
+> Body parameter
+
+```json
+{}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|meetingLinkId|path|string|true|none|
+|body|body|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+null
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+## VideoChatSessionController.editMeeting
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": 0,
+ "sessionId": "string",
+ "meetingLink": "string",
+ "isScheduled": true,
+ "scheduleTime": "2019-08-24T14:15:22Z",
+ "isArchived": true,
+ "archiveId": "string",
+ "uploadTarget": "string",
+ "startTime": "2019-08-24T14:15:22Z",
+ "endTime": "2019-08-24T14:15:22Z",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/session/{meetingLinkId}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /session/{meetingLinkId}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": 0,
+ "sessionId": "string",
+ "meetingLink": "string",
+ "isScheduled": true,
+ "scheduleTime": "2019-08-24T14:15:22Z",
+ "isArchived": true,
+ "archiveId": "string",
+ "uploadTarget": "string",
+ "startTime": "2019-08-24T14:15:22Z",
+ "endTime": "2019-08-24T14:15:22Z",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|meetingLinkId|path|string|true|none|
+|body|body|[VideoChatSessionPartial](#schemavideochatsessionpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Session details PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## VideoChatSessionController.getMeetingLink
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'text/plain'
+};
+
+fetch('http://localhost:3000/session',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /session`
+
+> Body parameter
+
+```json
+{}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```
+"string"
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|string|
+
+
+This operation does not require authentication
+
+
+## VideoChatSessionController.checkWebhookPayload
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/webhooks/session',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /webhooks/session`
+
+> Body parameter
+
+```json
+{}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|object|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|POST /webhooks/session Success|None|
+
+
+This operation does not require authentication
+
+
+# Schemas
+
+VideoChatSessionPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": 0,
+ "sessionId": "string",
+ "meetingLink": "string",
+ "isScheduled": true,
+ "scheduleTime": "2019-08-24T14:15:22Z",
+ "isArchived": true,
+ "archiveId": "string",
+ "uploadTarget": "string",
+ "startTime": "2019-08-24T14:15:22Z",
+ "endTime": "2019-08-24T14:15:22Z",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+VideoChatSessionPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|number|false|none|none|
+|sessionId|string|false|none|none|
+|meetingLink|string|false|none|none|
+|isScheduled|boolean|false|none|none|
+|scheduleTime|string(date-time)|false|none|none|
+|isArchived|boolean|false|none|none|
+|archiveId|string|false|none|none|
+|uploadTarget|string|false|none|none|
+|startTime|string(date-time)|false|none|none|
+|endTime|string(date-time)|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
diff --git a/sandbox/workflow-ms-example/README.md b/sandbox/workflow-ms-example/README.md
index 96dd1fc03c..61dab0ed8b 100644
--- a/sandbox/workflow-ms-example/README.md
+++ b/sandbox/workflow-ms-example/README.md
@@ -1,3 +1,7 @@
# workflow-ms-example
-[![LoopBack](https://github.com/strongloop/loopback-next/raw/master/docs/site/imgs/branding/Powered-by-LoopBack-Badge-(blue)-@2x.png)](http://loopback.io/)
\ No newline at end of file
+[![LoopBack](https://github.com/strongloop/loopback-next/raw/master/docs/site/imgs/branding/Powered-by-LoopBack-Badge-(blue)-@2x.png)](http://loopback.io/)
+
+#### API Details
+
+Visit the [OpenAPI spec docs](./openapi.md)
\ No newline at end of file
diff --git a/sandbox/workflow-ms-example/openapi.md b/sandbox/workflow-ms-example/openapi.md
new file mode 100644
index 0000000000..8033e2dd07
--- /dev/null
+++ b/sandbox/workflow-ms-example/openapi.md
@@ -0,0 +1,792 @@
+---
+title: Bpmn Service v1.0.0
+language_tabs:
+ - "'javascript": JavaScript
+ - "'javascript--nodejs": Node.JS'
+language_clients:
+ - "'javascript": request'
+ - "'javascript--nodejs": ""
+toc_footers: []
+includes: []
+search: false
+highlight_theme: darkula
+headingLevel: 2
+
+---
+
+
+
+Bpmn Service v1.0.0
+
+> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
+
+A workflow microservice example
+
+Base URLs:
+
+* http://localhost:3000
+
+# Authentication
+
+- HTTP Authentication, scheme: bearer
+
+WorkflowController
+
+## WorkflowController.startWorkflow
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "workflowVersion": 0,
+ "input": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/workflow/{id}/execute',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /workflow/{id}/execute`
+
+> Body parameter
+
+```json
+{
+ "workflowVersion": 0,
+ "input": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[ExecuteWorkflowDto](#schemaexecuteworkflowdto)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Workflow instance|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+None
+
+
+## WorkflowController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "name": "string",
+ "bpmnFile": "string",
+ "inputSchema": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('http://localhost:3000/workflow/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /workflow/{id}`
+
+> Body parameter
+
+```json
+{
+ "name": "string",
+ "bpmnFile": "string",
+ "inputSchema": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[WorkflowDtoPartial](#schemaworkflowdtopartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Workflow PATCH success|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+None
+
+
+## WorkflowController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/workflow/{id}',
+{
+ method: 'GET'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /workflow/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Workflow Model|None|
+
+
+This operation does not require authentication
+
+
+## WorkflowController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('http://localhost:3000/workflow/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /workflow/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Workflow DELETE success|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+None
+
+
+## WorkflowController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "name": "string",
+ "bpmnFile": "string",
+ "inputSchema": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/workflow',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /workflow`
+
+> Body parameter
+
+```json
+{
+ "name": "string",
+ "bpmnFile": "string",
+ "inputSchema": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewWorkflow](#schemanewworkflow)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "workflowVersion": 0,
+ "externalIdentifier": "string",
+ "name": "string",
+ "provider": "string",
+ "inputSchema": {},
+ "description": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Workflow model instance|[Workflow](#schemaworkflow)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+None
+
+
+## WorkflowController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('http://localhost:3000/workflow',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /workflow`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[workflows.Filter](#schemaworkflows.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "workflowVersion": 0,
+ "externalIdentifier": "string",
+ "name": "string",
+ "provider": "string",
+ "inputSchema": {},
+ "description": "string"
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Workflow model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[Workflow](#schemaworkflow)]|false|none|none|
+|» Workflow|[Workflow](#schemaworkflow)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» workflowVersion|number|true|none|none|
+|»» externalIdentifier|string|true|none|none|
+|»» name|string|false|none|none|
+|»» provider|string|true|none|none|
+|»» inputSchema|object|true|none|none|
+|»» description|string|false|none|none|
+
+
+This operation does not require authentication
+
+
+# Schemas
+
+Workflow
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "workflowVersion": 0,
+ "externalIdentifier": "string",
+ "name": "string",
+ "provider": "string",
+ "inputSchema": {},
+ "description": "string"
+}
+
+```
+
+Workflow
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|workflowVersion|number|true|none|none|
+|externalIdentifier|string|true|none|none|
+|name|string|false|none|none|
+|provider|string|true|none|none|
+|inputSchema|object|true|none|none|
+|description|string|false|none|none|
+
+NewWorkflow
+
+
+
+
+
+
+```json
+{
+ "name": "string",
+ "bpmnFile": "string",
+ "inputSchema": {}
+}
+
+```
+
+NewWorkflow
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|name|string|true|none|none|
+|bpmnFile|string|true|none|none|
+|inputSchema|object|true|none|none|
+
+WorkflowDto
+
+
+
+
+
+
+```json
+{
+ "name": "string",
+ "bpmnFile": "string",
+ "inputSchema": {}
+}
+
+```
+
+WorkflowDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|name|string|true|none|none|
+|bpmnFile|string|true|none|none|
+|inputSchema|object|true|none|none|
+
+WorkflowDtoPartial
+
+
+
+
+
+
+```json
+{
+ "name": "string",
+ "bpmnFile": "string",
+ "inputSchema": {}
+}
+
+```
+
+WorkflowDtoPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|name|string|false|none|none|
+|bpmnFile|string|false|none|none|
+|inputSchema|object|false|none|none|
+
+ExecuteWorkflowDto
+
+
+
+
+
+
+```json
+{
+ "workflowVersion": 0,
+ "input": {}
+}
+
+```
+
+ExecuteWorkflowDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|workflowVersion|number|false|none|none|
+|input|object|true|none|none|
+
+workflows.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+workflows.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+workflows.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+workflows.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[workflows.ScopeFilter](#schemaworkflows.scopefilter)|false|none|none|
+
+workflows.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "workflowVersion": true,
+ "externalIdentifier": true,
+ "name": true,
+ "provider": true,
+ "inputSchema": true,
+ "description": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+workflows.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» workflowVersion|boolean|false|none|none|
+|»» externalIdentifier|boolean|false|none|none|
+|»» name|boolean|false|none|none|
+|»» provider|boolean|false|none|none|
+|»» inputSchema|boolean|false|none|none|
+|»» description|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[workflows.IncludeFilter.Items](#schemaworkflows.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
diff --git a/services/audit-service/README.md b/services/audit-service/README.md
index d60873d3a0..9c22423215 100644
--- a/services/audit-service/README.md
+++ b/services/audit-service/README.md
@@ -24,7 +24,7 @@ import {
RestExplorerComponent,
} from '@loopback/rest-explorer';
import {ServiceMixin} from '@loopback/service-proxy';
-import { AuditServiceComponent } from '@sourceloop/in-mail-service';
+import { AuditServiceComponent } from '@sourceloop/audit-service';
import * as dotenv from 'dotenv';
import * as dotenvExt from 'dotenv-extended';
import path from 'path';
@@ -166,3 +166,5 @@ Authorization: Bearer where is a JWT token signed using JWT issu
#### API Details
+Visit the [OpenAPI spec docs](./openapi.md)
+
diff --git a/services/audit-service/openapi.json b/services/audit-service/openapi.json
new file mode 100644
index 0000000000..d95e3d65b8
--- /dev/null
+++ b/services/audit-service/openapi.json
@@ -0,0 +1,512 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Audit Service",
+ "version": "1.0.0",
+ "description": "A microservice for audit logging",
+ "contact": {}
+ },
+ "paths": {
+ "/audit-logs/count": {
+ "get": {
+ "x-controller-name": "AuditController",
+ "x-operation-name": "count",
+ "tags": [
+ "AuditController"
+ ],
+ "security": [
+ {
+ "HTTPBearer": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "AuditLog model count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "audit_logs.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "AuditController.count"
+ }
+ },
+ "/audit-logs/{id}": {
+ "get": {
+ "x-controller-name": "AuditController",
+ "x-operation-name": "findById",
+ "tags": [
+ "AuditController"
+ ],
+ "security": [
+ {
+ "HTTPBearer": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "AuditLog model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AuditLogWithRelations"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/audit_logs.Filter"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "AuditController.findById"
+ }
+ },
+ "/audit-logs": {
+ "post": {
+ "x-controller-name": "AuditController",
+ "x-operation-name": "create",
+ "tags": [
+ "AuditController"
+ ],
+ "security": [
+ {
+ "HTTPBearer": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "AuditLog model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AuditLog"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewAuditLog"
+ }
+ }
+ }
+ },
+ "operationId": "AuditController.create"
+ },
+ "get": {
+ "x-controller-name": "AuditController",
+ "x-operation-name": "find",
+ "tags": [
+ "AuditController"
+ ],
+ "security": [
+ {
+ "HTTPBearer": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of AuditLog model instances",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AuditLogWithRelations"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/audit_logs.Filter1"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "AuditController.find"
+ }
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "HTTPBearer": {
+ "type": "http",
+ "scheme": "bearer",
+ "bearerFormat": "JWT"
+ }
+ },
+ "schemas": {
+ "AuditLog": {
+ "title": "AuditLog",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "action": {
+ "type": "string"
+ },
+ "actedAt": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "actedOn": {
+ "type": "string"
+ },
+ "actionKey": {
+ "type": "string"
+ },
+ "entityId": {
+ "type": "string"
+ },
+ "actor": {
+ "type": "string"
+ },
+ "before": {
+ "type": "object"
+ },
+ "after": {
+ "type": "object"
+ },
+ "actionGroup": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "action",
+ "actedAt",
+ "actionKey",
+ "entityId",
+ "actor"
+ ],
+ "additionalProperties": true
+ },
+ "NewAuditLog": {
+ "title": "NewAuditLog",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { title: 'NewAuditLog', exclude: [ 'id' ] })",
+ "properties": {
+ "action": {
+ "type": "string"
+ },
+ "actedAt": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "actedOn": {
+ "type": "string"
+ },
+ "actionKey": {
+ "type": "string"
+ },
+ "entityId": {
+ "type": "string"
+ },
+ "actor": {
+ "type": "string"
+ },
+ "before": {
+ "type": "object"
+ },
+ "after": {
+ "type": "object"
+ },
+ "actionGroup": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "action",
+ "actedAt",
+ "actionKey",
+ "entityId",
+ "actor"
+ ],
+ "additionalProperties": true,
+ "x-typescript-type": "Omit"
+ },
+ "AuditLogWithRelations": {
+ "title": "AuditLogWithRelations",
+ "type": "object",
+ "description": "(tsType: AuditLogWithRelations, schemaOptions: { includeRelations: true })",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "action": {
+ "type": "string"
+ },
+ "actedAt": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "actedOn": {
+ "type": "string"
+ },
+ "actionKey": {
+ "type": "string"
+ },
+ "entityId": {
+ "type": "string"
+ },
+ "actor": {
+ "type": "string"
+ },
+ "before": {
+ "type": "object"
+ },
+ "after": {
+ "type": "object"
+ },
+ "actionGroup": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "action",
+ "actedAt",
+ "actionKey",
+ "entityId",
+ "actor"
+ ],
+ "additionalProperties": true,
+ "x-typescript-type": "AuditLogWithRelations"
+ },
+ "loopback.Count": {
+ "type": "object",
+ "title": "loopback.Count",
+ "x-typescript-type": "@loopback/repository#Count",
+ "properties": {
+ "count": {
+ "type": "number"
+ }
+ }
+ },
+ "audit_logs.Filter": {
+ "type": "object",
+ "title": "audit_logs.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "boolean"
+ },
+ "action": {
+ "type": "boolean"
+ },
+ "actedAt": {
+ "type": "boolean"
+ },
+ "actedOn": {
+ "type": "boolean"
+ },
+ "actionKey": {
+ "type": "boolean"
+ },
+ "entityId": {
+ "type": "boolean"
+ },
+ "actor": {
+ "type": "boolean"
+ },
+ "before": {
+ "type": "boolean"
+ },
+ "after": {
+ "type": "boolean"
+ },
+ "actionGroup": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": true
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "example": "id"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "audit_logs.Fields"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "audit_logs.Filter1": {
+ "type": "object",
+ "title": "audit_logs.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "title": "audit_logs.WhereFilter",
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "boolean"
+ },
+ "action": {
+ "type": "boolean"
+ },
+ "actedAt": {
+ "type": "boolean"
+ },
+ "actedOn": {
+ "type": "boolean"
+ },
+ "actionKey": {
+ "type": "boolean"
+ },
+ "entityId": {
+ "type": "boolean"
+ },
+ "actor": {
+ "type": "boolean"
+ },
+ "before": {
+ "type": "boolean"
+ },
+ "after": {
+ "type": "boolean"
+ },
+ "actionGroup": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": true
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "example": "id"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "audit_logs.Fields"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ }
+ }
+ },
+ "servers": [
+ {
+ "url": "/"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/services/audit-service/openapi.md b/services/audit-service/openapi.md
new file mode 100644
index 0000000000..4d5358dbba
--- /dev/null
+++ b/services/audit-service/openapi.md
@@ -0,0 +1,642 @@
+---
+title: Audit Service v1.0.0
+language_tabs:
+ - "'javascript": JavaScript
+ - "'javascript--nodejs": Node.JS'
+language_clients:
+ - "'javascript": request'
+ - "'javascript--nodejs": ""
+toc_footers: []
+includes: []
+search: false
+highlight_theme: darkula
+headingLevel: 2
+
+---
+
+
+
+Audit Service v1.0.0
+
+> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
+
+A microservice for audit logging
+
+Base URLs:
+
+* /
+
+# Authentication
+
+- HTTP Authentication, scheme: bearer
+
+AuditController
+
+## AuditController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('/audit-logs/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /audit-logs/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuditLog model count|[loopback.Count](#schemaloopback.count)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuditController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('/audit-logs/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /audit-logs/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[audit_logs.Filter](#schemaaudit_logs.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "id": "string",
+ "action": "string",
+ "actedAt": "2019-08-24T14:15:22Z",
+ "actedOn": "string",
+ "actionKey": "string",
+ "entityId": "string",
+ "actor": "string",
+ "before": {},
+ "after": {},
+ "actionGroup": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuditLog model instance|[AuditLogWithRelations](#schemaauditlogwithrelations)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuditController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "action": "string",
+ "actedAt": "2019-08-24T14:15:22Z",
+ "actedOn": "string",
+ "actionKey": "string",
+ "entityId": "string",
+ "actor": "string",
+ "before": {},
+ "after": {},
+ "actionGroup": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('/audit-logs',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /audit-logs`
+
+> Body parameter
+
+```json
+{
+ "action": "string",
+ "actedAt": "2019-08-24T14:15:22Z",
+ "actedOn": "string",
+ "actionKey": "string",
+ "entityId": "string",
+ "actor": "string",
+ "before": {},
+ "after": {},
+ "actionGroup": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewAuditLog](#schemanewauditlog)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "id": "string",
+ "action": "string",
+ "actedAt": "2019-08-24T14:15:22Z",
+ "actedOn": "string",
+ "actionKey": "string",
+ "entityId": "string",
+ "actor": "string",
+ "before": {},
+ "after": {},
+ "actionGroup": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuditLog model instance|[AuditLog](#schemaauditlog)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuditController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('/audit-logs',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /audit-logs`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[audit_logs.Filter1](#schemaaudit_logs.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "id": "string",
+ "action": "string",
+ "actedAt": "2019-08-24T14:15:22Z",
+ "actedOn": "string",
+ "actionKey": "string",
+ "entityId": "string",
+ "actor": "string",
+ "before": {},
+ "after": {},
+ "actionGroup": "string"
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of AuditLog model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[AuditLogWithRelations](#schemaauditlogwithrelations)]|false|none|[(tsType: AuditLogWithRelations, schemaOptions: { includeRelations: true })]|
+|» AuditLogWithRelations|[AuditLogWithRelations](#schemaauditlogwithrelations)|false|none|(tsType: AuditLogWithRelations, schemaOptions: { includeRelations: true })|
+|»» id|string|false|none|none|
+|»» action|string|true|none|none|
+|»» actedAt|string(date-time)|true|none|none|
+|»» actedOn|string|false|none|none|
+|»» actionKey|string|true|none|none|
+|»» entityId|string|true|none|none|
+|»» actor|string|true|none|none|
+|»» before|object|false|none|none|
+|»» after|object|false|none|none|
+|»» actionGroup|string|false|none|none|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+# Schemas
+
+AuditLog
+
+
+
+
+
+
+```json
+{
+ "id": "string",
+ "action": "string",
+ "actedAt": "2019-08-24T14:15:22Z",
+ "actedOn": "string",
+ "actionKey": "string",
+ "entityId": "string",
+ "actor": "string",
+ "before": {},
+ "after": {},
+ "actionGroup": "string"
+}
+
+```
+
+AuditLog
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|id|string|false|none|none|
+|action|string|true|none|none|
+|actedAt|string(date-time)|true|none|none|
+|actedOn|string|false|none|none|
+|actionKey|string|true|none|none|
+|entityId|string|true|none|none|
+|actor|string|true|none|none|
+|before|object|false|none|none|
+|after|object|false|none|none|
+|actionGroup|string|false|none|none|
+
+NewAuditLog
+
+
+
+
+
+
+```json
+{
+ "action": "string",
+ "actedAt": "2019-08-24T14:15:22Z",
+ "actedOn": "string",
+ "actionKey": "string",
+ "entityId": "string",
+ "actor": "string",
+ "before": {},
+ "after": {},
+ "actionGroup": "string"
+}
+
+```
+
+NewAuditLog
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|action|string|true|none|none|
+|actedAt|string(date-time)|true|none|none|
+|actedOn|string|false|none|none|
+|actionKey|string|true|none|none|
+|entityId|string|true|none|none|
+|actor|string|true|none|none|
+|before|object|false|none|none|
+|after|object|false|none|none|
+|actionGroup|string|false|none|none|
+
+AuditLogWithRelations
+
+
+
+
+
+
+```json
+{
+ "id": "string",
+ "action": "string",
+ "actedAt": "2019-08-24T14:15:22Z",
+ "actedOn": "string",
+ "actionKey": "string",
+ "entityId": "string",
+ "actor": "string",
+ "before": {},
+ "after": {},
+ "actionGroup": "string"
+}
+
+```
+
+AuditLogWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|id|string|false|none|none|
+|action|string|true|none|none|
+|actedAt|string(date-time)|true|none|none|
+|actedOn|string|false|none|none|
+|actionKey|string|true|none|none|
+|entityId|string|true|none|none|
+|actor|string|true|none|none|
+|before|object|false|none|none|
+|after|object|false|none|none|
+|actionGroup|string|false|none|none|
+
+loopback.Count
+
+
+
+
+
+
+```json
+{
+ "count": 0
+}
+
+```
+
+loopback.Count
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|count|number|false|none|none|
+
+audit_logs.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "id": true,
+ "action": true,
+ "actedAt": true,
+ "actedOn": true,
+ "actionKey": true,
+ "entityId": true,
+ "actor": true,
+ "before": true,
+ "after": true,
+ "actionGroup": true
+ }
+}
+
+```
+
+audit_logs.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» id|boolean|false|none|none|
+|»» action|boolean|false|none|none|
+|»» actedAt|boolean|false|none|none|
+|»» actedOn|boolean|false|none|none|
+|»» actionKey|boolean|false|none|none|
+|»» entityId|boolean|false|none|none|
+|»» actor|boolean|false|none|none|
+|»» before|boolean|false|none|none|
+|»» after|boolean|false|none|none|
+|»» actionGroup|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+audit_logs.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "id": true,
+ "action": true,
+ "actedAt": true,
+ "actedOn": true,
+ "actionKey": true,
+ "entityId": true,
+ "actor": true,
+ "before": true,
+ "after": true,
+ "actionGroup": true
+ }
+}
+
+```
+
+audit_logs.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» id|boolean|false|none|none|
+|»» action|boolean|false|none|none|
+|»» actedAt|boolean|false|none|none|
+|»» actedOn|boolean|false|none|none|
+|»» actionKey|boolean|false|none|none|
+|»» entityId|boolean|false|none|none|
+|»» actor|boolean|false|none|none|
+|»» before|boolean|false|none|none|
+|»» after|boolean|false|none|none|
+|»» actionGroup|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
diff --git a/services/audit-service/package.json b/services/audit-service/package.json
index d45ab59e90..60c4f9943b 100644
--- a/services/audit-service/package.json
+++ b/services/audit-service/package.json
@@ -12,7 +12,7 @@
"node": ">=10.16"
},
"scripts": {
- "build": "npm run clean && lb-tsc",
+ "build": "npm run clean && lb-tsc && npm run openapi-spec && npm run apidocs",
"build:watch": "lb-tsc --watch",
"lint": "npm run prettier:check && npm run eslint",
"lint:fix": "npm run eslint:fix && npm run prettier:fix",
@@ -21,7 +21,8 @@
"prettier:fix": "npm run prettier:cli -- --write",
"eslint": "lb-eslint --report-unused-disable-directives .",
"eslint:fix": "npm run eslint -- --fix",
- "apidocs": "./node_modules/.bin/widdershins --search false --language_tabs 'javascript:JavaScript:request' 'javascript--nodejs:Node.JS' --summary openapi.json -o README.md",
+ "openapi-spec": "node ./dist/openapi-spec",
+ "apidocs": "./node_modules/.bin/widdershins --search false --language_tabs 'javascript:JavaScript:request' 'javascript--nodejs:Node.JS' --summary openapi1.json -o openapi.md",
"pretest": "npm run build",
"test": "echo 'No tests'",
"posttest": "npm run lint",
diff --git a/services/audit-service/src/application.ts b/services/audit-service/src/application.ts
new file mode 100644
index 0000000000..1ec2e8e82a
--- /dev/null
+++ b/services/audit-service/src/application.ts
@@ -0,0 +1,27 @@
+import {BootMixin} from '@loopback/boot';
+import {ApplicationConfig} from '@loopback/core';
+import {RepositoryMixin} from '@loopback/repository';
+import {RestApplication} from '@loopback/rest';
+import * as path from 'path';
+import {AuditServiceComponent} from './component';
+
+export {ApplicationConfig};
+
+export class AuditServiceApplication extends BootMixin(
+ RepositoryMixin(RestApplication),
+) {
+ constructor(options: ApplicationConfig = {}) {
+ super(options);
+ this.static('/', path.join(__dirname, '../public'));
+ this.component(AuditServiceComponent);
+
+ this.projectRoot = __dirname;
+ this.bootOptions = {
+ controllers: {
+ dirs: ['controllers'],
+ extensions: ['.controller.js'],
+ nested: true,
+ },
+ };
+ }
+}
diff --git a/services/audit-service/src/openapi-spec.ts b/services/audit-service/src/openapi-spec.ts
new file mode 100644
index 0000000000..6e58402c8d
--- /dev/null
+++ b/services/audit-service/src/openapi-spec.ts
@@ -0,0 +1,25 @@
+import {ApplicationConfig} from '@loopback/core';
+import {AuditServiceApplication} from './application';
+
+/**
+ * Export the OpenAPI spec from the application
+ */
+const PORT = 3000;
+const FILEARGVI = 2;
+async function exportOpenApiSpec(): Promise {
+ const config: ApplicationConfig = {
+ rest: {
+ port: +(process.env.PORT ?? PORT),
+ host: process.env.HOST ?? 'localhost',
+ },
+ };
+ const outFile = process.argv[FILEARGVI] ?? 'openapi.json';
+ const app = new AuditServiceApplication(config);
+ await app.boot();
+ await app.exportOpenApiSpec(outFile);
+}
+
+exportOpenApiSpec().catch(err => {
+ console.error('Fail to export OpenAPI spec from the application.', err); //NOSONAR
+ process.exit(1);
+});
diff --git a/services/authentication-service/OPEN_API_SPEC.md b/services/authentication-service/OPEN_API_SPEC.md
deleted file mode 100644
index a1dc26367a..0000000000
--- a/services/authentication-service/OPEN_API_SPEC.md
+++ /dev/null
@@ -1,7499 +0,0 @@
----
-title: Authentication Service v1.0.0
-language_tabs:
- - shell: Shell
- - http: HTTP
- - javascript: JavaScript
- - ruby: Ruby
- - python: Python
- - php: PHP
- - java: Java
- - go: Go
-toc_footers: []
-includes: []
-search: true
-highlight_theme: darkula
-headingLevel: 2
-
----
-
-
-
-Authentication Service v1.0.0
-
-> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
-
-This is a sample application for sandbox testing of auth microservice components.
-
-Base URLs:
-
-* /
-
-# Authentication
-
-- HTTP Authentication, scheme: bearer
-
-LoginController
-
-## LoginController.resetPassword
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X PATCH /auth/change-password \
- -H 'Content-Type: application/json' \
- -H 'Authorization: string'
-
-```
-
-```http
-PATCH /auth/change-password HTTP/1.1
-
-Content-Type: application/json
-
-Authorization: string
-
-```
-
-```javascript
-const inputBody = '{
- "refreshToken": "string",
- "username": "string",
- "password": "string",
- "oldPassword": "string"
-}';
-const headers = {
- 'Content-Type':'application/json',
- 'Authorization':'string'
-};
-
-fetch('/auth/change-password',
-{
- method: 'PATCH',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'application/json',
- 'Authorization' => 'string'
-}
-
-result = RestClient.patch '/auth/change-password',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Content-Type': 'application/json',
- 'Authorization': 'string'
-}
-
-r = requests.patch('/auth/change-password', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
- 'Authorization' => 'string',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('PATCH','/auth/change-password', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth/change-password");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PATCH");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"application/json"},
- "Authorization": []string{"string"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("PATCH", "/auth/change-password", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`PATCH /auth/change-password`
-
-> Body parameter
-
-```json
-{
- "refreshToken": "string",
- "username": "string",
- "password": "string",
- "oldPassword": "string"
-}
-```
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|Authorization|header|string|false|none|
-|body|body|[ResetPasswordPartial](#schemaresetpasswordpartial)|false|none|
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|If User password successfully changed.|None|
-
-
-To perform this operation, you must be authenticated by means of one of the following methods:
-HTTPBearer
-
-
-## LoginController.loginViaGoogle
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET /auth/google \
- -H 'Accept: application/json'
-
-```
-
-```http
-GET /auth/google HTTP/1.1
-
-Accept: application/json
-
-```
-
-```javascript
-
-const headers = {
- 'Accept':'application/json'
-};
-
-fetch('/auth/google',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json'
-}
-
-result = RestClient.get '/auth/google',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Accept': 'application/json'
-}
-
-r = requests.get('/auth/google', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('GET','/auth/google', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth/google");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/auth/google", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /auth/google`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|client_id|query|string|false|none|
-|client_secret|query|string|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "accessToken": "string",
- "refreshToken": "string",
- "expires": 0,
- "pubnubToken": "string"
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Google Token Response|[TokenResponse](#schematokenresponse)|
-
-
-This operation does not require authentication
-
-
-## LoginController.googleCallback
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET /auth/google-auth-redirect \
- -H 'Accept: application/json'
-
-```
-
-```http
-GET /auth/google-auth-redirect HTTP/1.1
-
-Accept: application/json
-
-```
-
-```javascript
-
-const headers = {
- 'Accept':'application/json'
-};
-
-fetch('/auth/google-auth-redirect',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json'
-}
-
-result = RestClient.get '/auth/google-auth-redirect',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Accept': 'application/json'
-}
-
-r = requests.get('/auth/google-auth-redirect', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('GET','/auth/google-auth-redirect', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth/google-auth-redirect");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/auth/google-auth-redirect", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /auth/google-auth-redirect`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|code|query|string|false|none|
-|state|query|string|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "accessToken": "string",
- "refreshToken": "string",
- "expires": 0,
- "pubnubToken": "string"
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Google Redirect Token Response|[TokenResponse](#schematokenresponse)|
-
-
-This operation does not require authentication
-
-
-## LoginController.loginViaInstagram
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET /auth/instagram \
- -H 'Accept: application/json'
-
-```
-
-```http
-GET /auth/instagram HTTP/1.1
-
-Accept: application/json
-
-```
-
-```javascript
-
-const headers = {
- 'Accept':'application/json'
-};
-
-fetch('/auth/instagram',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json'
-}
-
-result = RestClient.get '/auth/instagram',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Accept': 'application/json'
-}
-
-r = requests.get('/auth/instagram', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('GET','/auth/instagram', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth/instagram");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/auth/instagram", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /auth/instagram`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|client_id|query|string|false|none|
-|client_secret|query|string|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "accessToken": "string",
- "refreshToken": "string",
- "expires": 0,
- "pubnubToken": "string"
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Instagram Token Response|[TokenResponse](#schematokenresponse)|
-
-
-This operation does not require authentication
-
-
-## LoginController.instagramCallback
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET /auth/instagram-auth-redirect \
- -H 'Accept: application/json'
-
-```
-
-```http
-GET /auth/instagram-auth-redirect HTTP/1.1
-
-Accept: application/json
-
-```
-
-```javascript
-
-const headers = {
- 'Accept':'application/json'
-};
-
-fetch('/auth/instagram-auth-redirect',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json'
-}
-
-result = RestClient.get '/auth/instagram-auth-redirect',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Accept': 'application/json'
-}
-
-r = requests.get('/auth/instagram-auth-redirect', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('GET','/auth/instagram-auth-redirect', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth/instagram-auth-redirect");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/auth/instagram-auth-redirect", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /auth/instagram-auth-redirect`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|code|query|string|false|none|
-|state|query|string|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "accessToken": "string",
- "refreshToken": "string",
- "expires": 0,
- "pubnubToken": "string"
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Instagram Redirect Token Response|[TokenResponse](#schematokenresponse)|
-
-
-This operation does not require authentication
-
-
-## LoginController.loginViaKeycloak
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET /auth/keycloak \
- -H 'Accept: application/json'
-
-```
-
-```http
-GET /auth/keycloak HTTP/1.1
-
-Accept: application/json
-
-```
-
-```javascript
-
-const headers = {
- 'Accept':'application/json'
-};
-
-fetch('/auth/keycloak',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json'
-}
-
-result = RestClient.get '/auth/keycloak',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Accept': 'application/json'
-}
-
-r = requests.get('/auth/keycloak', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('GET','/auth/keycloak', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth/keycloak");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/auth/keycloak", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /auth/keycloak`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|client_id|query|string|false|none|
-|client_secret|query|string|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "accessToken": "string",
- "refreshToken": "string",
- "expires": 0,
- "pubnubToken": "string"
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Keycloak Token Response|[TokenResponse](#schematokenresponse)|
-
-
-This operation does not require authentication
-
-
-## LoginController.keycloakCallback
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET /auth/keycloak-auth-redirect \
- -H 'Accept: application/json'
-
-```
-
-```http
-GET /auth/keycloak-auth-redirect HTTP/1.1
-
-Accept: application/json
-
-```
-
-```javascript
-
-const headers = {
- 'Accept':'application/json'
-};
-
-fetch('/auth/keycloak-auth-redirect',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json'
-}
-
-result = RestClient.get '/auth/keycloak-auth-redirect',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Accept': 'application/json'
-}
-
-r = requests.get('/auth/keycloak-auth-redirect', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('GET','/auth/keycloak-auth-redirect', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth/keycloak-auth-redirect");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/auth/keycloak-auth-redirect", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /auth/keycloak-auth-redirect`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|code|query|string|false|none|
-|state|query|string|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "accessToken": "string",
- "refreshToken": "string",
- "expires": 0,
- "pubnubToken": "string"
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Keycloak Redirect Token Response|[TokenResponse](#schematokenresponse)|
-
-
-This operation does not require authentication
-
-
-## LoginController.login
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X POST /auth/login \
- -H 'Content-Type: application/json'
-
-```
-
-```http
-POST /auth/login HTTP/1.1
-
-Content-Type: application/json
-
-```
-
-```javascript
-const inputBody = '{
- "client_id": "string",
- "client_secret": "string",
- "username": "string",
- "password": "string"
-}';
-const headers = {
- 'Content-Type':'application/json'
-};
-
-fetch('/auth/login',
-{
- method: 'POST',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'application/json'
-}
-
-result = RestClient.post '/auth/login',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Content-Type': 'application/json'
-}
-
-r = requests.post('/auth/login', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('POST','/auth/login', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth/login");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("POST", "/auth/login", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`POST /auth/login`
-
-Gets you the code that will be used for getting token (webapps)
-
-> Body parameter
-
-```json
-{
- "client_id": "string",
- "client_secret": "string",
- "username": "string",
- "password": "string"
-}
-```
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|body|body|[LoginRequest](#schemaloginrequest)|false|none|
-
-> Example responses
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Auth Code|None|
-|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
-|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
-|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
-|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
-
-Response Schema
-
-
-This operation does not require authentication
-
-
-## LoginController.loginWithClientUser
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X POST /auth/login-token \
- -H 'Content-Type: application/json' \
- -H 'Accept: application/json' \
- -H 'device_id: string'
-
-```
-
-```http
-POST /auth/login-token HTTP/1.1
-
-Content-Type: application/json
-Accept: application/json
-device_id: string
-
-```
-
-```javascript
-const inputBody = '{
- "client_id": "string",
- "client_secret": "string",
- "username": "string",
- "password": "string"
-}';
-const headers = {
- 'Content-Type':'application/json',
- 'Accept':'application/json',
- 'device_id':'string'
-};
-
-fetch('/auth/login-token',
-{
- method: 'POST',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'application/json',
- 'Accept' => 'application/json',
- 'device_id' => 'string'
-}
-
-result = RestClient.post '/auth/login-token',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Content-Type': 'application/json',
- 'Accept': 'application/json',
- 'device_id': 'string'
-}
-
-r = requests.post('/auth/login-token', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
- 'Accept' => 'application/json',
- 'device_id' => 'string',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('POST','/auth/login-token', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth/login-token");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"application/json"},
- "Accept": []string{"application/json"},
- "device_id": []string{"string"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("POST", "/auth/login-token", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`POST /auth/login-token`
-
-Gets you refresh token and access token in one hit. (mobile app)
-
-> Body parameter
-
-```json
-{
- "client_id": "string",
- "client_secret": "string",
- "username": "string",
- "password": "string"
-}
-```
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|device_id|header|string|false|none|
-|body|body|[LoginRequest](#schemaloginrequest)|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "accessToken": "string",
- "refreshToken": "string",
- "expires": 0,
- "pubnubToken": "string"
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Token Response Model|[TokenResponse](#schematokenresponse)|
-|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
-|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
-|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
-|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
-
-
-This operation does not require authentication
-
-
-## LoginController.me
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET /auth/me \
- -H 'Authorization: Bearer {access-token}'
-
-```
-
-```http
-GET /auth/me HTTP/1.1
-
-```
-
-```javascript
-
-const headers = {
- 'Authorization':'Bearer {access-token}'
-};
-
-fetch('/auth/me',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Authorization' => 'Bearer {access-token}'
-}
-
-result = RestClient.get '/auth/me',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Authorization': 'Bearer {access-token}'
-}
-
-r = requests.get('/auth/me', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'Bearer {access-token}',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('GET','/auth/me', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth/me");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Authorization": []string{"Bearer {access-token}"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/auth/me", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /auth/me`
-
-To get the user details
-
-> Example responses
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|User Object|None|
-|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
-|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
-|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
-|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
-
-Response Schema
-
-
-To perform this operation, you must be authenticated by means of one of the following methods:
-HTTPBearer
-
-
-## LoginController.getToken
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X POST /auth/token \
- -H 'Content-Type: application/json' \
- -H 'Accept: application/json' \
- -H 'device_id: string'
-
-```
-
-```http
-POST /auth/token HTTP/1.1
-
-Content-Type: application/json
-Accept: application/json
-device_id: string
-
-```
-
-```javascript
-const inputBody = '{
- "code": "string",
- "clientId": "string",
- "username": "string"
-}';
-const headers = {
- 'Content-Type':'application/json',
- 'Accept':'application/json',
- 'device_id':'string'
-};
-
-fetch('/auth/token',
-{
- method: 'POST',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'application/json',
- 'Accept' => 'application/json',
- 'device_id' => 'string'
-}
-
-result = RestClient.post '/auth/token',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Content-Type': 'application/json',
- 'Accept': 'application/json',
- 'device_id': 'string'
-}
-
-r = requests.post('/auth/token', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
- 'Accept' => 'application/json',
- 'device_id' => 'string',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('POST','/auth/token', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth/token");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"application/json"},
- "Accept": []string{"application/json"},
- "device_id": []string{"string"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("POST", "/auth/token", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`POST /auth/token`
-
- Send the code received from the above api and this api will send you refresh token and access token (webapps)
-
-> Body parameter
-
-```json
-{
- "code": "string",
- "clientId": "string",
- "username": "string"
-}
-```
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|device_id|header|string|false|none|
-|body|body|[AuthTokenRequest](#schemaauthtokenrequest)|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "accessToken": "string",
- "refreshToken": "string",
- "expires": 0,
- "pubnubToken": "string"
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Token Response|[TokenResponse](#schematokenresponse)|
-|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
-|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
-|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
-|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
-
-
-This operation does not require authentication
-
-
-## LoginController.exchangeToken
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X POST /auth/token-refresh \
- -H 'Content-Type: application/json' \
- -H 'Accept: application/json' \
- -H 'device_id: string'
-
-```
-
-```http
-POST /auth/token-refresh HTTP/1.1
-
-Content-Type: application/json
-Accept: application/json
-device_id: string
-
-```
-
-```javascript
-const inputBody = '{
- "refreshToken": "string"
-}';
-const headers = {
- 'Content-Type':'application/json',
- 'Accept':'application/json',
- 'device_id':'string'
-};
-
-fetch('/auth/token-refresh',
-{
- method: 'POST',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'application/json',
- 'Accept' => 'application/json',
- 'device_id' => 'string'
-}
-
-result = RestClient.post '/auth/token-refresh',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Content-Type': 'application/json',
- 'Accept': 'application/json',
- 'device_id': 'string'
-}
-
-r = requests.post('/auth/token-refresh', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
- 'Accept' => 'application/json',
- 'device_id' => 'string',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('POST','/auth/token-refresh', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth/token-refresh");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"application/json"},
- "Accept": []string{"application/json"},
- "device_id": []string{"string"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("POST", "/auth/token-refresh", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`POST /auth/token-refresh`
-
- Gets you a new access and refresh token once your access token is expired. (both mobile and web)
-
-> Body parameter
-
-```json
-{
- "refreshToken": "string"
-}
-```
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|device_id|header|string|false|none|
-|body|body|[AuthRefreshTokenRequest](#schemaauthrefreshtokenrequest)|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "accessToken": "string",
- "refreshToken": "string",
- "expires": 0,
- "pubnubToken": "string"
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|New Token Response|[TokenResponse](#schematokenresponse)|
-|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
-|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
-|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
-|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
-
-
-This operation does not require authentication
-
-
-ForgetPasswordController
-
-## ForgetPasswordController.forgetPassword
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X POST /auth/forget-password \
- -H 'Content-Type: application/json' \
- -H 'Accept: application/json'
-
-```
-
-```http
-POST /auth/forget-password HTTP/1.1
-
-Content-Type: application/json
-Accept: application/json
-
-```
-
-```javascript
-const inputBody = '{
- "username": "string",
- "client_id": "string",
- "client_secret": "string"
-}';
-const headers = {
- 'Content-Type':'application/json',
- 'Accept':'application/json'
-};
-
-fetch('/auth/forget-password',
-{
- method: 'POST',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'application/json',
- 'Accept' => 'application/json'
-}
-
-result = RestClient.post '/auth/forget-password',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Content-Type': 'application/json',
- 'Accept': 'application/json'
-}
-
-r = requests.post('/auth/forget-password', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
- 'Accept' => 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('POST','/auth/forget-password', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth/forget-password");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"application/json"},
- "Accept": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("POST", "/auth/forget-password", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`POST /auth/forget-password`
-
-> Body parameter
-
-```json
-{
- "username": "string",
- "client_id": "string",
- "client_secret": "string"
-}
-```
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|body|body|[ForgetPasswordDto](#schemaforgetpassworddto)|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "code": "string",
- "expiry": 0,
- "email": "string",
- "user": {
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "modifiedBy": "string",
- "id": "string",
- "firstName": "string",
- "lastName": "string",
- "middleName": "string",
- "username": "string",
- "email": "string",
- "phone": "string",
- "authClientIds": "string",
- "lastLogin": "2019-08-24T14:15:22Z",
- "dob": "2019-08-24T14:15:22Z",
- "gender": "M",
- "defaultTenantId": "string"
- }
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success Response.|[ForgetPasswordResponseDto](#schemaforgetpasswordresponsedto)|
-|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
-|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
-|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
-|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
-
-
-This operation does not require authentication
-
-
-## ForgetPasswordController.resetPassword
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X PATCH /auth/reset-password \
- -H 'Content-Type: application/json'
-
-```
-
-```http
-PATCH /auth/reset-password HTTP/1.1
-
-Content-Type: application/json
-
-```
-
-```javascript
-const inputBody = '{
- "token": "string",
- "password": "string",
- "client_id": "string",
- "client_secret": "string"
-}';
-const headers = {
- 'Content-Type':'application/json'
-};
-
-fetch('/auth/reset-password',
-{
- method: 'PATCH',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'application/json'
-}
-
-result = RestClient.patch '/auth/reset-password',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Content-Type': 'application/json'
-}
-
-r = requests.patch('/auth/reset-password', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('PATCH','/auth/reset-password', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth/reset-password");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PATCH");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("PATCH", "/auth/reset-password", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`PATCH /auth/reset-password`
-
-> Body parameter
-
-```json
-{
- "token": "string",
- "password": "string",
- "client_id": "string",
- "client_secret": "string"
-}
-```
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|body|body|[ResetPasswordWithClient](#schemaresetpasswordwithclient)|false|none|
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|If User password successfully changed.|None|
-
-
-This operation does not require authentication
-
-
-## ForgetPasswordController.verifyResetPasswordLink
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET /auth/verify-reset-password-link?token=string
-
-```
-
-```http
-GET /auth/verify-reset-password-link?token=string HTTP/1.1
-
-```
-
-```javascript
-
-fetch('/auth/verify-reset-password-link?token=string',
-{
- method: 'GET'
-
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-result = RestClient.get '/auth/verify-reset-password-link',
- params: {
- 'token' => 'string'
-}
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-
-r = requests.get('/auth/verify-reset-password-link', params={
- 'token': 'string'
-})
-
-print(r.json())
-
-```
-
-```php
-request('GET','/auth/verify-reset-password-link', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth/verify-reset-password-link?token=string");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/auth/verify-reset-password-link", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /auth/verify-reset-password-link`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|token|query|string|true|none|
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Check if Token Is Valid and not Expired.|None|
-
-
-This operation does not require authentication
-
-
-AuthClientController
-
-## AuthClientController.count
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET /auth-clients/count \
- -H 'Accept: application/json' \
- -H 'Authorization: Bearer {access-token}'
-
-```
-
-```http
-GET /auth-clients/count HTTP/1.1
-
-Accept: application/json
-
-```
-
-```javascript
-
-const headers = {
- 'Accept':'application/json',
- 'Authorization':'Bearer {access-token}'
-};
-
-fetch('/auth-clients/count',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json',
- 'Authorization' => 'Bearer {access-token}'
-}
-
-result = RestClient.get '/auth-clients/count',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Accept': 'application/json',
- 'Authorization': 'Bearer {access-token}'
-}
-
-r = requests.get('/auth-clients/count', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
- 'Authorization' => 'Bearer {access-token}',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('GET','/auth-clients/count', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth-clients/count");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- "Authorization": []string{"Bearer {access-token}"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/auth-clients/count", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /auth-clients/count`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|where|query|object|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "count": 0
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuthClient model count|[loopback.Count](#schemaloopback.count)|
-
-
-To perform this operation, you must be authenticated by means of one of the following methods:
-HTTPBearer
-
-
-## AuthClientController.replaceById
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X PUT /auth-clients/{id} \
- -H 'Content-Type: application/json' \
- -H 'Authorization: Bearer {access-token}'
-
-```
-
-```http
-PUT /auth-clients/{id} HTTP/1.1
-
-Content-Type: application/json
-
-```
-
-```javascript
-const inputBody = '{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "id": 0,
- "clientId": "string",
- "clientSecret": "string",
- "secret": "string",
- "redirectUrl": "string",
- "accessTokenExpiration": 0,
- "refreshTokenExpiration": 0,
- "authCodeExpiration": 0
-}';
-const headers = {
- 'Content-Type':'application/json',
- 'Authorization':'Bearer {access-token}'
-};
-
-fetch('/auth-clients/{id}',
-{
- method: 'PUT',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'application/json',
- 'Authorization' => 'Bearer {access-token}'
-}
-
-result = RestClient.put '/auth-clients/{id}',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Content-Type': 'application/json',
- 'Authorization': 'Bearer {access-token}'
-}
-
-r = requests.put('/auth-clients/{id}', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
- 'Authorization' => 'Bearer {access-token}',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('PUT','/auth-clients/{id}', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth-clients/{id}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PUT");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"application/json"},
- "Authorization": []string{"Bearer {access-token}"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("PUT", "/auth-clients/{id}", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`PUT /auth-clients/{id}`
-
-> Body parameter
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "id": 0,
- "clientId": "string",
- "clientSecret": "string",
- "secret": "string",
- "redirectUrl": "string",
- "accessTokenExpiration": 0,
- "refreshTokenExpiration": 0,
- "authCodeExpiration": 0
-}
-```
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|id|path|number|true|none|
-|body|body|[AuthClient](#schemaauthclient)|false|none|
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|AuthClient PUT success|None|
-
-
-To perform this operation, you must be authenticated by means of one of the following methods:
-HTTPBearer
-
-
-## AuthClientController.updateById
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X PATCH /auth-clients/{id} \
- -H 'Content-Type: application/json' \
- -H 'Authorization: Bearer {access-token}'
-
-```
-
-```http
-PATCH /auth-clients/{id} HTTP/1.1
-
-Content-Type: application/json
-
-```
-
-```javascript
-const inputBody = '{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "id": 0,
- "clientId": "string",
- "clientSecret": "string",
- "secret": "string",
- "redirectUrl": "string",
- "accessTokenExpiration": 0,
- "refreshTokenExpiration": 0,
- "authCodeExpiration": 0
-}';
-const headers = {
- 'Content-Type':'application/json',
- 'Authorization':'Bearer {access-token}'
-};
-
-fetch('/auth-clients/{id}',
-{
- method: 'PATCH',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'application/json',
- 'Authorization' => 'Bearer {access-token}'
-}
-
-result = RestClient.patch '/auth-clients/{id}',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Content-Type': 'application/json',
- 'Authorization': 'Bearer {access-token}'
-}
-
-r = requests.patch('/auth-clients/{id}', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
- 'Authorization' => 'Bearer {access-token}',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('PATCH','/auth-clients/{id}', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth-clients/{id}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PATCH");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"application/json"},
- "Authorization": []string{"Bearer {access-token}"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("PATCH", "/auth-clients/{id}", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`PATCH /auth-clients/{id}`
-
-> Body parameter
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "id": 0,
- "clientId": "string",
- "clientSecret": "string",
- "secret": "string",
- "redirectUrl": "string",
- "accessTokenExpiration": 0,
- "refreshTokenExpiration": 0,
- "authCodeExpiration": 0
-}
-```
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|id|path|number|true|none|
-|body|body|[AuthClientPartial](#schemaauthclientpartial)|false|none|
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|AuthClient PATCH success|None|
-
-
-To perform this operation, you must be authenticated by means of one of the following methods:
-HTTPBearer
-
-
-## AuthClientController.findById
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET /auth-clients/{id} \
- -H 'Accept: application/json' \
- -H 'Authorization: Bearer {access-token}'
-
-```
-
-```http
-GET /auth-clients/{id} HTTP/1.1
-
-Accept: application/json
-
-```
-
-```javascript
-
-const headers = {
- 'Accept':'application/json',
- 'Authorization':'Bearer {access-token}'
-};
-
-fetch('/auth-clients/{id}',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json',
- 'Authorization' => 'Bearer {access-token}'
-}
-
-result = RestClient.get '/auth-clients/{id}',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Accept': 'application/json',
- 'Authorization': 'Bearer {access-token}'
-}
-
-r = requests.get('/auth-clients/{id}', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
- 'Authorization' => 'Bearer {access-token}',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('GET','/auth-clients/{id}', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth-clients/{id}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- "Authorization": []string{"Bearer {access-token}"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/auth-clients/{id}", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /auth-clients/{id}`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|id|path|number|true|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "id": 0,
- "clientId": "string",
- "clientSecret": "string",
- "secret": "string",
- "redirectUrl": "string",
- "accessTokenExpiration": 0,
- "refreshTokenExpiration": 0,
- "authCodeExpiration": 0
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuthClient model instance|[AuthClient](#schemaauthclient)|
-
-
-To perform this operation, you must be authenticated by means of one of the following methods:
-HTTPBearer
-
-
-## AuthClientController.deleteById
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X DELETE /auth-clients/{id} \
- -H 'Authorization: Bearer {access-token}'
-
-```
-
-```http
-DELETE /auth-clients/{id} HTTP/1.1
-
-```
-
-```javascript
-
-const headers = {
- 'Authorization':'Bearer {access-token}'
-};
-
-fetch('/auth-clients/{id}',
-{
- method: 'DELETE',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Authorization' => 'Bearer {access-token}'
-}
-
-result = RestClient.delete '/auth-clients/{id}',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Authorization': 'Bearer {access-token}'
-}
-
-r = requests.delete('/auth-clients/{id}', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'Bearer {access-token}',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('DELETE','/auth-clients/{id}', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth-clients/{id}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("DELETE");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Authorization": []string{"Bearer {access-token}"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("DELETE", "/auth-clients/{id}", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`DELETE /auth-clients/{id}`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|id|path|number|true|none|
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|AuthClient DELETE success|None|
-
-
-To perform this operation, you must be authenticated by means of one of the following methods:
-HTTPBearer
-
-
-## AuthClientController.create
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X POST /auth-clients \
- -H 'Content-Type: application/json' \
- -H 'Accept: application/json' \
- -H 'Authorization: Bearer {access-token}'
-
-```
-
-```http
-POST /auth-clients HTTP/1.1
-
-Content-Type: application/json
-Accept: application/json
-
-```
-
-```javascript
-const inputBody = '{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "clientId": "string",
- "clientSecret": "string",
- "secret": "string",
- "redirectUrl": "string",
- "accessTokenExpiration": 0,
- "refreshTokenExpiration": 0,
- "authCodeExpiration": 0
-}';
-const headers = {
- 'Content-Type':'application/json',
- 'Accept':'application/json',
- 'Authorization':'Bearer {access-token}'
-};
-
-fetch('/auth-clients',
-{
- method: 'POST',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'application/json',
- 'Accept' => 'application/json',
- 'Authorization' => 'Bearer {access-token}'
-}
-
-result = RestClient.post '/auth-clients',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Content-Type': 'application/json',
- 'Accept': 'application/json',
- 'Authorization': 'Bearer {access-token}'
-}
-
-r = requests.post('/auth-clients', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
- 'Accept' => 'application/json',
- 'Authorization' => 'Bearer {access-token}',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('POST','/auth-clients', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth-clients");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"application/json"},
- "Accept": []string{"application/json"},
- "Authorization": []string{"Bearer {access-token}"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("POST", "/auth-clients", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`POST /auth-clients`
-
-> Body parameter
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "clientId": "string",
- "clientSecret": "string",
- "secret": "string",
- "redirectUrl": "string",
- "accessTokenExpiration": 0,
- "refreshTokenExpiration": 0,
- "authCodeExpiration": 0
-}
-```
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|body|body|[AuthClientExcluding_id_](#schemaauthclientexcluding_id_)|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "id": 0,
- "clientId": "string",
- "clientSecret": "string",
- "secret": "string",
- "redirectUrl": "string",
- "accessTokenExpiration": 0,
- "refreshTokenExpiration": 0,
- "authCodeExpiration": 0
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuthClient model instance|[AuthClient](#schemaauthclient)|
-
-
-To perform this operation, you must be authenticated by means of one of the following methods:
-HTTPBearer
-
-
-## AuthClientController.updateAll
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X PATCH /auth-clients \
- -H 'Content-Type: application/json' \
- -H 'Accept: application/json' \
- -H 'Authorization: Bearer {access-token}'
-
-```
-
-```http
-PATCH /auth-clients HTTP/1.1
-
-Content-Type: application/json
-Accept: application/json
-
-```
-
-```javascript
-const inputBody = '{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "id": 0,
- "clientId": "string",
- "clientSecret": "string",
- "secret": "string",
- "redirectUrl": "string",
- "accessTokenExpiration": 0,
- "refreshTokenExpiration": 0,
- "authCodeExpiration": 0
-}';
-const headers = {
- 'Content-Type':'application/json',
- 'Accept':'application/json',
- 'Authorization':'Bearer {access-token}'
-};
-
-fetch('/auth-clients',
-{
- method: 'PATCH',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'application/json',
- 'Accept' => 'application/json',
- 'Authorization' => 'Bearer {access-token}'
-}
-
-result = RestClient.patch '/auth-clients',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Content-Type': 'application/json',
- 'Accept': 'application/json',
- 'Authorization': 'Bearer {access-token}'
-}
-
-r = requests.patch('/auth-clients', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
- 'Accept' => 'application/json',
- 'Authorization' => 'Bearer {access-token}',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('PATCH','/auth-clients', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth-clients");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PATCH");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"application/json"},
- "Accept": []string{"application/json"},
- "Authorization": []string{"Bearer {access-token}"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("PATCH", "/auth-clients", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`PATCH /auth-clients`
-
-> Body parameter
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "id": 0,
- "clientId": "string",
- "clientSecret": "string",
- "secret": "string",
- "redirectUrl": "string",
- "accessTokenExpiration": 0,
- "refreshTokenExpiration": 0,
- "authCodeExpiration": 0
-}
-```
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|where|query|object|false|none|
-|body|body|[AuthClientPartial](#schemaauthclientpartial)|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "count": 0
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuthClient PATCH success count|[loopback.Count](#schemaloopback.count)|
-
-
-To perform this operation, you must be authenticated by means of one of the following methods:
-HTTPBearer
-
-
-## AuthClientController.find
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET /auth-clients \
- -H 'Accept: application/json' \
- -H 'Authorization: Bearer {access-token}'
-
-```
-
-```http
-GET /auth-clients HTTP/1.1
-
-Accept: application/json
-
-```
-
-```javascript
-
-const headers = {
- 'Accept':'application/json',
- 'Authorization':'Bearer {access-token}'
-};
-
-fetch('/auth-clients',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json',
- 'Authorization' => 'Bearer {access-token}'
-}
-
-result = RestClient.get '/auth-clients',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Accept': 'application/json',
- 'Authorization': 'Bearer {access-token}'
-}
-
-r = requests.get('/auth-clients', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
- 'Authorization' => 'Bearer {access-token}',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('GET','/auth-clients', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/auth-clients");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- "Authorization": []string{"Bearer {access-token}"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/auth-clients", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /auth-clients`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|filter|query|[auth_clients.Filter](#schemaauth_clients.filter)|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-[
- {
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "id": 0,
- "clientId": "string",
- "clientSecret": "string",
- "secret": "string",
- "redirectUrl": "string",
- "accessTokenExpiration": 0,
- "refreshTokenExpiration": 0,
- "authCodeExpiration": 0
- }
-]
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of AuthClient model instances|Inline|
-
-Response Schema
-
-Status Code **200**
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|*anonymous*|[[AuthClient](#schemaauthclient)]|false|none|none|
-|» AuthClient|[AuthClient](#schemaauthclient)|false|none|none|
-|»» deleted|boolean|false|none|none|
-|»» deletedOn|string(date-time)¦null|false|none|none|
-|»» deletedBy|string¦null|false|none|none|
-|»» createdOn|string(date-time)|false|none|none|
-|»» modifiedOn|string(date-time)|false|none|none|
-|»» id|number|false|none|none|
-|»» clientId|string|true|none|none|
-|»» clientSecret|string|true|none|none|
-|»» secret|string|true|none|none|
-|»» redirectUrl|string|false|none|none|
-|»» accessTokenExpiration|number|true|none|none|
-|»» refreshTokenExpiration|number|true|none|none|
-|»» authCodeExpiration|number|true|none|none|
-
-
-To perform this operation, you must be authenticated by means of one of the following methods:
-HTTPBearer
-
-
-LogoutController
-
-## LogoutController.logout
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X POST /logout \
- -H 'Content-Type: application/json' \
- -H 'Accept: application/json' \
- -H 'Authorization: string'
-
-```
-
-```http
-POST /logout HTTP/1.1
-
-Content-Type: application/json
-Accept: application/json
-Authorization: string
-
-```
-
-```javascript
-const inputBody = '{
- "refreshToken": "string"
-}';
-const headers = {
- 'Content-Type':'application/json',
- 'Accept':'application/json',
- 'Authorization':'string'
-};
-
-fetch('/logout',
-{
- method: 'POST',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'application/json',
- 'Accept' => 'application/json',
- 'Authorization' => 'string'
-}
-
-result = RestClient.post '/logout',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Content-Type': 'application/json',
- 'Accept': 'application/json',
- 'Authorization': 'string'
-}
-
-r = requests.post('/logout', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
- 'Accept' => 'application/json',
- 'Authorization' => 'string',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('POST','/logout', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/logout");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"application/json"},
- "Accept": []string{"application/json"},
- "Authorization": []string{"string"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("POST", "/logout", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`POST /logout`
-
-To logout
-
-> Body parameter
-
-```json
-{
- "refreshToken": "string"
-}
-```
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|Authorization|header|string|false|This is the access token which is required to authenticate user.|
-|body|body|[RefreshTokenRequestPartial](#schemarefreshtokenrequestpartial)|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "success": true
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success Response|[SuccessResponse](#schemasuccessresponse)|
-|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
-|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
-|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
-|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
-
-
-To perform this operation, you must be authenticated by means of one of the following methods:
-HTTPBearer
-
-
-OtpController
-
-## OtpController.findById
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET /otp-caches/{id} \
- -H 'Accept: application/json'
-
-```
-
-```http
-GET /otp-caches/{id} HTTP/1.1
-
-Accept: application/json
-
-```
-
-```javascript
-
-const headers = {
- 'Accept':'application/json'
-};
-
-fetch('/otp-caches/{id}',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json'
-}
-
-result = RestClient.get '/otp-caches/{id}',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Accept': 'application/json'
-}
-
-r = requests.get('/otp-caches/{id}', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('GET','/otp-caches/{id}', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/otp-caches/{id}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/otp-caches/{id}", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /otp-caches/{id}`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|id|path|string|true|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "otp": "string",
- "username": "string"
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Otp model instance|[Otp](#schemaotp)|
-
-
-This operation does not require authentication
-
-
-## OtpController.deleteById
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X DELETE /otp-caches/{id}
-
-```
-
-```http
-DELETE /otp-caches/{id} HTTP/1.1
-
-```
-
-```javascript
-
-fetch('/otp-caches/{id}',
-{
- method: 'DELETE'
-
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-result = RestClient.delete '/otp-caches/{id}',
- params: {
- }
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-
-r = requests.delete('/otp-caches/{id}')
-
-print(r.json())
-
-```
-
-```php
-request('DELETE','/otp-caches/{id}', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/otp-caches/{id}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("DELETE");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("DELETE", "/otp-caches/{id}", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`DELETE /otp-caches/{id}`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|id|path|string|true|none|
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Otp DELETE success|None|
-
-
-This operation does not require authentication
-
-
-## OtpController.create
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X POST /otp-caches \
- -H 'Content-Type: application/json' \
- -H 'Accept: application/json'
-
-```
-
-```http
-POST /otp-caches HTTP/1.1
-
-Content-Type: application/json
-Accept: application/json
-
-```
-
-```javascript
-const inputBody = '{
- "otp": "string",
- "username": "string"
-}';
-const headers = {
- 'Content-Type':'application/json',
- 'Accept':'application/json'
-};
-
-fetch('/otp-caches',
-{
- method: 'POST',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'application/json',
- 'Accept' => 'application/json'
-}
-
-result = RestClient.post '/otp-caches',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Content-Type': 'application/json',
- 'Accept': 'application/json'
-}
-
-r = requests.post('/otp-caches', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
- 'Accept' => 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('POST','/otp-caches', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/otp-caches");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"application/json"},
- "Accept": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("POST", "/otp-caches", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`POST /otp-caches`
-
-> Body parameter
-
-```json
-{
- "otp": "string",
- "username": "string"
-}
-```
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|body|body|[Otp](#schemaotp)|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "otp": "string",
- "username": "string"
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Otp model instance|[Otp](#schemaotp)|
-
-
-This operation does not require authentication
-
-
-PingController
-
-## PingController.ping
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET /ping \
- -H 'Accept: application/json'
-
-```
-
-```http
-GET /ping HTTP/1.1
-
-Accept: application/json
-
-```
-
-```javascript
-
-const headers = {
- 'Accept':'application/json'
-};
-
-fetch('/ping',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json'
-}
-
-result = RestClient.get '/ping',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Accept': 'application/json'
-}
-
-r = requests.get('/ping', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('GET','/ping', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/ping");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/ping", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /ping`
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "greeting": "string",
- "date": "string",
- "url": "string",
- "headers": {
- "Content-Type": "string"
- }
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Ping Response|Inline|
-
-Response Schema
-
-Status Code **200**
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|» greeting|string|false|none|none|
-|» date|string|false|none|none|
-|» url|string|false|none|none|
-|» headers|object|false|none|none|
-|»» Content-Type|string|false|none|none|
-
-
-This operation does not require authentication
-
-
-TodoController
-
-## TodoController.count
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET /todos/count \
- -H 'Accept: application/json'
-
-```
-
-```http
-GET /todos/count HTTP/1.1
-
-Accept: application/json
-
-```
-
-```javascript
-
-const headers = {
- 'Accept':'application/json'
-};
-
-fetch('/todos/count',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json'
-}
-
-result = RestClient.get '/todos/count',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Accept': 'application/json'
-}
-
-r = requests.get('/todos/count', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('GET','/todos/count', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/todos/count");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/todos/count", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /todos/count`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|where|query|object|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "count": 0
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ToDo model count|[loopback.Count](#schemaloopback.count)|
-
-
-This operation does not require authentication
-
-
-## TodoController.updateById
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X PATCH /todos/{id} \
- -H 'Content-Type: application/json'
-
-```
-
-```http
-PATCH /todos/{id} HTTP/1.1
-
-Content-Type: application/json
-
-```
-
-```javascript
-const inputBody = '{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "modifiedBy": "string",
- "id": "string",
- "title": "string",
- "description": "string",
- "items": [
- "string"
- ]
-}';
-const headers = {
- 'Content-Type':'application/json'
-};
-
-fetch('/todos/{id}',
-{
- method: 'PATCH',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'application/json'
-}
-
-result = RestClient.patch '/todos/{id}',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Content-Type': 'application/json'
-}
-
-r = requests.patch('/todos/{id}', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('PATCH','/todos/{id}', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/todos/{id}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PATCH");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("PATCH", "/todos/{id}", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`PATCH /todos/{id}`
-
-> Body parameter
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "modifiedBy": "string",
- "id": "string",
- "title": "string",
- "description": "string",
- "items": [
- "string"
- ]
-}
-```
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|id|path|string|true|none|
-|body|body|[ToDoPartial](#schematodopartial)|false|none|
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|ToDo PATCH success|None|
-
-
-This operation does not require authentication
-
-
-## TodoController.findById
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET /todos/{id} \
- -H 'Accept: application/json'
-
-```
-
-```http
-GET /todos/{id} HTTP/1.1
-
-Accept: application/json
-
-```
-
-```javascript
-
-const headers = {
- 'Accept':'application/json'
-};
-
-fetch('/todos/{id}',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json'
-}
-
-result = RestClient.get '/todos/{id}',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Accept': 'application/json'
-}
-
-r = requests.get('/todos/{id}', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('GET','/todos/{id}', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/todos/{id}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/todos/{id}", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /todos/{id}`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|id|path|string|true|none|
-|filter|query|[todos.Filter](#schematodos.filter)|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "modifiedBy": "string",
- "id": "string",
- "title": "string",
- "description": "string",
- "items": [
- "string"
- ]
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ToDo model instance|[ToDoWithRelations](#schematodowithrelations)|
-
-
-This operation does not require authentication
-
-
-## TodoController.deleteById
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X DELETE /todos/{id}
-
-```
-
-```http
-DELETE /todos/{id} HTTP/1.1
-
-```
-
-```javascript
-
-fetch('/todos/{id}',
-{
- method: 'DELETE'
-
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-result = RestClient.delete '/todos/{id}',
- params: {
- }
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-
-r = requests.delete('/todos/{id}')
-
-print(r.json())
-
-```
-
-```php
-request('DELETE','/todos/{id}', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/todos/{id}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("DELETE");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("DELETE", "/todos/{id}", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`DELETE /todos/{id}`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|id|path|string|true|none|
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|ToDo DELETE success|None|
-
-
-This operation does not require authentication
-
-
-## TodoController.create
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X POST /todos \
- -H 'Content-Type: application/json' \
- -H 'Accept: application/json'
-
-```
-
-```http
-POST /todos HTTP/1.1
-
-Content-Type: application/json
-Accept: application/json
-
-```
-
-```javascript
-const inputBody = '{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "modifiedBy": "string",
- "title": "string",
- "description": "string",
- "items": [
- "string"
- ]
-}';
-const headers = {
- 'Content-Type':'application/json',
- 'Accept':'application/json'
-};
-
-fetch('/todos',
-{
- method: 'POST',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'application/json',
- 'Accept' => 'application/json'
-}
-
-result = RestClient.post '/todos',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Content-Type': 'application/json',
- 'Accept': 'application/json'
-}
-
-r = requests.post('/todos', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
- 'Accept' => 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('POST','/todos', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/todos");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"application/json"},
- "Accept": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("POST", "/todos", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`POST /todos`
-
-> Body parameter
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "modifiedBy": "string",
- "title": "string",
- "description": "string",
- "items": [
- "string"
- ]
-}
-```
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|body|body|[NewToDo](#schemanewtodo)|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "modifiedBy": "string",
- "id": "string",
- "title": "string",
- "description": "string",
- "items": [
- "string"
- ]
-}
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ToDo model instance|[ToDo](#schematodo)|
-
-
-This operation does not require authentication
-
-
-## TodoController.find
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET /todos \
- -H 'Accept: application/json'
-
-```
-
-```http
-GET /todos HTTP/1.1
-
-Accept: application/json
-
-```
-
-```javascript
-
-const headers = {
- 'Accept':'application/json'
-};
-
-fetch('/todos',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json'
-}
-
-result = RestClient.get '/todos',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Accept': 'application/json'
-}
-
-r = requests.get('/todos', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'application/json',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('GET','/todos', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/todos");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/todos", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /todos`
-
-Parameters
-
-|Name|In|Type|Required|Description|
-|---|---|---|---|---|
-|filter|query|[todos.Filter1](#schematodos.filter1)|false|none|
-
-> Example responses
-
-> 200 Response
-
-```json
-[
- {
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "modifiedBy": "string",
- "id": "string",
- "title": "string",
- "description": "string",
- "items": [
- "string"
- ]
- }
-]
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of ToDo model instances|Inline|
-
-Response Schema
-
-Status Code **200**
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|*anonymous*|[[ToDoWithRelations](#schematodowithrelations)]|false|none|[(tsType: ToDoWithRelations, schemaOptions: { includeRelations: true })]|
-|» ToDoWithRelations|[ToDoWithRelations](#schematodowithrelations)|false|none|(tsType: ToDoWithRelations, schemaOptions: { includeRelations: true })|
-|»» deleted|boolean|false|none|none|
-|»» deletedOn|string(date-time)¦null|false|none|none|
-|»» deletedBy|string¦null|false|none|none|
-|»» createdOn|string(date-time)|false|none|none|
-|»» modifiedOn|string(date-time)|false|none|none|
-|»» createdBy|string|false|none|none|
-|»» modifiedBy|string|false|none|none|
-|»» id|string|false|none|none|
-|»» title|string|true|none|none|
-|»» description|string|true|none|none|
-|»» items|[string]|false|none|none|
-
-
-This operation does not require authentication
-
-
-HomePageController
-
-## HomePageController.homePage
-
-
-
-> Code samples
-
-```shell
-# You can also use wget
-curl -X GET / \
- -H 'Accept: text/html'
-
-```
-
-```http
-GET / HTTP/1.1
-
-Accept: text/html
-
-```
-
-```javascript
-
-const headers = {
- 'Accept':'text/html'
-};
-
-fetch('/',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-```
-
-```ruby
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'text/html'
-}
-
-result = RestClient.get '/',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-```
-
-```python
-import requests
-headers = {
- 'Accept': 'text/html'
-}
-
-r = requests.get('/', headers = headers)
-
-print(r.json())
-
-```
-
-```php
- 'text/html',
-);
-
-$client = new \GuzzleHttp\Client();
-
-// Define array of request body.
-$request_body = array();
-
-try {
- $response = $client->request('GET','/', array(
- 'headers' => $headers,
- 'json' => $request_body,
- )
- );
- print_r($response->getBody()->getContents());
- }
- catch (\GuzzleHttp\Exception\BadResponseException $e) {
- // handle exception or api errors.
- print_r($e->getMessage());
- }
-
- // ...
-
-```
-
-```java
-URL obj = new URL("/");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-```
-
-```go
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"text/html"},
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-```
-
-`GET /`
-
-> Example responses
-
-> 200 Response
-
-```
-"string"
-```
-
-Responses
-
-|Status|Meaning|Description|Schema|
-|---|---|---|---|
-|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Home Page|string|
-
-
-This operation does not require authentication
-
-
-# Schemas
-
-LoginRequest
-
-
-
-
-
-
-```json
-{
- "client_id": "string",
- "client_secret": "string",
- "username": "string",
- "password": "string"
-}
-
-```
-
-LoginRequest
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|client_id|string|true|none|This property is supposed to be a string and is a required field|
-|client_secret|string|true|none|This property is supposed to be a string and is a required field|
-|username|string|true|none|This property is supposed to be a string and is a required field|
-|password|string|true|none|This property is supposed to be a string and is a required field|
-
-TokenResponse
-
-
-
-
-
-
-```json
-{
- "accessToken": "string",
- "refreshToken": "string",
- "expires": 0,
- "pubnubToken": "string"
-}
-
-```
-
-TokenResponse
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|accessToken|string|true|none|This property is supposed to be a string and is a required field|
-|refreshToken|string|true|none|This property is supposed to be a string and is a required field|
-|expires|number|true|none|none|
-|pubnubToken|string|false|none|none|
-
-AuthTokenRequest
-
-
-
-
-
-
-```json
-{
- "code": "string",
- "clientId": "string",
- "username": "string"
-}
-
-```
-
-AuthTokenRequest
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|code|string|true|none|none|
-|clientId|string|true|none|none|
-|username|string|true|none|none|
-
-AuthRefreshTokenRequest
-
-
-
-
-
-
-```json
-{
- "refreshToken": "string"
-}
-
-```
-
-AuthRefreshTokenRequest
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|refreshToken|string|true|none|none|
-
-ResetPasswordPartial
-
-
-
-
-
-
-```json
-{
- "refreshToken": "string",
- "username": "string",
- "password": "string",
- "oldPassword": "string"
-}
-
-```
-
-ResetPasswordPartial
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|refreshToken|string|false|none|none|
-|username|string|false|none|This property is supposed to be a string and is a required field|
-|password|string|false|none|This property is supposed to be a string and is a required field|
-|oldPassword|string|false|none|This property is supposed to be a string and is a required field|
-
-ResetPassword
-
-
-
-
-
-
-```json
-{
- "refreshToken": "string",
- "username": "string",
- "password": "string",
- "oldPassword": "string"
-}
-
-```
-
-ResetPassword
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|refreshToken|string|true|none|none|
-|username|string|true|none|This property is supposed to be a string and is a required field|
-|password|string|true|none|This property is supposed to be a string and is a required field|
-|oldPassword|string|false|none|This property is supposed to be a string and is a required field|
-
-SuccessResponse
-
-
-
-
-
-
-```json
-{
- "success": true
-}
-
-```
-
-SuccessResponse
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|success|boolean|false|none|none|
-
-RefreshTokenRequestPartial
-
-
-
-
-
-
-```json
-{
- "refreshToken": "string"
-}
-
-```
-
-RefreshTokenRequestPartial
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|refreshToken|string|false|none|none|
-
-RefreshTokenRequest
-
-
-
-
-
-
-```json
-{
- "refreshToken": "string"
-}
-
-```
-
-RefreshTokenRequest
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|refreshToken|string|true|none|none|
-
-Otp
-
-
-
-
-
-
-```json
-{
- "otp": "string",
- "username": "string"
-}
-
-```
-
-Otp
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|otp|string|true|none|none|
-|username|string|true|none|none|
-
-AuthClient
-
-
-
-
-
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "id": 0,
- "clientId": "string",
- "clientSecret": "string",
- "secret": "string",
- "redirectUrl": "string",
- "accessTokenExpiration": 0,
- "refreshTokenExpiration": 0,
- "authCodeExpiration": 0
-}
-
-```
-
-AuthClient
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|deleted|boolean|false|none|none|
-|deletedOn|string(date-time)¦null|false|none|none|
-|deletedBy|string¦null|false|none|none|
-|createdOn|string(date-time)|false|none|none|
-|modifiedOn|string(date-time)|false|none|none|
-|id|number|false|none|none|
-|clientId|string|true|none|none|
-|clientSecret|string|true|none|none|
-|secret|string|true|none|none|
-|redirectUrl|string|false|none|none|
-|accessTokenExpiration|number|true|none|none|
-|refreshTokenExpiration|number|true|none|none|
-|authCodeExpiration|number|true|none|none|
-
-AuthClientExcluding_id_
-
-
-
-
-
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "clientId": "string",
- "clientSecret": "string",
- "secret": "string",
- "redirectUrl": "string",
- "accessTokenExpiration": 0,
- "refreshTokenExpiration": 0,
- "authCodeExpiration": 0
-}
-
-```
-
-AuthClientExcluding_id_
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|deleted|boolean|false|none|none|
-|deletedOn|string(date-time)¦null|false|none|none|
-|deletedBy|string¦null|false|none|none|
-|createdOn|string(date-time)|false|none|none|
-|modifiedOn|string(date-time)|false|none|none|
-|clientId|string|true|none|none|
-|clientSecret|string|true|none|none|
-|secret|string|true|none|none|
-|redirectUrl|string|false|none|none|
-|accessTokenExpiration|number|true|none|none|
-|refreshTokenExpiration|number|true|none|none|
-|authCodeExpiration|number|true|none|none|
-
-AuthClientPartial
-
-
-
-
-
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "id": 0,
- "clientId": "string",
- "clientSecret": "string",
- "secret": "string",
- "redirectUrl": "string",
- "accessTokenExpiration": 0,
- "refreshTokenExpiration": 0,
- "authCodeExpiration": 0
-}
-
-```
-
-AuthClientPartial
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|deleted|boolean|false|none|none|
-|deletedOn|string(date-time)¦null|false|none|none|
-|deletedBy|string¦null|false|none|none|
-|createdOn|string(date-time)|false|none|none|
-|modifiedOn|string(date-time)|false|none|none|
-|id|number|false|none|none|
-|clientId|string|false|none|none|
-|clientSecret|string|false|none|none|
-|secret|string|false|none|none|
-|redirectUrl|string|false|none|none|
-|accessTokenExpiration|number|false|none|none|
-|refreshTokenExpiration|number|false|none|none|
-|authCodeExpiration|number|false|none|none|
-
-User
-
-
-
-
-
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "modifiedBy": "string",
- "id": "string",
- "firstName": "string",
- "lastName": "string",
- "middleName": "string",
- "username": "string",
- "email": "string",
- "phone": "string",
- "authClientIds": "string",
- "lastLogin": "2019-08-24T14:15:22Z",
- "dob": "2019-08-24T14:15:22Z",
- "gender": "M",
- "defaultTenantId": "string"
-}
-
-```
-
-User
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|deleted|boolean|false|none|none|
-|deletedOn|string(date-time)¦null|false|none|none|
-|deletedBy|string¦null|false|none|none|
-|createdOn|string(date-time)|false|none|none|
-|modifiedOn|string(date-time)|false|none|none|
-|createdBy|string|false|none|none|
-|modifiedBy|string|false|none|none|
-|id|string|false|none|none|
-|firstName|string|true|none|none|
-|lastName|string|false|none|none|
-|middleName|string|false|none|none|
-|username|string|true|none|none|
-|email|string|false|none|none|
-|phone|string|false|none|none|
-|authClientIds|string|false|none|none|
-|lastLogin|string(date-time)|false|none|none|
-|dob|string(date-time)|false|none|none|
-|gender|string|false|none|This field takes a single character as input in database. 'M' for male and 'F' for female.|
-|defaultTenantId|string|false|none|none|
-
-#### Enumerated Values
-
-|Property|Value|
-|---|---|
-|gender|M|
-|gender|F|
-|gender|O|
-
-ForgetPasswordResponseDto
-
-
-
-
-
-
-```json
-{
- "code": "string",
- "expiry": 0,
- "email": "string",
- "user": {
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "modifiedBy": "string",
- "id": "string",
- "firstName": "string",
- "lastName": "string",
- "middleName": "string",
- "username": "string",
- "email": "string",
- "phone": "string",
- "authClientIds": "string",
- "lastLogin": "2019-08-24T14:15:22Z",
- "dob": "2019-08-24T14:15:22Z",
- "gender": "M",
- "defaultTenantId": "string"
- }
-}
-
-```
-
-ForgetPasswordResponseDto
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|code|string|true|none|none|
-|expiry|number|true|none|none|
-|email|string|true|none|none|
-|user|[User](#schemauser)|false|none|This is signature for user model.|
-
-ForgetPasswordDto
-
-
-
-
-
-
-```json
-{
- "username": "string",
- "client_id": "string",
- "client_secret": "string"
-}
-
-```
-
-ForgetPasswordDto
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|username|string|true|none|none|
-|client_id|string|true|none|none|
-|client_secret|string|true|none|none|
-
-ResetPasswordWithClient
-
-
-
-
-
-
-```json
-{
- "token": "string",
- "password": "string",
- "client_id": "string",
- "client_secret": "string"
-}
-
-```
-
-ResetPasswordWithClient
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|token|string|true|none|none|
-|password|string|true|none|none|
-|client_id|string|true|none|none|
-|client_secret|string|true|none|none|
-
-ToDo
-
-
-
-
-
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "modifiedBy": "string",
- "id": "string",
- "title": "string",
- "description": "string",
- "items": [
- "string"
- ]
-}
-
-```
-
-ToDo
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|deleted|boolean|false|none|none|
-|deletedOn|string(date-time)¦null|false|none|none|
-|deletedBy|string¦null|false|none|none|
-|createdOn|string(date-time)|false|none|none|
-|modifiedOn|string(date-time)|false|none|none|
-|createdBy|string|false|none|none|
-|modifiedBy|string|false|none|none|
-|id|string|false|none|none|
-|title|string|true|none|none|
-|description|string|true|none|none|
-|items|[string]|false|none|none|
-
-NewToDo
-
-
-
-
-
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "modifiedBy": "string",
- "title": "string",
- "description": "string",
- "items": [
- "string"
- ]
-}
-
-```
-
-NewToDo
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|deleted|boolean|false|none|none|
-|deletedOn|string(date-time)¦null|false|none|none|
-|deletedBy|string¦null|false|none|none|
-|createdOn|string(date-time)|false|none|none|
-|modifiedOn|string(date-time)|false|none|none|
-|createdBy|string|false|none|none|
-|modifiedBy|string|false|none|none|
-|title|string|true|none|none|
-|description|string|true|none|none|
-|items|[string]|false|none|none|
-
-ToDoWithRelations
-
-
-
-
-
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "modifiedBy": "string",
- "id": "string",
- "title": "string",
- "description": "string",
- "items": [
- "string"
- ]
-}
-
-```
-
-ToDoWithRelations
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|deleted|boolean|false|none|none|
-|deletedOn|string(date-time)¦null|false|none|none|
-|deletedBy|string¦null|false|none|none|
-|createdOn|string(date-time)|false|none|none|
-|modifiedOn|string(date-time)|false|none|none|
-|createdBy|string|false|none|none|
-|modifiedBy|string|false|none|none|
-|id|string|false|none|none|
-|title|string|true|none|none|
-|description|string|true|none|none|
-|items|[string]|false|none|none|
-
-ToDoPartial
-
-
-
-
-
-
-```json
-{
- "deleted": true,
- "deletedOn": "2019-08-24T14:15:22Z",
- "deletedBy": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "modifiedOn": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "modifiedBy": "string",
- "id": "string",
- "title": "string",
- "description": "string",
- "items": [
- "string"
- ]
-}
-
-```
-
-ToDoPartial
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|deleted|boolean|false|none|none|
-|deletedOn|string(date-time)¦null|false|none|none|
-|deletedBy|string¦null|false|none|none|
-|createdOn|string(date-time)|false|none|none|
-|modifiedOn|string(date-time)|false|none|none|
-|createdBy|string|false|none|none|
-|modifiedBy|string|false|none|none|
-|id|string|false|none|none|
-|title|string|false|none|none|
-|description|string|false|none|none|
-|items|[string]|false|none|none|
-
-loopback.Count
-
-
-
-
-
-
-```json
-{
- "count": 0
-}
-
-```
-
-loopback.Count
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|count|number|false|none|none|
-
-auth_clients.Filter
-
-
-
-
-
-
-```json
-{
- "offset": 0,
- "limit": 100,
- "skip": 0,
- "order": "string",
- "where": {},
- "fields": {
- "deleted": true,
- "deletedOn": true,
- "deletedBy": true,
- "createdOn": true,
- "modifiedOn": true,
- "id": true,
- "clientId": true,
- "clientSecret": true,
- "secret": true,
- "redirectUrl": true,
- "accessTokenExpiration": true,
- "refreshTokenExpiration": true,
- "authCodeExpiration": true
- }
-}
-
-```
-
-auth_clients.Filter
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|offset|integer|false|none|none|
-|limit|integer|false|none|none|
-|skip|integer|false|none|none|
-|order|any|false|none|none|
-
-oneOf
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|» *anonymous*|string|false|none|none|
-
-xor
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|» *anonymous*|[string]|false|none|none|
-
-continued
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|where|object|false|none|none|
-|fields|any|false|none|none|
-
-oneOf
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|» *anonymous*|object|false|none|none|
-|»» deleted|boolean|false|none|none|
-|»» deletedOn|boolean|false|none|none|
-|»» deletedBy|boolean|false|none|none|
-|»» createdOn|boolean|false|none|none|
-|»» modifiedOn|boolean|false|none|none|
-|»» id|boolean|false|none|none|
-|»» clientId|boolean|false|none|none|
-|»» clientSecret|boolean|false|none|none|
-|»» secret|boolean|false|none|none|
-|»» redirectUrl|boolean|false|none|none|
-|»» accessTokenExpiration|boolean|false|none|none|
-|»» refreshTokenExpiration|boolean|false|none|none|
-|»» authCodeExpiration|boolean|false|none|none|
-
-xor
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|» *anonymous*|[string]|false|none|none|
-
-todos.Filter
-
-
-
-
-
-
-```json
-{
- "offset": 0,
- "limit": 100,
- "skip": 0,
- "order": "string",
- "fields": {
- "deleted": true,
- "deletedOn": true,
- "deletedBy": true,
- "createdOn": true,
- "modifiedOn": true,
- "createdBy": true,
- "modifiedBy": true,
- "id": true,
- "title": true,
- "description": true,
- "items": true
- }
-}
-
-```
-
-todos.Filter
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|offset|integer|false|none|none|
-|limit|integer|false|none|none|
-|skip|integer|false|none|none|
-|order|any|false|none|none|
-
-oneOf
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|» *anonymous*|string|false|none|none|
-
-xor
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|» *anonymous*|[string]|false|none|none|
-
-continued
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|fields|any|false|none|none|
-
-oneOf
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|» *anonymous*|object|false|none|none|
-|»» deleted|boolean|false|none|none|
-|»» deletedOn|boolean|false|none|none|
-|»» deletedBy|boolean|false|none|none|
-|»» createdOn|boolean|false|none|none|
-|»» modifiedOn|boolean|false|none|none|
-|»» createdBy|boolean|false|none|none|
-|»» modifiedBy|boolean|false|none|none|
-|»» id|boolean|false|none|none|
-|»» title|boolean|false|none|none|
-|»» description|boolean|false|none|none|
-|»» items|boolean|false|none|none|
-
-xor
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|» *anonymous*|[string]|false|none|none|
-
-todos.Filter1
-
-
-
-
-
-
-```json
-{
- "offset": 0,
- "limit": 100,
- "skip": 0,
- "order": "string",
- "where": {},
- "fields": {
- "deleted": true,
- "deletedOn": true,
- "deletedBy": true,
- "createdOn": true,
- "modifiedOn": true,
- "createdBy": true,
- "modifiedBy": true,
- "id": true,
- "title": true,
- "description": true,
- "items": true
- }
-}
-
-```
-
-todos.Filter
-
-### Properties
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|offset|integer|false|none|none|
-|limit|integer|false|none|none|
-|skip|integer|false|none|none|
-|order|any|false|none|none|
-
-oneOf
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|» *anonymous*|string|false|none|none|
-
-xor
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|» *anonymous*|[string]|false|none|none|
-
-continued
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|where|object|false|none|none|
-|fields|any|false|none|none|
-
-oneOf
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|» *anonymous*|object|false|none|none|
-|»» deleted|boolean|false|none|none|
-|»» deletedOn|boolean|false|none|none|
-|»» deletedBy|boolean|false|none|none|
-|»» createdOn|boolean|false|none|none|
-|»» modifiedOn|boolean|false|none|none|
-|»» createdBy|boolean|false|none|none|
-|»» modifiedBy|boolean|false|none|none|
-|»» id|boolean|false|none|none|
-|»» title|boolean|false|none|none|
-|»» description|boolean|false|none|none|
-|»» items|boolean|false|none|none|
-
-xor
-
-|Name|Type|Required|Restrictions|Description|
-|---|---|---|---|---|
-|» *anonymous*|[string]|false|none|none|
-
diff --git a/services/authentication-service/README.md b/services/authentication-service/README.md
index 26466c7493..e7bd9079a8 100644
--- a/services/authentication-service/README.md
+++ b/services/authentication-service/README.md
@@ -30,7 +30,7 @@ import {
RestExplorerComponent,
} from '@loopback/rest-explorer';
import {ServiceMixin} from '@loopback/service-proxy';
-import {AuthenticationServiceComponent} from '@sourceloop/in-mail-service';
+import {AuthenticationServiceComponent} from '@sourceloop/authentication-service';
import * as dotenv from 'dotenv';
import * as dotenvExt from 'dotenv-extended';
import path from 'path';
@@ -177,4 +177,4 @@ Authorization: Bearer where is a JWT token signed using JWT issu
#### API Details
-Visit the [OpenAPI spec docs](OPEN_API_SPEC.md)
+Visit the [OpenAPI spec docs](./openapi.md)
diff --git a/services/authentication-service/openapi.json b/services/authentication-service/openapi.json
new file mode 100644
index 0000000000..390a92341b
--- /dev/null
+++ b/services/authentication-service/openapi.json
@@ -0,0 +1,2027 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Authentication Service",
+ "version": "1.0.0",
+ "description": "services",
+ "contact": {}
+ },
+ "paths": {
+ "/auth/change-password": {
+ "patch": {
+ "x-controller-name": "LoginController",
+ "x-operation-name": "resetPassword",
+ "tags": [
+ "LoginController"
+ ],
+ "security": [
+ {
+ "HTTPBearer": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "If User password successfully changed."
+ }
+ },
+ "parameters": [
+ {
+ "name": "Authorization",
+ "in": "header",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ResetPasswordPartial"
+ }
+ }
+ }
+ },
+ "operationId": "LoginController.resetPassword"
+ }
+ },
+ "/auth/forget-password": {
+ "post": {
+ "x-controller-name": "ForgetPasswordController",
+ "x-operation-name": "forgetPassword",
+ "tags": [
+ "ForgetPasswordController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success Response.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ForgetPasswordResponseDto"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "The syntax of the request entity is incorrect."
+ },
+ "401": {
+ "description": "Invalid Credentials."
+ },
+ "404": {
+ "description": "The entity requested does not exist."
+ },
+ "422": {
+ "description": "The syntax of the request entity is incorrect"
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ForgetPasswordDto"
+ }
+ }
+ }
+ },
+ "operationId": "ForgetPasswordController.forgetPassword"
+ }
+ },
+ "/auth/google": {
+ "post": {
+ "x-controller-name": "LoginController",
+ "x-operation-name": "postLoginViaGoogle",
+ "tags": [
+ "LoginController"
+ ],
+ "responses": {
+ "200": {
+ "description": "POST Call for Google based login",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenResponse"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/x-www-form-urlencoded": {
+ "schema": {
+ "$ref": "#/components/schemas/ClientAuthRequest"
+ }
+ }
+ }
+ },
+ "operationId": "LoginController.postLoginViaGoogle"
+ },
+ "get": {
+ "x-controller-name": "LoginController",
+ "x-operation-name": "loginViaGoogle",
+ "tags": [
+ "LoginController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Google Token Response (Deprecated: Possible security issue if secret is passed via query params, please use the post endpoint)",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenResponse"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "parameters": [
+ {
+ "name": "client_id",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "client_secret",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "operationId": "LoginController.loginViaGoogle"
+ }
+ },
+ "/auth/google-auth-redirect": {
+ "get": {
+ "x-controller-name": "LoginController",
+ "x-operation-name": "googleCallback",
+ "tags": [
+ "LoginController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Google Redirect Token Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenResponse"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "code",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "state",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "operationId": "LoginController.googleCallback"
+ }
+ },
+ "/auth/instagram": {
+ "post": {
+ "x-controller-name": "LoginController",
+ "x-operation-name": "postLoginViaInstagram",
+ "tags": [
+ "LoginController"
+ ],
+ "responses": {
+ "200": {
+ "description": "POST Call for Instagram based login",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenResponse"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/x-www-form-urlencoded": {
+ "schema": {
+ "$ref": "#/components/schemas/ClientAuthRequest"
+ }
+ }
+ }
+ },
+ "operationId": "LoginController.postLoginViaInstagram"
+ }
+ },
+ "/auth/instagram-auth-redirect": {
+ "get": {
+ "x-controller-name": "LoginController",
+ "x-operation-name": "instagramCallback",
+ "tags": [
+ "LoginController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Instagram Redirect Token Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenResponse"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "code",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "state",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "operationId": "LoginController.instagramCallback"
+ }
+ },
+ "/auth/keycloak": {
+ "post": {
+ "x-controller-name": "LoginController",
+ "x-operation-name": "postLoginViaKeycloak",
+ "tags": [
+ "LoginController"
+ ],
+ "description": "POST Call for keycloak based login",
+ "responses": {
+ "200": {
+ "description": "Keycloak Token Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenResponse"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/x-www-form-urlencoded": {
+ "schema": {
+ "$ref": "#/components/schemas/ClientAuthRequest"
+ }
+ }
+ }
+ },
+ "operationId": "LoginController.postLoginViaKeycloak"
+ },
+ "get": {
+ "x-controller-name": "LoginController",
+ "x-operation-name": "loginViaKeycloak",
+ "tags": [
+ "LoginController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Keycloak Token Response (Deprecated: Possible security issue if secret is passed via query params, please use the post endpoint)",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenResponse"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "parameters": [
+ {
+ "name": "client_id",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "client_secret",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "operationId": "LoginController.loginViaKeycloak"
+ }
+ },
+ "/auth/keycloak-auth-redirect": {
+ "get": {
+ "x-controller-name": "LoginController",
+ "x-operation-name": "keycloakCallback",
+ "tags": [
+ "LoginController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Keycloak Redirect Token Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenResponse"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "code",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "state",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "operationId": "LoginController.keycloakCallback"
+ }
+ },
+ "/auth/login": {
+ "post": {
+ "x-controller-name": "LoginController",
+ "x-operation-name": "login",
+ "tags": [
+ "LoginController"
+ ],
+ "description": "Gets you the code that will be used for getting token (webapps)",
+ "responses": {
+ "200": {
+ "description": "Auth Code",
+ "content": {}
+ },
+ "400": {
+ "description": "The syntax of the request entity is incorrect."
+ },
+ "401": {
+ "description": "Invalid Credentials."
+ },
+ "404": {
+ "description": "The entity requested does not exist."
+ },
+ "422": {
+ "description": "The syntax of the request entity is incorrect"
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LoginRequest"
+ }
+ }
+ }
+ },
+ "operationId": "LoginController.login"
+ }
+ },
+ "/auth/login-token": {
+ "post": {
+ "x-controller-name": "LoginController",
+ "x-operation-name": "loginWithClientUser",
+ "tags": [
+ "LoginController"
+ ],
+ "description": "Gets you refresh token and access token in one hit. (mobile app)",
+ "responses": {
+ "200": {
+ "description": "Token Response Model",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "The syntax of the request entity is incorrect."
+ },
+ "401": {
+ "description": "Invalid Credentials."
+ },
+ "404": {
+ "description": "The entity requested does not exist."
+ },
+ "422": {
+ "description": "The syntax of the request entity is incorrect"
+ }
+ },
+ "parameters": [
+ {
+ "name": "device_id",
+ "in": "header",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LoginRequest"
+ }
+ }
+ }
+ },
+ "operationId": "LoginController.loginWithClientUser"
+ }
+ },
+ "/auth/me": {
+ "get": {
+ "x-controller-name": "LoginController",
+ "x-operation-name": "me",
+ "tags": [
+ "LoginController"
+ ],
+ "security": [
+ {
+ "HTTPBearer": []
+ }
+ ],
+ "description": "To get the user details",
+ "responses": {
+ "200": {
+ "description": "User Object",
+ "content": {}
+ },
+ "400": {
+ "description": "The syntax of the request entity is incorrect."
+ },
+ "401": {
+ "description": "Invalid Credentials."
+ },
+ "404": {
+ "description": "The entity requested does not exist."
+ },
+ "422": {
+ "description": "The syntax of the request entity is incorrect"
+ }
+ },
+ "operationId": "LoginController.me"
+ }
+ },
+ "/auth/reset-password": {
+ "patch": {
+ "x-controller-name": "ForgetPasswordController",
+ "x-operation-name": "resetPassword",
+ "tags": [
+ "ForgetPasswordController"
+ ],
+ "responses": {
+ "204": {
+ "description": "If User password successfully changed."
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ResetPasswordWithClient"
+ }
+ }
+ }
+ },
+ "operationId": "ForgetPasswordController.resetPassword"
+ }
+ },
+ "/auth/sign-up/create-token": {
+ "post": {
+ "x-controller-name": "SignupRequestController",
+ "x-operation-name": "requestSignup",
+ "tags": [
+ "SignupRequestController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Sucess Response.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SignupRequestResponseDto"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "The syntax of the request entity is incorrect."
+ },
+ "401": {
+ "description": "Invalid Credentials."
+ },
+ "404": {
+ "description": "The entity requested does not exist."
+ },
+ "422": {
+ "description": "The syntax of the request entity is incorrect"
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SignupRequestDto"
+ }
+ }
+ }
+ },
+ "operationId": "SignupRequestController.requestSignup"
+ }
+ },
+ "/auth/sign-up/create-user": {
+ "post": {
+ "x-controller-name": "SignupRequestController",
+ "x-operation-name": "signupWithToken",
+ "tags": [
+ "SignupRequestController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Sucess Response.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LocalUserProfileDto"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "The syntax of the request entity is incorrect."
+ },
+ "401": {
+ "description": "Invalid Credentials."
+ },
+ "404": {
+ "description": "The entity requested does not exist."
+ },
+ "422": {
+ "description": "The syntax of the request entity is incorrect"
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LocalUserProfileDto"
+ }
+ }
+ }
+ },
+ "operationId": "SignupRequestController.signupWithToken"
+ }
+ },
+ "/auth/sign-up/verify-token": {
+ "get": {
+ "x-controller-name": "SignupRequestController",
+ "x-operation-name": "verifyInviteToken",
+ "tags": [
+ "SignupRequestController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Sucess Response."
+ },
+ "400": {
+ "description": "The syntax of the request entity is incorrect."
+ },
+ "401": {
+ "description": "Invalid Credentials."
+ },
+ "404": {
+ "description": "The entity requested does not exist."
+ },
+ "422": {
+ "description": "The syntax of the request entity is incorrect"
+ }
+ },
+ "operationId": "SignupRequestController.verifyInviteToken"
+ }
+ },
+ "/auth/token": {
+ "post": {
+ "x-controller-name": "LoginController",
+ "x-operation-name": "getToken",
+ "tags": [
+ "LoginController"
+ ],
+ "description": " Send the code received from the above api and this api will send you refresh token and access token (webapps)",
+ "responses": {
+ "200": {
+ "description": "Token Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "The syntax of the request entity is incorrect."
+ },
+ "401": {
+ "description": "Invalid Credentials."
+ },
+ "404": {
+ "description": "The entity requested does not exist."
+ },
+ "422": {
+ "description": "The syntax of the request entity is incorrect"
+ }
+ },
+ "parameters": [
+ {
+ "name": "device_id",
+ "in": "header",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AuthTokenRequest"
+ }
+ }
+ }
+ },
+ "operationId": "LoginController.getToken"
+ }
+ },
+ "/auth/token-refresh": {
+ "post": {
+ "x-controller-name": "LoginController",
+ "x-operation-name": "exchangeToken",
+ "tags": [
+ "LoginController"
+ ],
+ "description": " Gets you a new access and refresh token once your access token is expired. (both mobile and web)\n",
+ "responses": {
+ "200": {
+ "description": "New Token Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "The syntax of the request entity is incorrect."
+ },
+ "401": {
+ "description": "Invalid Credentials."
+ },
+ "404": {
+ "description": "The entity requested does not exist."
+ },
+ "422": {
+ "description": "The syntax of the request entity is incorrect"
+ }
+ },
+ "parameters": [
+ {
+ "name": "device_id",
+ "in": "header",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AuthRefreshTokenRequest"
+ }
+ }
+ }
+ },
+ "operationId": "LoginController.exchangeToken"
+ }
+ },
+ "/auth/verify-reset-password-link": {
+ "get": {
+ "x-controller-name": "ForgetPasswordController",
+ "x-operation-name": "verifyResetPasswordLink",
+ "tags": [
+ "ForgetPasswordController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Check if Token Is Valid and not Expired."
+ }
+ },
+ "parameters": [
+ {
+ "name": "token",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "ForgetPasswordController.verifyResetPasswordLink"
+ }
+ },
+ "/auth-clients/count": {
+ "get": {
+ "x-controller-name": "AuthClientController",
+ "x-operation-name": "count",
+ "tags": [
+ "AuthClientController"
+ ],
+ "security": [
+ {
+ "HTTPBearer": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "AuthClient model count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "auth_clients.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "AuthClientController.count"
+ }
+ },
+ "/auth-clients/{id}": {
+ "put": {
+ "x-controller-name": "AuthClientController",
+ "x-operation-name": "replaceById",
+ "tags": [
+ "AuthClientController"
+ ],
+ "security": [
+ {
+ "HTTPBearer": []
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "AuthClient PUT success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "number"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AuthClient"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "AuthClientController.replaceById"
+ },
+ "patch": {
+ "x-controller-name": "AuthClientController",
+ "x-operation-name": "updateById",
+ "tags": [
+ "AuthClientController"
+ ],
+ "security": [
+ {
+ "HTTPBearer": []
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "AuthClient PATCH success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "number"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AuthClientPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "AuthClientController.updateById"
+ },
+ "get": {
+ "x-controller-name": "AuthClientController",
+ "x-operation-name": "findById",
+ "tags": [
+ "AuthClientController"
+ ],
+ "security": [
+ {
+ "HTTPBearer": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "AuthClient model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AuthClient"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "number"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "AuthClientController.findById"
+ },
+ "delete": {
+ "x-controller-name": "AuthClientController",
+ "x-operation-name": "deleteById",
+ "tags": [
+ "AuthClientController"
+ ],
+ "security": [
+ {
+ "HTTPBearer": []
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "AuthClient DELETE success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "number"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "AuthClientController.deleteById"
+ }
+ },
+ "/auth-clients": {
+ "post": {
+ "x-controller-name": "AuthClientController",
+ "x-operation-name": "create",
+ "tags": [
+ "AuthClientController"
+ ],
+ "security": [
+ {
+ "HTTPBearer": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "AuthClient model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AuthClient"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AuthClientExcluding_id_"
+ }
+ }
+ }
+ },
+ "operationId": "AuthClientController.create"
+ },
+ "patch": {
+ "x-controller-name": "AuthClientController",
+ "x-operation-name": "updateAll",
+ "tags": [
+ "AuthClientController"
+ ],
+ "security": [
+ {
+ "HTTPBearer": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "AuthClient PATCH success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "auth_clients.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AuthClientPartial"
+ }
+ }
+ }
+ },
+ "operationId": "AuthClientController.updateAll"
+ },
+ "get": {
+ "x-controller-name": "AuthClientController",
+ "x-operation-name": "find",
+ "tags": [
+ "AuthClientController"
+ ],
+ "security": [
+ {
+ "HTTPBearer": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of AuthClient model instances",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AuthClient"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/auth_clients.Filter"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "AuthClientController.find"
+ }
+ },
+ "/keycloak/logout": {
+ "post": {
+ "x-controller-name": "LogoutController",
+ "x-operation-name": "keycloakLogout",
+ "tags": [
+ "LogoutController"
+ ],
+ "security": [
+ {
+ "HTTPBearer": []
+ }
+ ],
+ "description": "This API will log out the user from application as well as keycloak",
+ "responses": {
+ "200": {
+ "description": "Success Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SuccessResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "The syntax of the request entity is incorrect."
+ },
+ "401": {
+ "description": "Invalid Credentials."
+ },
+ "404": {
+ "description": "The entity requested does not exist."
+ },
+ "422": {
+ "description": "The syntax of the request entity is incorrect"
+ }
+ },
+ "parameters": [
+ {
+ "name": "Authorization",
+ "in": "header",
+ "schema": {
+ "type": "string"
+ },
+ "description": "This is the access token which is required to authenticate user."
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RefreshTokenRequestPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "LogoutController.keycloakLogout"
+ }
+ },
+ "/logout": {
+ "post": {
+ "x-controller-name": "LogoutController",
+ "x-operation-name": "logout",
+ "tags": [
+ "LogoutController"
+ ],
+ "security": [
+ {
+ "HTTPBearer": []
+ }
+ ],
+ "description": "To logout",
+ "responses": {
+ "200": {
+ "description": "Success Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SuccessResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "The syntax of the request entity is incorrect."
+ },
+ "401": {
+ "description": "Invalid Credentials."
+ },
+ "404": {
+ "description": "The entity requested does not exist."
+ },
+ "422": {
+ "description": "The syntax of the request entity is incorrect"
+ }
+ },
+ "parameters": [
+ {
+ "name": "Authorization",
+ "in": "header",
+ "schema": {
+ "type": "string"
+ },
+ "description": "This is the access token which is required to authenticate user."
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RefreshTokenRequestPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "LogoutController.logout"
+ }
+ },
+ "/otp-caches/{id}": {
+ "get": {
+ "x-controller-name": "OtpController",
+ "x-operation-name": "findById",
+ "tags": [
+ "OtpController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Otp model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Otp"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "OtpController.findById"
+ },
+ "delete": {
+ "x-controller-name": "OtpController",
+ "x-operation-name": "deleteById",
+ "tags": [
+ "OtpController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Otp DELETE success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "OtpController.deleteById"
+ }
+ },
+ "/otp-caches": {
+ "post": {
+ "x-controller-name": "OtpController",
+ "x-operation-name": "create",
+ "tags": [
+ "OtpController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Otp model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Otp"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Otp"
+ }
+ }
+ }
+ },
+ "operationId": "OtpController.create"
+ }
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "HTTPBearer": {
+ "type": "http",
+ "scheme": "bearer",
+ "bearerFormat": "JWT"
+ }
+ },
+ "schemas": {
+ "LoginRequest": {
+ "title": "LoginRequest",
+ "type": "object",
+ "description": "This is the signature for login request.",
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "description": "This property is supposed to be a string and is a required field"
+ },
+ "client_secret": {
+ "type": "string",
+ "description": "This property is supposed to be a string and is a required field"
+ },
+ "username": {
+ "type": "string",
+ "description": "This property is supposed to be a string and is a required field"
+ },
+ "password": {
+ "type": "string",
+ "description": "This property is supposed to be a string and is a required field"
+ }
+ },
+ "required": [
+ "client_id",
+ "client_secret",
+ "username",
+ "password"
+ ],
+ "additionalProperties": false
+ },
+ "TokenResponse": {
+ "title": "TokenResponse",
+ "type": "object",
+ "description": "This is signature for successful token response.",
+ "properties": {
+ "accessToken": {
+ "type": "string",
+ "description": "This property is supposed to be a string and is a required field"
+ },
+ "refreshToken": {
+ "type": "string",
+ "description": "This property is supposed to be a string and is a required field"
+ },
+ "expires": {
+ "type": "number"
+ },
+ "pubnubToken": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "accessToken",
+ "refreshToken",
+ "expires"
+ ],
+ "additionalProperties": false
+ },
+ "AuthTokenRequest": {
+ "title": "AuthTokenRequest",
+ "type": "object",
+ "description": "This is the signature for requesting the accessToken and refreshToken.",
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "clientId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "clientId"
+ ],
+ "additionalProperties": false
+ },
+ "Function": {},
+ "AuthRefreshTokenRequest": {
+ "title": "AuthRefreshTokenRequest",
+ "type": "object",
+ "properties": {
+ "refreshToken": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "refreshToken"
+ ],
+ "additionalProperties": false
+ },
+ "ClientAuthRequest": {
+ "title": "ClientAuthRequest",
+ "type": "object",
+ "description": "This is signature for client authentication request.",
+ "properties": {
+ "client_id": {
+ "type": "string",
+ "description": "This property is supposed to be a string and is a required field"
+ },
+ "client_secret": {
+ "type": "string",
+ "description": "This property is supposed to be a string and is a required field"
+ }
+ },
+ "required": [
+ "client_id",
+ "client_secret"
+ ],
+ "additionalProperties": false
+ },
+ "ResetPasswordPartial": {
+ "title": "ResetPasswordPartial",
+ "type": "object",
+ "description": "This is a signature for reset password. (tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "refreshToken": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "description": "This property is supposed to be a string and is a required field"
+ },
+ "password": {
+ "type": "string",
+ "description": "This property is supposed to be a string and is a required field"
+ },
+ "oldPassword": {
+ "type": "string",
+ "description": "This property is supposed to be a string and is a required field"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ResetPassword": {
+ "title": "ResetPassword",
+ "type": "object",
+ "description": "This is a signature for reset password.",
+ "properties": {
+ "refreshToken": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "description": "This property is supposed to be a string and is a required field"
+ },
+ "password": {
+ "type": "string",
+ "description": "This property is supposed to be a string and is a required field"
+ },
+ "oldPassword": {
+ "type": "string",
+ "description": "This property is supposed to be a string and is a required field"
+ }
+ },
+ "required": [
+ "refreshToken",
+ "username",
+ "password"
+ ],
+ "additionalProperties": false
+ },
+ "SuccessResponse": {
+ "title": "SuccessResponse",
+ "type": "object",
+ "properties": {
+ "success": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": true
+ },
+ "RefreshTokenRequestPartial": {
+ "title": "RefreshTokenRequestPartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "refreshToken": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial"
+ },
+ "RefreshTokenRequest": {
+ "title": "RefreshTokenRequest",
+ "type": "object",
+ "properties": {
+ "refreshToken": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "refreshToken"
+ ],
+ "additionalProperties": false
+ },
+ "Otp": {
+ "title": "Otp",
+ "type": "object",
+ "properties": {
+ "otp": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "otp",
+ "username"
+ ],
+ "additionalProperties": false
+ },
+ "AuthClient": {
+ "title": "AuthClient",
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "id": {
+ "type": "number"
+ },
+ "clientId": {
+ "type": "string"
+ },
+ "clientSecret": {
+ "type": "string"
+ },
+ "secret": {
+ "type": "string"
+ },
+ "redirectUrl": {
+ "type": "string"
+ },
+ "accessTokenExpiration": {
+ "type": "number"
+ },
+ "refreshTokenExpiration": {
+ "type": "number"
+ },
+ "authCodeExpiration": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "clientId",
+ "clientSecret",
+ "secret",
+ "accessTokenExpiration",
+ "refreshTokenExpiration",
+ "authCodeExpiration"
+ ],
+ "additionalProperties": false
+ },
+ "AuthClientExcluding_id_": {
+ "title": "AuthClientExcluding_id_",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { exclude: [ 'id' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "clientId": {
+ "type": "string"
+ },
+ "clientSecret": {
+ "type": "string"
+ },
+ "secret": {
+ "type": "string"
+ },
+ "redirectUrl": {
+ "type": "string"
+ },
+ "accessTokenExpiration": {
+ "type": "number"
+ },
+ "refreshTokenExpiration": {
+ "type": "number"
+ },
+ "authCodeExpiration": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "clientId",
+ "clientSecret",
+ "secret",
+ "accessTokenExpiration",
+ "refreshTokenExpiration",
+ "authCodeExpiration"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "AuthClientPartial": {
+ "title": "AuthClientPartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "id": {
+ "type": "number"
+ },
+ "clientId": {
+ "type": "string"
+ },
+ "clientSecret": {
+ "type": "string"
+ },
+ "secret": {
+ "type": "string"
+ },
+ "redirectUrl": {
+ "type": "string"
+ },
+ "accessTokenExpiration": {
+ "type": "number"
+ },
+ "refreshTokenExpiration": {
+ "type": "number"
+ },
+ "authCodeExpiration": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial"
+ },
+ "User": {
+ "title": "User",
+ "type": "object",
+ "description": "This is signature for user model.",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "firstName": {
+ "type": "string"
+ },
+ "lastName": {
+ "type": "string"
+ },
+ "middleName": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string"
+ },
+ "phone": {
+ "type": "string",
+ "pattern": "^\\+?[1-9]\\d{1,14}$"
+ },
+ "authClientIds": {
+ "type": "string"
+ },
+ "lastLogin": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "dob": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "gender": {
+ "type": "string",
+ "description": "This field takes a single character as input in database.\n 'M' for male and 'F' for female.",
+ "enum": [
+ "M",
+ "F",
+ "O"
+ ]
+ },
+ "defaultTenantId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "firstName",
+ "username"
+ ],
+ "additionalProperties": false
+ },
+ "ForgetPasswordResponseDto": {
+ "title": "ForgetPasswordResponseDto",
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "expiry": {
+ "type": "number"
+ },
+ "email": {
+ "type": "string"
+ },
+ "user": {
+ "$ref": "#/components/schemas/User"
+ }
+ },
+ "required": [
+ "code",
+ "expiry",
+ "email"
+ ],
+ "additionalProperties": false
+ },
+ "ForgetPasswordDto": {
+ "title": "ForgetPasswordDto",
+ "type": "object",
+ "properties": {
+ "username": {
+ "type": "string"
+ },
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "username",
+ "client_id",
+ "client_secret"
+ ],
+ "additionalProperties": false
+ },
+ "ResetPasswordWithClient": {
+ "title": "ResetPasswordWithClient",
+ "type": "object",
+ "properties": {
+ "token": {
+ "type": "string"
+ },
+ "password": {
+ "type": "string"
+ },
+ "client_id": {
+ "type": "string"
+ },
+ "client_secret": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "token",
+ "password",
+ "client_id",
+ "client_secret"
+ ],
+ "additionalProperties": false
+ },
+ "SignupRequestResponseDto": {
+ "title": "SignupRequestResponseDto",
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "expiry": {
+ "type": "number"
+ },
+ "email": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "expiry",
+ "email"
+ ],
+ "additionalProperties": false
+ },
+ "SignupRequestDto": {
+ "title": "SignupRequestDto",
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string"
+ },
+ "data": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "email"
+ ],
+ "additionalProperties": false
+ },
+ "LocalUserProfileDto": {
+ "title": "LocalUserProfileDto",
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string"
+ },
+ "password": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "email",
+ "password"
+ ],
+ "additionalProperties": true
+ },
+ "SignupRequest": {
+ "title": "SignupRequest",
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string"
+ },
+ "expiry": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "email"
+ ],
+ "additionalProperties": false
+ },
+ "loopback.Count": {
+ "type": "object",
+ "title": "loopback.Count",
+ "x-typescript-type": "@loopback/repository#Count",
+ "properties": {
+ "count": {
+ "type": "number"
+ }
+ }
+ },
+ "auth_clients.Filter": {
+ "type": "object",
+ "title": "auth_clients.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "title": "auth_clients.WhereFilter",
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "clientId": {
+ "type": "boolean"
+ },
+ "clientSecret": {
+ "type": "boolean"
+ },
+ "secret": {
+ "type": "boolean"
+ },
+ "redirectUrl": {
+ "type": "boolean"
+ },
+ "accessTokenExpiration": {
+ "type": "boolean"
+ },
+ "refreshTokenExpiration": {
+ "type": "boolean"
+ },
+ "authCodeExpiration": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "id",
+ "clientId",
+ "clientSecret",
+ "secret",
+ "redirectUrl",
+ "accessTokenExpiration",
+ "refreshTokenExpiration",
+ "authCodeExpiration"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "auth_clients.Fields"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ }
+ }
+ },
+ "servers": [
+ {
+ "url": "/"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/services/authentication-service/openapi.md b/services/authentication-service/openapi.md
new file mode 100644
index 0000000000..eae3f5bc5b
--- /dev/null
+++ b/services/authentication-service/openapi.md
@@ -0,0 +1,3099 @@
+---
+title: Authentication Service v1.0.0
+language_tabs:
+ - "'javascript": JavaScript
+ - "'javascript--nodejs": Node.JS'
+language_clients:
+ - "'javascript": request'
+ - "'javascript--nodejs": ""
+toc_footers: []
+includes: []
+search: false
+highlight_theme: darkula
+headingLevel: 2
+
+---
+
+
+
+Authentication Service v1.0.0
+
+> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
+
+services
+
+Base URLs:
+
+* /
+
+# Authentication
+
+- HTTP Authentication, scheme: bearer
+
+LoginController
+
+## LoginController.resetPassword
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "refreshToken": "string",
+ "username": "string",
+ "password": "string",
+ "oldPassword": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Authorization':'string'
+};
+
+fetch('/auth/change-password',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /auth/change-password`
+
+> Body parameter
+
+```json
+{
+ "refreshToken": "string",
+ "username": "string",
+ "password": "string",
+ "oldPassword": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|Authorization|header|string|false|none|
+|body|body|[ResetPasswordPartial](#schemaresetpasswordpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|If User password successfully changed.|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## LoginController.postLoginViaGoogle
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "client_id": "string",
+ "client_secret": "string"
+};
+const headers = {
+ 'Content-Type':'application/x-www-form-urlencoded',
+ 'Accept':'application/json'
+};
+
+fetch('/auth/google',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/google`
+
+> Body parameter
+
+```yaml
+client_id: string
+client_secret: string
+
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[ClientAuthRequest](#schemaclientauthrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|POST Call for Google based login|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.loginViaGoogle
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/auth/google',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/google`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|client_id|query|string|false|none|
+|client_secret|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Google Token Response (Deprecated: Possible security issue if secret is passed via query params, please use the post endpoint)|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.googleCallback
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/auth/google-auth-redirect',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/google-auth-redirect`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|code|query|string|false|none|
+|state|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Google Redirect Token Response|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.postLoginViaInstagram
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "client_id": "string",
+ "client_secret": "string"
+};
+const headers = {
+ 'Content-Type':'application/x-www-form-urlencoded',
+ 'Accept':'application/json'
+};
+
+fetch('/auth/instagram',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/instagram`
+
+> Body parameter
+
+```yaml
+client_id: string
+client_secret: string
+
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[ClientAuthRequest](#schemaclientauthrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|POST Call for Instagram based login|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.instagramCallback
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/auth/instagram-auth-redirect',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/instagram-auth-redirect`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|code|query|string|false|none|
+|state|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Instagram Redirect Token Response|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.postLoginViaKeycloak
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "client_id": "string",
+ "client_secret": "string"
+};
+const headers = {
+ 'Content-Type':'application/x-www-form-urlencoded',
+ 'Accept':'application/json'
+};
+
+fetch('/auth/keycloak',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/keycloak`
+
+POST Call for keycloak based login
+
+> Body parameter
+
+```yaml
+client_id: string
+client_secret: string
+
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[ClientAuthRequest](#schemaclientauthrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Keycloak Token Response|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.loginViaKeycloak
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/auth/keycloak',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/keycloak`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|client_id|query|string|false|none|
+|client_secret|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Keycloak Token Response (Deprecated: Possible security issue if secret is passed via query params, please use the post endpoint)|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.keycloakCallback
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/auth/keycloak-auth-redirect',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/keycloak-auth-redirect`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|code|query|string|false|none|
+|state|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Keycloak Redirect Token Response|[TokenResponse](#schematokenresponse)|
+
+
+This operation does not require authentication
+
+
+## LoginController.login
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "client_id": "string",
+ "client_secret": "string",
+ "username": "string",
+ "password": "string"
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/auth/login',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/login`
+
+Gets you the code that will be used for getting token (webapps)
+
+> Body parameter
+
+```json
+{
+ "client_id": "string",
+ "client_secret": "string",
+ "username": "string",
+ "password": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[LoginRequest](#schemaloginrequest)|false|none|
+
+> Example responses
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Auth Code|None|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+## LoginController.loginWithClientUser
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "client_id": "string",
+ "client_secret": "string",
+ "username": "string",
+ "password": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'device_id':'string'
+};
+
+fetch('/auth/login-token',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/login-token`
+
+Gets you refresh token and access token in one hit. (mobile app)
+
+> Body parameter
+
+```json
+{
+ "client_id": "string",
+ "client_secret": "string",
+ "username": "string",
+ "password": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|device_id|header|string|false|none|
+|body|body|[LoginRequest](#schemaloginrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Token Response Model|[TokenResponse](#schematokenresponse)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+## LoginController.me
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('/auth/me',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/me`
+
+To get the user details
+
+> Example responses
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|User Object|None|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+Response Schema
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## LoginController.getToken
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "code": "string",
+ "clientId": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'device_id':'string'
+};
+
+fetch('/auth/token',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/token`
+
+ Send the code received from the above api and this api will send you refresh token and access token (webapps)
+
+> Body parameter
+
+```json
+{
+ "code": "string",
+ "clientId": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|device_id|header|string|false|none|
+|body|body|[AuthTokenRequest](#schemaauthtokenrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Token Response|[TokenResponse](#schematokenresponse)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+## LoginController.exchangeToken
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "refreshToken": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'device_id':'string'
+};
+
+fetch('/auth/token-refresh',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/token-refresh`
+
+ Gets you a new access and refresh token once your access token is expired. (both mobile and web)
+
+> Body parameter
+
+```json
+{
+ "refreshToken": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|device_id|header|string|false|none|
+|body|body|[AuthRefreshTokenRequest](#schemaauthrefreshtokenrequest)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|New Token Response|[TokenResponse](#schematokenresponse)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+ForgetPasswordController
+
+## ForgetPasswordController.forgetPassword
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "username": "string",
+ "client_id": "string",
+ "client_secret": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/auth/forget-password',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/forget-password`
+
+> Body parameter
+
+```json
+{
+ "username": "string",
+ "client_id": "string",
+ "client_secret": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[ForgetPasswordDto](#schemaforgetpassworddto)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "code": "string",
+ "expiry": 0,
+ "email": "string",
+ "user": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "firstName": "string",
+ "lastName": "string",
+ "middleName": "string",
+ "username": "string",
+ "email": "string",
+ "phone": "string",
+ "authClientIds": "string",
+ "lastLogin": "2019-08-24T14:15:22Z",
+ "dob": "2019-08-24T14:15:22Z",
+ "gender": "M",
+ "defaultTenantId": "string"
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success Response.|[ForgetPasswordResponseDto](#schemaforgetpasswordresponsedto)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+## ForgetPasswordController.resetPassword
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "token": "string",
+ "password": "string",
+ "client_id": "string",
+ "client_secret": "string"
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/auth/reset-password',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /auth/reset-password`
+
+> Body parameter
+
+```json
+{
+ "token": "string",
+ "password": "string",
+ "client_id": "string",
+ "client_secret": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[ResetPasswordWithClient](#schemaresetpasswordwithclient)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|If User password successfully changed.|None|
+
+
+This operation does not require authentication
+
+
+## ForgetPasswordController.verifyResetPasswordLink
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/auth/verify-reset-password-link?token=string',
+{
+ method: 'GET'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/verify-reset-password-link`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|token|query|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Check if Token Is Valid and not Expired.|None|
+
+
+This operation does not require authentication
+
+
+SignupRequestController
+
+## SignupRequestController.requestSignup
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "email": "string",
+ "data": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/auth/sign-up/create-token',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/sign-up/create-token`
+
+> Body parameter
+
+```json
+{
+ "email": "string",
+ "data": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[SignupRequestDto](#schemasignuprequestdto)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "code": "string",
+ "expiry": 0,
+ "email": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Sucess Response.|[SignupRequestResponseDto](#schemasignuprequestresponsedto)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+## SignupRequestController.signupWithToken
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "email": "string",
+ "password": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/auth/sign-up/create-user',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth/sign-up/create-user`
+
+> Body parameter
+
+```json
+{
+ "email": "string",
+ "password": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[LocalUserProfileDto](#schemalocaluserprofiledto)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "email": "string",
+ "password": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Sucess Response.|[LocalUserProfileDto](#schemalocaluserprofiledto)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+## SignupRequestController.verifyInviteToken
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/auth/sign-up/verify-token',
+{
+ method: 'GET'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth/sign-up/verify-token`
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Sucess Response.|None|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+This operation does not require authentication
+
+
+AuthClientController
+
+## AuthClientController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('/auth-clients/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth-clients/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuthClient model count|[loopback.Count](#schemaloopback.count)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('/auth-clients/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /auth-clients/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|number|true|none|
+|body|body|[AuthClient](#schemaauthclient)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|AuthClient PUT success|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('/auth-clients/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /auth-clients/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|number|true|none|
+|body|body|[AuthClientPartial](#schemaauthclientpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|AuthClient PATCH success|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('/auth-clients/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth-clients/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|number|true|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuthClient model instance|[AuthClient](#schemaauthclient)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('/auth-clients/{id}',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /auth-clients/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|number|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|AuthClient DELETE success|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('/auth-clients',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /auth-clients`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[AuthClientExcluding_id_](#schemaauthclientexcluding_id_)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuthClient model instance|[AuthClient](#schemaauthclient)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('/auth-clients',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /auth-clients`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[AuthClientPartial](#schemaauthclientpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AuthClient PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## AuthClientController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json',
+ 'Authorization':'Bearer {access-token}'
+};
+
+fetch('/auth-clients',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /auth-clients`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[auth_clients.Filter](#schemaauth_clients.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of AuthClient model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[AuthClient](#schemaauthclient)]|false|none|none|
+|» AuthClient|[AuthClient](#schemaauthclient)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» id|number|false|none|none|
+|»» clientId|string|true|none|none|
+|»» clientSecret|string|true|none|none|
+|»» secret|string|true|none|none|
+|»» redirectUrl|string|false|none|none|
+|»» accessTokenExpiration|number|true|none|none|
+|»» refreshTokenExpiration|number|true|none|none|
+|»» authCodeExpiration|number|true|none|none|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+LogoutController
+
+## LogoutController.keycloakLogout
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "refreshToken": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'Authorization':'string'
+};
+
+fetch('/keycloak/logout',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /keycloak/logout`
+
+This API will log out the user from application as well as keycloak
+
+> Body parameter
+
+```json
+{
+ "refreshToken": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|Authorization|header|string|false|This is the access token which is required to authenticate user.|
+|body|body|[RefreshTokenRequestPartial](#schemarefreshtokenrequestpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "success": true
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success Response|[SuccessResponse](#schemasuccessresponse)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+## LogoutController.logout
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "refreshToken": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'Authorization':'string'
+};
+
+fetch('/logout',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /logout`
+
+To logout
+
+> Body parameter
+
+```json
+{
+ "refreshToken": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|Authorization|header|string|false|This is the access token which is required to authenticate user.|
+|body|body|[RefreshTokenRequestPartial](#schemarefreshtokenrequestpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "success": true
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success Response|[SuccessResponse](#schemasuccessresponse)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The syntax of the request entity is incorrect.|None|
+|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Invalid Credentials.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The entity requested does not exist.|None|
+|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The syntax of the request entity is incorrect|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+HTTPBearer
+
+
+OtpController
+
+## OtpController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/otp-caches/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /otp-caches/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "otp": "string",
+ "username": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Otp model instance|[Otp](#schemaotp)|
+
+
+This operation does not require authentication
+
+
+## OtpController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/otp-caches/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /otp-caches/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Otp DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## OtpController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "otp": "string",
+ "username": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/otp-caches',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /otp-caches`
+
+> Body parameter
+
+```json
+{
+ "otp": "string",
+ "username": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[Otp](#schemaotp)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "otp": "string",
+ "username": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Otp model instance|[Otp](#schemaotp)|
+
+
+This operation does not require authentication
+
+
+# Schemas
+
+LoginRequest
+
+
+
+
+
+
+```json
+{
+ "client_id": "string",
+ "client_secret": "string",
+ "username": "string",
+ "password": "string"
+}
+
+```
+
+LoginRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|client_id|string|true|none|This property is supposed to be a string and is a required field|
+|client_secret|string|true|none|This property is supposed to be a string and is a required field|
+|username|string|true|none|This property is supposed to be a string and is a required field|
+|password|string|true|none|This property is supposed to be a string and is a required field|
+
+TokenResponse
+
+
+
+
+
+
+```json
+{
+ "accessToken": "string",
+ "refreshToken": "string",
+ "expires": 0,
+ "pubnubToken": "string"
+}
+
+```
+
+TokenResponse
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|accessToken|string|true|none|This property is supposed to be a string and is a required field|
+|refreshToken|string|true|none|This property is supposed to be a string and is a required field|
+|expires|number|true|none|none|
+|pubnubToken|string|false|none|none|
+
+AuthTokenRequest
+
+
+
+
+
+
+```json
+{
+ "code": "string",
+ "clientId": "string"
+}
+
+```
+
+AuthTokenRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|code|string|true|none|none|
+|clientId|string|true|none|none|
+
+Function
+
+
+
+
+
+
+```json
+null
+
+```
+
+### Properties
+
+*None*
+
+AuthRefreshTokenRequest
+
+
+
+
+
+
+```json
+{
+ "refreshToken": "string"
+}
+
+```
+
+AuthRefreshTokenRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|refreshToken|string|true|none|none|
+
+ClientAuthRequest
+
+
+
+
+
+
+```json
+{
+ "client_id": "string",
+ "client_secret": "string"
+}
+
+```
+
+ClientAuthRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|client_id|string|true|none|This property is supposed to be a string and is a required field|
+|client_secret|string|true|none|This property is supposed to be a string and is a required field|
+
+ResetPasswordPartial
+
+
+
+
+
+
+```json
+{
+ "refreshToken": "string",
+ "username": "string",
+ "password": "string",
+ "oldPassword": "string"
+}
+
+```
+
+ResetPasswordPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|refreshToken|string|false|none|none|
+|username|string|false|none|This property is supposed to be a string and is a required field|
+|password|string|false|none|This property is supposed to be a string and is a required field|
+|oldPassword|string|false|none|This property is supposed to be a string and is a required field|
+
+ResetPassword
+
+
+
+
+
+
+```json
+{
+ "refreshToken": "string",
+ "username": "string",
+ "password": "string",
+ "oldPassword": "string"
+}
+
+```
+
+ResetPassword
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|refreshToken|string|true|none|none|
+|username|string|true|none|This property is supposed to be a string and is a required field|
+|password|string|true|none|This property is supposed to be a string and is a required field|
+|oldPassword|string|false|none|This property is supposed to be a string and is a required field|
+
+SuccessResponse
+
+
+
+
+
+
+```json
+{
+ "success": true
+}
+
+```
+
+SuccessResponse
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|success|boolean|false|none|none|
+
+RefreshTokenRequestPartial
+
+
+
+
+
+
+```json
+{
+ "refreshToken": "string"
+}
+
+```
+
+RefreshTokenRequestPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|refreshToken|string|false|none|none|
+
+RefreshTokenRequest
+
+
+
+
+
+
+```json
+{
+ "refreshToken": "string"
+}
+
+```
+
+RefreshTokenRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|refreshToken|string|true|none|none|
+
+Otp
+
+
+
+
+
+
+```json
+{
+ "otp": "string",
+ "username": "string"
+}
+
+```
+
+Otp
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|otp|string|true|none|none|
+|username|string|true|none|none|
+
+AuthClient
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+
+```
+
+AuthClient
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|id|number|false|none|none|
+|clientId|string|true|none|none|
+|clientSecret|string|true|none|none|
+|secret|string|true|none|none|
+|redirectUrl|string|false|none|none|
+|accessTokenExpiration|number|true|none|none|
+|refreshTokenExpiration|number|true|none|none|
+|authCodeExpiration|number|true|none|none|
+
+AuthClientExcluding_id_
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+
+```
+
+AuthClientExcluding_id_
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|clientId|string|true|none|none|
+|clientSecret|string|true|none|none|
+|secret|string|true|none|none|
+|redirectUrl|string|false|none|none|
+|accessTokenExpiration|number|true|none|none|
+|refreshTokenExpiration|number|true|none|none|
+|authCodeExpiration|number|true|none|none|
+
+AuthClientPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": 0,
+ "clientId": "string",
+ "clientSecret": "string",
+ "secret": "string",
+ "redirectUrl": "string",
+ "accessTokenExpiration": 0,
+ "refreshTokenExpiration": 0,
+ "authCodeExpiration": 0
+}
+
+```
+
+AuthClientPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|id|number|false|none|none|
+|clientId|string|false|none|none|
+|clientSecret|string|false|none|none|
+|secret|string|false|none|none|
+|redirectUrl|string|false|none|none|
+|accessTokenExpiration|number|false|none|none|
+|refreshTokenExpiration|number|false|none|none|
+|authCodeExpiration|number|false|none|none|
+
+User
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "firstName": "string",
+ "lastName": "string",
+ "middleName": "string",
+ "username": "string",
+ "email": "string",
+ "phone": "string",
+ "authClientIds": "string",
+ "lastLogin": "2019-08-24T14:15:22Z",
+ "dob": "2019-08-24T14:15:22Z",
+ "gender": "M",
+ "defaultTenantId": "string"
+}
+
+```
+
+User
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|firstName|string|true|none|none|
+|lastName|string|false|none|none|
+|middleName|string|false|none|none|
+|username|string|true|none|none|
+|email|string|false|none|none|
+|phone|string|false|none|none|
+|authClientIds|string|false|none|none|
+|lastLogin|string(date-time)|false|none|none|
+|dob|string(date-time)|false|none|none|
+|gender|string|false|none|This field takes a single character as input in database. 'M' for male and 'F' for female.|
+|defaultTenantId|string|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|gender|M|
+|gender|F|
+|gender|O|
+
+ForgetPasswordResponseDto
+
+
+
+
+
+
+```json
+{
+ "code": "string",
+ "expiry": 0,
+ "email": "string",
+ "user": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "firstName": "string",
+ "lastName": "string",
+ "middleName": "string",
+ "username": "string",
+ "email": "string",
+ "phone": "string",
+ "authClientIds": "string",
+ "lastLogin": "2019-08-24T14:15:22Z",
+ "dob": "2019-08-24T14:15:22Z",
+ "gender": "M",
+ "defaultTenantId": "string"
+ }
+}
+
+```
+
+ForgetPasswordResponseDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|code|string|true|none|none|
+|expiry|number|true|none|none|
+|email|string|true|none|none|
+|user|[User](#schemauser)|false|none|This is signature for user model.|
+
+ForgetPasswordDto
+
+
+
+
+
+
+```json
+{
+ "username": "string",
+ "client_id": "string",
+ "client_secret": "string"
+}
+
+```
+
+ForgetPasswordDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|username|string|true|none|none|
+|client_id|string|true|none|none|
+|client_secret|string|true|none|none|
+
+ResetPasswordWithClient
+
+
+
+
+
+
+```json
+{
+ "token": "string",
+ "password": "string",
+ "client_id": "string",
+ "client_secret": "string"
+}
+
+```
+
+ResetPasswordWithClient
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|token|string|true|none|none|
+|password|string|true|none|none|
+|client_id|string|true|none|none|
+|client_secret|string|true|none|none|
+
+SignupRequestResponseDto
+
+
+
+
+
+
+```json
+{
+ "code": "string",
+ "expiry": 0,
+ "email": "string"
+}
+
+```
+
+SignupRequestResponseDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|code|string|true|none|none|
+|expiry|number|true|none|none|
+|email|string|true|none|none|
+
+SignupRequestDto
+
+
+
+
+
+
+```json
+{
+ "email": "string",
+ "data": {}
+}
+
+```
+
+SignupRequestDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|email|string|true|none|none|
+|data|object|false|none|none|
+
+LocalUserProfileDto
+
+
+
+
+
+
+```json
+{
+ "email": "string",
+ "password": "string"
+}
+
+```
+
+LocalUserProfileDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|email|string|true|none|none|
+|password|string|true|none|none|
+
+SignupRequest
+
+
+
+
+
+
+```json
+{
+ "email": "string",
+ "expiry": "string"
+}
+
+```
+
+SignupRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|email|string|true|none|none|
+|expiry|string|false|none|none|
+
+loopback.Count
+
+
+
+
+
+
+```json
+{
+ "count": 0
+}
+
+```
+
+loopback.Count
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|count|number|false|none|none|
+
+auth_clients.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "id": true,
+ "clientId": true,
+ "clientSecret": true,
+ "secret": true,
+ "redirectUrl": true,
+ "accessTokenExpiration": true,
+ "refreshTokenExpiration": true,
+ "authCodeExpiration": true
+ }
+}
+
+```
+
+auth_clients.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» clientId|boolean|false|none|none|
+|»» clientSecret|boolean|false|none|none|
+|»» secret|boolean|false|none|none|
+|»» redirectUrl|boolean|false|none|none|
+|»» accessTokenExpiration|boolean|false|none|none|
+|»» refreshTokenExpiration|boolean|false|none|none|
+|»» authCodeExpiration|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
diff --git a/services/authentication-service/package.json b/services/authentication-service/package.json
index ba5f656f20..c9a0f8de5d 100644
--- a/services/authentication-service/package.json
+++ b/services/authentication-service/package.json
@@ -12,7 +12,7 @@
"node": ">=10"
},
"scripts": {
- "build": "lb-tsc",
+ "build": "lb-tsc && npm run openapi-spec && npm run apidocs",
"build:watch": "lb-tsc --watch",
"lint": "npm run prettier:check && npm run eslint",
"lint:fix": "npm run eslint:fix && npm run prettier:fix",
@@ -21,6 +21,8 @@
"prettier:fix": "npm run prettier:cli -- --write",
"eslint": "lb-eslint --report-unused-disable-directives .",
"eslint:fix": "npm run eslint -- --fix",
+ "openapi-spec": "node ./dist/openapi-spec",
+ "apidocs": "./node_modules/.bin/widdershins --search false --language_tabs 'javascript:JavaScript:request' 'javascript--nodejs:Node.JS' --summary openapi.json -o openapi.md",
"pretest": "npm run clean && npm run build",
"test": "echo \"No tests !\"",
"posttest": "npm run lint",
@@ -91,7 +93,8 @@
"db-migrate-pg": "^1.2.2",
"eslint": "^7.12.1",
"source-map-support": "^0.5.19",
- "typescript": "~4.2.4"
+ "typescript": "~4.2.4",
+ "widdershins": "^4.0.1"
},
"publishConfig": {
"registry": "https://registry.npmjs.org/",
diff --git a/services/authentication-service/src/application.ts b/services/authentication-service/src/application.ts
new file mode 100644
index 0000000000..726e58169e
--- /dev/null
+++ b/services/authentication-service/src/application.ts
@@ -0,0 +1,27 @@
+import {BootMixin} from '@loopback/boot';
+import {ApplicationConfig} from '@loopback/core';
+import {RepositoryMixin} from '@loopback/repository';
+import {RestApplication} from '@loopback/rest';
+import * as path from 'path';
+import {AuthenticationServiceComponent} from './component';
+
+export {ApplicationConfig};
+
+export class AuthenticationServiceApplication extends BootMixin(
+ RepositoryMixin(RestApplication),
+) {
+ constructor(options: ApplicationConfig = {}) {
+ super(options);
+ this.static('/', path.join(__dirname, '../public'));
+ this.component(AuthenticationServiceComponent);
+
+ this.projectRoot = __dirname;
+ this.bootOptions = {
+ controllers: {
+ dirs: ['controllers'],
+ extensions: ['.controller.js'],
+ nested: true,
+ },
+ };
+ }
+}
diff --git a/services/authentication-service/src/openapi-spec.ts b/services/authentication-service/src/openapi-spec.ts
new file mode 100644
index 0000000000..4b39fd4f8a
--- /dev/null
+++ b/services/authentication-service/src/openapi-spec.ts
@@ -0,0 +1,25 @@
+import {ApplicationConfig} from '@loopback/core';
+import {AuthenticationServiceApplication} from './application';
+
+/**
+ * Export the OpenAPI spec from the application
+ */
+const PORT = 3000;
+const FILEARGVI = 2;
+async function exportOpenApiSpec(): Promise {
+ const config: ApplicationConfig = {
+ rest: {
+ port: +(process.env.PORT ?? PORT),
+ host: process.env.HOST ?? 'localhost',
+ },
+ };
+ const outFile = process.argv[FILEARGVI] ?? 'openapi.json';
+ const app = new AuthenticationServiceApplication(config);
+ await app.boot();
+ await app.exportOpenApiSpec(outFile);
+}
+
+exportOpenApiSpec().catch(err => {
+ console.error('Fail to export OpenAPI spec from the application.', err); //NOSONAR
+ process.exit(1);
+});
diff --git a/services/bpmn-service/README.md b/services/bpmn-service/README.md
index 1b3c4e95c9..524c190dcd 100644
--- a/services/bpmn-service/README.md
+++ b/services/bpmn-service/README.md
@@ -227,3 +227,7 @@ Endpoint to delete a workflow, uses the `delete` method from the provider.
`GET /workflow`
Endpoint to get all the workflows.
+
+## API's Details
+
+Visit the [OpenAPI spec docs](./openapi.md)
diff --git a/services/bpmn-service/openapi.json b/services/bpmn-service/openapi.json
new file mode 100644
index 0000000000..4aed586a88
--- /dev/null
+++ b/services/bpmn-service/openapi.json
@@ -0,0 +1,571 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Bpmn Service",
+ "version": "1.0.0",
+ "description": "services",
+ "contact": {
+ "name": "Sourcefuse"
+ }
+ },
+ "paths": {
+ "/workflow/{id}/execute": {
+ "post": {
+ "x-controller-name": "WorkflowController",
+ "x-operation-name": "startWorkflow",
+ "tags": [
+ "WorkflowController"
+ ],
+ "security": [
+ {
+ "bearerAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Workflow instance"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ExecuteWorkflowDto"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "WorkflowController.startWorkflow"
+ }
+ },
+ "/workflow/{id}": {
+ "patch": {
+ "x-controller-name": "WorkflowController",
+ "x-operation-name": "updateById",
+ "tags": [
+ "WorkflowController"
+ ],
+ "security": [
+ {
+ "bearerAuth": []
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Workflow PATCH success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/WorkflowDtoPartial"
+ }
+ }
+ }
+ },
+ "operationId": "WorkflowController.updateById"
+ },
+ "get": {
+ "x-controller-name": "WorkflowController",
+ "x-operation-name": "count",
+ "tags": [
+ "WorkflowController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Workflow Model"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "WorkflowController.count"
+ },
+ "delete": {
+ "x-controller-name": "WorkflowController",
+ "x-operation-name": "deleteById",
+ "tags": [
+ "WorkflowController"
+ ],
+ "security": [
+ {
+ "bearerAuth": []
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Workflow DELETE success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "WorkflowController.deleteById"
+ }
+ },
+ "/workflow": {
+ "post": {
+ "x-controller-name": "WorkflowController",
+ "x-operation-name": "create",
+ "tags": [
+ "WorkflowController"
+ ],
+ "security": [
+ {
+ "bearerAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Workflow model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Workflow"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewWorkflow"
+ }
+ }
+ }
+ },
+ "operationId": "WorkflowController.create"
+ },
+ "get": {
+ "x-controller-name": "WorkflowController",
+ "x-operation-name": "find",
+ "tags": [
+ "WorkflowController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Workflow model instances",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Workflow"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/workflows.Filter"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "WorkflowController.find"
+ }
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "HTTPBearer": {
+ "type": "http",
+ "scheme": "bearer",
+ "bearerFormat": "JWT"
+ }
+ },
+ "schemas": {
+ "Workflow": {
+ "title": "Workflow",
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "workflowVersion": {
+ "type": "number"
+ },
+ "externalIdentifier": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "provider": {
+ "type": "string"
+ },
+ "inputSchema": {
+ "type": "object"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "workflowVersion",
+ "externalIdentifier",
+ "provider",
+ "inputSchema"
+ ],
+ "additionalProperties": false
+ },
+ "NewWorkflow": {
+ "title": "NewWorkflow",
+ "type": "object",
+ "description": "(tsType: WorkflowDto, schemaOptions: { title: 'NewWorkflow' })",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "bpmnFile": {
+ "type": "string"
+ },
+ "inputSchema": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "bpmnFile",
+ "inputSchema"
+ ],
+ "additionalProperties": true,
+ "x-typescript-type": "WorkflowDto"
+ },
+ "WorkflowDto": {
+ "title": "WorkflowDto",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "bpmnFile": {
+ "type": "string"
+ },
+ "inputSchema": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "bpmnFile",
+ "inputSchema"
+ ],
+ "additionalProperties": true
+ },
+ "WorkflowDtoPartial": {
+ "title": "WorkflowDtoPartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "bpmnFile": {
+ "type": "string"
+ },
+ "inputSchema": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": true,
+ "x-typescript-type": "Partial"
+ },
+ "ExecuteWorkflowDto": {
+ "title": "ExecuteWorkflowDto",
+ "type": "object",
+ "properties": {
+ "workflowVersion": {
+ "type": "number"
+ },
+ "input": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "input"
+ ],
+ "additionalProperties": false
+ },
+ "workflows.ScopeFilter": {
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true
+ }
+ ]
+ },
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ }
+ }
+ },
+ "additionalProperties": false,
+ "title": "workflows.ScopeFilter"
+ },
+ "workflows.IncludeFilter.Items": {
+ "title": "workflows.IncludeFilter.Items",
+ "type": "object",
+ "properties": {
+ "relation": {
+ "type": "string"
+ },
+ "scope": {
+ "$ref": "#/components/schemas/workflows.ScopeFilter"
+ }
+ }
+ },
+ "workflows.Filter": {
+ "type": "object",
+ "title": "workflows.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "title": "workflows.WhereFilter",
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "workflowVersion": {
+ "type": "boolean"
+ },
+ "externalIdentifier": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "boolean"
+ },
+ "provider": {
+ "type": "boolean"
+ },
+ "inputSchema": {
+ "type": "boolean"
+ },
+ "description": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "workflowVersion",
+ "externalIdentifier",
+ "name",
+ "provider",
+ "inputSchema",
+ "description"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "workflows.Fields"
+ },
+ "include": {
+ "title": "workflows.IncludeFilter",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/workflows.IncludeFilter.Items"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ }
+ }
+ },
+ "servers": [
+ {
+ "url": "/"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/services/bpmn-service/openapi.md b/services/bpmn-service/openapi.md
new file mode 100644
index 0000000000..eb59999881
--- /dev/null
+++ b/services/bpmn-service/openapi.md
@@ -0,0 +1,792 @@
+---
+title: Bpmn Service v1.0.0
+language_tabs:
+ - "'javascript": JavaScript
+ - "'javascript--nodejs": Node.JS'
+language_clients:
+ - "'javascript": request'
+ - "'javascript--nodejs": ""
+toc_footers: []
+includes: []
+search: false
+highlight_theme: darkula
+headingLevel: 2
+
+---
+
+
+
+Bpmn Service v1.0.0
+
+> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
+
+services
+
+Base URLs:
+
+* /
+
+# Authentication
+
+- HTTP Authentication, scheme: bearer
+
+WorkflowController
+
+## WorkflowController.startWorkflow
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "workflowVersion": 0,
+ "input": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/workflow/{id}/execute',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /workflow/{id}/execute`
+
+> Body parameter
+
+```json
+{
+ "workflowVersion": 0,
+ "input": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[ExecuteWorkflowDto](#schemaexecuteworkflowdto)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Workflow instance|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+None
+
+
+## WorkflowController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "name": "string",
+ "bpmnFile": "string",
+ "inputSchema": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/workflow/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /workflow/{id}`
+
+> Body parameter
+
+```json
+{
+ "name": "string",
+ "bpmnFile": "string",
+ "inputSchema": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[WorkflowDtoPartial](#schemaworkflowdtopartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Workflow PATCH success|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+None
+
+
+## WorkflowController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/workflow/{id}',
+{
+ method: 'GET'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /workflow/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Workflow Model|None|
+
+
+This operation does not require authentication
+
+
+## WorkflowController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/workflow/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /workflow/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Workflow DELETE success|None|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+None
+
+
+## WorkflowController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "name": "string",
+ "bpmnFile": "string",
+ "inputSchema": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/workflow',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /workflow`
+
+> Body parameter
+
+```json
+{
+ "name": "string",
+ "bpmnFile": "string",
+ "inputSchema": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewWorkflow](#schemanewworkflow)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "workflowVersion": 0,
+ "externalIdentifier": "string",
+ "name": "string",
+ "provider": "string",
+ "inputSchema": {},
+ "description": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Workflow model instance|[Workflow](#schemaworkflow)|
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+None
+
+
+## WorkflowController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/workflow',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /workflow`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[workflows.Filter](#schemaworkflows.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "workflowVersion": 0,
+ "externalIdentifier": "string",
+ "name": "string",
+ "provider": "string",
+ "inputSchema": {},
+ "description": "string"
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Workflow model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[Workflow](#schemaworkflow)]|false|none|none|
+|» Workflow|[Workflow](#schemaworkflow)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» workflowVersion|number|true|none|none|
+|»» externalIdentifier|string|true|none|none|
+|»» name|string|false|none|none|
+|»» provider|string|true|none|none|
+|»» inputSchema|object|true|none|none|
+|»» description|string|false|none|none|
+
+
+This operation does not require authentication
+
+
+# Schemas
+
+Workflow
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "workflowVersion": 0,
+ "externalIdentifier": "string",
+ "name": "string",
+ "provider": "string",
+ "inputSchema": {},
+ "description": "string"
+}
+
+```
+
+Workflow
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|workflowVersion|number|true|none|none|
+|externalIdentifier|string|true|none|none|
+|name|string|false|none|none|
+|provider|string|true|none|none|
+|inputSchema|object|true|none|none|
+|description|string|false|none|none|
+
+NewWorkflow
+
+
+
+
+
+
+```json
+{
+ "name": "string",
+ "bpmnFile": "string",
+ "inputSchema": {}
+}
+
+```
+
+NewWorkflow
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|name|string|true|none|none|
+|bpmnFile|string|true|none|none|
+|inputSchema|object|true|none|none|
+
+WorkflowDto
+
+
+
+
+
+
+```json
+{
+ "name": "string",
+ "bpmnFile": "string",
+ "inputSchema": {}
+}
+
+```
+
+WorkflowDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|name|string|true|none|none|
+|bpmnFile|string|true|none|none|
+|inputSchema|object|true|none|none|
+
+WorkflowDtoPartial
+
+
+
+
+
+
+```json
+{
+ "name": "string",
+ "bpmnFile": "string",
+ "inputSchema": {}
+}
+
+```
+
+WorkflowDtoPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|name|string|false|none|none|
+|bpmnFile|string|false|none|none|
+|inputSchema|object|false|none|none|
+
+ExecuteWorkflowDto
+
+
+
+
+
+
+```json
+{
+ "workflowVersion": 0,
+ "input": {}
+}
+
+```
+
+ExecuteWorkflowDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|workflowVersion|number|false|none|none|
+|input|object|true|none|none|
+
+workflows.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+workflows.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+workflows.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+workflows.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[workflows.ScopeFilter](#schemaworkflows.scopefilter)|false|none|none|
+
+workflows.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "workflowVersion": true,
+ "externalIdentifier": true,
+ "name": true,
+ "provider": true,
+ "inputSchema": true,
+ "description": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+workflows.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» workflowVersion|boolean|false|none|none|
+|»» externalIdentifier|boolean|false|none|none|
+|»» name|boolean|false|none|none|
+|»» provider|boolean|false|none|none|
+|»» inputSchema|boolean|false|none|none|
+|»» description|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[workflows.IncludeFilter.Items](#schemaworkflows.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
diff --git a/services/bpmn-service/package.json b/services/bpmn-service/package.json
index a2887e33da..ce8cdbb0f5 100644
--- a/services/bpmn-service/package.json
+++ b/services/bpmn-service/package.json
@@ -12,7 +12,7 @@
"node": ">=10"
},
"scripts": {
- "build": "npm run clean && lb-tsc",
+ "build": "npm run clean && lb-tsc && npm run openapi-spec && npm run apidocs",
"build:watch": "lb-tsc --watch",
"lint": "npm run prettier:check && npm run eslint",
"lint:fix": "npm run eslint:fix && npm run prettier:fix",
@@ -21,6 +21,8 @@
"prettier:fix": "npm run prettier:cli -- --write",
"eslint": "lb-eslint --report-unused-disable-directives .",
"eslint:fix": "npm run eslint -- --fix",
+ "openapi-spec": "node ./dist/openapi-spec",
+ "apidocs": "./node_modules/.bin/widdershins --search false --language_tabs 'javascript:JavaScript:request' 'javascript--nodejs:Node.JS' --summary openapi.json -o openapi.md",
"pretest": "npm run clean && npm run build",
"test": "echo \"No tests !\"",
"posttest": "npm run lint",
@@ -77,7 +79,8 @@
"db-migrate-pg": "^1.2.2",
"eslint": "^7.25.0",
"source-map-support": "^0.5.19",
- "typescript": "~4.2.4"
+ "typescript": "~4.2.4",
+ "widdershins": "^4.0.1"
},
"publishConfig": {
"registry": "https://registry.npmjs.org/",
diff --git a/services/bpmn-service/src/application.ts b/services/bpmn-service/src/application.ts
new file mode 100644
index 0000000000..5999b8e716
--- /dev/null
+++ b/services/bpmn-service/src/application.ts
@@ -0,0 +1,27 @@
+import {BootMixin} from '@loopback/boot';
+import {ApplicationConfig} from '@loopback/core';
+import {RepositoryMixin} from '@loopback/repository';
+import {RestApplication} from '@loopback/rest';
+import * as path from 'path';
+import {WorkflowServiceComponent} from './component';
+
+export {ApplicationConfig};
+
+export class WorkflowServiceApplication extends BootMixin(
+ RepositoryMixin(RestApplication),
+) {
+ constructor(options: ApplicationConfig = {}) {
+ super(options);
+ this.static('/', path.join(__dirname, '../public'));
+ this.component(WorkflowServiceComponent);
+
+ this.projectRoot = __dirname;
+ this.bootOptions = {
+ controllers: {
+ dirs: ['controllers'],
+ extensions: ['.controller.js'],
+ nested: true,
+ },
+ };
+ }
+}
diff --git a/services/bpmn-service/src/openapi-spec.ts b/services/bpmn-service/src/openapi-spec.ts
new file mode 100644
index 0000000000..11a4db6262
--- /dev/null
+++ b/services/bpmn-service/src/openapi-spec.ts
@@ -0,0 +1,25 @@
+import {ApplicationConfig} from '@loopback/core';
+import {WorkflowServiceApplication} from './application';
+
+/**
+ * Export the OpenAPI spec from the application
+ */
+const PORT = 3000;
+const FILEARGVI = 2;
+async function exportOpenApiSpec(): Promise {
+ const config: ApplicationConfig = {
+ rest: {
+ port: +(process.env.PORT ?? PORT),
+ host: process.env.HOST ?? 'localhost',
+ },
+ };
+ const outFile = process.argv[FILEARGVI] ?? 'openapi.json';
+ const app = new WorkflowServiceApplication(config);
+ await app.boot();
+ await app.exportOpenApiSpec(outFile);
+}
+
+exportOpenApiSpec().catch(err => {
+ console.error('Fail to export OpenAPI spec from the application.', err); //NOSONAR
+ process.exit(1);
+});
diff --git a/services/in-mail-service/README.md b/services/in-mail-service/README.md
index 08fac46ab3..1cc059eb0c 100644
--- a/services/in-mail-service/README.md
+++ b/services/in-mail-service/README.md
@@ -15,12 +15,6 @@ any client application.
## Implementation
-### Migration
-
-The migrations required for this service are processed during the installation automatically if you set the `INMAIL_MIGRATION` or `SOURCELOOP_MIGRATION` env variable. The migrations use [`db-migrate`](https://www.npmjs.com/package/db-migrate) with [`db-migrate-pg`](https://www.npmjs.com/package/db-migrate-pg) driver for migrations, so you will have to install these packages to use auto-migration. Please note that if you are using some pre-existing migrations or database, they may be effected. In such scenario, it is advised that you copy the migration files in your project root, using the `INMAIL_MIGRATION_COPY` or `SOURCELOOP_MIGRATION_COPY` env variables. You can customize or cherry-pick the migrations in the copied files according to your specific requirements and then apply them to the DB.
-
-### Implementation
-
Create a new Application using Loopback CLI and add the Component for `InMailService` in `application.ts`
```typescript
@@ -79,6 +73,15 @@ export class Client extends BootMixin(
}
}
```
+
+### Migration
+
+The migrations required for this service are processed during the installation automatically if you set the `INMAIL_MIGRATION` or `SOURCELOOP_MIGRATION` env variable. The migrations use [`db-migrate`](https://www.npmjs.com/package/db-migrate) with [`db-migrate-pg`](https://www.npmjs.com/package/db-migrate-pg) driver for migrations, so you will have to install these packages to use auto-migration. Please note that if you are using some pre-existing migrations or database, they may be effected. In such scenario, it is advised that you copy the migration files in your project root, using the `INMAIL_MIGRATION_COPY` or `SOURCELOOP_MIGRATION_COPY` env variables. You can customize or cherry-pick the migrations in the copied files according to your specific requirements and then apply them to the DB.
+
+#### Database Model
+
+![db-schema](./migrations/in_mail_db.png)
+
### Setting Environment Variables
Do not forget to set Environment variables. The examples below show a common configuration for a PostgreSQL Database running locally.
@@ -432,3 +435,7 @@ threadFilter: Object which contains attribute(s) key value pairs of thread model
groupFilter: Object which contains attribute(s) key value pairs of group model which is used to filter items.
threadFilter: Object which contains attribute(s) key value pairs of thread model which is used to filter items.
+
+## API's Details
+
+Visit the [OpenAPI spec docs](./openapi.md)
\ No newline at end of file
diff --git a/services/in-mail-service/migrations/in_mail_db.png b/services/in-mail-service/migrations/in_mail_db.png
new file mode 100644
index 0000000000..9905528e65
Binary files /dev/null and b/services/in-mail-service/migrations/in_mail_db.png differ
diff --git a/services/in-mail-service/openapi.json b/services/in-mail-service/openapi.json
new file mode 100644
index 0000000000..f3a22431d6
--- /dev/null
+++ b/services/in-mail-service/openapi.json
@@ -0,0 +1,1914 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "In-mail Service",
+ "version": "1.0.0",
+ "description": "services",
+ "contact": {
+ "name": "Sourcefuse"
+ }
+ },
+ "paths": {
+ "/mails/bulk/restore": {
+ "patch": {
+ "x-controller-name": "OriginatorController",
+ "x-operation-name": "restore",
+ "tags": [
+ "OriginatorController"
+ ],
+ "summary": "API provides an interface for restore message from trash.",
+ "responses": {
+ "200": {
+ "description": "Restore Message Successful!"
+ },
+ "400": {
+ "description": "Message identity does not exist."
+ },
+ "403": {
+ "description": "Forbidden request due to unauthorized token in header."
+ }
+ },
+ "parameters": [
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IdArraysPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "OriginatorController.restore"
+ }
+ },
+ "/mails/bulk/{storage}/{action}": {
+ "delete": {
+ "x-controller-name": "OriginatorController",
+ "x-operation-name": "trashBulk",
+ "tags": [
+ "OriginatorController"
+ ],
+ "summary": "API for moving mails to trash and then delete",
+ "responses": {
+ "200": {
+ "description": "Trash/Deletion of Mail(s) sucessful!"
+ },
+ "403": {
+ "description": "Forbidden request due to unauthorized token in header."
+ },
+ "404": {
+ "description": "Message identity does not exist."
+ }
+ },
+ "parameters": [
+ {
+ "name": "storage",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "action",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IdArraysPartial"
+ }
+ }
+ },
+ "x-parameter-index": 3
+ },
+ "operationId": "OriginatorController.trashBulk"
+ }
+ },
+ "/mails/marking/{markType}": {
+ "patch": {
+ "x-controller-name": "OriginatorController",
+ "x-operation-name": "markMail",
+ "tags": [
+ "OriginatorController"
+ ],
+ "summary": "API provides interface to mark read, unread and important",
+ "responses": {
+ "200": {
+ "description": "Message is marked read/unread/important"
+ }
+ },
+ "parameters": [
+ {
+ "name": "markType",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IdArraysPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "OriginatorController.markMail"
+ }
+ },
+ "/mails/{messageId}/attachments/{attachmentId}": {
+ "delete": {
+ "x-controller-name": "OriginatorController",
+ "x-operation-name": "removeAttachment",
+ "tags": [
+ "OriginatorController"
+ ],
+ "summary": "API provides an interface for removing attachment before message is sent",
+ "responses": {
+ "200": {
+ "description": "Deletetion of Attachment Successful!"
+ },
+ "403": {
+ "description": "Forbidden request due to unauthorized token in header."
+ },
+ "404": {
+ "description": "Message identity does not exist."
+ }
+ },
+ "parameters": [
+ {
+ "name": "messageId",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "attachmentId",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "OriginatorController.removeAttachment"
+ }
+ },
+ "/mails/{messageId}/attachments": {
+ "post": {
+ "x-controller-name": "OriginatorController",
+ "x-operation-name": "addAttachment",
+ "tags": [
+ "OriginatorController"
+ ],
+ "summary": "API provides an interface for adding attachment before message is sent.",
+ "responses": {
+ "200": {
+ "description": "collect single attachment for user by message identifier",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Attachment add response schema"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Message identity does not exist."
+ },
+ "403": {
+ "description": "Forbidden request due to unauthorized token in header."
+ }
+ },
+ "parameters": [
+ {
+ "name": "messageId",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "attachments": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AttachmentPartial"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "operationId": "OriginatorController.addAttachment"
+ }
+ },
+ "/mails/{messageId}/send": {
+ "patch": {
+ "x-controller-name": "OriginatorController",
+ "x-operation-name": "sendDraft",
+ "tags": [
+ "OriginatorController"
+ ],
+ "summary": "API for sending a drafted message.",
+ "responses": {
+ "200": {
+ "description": "Mail is Successfully sent!"
+ },
+ "400": {
+ "description": "Message identity does not exist."
+ },
+ "403": {
+ "description": "Forbidden request due to unauthorized token in header."
+ }
+ },
+ "parameters": [
+ {
+ "name": "messageId",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "OriginatorController.sendDraft"
+ }
+ },
+ "/mails/{messageId}": {
+ "put": {
+ "x-controller-name": "OriginatorController",
+ "x-operation-name": "updateDraft",
+ "tags": [
+ "OriginatorController"
+ ],
+ "summary": "Update API. Update draft messages.",
+ "responses": {
+ "400": {
+ "description": "Message identity does not exist."
+ },
+ "403": {
+ "description": "Forbidden request due to unauthorized token in header."
+ },
+ "application/json": {
+ "description": "collect single message for user by message identifier",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/idResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "BearerAuth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "messageId",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/composeMailBody"
+ }
+ }
+ }
+ },
+ "operationId": "OriginatorController.updateDraft"
+ },
+ "get": {
+ "x-controller-name": "CollectorController",
+ "x-operation-name": "fetchById",
+ "tags": [
+ "CollectorController"
+ ],
+ "summary": "GET Message API. Collect a single message based on message identity.",
+ "responses": {
+ "200": {
+ "description": "Gets mail details based on unique message id",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "item": {
+ "type": "string",
+ "item": {
+ "$ref": "#/components/schemas/MessageExcluding_deleted_WithRelations",
+ "definitions": {
+ "AttachmentExcluding_deleted_WithRelations": {
+ "$ref": "#/components/schemas/AttachmentExcluding_deleted_WithRelations"
+ },
+ "ThreadExcluding_deleted_WithRelations": {
+ "$ref": "#/components/schemas/ThreadExcluding_deleted_WithRelations"
+ },
+ "GroupExcluding_deleted_WithRelations": {
+ "$ref": "#/components/schemas/GroupExcluding_deleted_WithRelations"
+ },
+ "MetaExcluding_deleted_WithRelations": {
+ "$ref": "#/components/schemas/MetaExcluding_deleted_WithRelations"
+ },
+ "MessageExcluding_deleted_WithRelations": {
+ "$ref": "#/components/schemas/MessageExcluding_deleted_WithRelations"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden request due to unauthrized token in header."
+ },
+ "404": {
+ "description": "Message identity does not exist"
+ }
+ },
+ "parameters": [
+ {
+ "name": "messageId",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "CollectorController.fetchById"
+ }
+ },
+ "/mails": {
+ "post": {
+ "x-controller-name": "OriginatorController",
+ "x-operation-name": "composeMail",
+ "tags": [
+ "OriginatorController"
+ ],
+ "summary": "ComposeAPI. For drafting, reply on and create new message",
+ "responses": {
+ "201": {
+ "description": "collect single message for user by message identifier",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/idResponse"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden request due to unauthorized token in header."
+ },
+ "404": {
+ "description": "Message identity does not exist."
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/composeMailBody"
+ }
+ }
+ }
+ },
+ "operationId": "OriginatorController.composeMail"
+ },
+ "get": {
+ "x-controller-name": "CollectorController",
+ "x-operation-name": "fetchMailList",
+ "tags": [
+ "CollectorController"
+ ],
+ "summary": "Collect a list of all messages.",
+ "responses": {
+ "200": {
+ "description": "fetch mails",
+ "content": {
+ "application/json": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string"
+ },
+ "items": {
+ "type": "array",
+ "schema": {
+ "$ref": "#/components/schemas/Message",
+ "definitions": {
+ "Message": {
+ "$ref": "#/components/schemas/Message"
+ }
+ }
+ }
+ }
+ },
+ "nullable": true
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden request due to unauthrized token in header."
+ }
+ },
+ "parameters": [
+ {
+ "name": "messageFilter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ {
+ "name": "groupFilter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "CollectorController.fetchMailList"
+ }
+ },
+ "/threads/{threadId}/forward": {
+ "patch": {
+ "x-controller-name": "ReplyAndForwardController",
+ "x-operation-name": "forward",
+ "tags": [
+ "ReplyAndForwardController"
+ ],
+ "summary": "API provides interface to forward single message.",
+ "responses": {
+ "204": {
+ "description": "Message is forwarded to another recipient",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/idResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Message identity does not exist."
+ },
+ "403": {
+ "description": "Forbidden request due to unauthorized token in header."
+ }
+ },
+ "parameters": [
+ {
+ "name": "threadId",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "groups": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/GroupPartial"
+ }
+ },
+ "subject": {
+ "type": "string"
+ },
+ "body": {
+ "type": "string"
+ },
+ "attachments": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AttachmentPartial"
+ }
+ },
+ "meta": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MetaPartial"
+ }
+ },
+ "status": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "groups"
+ ]
+ }
+ }
+ }
+ },
+ "operationId": "ReplyAndForwardController.forward"
+ }
+ },
+ "/threads/{threadId}/mails/{messageId}/replies": {
+ "patch": {
+ "x-controller-name": "ReplyAndForwardController",
+ "x-operation-name": "replyMail",
+ "tags": [
+ "ReplyAndForwardController"
+ ],
+ "summary": "API provides interface to reply to a single message",
+ "responses": {
+ "200": {
+ "description": "Message is replied back to the sender"
+ }
+ },
+ "parameters": [
+ {
+ "name": "threadId",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "messageId",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "replyAll",
+ "in": "query",
+ "schema": {
+ "type": "boolean"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "attachments": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AttachmentPartial"
+ }
+ },
+ "meta": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MetaPartial"
+ }
+ },
+ "body": {
+ "type": "string"
+ },
+ "subject": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "body",
+ "group",
+ "status"
+ ]
+ }
+ }
+ },
+ "x-parameter-index": 3
+ },
+ "operationId": "ReplyAndForwardController.replyMail"
+ }
+ },
+ "/threads/{threadId}": {
+ "get": {
+ "x-controller-name": "CollectorController",
+ "x-operation-name": "fetchThreadById",
+ "tags": [
+ "CollectorController"
+ ],
+ "summary": "GET Thread Message API. Collect complete single message thread based on thread identity.",
+ "responses": {
+ "200": {
+ "description": "Fetches a thread along with message, group, attachment(s) etc based on unique thread Id",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "item": {
+ "$ref": "#/components/schemas/Thread",
+ "definitions": {
+ "Thread": {
+ "$ref": "#/components/schemas/Thread"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Message identity does not exist"
+ },
+ "403": {
+ "description": "Forbidden request due to unauthorized token in header."
+ }
+ },
+ "parameters": [
+ {
+ "name": "threadId",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "CollectorController.fetchThreadById"
+ }
+ },
+ "/threads": {
+ "get": {
+ "403": {
+ "description": "Forbidden request due to unauthrized token in header."
+ },
+ "x-controller-name": "CollectorController",
+ "x-operation-name": "fetchThreadList",
+ "tags": [
+ "CollectorController"
+ ],
+ "summary": "Thread List API. Collect a list of all threads.",
+ "responses": {
+ "200": {
+ "description": "fetch threads",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "version": {
+ "type": "string"
+ },
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Thread",
+ "definitions": {
+ "Thread": {
+ "$ref": "#/components/schemas/Thread"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "threadFilter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ {
+ "name": "groupFilter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "CollectorController.fetchThreadList"
+ }
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "HTTPBearer": {
+ "type": "http",
+ "scheme": "bearer",
+ "bearerFormat": "JWT"
+ }
+ },
+ "schemas": {
+ "idResponse": {
+ "$ref": "#/components/schemas/IdResponse",
+ "definitions": {
+ "IdResponse": {
+ "title": "IdResponse",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "composeMailBody": {
+ "type": "object",
+ "properties": {
+ "threadId": {
+ "type": "string"
+ },
+ "groups": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/GroupPartial",
+ "definitions": {
+ "GroupPartial": {
+ "title": "GroupPartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "party": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "from",
+ "to",
+ "cc",
+ "bcc"
+ ]
+ },
+ "isImportant": {
+ "type": "boolean"
+ },
+ "storage": {
+ "type": "string",
+ "default": "inbox",
+ "enum": [
+ "draft",
+ "send",
+ "inbox",
+ "trash"
+ ]
+ },
+ "visibility": {
+ "type": "string",
+ "default": "new",
+ "enum": [
+ "read",
+ "new",
+ "unread",
+ "important",
+ "not-important"
+ ]
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "messageId": {
+ "type": "string"
+ },
+ "threadId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial"
+ }
+ }
+ }
+ },
+ "attachments": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AttachmentPartial",
+ "definitions": {
+ "AttachmentPartial": {
+ "title": "AttachmentPartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "thumbnail": {
+ "type": "string"
+ },
+ "mime": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "messageId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial"
+ }
+ }
+ }
+ },
+ "meta": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MetaPartial",
+ "definitions": {
+ "MetaPartial": {
+ "title": "MetaPartial",
+ "type": "object",
+ "description": "(tsType: Partial , schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "key": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "messageId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial "
+ }
+ }
+ }
+ },
+ "body": {
+ "type": "string"
+ },
+ "subject": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "body",
+ "groups",
+ "status"
+ ]
+ },
+ "Attachment": {
+ "title": "Attachment",
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "thumbnail": {
+ "type": "string"
+ },
+ "mime": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "messageId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "path",
+ "thumbnail",
+ "mime"
+ ],
+ "additionalProperties": false
+ },
+ "AttachmentPartial": {
+ "title": "AttachmentPartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "thumbnail": {
+ "type": "string"
+ },
+ "mime": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "messageId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial"
+ },
+ "IdArraysPartial": {
+ "title": "IdArraysPartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "messageIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "threadIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial"
+ },
+ "IdArrays": {
+ "title": "IdArrays",
+ "type": "object",
+ "properties": {
+ "messageIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "threadIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "MetaPartial": {
+ "title": "MetaPartial",
+ "type": "object",
+ "description": "(tsType: Partial , schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "key": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "messageId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial "
+ },
+ "GroupPartial": {
+ "title": "GroupPartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "party": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "from",
+ "to",
+ "cc",
+ "bcc"
+ ]
+ },
+ "isImportant": {
+ "type": "boolean"
+ },
+ "storage": {
+ "type": "string",
+ "default": "inbox",
+ "enum": [
+ "draft",
+ "send",
+ "inbox",
+ "trash"
+ ]
+ },
+ "visibility": {
+ "type": "string",
+ "default": "new",
+ "enum": [
+ "read",
+ "new",
+ "unread",
+ "important",
+ "not-important"
+ ]
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "messageId": {
+ "type": "string"
+ },
+ "threadId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial"
+ },
+ "Attachment add response schema": {
+ "type": "object",
+ "title": "Attachment add response schema",
+ "properties": {
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Attachment"
+ }
+ }
+ }
+ },
+ "AttachmentExcluding_deleted_WithRelations": {
+ "title": "AttachmentExcluding_deleted_WithRelations",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })",
+ "properties": {
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "thumbnail": {
+ "type": "string"
+ },
+ "mime": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "messageId": {
+ "type": "string"
+ },
+ "message": {
+ "$ref": "#/components/schemas/MessageExcluding_deleted_WithRelations"
+ }
+ },
+ "required": [
+ "name",
+ "path",
+ "thumbnail",
+ "mime"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "ThreadExcluding_deleted_WithRelations": {
+ "title": "ThreadExcluding_deleted_WithRelations",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })",
+ "properties": {
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "subject": {
+ "type": "string"
+ },
+ "messageCounts": {
+ "type": "number"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "message": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MessageExcluding_deleted_WithRelations"
+ }
+ },
+ "group": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/GroupExcluding_deleted_WithRelations"
+ }
+ }
+ },
+ "required": [
+ "subject"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "GroupExcluding_deleted_WithRelations": {
+ "title": "GroupExcluding_deleted_WithRelations",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })",
+ "properties": {
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "party": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "from",
+ "to",
+ "cc",
+ "bcc"
+ ]
+ },
+ "isImportant": {
+ "type": "boolean"
+ },
+ "storage": {
+ "type": "string",
+ "default": "inbox",
+ "enum": [
+ "draft",
+ "send",
+ "inbox",
+ "trash"
+ ]
+ },
+ "visibility": {
+ "type": "string",
+ "default": "new",
+ "enum": [
+ "read",
+ "new",
+ "unread",
+ "important",
+ "not-important"
+ ]
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "messageId": {
+ "type": "string"
+ },
+ "threadId": {
+ "type": "string"
+ },
+ "message": {
+ "$ref": "#/components/schemas/MessageExcluding_deleted_WithRelations"
+ },
+ "thread": {
+ "$ref": "#/components/schemas/ThreadExcluding_deleted_WithRelations"
+ }
+ },
+ "required": [
+ "party",
+ "type"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "MetaExcluding_deleted_WithRelations": {
+ "title": "MetaExcluding_deleted_WithRelations",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })",
+ "properties": {
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "key": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "messageId": {
+ "type": "string"
+ },
+ "message": {
+ "$ref": "#/components/schemas/MessageExcluding_deleted_WithRelations"
+ }
+ },
+ "required": [
+ "key"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "MessageExcluding_deleted_WithRelations": {
+ "title": "MessageExcluding_deleted_WithRelations",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })",
+ "properties": {
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "subject": {
+ "type": "string"
+ },
+ "body": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "draft",
+ "send"
+ ]
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "threadId": {
+ "type": "string"
+ },
+ "attachment": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AttachmentExcluding_deleted_WithRelations"
+ }
+ },
+ "group": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/GroupExcluding_deleted_WithRelations"
+ }
+ },
+ "meta": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MetaExcluding_deleted_WithRelations"
+ }
+ },
+ "thread": {
+ "$ref": "#/components/schemas/ThreadExcluding_deleted_WithRelations"
+ }
+ },
+ "required": [
+ "sender",
+ "subject",
+ "body",
+ "status"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "Message": {
+ "title": "Message",
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "subject": {
+ "type": "string"
+ },
+ "body": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "draft",
+ "send"
+ ]
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "threadId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "sender",
+ "subject",
+ "body",
+ "status"
+ ],
+ "additionalProperties": false
+ },
+ "Thread": {
+ "title": "Thread",
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "subject": {
+ "type": "string"
+ },
+ "messageCounts": {
+ "type": "number"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "subject"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "servers": [
+ {
+ "url": "/"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/services/in-mail-service/openapi.md b/services/in-mail-service/openapi.md
new file mode 100644
index 0000000000..75f62daa45
--- /dev/null
+++ b/services/in-mail-service/openapi.md
@@ -0,0 +1,3803 @@
+---
+title: In-mail Service v1.0.0
+language_tabs:
+ - "'javascript": JavaScript
+ - "'javascript--nodejs": Node.JS'
+language_clients:
+ - "'javascript": request'
+ - "'javascript--nodejs": ""
+toc_footers: []
+includes: []
+search: false
+highlight_theme: darkula
+headingLevel: 2
+
+---
+
+
+
+In-mail Service v1.0.0
+
+> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
+
+services
+
+Base URLs:
+
+* /
+
+# Authentication
+
+- HTTP Authentication, scheme: bearer
+
+OriginatorController
+
+## API provides an interface for restore message from trash.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "messageIds": [
+ "string"
+ ],
+ "threadIds": [
+ "string"
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/mails/bulk/restore',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /mails/bulk/restore`
+
+> Body parameter
+
+```json
+{
+ "messageIds": [
+ "string"
+ ],
+ "threadIds": [
+ "string"
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|object|false|none|
+|body|body|[IdArraysPartial](#schemaidarrayspartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Restore Message Successful!|None|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Message identity does not exist.|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+
+
+This operation does not require authentication
+
+
+## API for moving mails to trash and then delete
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "messageIds": [
+ "string"
+ ],
+ "threadIds": [
+ "string"
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/mails/bulk/{storage}/{action}',
+{
+ method: 'DELETE',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /mails/bulk/{storage}/{action}`
+
+> Body parameter
+
+```json
+{
+ "messageIds": [
+ "string"
+ ],
+ "threadIds": [
+ "string"
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|storage|path|string|true|none|
+|action|path|string|true|none|
+|filter|query|object|false|none|
+|body|body|[IdArraysPartial](#schemaidarrayspartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Trash/Deletion of Mail(s) sucessful!|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Message identity does not exist.|None|
+
+
+This operation does not require authentication
+
+
+## API provides interface to mark read, unread and important
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "messageIds": [
+ "string"
+ ],
+ "threadIds": [
+ "string"
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/mails/marking/{markType}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /mails/marking/{markType}`
+
+> Body parameter
+
+```json
+{
+ "messageIds": [
+ "string"
+ ],
+ "threadIds": [
+ "string"
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|markType|path|string|true|none|
+|body|body|[IdArraysPartial](#schemaidarrayspartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Message is marked read/unread/important|None|
+
+
+This operation does not require authentication
+
+
+## API provides an interface for removing attachment before message is sent
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/mails/{messageId}/attachments/{attachmentId}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /mails/{messageId}/attachments/{attachmentId}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|messageId|path|string|true|none|
+|attachmentId|path|string|true|none|
+|filter|query|object|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Deletetion of Attachment Successful!|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Message identity does not exist.|None|
+
+
+This operation does not require authentication
+
+
+## API provides an interface for adding attachment before message is sent.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/mails/{messageId}/attachments',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /mails/{messageId}/attachments`
+
+> Body parameter
+
+```json
+{
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|messageId|path|string|true|none|
+|filter|query|object|false|none|
+|body|body|object|false|none|
+|» attachments|body|[[AttachmentPartial](#schemaattachmentpartial)]|false|[(tsType: Partial, schemaOptions: { partial: true })]|
+|»» AttachmentPartial|body|[AttachmentPartial](#schemaattachmentpartial)|false|(tsType: Partial, schemaOptions: { partial: true })|
+|»»» deleted|body|boolean|false|none|
+|»»» deletedOn|body|string(date-time)¦null|false|none|
+|»»» deletedBy|body|string¦null|false|none|
+|»»» createdOn|body|string(date-time)|false|none|
+|»»» modifiedOn|body|string(date-time)|false|none|
+|»»» createdBy|body|string|false|none|
+|»»» modifiedBy|body|string|false|none|
+|»»» id|body|string|false|none|
+|»»» name|body|string|false|none|
+|»»» path|body|string|false|none|
+|»»» thumbnail|body|string|false|none|
+|»»» mime|body|string|false|none|
+|»»» extId|body|string|false|none|
+|»»» extMetadata|body|object|false|none|
+|»»» messageId|body|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "items": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ]
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|collect single attachment for user by message identifier|[Attachment add response schema](#schemaattachment add response schema)|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Message identity does not exist.|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+
+
+This operation does not require authentication
+
+
+## API for sending a drafted message.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/mails/{messageId}/send',
+{
+ method: 'PATCH'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /mails/{messageId}/send`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|messageId|path|string|true|none|
+|filter|query|object|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Mail is Successfully sent!|None|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Message identity does not exist.|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+
+
+This operation does not require authentication
+
+
+## Update API. Update draft messages.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "threadId": "string",
+ "groups": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string"
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "body": "string",
+ "subject": "string",
+ "status": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/mails/{messageId}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /mails/{messageId}`
+
+> Body parameter
+
+```json
+{
+ "threadId": "string",
+ "groups": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string"
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "body": "string",
+ "subject": "string",
+ "status": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|messageId|path|string|true|none|
+|body|body|[composeMailBody](#schemacomposemailbody)|false|none|
+
+> Example responses
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Message identity does not exist.|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+|application/json|Unknown|collect single message for user by message identifier|None|
+
+Response Schema
+
+
+To perform this operation, you must be authenticated by means of one of the following methods:
+None
+
+
+## ComposeAPI. For drafting, reply on and create new message
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "threadId": "string",
+ "groups": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string"
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "body": "string",
+ "subject": "string",
+ "status": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/mails',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /mails`
+
+> Body parameter
+
+```json
+{
+ "threadId": "string",
+ "groups": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string"
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "body": "string",
+ "subject": "string",
+ "status": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[composeMailBody](#schemacomposemailbody)|false|none|
+
+> Example responses
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|collect single message for user by message identifier|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Message identity does not exist.|None|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+CollectorController
+
+## GET Message API. Collect a single message based on message identity.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/mails/{messageId}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /mails/{messageId}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|messageId|path|string|true|none|
+|filter|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "item": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Gets mail details based on unique message id|Inline|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthrized token in header.|None|
+|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Message identity does not exist|None|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» item|string|false|none|none|
+
+
+This operation does not require authentication
+
+
+## Collect a list of all messages.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/mails',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /mails`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|messageFilter|query|object|false|none|
+|groupFilter|query|object|false|none|
+
+> Example responses
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|fetch mails|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthrized token in header.|None|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+## GET Thread Message API. Collect complete single message thread based on thread identity.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/threads/{threadId}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /threads/{threadId}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|threadId|path|string|true|none|
+|filter|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "item": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {}
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Fetches a thread along with message, group, attachment(s) etc based on unique thread Id|Inline|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Message identity does not exist|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» item|[Thread](#schemathread)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» subject|string|true|none|none|
+|»» messageCounts|number|false|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+
+
+This operation does not require authentication
+
+
+## Thread List API. Collect a list of all threads.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/threads',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /threads`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|threadFilter|query|object|false|none|
+|groupFilter|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "version": "string",
+ "items": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ]
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|fetch threads|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» version|string|false|none|none|
+|» items|[[Thread](#schemathread)]|false|none|none|
+|»» Thread|[Thread](#schemathread)|false|none|none|
+|»»» deleted|boolean|false|none|none|
+|»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»» deletedBy|string¦null|false|none|none|
+|»»» createdOn|string(date-time)|false|none|none|
+|»»» modifiedOn|string(date-time)|false|none|none|
+|»»» createdBy|string|false|none|none|
+|»»» modifiedBy|string|false|none|none|
+|»»» id|string|false|none|none|
+|»»» subject|string|true|none|none|
+|»»» messageCounts|number|false|none|none|
+|»»» extId|string|false|none|none|
+|»»» extMetadata|object|false|none|none|
+
+
+This operation does not require authentication
+
+
+ReplyAndForwardController
+
+## API provides interface to forward single message.
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "groups": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string"
+ }
+ ],
+ "subject": "string",
+ "body": "string",
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "status": "string"
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/threads/{threadId}/forward',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /threads/{threadId}/forward`
+
+> Body parameter
+
+```json
+{
+ "groups": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string"
+ }
+ ],
+ "subject": "string",
+ "body": "string",
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "status": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|threadId|path|string|true|none|
+|body|body|object|false|none|
+|» groups|body|[[GroupPartial](#schemagrouppartial)]|true|[(tsType: Partial, schemaOptions: { partial: true })]|
+|»» GroupPartial|body|[GroupPartial](#schemagrouppartial)|false|(tsType: Partial, schemaOptions: { partial: true })|
+|»»» deleted|body|boolean|false|none|
+|»»» deletedOn|body|string(date-time)¦null|false|none|
+|»»» deletedBy|body|string¦null|false|none|
+|»»» createdOn|body|string(date-time)|false|none|
+|»»» modifiedOn|body|string(date-time)|false|none|
+|»»» createdBy|body|string|false|none|
+|»»» modifiedBy|body|string|false|none|
+|»»» id|body|string|false|none|
+|»»» party|body|string|false|none|
+|»»» type|body|string|false|none|
+|»»» isImportant|body|boolean|false|none|
+|»»» storage|body|string|false|none|
+|»»» visibility|body|string|false|none|
+|»»» extId|body|string|false|none|
+|»»» extMetadata|body|object|false|none|
+|»»» messageId|body|string|false|none|
+|»»» threadId|body|string|false|none|
+|» subject|body|string|false|none|
+|» body|body|string|false|none|
+|» attachments|body|[[AttachmentPartial](#schemaattachmentpartial)]|false|[(tsType: Partial, schemaOptions: { partial: true })]|
+|»» AttachmentPartial|body|[AttachmentPartial](#schemaattachmentpartial)|false|(tsType: Partial, schemaOptions: { partial: true })|
+|»»» deleted|body|boolean|false|none|
+|»»» deletedOn|body|string(date-time)¦null|false|none|
+|»»» deletedBy|body|string¦null|false|none|
+|»»» createdOn|body|string(date-time)|false|none|
+|»»» modifiedOn|body|string(date-time)|false|none|
+|»»» createdBy|body|string|false|none|
+|»»» modifiedBy|body|string|false|none|
+|»»» id|body|string|false|none|
+|»»» name|body|string|false|none|
+|»»» path|body|string|false|none|
+|»»» thumbnail|body|string|false|none|
+|»»» mime|body|string|false|none|
+|»»» extId|body|string|false|none|
+|»»» extMetadata|body|object|false|none|
+|»»» messageId|body|string|false|none|
+|» meta|body|[[MetaPartial](#schemametapartial)]|false|[(tsType: Partial , schemaOptions: { partial: true })]|
+|»» MetaPartial|body|[MetaPartial](#schemametapartial)|false|(tsType: Partial , schemaOptions: { partial: true })|
+|»»» deleted|body|boolean|false|none|
+|»»» deletedOn|body|string(date-time)¦null|false|none|
+|»»» deletedBy|body|string¦null|false|none|
+|»»» createdOn|body|string(date-time)|false|none|
+|»»» modifiedOn|body|string(date-time)|false|none|
+|»»» createdBy|body|string|false|none|
+|»»» modifiedBy|body|string|false|none|
+|»»» id|body|string|false|none|
+|»»» key|body|string|false|none|
+|»»» value|body|string|false|none|
+|»»» extId|body|string|false|none|
+|»»» extMetadata|body|object|false|none|
+|»»» messageId|body|string|false|none|
+|» status|body|string|false|none|
+
+#### Enumerated Values
+
+|Parameter|Value|
+|---|---|
+|»»» type|from|
+|»»» type|to|
+|»»» type|cc|
+|»»» type|bcc|
+|»»» storage|draft|
+|»»» storage|send|
+|»»» storage|inbox|
+|»»» storage|trash|
+|»»» visibility|read|
+|»»» visibility|new|
+|»»» visibility|unread|
+|»»» visibility|important|
+|»»» visibility|not-important|
+
+> Example responses
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Message is forwarded to another recipient|None|
+|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Message identity does not exist.|None|
+|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden request due to unauthorized token in header.|None|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+## API provides interface to reply to a single message
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "body": "string",
+ "subject": "string",
+ "status": "string",
+ "extId": "string"
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/threads/{threadId}/mails/{messageId}/replies',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /threads/{threadId}/mails/{messageId}/replies`
+
+> Body parameter
+
+```json
+{
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "body": "string",
+ "subject": "string",
+ "status": "string",
+ "extId": "string"
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|threadId|path|string|true|none|
+|messageId|path|string|true|none|
+|replyAll|query|boolean|false|none|
+|body|body|object|false|none|
+|» attachments|body|[[AttachmentPartial](#schemaattachmentpartial)]|false|[(tsType: Partial, schemaOptions: { partial: true })]|
+|»» AttachmentPartial|body|[AttachmentPartial](#schemaattachmentpartial)|false|(tsType: Partial, schemaOptions: { partial: true })|
+|»»» deleted|body|boolean|false|none|
+|»»» deletedOn|body|string(date-time)¦null|false|none|
+|»»» deletedBy|body|string¦null|false|none|
+|»»» createdOn|body|string(date-time)|false|none|
+|»»» modifiedOn|body|string(date-time)|false|none|
+|»»» createdBy|body|string|false|none|
+|»»» modifiedBy|body|string|false|none|
+|»»» id|body|string|false|none|
+|»»» name|body|string|false|none|
+|»»» path|body|string|false|none|
+|»»» thumbnail|body|string|false|none|
+|»»» mime|body|string|false|none|
+|»»» extId|body|string|false|none|
+|»»» extMetadata|body|object|false|none|
+|»»» messageId|body|string|false|none|
+|» meta|body|[[MetaPartial](#schemametapartial)]|false|[(tsType: Partial , schemaOptions: { partial: true })]|
+|»» MetaPartial|body|[MetaPartial](#schemametapartial)|false|(tsType: Partial , schemaOptions: { partial: true })|
+|»»» deleted|body|boolean|false|none|
+|»»» deletedOn|body|string(date-time)¦null|false|none|
+|»»» deletedBy|body|string¦null|false|none|
+|»»» createdOn|body|string(date-time)|false|none|
+|»»» modifiedOn|body|string(date-time)|false|none|
+|»»» createdBy|body|string|false|none|
+|»»» modifiedBy|body|string|false|none|
+|»»» id|body|string|false|none|
+|»»» key|body|string|false|none|
+|»»» value|body|string|false|none|
+|»»» extId|body|string|false|none|
+|»»» extMetadata|body|object|false|none|
+|»»» messageId|body|string|false|none|
+|» body|body|string|true|none|
+|» subject|body|string|false|none|
+|» status|body|string|true|none|
+|» extId|body|string|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Message is replied back to the sender|None|
+
+
+This operation does not require authentication
+
+
+# Schemas
+
+idResponse
+
+
+
+
+
+
+```json
+false
+
+```
+
+### Properties
+
+*None*
+
+composeMailBody
+
+
+
+
+
+
+```json
+{
+ "threadId": "string",
+ "groups": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string"
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "meta": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ],
+ "body": "string",
+ "subject": "string",
+ "status": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|threadId|string|false|none|none|
+|groups|[[GroupPartial](#schemagrouppartial)]|true|none|[(tsType: Partial, schemaOptions: { partial: true })]|
+|attachments|[[AttachmentPartial](#schemaattachmentpartial)]|false|none|[(tsType: Partial, schemaOptions: { partial: true })]|
+|meta|[[MetaPartial](#schemametapartial)]|false|none|[(tsType: Partial , schemaOptions: { partial: true })]|
+|body|string|true|none|none|
+|subject|string|false|none|none|
+|status|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+Attachment
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+}
+
+```
+
+Attachment
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|name|string|true|none|none|
+|path|string|true|none|none|
+|thumbnail|string|true|none|none|
+|mime|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|messageId|string|false|none|none|
+
+AttachmentPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+}
+
+```
+
+AttachmentPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|name|string|false|none|none|
+|path|string|false|none|none|
+|thumbnail|string|false|none|none|
+|mime|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|messageId|string|false|none|none|
+
+IdArraysPartial
+
+
+
+
+
+
+```json
+{
+ "messageIds": [
+ "string"
+ ],
+ "threadIds": [
+ "string"
+ ]
+}
+
+```
+
+IdArraysPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|messageIds|[string]|false|none|none|
+|threadIds|[string]|false|none|none|
+
+IdArrays
+
+
+
+
+
+
+```json
+{
+ "messageIds": [
+ "string"
+ ],
+ "threadIds": [
+ "string"
+ ]
+}
+
+```
+
+IdArrays
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|messageIds|[string]|false|none|none|
+|threadIds|[string]|false|none|none|
+
+
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+}
+
+```
+
+MetaPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|key|string|false|none|none|
+|value|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|messageId|string|false|none|none|
+
+GroupPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string"
+}
+
+```
+
+GroupPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|party|string|false|none|none|
+|type|string|false|none|none|
+|isImportant|boolean|false|none|none|
+|storage|string|false|none|none|
+|visibility|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|messageId|string|false|none|none|
+|threadId|string|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|type|from|
+|type|to|
+|type|cc|
+|type|bcc|
+|storage|draft|
+|storage|send|
+|storage|inbox|
+|storage|trash|
+|visibility|read|
+|visibility|new|
+|visibility|unread|
+|visibility|important|
+|visibility|not-important|
+
+Attachment add response schema
+
+
+
+
+
+
+```json
+{
+ "items": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string"
+ }
+ ]
+}
+
+```
+
+Attachment add response schema
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|items|[[Attachment](#schemaattachment)]|false|none|none|
+
+AttachmentExcluding_deleted_WithRelations
+
+
+
+
+
+
+```json
+{
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {}
+ ]
+ }
+ }
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {}
+ }
+ ]
+ }
+ }
+}
+
+```
+
+AttachmentExcluding_deleted_WithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|name|string|true|none|none|
+|path|string|true|none|none|
+|thumbnail|string|true|none|none|
+|mime|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|messageId|string|false|none|none|
+|message|[MessageExcluding_deleted_WithRelations](#schemamessageexcluding_deleted_withrelations)|false|none|(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })|
+
+ThreadExcluding_deleted_WithRelations
+
+
+
+
+
+
+```json
+{
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [],
+ "group": [
+ {}
+ ]
+ }
+ }
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {}
+ }
+ ]
+ }
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {}
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": []
+ }
+ },
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {}
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {}
+ }
+ ],
+ "group": []
+ }
+ }
+ ]
+}
+
+```
+
+ThreadExcluding_deleted_WithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|subject|string|true|none|none|
+|messageCounts|number|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|message|[[MessageExcluding_deleted_WithRelations](#schemamessageexcluding_deleted_withrelations)]|false|none|[(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })]|
+|group|[[GroupExcluding_deleted_WithRelations](#schemagroupexcluding_deleted_withrelations)]|false|none|[(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })]|
+
+GroupExcluding_deleted_WithRelations
+
+
+
+
+
+
+```json
+{
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {}
+ ]
+ }
+ }
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {}
+ }
+ ]
+ }
+ },
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {}
+ }
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {}
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {}
+ },
+ "thread": {}
+ }
+ ]
+ }
+}
+
+```
+
+GroupExcluding_deleted_WithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|party|string|true|none|none|
+|type|string|true|none|none|
+|isImportant|boolean|false|none|none|
+|storage|string|false|none|none|
+|visibility|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|messageId|string|false|none|none|
+|threadId|string|false|none|none|
+|message|[MessageExcluding_deleted_WithRelations](#schemamessageexcluding_deleted_withrelations)|false|none|(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })|
+|thread|[ThreadExcluding_deleted_WithRelations](#schemathreadexcluding_deleted_withrelations)|false|none|(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|type|from|
+|type|to|
+|type|cc|
+|type|bcc|
+|storage|draft|
+|storage|send|
+|storage|inbox|
+|storage|trash|
+|visibility|read|
+|visibility|new|
+|visibility|unread|
+|visibility|important|
+|visibility|not-important|
+
+
+
+
+
+
+
+
+```json
+{
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {}
+ ]
+ }
+ }
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {}
+ }
+ ]
+ }
+ }
+}
+
+```
+
+MetaExcluding_deleted_WithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|key|string|true|none|none|
+|value|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|messageId|string|false|none|none|
+|message|[MessageExcluding_deleted_WithRelations](#schemamessageexcluding_deleted_withrelations)|false|none|(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })|
+
+MessageExcluding_deleted_WithRelations
+
+
+
+
+
+
+```json
+{
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {}
+ ]
+ }
+ }
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {}
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {}
+ ]
+ }
+ },
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {}
+ }
+ ],
+ "group": [
+ {}
+ ]
+ }
+ }
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {}
+ ]
+ }
+ }
+ ],
+ "meta": [],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {}
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {}
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "thread": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {},
+ "message": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {},
+ "thread": {}
+ }
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {}
+ }
+ ],
+ "group": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "party": "string",
+ "type": "from",
+ "isImportant": true,
+ "storage": "inbox",
+ "visibility": "new",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "threadId": "string",
+ "message": {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string",
+ "attachment": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "name": "string",
+ "path": "string",
+ "thumbnail": "string",
+ "mime": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "group": [
+ {}
+ ],
+ "meta": [
+ {
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "key": "string",
+ "value": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "messageId": "string",
+ "message": {}
+ }
+ ],
+ "thread": {}
+ },
+ "thread": {}
+ }
+ ]
+ }
+}
+
+```
+
+MessageExcluding_deleted_WithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|sender|string|true|none|none|
+|subject|string|true|none|none|
+|body|string|true|none|none|
+|status|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|threadId|string|false|none|none|
+|attachment|[[AttachmentExcluding_deleted_WithRelations](#schemaattachmentexcluding_deleted_withrelations)]|false|none|[(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })]|
+|group|[[GroupExcluding_deleted_WithRelations](#schemagroupexcluding_deleted_withrelations)]|false|none|[(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })]|
+|meta|[[MetaExcluding_deleted_WithRelations](#schemametaexcluding_deleted_withrelations)]|false|none|[(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })]|
+|thread|[ThreadExcluding_deleted_WithRelations](#schemathreadexcluding_deleted_withrelations)|false|none|(tsType: Omit, schemaOptions: { exclude: [ 'deleted' ], includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|draft|
+|status|send|
+
+Message
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "sender": "string",
+ "subject": "string",
+ "body": "string",
+ "status": "draft",
+ "extId": "string",
+ "extMetadata": {},
+ "threadId": "string"
+}
+
+```
+
+Message
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|sender|string|true|none|none|
+|subject|string|true|none|none|
+|body|string|true|none|none|
+|status|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|threadId|string|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|draft|
+|status|send|
+
+Thread
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "subject": "string",
+ "messageCounts": 0,
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+Thread
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|subject|string|true|none|none|
+|messageCounts|number|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
diff --git a/services/in-mail-service/package.json b/services/in-mail-service/package.json
index 63a7ea80cd..b9f0d79c43 100644
--- a/services/in-mail-service/package.json
+++ b/services/in-mail-service/package.json
@@ -12,7 +12,7 @@
"node": ">=10"
},
"scripts": {
- "build": "npm run clean && lb-tsc",
+ "build": "npm run clean && lb-tsc && npm run openapi-spec && npm run apidocs",
"build:watch": "lb-tsc --watch",
"lint": "npm run prettier:check && npm run eslint",
"lint:fix": "npm run eslint:fix && npm run prettier:fix",
@@ -21,6 +21,8 @@
"prettier:fix": "npm run prettier:cli -- --write",
"eslint": "lb-eslint --report-unused-disable-directives .",
"eslint:fix": "npm run eslint -- --fix",
+ "openapi-spec": "node ./dist/openapi-spec",
+ "apidocs": "./node_modules/.bin/widdershins --search false --language_tabs 'javascript:JavaScript:request' 'javascript--nodejs:Node.JS' --summary openapi.json -o openapi.md",
"pretest": "npm run clean && npm run build",
"test": "lb-mocha --allow-console-logs \"dist/__tests__\"",
"posttest": "npm run lint",
@@ -85,7 +87,8 @@
"eslint-plugin-eslint-plugin": "^3.0.2",
"eslint-plugin-mocha": "^8.1.0",
"source-map-support": "^0.5.19",
- "typescript": "~4.2.4"
+ "typescript": "~4.2.4",
+ "widdershins": "^4.0.1"
},
"publishConfig": {
"registry": "https://registry.npmjs.org/",
diff --git a/services/in-mail-service/src/application.ts b/services/in-mail-service/src/application.ts
new file mode 100644
index 0000000000..0e47cfeb33
--- /dev/null
+++ b/services/in-mail-service/src/application.ts
@@ -0,0 +1,27 @@
+import {BootMixin} from '@loopback/boot';
+import {ApplicationConfig} from '@loopback/core';
+import {RepositoryMixin} from '@loopback/repository';
+import {RestApplication} from '@loopback/rest';
+import * as path from 'path';
+import {InMailServiceComponent} from './component';
+
+export {ApplicationConfig};
+
+export class InMailServiceApplication extends BootMixin(
+ RepositoryMixin(RestApplication),
+) {
+ constructor(options: ApplicationConfig = {}) {
+ super(options);
+ this.static('/', path.join(__dirname, '../public'));
+ this.component(InMailServiceComponent);
+
+ this.projectRoot = __dirname;
+ this.bootOptions = {
+ controllers: {
+ dirs: ['controllers'],
+ extensions: ['.controller.js'],
+ nested: true,
+ },
+ };
+ }
+}
diff --git a/services/in-mail-service/src/openapi-spec.ts b/services/in-mail-service/src/openapi-spec.ts
new file mode 100644
index 0000000000..3cbd492aa2
--- /dev/null
+++ b/services/in-mail-service/src/openapi-spec.ts
@@ -0,0 +1,25 @@
+import {ApplicationConfig} from '@loopback/core';
+import {InMailServiceApplication} from './application';
+
+/**
+ * Export the OpenAPI spec from the application
+ */
+const PORT = 3000;
+const FILEARGVI = 2;
+async function exportOpenApiSpec(): Promise {
+ const config: ApplicationConfig = {
+ rest: {
+ port: +(process.env.PORT ?? PORT),
+ host: process.env.HOST ?? 'localhost',
+ },
+ };
+ const outFile = process.argv[FILEARGVI] ?? 'openapi.json';
+ const app = new InMailServiceApplication(config);
+ await app.boot();
+ await app.exportOpenApiSpec(outFile);
+}
+
+exportOpenApiSpec().catch(err => {
+ console.error('Fail to export OpenAPI spec from the application.', err); //NOSONAR
+ process.exit(1);
+});
diff --git a/services/notification-service/README.md b/services/notification-service/README.md
index 960ec136e7..703e76cd60 100644
--- a/services/notification-service/README.md
+++ b/services/notification-service/README.md
@@ -149,4 +149,6 @@ Authorization: Bearer where is a JWT token signed using JWT issu
400: Bad Request (Error message varies w.r.t API)
201: No content: Empty Response
-#### API Details
\ No newline at end of file
+## API's Details
+
+Visit the [OpenAPI spec docs](./openapi.md)
\ No newline at end of file
diff --git a/services/notification-service/openapi.json b/services/notification-service/openapi.json
new file mode 100644
index 0000000000..e29b8e0384
--- /dev/null
+++ b/services/notification-service/openapi.json
@@ -0,0 +1,1540 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Notification Service",
+ "version": "1.0.0",
+ "description": "services",
+ "contact": {
+ "name": "Sourcefuse"
+ }
+ },
+ "paths": {
+ "/notification-users/bulk": {
+ "post": {
+ "x-controller-name": "NotificationUserController",
+ "x-operation-name": "createAll",
+ "tags": [
+ "NotificationUserController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Notification User model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationUser"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/NewNotificationUser"
+ }
+ }
+ }
+ }
+ },
+ "operationId": "NotificationUserController.createAll"
+ }
+ },
+ "/notification-users/count": {
+ "get": {
+ "x-controller-name": "NotificationUserController",
+ "x-operation-name": "count",
+ "tags": [
+ "NotificationUserController"
+ ],
+ "responses": {
+ "200": {
+ "description": "NotificationUser model count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "notification_users.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "NotificationUserController.count"
+ }
+ },
+ "/notification-users/hard": {
+ "delete": {
+ "x-controller-name": "NotificationUserController",
+ "x-operation-name": "deleteAllHard",
+ "tags": [
+ "NotificationUserController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Notification DELETE success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "notification_users.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "NotificationUserController.deleteAllHard"
+ }
+ },
+ "/notification-users/{id}/notification": {
+ "get": {
+ "x-controller-name": "NotificationUserNotificationController",
+ "x-operation-name": "getNotification",
+ "tags": [
+ "NotificationUserNotificationController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Notification belonging to NotificationUser",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Notification"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "NotificationUserNotificationController.getNotification"
+ }
+ },
+ "/notification-users/{id}": {
+ "put": {
+ "x-controller-name": "NotificationUserController",
+ "x-operation-name": "replaceById",
+ "tags": [
+ "NotificationUserController"
+ ],
+ "responses": {
+ "204": {
+ "description": "NotificationUser PUT success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationUser"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "NotificationUserController.replaceById"
+ },
+ "patch": {
+ "x-controller-name": "NotificationUserController",
+ "x-operation-name": "updateById",
+ "tags": [
+ "NotificationUserController"
+ ],
+ "responses": {
+ "204": {
+ "description": "NotificationUser PATCH success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationUserPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "NotificationUserController.updateById"
+ },
+ "get": {
+ "x-controller-name": "NotificationUserController",
+ "x-operation-name": "findById",
+ "tags": [
+ "NotificationUserController"
+ ],
+ "responses": {
+ "200": {
+ "description": "NotificationUser instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationUser"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "NotificationUserController.findById"
+ },
+ "delete": {
+ "x-controller-name": "NotificationUserController",
+ "x-operation-name": "deleteById",
+ "tags": [
+ "NotificationUserController"
+ ],
+ "responses": {
+ "204": {
+ "description": "NotificationUser DELETE success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "NotificationUserController.deleteById"
+ }
+ },
+ "/notification-users": {
+ "post": {
+ "x-controller-name": "NotificationUserController",
+ "x-operation-name": "create",
+ "tags": [
+ "NotificationUserController"
+ ],
+ "responses": {
+ "200": {
+ "description": "NotificationUser model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationUser"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewNotificationUser"
+ }
+ }
+ }
+ },
+ "operationId": "NotificationUserController.create"
+ },
+ "patch": {
+ "x-controller-name": "NotificationUserController",
+ "x-operation-name": "updateAll",
+ "tags": [
+ "NotificationUserController"
+ ],
+ "responses": {
+ "200": {
+ "description": "NotificationUser PATCH success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "notification_users.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationUserPartial"
+ }
+ }
+ }
+ },
+ "operationId": "NotificationUserController.updateAll"
+ },
+ "get": {
+ "x-controller-name": "NotificationUserController",
+ "x-operation-name": "find",
+ "tags": [
+ "NotificationUserController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of NotificationUser model instances",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/NotificationUser"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/notification_users.Filter"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "NotificationUserController.find"
+ },
+ "delete": {
+ "x-controller-name": "NotificationUserController",
+ "x-operation-name": "deleteAll",
+ "tags": [
+ "NotificationUserController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Notification DELETE success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "notification_users.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "NotificationUserController.deleteAll"
+ }
+ },
+ "/notifications/access/{id}": {
+ "patch": {
+ "x-controller-name": "PubnubNotificationController",
+ "x-operation-name": "grantAccess",
+ "tags": [
+ "PubnubNotificationController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Access response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AccessResponseDto"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "Authorization",
+ "in": "header",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "pubnubToken",
+ "in": "header",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationAccess"
+ }
+ }
+ }
+ },
+ "operationId": "PubnubNotificationController.grantAccess"
+ },
+ "delete": {
+ "x-controller-name": "PubnubNotificationController",
+ "x-operation-name": "revokeAccess",
+ "tags": [
+ "PubnubNotificationController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Object with success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "PubnubNotificationController.revokeAccess"
+ }
+ },
+ "/notifications/bulk": {
+ "post": {
+ "x-controller-name": "NotificationController",
+ "x-operation-name": "createBulkNotificaitions",
+ "tags": [
+ "NotificationController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Notifications",
+ "content": {
+ "application/json": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Notification",
+ "definitions": {
+ "Notification": {
+ "$ref": "#/components/schemas/Notification"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/NotificationExcluding_id_"
+ }
+ }
+ }
+ }
+ },
+ "operationId": "NotificationController.createBulkNotificaitions"
+ }
+ },
+ "/notifications/count": {
+ "get": {
+ "x-controller-name": "NotificationController",
+ "x-operation-name": "count",
+ "tags": [
+ "NotificationController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Notification model count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "notifications.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "NotificationController.count"
+ }
+ },
+ "/notifications/{id}/notification-users": {
+ "post": {
+ "x-controller-name": "NotificationNotificationUserController",
+ "x-operation-name": "create",
+ "tags": [
+ "NotificationNotificationUserController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Notification model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationUser"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewNotificationUserInNotification"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "NotificationNotificationUserController.create"
+ },
+ "patch": {
+ "x-controller-name": "NotificationNotificationUserController",
+ "x-operation-name": "patch",
+ "tags": [
+ "NotificationNotificationUserController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Notification.NotificationUser PATCH success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "notification_users.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationUserPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "NotificationNotificationUserController.patch"
+ },
+ "get": {
+ "x-controller-name": "NotificationNotificationUserController",
+ "x-operation-name": "find",
+ "tags": [
+ "NotificationNotificationUserController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Notification has many NotificationUser",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/NotificationUser"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "NotificationNotificationUserController.find"
+ },
+ "delete": {
+ "x-controller-name": "NotificationNotificationUserController",
+ "x-operation-name": "delete",
+ "tags": [
+ "NotificationNotificationUserController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Notification.NotificationUser DELETE success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "notification_users.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "NotificationNotificationUserController.delete"
+ }
+ },
+ "/notifications/{id}": {
+ "get": {
+ "x-controller-name": "NotificationController",
+ "x-operation-name": "findById",
+ "tags": [
+ "NotificationController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Notification model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Notification"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "NotificationController.findById"
+ }
+ },
+ "/notifications": {
+ "post": {
+ "x-controller-name": "NotificationController",
+ "x-operation-name": "create",
+ "tags": [
+ "NotificationController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Notification model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Notification"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationExcluding_id_"
+ }
+ }
+ }
+ },
+ "operationId": "NotificationController.create"
+ },
+ "get": {
+ "x-controller-name": "NotificationController",
+ "x-operation-name": "find",
+ "tags": [
+ "NotificationController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Notification model instances",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Notification"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/notifications.Filter"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "NotificationController.find"
+ },
+ "delete": {
+ "x-controller-name": "NotificationController",
+ "x-operation-name": "deleteAll",
+ "tags": [
+ "NotificationController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Notification DELETE success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "notifications.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "NotificationController.deleteAll"
+ }
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "HTTPBearer": {
+ "type": "http",
+ "scheme": "bearer",
+ "bearerFormat": "JWT"
+ }
+ },
+ "schemas": {
+ "Notification": {
+ "title": "Notification",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "subject": {
+ "type": "string",
+ "nullable": true
+ },
+ "body": {
+ "type": "string"
+ },
+ "receiver": {
+ "type": "object"
+ },
+ "type": {
+ "type": "number"
+ },
+ "sentDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "options": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "body",
+ "receiver",
+ "type"
+ ],
+ "additionalProperties": false
+ },
+ "NotificationExcluding_id_": {
+ "title": "NotificationExcluding_id_",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { exclude: [ 'id' ] })",
+ "properties": {
+ "subject": {
+ "type": "string",
+ "nullable": true
+ },
+ "body": {
+ "type": "string"
+ },
+ "receiver": {
+ "type": "object"
+ },
+ "type": {
+ "type": "number"
+ },
+ "sentDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "options": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "body",
+ "receiver",
+ "type"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "NotificationUser": {
+ "title": "NotificationUser",
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "id": {
+ "type": "string"
+ },
+ "notificationId": {
+ "type": "string"
+ },
+ "userId": {
+ "type": "string"
+ },
+ "isRead": {
+ "type": "boolean"
+ },
+ "actionMeta": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "notificationId",
+ "userId"
+ ],
+ "additionalProperties": true
+ },
+ "NewNotificationUser": {
+ "title": "NewNotificationUser",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { title: 'NewNotificationUser', exclude: [ 'id' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "notificationId": {
+ "type": "string"
+ },
+ "userId": {
+ "type": "string"
+ },
+ "isRead": {
+ "type": "boolean"
+ },
+ "actionMeta": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "notificationId",
+ "userId"
+ ],
+ "additionalProperties": true,
+ "x-typescript-type": "Omit"
+ },
+ "NotificationUserPartial": {
+ "title": "NotificationUserPartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "id": {
+ "type": "string"
+ },
+ "notificationId": {
+ "type": "string"
+ },
+ "userId": {
+ "type": "string"
+ },
+ "isRead": {
+ "type": "boolean"
+ },
+ "actionMeta": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": true,
+ "x-typescript-type": "Partial"
+ },
+ "AccessResponseDto": {
+ "title": "AccessResponseDto",
+ "type": "object",
+ "properties": {
+ "ttl": {
+ "type": "number"
+ },
+ "cipherKey": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "NotificationAccess": {
+ "title": "NotificationAccess",
+ "type": "object",
+ "properties": {
+ "receiver": {
+ "type": "object",
+ "description": "this will contain the list of reciever to give access"
+ },
+ "type": {
+ "type": "number"
+ },
+ "options": {
+ "type": "object",
+ "description": "this will contain the ttl property for now"
+ }
+ },
+ "required": [
+ "receiver",
+ "type"
+ ],
+ "additionalProperties": false
+ },
+ "NewNotificationUserInNotification": {
+ "title": "NewNotificationUserInNotification",
+ "type": "object",
+ "description": "(tsType: @loopback/repository-json-schema#Optional, 'notificationId'>, schemaOptions: { title: 'NewNotificationUserInNotification', exclude: [ 'id' ], optional: [ 'notificationId' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "notificationId": {
+ "type": "string"
+ },
+ "userId": {
+ "type": "string"
+ },
+ "isRead": {
+ "type": "boolean"
+ },
+ "actionMeta": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "userId"
+ ],
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository-json-schema#Optional, 'notificationId'>"
+ },
+ "loopback.Count": {
+ "type": "object",
+ "title": "loopback.Count",
+ "x-typescript-type": "@loopback/repository#Count",
+ "properties": {
+ "count": {
+ "type": "number"
+ }
+ }
+ },
+ "notification_users.ScopeFilter": {
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true
+ }
+ ]
+ },
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ }
+ }
+ },
+ "additionalProperties": false,
+ "title": "notification_users.ScopeFilter"
+ },
+ "notification_users.IncludeFilter.Items": {
+ "title": "notification_users.IncludeFilter.Items",
+ "type": "object",
+ "properties": {
+ "relation": {
+ "type": "string"
+ },
+ "scope": {
+ "$ref": "#/components/schemas/notification_users.ScopeFilter"
+ }
+ }
+ },
+ "notification_users.Filter": {
+ "type": "object",
+ "title": "notification_users.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "title": "notification_users.WhereFilter",
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "notificationId": {
+ "type": "boolean"
+ },
+ "userId": {
+ "type": "boolean"
+ },
+ "isRead": {
+ "type": "boolean"
+ },
+ "actionMeta": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": true
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "notification_users.Fields"
+ },
+ "include": {
+ "title": "notification_users.IncludeFilter",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/notification_users.IncludeFilter.Items"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "notifications.ScopeFilter": {
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true
+ }
+ ]
+ },
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ }
+ }
+ },
+ "additionalProperties": false,
+ "title": "notifications.ScopeFilter"
+ },
+ "notifications.IncludeFilter.Items": {
+ "title": "notifications.IncludeFilter.Items",
+ "type": "object",
+ "properties": {
+ "relation": {
+ "type": "string"
+ },
+ "scope": {
+ "$ref": "#/components/schemas/notifications.ScopeFilter"
+ }
+ }
+ },
+ "notifications.Filter": {
+ "type": "object",
+ "title": "notifications.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "title": "notifications.WhereFilter",
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "boolean"
+ },
+ "subject": {
+ "type": "boolean"
+ },
+ "body": {
+ "type": "boolean"
+ },
+ "receiver": {
+ "type": "boolean"
+ },
+ "type": {
+ "type": "boolean"
+ },
+ "sentDate": {
+ "type": "boolean"
+ },
+ "options": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "id",
+ "subject",
+ "body",
+ "receiver",
+ "type",
+ "sentDate",
+ "options"
+ ],
+ "example": "id"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "notifications.Fields"
+ },
+ "include": {
+ "title": "notifications.IncludeFilter",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/notifications.IncludeFilter.Items"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ }
+ }
+ },
+ "servers": [
+ {
+ "url": "/"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/services/notification-service/openapi.md b/services/notification-service/openapi.md
new file mode 100644
index 0000000000..86043be1c2
--- /dev/null
+++ b/services/notification-service/openapi.md
@@ -0,0 +1,2421 @@
+---
+title: Notification Service v1.0.0
+language_tabs:
+ - "'javascript": JavaScript
+ - "'javascript--nodejs": Node.JS'
+language_clients:
+ - "'javascript": request'
+ - "'javascript--nodejs": ""
+toc_footers: []
+includes: []
+search: false
+highlight_theme: darkula
+headingLevel: 2
+
+---
+
+
+
+Notification Service v1.0.0
+
+> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
+
+services
+
+Base URLs:
+
+* /
+
+# Authentication
+
+- HTTP Authentication, scheme: bearer
+
+NotificationUserController
+
+## NotificationUserController.createAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+ }
+];
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/notification-users/bulk',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /notification-users/bulk`
+
+> Body parameter
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+ }
+]
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewNotificationUser](#schemanewnotificationuser)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Notification User model instance|[NotificationUser](#schemanotificationuser)|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/notification-users/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /notification-users/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|NotificationUser model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.deleteAllHard
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/notification-users/hard',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /notification-users/hard`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Notification DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/notification-users/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /notification-users/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[NotificationUser](#schemanotificationuser)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|NotificationUser PUT success|None|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/notification-users/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /notification-users/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[NotificationUserPartial](#schemanotificationuserpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|NotificationUser PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/notification-users/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /notification-users/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|NotificationUser instance|[NotificationUser](#schemanotificationuser)|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/notification-users/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /notification-users/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|NotificationUser DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/notification-users',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /notification-users`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewNotificationUser](#schemanewnotificationuser)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|NotificationUser model instance|[NotificationUser](#schemanotificationuser)|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/notification-users',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /notification-users`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[NotificationUserPartial](#schemanotificationuserpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|NotificationUser PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/notification-users',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /notification-users`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[notification_users.Filter](#schemanotification_users.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of NotificationUser model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[NotificationUser](#schemanotificationuser)]|false|none|none|
+|» NotificationUser|[NotificationUser](#schemanotificationuser)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» id|string|false|none|none|
+|»» notificationId|string|true|none|none|
+|»» userId|string|true|none|none|
+|»» isRead|boolean|false|none|none|
+|»» actionMeta|object|false|none|none|
+
+
+This operation does not require authentication
+
+
+## NotificationUserController.deleteAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/notification-users',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /notification-users`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Notification DELETE success|None|
+
+
+This operation does not require authentication
+
+
+NotificationUserNotificationController
+
+## NotificationUserNotificationController.getNotification
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/notification-users/{id}/notification',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /notification-users/{id}/notification`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "id": "string",
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Notification belonging to NotificationUser|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[Notification](#schemanotification)]|false|none|none|
+|» Notification|[Notification](#schemanotification)|false|none|none|
+|»» id|string|false|none|none|
+|»» subject|string¦null|false|none|none|
+|»» body|string|true|none|none|
+|»» receiver|object|true|none|none|
+|»» type|number|true|none|none|
+|»» sentDate|string(date-time)|false|none|none|
+|»» options|object|false|none|none|
+
+
+This operation does not require authentication
+
+
+PubnubNotificationController
+
+## PubnubNotificationController.grantAccess
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "receiver": {},
+ "type": 0,
+ "options": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json',
+ 'Authorization':'string',
+ 'pubnubToken':'string'
+};
+
+fetch('/notifications/access/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /notifications/access/{id}`
+
+> Body parameter
+
+```json
+{
+ "receiver": {},
+ "type": 0,
+ "options": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|Authorization|header|string|false|none|
+|pubnubToken|header|string|true|none|
+|body|body|[NotificationAccess](#schemanotificationaccess)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "ttl": 0,
+ "cipherKey": "string"
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Access response|[AccessResponseDto](#schemaaccessresponsedto)|
+
+
+This operation does not require authentication
+
+
+## PubnubNotificationController.revokeAccess
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/notifications/access/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /notifications/access/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Object with success|None|
+
+
+This operation does not require authentication
+
+
+NotificationController
+
+## NotificationController.createBulkNotificaitions
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = [
+ {
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+ }
+];
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/notifications/bulk',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /notifications/bulk`
+
+> Body parameter
+
+```json
+[
+ {
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+ }
+]
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NotificationExcluding_id_](#schemanotificationexcluding_id_)|false|none|
+
+> Example responses
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Notifications|None|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+## NotificationController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/notifications/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /notifications/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Notification model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## NotificationController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/notifications/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /notifications/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "id": "string",
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Notification model instance|[Notification](#schemanotification)|
+
+
+This operation does not require authentication
+
+
+## NotificationController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/notifications',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /notifications`
+
+> Body parameter
+
+```json
+{
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NotificationExcluding_id_](#schemanotificationexcluding_id_)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "id": "string",
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Notification model instance|[Notification](#schemanotification)|
+
+
+This operation does not require authentication
+
+
+## NotificationController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/notifications',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /notifications`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[notifications.Filter](#schemanotifications.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "id": "string",
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Notification model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[Notification](#schemanotification)]|false|none|none|
+|» Notification|[Notification](#schemanotification)|false|none|none|
+|»» id|string|false|none|none|
+|»» subject|string¦null|false|none|none|
+|»» body|string|true|none|none|
+|»» receiver|object|true|none|none|
+|»» type|number|true|none|none|
+|»» sentDate|string(date-time)|false|none|none|
+|»» options|object|false|none|none|
+
+
+This operation does not require authentication
+
+
+## NotificationController.deleteAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/notifications',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /notifications`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Notification DELETE success|None|
+
+
+This operation does not require authentication
+
+
+NotificationNotificationUserController
+
+## NotificationNotificationUserController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/notifications/{id}/notification-users',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /notifications/{id}/notification-users`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[NewNotificationUserInNotification](#schemanewnotificationuserinnotification)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Notification model instance|[NotificationUser](#schemanotificationuser)|
+
+
+This operation does not require authentication
+
+
+## NotificationNotificationUserController.patch
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/notifications/{id}/notification-users',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /notifications/{id}/notification-users`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+|body|body|[NotificationUserPartial](#schemanotificationuserpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Notification.NotificationUser PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## NotificationNotificationUserController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/notifications/{id}/notification-users',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /notifications/{id}/notification-users`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Notification has many NotificationUser|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[NotificationUser](#schemanotificationuser)]|false|none|none|
+|» NotificationUser|[NotificationUser](#schemanotificationuser)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» id|string|false|none|none|
+|»» notificationId|string|true|none|none|
+|»» userId|string|true|none|none|
+|»» isRead|boolean|false|none|none|
+|»» actionMeta|object|false|none|none|
+
+
+This operation does not require authentication
+
+
+## NotificationNotificationUserController.delete
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/notifications/{id}/notification-users',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /notifications/{id}/notification-users`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Notification.NotificationUser DELETE success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+# Schemas
+
+Notification
+
+
+
+
+
+
+```json
+{
+ "id": "string",
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+}
+
+```
+
+Notification
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|id|string|false|none|none|
+|subject|string¦null|false|none|none|
+|body|string|true|none|none|
+|receiver|object|true|none|none|
+|type|number|true|none|none|
+|sentDate|string(date-time)|false|none|none|
+|options|object|false|none|none|
+
+NotificationExcluding_id_
+
+
+
+
+
+
+```json
+{
+ "subject": "string",
+ "body": "string",
+ "receiver": {},
+ "type": 0,
+ "sentDate": "2019-08-24T14:15:22Z",
+ "options": {}
+}
+
+```
+
+NotificationExcluding_id_
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|subject|string¦null|false|none|none|
+|body|string|true|none|none|
+|receiver|object|true|none|none|
+|type|number|true|none|none|
+|sentDate|string(date-time)|false|none|none|
+|options|object|false|none|none|
+
+NotificationUser
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+
+```
+
+NotificationUser
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|id|string|false|none|none|
+|notificationId|string|true|none|none|
+|userId|string|true|none|none|
+|isRead|boolean|false|none|none|
+|actionMeta|object|false|none|none|
+
+NewNotificationUser
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+
+```
+
+NewNotificationUser
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|notificationId|string|true|none|none|
+|userId|string|true|none|none|
+|isRead|boolean|false|none|none|
+|actionMeta|object|false|none|none|
+
+NotificationUserPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "id": "string",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+
+```
+
+NotificationUserPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|id|string|false|none|none|
+|notificationId|string|false|none|none|
+|userId|string|false|none|none|
+|isRead|boolean|false|none|none|
+|actionMeta|object|false|none|none|
+
+AccessResponseDto
+
+
+
+
+
+
+```json
+{
+ "ttl": 0,
+ "cipherKey": "string"
+}
+
+```
+
+AccessResponseDto
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|ttl|number|false|none|none|
+|cipherKey|string|false|none|none|
+
+NotificationAccess
+
+
+
+
+
+
+```json
+{
+ "receiver": {},
+ "type": 0,
+ "options": {}
+}
+
+```
+
+NotificationAccess
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|receiver|object|true|none|this will contain the list of reciever to give access|
+|type|number|true|none|none|
+|options|object|false|none|this will contain the ttl property for now|
+
+NewNotificationUserInNotification
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "notificationId": "string",
+ "userId": "string",
+ "isRead": true,
+ "actionMeta": {}
+}
+
+```
+
+NewNotificationUserInNotification
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|notificationId|string|false|none|none|
+|userId|string|true|none|none|
+|isRead|boolean|false|none|none|
+|actionMeta|object|false|none|none|
+
+loopback.Count
+
+
+
+
+
+
+```json
+{
+ "count": 0
+}
+
+```
+
+loopback.Count
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|count|number|false|none|none|
+
+notification_users.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+notification_users.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+notification_users.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+notification_users.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[notification_users.ScopeFilter](#schemanotification_users.scopefilter)|false|none|none|
+
+notification_users.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "id": true,
+ "notificationId": true,
+ "userId": true,
+ "isRead": true,
+ "actionMeta": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+notification_users.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» notificationId|boolean|false|none|none|
+|»» userId|boolean|false|none|none|
+|»» isRead|boolean|false|none|none|
+|»» actionMeta|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[notification_users.IncludeFilter.Items](#schemanotification_users.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+notifications.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+notifications.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+notifications.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+notifications.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[notifications.ScopeFilter](#schemanotifications.scopefilter)|false|none|none|
+
+notifications.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "id": true,
+ "subject": true,
+ "body": true,
+ "receiver": true,
+ "type": true,
+ "sentDate": true,
+ "options": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+notifications.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» id|boolean|false|none|none|
+|»» subject|boolean|false|none|none|
+|»» body|boolean|false|none|none|
+|»» receiver|boolean|false|none|none|
+|»» type|boolean|false|none|none|
+|»» sentDate|boolean|false|none|none|
+|»» options|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[notifications.IncludeFilter.Items](#schemanotifications.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
diff --git a/services/notification-service/package.json b/services/notification-service/package.json
index 6eb89e5d6e..f7d011b678 100644
--- a/services/notification-service/package.json
+++ b/services/notification-service/package.json
@@ -12,7 +12,7 @@
"node": ">=10"
},
"scripts": {
- "build": "npm run clean && lb-tsc",
+ "build": "npm run clean && lb-tsc && npm run openapi-spec && npm run apidocs",
"build:watch": "lb-tsc --watch",
"lint": "npm run prettier:check && npm run eslint",
"lint:fix": "npm run eslint:fix && npm run prettier:fix",
@@ -21,6 +21,8 @@
"prettier:fix": "npm run prettier:cli -- --write",
"eslint": "lb-eslint --report-unused-disable-directives .",
"eslint:fix": "npm run eslint -- --fix",
+ "openapi-spec": "node ./dist/openapi-spec",
+ "apidocs": "./node_modules/.bin/widdershins --search false --language_tabs 'javascript:JavaScript:request' 'javascript--nodejs:Node.JS' --summary openapi.json -o openapi.md",
"pretest": "npm run clean && npm run build",
"test": "echo \"No tests !\"",
"posttest": "npm run lint",
@@ -78,7 +80,8 @@
"db-migrate-pg": "^1.2.2",
"eslint": "^7.25.0",
"source-map-support": "^0.5.19",
- "typescript": "~4.2.4"
+ "typescript": "~4.2.4",
+ "widdershins": "^4.0.1"
},
"publishConfig": {
"registry": "https://registry.npmjs.org/",
diff --git a/services/notification-service/src/application.ts b/services/notification-service/src/application.ts
new file mode 100644
index 0000000000..005cb5ac99
--- /dev/null
+++ b/services/notification-service/src/application.ts
@@ -0,0 +1,27 @@
+import {BootMixin} from '@loopback/boot';
+import {ApplicationConfig} from '@loopback/core';
+import {RepositoryMixin} from '@loopback/repository';
+import {RestApplication} from '@loopback/rest';
+import * as path from 'path';
+import {NotificationServiceComponent} from './component';
+
+export {ApplicationConfig};
+
+export class NotificationServiceApplication extends BootMixin(
+ RepositoryMixin(RestApplication),
+) {
+ constructor(options: ApplicationConfig = {}) {
+ super(options);
+ this.static('/', path.join(__dirname, '../public'));
+ this.component(NotificationServiceComponent);
+
+ this.projectRoot = __dirname;
+ this.bootOptions = {
+ controllers: {
+ dirs: ['controllers'],
+ extensions: ['.controller.js'],
+ nested: true,
+ },
+ };
+ }
+}
diff --git a/services/notification-service/src/openapi-spec.ts b/services/notification-service/src/openapi-spec.ts
new file mode 100644
index 0000000000..3305204b7f
--- /dev/null
+++ b/services/notification-service/src/openapi-spec.ts
@@ -0,0 +1,25 @@
+import {ApplicationConfig} from '@loopback/core';
+import {NotificationServiceApplication} from './application';
+
+/**
+ * Export the OpenAPI spec from the application
+ */
+const PORT = 3000;
+const FILEARGVI = 2;
+async function exportOpenApiSpec(): Promise {
+ const config: ApplicationConfig = {
+ rest: {
+ port: +(process.env.PORT ?? PORT),
+ host: process.env.HOST ?? 'localhost',
+ },
+ };
+ const outFile = process.argv[FILEARGVI] ?? 'openapi.json';
+ const app = new NotificationServiceApplication(config);
+ await app.boot();
+ await app.exportOpenApiSpec(outFile);
+}
+
+exportOpenApiSpec().catch(err => {
+ console.error('Fail to export OpenAPI spec from the application.', err); //NOSONAR
+ process.exit(1);
+});
diff --git a/services/scheduler-service/README.md b/services/scheduler-service/README.md
index 2d0f4f15b7..8f627443ab 100644
--- a/services/scheduler-service/README.md
+++ b/services/scheduler-service/README.md
@@ -259,6 +259,10 @@ They can be retrieved via list and get methods. Note that if a setting has its d
* Event settings from the past could not be created or updated.
+## API's Details
+
+Visit the [OpenAPI spec docs](./openapi.md)
+
## Feedback
If you've noticed a bug or have a question or have a feature request, [search the issue tracker](https://github.com/sourcefuse/loopback4-notifications/issues) to see if someone else in the community has already created a ticket.
If not, go ahead and [make one](https://github.com/sourcefuse/loopback4-notifications/issues/new/choose)!
diff --git a/services/scheduler-service/openapi.json b/services/scheduler-service/openapi.json
new file mode 100644
index 0000000000..129782ca30
--- /dev/null
+++ b/services/scheduler-service/openapi.json
@@ -0,0 +1,9110 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Scheduler Service",
+ "version": "1.0.0",
+ "description": "services",
+ "contact": {
+ "name": "Sourcefuse"
+ }
+ },
+ "paths": {
+ "/attachments/count": {
+ "get": {
+ "x-controller-name": "AttachmentController",
+ "x-operation-name": "count",
+ "tags": [
+ "AttachmentController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Attachment model count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "attachments.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "AttachmentController.count"
+ }
+ },
+ "/attachments/{id}": {
+ "put": {
+ "x-controller-name": "AttachmentController",
+ "x-operation-name": "replaceById",
+ "tags": [
+ "AttachmentController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Attachment PUT success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Attachment"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "AttachmentController.replaceById"
+ },
+ "patch": {
+ "x-controller-name": "AttachmentController",
+ "x-operation-name": "updateById",
+ "tags": [
+ "AttachmentController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Attachment PATCH success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AttachmentPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "AttachmentController.updateById"
+ },
+ "get": {
+ "x-controller-name": "AttachmentController",
+ "x-operation-name": "findById",
+ "tags": [
+ "AttachmentController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Attachment model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AttachmentWithRelations"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/attachments.Filter"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "AttachmentController.findById"
+ },
+ "delete": {
+ "x-controller-name": "AttachmentController",
+ "x-operation-name": "deleteById",
+ "tags": [
+ "AttachmentController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Attachment DELETE success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "AttachmentController.deleteById"
+ }
+ },
+ "/attachments": {
+ "post": {
+ "x-controller-name": "AttachmentController",
+ "x-operation-name": "create",
+ "tags": [
+ "AttachmentController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Attachment model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Attachment"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewAttachment"
+ }
+ }
+ }
+ },
+ "operationId": "AttachmentController.create"
+ },
+ "patch": {
+ "x-controller-name": "AttachmentController",
+ "x-operation-name": "updateAll",
+ "tags": [
+ "AttachmentController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Attachment PATCH success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "attachments.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AttachmentPartial"
+ }
+ }
+ }
+ },
+ "operationId": "AttachmentController.updateAll"
+ },
+ "get": {
+ "x-controller-name": "AttachmentController",
+ "x-operation-name": "find",
+ "tags": [
+ "AttachmentController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Attachment model instances",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AttachmentWithRelations"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/attachments.Filter1"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "AttachmentController.find"
+ }
+ },
+ "/attendees/count": {
+ "get": {
+ "x-controller-name": "AttendeeController",
+ "x-operation-name": "count",
+ "tags": [
+ "AttendeeController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Attendee model count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "attendees.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "AttendeeController.count"
+ }
+ },
+ "/attendees/{id}": {
+ "put": {
+ "x-controller-name": "AttendeeController",
+ "x-operation-name": "replaceById",
+ "tags": [
+ "AttendeeController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Attendee PUT success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Attendee"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "AttendeeController.replaceById"
+ },
+ "patch": {
+ "x-controller-name": "AttendeeController",
+ "x-operation-name": "updateById",
+ "tags": [
+ "AttendeeController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Attendee PATCH success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AttendeePartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "AttendeeController.updateById"
+ },
+ "get": {
+ "x-controller-name": "AttendeeController",
+ "x-operation-name": "findById",
+ "tags": [
+ "AttendeeController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Attendee model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AttendeeWithRelations"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/attendees.Filter"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "AttendeeController.findById"
+ },
+ "delete": {
+ "x-controller-name": "AttendeeController",
+ "x-operation-name": "deleteById",
+ "tags": [
+ "AttendeeController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Attendee DELETE success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "AttendeeController.deleteById"
+ }
+ },
+ "/attendees": {
+ "post": {
+ "x-controller-name": "AttendeeController",
+ "x-operation-name": "create",
+ "tags": [
+ "AttendeeController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Attendee model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Attendee"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewAttendee"
+ }
+ }
+ }
+ },
+ "operationId": "AttendeeController.create"
+ },
+ "patch": {
+ "x-controller-name": "AttendeeController",
+ "x-operation-name": "updateAll",
+ "tags": [
+ "AttendeeController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Attendee PATCH success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "attendees.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AttendeePartial"
+ }
+ }
+ }
+ },
+ "operationId": "AttendeeController.updateAll"
+ },
+ "get": {
+ "x-controller-name": "AttendeeController",
+ "x-operation-name": "find",
+ "tags": [
+ "AttendeeController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Attendee model instances",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AttendeeWithRelations"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/attendees.Filter1"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "AttendeeController.find"
+ }
+ },
+ "/calendars/calendarSubscription": {
+ "post": {
+ "x-controller-name": "CalendarController",
+ "x-operation-name": "createWithSubscription",
+ "tags": [
+ "CalendarController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Calendar model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CalendarDTO"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewCalendar"
+ }
+ }
+ }
+ },
+ "operationId": "CalendarController.createWithSubscription"
+ }
+ },
+ "/calendars/count": {
+ "get": {
+ "x-controller-name": "CalendarController",
+ "x-operation-name": "count",
+ "tags": [
+ "CalendarController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Calendar model count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "calendars.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "CalendarController.count"
+ }
+ },
+ "/calendars/subscriptions/me": {
+ "get": {
+ "x-controller-name": "SubscriptionController",
+ "x-operation-name": "findMe",
+ "tags": [
+ "SubscriptionController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Subscription model instances",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SubscriptionWithRelations"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/subscriptions.Filter"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "SubscriptionController.findMe"
+ }
+ },
+ "/calendars/{id}/events": {
+ "post": {
+ "x-controller-name": "CalendarEventController",
+ "x-operation-name": "create",
+ "tags": [
+ "CalendarEventController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Calendar model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Event"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewEventInCalendar"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "CalendarEventController.create"
+ },
+ "patch": {
+ "x-controller-name": "CalendarEventController",
+ "x-operation-name": "patch",
+ "tags": [
+ "CalendarEventController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Calendar.Event PATCH success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "events.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EventPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "CalendarEventController.patch"
+ },
+ "get": {
+ "x-controller-name": "CalendarEventController",
+ "x-operation-name": "find",
+ "tags": [
+ "CalendarEventController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Calendar has many Event",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Event"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ {
+ "name": "timeMax",
+ "in": "query",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "name": "timeMin",
+ "in": "query",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ ],
+ "operationId": "CalendarEventController.find"
+ },
+ "delete": {
+ "x-controller-name": "CalendarEventController",
+ "x-operation-name": "delete",
+ "tags": [
+ "CalendarEventController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Calendar.Event DELETE success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "events.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "CalendarEventController.delete"
+ }
+ },
+ "/calendars/{id}/subscriptions": {
+ "post": {
+ "x-controller-name": "CalendarSubscriptionController",
+ "x-operation-name": "create",
+ "tags": [
+ "CalendarSubscriptionController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Calendar model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Subscription"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewSubscriptionInCalendar"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "CalendarSubscriptionController.create"
+ },
+ "patch": {
+ "x-controller-name": "CalendarSubscriptionController",
+ "x-operation-name": "patch",
+ "tags": [
+ "CalendarSubscriptionController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Calendar.Subscription PATCH success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "subscriptions.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SubscriptionPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "CalendarSubscriptionController.patch"
+ },
+ "get": {
+ "x-controller-name": "CalendarSubscriptionController",
+ "x-operation-name": "find",
+ "tags": [
+ "CalendarSubscriptionController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Calendar has many Subscriptions",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Subscription"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "CalendarSubscriptionController.find"
+ },
+ "delete": {
+ "x-controller-name": "CalendarSubscriptionController",
+ "x-operation-name": "delete",
+ "tags": [
+ "CalendarSubscriptionController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Calendar.Subscription DELETE success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "subscriptions.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "CalendarSubscriptionController.delete"
+ }
+ },
+ "/calendars/{id}/working-hours": {
+ "post": {
+ "x-controller-name": "CalendarWorkingHourController",
+ "x-operation-name": "create",
+ "tags": [
+ "CalendarWorkingHourController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Calendar model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/WorkingHour"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewWorkingHourInCalendar"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "CalendarWorkingHourController.create"
+ },
+ "patch": {
+ "x-controller-name": "CalendarWorkingHourController",
+ "x-operation-name": "patch",
+ "tags": [
+ "CalendarWorkingHourController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Calendar.WorkingHour PATCH success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "working_hours.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/WorkingHourPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "CalendarWorkingHourController.patch"
+ },
+ "get": {
+ "x-controller-name": "CalendarWorkingHourController",
+ "x-operation-name": "find",
+ "tags": [
+ "CalendarWorkingHourController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Calendar has many WorkingHour",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/WorkingHour"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "CalendarWorkingHourController.find"
+ },
+ "delete": {
+ "x-controller-name": "CalendarWorkingHourController",
+ "x-operation-name": "delete",
+ "tags": [
+ "CalendarWorkingHourController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Calendar.WorkingHour DELETE success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "working_hours.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "CalendarWorkingHourController.delete"
+ }
+ },
+ "/calendars/{id}": {
+ "put": {
+ "x-controller-name": "CalendarController",
+ "x-operation-name": "replaceById",
+ "tags": [
+ "CalendarController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Calendar PUT success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CalendarDTO"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "CalendarController.replaceById"
+ },
+ "patch": {
+ "x-controller-name": "CalendarController",
+ "x-operation-name": "updateById",
+ "tags": [
+ "CalendarController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Calendar PATCH success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CalendarPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "CalendarController.updateById"
+ },
+ "get": {
+ "x-controller-name": "CalendarController",
+ "x-operation-name": "findById",
+ "tags": [
+ "CalendarController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Calendar model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CalendarWithRelations"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/calendars.Filter"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "CalendarController.findById"
+ },
+ "delete": {
+ "x-controller-name": "CalendarController",
+ "x-operation-name": "deleteById",
+ "tags": [
+ "CalendarController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Calendar DELETE success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "CalendarController.deleteById"
+ }
+ },
+ "/calendars": {
+ "post": {
+ "x-controller-name": "CalendarController",
+ "x-operation-name": "create",
+ "tags": [
+ "CalendarController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Calendar model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Calendar"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewCalendar"
+ }
+ }
+ }
+ },
+ "operationId": "CalendarController.create"
+ },
+ "patch": {
+ "x-controller-name": "CalendarController",
+ "x-operation-name": "updateAll",
+ "tags": [
+ "CalendarController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Calendar PATCH success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "calendars.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CalendarPartial"
+ }
+ }
+ }
+ },
+ "operationId": "CalendarController.updateAll"
+ },
+ "get": {
+ "x-controller-name": "CalendarController",
+ "x-operation-name": "find",
+ "tags": [
+ "CalendarController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Calendar model instances",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CalendarWithRelations"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/calendars.Filter1"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "CalendarController.find"
+ }
+ },
+ "/events/count": {
+ "get": {
+ "x-controller-name": "EventController",
+ "x-operation-name": "count",
+ "tags": [
+ "EventController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Event model count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "events.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "EventController.count"
+ }
+ },
+ "/events/freeBusy": {
+ "get": {
+ "x-controller-name": "EventController",
+ "x-operation-name": "getFeeBusyStatus",
+ "tags": [
+ "EventController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Return value of EventController.getFeeBusyStatus"
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FreeBusyRequest"
+ }
+ }
+ }
+ },
+ "operationId": "EventController.getFeeBusyStatus"
+ }
+ },
+ "/events/{id}/attachments": {
+ "post": {
+ "x-controller-name": "EventAttachmentController",
+ "x-operation-name": "create",
+ "tags": [
+ "EventAttachmentController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Event model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Attachment"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewAttachmentInEvent"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "EventAttachmentController.create"
+ },
+ "patch": {
+ "x-controller-name": "EventAttachmentController",
+ "x-operation-name": "patch",
+ "tags": [
+ "EventAttachmentController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Event.Attachment PATCH success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "attachments.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AttachmentPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "EventAttachmentController.patch"
+ },
+ "get": {
+ "x-controller-name": "EventAttachmentController",
+ "x-operation-name": "find",
+ "tags": [
+ "EventAttachmentController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Event has many Attachment",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Attachment"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "EventAttachmentController.find"
+ },
+ "delete": {
+ "x-controller-name": "EventAttachmentController",
+ "x-operation-name": "delete",
+ "tags": [
+ "EventAttachmentController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Event.Attachment DELETE success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "attachments.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "EventAttachmentController.delete"
+ }
+ },
+ "/events/{id}/attendees": {
+ "post": {
+ "x-controller-name": "EventAttendeeController",
+ "x-operation-name": "create",
+ "tags": [
+ "EventAttendeeController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Event model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Attendee"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewAttendeeInEvent"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "EventAttendeeController.create"
+ },
+ "patch": {
+ "x-controller-name": "EventAttendeeController",
+ "x-operation-name": "patch",
+ "tags": [
+ "EventAttendeeController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Event.Attendee PATCH success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "attendees.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AttendeePartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "EventAttendeeController.patch"
+ },
+ "get": {
+ "x-controller-name": "EventAttendeeController",
+ "x-operation-name": "find",
+ "tags": [
+ "EventAttendeeController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Event has many Attendee",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Attendee"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "EventAttendeeController.find"
+ },
+ "delete": {
+ "x-controller-name": "EventAttendeeController",
+ "x-operation-name": "delete",
+ "tags": [
+ "EventAttendeeController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Event.Attendee DELETE success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "attendees.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "EventAttendeeController.delete"
+ }
+ },
+ "/events/{id}": {
+ "put": {
+ "x-controller-name": "EventController",
+ "x-operation-name": "replaceById",
+ "tags": [
+ "EventController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Event PUT success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Event"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "EventController.replaceById"
+ },
+ "patch": {
+ "x-controller-name": "EventController",
+ "x-operation-name": "updateById",
+ "tags": [
+ "EventController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Event PATCH success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EventPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "EventController.updateById"
+ },
+ "get": {
+ "x-controller-name": "EventController",
+ "x-operation-name": "findById",
+ "tags": [
+ "EventController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Event model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EventWithRelations"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/events.Filter"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "EventController.findById"
+ },
+ "delete": {
+ "x-controller-name": "EventController",
+ "x-operation-name": "deleteById",
+ "tags": [
+ "EventController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Event DELETE success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "EventController.deleteById"
+ }
+ },
+ "/events": {
+ "post": {
+ "x-controller-name": "EventController",
+ "x-operation-name": "create",
+ "tags": [
+ "EventController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Event model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Event"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewEvent"
+ }
+ }
+ }
+ },
+ "operationId": "EventController.create"
+ },
+ "patch": {
+ "x-controller-name": "EventController",
+ "x-operation-name": "updateAll",
+ "tags": [
+ "EventController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Event PATCH success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "events.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EventPartial"
+ }
+ }
+ }
+ },
+ "operationId": "EventController.updateAll"
+ },
+ "get": {
+ "x-controller-name": "EventController",
+ "x-operation-name": "find",
+ "tags": [
+ "EventController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Event model instances",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/EventWithRelations"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/events_attendees_view.Filter"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "EventController.find"
+ }
+ },
+ "/settings/count": {
+ "get": {
+ "x-controller-name": "SettingsController",
+ "x-operation-name": "count",
+ "tags": [
+ "SettingsController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Settings model count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "settings.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "SettingsController.count"
+ }
+ },
+ "/settings/{id}": {
+ "put": {
+ "x-controller-name": "SettingsController",
+ "x-operation-name": "replaceById",
+ "tags": [
+ "SettingsController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Settings PUT success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Settings"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "SettingsController.replaceById"
+ },
+ "patch": {
+ "x-controller-name": "SettingsController",
+ "x-operation-name": "updateById",
+ "tags": [
+ "SettingsController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Settings PATCH success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SettingsPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "SettingsController.updateById"
+ },
+ "get": {
+ "x-controller-name": "SettingsController",
+ "x-operation-name": "findById",
+ "tags": [
+ "SettingsController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Settings model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SettingsWithRelations"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/settings.Filter"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "SettingsController.findById"
+ },
+ "delete": {
+ "x-controller-name": "SettingsController",
+ "x-operation-name": "deleteById",
+ "tags": [
+ "SettingsController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Settings DELETE success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "SettingsController.deleteById"
+ }
+ },
+ "/settings": {
+ "post": {
+ "x-controller-name": "SettingsController",
+ "x-operation-name": "create",
+ "tags": [
+ "SettingsController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Settings model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Settings"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewSettings"
+ }
+ }
+ }
+ },
+ "operationId": "SettingsController.create"
+ },
+ "patch": {
+ "x-controller-name": "SettingsController",
+ "x-operation-name": "updateAll",
+ "tags": [
+ "SettingsController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Settings PATCH success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "settings.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SettingsPartial"
+ }
+ }
+ }
+ },
+ "operationId": "SettingsController.updateAll"
+ },
+ "get": {
+ "x-controller-name": "SettingsController",
+ "x-operation-name": "find",
+ "tags": [
+ "SettingsController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Settings model instances",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SettingsWithRelations"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/settings.Filter1"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "SettingsController.find"
+ }
+ },
+ "/subscriptions/count": {
+ "get": {
+ "x-controller-name": "SubscriptionController",
+ "x-operation-name": "count",
+ "tags": [
+ "SubscriptionController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Subscription model count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "subscriptions.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "SubscriptionController.count"
+ }
+ },
+ "/subscriptions/{id}": {
+ "put": {
+ "x-controller-name": "SubscriptionController",
+ "x-operation-name": "replaceById",
+ "tags": [
+ "SubscriptionController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Subscription PUT success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Subscription"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "SubscriptionController.replaceById"
+ },
+ "patch": {
+ "x-controller-name": "SubscriptionController",
+ "x-operation-name": "updateById",
+ "tags": [
+ "SubscriptionController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Subscription PATCH success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SubscriptionPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "SubscriptionController.updateById"
+ },
+ "get": {
+ "x-controller-name": "SubscriptionController",
+ "x-operation-name": "findById",
+ "tags": [
+ "SubscriptionController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Subscription model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SubscriptionWithRelations"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/subscriptions.Filter1"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "SubscriptionController.findById"
+ },
+ "delete": {
+ "x-controller-name": "SubscriptionController",
+ "x-operation-name": "deleteById",
+ "tags": [
+ "SubscriptionController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Subscription DELETE success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "SubscriptionController.deleteById"
+ }
+ },
+ "/subscriptions": {
+ "post": {
+ "x-controller-name": "SubscriptionController",
+ "x-operation-name": "create",
+ "tags": [
+ "SubscriptionController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Subscription model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Subscription"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewSubscription"
+ }
+ }
+ }
+ },
+ "operationId": "SubscriptionController.create"
+ },
+ "patch": {
+ "x-controller-name": "SubscriptionController",
+ "x-operation-name": "updateAll",
+ "tags": [
+ "SubscriptionController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Subscription PATCH success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "subscriptions.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SubscriptionPartial"
+ }
+ }
+ }
+ },
+ "operationId": "SubscriptionController.updateAll"
+ },
+ "get": {
+ "x-controller-name": "SubscriptionController",
+ "x-operation-name": "find",
+ "tags": [
+ "SubscriptionController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Subscription model instances",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SubscriptionWithRelations"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/subscriptions.Filter"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "SubscriptionController.find"
+ }
+ },
+ "/themes/count": {
+ "get": {
+ "x-controller-name": "ThemeController",
+ "x-operation-name": "count",
+ "tags": [
+ "ThemeController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Theme model count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "themes.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "ThemeController.count"
+ }
+ },
+ "/themes/{id}": {
+ "put": {
+ "x-controller-name": "ThemeController",
+ "x-operation-name": "replaceById",
+ "tags": [
+ "ThemeController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Theme PUT success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Theme"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "ThemeController.replaceById"
+ },
+ "patch": {
+ "x-controller-name": "ThemeController",
+ "x-operation-name": "updateById",
+ "tags": [
+ "ThemeController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Theme PATCH success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ThemePartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "ThemeController.updateById"
+ },
+ "get": {
+ "x-controller-name": "ThemeController",
+ "x-operation-name": "findById",
+ "tags": [
+ "ThemeController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Theme model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ThemeWithRelations"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/themes.Filter"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "ThemeController.findById"
+ },
+ "delete": {
+ "x-controller-name": "ThemeController",
+ "x-operation-name": "deleteById",
+ "tags": [
+ "ThemeController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Theme DELETE success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "ThemeController.deleteById"
+ }
+ },
+ "/themes": {
+ "post": {
+ "x-controller-name": "ThemeController",
+ "x-operation-name": "create",
+ "tags": [
+ "ThemeController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Theme model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Theme"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewTheme"
+ }
+ }
+ }
+ },
+ "operationId": "ThemeController.create"
+ },
+ "patch": {
+ "x-controller-name": "ThemeController",
+ "x-operation-name": "updateAll",
+ "tags": [
+ "ThemeController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Theme PATCH success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "themes.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ThemePartial"
+ }
+ }
+ }
+ },
+ "operationId": "ThemeController.updateAll"
+ },
+ "get": {
+ "x-controller-name": "ThemeController",
+ "x-operation-name": "find",
+ "tags": [
+ "ThemeController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of Theme model instances",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ThemeWithRelations"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/themes.Filter1"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "ThemeController.find"
+ }
+ },
+ "/working-hours/count": {
+ "get": {
+ "x-controller-name": "WorkingHourController",
+ "x-operation-name": "count",
+ "tags": [
+ "WorkingHourController"
+ ],
+ "responses": {
+ "200": {
+ "description": "WorkingHour model count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "working_hours.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "WorkingHourController.count"
+ }
+ },
+ "/working-hours/{id}": {
+ "put": {
+ "x-controller-name": "WorkingHourController",
+ "x-operation-name": "replaceById",
+ "tags": [
+ "WorkingHourController"
+ ],
+ "responses": {
+ "204": {
+ "description": "WorkingHour PUT success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/WorkingHour"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "WorkingHourController.replaceById"
+ },
+ "patch": {
+ "x-controller-name": "WorkingHourController",
+ "x-operation-name": "updateById",
+ "tags": [
+ "WorkingHourController"
+ ],
+ "responses": {
+ "204": {
+ "description": "WorkingHour PATCH success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/WorkingHourPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "WorkingHourController.updateById"
+ },
+ "get": {
+ "x-controller-name": "WorkingHourController",
+ "x-operation-name": "findById",
+ "tags": [
+ "WorkingHourController"
+ ],
+ "responses": {
+ "200": {
+ "description": "WorkingHour model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/WorkingHourWithRelations"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/working_hours.Filter"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "WorkingHourController.findById"
+ },
+ "delete": {
+ "x-controller-name": "WorkingHourController",
+ "x-operation-name": "deleteById",
+ "tags": [
+ "WorkingHourController"
+ ],
+ "responses": {
+ "204": {
+ "description": "WorkingHour DELETE success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "WorkingHourController.deleteById"
+ }
+ },
+ "/working-hours": {
+ "post": {
+ "x-controller-name": "WorkingHourController",
+ "x-operation-name": "create",
+ "tags": [
+ "WorkingHourController"
+ ],
+ "responses": {
+ "200": {
+ "description": "WorkingHour model instance",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/WorkingHour"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NewWorkingHour"
+ }
+ }
+ }
+ },
+ "operationId": "WorkingHourController.create"
+ },
+ "patch": {
+ "x-controller-name": "WorkingHourController",
+ "x-operation-name": "updateAll",
+ "tags": [
+ "WorkingHourController"
+ ],
+ "responses": {
+ "200": {
+ "description": "WorkingHour PATCH success count",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/loopback.Count"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "where",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "title": "working_hours.WhereFilter",
+ "additionalProperties": true,
+ "x-typescript-type": "@loopback/repository#Where"
+ }
+ }
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/WorkingHourPartial"
+ }
+ }
+ }
+ },
+ "operationId": "WorkingHourController.updateAll"
+ },
+ "get": {
+ "x-controller-name": "WorkingHourController",
+ "x-operation-name": "find",
+ "tags": [
+ "WorkingHourController"
+ ],
+ "responses": {
+ "200": {
+ "description": "Array of WorkingHour model instances",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/WorkingHourWithRelations"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "filter",
+ "in": "query",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/working_hours.Filter1"
+ }
+ }
+ }
+ }
+ ],
+ "operationId": "WorkingHourController.find"
+ }
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "HTTPBearer": {
+ "type": "http",
+ "scheme": "bearer",
+ "bearerFormat": "JWT"
+ }
+ },
+ "schemas": {
+ "Attachment": {
+ "title": "Attachment",
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "fileUrl": {
+ "type": "string"
+ },
+ "iconLink": {
+ "type": "string"
+ },
+ "mimeType": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "title": {
+ "type": "string",
+ "maxLength": 400
+ },
+ "eventId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "fileUrl",
+ "eventId"
+ ],
+ "additionalProperties": false
+ },
+ "NewAttachment": {
+ "title": "NewAttachment",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { title: 'NewAttachment', exclude: [ 'id' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "fileUrl": {
+ "type": "string"
+ },
+ "iconLink": {
+ "type": "string"
+ },
+ "mimeType": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "title": {
+ "type": "string",
+ "maxLength": 400
+ },
+ "eventId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "fileUrl",
+ "eventId"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "AttendeeWithRelations": {
+ "title": "AttendeeWithRelations",
+ "type": "object",
+ "description": "(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "isOptional": {
+ "type": "boolean"
+ },
+ "isOrganizer": {
+ "type": "boolean"
+ },
+ "messages": {
+ "type": "string"
+ },
+ "responseStatus": {
+ "type": "string",
+ "enum": [
+ "needsAction",
+ "tentative",
+ "accepted",
+ "declined"
+ ]
+ },
+ "eventId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "event": {
+ "$ref": "#/components/schemas/EventWithRelations"
+ }
+ },
+ "required": [
+ "identifier",
+ "eventId"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "AttendeeWithRelations"
+ },
+ "EventWithRelations": {
+ "title": "EventWithRelations",
+ "type": "object",
+ "description": "(tsType: EventWithRelations, schemaOptions: { includeRelations: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "bgColor": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "endDateTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "fgColor": {
+ "type": "string"
+ },
+ "iCalUid": {
+ "type": "string"
+ },
+ "isFullDayEvent": {
+ "type": "boolean"
+ },
+ "isLocked": {
+ "type": "boolean"
+ },
+ "link": {
+ "type": "string"
+ },
+ "location": {
+ "type": "string",
+ "maxLength": 300
+ },
+ "meetingLink": {
+ "type": "string"
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "startDateTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "confirmed",
+ "tentative",
+ "cancelled",
+ "completed"
+ ]
+ },
+ "summary": {
+ "type": "string"
+ },
+ "timezone": {
+ "type": "string"
+ },
+ "calendarId": {
+ "type": "string"
+ },
+ "parentEventId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "calendar": {
+ "$ref": "#/components/schemas/CalendarWithRelations"
+ },
+ "parentEvent": {
+ "$ref": "#/components/schemas/EventWithRelations"
+ },
+ "attendees": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AttendeeWithRelations"
+ }
+ },
+ "attachments": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AttachmentWithRelations"
+ }
+ }
+ },
+ "required": [
+ "calendarId"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "EventWithRelations"
+ },
+ "AttachmentWithRelations": {
+ "title": "AttachmentWithRelations",
+ "type": "object",
+ "description": "(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "fileUrl": {
+ "type": "string"
+ },
+ "iconLink": {
+ "type": "string"
+ },
+ "mimeType": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "title": {
+ "type": "string",
+ "maxLength": 400
+ },
+ "eventId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "event": {
+ "$ref": "#/components/schemas/EventWithRelations"
+ }
+ },
+ "required": [
+ "fileUrl",
+ "eventId"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "AttachmentWithRelations"
+ },
+ "AttachmentPartial": {
+ "title": "AttachmentPartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "fileUrl": {
+ "type": "string"
+ },
+ "iconLink": {
+ "type": "string"
+ },
+ "mimeType": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "title": {
+ "type": "string",
+ "maxLength": 400
+ },
+ "eventId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial"
+ },
+ "Attendee": {
+ "title": "Attendee",
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "isOptional": {
+ "type": "boolean"
+ },
+ "isOrganizer": {
+ "type": "boolean"
+ },
+ "messages": {
+ "type": "string"
+ },
+ "responseStatus": {
+ "type": "string",
+ "enum": [
+ "needsAction",
+ "tentative",
+ "accepted",
+ "declined"
+ ]
+ },
+ "eventId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "identifier",
+ "eventId"
+ ],
+ "additionalProperties": false
+ },
+ "NewAttendee": {
+ "title": "NewAttendee",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { title: 'NewAttendee', exclude: [ 'id' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "isOptional": {
+ "type": "boolean"
+ },
+ "isOrganizer": {
+ "type": "boolean"
+ },
+ "messages": {
+ "type": "string"
+ },
+ "responseStatus": {
+ "type": "string",
+ "enum": [
+ "needsAction",
+ "tentative",
+ "accepted",
+ "declined"
+ ]
+ },
+ "eventId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "identifier",
+ "eventId"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "AttendeePartial": {
+ "title": "AttendeePartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "isOptional": {
+ "type": "boolean"
+ },
+ "isOrganizer": {
+ "type": "boolean"
+ },
+ "messages": {
+ "type": "string"
+ },
+ "responseStatus": {
+ "type": "string",
+ "enum": [
+ "needsAction",
+ "tentative",
+ "accepted",
+ "declined"
+ ]
+ },
+ "eventId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial"
+ },
+ "Calendar": {
+ "title": "Calendar",
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ },
+ "enableWorkingHours": {
+ "type": "boolean"
+ },
+ "location": {
+ "type": "string",
+ "maxLength": 300
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "summary": {
+ "type": "string",
+ "maxLength": 100
+ },
+ "timezone": {
+ "type": "string",
+ "maxLength": 120
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "identifier"
+ ],
+ "additionalProperties": false
+ },
+ "WorkingHourExcluding_id_": {
+ "title": "WorkingHourExcluding_id_",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { exclude: [ 'id' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "dayOfWeek": {
+ "type": "number",
+ "enum": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ "end": {
+ "type": "string"
+ },
+ "start": {
+ "type": "string"
+ },
+ "calendarId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "calendarId"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "NewCalendar": {
+ "title": "NewCalendar",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { title: 'NewCalendar', exclude: [ 'id' ] })",
+ "properties": {
+ "source": {
+ "type": "string"
+ },
+ "enableWorkingHours": {
+ "type": "boolean"
+ },
+ "location": {
+ "type": "string",
+ "maxLength": 300
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "summary": {
+ "type": "string",
+ "maxLength": 100
+ },
+ "timezone": {
+ "type": "string",
+ "maxLength": 120
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "workingHours": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/WorkingHourExcluding_id_"
+ }
+ },
+ "subscription": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "identifier"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "WorkingHour": {
+ "title": "WorkingHour",
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "dayOfWeek": {
+ "type": "number",
+ "enum": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ "end": {
+ "type": "string"
+ },
+ "start": {
+ "type": "string"
+ },
+ "calendarId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "calendarId"
+ ],
+ "additionalProperties": false
+ },
+ "CalendarDTO": {
+ "title": "CalendarDTO",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ },
+ "enableWorkingHours": {
+ "type": "boolean"
+ },
+ "location": {
+ "type": "string",
+ "maxLength": 300
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "summary": {
+ "type": "string",
+ "maxLength": 100
+ },
+ "timezone": {
+ "type": "string",
+ "maxLength": 120
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "workingHours": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/WorkingHour"
+ }
+ },
+ "subscription": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "identifier"
+ ],
+ "additionalProperties": false
+ },
+ "CalendarWithRelations": {
+ "title": "CalendarWithRelations",
+ "type": "object",
+ "description": "(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ },
+ "enableWorkingHours": {
+ "type": "boolean"
+ },
+ "location": {
+ "type": "string",
+ "maxLength": 300
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "summary": {
+ "type": "string",
+ "maxLength": 100
+ },
+ "timezone": {
+ "type": "string",
+ "maxLength": 120
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "events": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/EventWithRelations"
+ }
+ },
+ "workingHours": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/WorkingHourWithRelations"
+ }
+ },
+ "subscriptions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SubscriptionWithRelations"
+ }
+ }
+ },
+ "required": [
+ "identifier"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "CalendarWithRelations"
+ },
+ "CalendarPartial": {
+ "title": "CalendarPartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ },
+ "enableWorkingHours": {
+ "type": "boolean"
+ },
+ "location": {
+ "type": "string",
+ "maxLength": 300
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "summary": {
+ "type": "string",
+ "maxLength": 100
+ },
+ "timezone": {
+ "type": "string",
+ "maxLength": 120
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial"
+ },
+ "Event": {
+ "title": "Event",
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "bgColor": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "endDateTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "fgColor": {
+ "type": "string"
+ },
+ "iCalUid": {
+ "type": "string"
+ },
+ "isFullDayEvent": {
+ "type": "boolean"
+ },
+ "isLocked": {
+ "type": "boolean"
+ },
+ "link": {
+ "type": "string"
+ },
+ "location": {
+ "type": "string",
+ "maxLength": 300
+ },
+ "meetingLink": {
+ "type": "string"
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "startDateTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "confirmed",
+ "tentative",
+ "cancelled",
+ "completed"
+ ]
+ },
+ "summary": {
+ "type": "string"
+ },
+ "timezone": {
+ "type": "string"
+ },
+ "calendarId": {
+ "type": "string"
+ },
+ "parentEventId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "calendarId"
+ ],
+ "additionalProperties": false
+ },
+ "AttachmentExcluding_id_": {
+ "title": "AttachmentExcluding_id_",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { exclude: [ 'id' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "fileUrl": {
+ "type": "string"
+ },
+ "iconLink": {
+ "type": "string"
+ },
+ "mimeType": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "title": {
+ "type": "string",
+ "maxLength": 400
+ },
+ "eventId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "fileUrl",
+ "eventId"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "AttendeeExcluding_id_": {
+ "title": "AttendeeExcluding_id_",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { exclude: [ 'id' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "isOptional": {
+ "type": "boolean"
+ },
+ "isOrganizer": {
+ "type": "boolean"
+ },
+ "messages": {
+ "type": "string"
+ },
+ "responseStatus": {
+ "type": "string",
+ "enum": [
+ "needsAction",
+ "tentative",
+ "accepted",
+ "declined"
+ ]
+ },
+ "eventId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "identifier",
+ "eventId"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "NewEvent": {
+ "title": "NewEvent",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { title: 'NewEvent', exclude: [ 'id' ] })",
+ "properties": {
+ "bgColor": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "endDateTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "fgColor": {
+ "type": "string"
+ },
+ "iCalUid": {
+ "type": "string"
+ },
+ "isFullDayEvent": {
+ "type": "boolean"
+ },
+ "isLocked": {
+ "type": "boolean"
+ },
+ "link": {
+ "type": "string"
+ },
+ "location": {
+ "type": "string",
+ "maxLength": 300
+ },
+ "meetingLink": {
+ "type": "string"
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "startDateTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "confirmed",
+ "tentative",
+ "cancelled",
+ "completed"
+ ]
+ },
+ "summary": {
+ "type": "string"
+ },
+ "timezone": {
+ "type": "string"
+ },
+ "calendarId": {
+ "type": "string"
+ },
+ "parentEventId": {
+ "type": "string"
+ },
+ "attachments": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AttachmentExcluding_id_"
+ }
+ },
+ "attendees": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AttendeeExcluding_id_"
+ }
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "calendarId"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "EventAttendeeViewItemDTO": {
+ "title": "EventAttendeeViewItemDTO",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "bgColor": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "endDateTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "fgColor": {
+ "type": "string"
+ },
+ "iCalUid": {
+ "type": "string"
+ },
+ "isFullDayEvent": {
+ "type": "boolean"
+ },
+ "isLocked": {
+ "type": "boolean"
+ },
+ "link": {
+ "type": "string"
+ },
+ "location": {
+ "type": "string",
+ "maxLength": 300
+ },
+ "meetingLink": {
+ "type": "string"
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "startDateTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "confirmed",
+ "tentative",
+ "cancelled",
+ "completed"
+ ]
+ },
+ "summary": {
+ "type": "string"
+ },
+ "timezone": {
+ "type": "string"
+ },
+ "attendeeId": {
+ "type": "string"
+ },
+ "isOptional": {
+ "type": "boolean"
+ },
+ "attendeeIdentifier": {
+ "type": "string"
+ },
+ "isOrganizer": {
+ "type": "boolean"
+ },
+ "messages": {
+ "type": "string"
+ },
+ "eventId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "FreeBusyRequest": {
+ "title": "FreeBusyRequest",
+ "type": "object",
+ "description": "(tsType: FreeBusyDTO, schemaOptions: { title: 'FreeBusyRequest' })",
+ "properties": {
+ "timeMax": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "timeMin": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/EventAttendeeViewItemDTO"
+ }
+ }
+ },
+ "required": [
+ "timeMax",
+ "timeMin"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "FreeBusyDTO"
+ },
+ "FreeBusyDTO": {
+ "title": "FreeBusyDTO",
+ "type": "object",
+ "properties": {
+ "timeMax": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "timeMin": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/EventAttendeeViewItemDTO"
+ }
+ }
+ },
+ "required": [
+ "timeMax",
+ "timeMin"
+ ],
+ "additionalProperties": false
+ },
+ "EventPartial": {
+ "title": "EventPartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "bgColor": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "endDateTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "fgColor": {
+ "type": "string"
+ },
+ "iCalUid": {
+ "type": "string"
+ },
+ "isFullDayEvent": {
+ "type": "boolean"
+ },
+ "isLocked": {
+ "type": "boolean"
+ },
+ "link": {
+ "type": "string"
+ },
+ "location": {
+ "type": "string",
+ "maxLength": 300
+ },
+ "meetingLink": {
+ "type": "string"
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "startDateTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "confirmed",
+ "tentative",
+ "cancelled",
+ "completed"
+ ]
+ },
+ "summary": {
+ "type": "string"
+ },
+ "timezone": {
+ "type": "string"
+ },
+ "calendarId": {
+ "type": "string"
+ },
+ "parentEventId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial"
+ },
+ "Settings": {
+ "title": "Settings",
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "ownerId": {
+ "type": "string",
+ "maxLength": 225
+ },
+ "ownerType": {
+ "type": "string",
+ "enum": [
+ "global",
+ "user",
+ "calendar",
+ "event"
+ ]
+ },
+ "settingName": {
+ "type": "string",
+ "maxLength": 225
+ },
+ "settingValue": {
+ "type": "string",
+ "maxLength": 1500
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "ownerId"
+ ],
+ "additionalProperties": false
+ },
+ "NewSettings": {
+ "title": "NewSettings",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { title: 'NewSettings', exclude: [ 'id' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "ownerId": {
+ "type": "string",
+ "maxLength": 225
+ },
+ "ownerType": {
+ "type": "string",
+ "enum": [
+ "global",
+ "user",
+ "calendar",
+ "event"
+ ]
+ },
+ "settingName": {
+ "type": "string",
+ "maxLength": 225
+ },
+ "settingValue": {
+ "type": "string",
+ "maxLength": 1500
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "ownerId"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "SettingsWithRelations": {
+ "title": "SettingsWithRelations",
+ "type": "object",
+ "description": "(tsType: SettingsWithRelations, schemaOptions: { includeRelations: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "ownerId": {
+ "type": "string",
+ "maxLength": 225
+ },
+ "ownerType": {
+ "type": "string",
+ "enum": [
+ "global",
+ "user",
+ "calendar",
+ "event"
+ ]
+ },
+ "settingName": {
+ "type": "string",
+ "maxLength": 225
+ },
+ "settingValue": {
+ "type": "string",
+ "maxLength": 1500
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "ownerId"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "SettingsWithRelations"
+ },
+ "SettingsPartial": {
+ "title": "SettingsPartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "ownerId": {
+ "type": "string",
+ "maxLength": 225
+ },
+ "ownerType": {
+ "type": "string",
+ "enum": [
+ "global",
+ "user",
+ "calendar",
+ "event"
+ ]
+ },
+ "settingName": {
+ "type": "string",
+ "maxLength": 225
+ },
+ "settingValue": {
+ "type": "string",
+ "maxLength": 1500
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial"
+ },
+ "Subscription": {
+ "title": "Subscription",
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "accessRole": {
+ "type": "string",
+ "enum": [
+ "freeBusyReader",
+ "reader",
+ "writer",
+ "owner"
+ ]
+ },
+ "bgColor": {
+ "type": "string"
+ },
+ "fgColor": {
+ "type": "string"
+ },
+ "isHidden": {
+ "type": "boolean"
+ },
+ "isPrimary": {
+ "type": "boolean"
+ },
+ "identifier": {
+ "type": "string"
+ },
+ "defaultReminders": {
+ "type": "object"
+ },
+ "notificationSettings": {
+ "type": "object"
+ },
+ "calendarId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "identifier",
+ "calendarId"
+ ],
+ "additionalProperties": false
+ },
+ "NewSubscription": {
+ "title": "NewSubscription",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { title: 'NewSubscription', exclude: [ 'id' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "accessRole": {
+ "type": "string",
+ "enum": [
+ "freeBusyReader",
+ "reader",
+ "writer",
+ "owner"
+ ]
+ },
+ "bgColor": {
+ "type": "string"
+ },
+ "fgColor": {
+ "type": "string"
+ },
+ "isHidden": {
+ "type": "boolean"
+ },
+ "isPrimary": {
+ "type": "boolean"
+ },
+ "identifier": {
+ "type": "string"
+ },
+ "defaultReminders": {
+ "type": "object"
+ },
+ "notificationSettings": {
+ "type": "object"
+ },
+ "calendarId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "identifier",
+ "calendarId"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "SubscriptionWithRelations": {
+ "title": "SubscriptionWithRelations",
+ "type": "object",
+ "description": "(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "accessRole": {
+ "type": "string",
+ "enum": [
+ "freeBusyReader",
+ "reader",
+ "writer",
+ "owner"
+ ]
+ },
+ "bgColor": {
+ "type": "string"
+ },
+ "fgColor": {
+ "type": "string"
+ },
+ "isHidden": {
+ "type": "boolean"
+ },
+ "isPrimary": {
+ "type": "boolean"
+ },
+ "identifier": {
+ "type": "string"
+ },
+ "defaultReminders": {
+ "type": "object"
+ },
+ "notificationSettings": {
+ "type": "object"
+ },
+ "calendarId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "calendar": {
+ "$ref": "#/components/schemas/CalendarWithRelations"
+ }
+ },
+ "required": [
+ "identifier",
+ "calendarId"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "SubscriptionWithRelations"
+ },
+ "SubscriptionPartial": {
+ "title": "SubscriptionPartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "accessRole": {
+ "type": "string",
+ "enum": [
+ "freeBusyReader",
+ "reader",
+ "writer",
+ "owner"
+ ]
+ },
+ "bgColor": {
+ "type": "string"
+ },
+ "fgColor": {
+ "type": "string"
+ },
+ "isHidden": {
+ "type": "boolean"
+ },
+ "isPrimary": {
+ "type": "boolean"
+ },
+ "identifier": {
+ "type": "string"
+ },
+ "defaultReminders": {
+ "type": "object"
+ },
+ "notificationSettings": {
+ "type": "object"
+ },
+ "calendarId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial"
+ },
+ "Theme": {
+ "title": "Theme",
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "calBg": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "calFg": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "eventBg": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "eventFg": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false
+ },
+ "NewTheme": {
+ "title": "NewTheme",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { title: 'NewTheme', exclude: [ 'id' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "calBg": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "calFg": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "eventBg": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "eventFg": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "ThemeWithRelations": {
+ "title": "ThemeWithRelations",
+ "type": "object",
+ "description": "(tsType: ThemeWithRelations, schemaOptions: { includeRelations: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "calBg": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "calFg": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "eventBg": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "eventFg": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "ThemeWithRelations"
+ },
+ "ThemePartial": {
+ "title": "ThemePartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "calBg": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "calFg": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "eventBg": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "eventFg": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial"
+ },
+ "NewWorkingHour": {
+ "title": "NewWorkingHour",
+ "type": "object",
+ "description": "(tsType: Omit, schemaOptions: { title: 'NewWorkingHour', exclude: [ 'id' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "dayOfWeek": {
+ "type": "number",
+ "enum": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ "end": {
+ "type": "string"
+ },
+ "start": {
+ "type": "string"
+ },
+ "calendarId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "calendarId"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "Omit"
+ },
+ "WorkingHourWithRelations": {
+ "title": "WorkingHourWithRelations",
+ "type": "object",
+ "description": "(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "dayOfWeek": {
+ "type": "number",
+ "enum": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ "end": {
+ "type": "string"
+ },
+ "start": {
+ "type": "string"
+ },
+ "calendarId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ },
+ "calendar": {
+ "$ref": "#/components/schemas/CalendarWithRelations"
+ }
+ },
+ "required": [
+ "calendarId"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "WorkingHourWithRelations"
+ },
+ "WorkingHourPartial": {
+ "title": "WorkingHourPartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "dayOfWeek": {
+ "type": "number",
+ "enum": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ "end": {
+ "type": "string"
+ },
+ "start": {
+ "type": "string"
+ },
+ "calendarId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial"
+ },
+ "Date": {},
+ "NewEventInCalendar": {
+ "title": "NewEventInCalendar",
+ "type": "object",
+ "description": "(tsType: @loopback/repository-json-schema#Optional, 'calendarId'>, schemaOptions: { title: 'NewEventInCalendar', exclude: [ 'id' ], optional: [ 'calendarId' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "bgColor": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "endDateTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "fgColor": {
+ "type": "string"
+ },
+ "iCalUid": {
+ "type": "string"
+ },
+ "isFullDayEvent": {
+ "type": "boolean"
+ },
+ "isLocked": {
+ "type": "boolean"
+ },
+ "link": {
+ "type": "string"
+ },
+ "location": {
+ "type": "string",
+ "maxLength": 300
+ },
+ "meetingLink": {
+ "type": "string"
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "startDateTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "confirmed",
+ "tentative",
+ "cancelled",
+ "completed"
+ ]
+ },
+ "summary": {
+ "type": "string"
+ },
+ "timezone": {
+ "type": "string"
+ },
+ "calendarId": {
+ "type": "string"
+ },
+ "parentEventId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository-json-schema#Optional, 'calendarId'>"
+ },
+ "NewSubscriptionInCalendar": {
+ "title": "NewSubscriptionInCalendar",
+ "type": "object",
+ "description": "(tsType: @loopback/repository-json-schema#Optional, 'calendarId'>, schemaOptions: { title: 'NewSubscriptionInCalendar', exclude: [ 'id' ], optional: [ 'calendarId' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "accessRole": {
+ "type": "string",
+ "enum": [
+ "freeBusyReader",
+ "reader",
+ "writer",
+ "owner"
+ ]
+ },
+ "bgColor": {
+ "type": "string"
+ },
+ "fgColor": {
+ "type": "string"
+ },
+ "isHidden": {
+ "type": "boolean"
+ },
+ "isPrimary": {
+ "type": "boolean"
+ },
+ "identifier": {
+ "type": "string"
+ },
+ "defaultReminders": {
+ "type": "object"
+ },
+ "notificationSettings": {
+ "type": "object"
+ },
+ "calendarId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "identifier"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository-json-schema#Optional, 'calendarId'>"
+ },
+ "NewWorkingHourInCalendar": {
+ "title": "NewWorkingHourInCalendar",
+ "type": "object",
+ "description": "(tsType: @loopback/repository-json-schema#Optional, 'calendarId'>, schemaOptions: { title: 'NewWorkingHourInCalendar', exclude: [ 'id' ], optional: [ 'calendarId' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "dayOfWeek": {
+ "type": "number",
+ "enum": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ "end": {
+ "type": "string"
+ },
+ "start": {
+ "type": "string"
+ },
+ "calendarId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository-json-schema#Optional, 'calendarId'>"
+ },
+ "NewAttachmentInEvent": {
+ "title": "NewAttachmentInEvent",
+ "type": "object",
+ "description": "(tsType: @loopback/repository-json-schema#Optional, 'eventId'>, schemaOptions: { title: 'NewAttachmentInEvent', exclude: [ 'id' ], optional: [ 'eventId' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "fileUrl": {
+ "type": "string"
+ },
+ "iconLink": {
+ "type": "string"
+ },
+ "mimeType": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "title": {
+ "type": "string",
+ "maxLength": 400
+ },
+ "eventId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "fileUrl"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository-json-schema#Optional, 'eventId'>"
+ },
+ "NewAttendeeInEvent": {
+ "title": "NewAttendeeInEvent",
+ "type": "object",
+ "description": "(tsType: @loopback/repository-json-schema#Optional, 'eventId'>, schemaOptions: { title: 'NewAttendeeInEvent', exclude: [ 'id' ], optional: [ 'eventId' ] })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 200
+ },
+ "isOptional": {
+ "type": "boolean"
+ },
+ "isOrganizer": {
+ "type": "boolean"
+ },
+ "messages": {
+ "type": "string"
+ },
+ "responseStatus": {
+ "type": "string",
+ "enum": [
+ "needsAction",
+ "tentative",
+ "accepted",
+ "declined"
+ ]
+ },
+ "eventId": {
+ "type": "string"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "required": [
+ "identifier"
+ ],
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository-json-schema#Optional, 'eventId'>"
+ },
+ "loopback.Count": {
+ "type": "object",
+ "title": "loopback.Count",
+ "x-typescript-type": "@loopback/repository#Count",
+ "properties": {
+ "count": {
+ "type": "number"
+ }
+ }
+ },
+ "attachments.ScopeFilter": {
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true
+ }
+ ]
+ },
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ }
+ }
+ },
+ "additionalProperties": false,
+ "title": "attachments.ScopeFilter"
+ },
+ "attachments.IncludeFilter.Items": {
+ "title": "attachments.IncludeFilter.Items",
+ "type": "object",
+ "properties": {
+ "relation": {
+ "type": "string"
+ },
+ "scope": {
+ "$ref": "#/components/schemas/attachments.ScopeFilter"
+ }
+ }
+ },
+ "attachments.Filter": {
+ "type": "object",
+ "title": "attachments.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "fileUrl": {
+ "type": "boolean"
+ },
+ "iconLink": {
+ "type": "boolean"
+ },
+ "mimeType": {
+ "type": "boolean"
+ },
+ "title": {
+ "type": "boolean"
+ },
+ "eventId": {
+ "type": "boolean"
+ },
+ "extId": {
+ "type": "boolean"
+ },
+ "extMetadata": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "fileUrl",
+ "iconLink",
+ "mimeType",
+ "title",
+ "eventId",
+ "extId",
+ "extMetadata"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "attachments.Fields"
+ },
+ "include": {
+ "title": "attachments.IncludeFilter",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/attachments.IncludeFilter.Items"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "attachments.Filter1": {
+ "type": "object",
+ "title": "attachments.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "title": "attachments.WhereFilter",
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "fileUrl": {
+ "type": "boolean"
+ },
+ "iconLink": {
+ "type": "boolean"
+ },
+ "mimeType": {
+ "type": "boolean"
+ },
+ "title": {
+ "type": "boolean"
+ },
+ "eventId": {
+ "type": "boolean"
+ },
+ "extId": {
+ "type": "boolean"
+ },
+ "extMetadata": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "fileUrl",
+ "iconLink",
+ "mimeType",
+ "title",
+ "eventId",
+ "extId",
+ "extMetadata"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "attachments.Fields"
+ },
+ "include": {
+ "title": "attachments.IncludeFilter",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/attachments.IncludeFilter.Items"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "attendees.ScopeFilter": {
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true
+ }
+ ]
+ },
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ }
+ }
+ },
+ "additionalProperties": false,
+ "title": "attendees.ScopeFilter"
+ },
+ "attendees.IncludeFilter.Items": {
+ "title": "attendees.IncludeFilter.Items",
+ "type": "object",
+ "properties": {
+ "relation": {
+ "type": "string"
+ },
+ "scope": {
+ "$ref": "#/components/schemas/attendees.ScopeFilter"
+ }
+ }
+ },
+ "attendees.Filter": {
+ "type": "object",
+ "title": "attendees.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "identifier": {
+ "type": "boolean"
+ },
+ "isOptional": {
+ "type": "boolean"
+ },
+ "isOrganizer": {
+ "type": "boolean"
+ },
+ "messages": {
+ "type": "boolean"
+ },
+ "responseStatus": {
+ "type": "boolean"
+ },
+ "eventId": {
+ "type": "boolean"
+ },
+ "extId": {
+ "type": "boolean"
+ },
+ "extMetadata": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "identifier",
+ "isOptional",
+ "isOrganizer",
+ "messages",
+ "responseStatus",
+ "eventId",
+ "extId",
+ "extMetadata"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "attendees.Fields"
+ },
+ "include": {
+ "title": "attendees.IncludeFilter",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/attendees.IncludeFilter.Items"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "attendees.Filter1": {
+ "type": "object",
+ "title": "attendees.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "title": "attendees.WhereFilter",
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "identifier": {
+ "type": "boolean"
+ },
+ "isOptional": {
+ "type": "boolean"
+ },
+ "isOrganizer": {
+ "type": "boolean"
+ },
+ "messages": {
+ "type": "boolean"
+ },
+ "responseStatus": {
+ "type": "boolean"
+ },
+ "eventId": {
+ "type": "boolean"
+ },
+ "extId": {
+ "type": "boolean"
+ },
+ "extMetadata": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "identifier",
+ "isOptional",
+ "isOrganizer",
+ "messages",
+ "responseStatus",
+ "eventId",
+ "extId",
+ "extMetadata"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "attendees.Fields"
+ },
+ "include": {
+ "title": "attendees.IncludeFilter",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/attendees.IncludeFilter.Items"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "subscriptions.ScopeFilter": {
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true
+ }
+ ]
+ },
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ }
+ }
+ },
+ "additionalProperties": false,
+ "title": "subscriptions.ScopeFilter"
+ },
+ "subscriptions.IncludeFilter.Items": {
+ "title": "subscriptions.IncludeFilter.Items",
+ "type": "object",
+ "properties": {
+ "relation": {
+ "type": "string"
+ },
+ "scope": {
+ "$ref": "#/components/schemas/subscriptions.ScopeFilter"
+ }
+ }
+ },
+ "subscriptions.Filter": {
+ "type": "object",
+ "title": "subscriptions.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "title": "subscriptions.WhereFilter",
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "accessRole": {
+ "type": "boolean"
+ },
+ "bgColor": {
+ "type": "boolean"
+ },
+ "fgColor": {
+ "type": "boolean"
+ },
+ "isHidden": {
+ "type": "boolean"
+ },
+ "isPrimary": {
+ "type": "boolean"
+ },
+ "identifier": {
+ "type": "boolean"
+ },
+ "defaultReminders": {
+ "type": "boolean"
+ },
+ "notificationSettings": {
+ "type": "boolean"
+ },
+ "calendarId": {
+ "type": "boolean"
+ },
+ "extId": {
+ "type": "boolean"
+ },
+ "extMetadata": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "accessRole",
+ "bgColor",
+ "fgColor",
+ "isHidden",
+ "isPrimary",
+ "identifier",
+ "defaultReminders",
+ "notificationSettings",
+ "calendarId",
+ "extId",
+ "extMetadata"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "subscriptions.Fields"
+ },
+ "include": {
+ "title": "subscriptions.IncludeFilter",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/subscriptions.IncludeFilter.Items"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "calendars.ScopeFilter": {
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true
+ }
+ ]
+ },
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ }
+ }
+ },
+ "additionalProperties": false,
+ "title": "calendars.ScopeFilter"
+ },
+ "calendars.IncludeFilter.Items": {
+ "title": "calendars.IncludeFilter.Items",
+ "type": "object",
+ "properties": {
+ "relation": {
+ "type": "string"
+ },
+ "scope": {
+ "$ref": "#/components/schemas/calendars.ScopeFilter"
+ }
+ }
+ },
+ "calendars.Filter": {
+ "type": "object",
+ "title": "calendars.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "source": {
+ "type": "boolean"
+ },
+ "enableWorkingHours": {
+ "type": "boolean"
+ },
+ "location": {
+ "type": "boolean"
+ },
+ "identifier": {
+ "type": "boolean"
+ },
+ "summary": {
+ "type": "boolean"
+ },
+ "timezone": {
+ "type": "boolean"
+ },
+ "extId": {
+ "type": "boolean"
+ },
+ "extMetadata": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "source",
+ "enableWorkingHours",
+ "location",
+ "identifier",
+ "summary",
+ "timezone",
+ "extId",
+ "extMetadata"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "calendars.Fields"
+ },
+ "include": {
+ "title": "calendars.IncludeFilter",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/calendars.IncludeFilter.Items"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "calendars.Filter1": {
+ "type": "object",
+ "title": "calendars.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "title": "calendars.WhereFilter",
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "source": {
+ "type": "boolean"
+ },
+ "enableWorkingHours": {
+ "type": "boolean"
+ },
+ "location": {
+ "type": "boolean"
+ },
+ "identifier": {
+ "type": "boolean"
+ },
+ "summary": {
+ "type": "boolean"
+ },
+ "timezone": {
+ "type": "boolean"
+ },
+ "extId": {
+ "type": "boolean"
+ },
+ "extMetadata": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "source",
+ "enableWorkingHours",
+ "location",
+ "identifier",
+ "summary",
+ "timezone",
+ "extId",
+ "extMetadata"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "calendars.Fields"
+ },
+ "include": {
+ "title": "calendars.IncludeFilter",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/calendars.IncludeFilter.Items"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "events.ScopeFilter": {
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true
+ }
+ ]
+ },
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ }
+ }
+ },
+ "additionalProperties": false,
+ "title": "events.ScopeFilter"
+ },
+ "events.IncludeFilter.Items": {
+ "title": "events.IncludeFilter.Items",
+ "type": "object",
+ "properties": {
+ "relation": {
+ "type": "string"
+ },
+ "scope": {
+ "$ref": "#/components/schemas/events.ScopeFilter"
+ }
+ }
+ },
+ "events.Filter": {
+ "type": "object",
+ "title": "events.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "bgColor": {
+ "type": "boolean"
+ },
+ "description": {
+ "type": "boolean"
+ },
+ "endDateTime": {
+ "type": "boolean"
+ },
+ "fgColor": {
+ "type": "boolean"
+ },
+ "iCalUid": {
+ "type": "boolean"
+ },
+ "isFullDayEvent": {
+ "type": "boolean"
+ },
+ "isLocked": {
+ "type": "boolean"
+ },
+ "link": {
+ "type": "boolean"
+ },
+ "location": {
+ "type": "boolean"
+ },
+ "meetingLink": {
+ "type": "boolean"
+ },
+ "identifier": {
+ "type": "boolean"
+ },
+ "startDateTime": {
+ "type": "boolean"
+ },
+ "status": {
+ "type": "boolean"
+ },
+ "summary": {
+ "type": "boolean"
+ },
+ "timezone": {
+ "type": "boolean"
+ },
+ "calendarId": {
+ "type": "boolean"
+ },
+ "parentEventId": {
+ "type": "boolean"
+ },
+ "extId": {
+ "type": "boolean"
+ },
+ "extMetadata": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "bgColor",
+ "description",
+ "endDateTime",
+ "fgColor",
+ "iCalUid",
+ "isFullDayEvent",
+ "isLocked",
+ "link",
+ "location",
+ "meetingLink",
+ "identifier",
+ "startDateTime",
+ "status",
+ "summary",
+ "timezone",
+ "calendarId",
+ "parentEventId",
+ "extId",
+ "extMetadata"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "events.Fields"
+ },
+ "include": {
+ "title": "events.IncludeFilter",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/events.IncludeFilter.Items"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "events_attendees_view.ScopeFilter": {
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true
+ }
+ ]
+ },
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ }
+ }
+ },
+ "additionalProperties": false,
+ "title": "events_attendees_view.ScopeFilter"
+ },
+ "events_attendees_view.IncludeFilter.Items": {
+ "title": "events_attendees_view.IncludeFilter.Items",
+ "type": "object",
+ "properties": {
+ "relation": {
+ "type": "string"
+ },
+ "scope": {
+ "$ref": "#/components/schemas/events_attendees_view.ScopeFilter"
+ }
+ }
+ },
+ "events_attendees_view.Filter": {
+ "type": "object",
+ "title": "events_attendees_view.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "title": "events_attendees_view.WhereFilter",
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "bgColor": {
+ "type": "boolean"
+ },
+ "description": {
+ "type": "boolean"
+ },
+ "endDateTime": {
+ "type": "boolean"
+ },
+ "fgColor": {
+ "type": "boolean"
+ },
+ "iCalUid": {
+ "type": "boolean"
+ },
+ "isFullDayEvent": {
+ "type": "boolean"
+ },
+ "isLocked": {
+ "type": "boolean"
+ },
+ "link": {
+ "type": "boolean"
+ },
+ "location": {
+ "type": "boolean"
+ },
+ "meetingLink": {
+ "type": "boolean"
+ },
+ "identifier": {
+ "type": "boolean"
+ },
+ "startDateTime": {
+ "type": "boolean"
+ },
+ "status": {
+ "type": "boolean"
+ },
+ "summary": {
+ "type": "boolean"
+ },
+ "timezone": {
+ "type": "boolean"
+ },
+ "calendarId": {
+ "type": "boolean"
+ },
+ "parentEventId": {
+ "type": "boolean"
+ },
+ "extId": {
+ "type": "boolean"
+ },
+ "extMetadata": {
+ "type": "boolean"
+ },
+ "attendeeId": {
+ "type": "boolean"
+ },
+ "isOptional": {
+ "type": "boolean"
+ },
+ "attendeeIdentifier": {
+ "type": "boolean"
+ },
+ "isOrganizer": {
+ "type": "boolean"
+ },
+ "messages": {
+ "type": "boolean"
+ },
+ "responseStatus": {
+ "type": "boolean"
+ },
+ "eventId": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "bgColor",
+ "description",
+ "endDateTime",
+ "fgColor",
+ "iCalUid",
+ "isFullDayEvent",
+ "isLocked",
+ "link",
+ "location",
+ "meetingLink",
+ "identifier",
+ "startDateTime",
+ "status",
+ "summary",
+ "timezone",
+ "calendarId",
+ "parentEventId",
+ "extId",
+ "extMetadata",
+ "attendeeId",
+ "isOptional",
+ "attendeeIdentifier",
+ "isOrganizer",
+ "messages",
+ "responseStatus",
+ "eventId"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "events_attendees_view.Fields"
+ },
+ "include": {
+ "title": "events_attendees_view.IncludeFilter",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/events_attendees_view.IncludeFilter.Items"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "settings.Filter": {
+ "type": "object",
+ "title": "settings.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "ownerId": {
+ "type": "boolean"
+ },
+ "ownerType": {
+ "type": "boolean"
+ },
+ "settingName": {
+ "type": "boolean"
+ },
+ "settingValue": {
+ "type": "boolean"
+ },
+ "extId": {
+ "type": "boolean"
+ },
+ "extMetadata": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "ownerId",
+ "ownerType",
+ "settingName",
+ "settingValue",
+ "extId",
+ "extMetadata"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "settings.Fields"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "settings.Filter1": {
+ "type": "object",
+ "title": "settings.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "title": "settings.WhereFilter",
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "ownerId": {
+ "type": "boolean"
+ },
+ "ownerType": {
+ "type": "boolean"
+ },
+ "settingName": {
+ "type": "boolean"
+ },
+ "settingValue": {
+ "type": "boolean"
+ },
+ "extId": {
+ "type": "boolean"
+ },
+ "extMetadata": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "ownerId",
+ "ownerType",
+ "settingName",
+ "settingValue",
+ "extId",
+ "extMetadata"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "settings.Fields"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "subscriptions.Filter1": {
+ "type": "object",
+ "title": "subscriptions.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "accessRole": {
+ "type": "boolean"
+ },
+ "bgColor": {
+ "type": "boolean"
+ },
+ "fgColor": {
+ "type": "boolean"
+ },
+ "isHidden": {
+ "type": "boolean"
+ },
+ "isPrimary": {
+ "type": "boolean"
+ },
+ "identifier": {
+ "type": "boolean"
+ },
+ "defaultReminders": {
+ "type": "boolean"
+ },
+ "notificationSettings": {
+ "type": "boolean"
+ },
+ "calendarId": {
+ "type": "boolean"
+ },
+ "extId": {
+ "type": "boolean"
+ },
+ "extMetadata": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "accessRole",
+ "bgColor",
+ "fgColor",
+ "isHidden",
+ "isPrimary",
+ "identifier",
+ "defaultReminders",
+ "notificationSettings",
+ "calendarId",
+ "extId",
+ "extMetadata"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "subscriptions.Fields"
+ },
+ "include": {
+ "title": "subscriptions.IncludeFilter",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/subscriptions.IncludeFilter.Items"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "themes.Filter": {
+ "type": "object",
+ "title": "themes.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "calBg": {
+ "type": "boolean"
+ },
+ "calFg": {
+ "type": "boolean"
+ },
+ "eventBg": {
+ "type": "boolean"
+ },
+ "eventFg": {
+ "type": "boolean"
+ },
+ "extId": {
+ "type": "boolean"
+ },
+ "extMetadata": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "calBg",
+ "calFg",
+ "eventBg",
+ "eventFg",
+ "extId",
+ "extMetadata"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "themes.Fields"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "themes.Filter1": {
+ "type": "object",
+ "title": "themes.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "title": "themes.WhereFilter",
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "calBg": {
+ "type": "boolean"
+ },
+ "calFg": {
+ "type": "boolean"
+ },
+ "eventBg": {
+ "type": "boolean"
+ },
+ "eventFg": {
+ "type": "boolean"
+ },
+ "extId": {
+ "type": "boolean"
+ },
+ "extMetadata": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "calBg",
+ "calFg",
+ "eventBg",
+ "eventFg",
+ "extId",
+ "extMetadata"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "themes.Fields"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "working_hours.ScopeFilter": {
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true
+ }
+ ]
+ },
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": true
+ }
+ }
+ },
+ "additionalProperties": false,
+ "title": "working_hours.ScopeFilter"
+ },
+ "working_hours.IncludeFilter.Items": {
+ "title": "working_hours.IncludeFilter.Items",
+ "type": "object",
+ "properties": {
+ "relation": {
+ "type": "string"
+ },
+ "scope": {
+ "$ref": "#/components/schemas/working_hours.ScopeFilter"
+ }
+ }
+ },
+ "working_hours.Filter": {
+ "type": "object",
+ "title": "working_hours.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "dayOfWeek": {
+ "type": "boolean"
+ },
+ "end": {
+ "type": "boolean"
+ },
+ "start": {
+ "type": "boolean"
+ },
+ "calendarId": {
+ "type": "boolean"
+ },
+ "extId": {
+ "type": "boolean"
+ },
+ "extMetadata": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "dayOfWeek",
+ "end",
+ "start",
+ "calendarId",
+ "extId",
+ "extMetadata"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "working_hours.Fields"
+ },
+ "include": {
+ "title": "working_hours.IncludeFilter",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/working_hours.IncludeFilter.Items"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ },
+ "working_hours.Filter1": {
+ "type": "object",
+ "title": "working_hours.Filter",
+ "properties": {
+ "offset": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "example": 100
+ },
+ "skip": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "order": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "where": {
+ "title": "working_hours.WhereFilter",
+ "type": "object",
+ "additionalProperties": true
+ },
+ "fields": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "boolean"
+ },
+ "deletedBy": {
+ "type": "boolean"
+ },
+ "createdOn": {
+ "type": "boolean"
+ },
+ "modifiedOn": {
+ "type": "boolean"
+ },
+ "createdBy": {
+ "type": "boolean"
+ },
+ "modifiedBy": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "boolean"
+ },
+ "dayOfWeek": {
+ "type": "boolean"
+ },
+ "end": {
+ "type": "boolean"
+ },
+ "start": {
+ "type": "boolean"
+ },
+ "calendarId": {
+ "type": "boolean"
+ },
+ "extId": {
+ "type": "boolean"
+ },
+ "extMetadata": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "deleted",
+ "deletedOn",
+ "deletedBy",
+ "createdOn",
+ "modifiedOn",
+ "createdBy",
+ "modifiedBy",
+ "id",
+ "dayOfWeek",
+ "end",
+ "start",
+ "calendarId",
+ "extId",
+ "extMetadata"
+ ],
+ "example": "deleted"
+ },
+ "uniqueItems": true
+ }
+ ],
+ "title": "working_hours.Fields"
+ },
+ "include": {
+ "title": "working_hours.IncludeFilter",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/working_hours.IncludeFilter.Items"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "@loopback/repository#Filter"
+ }
+ }
+ },
+ "servers": [
+ {
+ "url": "/"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/services/scheduler-service/openapi.md b/services/scheduler-service/openapi.md
new file mode 100644
index 0000000000..ebcd08c7ea
--- /dev/null
+++ b/services/scheduler-service/openapi.md
@@ -0,0 +1,17712 @@
+---
+title: Scheduler Service v1.0.0
+language_tabs:
+ - "'javascript": JavaScript
+ - "'javascript--nodejs": Node.JS'
+language_clients:
+ - "'javascript": request'
+ - "'javascript--nodejs": ""
+toc_footers: []
+includes: []
+search: false
+highlight_theme: darkula
+headingLevel: 2
+
+---
+
+
+
+Scheduler Service v1.0.0
+
+> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
+
+services
+
+Base URLs:
+
+* /
+
+# Authentication
+
+- HTTP Authentication, scheme: bearer
+
+AttachmentController
+
+## AttachmentController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/attachments/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /attachments/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Attachment model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## AttachmentController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/attachments/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /attachments/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[Attachment](#schemaattachment)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Attachment PUT success|None|
+
+
+This operation does not require authentication
+
+
+## AttachmentController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/attachments/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /attachments/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[AttachmentPartial](#schemaattachmentpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Attachment PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## AttachmentController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/attachments/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /attachments/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[attachments.Filter](#schemaattachments.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Attachment model instance|[AttachmentWithRelations](#schemaattachmentwithrelations)|
+
+
+This operation does not require authentication
+
+
+## AttachmentController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/attachments/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /attachments/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Attachment DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## AttachmentController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/attachments',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /attachments`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewAttachment](#schemanewattachment)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Attachment model instance|[Attachment](#schemaattachment)|
+
+
+This operation does not require authentication
+
+
+## AttachmentController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/attachments',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /attachments`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[AttachmentPartial](#schemaattachmentpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Attachment PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## AttachmentController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/attachments',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /attachments`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[attachments.Filter1](#schemaattachments.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {}
+ ]
+ }
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Attachment model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|[(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })]|
+|» AttachmentWithRelations|[AttachmentWithRelations](#schemaattachmentwithrelations)|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» fileUrl|string|true|none|none|
+|»» iconLink|string|false|none|none|
+|»» mimeType|string|false|none|none|
+|»» title|string|false|none|none|
+|»» eventId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+|»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» deleted|boolean|false|none|none|
+|»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»» deletedBy|string¦null|false|none|none|
+|»»» createdOn|string(date-time)|false|none|none|
+|»»» modifiedOn|string(date-time)|false|none|none|
+|»»» createdBy|string|false|none|none|
+|»»» modifiedBy|string|false|none|none|
+|»»» id|string|false|none|none|
+|»»» bgColor|string|false|none|none|
+|»»» description|string|false|none|none|
+|»»» endDateTime|string(date-time)|false|none|none|
+|»»» fgColor|string|false|none|none|
+|»»» iCalUid|string|false|none|none|
+|»»» isFullDayEvent|boolean|false|none|none|
+|»»» isLocked|boolean|false|none|none|
+|»»» link|string|false|none|none|
+|»»» location|string|false|none|none|
+|»»» meetingLink|string|false|none|none|
+|»»» identifier|string|false|none|none|
+|»»» startDateTime|string(date-time)|false|none|none|
+|»»» status|string|false|none|none|
+|»»» summary|string|false|none|none|
+|»»» timezone|string|false|none|none|
+|»»» calendarId|string|true|none|none|
+|»»» parentEventId|string|false|none|none|
+|»»» extId|string|false|none|none|
+|»»» extMetadata|object|false|none|none|
+|»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» deleted|boolean|false|none|none|
+|»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»» deletedBy|string¦null|false|none|none|
+|»»»» createdOn|string(date-time)|false|none|none|
+|»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»» createdBy|string|false|none|none|
+|»»»» modifiedBy|string|false|none|none|
+|»»»» id|string|false|none|none|
+|»»»» source|string|false|none|none|
+|»»»» enableWorkingHours|boolean|false|none|none|
+|»»»» location|string|false|none|none|
+|»»»» identifier|string|true|none|none|
+|»»»» summary|string|false|none|none|
+|»»»» timezone|string|false|none|none|
+|»»»» extId|string|false|none|none|
+|»»»» extMetadata|object|false|none|none|
+|»»»» events|[[EventWithRelations](#schemaeventwithrelations)]|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» EventWithRelations|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» workingHours|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» WorkingHourWithRelations|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» deleted|boolean|false|none|none|
+|»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»» createdBy|string|false|none|none|
+|»»»»»» modifiedBy|string|false|none|none|
+|»»»»»» id|string|false|none|none|
+|»»»»»» dayOfWeek|number|false|none|none|
+|»»»»»» end|string|false|none|none|
+|»»»»»» start|string|false|none|none|
+|»»»»»» calendarId|string|true|none|none|
+|»»»»»» extId|string|false|none|none|
+|»»»»»» extMetadata|object|false|none|none|
+|»»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» subscriptions|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» deleted|boolean|false|none|none|
+|»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»» createdBy|string|false|none|none|
+|»»»»»» modifiedBy|string|false|none|none|
+|»»»»»» id|string|false|none|none|
+|»»»»»» accessRole|string|false|none|none|
+|»»»»»» bgColor|string|false|none|none|
+|»»»»»» fgColor|string|false|none|none|
+|»»»»»» isHidden|boolean|false|none|none|
+|»»»»»» isPrimary|boolean|false|none|none|
+|»»»»»» identifier|string|true|none|none|
+|»»»»»» defaultReminders|object|false|none|none|
+|»»»»»» notificationSettings|object|false|none|none|
+|»»»»»» calendarId|string|true|none|none|
+|»»»»»» extId|string|false|none|none|
+|»»»»»» extMetadata|object|false|none|none|
+|»»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» parentEvent|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» attendees|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» AttendeeWithRelations|[AttendeeWithRelations](#schemaattendeewithrelations)|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» identifier|string|true|none|none|
+|»»»»» isOptional|boolean|false|none|none|
+|»»»»» isOrganizer|boolean|false|none|none|
+|»»»»» messages|string|false|none|none|
+|»»»»» responseStatus|string|false|none|none|
+|»»»»» eventId|string|true|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» attachments|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» AttachmentWithRelations|[AttachmentWithRelations](#schemaattachmentwithrelations)|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+
+This operation does not require authentication
+
+
+AttendeeController
+
+## AttendeeController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/attendees/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /attendees/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Attendee model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## AttendeeController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/attendees/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /attendees/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[Attendee](#schemaattendee)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Attendee PUT success|None|
+
+
+This operation does not require authentication
+
+
+## AttendeeController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/attendees/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /attendees/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[AttendeePartial](#schemaattendeepartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Attendee PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## AttendeeController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/attendees/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /attendees/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[attendees.Filter](#schemaattendees.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Attendee model instance|[AttendeeWithRelations](#schemaattendeewithrelations)|
+
+
+This operation does not require authentication
+
+
+## AttendeeController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/attendees/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /attendees/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Attendee DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## AttendeeController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/attendees',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /attendees`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewAttendee](#schemanewattendee)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Attendee model instance|[Attendee](#schemaattendee)|
+
+
+This operation does not require authentication
+
+
+## AttendeeController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/attendees',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /attendees`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[AttendeePartial](#schemaattendeepartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Attendee PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## AttendeeController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/attendees',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /attendees`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[attendees.Filter1](#schemaattendees.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {}
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Attendee model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|[(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })]|
+|» AttendeeWithRelations|[AttendeeWithRelations](#schemaattendeewithrelations)|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» identifier|string|true|none|none|
+|»» isOptional|boolean|false|none|none|
+|»» isOrganizer|boolean|false|none|none|
+|»» messages|string|false|none|none|
+|»» responseStatus|string|false|none|none|
+|»» eventId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+|»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» deleted|boolean|false|none|none|
+|»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»» deletedBy|string¦null|false|none|none|
+|»»» createdOn|string(date-time)|false|none|none|
+|»»» modifiedOn|string(date-time)|false|none|none|
+|»»» createdBy|string|false|none|none|
+|»»» modifiedBy|string|false|none|none|
+|»»» id|string|false|none|none|
+|»»» bgColor|string|false|none|none|
+|»»» description|string|false|none|none|
+|»»» endDateTime|string(date-time)|false|none|none|
+|»»» fgColor|string|false|none|none|
+|»»» iCalUid|string|false|none|none|
+|»»» isFullDayEvent|boolean|false|none|none|
+|»»» isLocked|boolean|false|none|none|
+|»»» link|string|false|none|none|
+|»»» location|string|false|none|none|
+|»»» meetingLink|string|false|none|none|
+|»»» identifier|string|false|none|none|
+|»»» startDateTime|string(date-time)|false|none|none|
+|»»» status|string|false|none|none|
+|»»» summary|string|false|none|none|
+|»»» timezone|string|false|none|none|
+|»»» calendarId|string|true|none|none|
+|»»» parentEventId|string|false|none|none|
+|»»» extId|string|false|none|none|
+|»»» extMetadata|object|false|none|none|
+|»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» deleted|boolean|false|none|none|
+|»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»» deletedBy|string¦null|false|none|none|
+|»»»» createdOn|string(date-time)|false|none|none|
+|»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»» createdBy|string|false|none|none|
+|»»»» modifiedBy|string|false|none|none|
+|»»»» id|string|false|none|none|
+|»»»» source|string|false|none|none|
+|»»»» enableWorkingHours|boolean|false|none|none|
+|»»»» location|string|false|none|none|
+|»»»» identifier|string|true|none|none|
+|»»»» summary|string|false|none|none|
+|»»»» timezone|string|false|none|none|
+|»»»» extId|string|false|none|none|
+|»»»» extMetadata|object|false|none|none|
+|»»»» events|[[EventWithRelations](#schemaeventwithrelations)]|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» EventWithRelations|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» workingHours|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» WorkingHourWithRelations|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» deleted|boolean|false|none|none|
+|»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»» createdBy|string|false|none|none|
+|»»»»»» modifiedBy|string|false|none|none|
+|»»»»»» id|string|false|none|none|
+|»»»»»» dayOfWeek|number|false|none|none|
+|»»»»»» end|string|false|none|none|
+|»»»»»» start|string|false|none|none|
+|»»»»»» calendarId|string|true|none|none|
+|»»»»»» extId|string|false|none|none|
+|»»»»»» extMetadata|object|false|none|none|
+|»»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» subscriptions|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» deleted|boolean|false|none|none|
+|»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»» createdBy|string|false|none|none|
+|»»»»»» modifiedBy|string|false|none|none|
+|»»»»»» id|string|false|none|none|
+|»»»»»» accessRole|string|false|none|none|
+|»»»»»» bgColor|string|false|none|none|
+|»»»»»» fgColor|string|false|none|none|
+|»»»»»» isHidden|boolean|false|none|none|
+|»»»»»» isPrimary|boolean|false|none|none|
+|»»»»»» identifier|string|true|none|none|
+|»»»»»» defaultReminders|object|false|none|none|
+|»»»»»» notificationSettings|object|false|none|none|
+|»»»»»» calendarId|string|true|none|none|
+|»»»»»» extId|string|false|none|none|
+|»»»»»» extMetadata|object|false|none|none|
+|»»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» parentEvent|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» attendees|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» AttendeeWithRelations|[AttendeeWithRelations](#schemaattendeewithrelations)|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»» attachments|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» AttachmentWithRelations|[AttachmentWithRelations](#schemaattachmentwithrelations)|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» fileUrl|string|true|none|none|
+|»»»»» iconLink|string|false|none|none|
+|»»»»» mimeType|string|false|none|none|
+|»»»»» title|string|false|none|none|
+|»»»»» eventId|string|true|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+
+This operation does not require authentication
+
+
+CalendarController
+
+## CalendarController.createWithSubscription
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/calendars/calendarSubscription',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /calendars/calendarSubscription`
+
+> Body parameter
+
+```json
+{
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewCalendar](#schemanewcalendar)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar model instance|[CalendarDTO](#schemacalendardto)|
+
+
+This operation does not require authentication
+
+
+## CalendarController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/calendars/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /calendars/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## CalendarController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/calendars/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /calendars/{id}`
+
+> Body parameter
+
+```json
+{
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[CalendarDTO](#schemacalendardto)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Calendar PUT success|None|
+
+
+This operation does not require authentication
+
+
+## CalendarController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/calendars/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /calendars/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[CalendarPartial](#schemacalendarpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Calendar PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## CalendarController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/calendars/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /calendars/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[calendars.Filter](#schemacalendars.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ }
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": []
+ }
+ }
+ ]
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar model instance|[CalendarWithRelations](#schemacalendarwithrelations)|
+
+
+This operation does not require authentication
+
+
+## CalendarController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/calendars/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /calendars/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Calendar DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## CalendarController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/calendars',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /calendars`
+
+> Body parameter
+
+```json
+{
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewCalendar](#schemanewcalendar)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar model instance|[Calendar](#schemacalendar)|
+
+
+This operation does not require authentication
+
+
+## CalendarController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/calendars',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /calendars`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[CalendarPartial](#schemacalendarpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## CalendarController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/calendars',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /calendars`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[calendars.Filter1](#schemacalendars.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Calendar model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[CalendarWithRelations](#schemacalendarwithrelations)]|false|none|[(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })]|
+|» CalendarWithRelations|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» source|string|false|none|none|
+|»» enableWorkingHours|boolean|false|none|none|
+|»» location|string|false|none|none|
+|»» identifier|string|true|none|none|
+|»» summary|string|false|none|none|
+|»» timezone|string|false|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+|»» events|[[EventWithRelations](#schemaeventwithrelations)]|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» EventWithRelations|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» deleted|boolean|false|none|none|
+|»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»» deletedBy|string¦null|false|none|none|
+|»»»» createdOn|string(date-time)|false|none|none|
+|»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»» createdBy|string|false|none|none|
+|»»»» modifiedBy|string|false|none|none|
+|»»»» id|string|false|none|none|
+|»»»» bgColor|string|false|none|none|
+|»»»» description|string|false|none|none|
+|»»»» endDateTime|string(date-time)|false|none|none|
+|»»»» fgColor|string|false|none|none|
+|»»»» iCalUid|string|false|none|none|
+|»»»» isFullDayEvent|boolean|false|none|none|
+|»»»» isLocked|boolean|false|none|none|
+|»»»» link|string|false|none|none|
+|»»»» location|string|false|none|none|
+|»»»» meetingLink|string|false|none|none|
+|»»»» identifier|string|false|none|none|
+|»»»» startDateTime|string(date-time)|false|none|none|
+|»»»» status|string|false|none|none|
+|»»»» summary|string|false|none|none|
+|»»»» timezone|string|false|none|none|
+|»»»» calendarId|string|true|none|none|
+|»»»» parentEventId|string|false|none|none|
+|»»»» extId|string|false|none|none|
+|»»»» extMetadata|object|false|none|none|
+|»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» parentEvent|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» attendees|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» AttendeeWithRelations|[AttendeeWithRelations](#schemaattendeewithrelations)|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» deleted|boolean|false|none|none|
+|»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»» createdBy|string|false|none|none|
+|»»»»»» modifiedBy|string|false|none|none|
+|»»»»»» id|string|false|none|none|
+|»»»»»» identifier|string|true|none|none|
+|»»»»»» isOptional|boolean|false|none|none|
+|»»»»»» isOrganizer|boolean|false|none|none|
+|»»»»»» messages|string|false|none|none|
+|»»»»»» responseStatus|string|false|none|none|
+|»»»»»» eventId|string|true|none|none|
+|»»»»»» extId|string|false|none|none|
+|»»»»»» extMetadata|object|false|none|none|
+|»»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» attachments|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» AttachmentWithRelations|[AttachmentWithRelations](#schemaattachmentwithrelations)|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» deleted|boolean|false|none|none|
+|»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»» createdBy|string|false|none|none|
+|»»»»»» modifiedBy|string|false|none|none|
+|»»»»»» id|string|false|none|none|
+|»»»»»» fileUrl|string|true|none|none|
+|»»»»»» iconLink|string|false|none|none|
+|»»»»»» mimeType|string|false|none|none|
+|»»»»»» title|string|false|none|none|
+|»»»»»» eventId|string|true|none|none|
+|»»»»»» extId|string|false|none|none|
+|»»»»»» extMetadata|object|false|none|none|
+|»»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»» workingHours|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»» WorkingHourWithRelations|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» deleted|boolean|false|none|none|
+|»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»» deletedBy|string¦null|false|none|none|
+|»»»» createdOn|string(date-time)|false|none|none|
+|»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»» createdBy|string|false|none|none|
+|»»»» modifiedBy|string|false|none|none|
+|»»»» id|string|false|none|none|
+|»»»» dayOfWeek|number|false|none|none|
+|»»»» end|string|false|none|none|
+|»»»» start|string|false|none|none|
+|»»»» calendarId|string|true|none|none|
+|»»»» extId|string|false|none|none|
+|»»»» extMetadata|object|false|none|none|
+|»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»» subscriptions|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» deleted|boolean|false|none|none|
+|»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»» deletedBy|string¦null|false|none|none|
+|»»»» createdOn|string(date-time)|false|none|none|
+|»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»» createdBy|string|false|none|none|
+|»»»» modifiedBy|string|false|none|none|
+|»»»» id|string|false|none|none|
+|»»»» accessRole|string|false|none|none|
+|»»»» bgColor|string|false|none|none|
+|»»»» fgColor|string|false|none|none|
+|»»»» isHidden|boolean|false|none|none|
+|»»»» isPrimary|boolean|false|none|none|
+|»»»» identifier|string|true|none|none|
+|»»»» defaultReminders|object|false|none|none|
+|»»»» notificationSettings|object|false|none|none|
+|»»»» calendarId|string|true|none|none|
+|»»»» extId|string|false|none|none|
+|»»»» extMetadata|object|false|none|none|
+|»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+
+This operation does not require authentication
+
+
+SubscriptionController
+
+## SubscriptionController.findMe
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/calendars/subscriptions/me',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /calendars/subscriptions/me`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[subscriptions.Filter](#schemasubscriptions.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {}
+ ]
+ }
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Subscription model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|[(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })]|
+|» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» accessRole|string|false|none|none|
+|»» bgColor|string|false|none|none|
+|»» fgColor|string|false|none|none|
+|»» isHidden|boolean|false|none|none|
+|»» isPrimary|boolean|false|none|none|
+|»» identifier|string|true|none|none|
+|»» defaultReminders|object|false|none|none|
+|»» notificationSettings|object|false|none|none|
+|»» calendarId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+|»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» deleted|boolean|false|none|none|
+|»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»» deletedBy|string¦null|false|none|none|
+|»»» createdOn|string(date-time)|false|none|none|
+|»»» modifiedOn|string(date-time)|false|none|none|
+|»»» createdBy|string|false|none|none|
+|»»» modifiedBy|string|false|none|none|
+|»»» id|string|false|none|none|
+|»»» source|string|false|none|none|
+|»»» enableWorkingHours|boolean|false|none|none|
+|»»» location|string|false|none|none|
+|»»» identifier|string|true|none|none|
+|»»» summary|string|false|none|none|
+|»»» timezone|string|false|none|none|
+|»»» extId|string|false|none|none|
+|»»» extMetadata|object|false|none|none|
+|»»» events|[[EventWithRelations](#schemaeventwithrelations)]|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» EventWithRelations|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» bgColor|string|false|none|none|
+|»»»»» description|string|false|none|none|
+|»»»»» endDateTime|string(date-time)|false|none|none|
+|»»»»» fgColor|string|false|none|none|
+|»»»»» iCalUid|string|false|none|none|
+|»»»»» isFullDayEvent|boolean|false|none|none|
+|»»»»» isLocked|boolean|false|none|none|
+|»»»»» link|string|false|none|none|
+|»»»»» location|string|false|none|none|
+|»»»»» meetingLink|string|false|none|none|
+|»»»»» identifier|string|false|none|none|
+|»»»»» startDateTime|string(date-time)|false|none|none|
+|»»»»» status|string|false|none|none|
+|»»»»» summary|string|false|none|none|
+|»»»»» timezone|string|false|none|none|
+|»»»»» calendarId|string|true|none|none|
+|»»»»» parentEventId|string|false|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» parentEvent|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» attendees|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» AttendeeWithRelations|[AttendeeWithRelations](#schemaattendeewithrelations)|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»»» deleted|boolean|false|none|none|
+|»»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»»» createdBy|string|false|none|none|
+|»»»»»»» modifiedBy|string|false|none|none|
+|»»»»»»» id|string|false|none|none|
+|»»»»»»» identifier|string|true|none|none|
+|»»»»»»» isOptional|boolean|false|none|none|
+|»»»»»»» isOrganizer|boolean|false|none|none|
+|»»»»»»» messages|string|false|none|none|
+|»»»»»»» responseStatus|string|false|none|none|
+|»»»»»»» eventId|string|true|none|none|
+|»»»»»»» extId|string|false|none|none|
+|»»»»»»» extMetadata|object|false|none|none|
+|»»»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» attachments|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» AttachmentWithRelations|[AttachmentWithRelations](#schemaattachmentwithrelations)|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»»» deleted|boolean|false|none|none|
+|»»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»»» createdBy|string|false|none|none|
+|»»»»»»» modifiedBy|string|false|none|none|
+|»»»»»»» id|string|false|none|none|
+|»»»»»»» fileUrl|string|true|none|none|
+|»»»»»»» iconLink|string|false|none|none|
+|»»»»»»» mimeType|string|false|none|none|
+|»»»»»»» title|string|false|none|none|
+|»»»»»»» eventId|string|true|none|none|
+|»»»»»»» extId|string|false|none|none|
+|»»»»»»» extMetadata|object|false|none|none|
+|»»»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» workingHours|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» WorkingHourWithRelations|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» dayOfWeek|number|false|none|none|
+|»»»»» end|string|false|none|none|
+|»»»»» start|string|false|none|none|
+|»»»»» calendarId|string|true|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» subscriptions|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+
+This operation does not require authentication
+
+
+## SubscriptionController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/subscriptions/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /subscriptions/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Subscription model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## SubscriptionController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/subscriptions/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /subscriptions/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[Subscription](#schemasubscription)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Subscription PUT success|None|
+
+
+This operation does not require authentication
+
+
+## SubscriptionController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/subscriptions/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /subscriptions/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[SubscriptionPartial](#schemasubscriptionpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Subscription PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## SubscriptionController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/subscriptions/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /subscriptions/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[subscriptions.Filter1](#schemasubscriptions.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Subscription model instance|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|
+
+
+This operation does not require authentication
+
+
+## SubscriptionController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/subscriptions/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /subscriptions/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Subscription DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## SubscriptionController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/subscriptions',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /subscriptions`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewSubscription](#schemanewsubscription)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Subscription model instance|[Subscription](#schemasubscription)|
+
+
+This operation does not require authentication
+
+
+## SubscriptionController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/subscriptions',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /subscriptions`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[SubscriptionPartial](#schemasubscriptionpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Subscription PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## SubscriptionController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/subscriptions',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /subscriptions`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[subscriptions.Filter](#schemasubscriptions.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {}
+ ]
+ }
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Subscription model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|[(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })]|
+|» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» accessRole|string|false|none|none|
+|»» bgColor|string|false|none|none|
+|»» fgColor|string|false|none|none|
+|»» isHidden|boolean|false|none|none|
+|»» isPrimary|boolean|false|none|none|
+|»» identifier|string|true|none|none|
+|»» defaultReminders|object|false|none|none|
+|»» notificationSettings|object|false|none|none|
+|»» calendarId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+|»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» deleted|boolean|false|none|none|
+|»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»» deletedBy|string¦null|false|none|none|
+|»»» createdOn|string(date-time)|false|none|none|
+|»»» modifiedOn|string(date-time)|false|none|none|
+|»»» createdBy|string|false|none|none|
+|»»» modifiedBy|string|false|none|none|
+|»»» id|string|false|none|none|
+|»»» source|string|false|none|none|
+|»»» enableWorkingHours|boolean|false|none|none|
+|»»» location|string|false|none|none|
+|»»» identifier|string|true|none|none|
+|»»» summary|string|false|none|none|
+|»»» timezone|string|false|none|none|
+|»»» extId|string|false|none|none|
+|»»» extMetadata|object|false|none|none|
+|»»» events|[[EventWithRelations](#schemaeventwithrelations)]|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» EventWithRelations|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» bgColor|string|false|none|none|
+|»»»»» description|string|false|none|none|
+|»»»»» endDateTime|string(date-time)|false|none|none|
+|»»»»» fgColor|string|false|none|none|
+|»»»»» iCalUid|string|false|none|none|
+|»»»»» isFullDayEvent|boolean|false|none|none|
+|»»»»» isLocked|boolean|false|none|none|
+|»»»»» link|string|false|none|none|
+|»»»»» location|string|false|none|none|
+|»»»»» meetingLink|string|false|none|none|
+|»»»»» identifier|string|false|none|none|
+|»»»»» startDateTime|string(date-time)|false|none|none|
+|»»»»» status|string|false|none|none|
+|»»»»» summary|string|false|none|none|
+|»»»»» timezone|string|false|none|none|
+|»»»»» calendarId|string|true|none|none|
+|»»»»» parentEventId|string|false|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» parentEvent|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» attendees|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» AttendeeWithRelations|[AttendeeWithRelations](#schemaattendeewithrelations)|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»»» deleted|boolean|false|none|none|
+|»»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»»» createdBy|string|false|none|none|
+|»»»»»»» modifiedBy|string|false|none|none|
+|»»»»»»» id|string|false|none|none|
+|»»»»»»» identifier|string|true|none|none|
+|»»»»»»» isOptional|boolean|false|none|none|
+|»»»»»»» isOrganizer|boolean|false|none|none|
+|»»»»»»» messages|string|false|none|none|
+|»»»»»»» responseStatus|string|false|none|none|
+|»»»»»»» eventId|string|true|none|none|
+|»»»»»»» extId|string|false|none|none|
+|»»»»»»» extMetadata|object|false|none|none|
+|»»»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» attachments|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» AttachmentWithRelations|[AttachmentWithRelations](#schemaattachmentwithrelations)|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»»» deleted|boolean|false|none|none|
+|»»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»»» createdBy|string|false|none|none|
+|»»»»»»» modifiedBy|string|false|none|none|
+|»»»»»»» id|string|false|none|none|
+|»»»»»»» fileUrl|string|true|none|none|
+|»»»»»»» iconLink|string|false|none|none|
+|»»»»»»» mimeType|string|false|none|none|
+|»»»»»»» title|string|false|none|none|
+|»»»»»»» eventId|string|true|none|none|
+|»»»»»»» extId|string|false|none|none|
+|»»»»»»» extMetadata|object|false|none|none|
+|»»»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» workingHours|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» WorkingHourWithRelations|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» dayOfWeek|number|false|none|none|
+|»»»»» end|string|false|none|none|
+|»»»»» start|string|false|none|none|
+|»»»»» calendarId|string|true|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» subscriptions|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+
+This operation does not require authentication
+
+
+CalendarEventController
+
+## CalendarEventController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/calendars/{id}/events',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /calendars/{id}/events`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[NewEventInCalendar](#schemaneweventincalendar)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar model instance|[Event](#schemaevent)|
+
+
+This operation does not require authentication
+
+
+## CalendarEventController.patch
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/calendars/{id}/events',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /calendars/{id}/events`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+|body|body|[EventPartial](#schemaeventpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar.Event PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## CalendarEventController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/calendars/{id}/events',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /calendars/{id}/events`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|object|false|none|
+|timeMax|query|string(date-time)|false|none|
+|timeMin|query|string(date-time)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Calendar has many Event|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[Event](#schemaevent)]|false|none|none|
+|» Event|[Event](#schemaevent)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» bgColor|string|false|none|none|
+|»» description|string|false|none|none|
+|»» endDateTime|string(date-time)|false|none|none|
+|»» fgColor|string|false|none|none|
+|»» iCalUid|string|false|none|none|
+|»» isFullDayEvent|boolean|false|none|none|
+|»» isLocked|boolean|false|none|none|
+|»» link|string|false|none|none|
+|»» location|string|false|none|none|
+|»» meetingLink|string|false|none|none|
+|»» identifier|string|false|none|none|
+|»» startDateTime|string(date-time)|false|none|none|
+|»» status|string|false|none|none|
+|»» summary|string|false|none|none|
+|»» timezone|string|false|none|none|
+|»» calendarId|string|true|none|none|
+|»» parentEventId|string|false|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+
+
+This operation does not require authentication
+
+
+## CalendarEventController.delete
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/calendars/{id}/events',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /calendars/{id}/events`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar.Event DELETE success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+CalendarSubscriptionController
+
+## CalendarSubscriptionController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/calendars/{id}/subscriptions',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /calendars/{id}/subscriptions`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[NewSubscriptionInCalendar](#schemanewsubscriptionincalendar)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar model instance|[Subscription](#schemasubscription)|
+
+
+This operation does not require authentication
+
+
+## CalendarSubscriptionController.patch
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/calendars/{id}/subscriptions',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /calendars/{id}/subscriptions`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+|body|body|[SubscriptionPartial](#schemasubscriptionpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar.Subscription PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## CalendarSubscriptionController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/calendars/{id}/subscriptions',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /calendars/{id}/subscriptions`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Calendar has many Subscriptions|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[Subscription](#schemasubscription)]|false|none|none|
+|» Subscription|[Subscription](#schemasubscription)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» accessRole|string|false|none|none|
+|»» bgColor|string|false|none|none|
+|»» fgColor|string|false|none|none|
+|»» isHidden|boolean|false|none|none|
+|»» isPrimary|boolean|false|none|none|
+|»» identifier|string|true|none|none|
+|»» defaultReminders|object|false|none|none|
+|»» notificationSettings|object|false|none|none|
+|»» calendarId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+
+This operation does not require authentication
+
+
+## CalendarSubscriptionController.delete
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/calendars/{id}/subscriptions',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /calendars/{id}/subscriptions`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar.Subscription DELETE success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+CalendarWorkingHourController
+
+## CalendarWorkingHourController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/calendars/{id}/working-hours',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /calendars/{id}/working-hours`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[NewWorkingHourInCalendar](#schemanewworkinghourincalendar)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar model instance|[WorkingHour](#schemaworkinghour)|
+
+
+This operation does not require authentication
+
+
+## CalendarWorkingHourController.patch
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/calendars/{id}/working-hours',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /calendars/{id}/working-hours`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+|body|body|[WorkingHourPartial](#schemaworkinghourpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar.WorkingHour PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## CalendarWorkingHourController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/calendars/{id}/working-hours',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /calendars/{id}/working-hours`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Calendar has many WorkingHour|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[WorkingHour](#schemaworkinghour)]|false|none|none|
+|» WorkingHour|[WorkingHour](#schemaworkinghour)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» dayOfWeek|number|false|none|none|
+|»» end|string|false|none|none|
+|»» start|string|false|none|none|
+|»» calendarId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+
+This operation does not require authentication
+
+
+## CalendarWorkingHourController.delete
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/calendars/{id}/working-hours',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /calendars/{id}/working-hours`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Calendar.WorkingHour DELETE success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+EventController
+
+## EventController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/events/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /events/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## EventController.getFeeBusyStatus
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "timeMax": "2019-08-24T14:15:22Z",
+ "timeMin": "2019-08-24T14:15:22Z",
+ "items": [
+ {
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "extId": "string",
+ "extMetadata": {},
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "attendeeId": "string",
+ "isOptional": true,
+ "attendeeIdentifier": "string",
+ "isOrganizer": true,
+ "messages": "string",
+ "eventId": "string"
+ }
+ ]
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/events/freeBusy',
+{
+ method: 'GET',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /events/freeBusy`
+
+> Body parameter
+
+```json
+{
+ "timeMax": "2019-08-24T14:15:22Z",
+ "timeMin": "2019-08-24T14:15:22Z",
+ "items": [
+ {
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "extId": "string",
+ "extMetadata": {},
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "attendeeId": "string",
+ "isOptional": true,
+ "attendeeIdentifier": "string",
+ "isOrganizer": true,
+ "messages": "string",
+ "eventId": "string"
+ }
+ ]
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[FreeBusyRequest](#schemafreebusyrequest)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Return value of EventController.getFeeBusyStatus|None|
+
+
+This operation does not require authentication
+
+
+## EventController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/events/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /events/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[Event](#schemaevent)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Event PUT success|None|
+
+
+This operation does not require authentication
+
+
+## EventController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/events/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /events/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[EventPartial](#schemaeventpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Event PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## EventController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/events/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /events/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[events.Filter](#schemaevents.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ },
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": []
+ }
+ }
+ ]
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event model instance|[EventWithRelations](#schemaeventwithrelations)|
+
+
+This operation does not require authentication
+
+
+## EventController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/events/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /events/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Event DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## EventController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/events',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /events`
+
+> Body parameter
+
+```json
+{
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewEvent](#schemanewevent)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event model instance|[Event](#schemaevent)|
+
+
+This operation does not require authentication
+
+
+## EventController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/events',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /events`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[EventPartial](#schemaeventpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## EventController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/events',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /events`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[events_attendees_view.Filter](#schemaevents_attendees_view.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Event model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[EventWithRelations](#schemaeventwithrelations)]|false|none|[(tsType: EventWithRelations, schemaOptions: { includeRelations: true })]|
+|» EventWithRelations|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» bgColor|string|false|none|none|
+|»» description|string|false|none|none|
+|»» endDateTime|string(date-time)|false|none|none|
+|»» fgColor|string|false|none|none|
+|»» iCalUid|string|false|none|none|
+|»» isFullDayEvent|boolean|false|none|none|
+|»» isLocked|boolean|false|none|none|
+|»» link|string|false|none|none|
+|»» location|string|false|none|none|
+|»» meetingLink|string|false|none|none|
+|»» identifier|string|false|none|none|
+|»» startDateTime|string(date-time)|false|none|none|
+|»» status|string|false|none|none|
+|»» summary|string|false|none|none|
+|»» timezone|string|false|none|none|
+|»» calendarId|string|true|none|none|
+|»» parentEventId|string|false|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+|»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» deleted|boolean|false|none|none|
+|»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»» deletedBy|string¦null|false|none|none|
+|»»» createdOn|string(date-time)|false|none|none|
+|»»» modifiedOn|string(date-time)|false|none|none|
+|»»» createdBy|string|false|none|none|
+|»»» modifiedBy|string|false|none|none|
+|»»» id|string|false|none|none|
+|»»» source|string|false|none|none|
+|»»» enableWorkingHours|boolean|false|none|none|
+|»»» location|string|false|none|none|
+|»»» identifier|string|true|none|none|
+|»»» summary|string|false|none|none|
+|»»» timezone|string|false|none|none|
+|»»» extId|string|false|none|none|
+|»»» extMetadata|object|false|none|none|
+|»»» events|[[EventWithRelations](#schemaeventwithrelations)]|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» EventWithRelations|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» workingHours|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» WorkingHourWithRelations|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» dayOfWeek|number|false|none|none|
+|»»»»» end|string|false|none|none|
+|»»»»» start|string|false|none|none|
+|»»»»» calendarId|string|true|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» subscriptions|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» accessRole|string|false|none|none|
+|»»»»» bgColor|string|false|none|none|
+|»»»»» fgColor|string|false|none|none|
+|»»»»» isHidden|boolean|false|none|none|
+|»»»»» isPrimary|boolean|false|none|none|
+|»»»»» identifier|string|true|none|none|
+|»»»»» defaultReminders|object|false|none|none|
+|»»»»» notificationSettings|object|false|none|none|
+|»»»»» calendarId|string|true|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»» parentEvent|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»» attendees|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»» AttendeeWithRelations|[AttendeeWithRelations](#schemaattendeewithrelations)|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» deleted|boolean|false|none|none|
+|»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»» deletedBy|string¦null|false|none|none|
+|»»»» createdOn|string(date-time)|false|none|none|
+|»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»» createdBy|string|false|none|none|
+|»»»» modifiedBy|string|false|none|none|
+|»»»» id|string|false|none|none|
+|»»»» identifier|string|true|none|none|
+|»»»» isOptional|boolean|false|none|none|
+|»»»» isOrganizer|boolean|false|none|none|
+|»»»» messages|string|false|none|none|
+|»»»» responseStatus|string|false|none|none|
+|»»»» eventId|string|true|none|none|
+|»»»» extId|string|false|none|none|
+|»»»» extMetadata|object|false|none|none|
+|»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»» attachments|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»» AttachmentWithRelations|[AttachmentWithRelations](#schemaattachmentwithrelations)|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» deleted|boolean|false|none|none|
+|»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»» deletedBy|string¦null|false|none|none|
+|»»»» createdOn|string(date-time)|false|none|none|
+|»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»» createdBy|string|false|none|none|
+|»»»» modifiedBy|string|false|none|none|
+|»»»» id|string|false|none|none|
+|»»»» fileUrl|string|true|none|none|
+|»»»» iconLink|string|false|none|none|
+|»»»» mimeType|string|false|none|none|
+|»»»» title|string|false|none|none|
+|»»»» eventId|string|true|none|none|
+|»»»» extId|string|false|none|none|
+|»»»» extMetadata|object|false|none|none|
+|»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+
+This operation does not require authentication
+
+
+EventAttachmentController
+
+## EventAttachmentController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/events/{id}/attachments',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /events/{id}/attachments`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[NewAttachmentInEvent](#schemanewattachmentinevent)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event model instance|[Attachment](#schemaattachment)|
+
+
+This operation does not require authentication
+
+
+## EventAttachmentController.patch
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/events/{id}/attachments',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /events/{id}/attachments`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+|body|body|[AttachmentPartial](#schemaattachmentpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event.Attachment PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## EventAttachmentController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/events/{id}/attachments',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /events/{id}/attachments`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Event has many Attachment|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[Attachment](#schemaattachment)]|false|none|none|
+|» Attachment|[Attachment](#schemaattachment)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» fileUrl|string|true|none|none|
+|»» iconLink|string|false|none|none|
+|»» mimeType|string|false|none|none|
+|»» title|string|false|none|none|
+|»» eventId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+
+
+This operation does not require authentication
+
+
+## EventAttachmentController.delete
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/events/{id}/attachments',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /events/{id}/attachments`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event.Attachment DELETE success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+EventAttendeeController
+
+## EventAttendeeController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/events/{id}/attendees',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /events/{id}/attendees`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[NewAttendeeInEvent](#schemanewattendeeinevent)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event model instance|[Attendee](#schemaattendee)|
+
+
+This operation does not require authentication
+
+
+## EventAttendeeController.patch
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/events/{id}/attendees',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /events/{id}/attendees`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+|body|body|[AttendeePartial](#schemaattendeepartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event.Attendee PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## EventAttendeeController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/events/{id}/attendees',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /events/{id}/attendees`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Event has many Attendee|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[Attendee](#schemaattendee)]|false|none|none|
+|» Attendee|[Attendee](#schemaattendee)|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» identifier|string|true|none|none|
+|»» isOptional|boolean|false|none|none|
+|»» isOrganizer|boolean|false|none|none|
+|»» messages|string|false|none|none|
+|»» responseStatus|string|false|none|none|
+|»» eventId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+
+This operation does not require authentication
+
+
+## EventAttendeeController.delete
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/events/{id}/attendees',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /events/{id}/attendees`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event.Attendee DELETE success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+SettingsController
+
+## SettingsController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/settings/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /settings/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Settings model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## SettingsController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/settings/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /settings/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[Settings](#schemasettings)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Settings PUT success|None|
+
+
+This operation does not require authentication
+
+
+## SettingsController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/settings/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /settings/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[SettingsPartial](#schemasettingspartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Settings PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## SettingsController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/settings/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /settings/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[settings.Filter](#schemasettings.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Settings model instance|[SettingsWithRelations](#schemasettingswithrelations)|
+
+
+This operation does not require authentication
+
+
+## SettingsController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/settings/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /settings/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Settings DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## SettingsController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/settings',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /settings`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewSettings](#schemanewsettings)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Settings model instance|[Settings](#schemasettings)|
+
+
+This operation does not require authentication
+
+
+## SettingsController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/settings',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /settings`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[SettingsPartial](#schemasettingspartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Settings PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## SettingsController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/settings',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /settings`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[settings.Filter1](#schemasettings.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Settings model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[SettingsWithRelations](#schemasettingswithrelations)]|false|none|[(tsType: SettingsWithRelations, schemaOptions: { includeRelations: true })]|
+|» SettingsWithRelations|[SettingsWithRelations](#schemasettingswithrelations)|false|none|(tsType: SettingsWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» ownerId|string|true|none|none|
+|»» ownerType|string|false|none|none|
+|»» settingName|string|false|none|none|
+|»» settingValue|string|false|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|ownerType|global|
+|ownerType|user|
+|ownerType|calendar|
+|ownerType|event|
+
+
+This operation does not require authentication
+
+
+ThemeController
+
+## ThemeController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/themes/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /themes/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Theme model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## ThemeController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/themes/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /themes/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[Theme](#schematheme)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Theme PUT success|None|
+
+
+This operation does not require authentication
+
+
+## ThemeController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/themes/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /themes/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[ThemePartial](#schemathemepartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Theme PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## ThemeController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/themes/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /themes/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[themes.Filter](#schemathemes.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Theme model instance|[ThemeWithRelations](#schemathemewithrelations)|
+
+
+This operation does not require authentication
+
+
+## ThemeController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/themes/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /themes/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Theme DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## ThemeController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/themes',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /themes`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewTheme](#schemanewtheme)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Theme model instance|[Theme](#schematheme)|
+
+
+This operation does not require authentication
+
+
+## ThemeController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/themes',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /themes`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[ThemePartial](#schemathemepartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Theme PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## ThemeController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/themes',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /themes`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[themes.Filter1](#schemathemes.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of Theme model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[ThemeWithRelations](#schemathemewithrelations)]|false|none|[(tsType: ThemeWithRelations, schemaOptions: { includeRelations: true })]|
+|» ThemeWithRelations|[ThemeWithRelations](#schemathemewithrelations)|false|none|(tsType: ThemeWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» calBg|string|false|none|none|
+|»» calFg|string|false|none|none|
+|»» eventBg|string|false|none|none|
+|»» eventFg|string|false|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+
+
+This operation does not require authentication
+
+
+WorkingHourController
+
+## WorkingHourController.count
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/working-hours/count',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /working-hours/count`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|WorkingHour model count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## WorkingHourController.replaceById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/working-hours/{id}',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /working-hours/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[WorkingHour](#schemaworkinghour)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|WorkingHour PUT success|None|
+
+
+This operation does not require authentication
+
+
+## WorkingHourController.updateById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/working-hours/{id}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /working-hours/{id}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|body|body|[WorkingHourPartial](#schemaworkinghourpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|WorkingHour PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## WorkingHourController.findById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/working-hours/{id}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /working-hours/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+|filter|query|[working_hours.Filter](#schemaworking_hours.filter)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ }
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|WorkingHour model instance|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|
+
+
+This operation does not require authentication
+
+
+## WorkingHourController.deleteById
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/working-hours/{id}',
+{
+ method: 'DELETE'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /working-hours/{id}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|id|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|WorkingHour DELETE success|None|
+
+
+This operation does not require authentication
+
+
+## WorkingHourController.create
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/working-hours',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /working-hours`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|[NewWorkingHour](#schemanewworkinghour)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|WorkingHour model instance|[WorkingHour](#schemaworkinghour)|
+
+
+This operation does not require authentication
+
+
+## WorkingHourController.updateAll
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/working-hours',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /working-hours`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|where|query|object|false|none|
+|body|body|[WorkingHourPartial](#schemaworkinghourpartial)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{
+ "count": 0
+}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|WorkingHour PATCH success count|[loopback.Count](#schemaloopback.count)|
+
+
+This operation does not require authentication
+
+
+## WorkingHourController.find
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/working-hours',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /working-hours`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|filter|query|[working_hours.Filter1](#schemaworking_hours.filter1)|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+[
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {}
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ }
+ }
+]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Array of WorkingHour model instances|Inline|
+
+Response Schema
+
+Status Code **200**
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|*anonymous*|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|[(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })]|
+|» WorkingHourWithRelations|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|string(date-time)¦null|false|none|none|
+|»» deletedBy|string¦null|false|none|none|
+|»» createdOn|string(date-time)|false|none|none|
+|»» modifiedOn|string(date-time)|false|none|none|
+|»» createdBy|string|false|none|none|
+|»» modifiedBy|string|false|none|none|
+|»» id|string|false|none|none|
+|»» dayOfWeek|number|false|none|none|
+|»» end|string|false|none|none|
+|»» start|string|false|none|none|
+|»» calendarId|string|true|none|none|
+|»» extId|string|false|none|none|
+|»» extMetadata|object|false|none|none|
+|»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»» deleted|boolean|false|none|none|
+|»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»» deletedBy|string¦null|false|none|none|
+|»»» createdOn|string(date-time)|false|none|none|
+|»»» modifiedOn|string(date-time)|false|none|none|
+|»»» createdBy|string|false|none|none|
+|»»» modifiedBy|string|false|none|none|
+|»»» id|string|false|none|none|
+|»»» source|string|false|none|none|
+|»»» enableWorkingHours|boolean|false|none|none|
+|»»» location|string|false|none|none|
+|»»» identifier|string|true|none|none|
+|»»» summary|string|false|none|none|
+|»»» timezone|string|false|none|none|
+|»»» extId|string|false|none|none|
+|»»» extMetadata|object|false|none|none|
+|»»» events|[[EventWithRelations](#schemaeventwithrelations)]|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» EventWithRelations|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» bgColor|string|false|none|none|
+|»»»»» description|string|false|none|none|
+|»»»»» endDateTime|string(date-time)|false|none|none|
+|»»»»» fgColor|string|false|none|none|
+|»»»»» iCalUid|string|false|none|none|
+|»»»»» isFullDayEvent|boolean|false|none|none|
+|»»»»» isLocked|boolean|false|none|none|
+|»»»»» link|string|false|none|none|
+|»»»»» location|string|false|none|none|
+|»»»»» meetingLink|string|false|none|none|
+|»»»»» identifier|string|false|none|none|
+|»»»»» startDateTime|string(date-time)|false|none|none|
+|»»»»» status|string|false|none|none|
+|»»»»» summary|string|false|none|none|
+|»»»»» timezone|string|false|none|none|
+|»»»»» calendarId|string|true|none|none|
+|»»»»» parentEventId|string|false|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» parentEvent|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» attendees|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» AttendeeWithRelations|[AttendeeWithRelations](#schemaattendeewithrelations)|false|none|(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»»» deleted|boolean|false|none|none|
+|»»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»»» createdBy|string|false|none|none|
+|»»»»»»» modifiedBy|string|false|none|none|
+|»»»»»»» id|string|false|none|none|
+|»»»»»»» identifier|string|true|none|none|
+|»»»»»»» isOptional|boolean|false|none|none|
+|»»»»»»» isOrganizer|boolean|false|none|none|
+|»»»»»»» messages|string|false|none|none|
+|»»»»»»» responseStatus|string|false|none|none|
+|»»»»»»» eventId|string|true|none|none|
+|»»»»»»» extId|string|false|none|none|
+|»»»»»»» extMetadata|object|false|none|none|
+|»»»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» attachments|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»» AttachmentWithRelations|[AttachmentWithRelations](#schemaattachmentwithrelations)|false|none|(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»»»» deleted|boolean|false|none|none|
+|»»»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»»»» deletedBy|string¦null|false|none|none|
+|»»»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»»»» createdBy|string|false|none|none|
+|»»»»»»» modifiedBy|string|false|none|none|
+|»»»»»»» id|string|false|none|none|
+|»»»»»»» fileUrl|string|true|none|none|
+|»»»»»»» iconLink|string|false|none|none|
+|»»»»»»» mimeType|string|false|none|none|
+|»»»»»»» title|string|false|none|none|
+|»»»»»»» eventId|string|true|none|none|
+|»»»»»»» extId|string|false|none|none|
+|»»»»»»» extMetadata|object|false|none|none|
+|»»»»»»» event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|»»» workingHours|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» WorkingHourWithRelations|[WorkingHourWithRelations](#schemaworkinghourwithrelations)|false|none|(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })|
+|»»» subscriptions|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»» SubscriptionWithRelations|[SubscriptionWithRelations](#schemasubscriptionwithrelations)|false|none|(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })|
+|»»»»» deleted|boolean|false|none|none|
+|»»»»» deletedOn|string(date-time)¦null|false|none|none|
+|»»»»» deletedBy|string¦null|false|none|none|
+|»»»»» createdOn|string(date-time)|false|none|none|
+|»»»»» modifiedOn|string(date-time)|false|none|none|
+|»»»»» createdBy|string|false|none|none|
+|»»»»» modifiedBy|string|false|none|none|
+|»»»»» id|string|false|none|none|
+|»»»»» accessRole|string|false|none|none|
+|»»»»» bgColor|string|false|none|none|
+|»»»»» fgColor|string|false|none|none|
+|»»»»» isHidden|boolean|false|none|none|
+|»»»»» isPrimary|boolean|false|none|none|
+|»»»»» identifier|string|true|none|none|
+|»»»»» defaultReminders|object|false|none|none|
+|»»»»» notificationSettings|object|false|none|none|
+|»»»»» calendarId|string|true|none|none|
+|»»»»» extId|string|false|none|none|
+|»»»»» extMetadata|object|false|none|none|
+|»»»»» calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+
+This operation does not require authentication
+
+
+# Schemas
+
+Attachment
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+Attachment
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|fileUrl|string|true|none|none|
+|iconLink|string|false|none|none|
+|mimeType|string|false|none|none|
+|title|string|false|none|none|
+|eventId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+NewAttachment
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewAttachment
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|fileUrl|string|true|none|none|
+|iconLink|string|false|none|none|
+|mimeType|string|false|none|none|
+|title|string|false|none|none|
+|eventId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+AttendeeWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+}
+
+```
+
+AttendeeWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|identifier|string|true|none|none|
+|isOptional|boolean|false|none|none|
+|isOrganizer|boolean|false|none|none|
+|messages|string|false|none|none|
+|responseStatus|string|false|none|none|
+|eventId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+EventWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ },
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": []
+ }
+ }
+ ]
+}
+
+```
+
+EventWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|bgColor|string|false|none|none|
+|description|string|false|none|none|
+|endDateTime|string(date-time)|false|none|none|
+|fgColor|string|false|none|none|
+|iCalUid|string|false|none|none|
+|isFullDayEvent|boolean|false|none|none|
+|isLocked|boolean|false|none|none|
+|link|string|false|none|none|
+|location|string|false|none|none|
+|meetingLink|string|false|none|none|
+|identifier|string|false|none|none|
+|startDateTime|string(date-time)|false|none|none|
+|status|string|false|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|calendarId|string|true|none|none|
+|parentEventId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+|parentEvent|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+|attendees|[[AttendeeWithRelations](#schemaattendeewithrelations)]|false|none|[(tsType: AttendeeWithRelations, schemaOptions: { includeRelations: true })]|
+|attachments|[[AttachmentWithRelations](#schemaattachmentwithrelations)]|false|none|[(tsType: AttachmentWithRelations, schemaOptions: { includeRelations: true })]|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+
+AttachmentWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {}
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+}
+
+```
+
+AttachmentWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|fileUrl|string|true|none|none|
+|iconLink|string|false|none|none|
+|mimeType|string|false|none|none|
+|title|string|false|none|none|
+|eventId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|event|[EventWithRelations](#schemaeventwithrelations)|false|none|(tsType: EventWithRelations, schemaOptions: { includeRelations: true })|
+
+AttachmentPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+AttachmentPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|fileUrl|string|false|none|none|
+|iconLink|string|false|none|none|
+|mimeType|string|false|none|none|
+|title|string|false|none|none|
+|eventId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+Attendee
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+Attendee
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|identifier|string|true|none|none|
+|isOptional|boolean|false|none|none|
+|isOrganizer|boolean|false|none|none|
+|messages|string|false|none|none|
+|responseStatus|string|false|none|none|
+|eventId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+NewAttendee
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewAttendee
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|identifier|string|true|none|none|
+|isOptional|boolean|false|none|none|
+|isOrganizer|boolean|false|none|none|
+|messages|string|false|none|none|
+|responseStatus|string|false|none|none|
+|eventId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+AttendeePartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+AttendeePartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|identifier|string|false|none|none|
+|isOptional|boolean|false|none|none|
+|isOrganizer|boolean|false|none|none|
+|messages|string|false|none|none|
+|responseStatus|string|false|none|none|
+|eventId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+Calendar
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+Calendar
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|source|string|false|none|none|
+|enableWorkingHours|boolean|false|none|none|
+|location|string|false|none|none|
+|identifier|string|true|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+WorkingHourExcluding_id_
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+WorkingHourExcluding_id_
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|dayOfWeek|number|false|none|none|
+|end|string|false|none|none|
+|start|string|false|none|none|
+|calendarId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+NewCalendar
+
+
+
+
+
+
+```json
+{
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+}
+
+```
+
+NewCalendar
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|source|string|false|none|none|
+|enableWorkingHours|boolean|false|none|none|
+|location|string|false|none|none|
+|identifier|string|true|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|workingHours|[[WorkingHourExcluding_id_](#schemaworkinghourexcluding_id_)]|false|none|[(tsType: Omit, schemaOptions: { exclude: [ 'id' ] })]|
+|subscription|object|false|none|none|
+
+WorkingHour
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+WorkingHour
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|dayOfWeek|number|false|none|none|
+|end|string|false|none|none|
+|start|string|false|none|none|
+|calendarId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+CalendarDTO
+
+
+
+
+
+
+```json
+{
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "subscription": {}
+}
+
+```
+
+CalendarDTO
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|id|string|false|none|none|
+|source|string|false|none|none|
+|enableWorkingHours|boolean|false|none|none|
+|location|string|false|none|none|
+|identifier|string|true|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|workingHours|[[WorkingHour](#schemaworkinghour)]|false|none|none|
+|subscription|object|false|none|none|
+
+CalendarWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ },
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ }
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": []
+ }
+ }
+ ]
+}
+
+```
+
+CalendarWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|source|string|false|none|none|
+|enableWorkingHours|boolean|false|none|none|
+|location|string|false|none|none|
+|identifier|string|true|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|events|[[EventWithRelations](#schemaeventwithrelations)]|false|none|[(tsType: EventWithRelations, schemaOptions: { includeRelations: true })]|
+|workingHours|[[WorkingHourWithRelations](#schemaworkinghourwithrelations)]|false|none|[(tsType: WorkingHourWithRelations, schemaOptions: { includeRelations: true })]|
+|subscriptions|[[SubscriptionWithRelations](#schemasubscriptionwithrelations)]|false|none|[(tsType: SubscriptionWithRelations, schemaOptions: { includeRelations: true })]|
+
+CalendarPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+CalendarPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|source|string|false|none|none|
+|enableWorkingHours|boolean|false|none|none|
+|location|string|false|none|none|
+|identifier|string|false|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+Event
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+Event
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|bgColor|string|false|none|none|
+|description|string|false|none|none|
+|endDateTime|string(date-time)|false|none|none|
+|fgColor|string|false|none|none|
+|iCalUid|string|false|none|none|
+|isFullDayEvent|boolean|false|none|none|
+|isLocked|boolean|false|none|none|
+|link|string|false|none|none|
+|location|string|false|none|none|
+|meetingLink|string|false|none|none|
+|identifier|string|false|none|none|
+|startDateTime|string(date-time)|false|none|none|
+|status|string|false|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|calendarId|string|true|none|none|
+|parentEventId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+
+AttachmentExcluding_id_
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+AttachmentExcluding_id_
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|fileUrl|string|true|none|none|
+|iconLink|string|false|none|none|
+|mimeType|string|false|none|none|
+|title|string|false|none|none|
+|eventId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+AttendeeExcluding_id_
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+AttendeeExcluding_id_
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|identifier|string|true|none|none|
+|isOptional|boolean|false|none|none|
+|isOrganizer|boolean|false|none|none|
+|messages|string|false|none|none|
+|responseStatus|string|false|none|none|
+|eventId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+NewEvent
+
+
+
+
+
+
+```json
+{
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+ }
+ ],
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewEvent
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|bgColor|string|false|none|none|
+|description|string|false|none|none|
+|endDateTime|string(date-time)|false|none|none|
+|fgColor|string|false|none|none|
+|iCalUid|string|false|none|none|
+|isFullDayEvent|boolean|false|none|none|
+|isLocked|boolean|false|none|none|
+|link|string|false|none|none|
+|location|string|false|none|none|
+|meetingLink|string|false|none|none|
+|identifier|string|false|none|none|
+|startDateTime|string(date-time)|false|none|none|
+|status|string|false|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|calendarId|string|true|none|none|
+|parentEventId|string|false|none|none|
+|attachments|[[AttachmentExcluding_id_](#schemaattachmentexcluding_id_)]|false|none|[(tsType: Omit, schemaOptions: { exclude: [ 'id' ] })]|
+|attendees|[[AttendeeExcluding_id_](#schemaattendeeexcluding_id_)]|false|none|[(tsType: Omit, schemaOptions: { exclude: [ 'id' ] })]|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+
+EventAttendeeViewItemDTO
+
+
+
+
+
+
+```json
+{
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "extId": "string",
+ "extMetadata": {},
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "attendeeId": "string",
+ "isOptional": true,
+ "attendeeIdentifier": "string",
+ "isOrganizer": true,
+ "messages": "string",
+ "eventId": "string"
+}
+
+```
+
+EventAttendeeViewItemDTO
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|id|string|false|none|none|
+|bgColor|string|false|none|none|
+|description|string|false|none|none|
+|endDateTime|string(date-time)|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|fgColor|string|false|none|none|
+|iCalUid|string|false|none|none|
+|isFullDayEvent|boolean|false|none|none|
+|isLocked|boolean|false|none|none|
+|link|string|false|none|none|
+|location|string|false|none|none|
+|meetingLink|string|false|none|none|
+|identifier|string|false|none|none|
+|startDateTime|string(date-time)|false|none|none|
+|status|string|false|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|attendeeId|string|false|none|none|
+|isOptional|boolean|false|none|none|
+|attendeeIdentifier|string|false|none|none|
+|isOrganizer|boolean|false|none|none|
+|messages|string|false|none|none|
+|eventId|string|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+
+FreeBusyRequest
+
+
+
+
+
+
+```json
+{
+ "timeMax": "2019-08-24T14:15:22Z",
+ "timeMin": "2019-08-24T14:15:22Z",
+ "items": [
+ {
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "extId": "string",
+ "extMetadata": {},
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "attendeeId": "string",
+ "isOptional": true,
+ "attendeeIdentifier": "string",
+ "isOrganizer": true,
+ "messages": "string",
+ "eventId": "string"
+ }
+ ]
+}
+
+```
+
+FreeBusyRequest
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|timeMax|string(date-time)|true|none|none|
+|timeMin|string(date-time)|true|none|none|
+|items|[[EventAttendeeViewItemDTO](#schemaeventattendeeviewitemdto)]|false|none|none|
+
+FreeBusyDTO
+
+
+
+
+
+
+```json
+{
+ "timeMax": "2019-08-24T14:15:22Z",
+ "timeMin": "2019-08-24T14:15:22Z",
+ "items": [
+ {
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "extId": "string",
+ "extMetadata": {},
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "attendeeId": "string",
+ "isOptional": true,
+ "attendeeIdentifier": "string",
+ "isOrganizer": true,
+ "messages": "string",
+ "eventId": "string"
+ }
+ ]
+}
+
+```
+
+FreeBusyDTO
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|timeMax|string(date-time)|true|none|none|
+|timeMin|string(date-time)|true|none|none|
+|items|[[EventAttendeeViewItemDTO](#schemaeventattendeeviewitemdto)]|false|none|none|
+
+EventPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+EventPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|bgColor|string|false|none|none|
+|description|string|false|none|none|
+|endDateTime|string(date-time)|false|none|none|
+|fgColor|string|false|none|none|
+|iCalUid|string|false|none|none|
+|isFullDayEvent|boolean|false|none|none|
+|isLocked|boolean|false|none|none|
+|link|string|false|none|none|
+|location|string|false|none|none|
+|meetingLink|string|false|none|none|
+|identifier|string|false|none|none|
+|startDateTime|string(date-time)|false|none|none|
+|status|string|false|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|calendarId|string|false|none|none|
+|parentEventId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+
+Settings
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+Settings
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|ownerId|string|true|none|none|
+|ownerType|string|false|none|none|
+|settingName|string|false|none|none|
+|settingValue|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|ownerType|global|
+|ownerType|user|
+|ownerType|calendar|
+|ownerType|event|
+
+NewSettings
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewSettings
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|ownerId|string|true|none|none|
+|ownerType|string|false|none|none|
+|settingName|string|false|none|none|
+|settingValue|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|ownerType|global|
+|ownerType|user|
+|ownerType|calendar|
+|ownerType|event|
+
+SettingsWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+SettingsWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|ownerId|string|true|none|none|
+|ownerType|string|false|none|none|
+|settingName|string|false|none|none|
+|settingValue|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|ownerType|global|
+|ownerType|user|
+|ownerType|calendar|
+|ownerType|event|
+
+SettingsPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "ownerId": "string",
+ "ownerType": "global",
+ "settingName": "string",
+ "settingValue": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+SettingsPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|ownerId|string|false|none|none|
+|ownerType|string|false|none|none|
+|settingName|string|false|none|none|
+|settingValue|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|ownerType|global|
+|ownerType|user|
+|ownerType|calendar|
+|ownerType|event|
+
+Subscription
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+Subscription
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|accessRole|string|false|none|none|
+|bgColor|string|false|none|none|
+|fgColor|string|false|none|none|
+|isHidden|boolean|false|none|none|
+|isPrimary|boolean|false|none|none|
+|identifier|string|true|none|none|
+|defaultReminders|object|false|none|none|
+|notificationSettings|object|false|none|none|
+|calendarId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+NewSubscription
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewSubscription
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|accessRole|string|false|none|none|
+|bgColor|string|false|none|none|
+|fgColor|string|false|none|none|
+|isHidden|boolean|false|none|none|
+|isPrimary|boolean|false|none|none|
+|identifier|string|true|none|none|
+|defaultReminders|object|false|none|none|
+|notificationSettings|object|false|none|none|
+|calendarId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+SubscriptionWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ }
+}
+
+```
+
+SubscriptionWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|accessRole|string|false|none|none|
+|bgColor|string|false|none|none|
+|fgColor|string|false|none|none|
+|isHidden|boolean|false|none|none|
+|isPrimary|boolean|false|none|none|
+|identifier|string|true|none|none|
+|defaultReminders|object|false|none|none|
+|notificationSettings|object|false|none|none|
+|calendarId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+SubscriptionPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+SubscriptionPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|accessRole|string|false|none|none|
+|bgColor|string|false|none|none|
+|fgColor|string|false|none|none|
+|isHidden|boolean|false|none|none|
+|isPrimary|boolean|false|none|none|
+|identifier|string|false|none|none|
+|defaultReminders|object|false|none|none|
+|notificationSettings|object|false|none|none|
+|calendarId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+Theme
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+Theme
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|calBg|string|false|none|none|
+|calFg|string|false|none|none|
+|eventBg|string|false|none|none|
+|eventFg|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+NewTheme
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewTheme
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|calBg|string|false|none|none|
+|calFg|string|false|none|none|
+|eventBg|string|false|none|none|
+|eventFg|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+ThemeWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+ThemeWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|calBg|string|false|none|none|
+|calFg|string|false|none|none|
+|eventBg|string|false|none|none|
+|eventFg|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+ThemePartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "calBg": "string",
+ "calFg": "string",
+ "eventBg": "string",
+ "eventFg": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+ThemePartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|calBg|string|false|none|none|
+|calFg|string|false|none|none|
+|eventBg|string|false|none|none|
+|eventFg|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+NewWorkingHour
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewWorkingHour
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|dayOfWeek|number|false|none|none|
+|end|string|false|none|none|
+|start|string|false|none|none|
+|calendarId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+WorkingHourWithRelations
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "source": "string",
+ "enableWorkingHours": true,
+ "location": "string",
+ "identifier": "string",
+ "summary": "string",
+ "timezone": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "events": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {},
+ "parentEvent": {},
+ "attendees": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ],
+ "attachments": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "event": {}
+ }
+ ]
+ }
+ ],
+ "workingHours": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ],
+ "subscriptions": [
+ {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {},
+ "calendar": {}
+ }
+ ]
+ }
+}
+
+```
+
+WorkingHourWithRelations
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|dayOfWeek|number|false|none|none|
+|end|string|false|none|none|
+|start|string|false|none|none|
+|calendarId|string|true|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+|calendar|[CalendarWithRelations](#schemacalendarwithrelations)|false|none|(tsType: CalendarWithRelations, schemaOptions: { includeRelations: true })|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+WorkingHourPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+WorkingHourPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|string|false|none|none|
+|dayOfWeek|number|false|none|none|
+|end|string|false|none|none|
+|start|string|false|none|none|
+|calendarId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+Date
+
+
+
+
+
+
+```json
+null
+
+```
+
+### Properties
+
+*None*
+
+NewEventInCalendar
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "bgColor": "string",
+ "description": "string",
+ "endDateTime": "2019-08-24T14:15:22Z",
+ "fgColor": "string",
+ "iCalUid": "string",
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": "string",
+ "location": "string",
+ "meetingLink": "string",
+ "identifier": "string",
+ "startDateTime": "2019-08-24T14:15:22Z",
+ "status": "confirmed",
+ "summary": "string",
+ "timezone": "string",
+ "calendarId": "string",
+ "parentEventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewEventInCalendar
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|bgColor|string|false|none|none|
+|description|string|false|none|none|
+|endDateTime|string(date-time)|false|none|none|
+|fgColor|string|false|none|none|
+|iCalUid|string|false|none|none|
+|isFullDayEvent|boolean|false|none|none|
+|isLocked|boolean|false|none|none|
+|link|string|false|none|none|
+|location|string|false|none|none|
+|meetingLink|string|false|none|none|
+|identifier|string|false|none|none|
+|startDateTime|string(date-time)|false|none|none|
+|status|string|false|none|none|
+|summary|string|false|none|none|
+|timezone|string|false|none|none|
+|calendarId|string|false|none|none|
+|parentEventId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|status|confirmed|
+|status|tentative|
+|status|cancelled|
+|status|completed|
+
+NewSubscriptionInCalendar
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "accessRole": "freeBusyReader",
+ "bgColor": "string",
+ "fgColor": "string",
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": "string",
+ "defaultReminders": {},
+ "notificationSettings": {},
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewSubscriptionInCalendar
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|accessRole|string|false|none|none|
+|bgColor|string|false|none|none|
+|fgColor|string|false|none|none|
+|isHidden|boolean|false|none|none|
+|isPrimary|boolean|false|none|none|
+|identifier|string|true|none|none|
+|defaultReminders|object|false|none|none|
+|notificationSettings|object|false|none|none|
+|calendarId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|accessRole|freeBusyReader|
+|accessRole|reader|
+|accessRole|writer|
+|accessRole|owner|
+
+NewWorkingHourInCalendar
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "dayOfWeek": 0,
+ "end": "string",
+ "start": "string",
+ "calendarId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewWorkingHourInCalendar
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|dayOfWeek|number|false|none|none|
+|end|string|false|none|none|
+|start|string|false|none|none|
+|calendarId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|dayOfWeek|0|
+|dayOfWeek|1|
+|dayOfWeek|2|
+|dayOfWeek|3|
+|dayOfWeek|4|
+|dayOfWeek|5|
+|dayOfWeek|6|
+
+NewAttachmentInEvent
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "fileUrl": "string",
+ "iconLink": "string",
+ "mimeType": "string",
+ "title": "string",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewAttachmentInEvent
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|fileUrl|string|true|none|none|
+|iconLink|string|false|none|none|
+|mimeType|string|false|none|none|
+|title|string|false|none|none|
+|eventId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+NewAttendeeInEvent
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "identifier": "string",
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": "string",
+ "responseStatus": "needsAction",
+ "eventId": "string",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+NewAttendeeInEvent
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|identifier|string|true|none|none|
+|isOptional|boolean|false|none|none|
+|isOrganizer|boolean|false|none|none|
+|messages|string|false|none|none|
+|responseStatus|string|false|none|none|
+|eventId|string|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
+#### Enumerated Values
+
+|Property|Value|
+|---|---|
+|responseStatus|needsAction|
+|responseStatus|tentative|
+|responseStatus|accepted|
+|responseStatus|declined|
+
+loopback.Count
+
+
+
+
+
+
+```json
+{
+ "count": 0
+}
+
+```
+
+loopback.Count
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|count|number|false|none|none|
+
+attachments.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+attachments.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+attachments.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+attachments.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[attachments.ScopeFilter](#schemaattachments.scopefilter)|false|none|none|
+
+attachments.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "fileUrl": true,
+ "iconLink": true,
+ "mimeType": true,
+ "title": true,
+ "eventId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+attachments.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» fileUrl|boolean|false|none|none|
+|»» iconLink|boolean|false|none|none|
+|»» mimeType|boolean|false|none|none|
+|»» title|boolean|false|none|none|
+|»» eventId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[attachments.IncludeFilter.Items](#schemaattachments.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+attachments.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "fileUrl": true,
+ "iconLink": true,
+ "mimeType": true,
+ "title": true,
+ "eventId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+attachments.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» fileUrl|boolean|false|none|none|
+|»» iconLink|boolean|false|none|none|
+|»» mimeType|boolean|false|none|none|
+|»» title|boolean|false|none|none|
+|»» eventId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[attachments.IncludeFilter.Items](#schemaattachments.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+attendees.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+attendees.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+attendees.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+attendees.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[attendees.ScopeFilter](#schemaattendees.scopefilter)|false|none|none|
+
+attendees.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "identifier": true,
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": true,
+ "responseStatus": true,
+ "eventId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+attendees.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» identifier|boolean|false|none|none|
+|»» isOptional|boolean|false|none|none|
+|»» isOrganizer|boolean|false|none|none|
+|»» messages|boolean|false|none|none|
+|»» responseStatus|boolean|false|none|none|
+|»» eventId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[attendees.IncludeFilter.Items](#schemaattendees.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+attendees.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "identifier": true,
+ "isOptional": true,
+ "isOrganizer": true,
+ "messages": true,
+ "responseStatus": true,
+ "eventId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+attendees.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» identifier|boolean|false|none|none|
+|»» isOptional|boolean|false|none|none|
+|»» isOrganizer|boolean|false|none|none|
+|»» messages|boolean|false|none|none|
+|»» responseStatus|boolean|false|none|none|
+|»» eventId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[attendees.IncludeFilter.Items](#schemaattendees.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+subscriptions.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+subscriptions.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+subscriptions.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+subscriptions.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[subscriptions.ScopeFilter](#schemasubscriptions.scopefilter)|false|none|none|
+
+subscriptions.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "accessRole": true,
+ "bgColor": true,
+ "fgColor": true,
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": true,
+ "defaultReminders": true,
+ "notificationSettings": true,
+ "calendarId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+subscriptions.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» accessRole|boolean|false|none|none|
+|»» bgColor|boolean|false|none|none|
+|»» fgColor|boolean|false|none|none|
+|»» isHidden|boolean|false|none|none|
+|»» isPrimary|boolean|false|none|none|
+|»» identifier|boolean|false|none|none|
+|»» defaultReminders|boolean|false|none|none|
+|»» notificationSettings|boolean|false|none|none|
+|»» calendarId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[subscriptions.IncludeFilter.Items](#schemasubscriptions.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+calendars.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+calendars.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+calendars.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+calendars.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[calendars.ScopeFilter](#schemacalendars.scopefilter)|false|none|none|
+
+calendars.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "source": true,
+ "enableWorkingHours": true,
+ "location": true,
+ "identifier": true,
+ "summary": true,
+ "timezone": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+calendars.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» source|boolean|false|none|none|
+|»» enableWorkingHours|boolean|false|none|none|
+|»» location|boolean|false|none|none|
+|»» identifier|boolean|false|none|none|
+|»» summary|boolean|false|none|none|
+|»» timezone|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[calendars.IncludeFilter.Items](#schemacalendars.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+calendars.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "source": true,
+ "enableWorkingHours": true,
+ "location": true,
+ "identifier": true,
+ "summary": true,
+ "timezone": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+calendars.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» source|boolean|false|none|none|
+|»» enableWorkingHours|boolean|false|none|none|
+|»» location|boolean|false|none|none|
+|»» identifier|boolean|false|none|none|
+|»» summary|boolean|false|none|none|
+|»» timezone|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[calendars.IncludeFilter.Items](#schemacalendars.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+events.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+events.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+events.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+events.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[events.ScopeFilter](#schemaevents.scopefilter)|false|none|none|
+
+events.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "bgColor": true,
+ "description": true,
+ "endDateTime": true,
+ "fgColor": true,
+ "iCalUid": true,
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": true,
+ "location": true,
+ "meetingLink": true,
+ "identifier": true,
+ "startDateTime": true,
+ "status": true,
+ "summary": true,
+ "timezone": true,
+ "calendarId": true,
+ "parentEventId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+events.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» bgColor|boolean|false|none|none|
+|»» description|boolean|false|none|none|
+|»» endDateTime|boolean|false|none|none|
+|»» fgColor|boolean|false|none|none|
+|»» iCalUid|boolean|false|none|none|
+|»» isFullDayEvent|boolean|false|none|none|
+|»» isLocked|boolean|false|none|none|
+|»» link|boolean|false|none|none|
+|»» location|boolean|false|none|none|
+|»» meetingLink|boolean|false|none|none|
+|»» identifier|boolean|false|none|none|
+|»» startDateTime|boolean|false|none|none|
+|»» status|boolean|false|none|none|
+|»» summary|boolean|false|none|none|
+|»» timezone|boolean|false|none|none|
+|»» calendarId|boolean|false|none|none|
+|»» parentEventId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[events.IncludeFilter.Items](#schemaevents.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+events_attendees_view.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+events_attendees_view.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+events_attendees_view.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+events_attendees_view.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[events_attendees_view.ScopeFilter](#schemaevents_attendees_view.scopefilter)|false|none|none|
+
+events_attendees_view.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "bgColor": true,
+ "description": true,
+ "endDateTime": true,
+ "fgColor": true,
+ "iCalUid": true,
+ "isFullDayEvent": true,
+ "isLocked": true,
+ "link": true,
+ "location": true,
+ "meetingLink": true,
+ "identifier": true,
+ "startDateTime": true,
+ "status": true,
+ "summary": true,
+ "timezone": true,
+ "calendarId": true,
+ "parentEventId": true,
+ "extId": true,
+ "extMetadata": true,
+ "attendeeId": true,
+ "isOptional": true,
+ "attendeeIdentifier": true,
+ "isOrganizer": true,
+ "messages": true,
+ "responseStatus": true,
+ "eventId": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+events_attendees_view.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» bgColor|boolean|false|none|none|
+|»» description|boolean|false|none|none|
+|»» endDateTime|boolean|false|none|none|
+|»» fgColor|boolean|false|none|none|
+|»» iCalUid|boolean|false|none|none|
+|»» isFullDayEvent|boolean|false|none|none|
+|»» isLocked|boolean|false|none|none|
+|»» link|boolean|false|none|none|
+|»» location|boolean|false|none|none|
+|»» meetingLink|boolean|false|none|none|
+|»» identifier|boolean|false|none|none|
+|»» startDateTime|boolean|false|none|none|
+|»» status|boolean|false|none|none|
+|»» summary|boolean|false|none|none|
+|»» timezone|boolean|false|none|none|
+|»» calendarId|boolean|false|none|none|
+|»» parentEventId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+|»» attendeeId|boolean|false|none|none|
+|»» isOptional|boolean|false|none|none|
+|»» attendeeIdentifier|boolean|false|none|none|
+|»» isOrganizer|boolean|false|none|none|
+|»» messages|boolean|false|none|none|
+|»» responseStatus|boolean|false|none|none|
+|»» eventId|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[events_attendees_view.IncludeFilter.Items](#schemaevents_attendees_view.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+settings.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "ownerId": true,
+ "ownerType": true,
+ "settingName": true,
+ "settingValue": true,
+ "extId": true,
+ "extMetadata": true
+ }
+}
+
+```
+
+settings.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» ownerId|boolean|false|none|none|
+|»» ownerType|boolean|false|none|none|
+|»» settingName|boolean|false|none|none|
+|»» settingValue|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+settings.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "ownerId": true,
+ "ownerType": true,
+ "settingName": true,
+ "settingValue": true,
+ "extId": true,
+ "extMetadata": true
+ }
+}
+
+```
+
+settings.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» ownerId|boolean|false|none|none|
+|»» ownerType|boolean|false|none|none|
+|»» settingName|boolean|false|none|none|
+|»» settingValue|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+subscriptions.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "accessRole": true,
+ "bgColor": true,
+ "fgColor": true,
+ "isHidden": true,
+ "isPrimary": true,
+ "identifier": true,
+ "defaultReminders": true,
+ "notificationSettings": true,
+ "calendarId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+subscriptions.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» accessRole|boolean|false|none|none|
+|»» bgColor|boolean|false|none|none|
+|»» fgColor|boolean|false|none|none|
+|»» isHidden|boolean|false|none|none|
+|»» isPrimary|boolean|false|none|none|
+|»» identifier|boolean|false|none|none|
+|»» defaultReminders|boolean|false|none|none|
+|»» notificationSettings|boolean|false|none|none|
+|»» calendarId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[subscriptions.IncludeFilter.Items](#schemasubscriptions.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+themes.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "calBg": true,
+ "calFg": true,
+ "eventBg": true,
+ "eventFg": true,
+ "extId": true,
+ "extMetadata": true
+ }
+}
+
+```
+
+themes.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» calBg|boolean|false|none|none|
+|»» calFg|boolean|false|none|none|
+|»» eventBg|boolean|false|none|none|
+|»» eventFg|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+themes.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "calBg": true,
+ "calFg": true,
+ "eventBg": true,
+ "eventFg": true,
+ "extId": true,
+ "extMetadata": true
+ }
+}
+
+```
+
+themes.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» calBg|boolean|false|none|none|
+|»» calFg|boolean|false|none|none|
+|»» eventBg|boolean|false|none|none|
+|»» eventFg|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+working_hours.ScopeFilter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+}
+
+```
+
+working_hours.ScopeFilter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[object]|false|none|none|
+
+working_hours.IncludeFilter.Items
+
+
+
+
+
+
+```json
+{
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+}
+
+```
+
+working_hours.IncludeFilter.Items
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|relation|string|false|none|none|
+|scope|[working_hours.ScopeFilter](#schemaworking_hours.scopefilter)|false|none|none|
+
+working_hours.Filter
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "dayOfWeek": true,
+ "end": true,
+ "start": true,
+ "calendarId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+working_hours.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» dayOfWeek|boolean|false|none|none|
+|»» end|boolean|false|none|none|
+|»» start|boolean|false|none|none|
+|»» calendarId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[working_hours.IncludeFilter.Items](#schemaworking_hours.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+working_hours.Filter1
+
+
+
+
+
+
+```json
+{
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {
+ "deleted": true,
+ "deletedOn": true,
+ "deletedBy": true,
+ "createdOn": true,
+ "modifiedOn": true,
+ "createdBy": true,
+ "modifiedBy": true,
+ "id": true,
+ "dayOfWeek": true,
+ "end": true,
+ "start": true,
+ "calendarId": true,
+ "extId": true,
+ "extMetadata": true
+ },
+ "include": [
+ {
+ "relation": "string",
+ "scope": {
+ "offset": 0,
+ "limit": 100,
+ "skip": 0,
+ "order": "string",
+ "where": {},
+ "fields": {},
+ "include": [
+ {}
+ ]
+ }
+ }
+ ]
+}
+
+```
+
+working_hours.Filter
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|offset|integer|false|none|none|
+|limit|integer|false|none|none|
+|skip|integer|false|none|none|
+|order|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|where|object|false|none|none|
+|fields|any|false|none|none|
+
+oneOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|object|false|none|none|
+|»» deleted|boolean|false|none|none|
+|»» deletedOn|boolean|false|none|none|
+|»» deletedBy|boolean|false|none|none|
+|»» createdOn|boolean|false|none|none|
+|»» modifiedOn|boolean|false|none|none|
+|»» createdBy|boolean|false|none|none|
+|»» modifiedBy|boolean|false|none|none|
+|»» id|boolean|false|none|none|
+|»» dayOfWeek|boolean|false|none|none|
+|»» end|boolean|false|none|none|
+|»» start|boolean|false|none|none|
+|»» calendarId|boolean|false|none|none|
+|»» extId|boolean|false|none|none|
+|»» extMetadata|boolean|false|none|none|
+
+xor
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[string]|false|none|none|
+
+continued
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|include|[anyOf]|false|none|none|
+
+anyOf
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|[working_hours.IncludeFilter.Items](#schemaworking_hours.includefilter.items)|false|none|none|
+
+or
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|» *anonymous*|string|false|none|none|
+
diff --git a/services/scheduler-service/package.json b/services/scheduler-service/package.json
index b708261197..4e96138a7f 100644
--- a/services/scheduler-service/package.json
+++ b/services/scheduler-service/package.json
@@ -12,7 +12,7 @@
"node": ">=10"
},
"scripts": {
- "build": "npm run clean && lb-tsc",
+ "build": "npm run clean && lb-tsc && npm run openapi-spec && npm run apidocs",
"build:watch": "lb-tsc --watch",
"lint": "npm run prettier:check && npm run eslint",
"lint:fix": "npm run eslint:fix && npm run prettier:fix",
@@ -21,6 +21,8 @@
"prettier:fix": "npm run prettier:cli -- --write",
"eslint": "lb-eslint --report-unused-disable-directives .",
"eslint:fix": "npm run eslint -- --fix",
+ "openapi-spec": "node ./dist/openapi-spec",
+ "apidocs": "./node_modules/.bin/widdershins --search false --language_tabs 'javascript:JavaScript:request' 'javascript--nodejs:Node.JS' --summary openapi.json -o openapi.md",
"pretest": "npm run build",
"test": "lb-mocha --allow-console-logs \"dist/__tests__\"",
"posttest": "npm run lint",
@@ -79,7 +81,8 @@
"eslint": "^7.25.0",
"jsonwebtoken": "^8.5.1",
"source-map-support": "^0.5.19",
- "typescript": "~4.2.4"
+ "typescript": "~4.2.4",
+ "widdershins": "^4.0.1"
},
"publishConfig": {
"registry": "https://registry.npmjs.org/",
diff --git a/services/scheduler-service/src/application.ts b/services/scheduler-service/src/application.ts
new file mode 100644
index 0000000000..e719eee595
--- /dev/null
+++ b/services/scheduler-service/src/application.ts
@@ -0,0 +1,27 @@
+import {BootMixin} from '@loopback/boot';
+import {ApplicationConfig} from '@loopback/core';
+import {RepositoryMixin} from '@loopback/repository';
+import {RestApplication} from '@loopback/rest';
+import * as path from 'path';
+import {SchedulerServiceComponent} from './component';
+
+export {ApplicationConfig};
+
+export class SchedulerServiceApplication extends BootMixin(
+ RepositoryMixin(RestApplication),
+) {
+ constructor(options: ApplicationConfig = {}) {
+ super(options);
+ this.static('/', path.join(__dirname, '../public'));
+ this.component(SchedulerServiceComponent);
+
+ this.projectRoot = __dirname;
+ this.bootOptions = {
+ controllers: {
+ dirs: ['controllers'],
+ extensions: ['.controller.js'],
+ nested: true,
+ },
+ };
+ }
+}
diff --git a/services/scheduler-service/src/openapi-spec.ts b/services/scheduler-service/src/openapi-spec.ts
new file mode 100644
index 0000000000..88bbac985a
--- /dev/null
+++ b/services/scheduler-service/src/openapi-spec.ts
@@ -0,0 +1,25 @@
+import {ApplicationConfig} from '@loopback/core';
+import {SchedulerServiceApplication} from './application';
+
+/**
+ * Export the OpenAPI spec from the application
+ */
+const PORT = 3000;
+const FILEARGVI = 2;
+async function exportOpenApiSpec(): Promise {
+ const config: ApplicationConfig = {
+ rest: {
+ port: +(process.env.PORT ?? PORT),
+ host: process.env.HOST ?? 'localhost',
+ },
+ };
+ const outFile = process.argv[FILEARGVI] ?? 'openapi.json';
+ const app = new SchedulerServiceApplication(config);
+ await app.boot();
+ await app.exportOpenApiSpec(outFile);
+}
+
+exportOpenApiSpec().catch(err => {
+ console.error('Fail to export OpenAPI spec from the application.', err); //NOSONAR
+ process.exit(1);
+});
diff --git a/services/video-conferencing-service/README.md b/services/video-conferencing-service/README.md
index c09d5c11df..fae4d281b5 100644
--- a/services/video-conferencing-service/README.md
+++ b/services/video-conferencing-service/README.md
@@ -113,6 +113,10 @@ For configuration in vonage, see [Session Monitoring](https://tokbox.com/develop
### PUT /archives/storage-target
Configures custom storage target to a custom Amazon s3 bucket or Microsoft Azure Storage.
+## API's Details
+
+Visit the [OpenAPI spec docs](./openapi.md)
+
## Feedback
If you've noticed a bug or have a question or have a feature request, [search the issue tracker](https://github.com/sourcefuse/loopback4-microservice-catalog/issues) to see if someone else in the community has already created a ticket.
diff --git a/services/video-conferencing-service/openapi.json b/services/video-conferencing-service/openapi.json
new file mode 100644
index 0000000000..c519a82dea
--- /dev/null
+++ b/services/video-conferencing-service/openapi.json
@@ -0,0 +1,407 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "Video Conferencing Service",
+ "version": "1.0.0",
+ "description": "Microservice providing Video-Conferencing service",
+ "contact": {
+ "name": "Sourcefuse"
+ }
+ },
+ "paths": {
+ "/archives/storage-target": {
+ "put": {
+ "x-controller-name": "VideoChatArchiveController",
+ "x-operation-name": "setUploadTarget",
+ "tags": [
+ "VideoChatArchiveController"
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "text"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object"
+ }
+ }
+ }
+ },
+ "operationId": "VideoChatArchiveController.setUploadTarget"
+ }
+ },
+ "/archives/{archiveId}": {
+ "get": {
+ "x-controller-name": "VideoChatArchiveController",
+ "x-operation-name": "getArchive",
+ "tags": [
+ "VideoChatArchiveController"
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "archiveId",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "VideoChatArchiveController.getArchive"
+ },
+ "delete": {
+ "x-controller-name": "VideoChatArchiveController",
+ "x-operation-name": "deleteArchive",
+ "tags": [
+ "VideoChatArchiveController"
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "text"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "archiveId",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "VideoChatArchiveController.deleteArchive"
+ }
+ },
+ "/archives": {
+ "get": {
+ "x-controller-name": "VideoChatArchiveController",
+ "x-operation-name": "getArchives",
+ "tags": [
+ "VideoChatArchiveController"
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object"
+ }
+ }
+ }
+ }
+ },
+ "operationId": "VideoChatArchiveController.getArchives"
+ }
+ },
+ "/session/{meetingLinkId}/attendees": {
+ "get": {
+ "x-controller-name": "VideoChatSessionController",
+ "x-operation-name": "getAttendeesList",
+ "tags": [
+ "VideoChatSessionController"
+ ],
+ "parameters": [
+ {
+ "name": "meetingLinkId",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "name": "active",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array"
+ }
+ }
+ }
+ }
+ },
+ "operationId": "VideoChatSessionController.getAttendeesList"
+ }
+ },
+ "/session/{meetingLinkId}/end": {
+ "patch": {
+ "x-controller-name": "VideoChatSessionController",
+ "x-operation-name": "endSession",
+ "tags": [
+ "VideoChatSessionController"
+ ],
+ "responses": {
+ "204": {
+ "description": "MessageRecipient PATCH success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "meetingLinkId",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "operationId": "VideoChatSessionController.endSession"
+ }
+ },
+ "/session/{meetingLinkId}/token": {
+ "post": {
+ "x-controller-name": "VideoChatSessionController",
+ "x-operation-name": "getMeetingToken",
+ "tags": [
+ "VideoChatSessionController"
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "sessionId": "string",
+ "token": "string"
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "meetingLinkId",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object"
+ }
+ }
+ }
+ },
+ "operationId": "VideoChatSessionController.getMeetingToken"
+ }
+ },
+ "/session/{meetingLinkId}": {
+ "patch": {
+ "x-controller-name": "VideoChatSessionController",
+ "x-operation-name": "editMeeting",
+ "tags": [
+ "VideoChatSessionController"
+ ],
+ "responses": {
+ "204": {
+ "description": "Session details PATCH success"
+ }
+ },
+ "parameters": [
+ {
+ "name": "meetingLinkId",
+ "in": "path",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/VideoChatSessionPartial"
+ }
+ }
+ },
+ "x-parameter-index": 1
+ },
+ "operationId": "VideoChatSessionController.editMeeting"
+ }
+ },
+ "/session": {
+ "post": {
+ "x-controller-name": "VideoChatSessionController",
+ "x-operation-name": "getMeetingLink",
+ "tags": [
+ "VideoChatSessionController"
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object"
+ }
+ }
+ }
+ },
+ "operationId": "VideoChatSessionController.getMeetingLink"
+ }
+ },
+ "/webhooks/session": {
+ "post": {
+ "x-controller-name": "VideoChatSessionController",
+ "x-operation-name": "checkWebhookPayload",
+ "tags": [
+ "VideoChatSessionController"
+ ],
+ "responses": {
+ "204": {
+ "description": "POST /webhooks/session Success"
+ }
+ },
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object"
+ }
+ }
+ }
+ },
+ "operationId": "VideoChatSessionController.checkWebhookPayload"
+ }
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "HTTPBearer": {
+ "type": "http",
+ "scheme": "bearer",
+ "bearerFormat": "JWT"
+ }
+ },
+ "schemas": {
+ "VideoChatSessionPartial": {
+ "title": "VideoChatSessionPartial",
+ "type": "object",
+ "description": "(tsType: Partial, schemaOptions: { partial: true })",
+ "properties": {
+ "deleted": {
+ "type": "boolean"
+ },
+ "deletedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "deletedBy": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modifiedOn": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "modifiedBy": {
+ "type": "string"
+ },
+ "id": {
+ "type": "number"
+ },
+ "sessionId": {
+ "type": "string"
+ },
+ "meetingLink": {
+ "type": "string"
+ },
+ "isScheduled": {
+ "type": "boolean"
+ },
+ "scheduleTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "isArchived": {
+ "type": "boolean"
+ },
+ "archiveId": {
+ "type": "string"
+ },
+ "uploadTarget": {
+ "type": "string"
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "extId": {
+ "type": "string"
+ },
+ "extMetadata": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "x-typescript-type": "Partial"
+ }
+ }
+ },
+ "servers": [
+ {
+ "url": "/"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/services/video-conferencing-service/openapi.md b/services/video-conferencing-service/openapi.md
new file mode 100644
index 0000000000..3c8fec35d5
--- /dev/null
+++ b/services/video-conferencing-service/openapi.md
@@ -0,0 +1,675 @@
+---
+title: Video Conferencing Service v1.0.0
+language_tabs:
+ - "'javascript": JavaScript
+ - "'javascript--nodejs": Node.JS'
+language_clients:
+ - "'javascript": request'
+ - "'javascript--nodejs": ""
+toc_footers: []
+includes: []
+search: false
+highlight_theme: darkula
+headingLevel: 2
+
+---
+
+
+
+Video Conferencing Service v1.0.0
+
+> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
+
+Microservice providing Video-Conferencing service
+
+Base URLs:
+
+* /
+
+# Authentication
+
+- HTTP Authentication, scheme: bearer
+
+VideoChatArchiveController
+
+## VideoChatArchiveController.setUploadTarget
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'text/plain'
+};
+
+fetch('/archives/storage-target',
+{
+ method: 'PUT',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PUT /archives/storage-target`
+
+> Body parameter
+
+```json
+{}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```
+null
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|text|
+
+
+This operation does not require authentication
+
+
+## VideoChatArchiveController.getArchive
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/archives/{archiveId}',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /archives/{archiveId}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|archiveId|path|string|true|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+{}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+## VideoChatArchiveController.deleteArchive
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'text/plain'
+};
+
+fetch('/archives/{archiveId}',
+{
+ method: 'DELETE',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`DELETE /archives/{archiveId}`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|archiveId|path|string|true|none|
+
+> Example responses
+
+> 200 Response
+
+```
+null
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|text|
+
+
+This operation does not require authentication
+
+
+## VideoChatArchiveController.getArchives
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'application/json'
+};
+
+fetch('/archives',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /archives`
+
+> Example responses
+
+> 200 Response
+
+```json
+{}
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+VideoChatSessionController
+
+## VideoChatSessionController.getAttendeesList
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Accept':'text/plain'
+};
+
+fetch('/session/{meetingLinkId}/attendees',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`GET /session/{meetingLinkId}/attendees`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|meetingLinkId|path|string|true|none|
+|active|query|string|false|none|
+
+> Example responses
+
+> 200 Response
+
+```
+[]
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+## VideoChatSessionController.endSession
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+
+fetch('/session/{meetingLinkId}/end',
+{
+ method: 'PATCH'
+
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /session/{meetingLinkId}/end`
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|meetingLinkId|path|string|true|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|MessageRecipient PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## VideoChatSessionController.getMeetingToken
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'application/json'
+};
+
+fetch('/session/{meetingLinkId}/token',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /session/{meetingLinkId}/token`
+
+> Body parameter
+
+```json
+{}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|meetingLinkId|path|string|true|none|
+|body|body|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```json
+null
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
+
+Response Schema
+
+
+This operation does not require authentication
+
+
+## VideoChatSessionController.editMeeting
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": 0,
+ "sessionId": "string",
+ "meetingLink": "string",
+ "isScheduled": true,
+ "scheduleTime": "2019-08-24T14:15:22Z",
+ "isArchived": true,
+ "archiveId": "string",
+ "uploadTarget": "string",
+ "startTime": "2019-08-24T14:15:22Z",
+ "endTime": "2019-08-24T14:15:22Z",
+ "extId": "string",
+ "extMetadata": {}
+};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/session/{meetingLinkId}',
+{
+ method: 'PATCH',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`PATCH /session/{meetingLinkId}`
+
+> Body parameter
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": 0,
+ "sessionId": "string",
+ "meetingLink": "string",
+ "isScheduled": true,
+ "scheduleTime": "2019-08-24T14:15:22Z",
+ "isArchived": true,
+ "archiveId": "string",
+ "uploadTarget": "string",
+ "startTime": "2019-08-24T14:15:22Z",
+ "endTime": "2019-08-24T14:15:22Z",
+ "extId": "string",
+ "extMetadata": {}
+}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|meetingLinkId|path|string|true|none|
+|body|body|[VideoChatSessionPartial](#schemavideochatsessionpartial)|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Session details PATCH success|None|
+
+
+This operation does not require authentication
+
+
+## VideoChatSessionController.getMeetingLink
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {};
+const headers = {
+ 'Content-Type':'application/json',
+ 'Accept':'text/plain'
+};
+
+fetch('/session',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /session`
+
+> Body parameter
+
+```json
+{}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|object|false|none|
+
+> Example responses
+
+> 200 Response
+
+```
+"string"
+```
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|string|
+
+
+This operation does not require authentication
+
+
+## VideoChatSessionController.checkWebhookPayload
+
+
+
+> Code samples
+
+```'javascript--nodejs
+const fetch = require('node-fetch');
+const inputBody = {};
+const headers = {
+ 'Content-Type':'application/json'
+};
+
+fetch('/webhooks/session',
+{
+ method: 'POST',
+ body: JSON.stringify(inputBody),
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+```
+
+`POST /webhooks/session`
+
+> Body parameter
+
+```json
+{}
+```
+
+Parameters
+
+|Name|In|Type|Required|Description|
+|---|---|---|---|---|
+|body|body|object|false|none|
+
+Responses
+
+|Status|Meaning|Description|Schema|
+|---|---|---|---|
+|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|POST /webhooks/session Success|None|
+
+
+This operation does not require authentication
+
+
+# Schemas
+
+VideoChatSessionPartial
+
+
+
+
+
+
+```json
+{
+ "deleted": true,
+ "deletedOn": "2019-08-24T14:15:22Z",
+ "deletedBy": "string",
+ "createdOn": "2019-08-24T14:15:22Z",
+ "modifiedOn": "2019-08-24T14:15:22Z",
+ "createdBy": "string",
+ "modifiedBy": "string",
+ "id": 0,
+ "sessionId": "string",
+ "meetingLink": "string",
+ "isScheduled": true,
+ "scheduleTime": "2019-08-24T14:15:22Z",
+ "isArchived": true,
+ "archiveId": "string",
+ "uploadTarget": "string",
+ "startTime": "2019-08-24T14:15:22Z",
+ "endTime": "2019-08-24T14:15:22Z",
+ "extId": "string",
+ "extMetadata": {}
+}
+
+```
+
+VideoChatSessionPartial
+
+### Properties
+
+|Name|Type|Required|Restrictions|Description|
+|---|---|---|---|---|
+|deleted|boolean|false|none|none|
+|deletedOn|string(date-time)¦null|false|none|none|
+|deletedBy|string¦null|false|none|none|
+|createdOn|string(date-time)|false|none|none|
+|modifiedOn|string(date-time)|false|none|none|
+|createdBy|string|false|none|none|
+|modifiedBy|string|false|none|none|
+|id|number|false|none|none|
+|sessionId|string|false|none|none|
+|meetingLink|string|false|none|none|
+|isScheduled|boolean|false|none|none|
+|scheduleTime|string(date-time)|false|none|none|
+|isArchived|boolean|false|none|none|
+|archiveId|string|false|none|none|
+|uploadTarget|string|false|none|none|
+|startTime|string(date-time)|false|none|none|
+|endTime|string(date-time)|false|none|none|
+|extId|string|false|none|none|
+|extMetadata|object|false|none|none|
+
diff --git a/services/video-conferencing-service/package.json b/services/video-conferencing-service/package.json
index d6ed4c7152..bbed12c0ef 100644
--- a/services/video-conferencing-service/package.json
+++ b/services/video-conferencing-service/package.json
@@ -12,7 +12,7 @@
"node": ">=10"
},
"scripts": {
- "build": "lb-tsc",
+ "build": "lb-tsc && npm run openapi-spec && npm run apidocs",
"build:watch": "lb-tsc --watch",
"clean": "lb-clean dist *.tsbuildinfo .eslintcache",
"lint": "npm run prettier:check && npm run eslint",
@@ -22,6 +22,8 @@
"prettier:fix": "npm run prettier:cli -- --write",
"eslint": "lb-eslint --report-unused-disable-directives .",
"eslint:fix": "npm run eslint -- --fix",
+ "openapi-spec": "node ./dist/openapi-spec",
+ "apidocs": "./node_modules/.bin/widdershins --search false --language_tabs 'javascript:JavaScript:request' 'javascript--nodejs:Node.JS' --summary openapi.json -o openapi.md",
"pretest": "npm run clean && npm run build",
"test": "lb-mocha --allow-console-logs \"dist/__tests__\"",
"posttest": "npm run lint",
@@ -95,7 +97,8 @@
"eslint-plugin-eslint-plugin": "^3.0.2",
"eslint-plugin-mocha": "^8.1.0",
"source-map-support": "^0.5.19",
- "typescript": "~4.2.4"
+ "typescript": "~4.2.4",
+ "widdershins": "^4.0.1"
},
"publishConfig": {
"registry": "https://registry.npmjs.org/",
diff --git a/services/video-conferencing-service/src/application.ts b/services/video-conferencing-service/src/application.ts
new file mode 100644
index 0000000000..13fbaec9a6
--- /dev/null
+++ b/services/video-conferencing-service/src/application.ts
@@ -0,0 +1,27 @@
+import {BootMixin} from '@loopback/boot';
+import {ApplicationConfig} from '@loopback/core';
+import {RepositoryMixin} from '@loopback/repository';
+import {RestApplication} from '@loopback/rest';
+import * as path from 'path';
+import {VideoConfServiceComponent} from './component';
+
+export {ApplicationConfig};
+
+export class VideoConfServiceApplication extends BootMixin(
+ RepositoryMixin(RestApplication),
+) {
+ constructor(options: ApplicationConfig = {}) {
+ super(options);
+ this.static('/', path.join(__dirname, '../public'));
+ this.component(VideoConfServiceComponent);
+
+ this.projectRoot = __dirname;
+ this.bootOptions = {
+ controllers: {
+ dirs: ['controllers'],
+ extensions: ['.controller.js'],
+ nested: true,
+ },
+ };
+ }
+}
diff --git a/services/video-conferencing-service/src/openapi-spec.ts b/services/video-conferencing-service/src/openapi-spec.ts
new file mode 100644
index 0000000000..d22219300d
--- /dev/null
+++ b/services/video-conferencing-service/src/openapi-spec.ts
@@ -0,0 +1,25 @@
+import {ApplicationConfig} from '@loopback/core';
+import {VideoConfServiceApplication} from './application';
+
+/**
+ * Export the OpenAPI spec from the application
+ */
+const PORT = 3000;
+const FILEARGVI = 2;
+async function exportOpenApiSpec(): Promise {
+ const config: ApplicationConfig = {
+ rest: {
+ port: +(process.env.PORT ?? PORT),
+ host: process.env.HOST ?? 'localhost',
+ },
+ };
+ const outFile = process.argv[FILEARGVI] ?? 'openapi.json';
+ const app = new VideoConfServiceApplication(config);
+ await app.boot();
+ await app.exportOpenApiSpec(outFile);
+}
+
+exportOpenApiSpec().catch(err => {
+ console.error('Fail to export OpenAPI spec from the application.', err); //NOSONAR
+ process.exit(1);
+});