From 5baf4af43202d1f0f0f227fb42c1b2e0dab17149 Mon Sep 17 00:00:00 2001 From: akshatdubeysf <77672713+akshatdubeysf@users.noreply.github.com> Date: Wed, 26 May 2021 11:11:40 +0530 Subject: [PATCH 1/7] fix(video-conferencing-service): fixed missing exports (#220) gh-219 --- services/audit-service/migration.js | 2 +- services/authentication-service/migration.js | 2 +- services/bpmn-service/migration.js | 2 +- services/in-mail-service/migration.js | 2 +- services/notification-service/migration.js | 2 +- services/scheduler-service/migration.js | 2 +- services/video-conferencing-service/migration.js | 2 +- services/video-conferencing-service/src/index.ts | 3 +++ 8 files changed, 10 insertions(+), 7 deletions(-) diff --git a/services/audit-service/migration.js b/services/audit-service/migration.js index 00ebf7c8df..1754aa4e5e 100644 --- a/services/audit-service/migration.js +++ b/services/audit-service/migration.js @@ -1,6 +1,5 @@ const dotenvExt = require('dotenv-extended'); const fs = require('fs'); -const DBMigrate = require('db-migrate'); const path = require('path'); let isLocal = false; dotenvExt.load({ @@ -27,6 +26,7 @@ if (isLocal) { `${type}_MIGRATION or SOURCELOOP_MIGRATION variables not found in the environment, skipping automigration.`, ); } else { + const DBMigrate = require('db-migrate'); dotenvExt.load({ schema: path.join('.', 'migrations', '.env.schema'), path: path.join(process.env.INIT_CWD, '.env'), diff --git a/services/authentication-service/migration.js b/services/authentication-service/migration.js index 78ac56b557..15d3d09392 100644 --- a/services/authentication-service/migration.js +++ b/services/authentication-service/migration.js @@ -1,6 +1,5 @@ const dotenvExt = require('dotenv-extended'); const fs = require('fs'); -const DBMigrate = require('db-migrate'); const path = require('path'); let isLocal = false; dotenvExt.load({ @@ -27,6 +26,7 @@ if (isLocal) { `${type}_MIGRATION or SOURCELOOP_MIGRATION variables not found in the environment, skipping automigration.`, ); } else { + const DBMigrate = require('db-migrate'); dotenvExt.load({ schema: path.join('.', 'migrations', '.env.schema'), path: path.join(process.env.INIT_CWD, '.env'), diff --git a/services/bpmn-service/migration.js b/services/bpmn-service/migration.js index cdd04537d9..f0ab979432 100644 --- a/services/bpmn-service/migration.js +++ b/services/bpmn-service/migration.js @@ -1,6 +1,5 @@ const dotenvExt = require('dotenv-extended'); const fs = require('fs'); -const DBMigrate = require('db-migrate'); const path = require('path'); let isLocal = false; dotenvExt.load({ @@ -27,6 +26,7 @@ if (isLocal) { `${type}_MIGRATION or SOURCELOOP_MIGRATION variables not found in the environment, skipping automigration.`, ); } else { + const DBMigrate = require('db-migrate'); dotenvExt.load({ schema: path.join('.', 'migrations', '.env.schema'), path: path.join(process.env.INIT_CWD, '.env'), diff --git a/services/in-mail-service/migration.js b/services/in-mail-service/migration.js index da5bf1ecf7..f2e129bee6 100644 --- a/services/in-mail-service/migration.js +++ b/services/in-mail-service/migration.js @@ -1,6 +1,5 @@ const dotenvExt = require('dotenv-extended'); const fs = require('fs'); -const DBMigrate = require('db-migrate'); const path = require('path'); let isLocal = false; dotenvExt.load({ @@ -27,6 +26,7 @@ if (isLocal) { `${type}_MIGRATION or SOURCELOOP_MIGRATION variables not found in the environment, skipping automigration.`, ); } else { + const DBMigrate = require('db-migrate'); dotenvExt.load({ schema: path.join('.', 'migrations', '.env.schema'), path: path.join(process.env.INIT_CWD, '.env'), diff --git a/services/notification-service/migration.js b/services/notification-service/migration.js index ff5377a51a..4c1fab4e0d 100644 --- a/services/notification-service/migration.js +++ b/services/notification-service/migration.js @@ -1,6 +1,5 @@ const dotenvExt = require('dotenv-extended'); const fs = require('fs'); -const DBMigrate = require('db-migrate'); const path = require('path'); let isLocal = false; dotenvExt.load({ @@ -27,6 +26,7 @@ if (isLocal) { `${type}_MIGRATION or SOURCELOOP_MIGRATION variables not found in the environment, skipping automigration.`, ); } else { + const DBMigrate = require('db-migrate'); dotenvExt.load({ schema: path.join('.', 'migrations', '.env.schema'), path: path.join(process.env.INIT_CWD, '.env'), diff --git a/services/scheduler-service/migration.js b/services/scheduler-service/migration.js index 70d76ee5df..43a3bf7225 100644 --- a/services/scheduler-service/migration.js +++ b/services/scheduler-service/migration.js @@ -1,6 +1,5 @@ const dotenvExt = require('dotenv-extended'); const fs = require('fs'); -const DBMigrate = require('db-migrate'); const path = require('path'); let isLocal = false; dotenvExt.load({ @@ -27,6 +26,7 @@ if (isLocal) { `${type}_MIGRATION or SOURCELOOP_MIGRATION variables not found in the environment, skipping automigration.`, ); } else { + const DBMigrate = require('db-migrate'); dotenvExt.load({ schema: path.join('.', 'migrations', '.env.schema'), path: path.join(process.env.INIT_CWD, '.env'), diff --git a/services/video-conferencing-service/migration.js b/services/video-conferencing-service/migration.js index 32597301bf..f99a14cfa6 100644 --- a/services/video-conferencing-service/migration.js +++ b/services/video-conferencing-service/migration.js @@ -1,6 +1,5 @@ const dotenvExt = require('dotenv-extended'); const fs = require('fs'); -const DBMigrate = require('db-migrate'); const path = require('path'); let isLocal = false; dotenvExt.load({ @@ -27,6 +26,7 @@ if (isLocal) { `${type}_MIGRATION or SOURCELOOP_MIGRATION variables not found in the environment, skipping automigration.`, ); } else { + const DBMigrate = require('db-migrate'); dotenvExt.load({ schema: path.join('.', 'migrations', '.env.schema'), path: path.join(process.env.INIT_CWD, '.env'), diff --git a/services/video-conferencing-service/src/index.ts b/services/video-conferencing-service/src/index.ts index 71323eeb36..384a240bdf 100644 --- a/services/video-conferencing-service/src/index.ts +++ b/services/video-conferencing-service/src/index.ts @@ -1,2 +1,5 @@ export * from './component'; export * from './providers'; +export * from './keys'; +export * from './types'; +export * from './models'; From 8f15aaadaf81656c8b850bcbd3b13dd2fc235c84 Mon Sep 17 00:00:00 2001 From: ashutosh-bansal-2136 <82804130+ashutosh-bansal-2136@users.noreply.github.com> Date: Wed, 26 May 2021 11:29:33 +0530 Subject: [PATCH 2/7] fix(core): all packages updated (#214) --- README.md | 2 +- sandbox/auth-multitenant-example/migration.js | 6 +- .../src/application.ts | 7 +- .../src/datasources/pgdb.datasource.ts | 3 +- .../src/datasources/redis.datasource.ts | 3 +- .../src/models/user-level-permission.model.ts | 3 +- .../src/models/user-level-resource.model.ts | 3 +- .../casbin-authorization-action.provider.ts | 3 +- .../casbin-enforcer-config.provider.ts | 3 +- .../casbin-resource-val-modifier.provider.ts | 3 +- .../src/repositories/user-ext.repository.ts | 1 - services/audit-service/package-lock.json | 6 +- services/audit-service/package.json | 2 +- .../authentication-service/package-lock.json | 6 +- services/authentication-service/package.json | 2 +- services/bpmn-service/package-lock.json | 18 ++--- services/bpmn-service/package.json | 6 +- services/in-mail-service/package-lock.json | 74 +++++++++---------- services/in-mail-service/package.json | 6 +- .../notification-service/package-lock.json | 18 ++--- services/notification-service/package.json | 6 +- services/scheduler-service/package-lock.json | 6 +- services/scheduler-service/package.json | 2 +- .../package-lock.json | 74 +++++++++---------- .../video-conferencing-service/package.json | 6 +- 25 files changed, 135 insertions(+), 134 deletions(-) diff --git a/README.md b/README.md index 55505d52d9..d0df27621a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# loopback4-microservice-catalog +# loopback4-microservice-catalog [![LoopBack](https://github.com/strongloop/loopback-next/raw/master/docs/site/imgs/branding/Powered-by-LoopBack-Badge-(blue)-@2x.png)](http://loopback.io/) diff --git a/sandbox/auth-multitenant-example/migration.js b/sandbox/auth-multitenant-example/migration.js index 52ae3ea775..d52fe171a5 100644 --- a/sandbox/auth-multitenant-example/migration.js +++ b/sandbox/auth-multitenant-example/migration.js @@ -12,13 +12,11 @@ try { } catch (err) { console.info('\n'); } -if ( - isLocal -) { +if (isLocal) { console.info(`Skipping migrations`); } else { const dbmigrate = DBMigrate.getInstance(true, { - config: './migrations/database.json' + config: './migrations/database.json', }); dbmigrate.up(); } diff --git a/sandbox/auth-multitenant-example/src/application.ts b/sandbox/auth-multitenant-example/src/application.ts index 78a4ce7ee6..61899ba0c9 100644 --- a/sandbox/auth-multitenant-example/src/application.ts +++ b/sandbox/auth-multitenant-example/src/application.ts @@ -7,11 +7,8 @@ import { RestExplorerComponent, } from '@loopback/rest-explorer'; import {ServiceMixin} from '@loopback/service-proxy'; -import {CasbinSecureSequence, SFCoreBindings} from '@sourceloop/core'; -import { - AuthenticationServiceComponent, - AuthServiceBindings, -} from '@sourceloop/authentication-service'; +import {SFCoreBindings} from '@sourceloop/core'; +import {AuthenticationServiceComponent} from '@sourceloop/authentication-service'; import {HelmetSecurityBindings} from 'loopback4-helmet'; import {RateLimitSecurityBindings} from 'loopback4-ratelimiter'; import * as dotenv from 'dotenv'; diff --git a/sandbox/auth-multitenant-example/src/datasources/pgdb.datasource.ts b/sandbox/auth-multitenant-example/src/datasources/pgdb.datasource.ts index ec1dfdb07c..c008eff1ab 100644 --- a/sandbox/auth-multitenant-example/src/datasources/pgdb.datasource.ts +++ b/sandbox/auth-multitenant-example/src/datasources/pgdb.datasource.ts @@ -20,7 +20,8 @@ const config = { @lifeCycleObserver('datasource') export class PgdbDataSource extends juggler.DataSource - implements LifeCycleObserver { + implements LifeCycleObserver +{ static dataSourceName = AuthDbSourceName; static readonly defaultConfig = config; diff --git a/sandbox/auth-multitenant-example/src/datasources/redis.datasource.ts b/sandbox/auth-multitenant-example/src/datasources/redis.datasource.ts index 5d92e020d2..95857e3a51 100644 --- a/sandbox/auth-multitenant-example/src/datasources/redis.datasource.ts +++ b/sandbox/auth-multitenant-example/src/datasources/redis.datasource.ts @@ -19,7 +19,8 @@ const config = { @lifeCycleObserver('datasource') export class RedisDataSource extends juggler.DataSource - implements LifeCycleObserver { + implements LifeCycleObserver +{ static dataSourceName = AuthCacheSourceName; static readonly defaultConfig = config; diff --git a/sandbox/auth-multitenant-example/src/models/user-level-permission.model.ts b/sandbox/auth-multitenant-example/src/models/user-level-permission.model.ts index eb2badf4da..8382140cd2 100644 --- a/sandbox/auth-multitenant-example/src/models/user-level-permission.model.ts +++ b/sandbox/auth-multitenant-example/src/models/user-level-permission.model.ts @@ -8,7 +8,8 @@ import {UserTenant} from './index'; }) export class UserLevelPermission extends UserModifiableEntity - implements UserPermission { + implements UserPermission +{ @property({ type: 'string', id: true, diff --git a/sandbox/auth-multitenant-example/src/models/user-level-resource.model.ts b/sandbox/auth-multitenant-example/src/models/user-level-resource.model.ts index d5d0eb32e2..cb9428b2f5 100644 --- a/sandbox/auth-multitenant-example/src/models/user-level-resource.model.ts +++ b/sandbox/auth-multitenant-example/src/models/user-level-resource.model.ts @@ -7,7 +7,8 @@ import {IUserResource} from 'loopback4-authorization'; }) export class UserLevelResource extends UserModifiableEntity - implements IUserResource { + implements IUserResource +{ @property({ type: 'string', id: true, diff --git a/sandbox/auth-multitenant-example/src/providers/casbin-authorization-action.provider.ts b/sandbox/auth-multitenant-example/src/providers/casbin-authorization-action.provider.ts index a319fab7b8..1676b49a5a 100644 --- a/sandbox/auth-multitenant-example/src/providers/casbin-authorization-action.provider.ts +++ b/sandbox/auth-multitenant-example/src/providers/casbin-authorization-action.provider.ts @@ -14,7 +14,8 @@ import { import * as casbin from 'casbin'; export class CasbinAuthorizationProvider - implements Provider { + implements Provider +{ constructor( @inject.getter(AuthorizationBindings.METADATA) private readonly getCasbinMetadata: Getter, diff --git a/sandbox/auth-multitenant-example/src/providers/casbin-enforcer-config.provider.ts b/sandbox/auth-multitenant-example/src/providers/casbin-enforcer-config.provider.ts index 915463a55b..2aa2e9ec5f 100644 --- a/sandbox/auth-multitenant-example/src/providers/casbin-enforcer-config.provider.ts +++ b/sandbox/auth-multitenant-example/src/providers/casbin-enforcer-config.provider.ts @@ -13,7 +13,8 @@ import { import {UserLevelResourceRepository} from '../repositories'; export class CasbinEnforcerConfigProvider - implements Provider { + implements Provider +{ constructor( @inject.getter(AuthorizationBindings.METADATA) private readonly getCasbinMetadata: Getter, diff --git a/sandbox/auth-multitenant-example/src/providers/casbin-resource-val-modifier.provider.ts b/sandbox/auth-multitenant-example/src/providers/casbin-resource-val-modifier.provider.ts index dd078bce78..ada275f62a 100644 --- a/sandbox/auth-multitenant-example/src/providers/casbin-resource-val-modifier.provider.ts +++ b/sandbox/auth-multitenant-example/src/providers/casbin-resource-val-modifier.provider.ts @@ -9,7 +9,8 @@ import { } from 'loopback4-authorization'; export class CasbinResValModifierProvider - implements Provider { + implements Provider +{ constructor( @inject.getter(AuthorizationBindings.METADATA) private readonly getCasbinMetadata: Getter, diff --git a/sandbox/auth-multitenant-example/src/repositories/user-ext.repository.ts b/sandbox/auth-multitenant-example/src/repositories/user-ext.repository.ts index b786d50bc2..1440dbe650 100644 --- a/sandbox/auth-multitenant-example/src/repositories/user-ext.repository.ts +++ b/sandbox/auth-multitenant-example/src/repositories/user-ext.repository.ts @@ -125,7 +125,6 @@ export class UserExtRepository extends DefaultSoftCrudRepository< } await this.credentials(user.id).create(creds, options); } catch (err) { - // eslint-disable-next-line @typescript-eslint/no-floating-promises super.deleteByIdHard(user.id); throw new HttpErrors.UnprocessableEntity('Error while hashing password'); } diff --git a/services/audit-service/package-lock.json b/services/audit-service/package-lock.json index 95e9dcf739..1287110d25 100644 --- a/services/audit-service/package-lock.json +++ b/services/audit-service/package-lock.json @@ -917,9 +917,9 @@ "dev": true }, "@types/node": { - "version": "10.17.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.59.tgz", - "integrity": "sha512-7Uc8IRrL8yZz5ti45RaFxpbU8TxlzdC3HvxV+hOWo1EyLsuKv/w7y0n+TwZzwL3vdx3oZ2k3ubxPq131hNtXyg==", + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", "dev": true }, "@types/on-finished": { diff --git a/services/audit-service/package.json b/services/audit-service/package.json index fa9e5fa14b..d45ab59e90 100644 --- a/services/audit-service/package.json +++ b/services/audit-service/package.json @@ -67,7 +67,7 @@ "@loopback/build": "^6.4.0", "@loopback/eslint-config": "^10.2.0", "@loopback/testlab": "^3.4.0", - "@types/node": "^10.17.59", + "@types/node": "^10.17.60", "db-migrate": "^0.11.12", "db-migrate-pg": "^1.2.2", "eslint": "^7.25.0", diff --git a/services/authentication-service/package-lock.json b/services/authentication-service/package-lock.json index e5e5ec1fa5..60a2f09130 100644 --- a/services/authentication-service/package-lock.json +++ b/services/authentication-service/package-lock.json @@ -995,9 +995,9 @@ } }, "@types/node": { - "version": "10.17.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.59.tgz", - "integrity": "sha512-7Uc8IRrL8yZz5ti45RaFxpbU8TxlzdC3HvxV+hOWo1EyLsuKv/w7y0n+TwZzwL3vdx3oZ2k3ubxPq131hNtXyg==", + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", "dev": true }, "@types/node-fetch": { diff --git a/services/authentication-service/package.json b/services/authentication-service/package.json index 32ee6452bd..ba5f656f20 100644 --- a/services/authentication-service/package.json +++ b/services/authentication-service/package.json @@ -83,7 +83,7 @@ "@types/jsonwebtoken": "^8.5.0", "@types/lodash": "^4.14.157", "@types/moment-timezone": "^0.5.13", - "@types/node": "^10.17.59", + "@types/node": "^10.17.60", "@types/node-fetch": "^2.5.10", "@types/passport-google-oauth20": "^2.0.3", "@types/passport-instagram": "^1.0.0", diff --git a/services/bpmn-service/package-lock.json b/services/bpmn-service/package-lock.json index ac81d01c46..52498f60bf 100644 --- a/services/bpmn-service/package-lock.json +++ b/services/bpmn-service/package-lock.json @@ -969,9 +969,9 @@ } }, "@types/lodash": { - "version": "4.14.168", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", - "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", + "version": "4.14.169", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.169.tgz", + "integrity": "sha512-DvmZHoHTFJ8zhVYwCLWbQ7uAbYQEk52Ev2/ZiQ7Y7gQGeV9pjBqjnQpECMHfKS1rCYAhMI7LHVxwyZLZinJgdw==", "dev": true }, "@types/mime": { @@ -991,9 +991,9 @@ "dev": true }, "@types/node": { - "version": "10.17.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.59.tgz", - "integrity": "sha512-7Uc8IRrL8yZz5ti45RaFxpbU8TxlzdC3HvxV+hOWo1EyLsuKv/w7y0n+TwZzwL3vdx3oZ2k3ubxPq131hNtXyg==", + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", "dev": true }, "@types/on-finished": { @@ -1259,9 +1259,9 @@ } }, "ajv": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.3.0.tgz", - "integrity": "sha512-RYE7B5An83d7eWnDR8kbdaIFqmKCNsP16ay1hDbJEU+sa0e3H9SebskCt0Uufem6cfAVu7Col6ubcn/W+Sm8/Q==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.4.0.tgz", + "integrity": "sha512-7QD2l6+KBSLwf+7MuYocbWvRPdOu63/trReTLu2KFwkgctnub1auoF+Y1WYcm09CTM7quuscrzqmASaLHC/K4Q==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", diff --git a/services/bpmn-service/package.json b/services/bpmn-service/package.json index 76d67886eb..a2887e33da 100644 --- a/services/bpmn-service/package.json +++ b/services/bpmn-service/package.json @@ -56,7 +56,7 @@ "@loopback/repository": "^3.6.0", "@loopback/rest": "^9.3.0", "@sourceloop/core": "^1.0.0", - "ajv": "^8.0.5", + "ajv": "^8.4.0", "camunda-external-task-client-js": "^2.1.0", "dotenv": "^8.2.0", "dotenv-extended": "^2.9.0", @@ -71,8 +71,8 @@ "@loopback/eslint-config": "^10.2.0", "@loopback/testlab": "^3.4.0", "@types/camunda-external-task-client-js": "^1.3.1", - "@types/lodash": "^4.14.153", - "@types/node": "^10.17.59", + "@types/lodash": "^4.14.169", + "@types/node": "^10.17.60", "db-migrate": "^0.11.12", "db-migrate-pg": "^1.2.2", "eslint": "^7.25.0", diff --git a/services/in-mail-service/package-lock.json b/services/in-mail-service/package-lock.json index c6e1284849..697e5dc837 100644 --- a/services/in-mail-service/package-lock.json +++ b/services/in-mail-service/package-lock.json @@ -956,9 +956,9 @@ "dev": true }, "@types/node": { - "version": "10.17.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.59.tgz", - "integrity": "sha512-7Uc8IRrL8yZz5ti45RaFxpbU8TxlzdC3HvxV+hOWo1EyLsuKv/w7y0n+TwZzwL3vdx3oZ2k3ubxPq131hNtXyg==", + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", "dev": true }, "@types/on-finished": { @@ -1082,13 +1082,13 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.1.tgz", - "integrity": "sha512-kVTAghWDDhsvQ602tHBc6WmQkdaYbkcTwZu+7l24jtJiYvm9l+/y/b2BZANEezxPDiX5MK2ZecE+9BFi/YJryw==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.23.0.tgz", + "integrity": "sha512-tGK1y3KIvdsQEEgq6xNn1DjiFJtl+wn8JJQiETtCbdQxw1vzjXyAaIkEmO2l6Nq24iy3uZBMFQjZ6ECf1QdgGw==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.22.1", - "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/experimental-utils": "4.23.0", + "@typescript-eslint/scope-manager": "4.23.0", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -1098,55 +1098,55 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.1.tgz", - "integrity": "sha512-svYlHecSMCQGDO2qN1v477ax/IDQwWhc7PRBiwAdAMJE7GXk5stF4Z9R/8wbRkuX/5e9dHqbIWxjeOjckK3wLQ==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.23.0.tgz", + "integrity": "sha512-WAFNiTDnQfrF3Z2fQ05nmCgPsO5o790vOhmWKXbbYQTO9erE1/YsFot5/LnOUizLzU2eeuz6+U/81KV5/hFTGA==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.22.1", - "@typescript-eslint/types": "4.22.1", - "@typescript-eslint/typescript-estree": "4.22.1", + "@typescript-eslint/scope-manager": "4.23.0", + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/typescript-estree": "4.23.0", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.1.tgz", - "integrity": "sha512-l+sUJFInWhuMxA6rtirzjooh8cM/AATAe3amvIkqKFeMzkn85V+eLzb1RyuXkHak4dLfYzOmF6DXPyflJvjQnw==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.23.0.tgz", + "integrity": "sha512-wsvjksHBMOqySy/Pi2Q6UuIuHYbgAMwLczRl4YanEPKW5KVxI9ZzDYh3B5DtcZPQTGRWFJrfcbJ6L01Leybwug==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.22.1", - "@typescript-eslint/types": "4.22.1", - "@typescript-eslint/typescript-estree": "4.22.1", + "@typescript-eslint/scope-manager": "4.23.0", + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/typescript-estree": "4.23.0", "debug": "^4.1.1" } }, "@typescript-eslint/scope-manager": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.1.tgz", - "integrity": "sha512-d5bAiPBiessSmNi8Amq/RuLslvcumxLmyhf1/Xa9IuaoFJ0YtshlJKxhlbY7l2JdEk3wS0EnmnfeJWSvADOe0g==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.23.0.tgz", + "integrity": "sha512-ZZ21PCFxPhI3n0wuqEJK9omkw51wi2bmeKJvlRZPH5YFkcawKOuRMQMnI8mH6Vo0/DoHSeZJnHiIx84LmVQY+w==", "dev": true, "requires": { - "@typescript-eslint/types": "4.22.1", - "@typescript-eslint/visitor-keys": "4.22.1" + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/visitor-keys": "4.23.0" } }, "@typescript-eslint/types": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.1.tgz", - "integrity": "sha512-2HTkbkdAeI3OOcWbqA8hWf/7z9c6gkmnWNGz0dKSLYLWywUlkOAQ2XcjhlKLj5xBFDf8FgAOF5aQbnLRvgNbCw==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.23.0.tgz", + "integrity": "sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.1.tgz", - "integrity": "sha512-p3We0pAPacT+onSGM+sPR+M9CblVqdA9F1JEdIqRVlxK5Qth4ochXQgIyb9daBomyQKAXbygxp1aXQRV0GC79A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.23.0.tgz", + "integrity": "sha512-5Sty6zPEVZF5fbvrZczfmLCOcby3sfrSPu30qKoY1U3mca5/jvU5cwsPb/CO6Q3ByRjixTMIVsDkqwIxCf/dMw==", "dev": true, "requires": { - "@typescript-eslint/types": "4.22.1", - "@typescript-eslint/visitor-keys": "4.22.1", + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/visitor-keys": "4.23.0", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -1155,12 +1155,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.1.tgz", - "integrity": "sha512-WPkOrIRm+WCLZxXQHCi+WG8T2MMTUFR70rWjdWYddLT7cEfb2P4a3O/J2U1FBVsSFTocXLCoXWY6MZGejeStvQ==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.23.0.tgz", + "integrity": "sha512-5PNe5cmX9pSifit0H+nPoQBXdbNzi5tOEec+3riK+ku4e3er37pKxMKDH5Ct5Y4fhWxcD4spnlYjxi9vXbSpwg==", "dev": true, "requires": { - "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/types": "4.23.0", "eslint-visitor-keys": "^2.0.0" } }, diff --git a/services/in-mail-service/package.json b/services/in-mail-service/package.json index 907a9563f6..63a7ea80cd 100644 --- a/services/in-mail-service/package.json +++ b/services/in-mail-service/package.json @@ -74,9 +74,9 @@ "@loopback/build": "^6.4.0", "@loopback/eslint-config": "^10.2.0", "@loopback/testlab": "^3.4.0", - "@types/node": "^10.17.59", - "@typescript-eslint/eslint-plugin": "^4.22.0", - "@typescript-eslint/parser": "^4.22.0", + "@types/node": "^10.17.60", + "@typescript-eslint/eslint-plugin": "^4.23.0", + "@typescript-eslint/parser": "^4.23.0", "axios-mock-adapter": "^1.18.1", "db-migrate": "^0.11.12", "db-migrate-pg": "^1.2.2", diff --git a/services/notification-service/package-lock.json b/services/notification-service/package-lock.json index ec388bf6c3..ef41e8e3ad 100644 --- a/services/notification-service/package-lock.json +++ b/services/notification-service/package-lock.json @@ -1256,9 +1256,9 @@ "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==" }, "@types/lodash": { - "version": "4.14.168", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", - "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", + "version": "4.14.169", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.169.tgz", + "integrity": "sha512-DvmZHoHTFJ8zhVYwCLWbQ7uAbYQEk52Ev2/ZiQ7Y7gQGeV9pjBqjnQpECMHfKS1rCYAhMI7LHVxwyZLZinJgdw==", "dev": true }, "@types/long": { @@ -1284,9 +1284,9 @@ "dev": true }, "@types/node": { - "version": "10.17.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.59.tgz", - "integrity": "sha512-7Uc8IRrL8yZz5ti45RaFxpbU8TxlzdC3HvxV+hOWo1EyLsuKv/w7y0n+TwZzwL3vdx3oZ2k3ubxPq131hNtXyg==" + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" }, "@types/nodemailer": { "version": "6.4.1", @@ -1827,9 +1827,9 @@ "integrity": "sha512-t7Zm5YGgEEc/3eYAicF32m/TNvL+XOeYZy9CvBUeJY/szM7frLolFylhrlZNWV/ohWhcUXygrBGjYmoQdxF4CQ==" }, "aws-sdk": { - "version": "2.903.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.903.0.tgz", - "integrity": "sha512-BP/giYLP8QJ63Jta59kph1F76oPITxRt/wNr3BdoEs9BtshWlGKk149UaseDB4wJtI+0TER5jtzBIUBcP6E+wA==", + "version": "2.907.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.907.0.tgz", + "integrity": "sha512-P1gth8sVqXCIjKN78kyD3OosEzqUSYxDG04Cpp2wVGx/djsd5OSv4NkayOhKZ5OMXwk6IdA82oXV/HQR8EjbwQ==", "requires": { "buffer": "4.9.2", "events": "1.1.1", diff --git a/services/notification-service/package.json b/services/notification-service/package.json index 34caec9f3e..6eb89e5d6e 100644 --- a/services/notification-service/package.json +++ b/services/notification-service/package.json @@ -56,7 +56,7 @@ "@loopback/repository": "^3.6.0", "@loopback/rest": "^9.3.0", "@sourceloop/core": "^1.0.0", - "aws-sdk": "^2.694.0", + "aws-sdk": "^2.907.0", "dotenv": "^8.2.0", "dotenv-extended": "^2.9.0", "lodash": "^4.17.21", @@ -72,8 +72,8 @@ "@loopback/build": "^6.4.0", "@loopback/eslint-config": "^10.2.0", "@loopback/testlab": "^3.4.0", - "@types/lodash": "^4.14.153", - "@types/node": "^10.17.59", + "@types/lodash": "^4.14.169", + "@types/node": "^10.17.60", "db-migrate": "^0.11.12", "db-migrate-pg": "^1.2.2", "eslint": "^7.25.0", diff --git a/services/scheduler-service/package-lock.json b/services/scheduler-service/package-lock.json index 61753b3c66..e5bd97468c 100644 --- a/services/scheduler-service/package-lock.json +++ b/services/scheduler-service/package-lock.json @@ -916,9 +916,9 @@ "dev": true }, "@types/node": { - "version": "10.17.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.59.tgz", - "integrity": "sha512-7Uc8IRrL8yZz5ti45RaFxpbU8TxlzdC3HvxV+hOWo1EyLsuKv/w7y0n+TwZzwL3vdx3oZ2k3ubxPq131hNtXyg==", + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", "dev": true }, "@types/on-finished": { diff --git a/services/scheduler-service/package.json b/services/scheduler-service/package.json index b223f97eab..b708261197 100644 --- a/services/scheduler-service/package.json +++ b/services/scheduler-service/package.json @@ -73,7 +73,7 @@ "@loopback/eslint-config": "^10.2.0", "@loopback/testlab": "^3.4.0", "@types/jsonwebtoken": "^8.5.0", - "@types/node": "^10.17.59", + "@types/node": "^10.17.60", "db-migrate": "^0.11.11", "db-migrate-pg": "^1.2.2", "eslint": "^7.25.0", diff --git a/services/video-conferencing-service/package-lock.json b/services/video-conferencing-service/package-lock.json index 09508ab00a..cb48b739d3 100644 --- a/services/video-conferencing-service/package-lock.json +++ b/services/video-conferencing-service/package-lock.json @@ -946,9 +946,9 @@ } }, "@types/node": { - "version": "10.17.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.59.tgz", - "integrity": "sha512-7Uc8IRrL8yZz5ti45RaFxpbU8TxlzdC3HvxV+hOWo1EyLsuKv/w7y0n+TwZzwL3vdx3oZ2k3ubxPq131hNtXyg==", + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", "dev": true }, "@types/on-finished": { @@ -1067,13 +1067,13 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.1.tgz", - "integrity": "sha512-kVTAghWDDhsvQ602tHBc6WmQkdaYbkcTwZu+7l24jtJiYvm9l+/y/b2BZANEezxPDiX5MK2ZecE+9BFi/YJryw==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.23.0.tgz", + "integrity": "sha512-tGK1y3KIvdsQEEgq6xNn1DjiFJtl+wn8JJQiETtCbdQxw1vzjXyAaIkEmO2l6Nq24iy3uZBMFQjZ6ECf1QdgGw==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.22.1", - "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/experimental-utils": "4.23.0", + "@typescript-eslint/scope-manager": "4.23.0", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -1109,55 +1109,55 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.1.tgz", - "integrity": "sha512-svYlHecSMCQGDO2qN1v477ax/IDQwWhc7PRBiwAdAMJE7GXk5stF4Z9R/8wbRkuX/5e9dHqbIWxjeOjckK3wLQ==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.23.0.tgz", + "integrity": "sha512-WAFNiTDnQfrF3Z2fQ05nmCgPsO5o790vOhmWKXbbYQTO9erE1/YsFot5/LnOUizLzU2eeuz6+U/81KV5/hFTGA==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.22.1", - "@typescript-eslint/types": "4.22.1", - "@typescript-eslint/typescript-estree": "4.22.1", + "@typescript-eslint/scope-manager": "4.23.0", + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/typescript-estree": "4.23.0", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.1.tgz", - "integrity": "sha512-l+sUJFInWhuMxA6rtirzjooh8cM/AATAe3amvIkqKFeMzkn85V+eLzb1RyuXkHak4dLfYzOmF6DXPyflJvjQnw==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.23.0.tgz", + "integrity": "sha512-wsvjksHBMOqySy/Pi2Q6UuIuHYbgAMwLczRl4YanEPKW5KVxI9ZzDYh3B5DtcZPQTGRWFJrfcbJ6L01Leybwug==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.22.1", - "@typescript-eslint/types": "4.22.1", - "@typescript-eslint/typescript-estree": "4.22.1", + "@typescript-eslint/scope-manager": "4.23.0", + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/typescript-estree": "4.23.0", "debug": "^4.1.1" } }, "@typescript-eslint/scope-manager": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.1.tgz", - "integrity": "sha512-d5bAiPBiessSmNi8Amq/RuLslvcumxLmyhf1/Xa9IuaoFJ0YtshlJKxhlbY7l2JdEk3wS0EnmnfeJWSvADOe0g==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.23.0.tgz", + "integrity": "sha512-ZZ21PCFxPhI3n0wuqEJK9omkw51wi2bmeKJvlRZPH5YFkcawKOuRMQMnI8mH6Vo0/DoHSeZJnHiIx84LmVQY+w==", "dev": true, "requires": { - "@typescript-eslint/types": "4.22.1", - "@typescript-eslint/visitor-keys": "4.22.1" + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/visitor-keys": "4.23.0" } }, "@typescript-eslint/types": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.1.tgz", - "integrity": "sha512-2HTkbkdAeI3OOcWbqA8hWf/7z9c6gkmnWNGz0dKSLYLWywUlkOAQ2XcjhlKLj5xBFDf8FgAOF5aQbnLRvgNbCw==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.23.0.tgz", + "integrity": "sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.1.tgz", - "integrity": "sha512-p3We0pAPacT+onSGM+sPR+M9CblVqdA9F1JEdIqRVlxK5Qth4ochXQgIyb9daBomyQKAXbygxp1aXQRV0GC79A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.23.0.tgz", + "integrity": "sha512-5Sty6zPEVZF5fbvrZczfmLCOcby3sfrSPu30qKoY1U3mca5/jvU5cwsPb/CO6Q3ByRjixTMIVsDkqwIxCf/dMw==", "dev": true, "requires": { - "@typescript-eslint/types": "4.22.1", - "@typescript-eslint/visitor-keys": "4.22.1", + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/visitor-keys": "4.23.0", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -1192,12 +1192,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.1.tgz", - "integrity": "sha512-WPkOrIRm+WCLZxXQHCi+WG8T2MMTUFR70rWjdWYddLT7cEfb2P4a3O/J2U1FBVsSFTocXLCoXWY6MZGejeStvQ==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.23.0.tgz", + "integrity": "sha512-5PNe5cmX9pSifit0H+nPoQBXdbNzi5tOEec+3riK+ku4e3er37pKxMKDH5Ct5Y4fhWxcD4spnlYjxi9vXbSpwg==", "dev": true, "requires": { - "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/types": "4.23.0", "eslint-visitor-keys": "^2.0.0" } }, diff --git a/services/video-conferencing-service/package.json b/services/video-conferencing-service/package.json index 1b7b65d657..d6ed4c7152 100644 --- a/services/video-conferencing-service/package.json +++ b/services/video-conferencing-service/package.json @@ -84,9 +84,9 @@ "@loopback/build": "^6.4.0", "@loopback/eslint-config": "^10.2.0", "@loopback/testlab": "^3.4.0", - "@types/node": "^10.17.59", - "@typescript-eslint/eslint-plugin": "^4.22.0", - "@typescript-eslint/parser": "^4.22.0", + "@types/node": "^10.17.60", + "@typescript-eslint/eslint-plugin": "^4.23.0", + "@typescript-eslint/parser": "^4.23.0", "axios-mock-adapter": "^1.18.1", "db-migrate": "^0.11.11", "db-migrate-pg": "^1.2.2", From b12ce800e2cbf475b84812657afdfaa39fabcc8b Mon Sep 17 00:00:00 2001 From: arghaya Date: Mon, 31 May 2021 22:44:48 +0530 Subject: [PATCH 3/7] fix(core): update nodejs version in docker file to latest (#227) --- sandbox/audit-ms-example/Dockerfile | 2 +- sandbox/auth-ms-basic-example/Dockerfile | 2 +- sandbox/auth-multitenant-example/Dockerfile | 2 +- sandbox/in-mail-example/Dockerfile | 2 +- sandbox/notification-socket-example/Dockerfile | 2 +- sandbox/scheduler-example/Dockerfile | 2 +- sandbox/video-conferencing-ms-example/Dockerfile | 2 +- sandbox/workflow-ms-example/Dockerfile | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sandbox/audit-ms-example/Dockerfile b/sandbox/audit-ms-example/Dockerfile index bca90e201a..8c48fdb4a4 100644 --- a/sandbox/audit-ms-example/Dockerfile +++ b/sandbox/audit-ms-example/Dockerfile @@ -1,5 +1,5 @@ # Check out https://hub.docker.com/_/node to select a new base image -FROM node:10-slim +FROM node:14-slim # Set to a non-root built-in user `node` USER node diff --git a/sandbox/auth-ms-basic-example/Dockerfile b/sandbox/auth-ms-basic-example/Dockerfile index bca90e201a..8c48fdb4a4 100644 --- a/sandbox/auth-ms-basic-example/Dockerfile +++ b/sandbox/auth-ms-basic-example/Dockerfile @@ -1,5 +1,5 @@ # Check out https://hub.docker.com/_/node to select a new base image -FROM node:10-slim +FROM node:14-slim # Set to a non-root built-in user `node` USER node diff --git a/sandbox/auth-multitenant-example/Dockerfile b/sandbox/auth-multitenant-example/Dockerfile index 9f3e7b074e..00c6b77152 100644 --- a/sandbox/auth-multitenant-example/Dockerfile +++ b/sandbox/auth-multitenant-example/Dockerfile @@ -1,5 +1,5 @@ # Check out https://hub.docker.com/_/node to select a new base image -FROM node:10-slim +FROM node:14-slim # Set to a non-root built-in user `node` USER node diff --git a/sandbox/in-mail-example/Dockerfile b/sandbox/in-mail-example/Dockerfile index 5fcdd67bad..2618207377 100644 --- a/sandbox/in-mail-example/Dockerfile +++ b/sandbox/in-mail-example/Dockerfile @@ -1,5 +1,5 @@ # Check out https://hub.docker.com/_/node to select a new base image -FROM node:10-slim +FROM node:14-slim # Set to a non-root built-in user `node` USER node diff --git a/sandbox/notification-socket-example/Dockerfile b/sandbox/notification-socket-example/Dockerfile index bca90e201a..8c48fdb4a4 100644 --- a/sandbox/notification-socket-example/Dockerfile +++ b/sandbox/notification-socket-example/Dockerfile @@ -1,5 +1,5 @@ # Check out https://hub.docker.com/_/node to select a new base image -FROM node:10-slim +FROM node:14-slim # Set to a non-root built-in user `node` USER node diff --git a/sandbox/scheduler-example/Dockerfile b/sandbox/scheduler-example/Dockerfile index bca90e201a..8c48fdb4a4 100644 --- a/sandbox/scheduler-example/Dockerfile +++ b/sandbox/scheduler-example/Dockerfile @@ -1,5 +1,5 @@ # Check out https://hub.docker.com/_/node to select a new base image -FROM node:10-slim +FROM node:14-slim # Set to a non-root built-in user `node` USER node diff --git a/sandbox/video-conferencing-ms-example/Dockerfile b/sandbox/video-conferencing-ms-example/Dockerfile index bca90e201a..8c48fdb4a4 100644 --- a/sandbox/video-conferencing-ms-example/Dockerfile +++ b/sandbox/video-conferencing-ms-example/Dockerfile @@ -1,5 +1,5 @@ # Check out https://hub.docker.com/_/node to select a new base image -FROM node:10-slim +FROM node:14-slim # Set to a non-root built-in user `node` USER node diff --git a/sandbox/workflow-ms-example/Dockerfile b/sandbox/workflow-ms-example/Dockerfile index a55e10e50f..e7f08f8edc 100644 --- a/sandbox/workflow-ms-example/Dockerfile +++ b/sandbox/workflow-ms-example/Dockerfile @@ -1,5 +1,5 @@ # Check out https://hub.docker.com/_/node to select a new base image -FROM node:10-slim +FROM node:14-slim # Set to a non-root built-in user `node` USER node From 3fe4154e0bb6b7606538d23af1bebfa541c3875a Mon Sep 17 00:00:00 2001 From: akshatdubeysf <77672713+akshatdubeysf@users.noreply.github.com> Date: Mon, 31 May 2021 22:48:09 +0530 Subject: [PATCH 4/7] fix(video-conferencing-service): add more exports (#221) --- DEVELOPING.md | 20 ++++--------------- .../video-conferencing-service/src/index.ts | 3 +++ 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/DEVELOPING.md b/DEVELOPING.md index ef738c054c..3e0a1516ef 100644 --- a/DEVELOPING.md +++ b/DEVELOPING.md @@ -234,19 +234,7 @@ this.component(CoreComponent); this.sequence(ServiceSequence); ``` -10. **Add Rakuten core** - Add rakuten-core as dependency to the module - - ```sh - lerna add rakuten-core --scope={service name} - ``` - -In application.ts, - - ```ts - this.component(RakutenCoreComponent); - ``` - -11. **Bearer Verifier** - Add bearer verifier to your service +10. **Bearer Verifier** - Add bearer verifier to your service ```sh lerna add loopback4-authentication --scope={service name} @@ -288,7 +276,7 @@ Add below to application.ts Use BearerVerifierType.facade for facades. -12. **Setup project for test coverage** - +11. **Setup project for test coverage** - Create a file named .nycrc and copy this data in it @@ -313,8 +301,8 @@ Use BearerVerifierType.facade for facades. "coverage": "nyc npm run test", ``` -13. **Setup sequence** - Remove auto-generated sequence.ts and change to ServiceSequence in application.ts. -14. **Fix api explorer** - Update base path in index.html for facades. +12. **Setup sequence** - Remove auto-generated sequence.ts and change to ServiceSequence in application.ts. +13. **Fix api explorer** - Update base path in index.html for facades. ```html diff --git a/services/video-conferencing-service/src/index.ts b/services/video-conferencing-service/src/index.ts index 384a240bdf..6740e7cd69 100644 --- a/services/video-conferencing-service/src/index.ts +++ b/services/video-conferencing-service/src/index.ts @@ -3,3 +3,6 @@ export * from './providers'; export * from './keys'; export * from './types'; export * from './models'; +export * from './controllers'; +export * from './enums'; +export * from './repositories'; From baec0f193853e3d95237fba460b301dead110edd Mon Sep 17 00:00:00 2001 From: sumiter92 <46099054+sumiter92@users.noreply.github.com> Date: Fri, 4 Jun 2021 23:09:36 +0530 Subject: [PATCH 5/7] docs: add openapi spec docs in examples and improve the docs in services (#215) --- DEVELOPING.md | 9 +- README.md | 14 +- sandbox/audit-ms-example/README.md | 4 + sandbox/audit-ms-example/openapi.md | 1477 ++ sandbox/auth-ms-basic-example/README.md | 4 + sandbox/auth-ms-basic-example/openapi.md | 3934 ++++ sandbox/auth-multitenant-example/README.md | 4 + sandbox/auth-multitenant-example/openapi.md | 3990 ++++ sandbox/in-mail-example/README.md | 4 + sandbox/in-mail-example/openapi.md | 3891 ++++ sandbox/notification-socket-example/README.md | 4 + .../notification-socket-example/openapi.md | 2557 +++ sandbox/scheduler-example/README.md | 4 + sandbox/scheduler-example/openapi.md | 17800 ++++++++++++++++ .../video-conferencing-ms-example/README.md | 6 +- .../video-conferencing-ms-example/openapi.md | 675 + sandbox/workflow-ms-example/README.md | 6 +- sandbox/workflow-ms-example/openapi.md | 792 + services/audit-service/README.md | 4 +- services/audit-service/openapi.json | 512 + services/audit-service/openapi.md | 642 + services/audit-service/package.json | 5 +- services/audit-service/src/application.ts | 27 + services/audit-service/src/openapi-spec.ts | 25 + .../authentication-service/OPEN_API_SPEC.md | 7499 ------- services/authentication-service/README.md | 4 +- services/authentication-service/openapi.json | 2027 ++ services/authentication-service/openapi.md | 3099 +++ services/authentication-service/package.json | 7 +- .../authentication-service/src/application.ts | 27 + .../src/openapi-spec.ts | 25 + services/bpmn-service/README.md | 4 + services/bpmn-service/openapi.json | 571 + services/bpmn-service/openapi.md | 792 + services/bpmn-service/package.json | 7 +- services/bpmn-service/src/application.ts | 27 + services/bpmn-service/src/openapi-spec.ts | 25 + services/in-mail-service/README.md | 19 +- .../in-mail-service/migrations/in_mail_db.png | Bin 0 -> 70539 bytes services/in-mail-service/openapi.json | 1914 ++ services/in-mail-service/openapi.md | 3803 ++++ services/in-mail-service/package.json | 7 +- services/in-mail-service/src/application.ts | 27 + services/in-mail-service/src/openapi-spec.ts | 25 + services/notification-service/README.md | 4 +- services/notification-service/openapi.json | 1540 ++ services/notification-service/openapi.md | 2421 +++ services/notification-service/package.json | 7 +- .../notification-service/src/application.ts | 27 + .../notification-service/src/openapi-spec.ts | 25 + services/scheduler-service/README.md | 4 + services/scheduler-service/openapi.json | 9110 ++++++++ services/scheduler-service/openapi.md | 17712 +++++++++++++++ services/scheduler-service/package.json | 7 +- services/scheduler-service/src/application.ts | 27 + .../scheduler-service/src/openapi-spec.ts | 25 + services/video-conferencing-service/README.md | 4 + .../video-conferencing-service/openapi.json | 407 + .../video-conferencing-service/openapi.md | 675 + .../video-conferencing-service/package.json | 7 +- .../src/application.ts | 27 + .../src/openapi-spec.ts | 25 + 62 files changed, 80817 insertions(+), 7536 deletions(-) create mode 100644 sandbox/audit-ms-example/openapi.md create mode 100644 sandbox/auth-ms-basic-example/openapi.md create mode 100644 sandbox/auth-multitenant-example/openapi.md create mode 100644 sandbox/in-mail-example/openapi.md create mode 100644 sandbox/notification-socket-example/openapi.md create mode 100644 sandbox/scheduler-example/openapi.md create mode 100644 sandbox/video-conferencing-ms-example/openapi.md create mode 100644 sandbox/workflow-ms-example/openapi.md create mode 100644 services/audit-service/openapi.json create mode 100644 services/audit-service/openapi.md create mode 100644 services/audit-service/src/application.ts create mode 100644 services/audit-service/src/openapi-spec.ts delete mode 100644 services/authentication-service/OPEN_API_SPEC.md create mode 100644 services/authentication-service/openapi.json create mode 100644 services/authentication-service/openapi.md create mode 100644 services/authentication-service/src/application.ts create mode 100644 services/authentication-service/src/openapi-spec.ts create mode 100644 services/bpmn-service/openapi.json create mode 100644 services/bpmn-service/openapi.md create mode 100644 services/bpmn-service/src/application.ts create mode 100644 services/bpmn-service/src/openapi-spec.ts create mode 100644 services/in-mail-service/migrations/in_mail_db.png create mode 100644 services/in-mail-service/openapi.json create mode 100644 services/in-mail-service/openapi.md create mode 100644 services/in-mail-service/src/application.ts create mode 100644 services/in-mail-service/src/openapi-spec.ts create mode 100644 services/notification-service/openapi.json create mode 100644 services/notification-service/openapi.md create mode 100644 services/notification-service/src/application.ts create mode 100644 services/notification-service/src/openapi-spec.ts create mode 100644 services/scheduler-service/openapi.json create mode 100644 services/scheduler-service/openapi.md create mode 100644 services/scheduler-service/src/application.ts create mode 100644 services/scheduler-service/src/openapi-spec.ts create mode 100644 services/video-conferencing-service/openapi.json create mode 100644 services/video-conferencing-service/openapi.md create mode 100644 services/video-conferencing-service/src/application.ts create mode 100644 services/video-conferencing-service/src/openapi-spec.ts 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)| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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)| + + + +## 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| +|---|---|---|---|---| + + + +## 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| +|---|---|---|---|---| + + + +## 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)| + + + +## 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| +|---|---|---|---|---| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +# 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| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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

+ + + +## 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| + + + +## 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

+ + + +## 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| + + + +## 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| + + + +

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| + + + +## 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| + + + +## 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` + + + +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|token|query|string|true|none| + + + +|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| + + + +

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| + + + +## 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| + + + +## 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| + + + +

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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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| + + + +## 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| + + + +

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)| + + + +## 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| + + + +## 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)| + + + +

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)| + + + +## 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| +|---|---|---|---|---| + + + +## 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| +|---|---|---|---|---| + + + +## 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)| + + + +## 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| +|---|---|---|---|---| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +# 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| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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

+ + + +## 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| + + + +## 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

+ + + +## 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| + + + +## 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| + + + +

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| + + + +## 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| + + + +## 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` + + + +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|token|query|string|true|none| + + + +|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| + + + +

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| + + + +## 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| + + + +## 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| + + + +

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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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| + + + +## 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| + + + +

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)| + + + +## 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| + + + +## 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)| + + + +

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| + + + +

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)| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +

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| + + + +# 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| + + + +## 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| + + + +## 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| + + + +## 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| + + + +## 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| + + + +## 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| + + + +## 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

+ + + +## 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

+ + + +

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| + + + +## 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

+ + + +## 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| + + + +## 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| + + + +

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)| + + + +

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

+ + + +## 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| + + + +# 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| + +

MetaPartial

+ + + + + + +```json +{ + "deleted": true, + "deletedOn": "2019-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| + +

MetaExcluding_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", + "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)| + + + +## 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)| + + + +## 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| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +## 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| + + + +

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| + + + +

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)| + + + +## 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| + + + +

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

+ + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +## 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| + + + +

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)| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +

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)| + + + +

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| + + + +# 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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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)| + + + +## 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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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| + + + +## 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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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)| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +

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)| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +

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)| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +

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)| + + + +## 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| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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)| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +

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)| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +

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)| + + + +

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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +# 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| + + + +## 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

+ + + +## 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| + + + +## 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

+ + + +

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

+ + + +## 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| + + + +## 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

+ + + +## 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| + + + +## 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 +{} +``` + + + +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|object|false|none| + +> Example responses + +> 200 Response + +``` +"string" +``` + + + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|string| + + + +## 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| + + + +# 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| + + + +## 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| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +# 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)| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +# 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| - - - -## 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)| - - - -## 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)| - - - -## 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)| - - - -## 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)| - - - -## 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)| - - - -## 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)| - - - -## 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

- - - -## 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| - - - -## 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

- - - -## 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| - - - -## 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| - - - -

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| - - - -## 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| - - - -## 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` - - - -|Name|In|Type|Required|Description| -|---|---|---|---|---| -|token|query|string|true|none| - - - -|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| - - - -

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)| - - - -## 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| - - - -## 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| - - - -## 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)| - - - -## 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| - - - -## 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)| - - - -## 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)| - - - -## 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| - - - -

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| - - - -

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)| - - - -## 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| - - - -## 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)| - - - -

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| - - - -

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)| - - - -## 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| - - - -## 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)| - - - -## 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| - - - -## 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)| - - - -## 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| - - - -

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| - - - -# 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| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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

+ + + +## 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| + + + +## 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

+ + + +## 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| + + + +## 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| + + + +

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| + + + +## 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| + + + +## 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` + + + +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|token|query|string|true|none| + + + +|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| + + + +

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| + + + +## 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| + + + +## 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| + + + +

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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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| + + + +## 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| + + + +

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)| + + + +## 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| + + + +## 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)| + + + +# 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| + + + +## 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| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +# 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 0000000000000000000000000000000000000000..9905528e6563659837325441d2cd67a1ae47b60e GIT binary patch literal 70539 zcmeFY_g_=(vo@L#q(~J+ssyDgz4wG7MUbjeq$ou|nl$Mlh)O5)-iwF`i1Zqf-kZ_| zq*v)J5b`ecdG_Al{hrVH2hQOqR+4qEnYrhlx#pT#A=;WMWLFukfK|(82%v>Lwup<$qnlI|9J?|8+I!{1gQKuPZmE|Nl17|JO_cm+;zS z!yBpvEd=0xUJK^KUnM-By%_*^)5Bf*hBq0lH*==%9x>iEG&0A;;yae2pb4E@G6;C2ujmC@5FznneYw*cQ#w(iNhXW3!YP$MPm@7A!HAp z*Tr;(ldKZv@Po0d%)sqA#s~6$bqct9IuwGs;l+K6YXRH~2JZd9{16BHhGXXBXX<=@?O1D%YiX!S>F*m(Pzk!j zY>L3Yw&;&dJn!Vr82&jHg1UbG_U#qt#m;N2GhQn<@oy*19hWu~EHxHW(|Zl{_&@_| zT;MQDzpDtG0_+%YtG9Ol zuxs1YlWrv`ZMYMOKFe6Q$Ob`(K!diPd#nYH>x(LKhx3<@K0Woq&k@d!Wsr)BJ#J!d zt$i;XNC#MQ8;m8Q1$Ix+fJw?t)!y5_D5=K(ews%Y&3qb(KhK5N1pEAyx<5;T@d2xI z|DJkVEiKl-_jtId_1OQ5u7;!cLwo;=dp`ygKtM#w8d=5fOgzuis*TK`42nds9r63# zp7CAD8xMlxGwm@a9Dn(vFriD6JQKl7jzJ0~GYICIT>Qa?L7v&RGUm`R&#WWY2NbaC ztl>1v-sHMOX8wb}pq1=cGo;8dlXCX-SN!}`4vJ*4OlUh~@ye&EC# zO!%rlB=dZe-1&D~Vwk@a?zZy`1>*K&?7U;yQoMev@czDeN4DZT&c`#iW^Z}w^VJ~Z`(`uuN*RM)t7QS2js|(L);8G*zn9VBjLP8 zgdgIBJ5k=9%TP4$nd)d`b-GF8(cj38aKlwd924q?I;HzZ8@P1Eo6nD-!mP=euS@4P zRbY3XIiKwhgyrkcQogxp2F|kEjTF#YftmMux$!>V*lCmBBJ1vYKrE4xlfultOE-EG z;>}Iy7m5NKlO8|kpD*p70ug}L^p8fxr}XrXOY1wGg2JCC;i~YM+chDGZ=2? z-NWjTC%liGyj>33cE>25n4cgld2lM7kctbPb*|!-x&I@5ZvFqG3CArU73iR zQZ5SY74CKtFQn9%+_rxmt9QA&X>prwdQM~ zS@^ttgHDEiGPWLWK(Celp5k|W;-6Ww)l4=oUW(=${XNOf=Yz2oyw;|BnG6S+Fl&h# z$b$px#v>CsY>bwGzc?=1bB#9ue!#cbsFgY2(;TqL`lWPEmU)l@{~PTf>XqJobfhvy zl%JC54eJH=qNDYTKU#gdZtIG3bFNmX9rJla&B3To+v3qr^Vx6ER%$I6>*Hb*&fk+2 z_l);jsm*@^y3VKOY7g=xqGYa^Y%m&qE9xOsyJ|J$`G zQ-7^bM(BHKu7?Ay)sLrdCt#=2=lf?H*fJ)d{HfFabI5U-`Ul39m{+@4JKO_f-=7cW ze;2B>mMv@(Wcv#sL7?s0c2^!fsU7ESI$kLV!M$vAR55Ja{YqnYt>Ci%Mi>(dLw#Y^zC7i;{nMlA8zsnEe-izv^kdEifR0H;zG{>c8MbCRW4TW9W z!>1GEtp^6NddD-j$bb9mZH);#tO}O+#Wj(yIvOT(a) zsw39!x0}-08-GoaO-zZyd#8!anAtBIZ(cBU&fK^ zYbr#LEIz$ExCtosNmB&f6OA-Z&C`9x*3w}=*Li>3sqK6@ETep5lnIU5)oJ+-UPMkDo>#HCUdB z>{eFh$xZlo7n)t0O&_viY#kfMV(7-2P^}+v$y?=Q#ijHM>kt9)f_pmo-PhBa&8Ni+;ckX-wGU!h4r`& zZE#zF_pfK(_w6#Hx4%)Rasndo3DDH+3m_N(pg#KJm@V_ zWSvIg`AYHXtPp30%cf#y67?)rAx{OC(sSexQL(J2(_a=p#-6>dG?}|VB5vv6x8LxI zXVPEGrT3##`${xU_H6~!Y3eZ3*u%8StX*6@$}V`1*XVgXtLF&@`QLlV9Sf2@T@Ny! zV!ACZX2RbePM~gWT5)%#$vs43iBY|EtZ6rDvS}rUKTJ=~zp+LoF}+U7IF+fWJI3MA z)g_#KOpduC!oih-yJgj`TB=)SW!d5OJa7p40}5Y&hVl)))GJndna1QCx_6e0z0qRc zt2~)Gt}F6nERF(d-E{Cl)UB4)>iSj>Ie(+~#9ub|&2CszMa*GS)=~MK_v?c%Y|`)d zH1RZ*cR4=@*46oM%k%+f*(11nH%v8Ej>cB~i{F4%bkjLj@s%v|UJbvJRNU_{k!_OU z)}b?IU5>uw#4X*Wu?xS0eOh3#qp(k8wfxfhE)5&g<?&thk=CR?sh9Yn_p2THJNq?!Xh-jtz&=R{^w!L&l@?q|Ko7b z0*3>@b#eCu?vy*jit!An6;5b=JqR`NS2W@|s+(u$O2 zwIeDUgZ@3s-;O;gh4yyK;q;t23;BEc`}RQxRvppeo+*s)w-v~<~sqysbTFGgic%j0`^VnDRzDAQ=a=DWb!(jA&;n8W8nCBO))j&k&zqVkD zen)Kb`d*^lZnAWVUj<(=X9SDG;NVeD+7zKEa<$5F!CKseox>45R0wsgH@#l{)1^46 z=FD_sJM_bikJ}q^*xE3EXQ$Q)=%|}o2e#&?i5e!ijPkp~t4u#nDLf4Q zZ>#v^`uE5NH{b4lBp7Om?|$ z!@N&>7?GQ1?-K@c_h9#-TDH+C=oxhy40SO55v>!$EPwO-o(A%F5zChM3& z?qcmV!%iRAcl>ry3+wOG9s^tRGl$iT7-tPWy{Qvq%|(iO9JpdP%rU51r+tDKo$mH$|q->j{T5ZRz<@Q@$*+FbBJz>?^?oc~eJTqb9e>Scb`SbUT}< z>;B@;7$M@pTxnDo?*LSBvF-bP=k`Lg>(*LBTjg!>b?5KPbLAgb`E?BQ$Iwd^ga{|d zt&BsfS0=4T*$*!|usRd2^P22up4$gE005^ z#|8B-D0IiT#1DTJsS6j+Pr?rg1Px9OSmVIjiQMtHh8t^RMIDrZ?aT4=MKI6)neC9f zxT6Y7uTk3EE!FZ1i@2gFv4^L#Gnp3}J@dh+t^}`pMpcsBVI?c!mS`zW2Ni}7k@aT2 z@%%T{`vX5P|3_S8%QWwosYenCWn8nysl~0P;lguCb*`TiU+gY)wA#7yhp8|(=}-H% zEX~&y@!t?eY3w=vAR6wC-UfZF>$Rh+03ZAcf(ENtGe2%ei69qei7+~P8m82Y{jrf> zZq2W(`0J$YagGINN_SHRUKvAC62eX1KfEZH9xm0tK}n?4_7wnSARBHgDwb2ezy||N z^7vGVxMTiMCsxp=BGa-^l(0k)-&oz42VE z-VR>7xgR{*!QTeM?fQ!)xcFkuq?ryWXFM^VYn=AW&42zxQ;BoF*D^idE6H4XC!%b* zgSE=->zH+2DV}eC1k=Egi<|ls)~wY*JDjnoHnbUSM_s)?F_wIbnsL~tNlHHU)6leDLaOv3;f1ri6Qyi{=X>Ck>p9nw4vQv)rKh8Aj zp4#TJHEnCVjdnQv;C2<1ilSGB0@CT~OLGaSSD$qHm|mcT5B|EEQs8)BsS@UJ{uw@= zj*w+$^d+|auY{7k68Rod6O<_x43v%sAkCRG1H1&SWcH^(K|T9=U1jwz+)I{DVSrO? z%LKz&t|~CX|F~N^;2O}I0joyH7oBKB9lX4PiVg6zq82kHg~JpI?#7?v^MqpVz)y=h zNeqo&N8H_j&j3jG;QFdc@ZVL{5-MyUtJy28SZ_xdUclV7Lox@@8Ui@n?%zQ35G&?A zC|&>&?}=Y8Fa(37k$+f z2L4(A8&L#&mx*{I1X>q*dpgj}h4cE&dsj^6i~}#=Y4ceK=|qsiC_0ObMULhD>maxr z@1Dl3x%UF#(3r8n?X=)|S^S(JXFP}m#WX0!pRpF-e!rbCj@WIAx2W}Q>2LRQlWW0p z_y@Ut*Oy^KbBA*ZaX6laAUMmN4q`g^gI~ga|HWDnouXdD-%y=j#2;4-km8BmBaTXI zB8F!Y`(1TSx1aRP9IyCgT7c-?^46Jt)l+G%j!NtVgRnOIo&KN?iGzpy5)iI|lcD#h z^M(Irv!ZZZL`pW<+h%?+JB#2Hd4bn^@_6{j%t7iTsQ?6Mju10snq>z1uD*()jRP+V z`B&`b5_auD=UPLk=Npe_)Dq zj_|N}S*8kOXcjUS-WP7|sPh)P@|Ba_h57L^i*@Lg03zANMxJe3hpW!4!KrW-0%A%K zLP6{4Iz9%Bgs!Ui1R%iL{Mj330tDI_r>u#cofFq4Poi;@BqSvBozbkyo&Ie2x8we0 zt|D0eFjpMfa;iws4z)L)9_Jth=o}84Bsm~KdJ~)AUJD>=fOVQ|_Eq|W=h{&>#PM_P zW8`0EEQg|^wiJ#JMmx#)Q@Gxdy9B?c$0yqbUTd-+Hg!>N&qjCbY2wQ{q}xo zzDacUekJ>N{P&t!P|!&Lq9RdegBJ9a%?(S^4cbeFt?^{$a<*pYLPM}5nZe?-lH5nP zD8WGuK}(nVdO6v#c3R^#gF@-8@D7?oEX_(r8eC?!u_T(HIdoRg;C97 zh7^50dKt$;p%(@I*9Ug6AnjKJp)}(Cp^{Bz&JXR=4LCVG_OYjFGN)xi{-%=+#xf`6 zP9cYOO|-s$^rsYI9i;$RgCn8)*pJ=4UxZuNda8DQ3i>$FSo?X`CjB}C)3N*9#y;5^ zLLWw7Z2dYbx>k2lIRhFFG~~6!yd7{MCKdHxMlsP4=F0Ce?sK-yv=AvBE6hyoF()2N zi3V7jMfu^WH)|*-gSLEkd_|v1*PYtUcV*%{Xq@D#l(y42xn7BlsrT79A2Hr;~DIg)k$Ip*aKqx%|=%?(2?EDwBdMa7@863hOPV3lv_umzxy8y^mp zmf=B&M94{5)U*krGO)Rch_2)8PJbjolChb}zN7+T5D+1+qAuAfy7VjfkPk+9Zu4Ie zWxL<@+kk`=eS>Xx_T{e$|MCQOJ0jKqxOE&m>eCL;Yyp+u;;Esm{Md*FF*7W7qVJ;DHE(&wZaxJ%0 z+U5_mQiYM+Jg zTWOBwYo$KF(3Vi`;f|$KmpBUPVk~GKWtDVimGg!1KD?d`i}@QuknOv+Z%Q?EbzlTw zAeMYw9s3}dfb8R;E#R+vwE5$05*WW**Jf`qPA#1MY4k;LI4c%I9`F#H z27T{AAJqFV_7a{3;eMX0%;#6*;|i^1#TIyadf{$s z2R4;r-QyL9#k+Nvt$n09U8+-Xt zL&h4EG)sV#<+LNO2Mw_FH_&ICn1!BXN@;&i%HWx|4aZi{D1gchY2t%OBQ`&bOL!G{ z`k_umZ>ED}s~3m`>z96Y6Aw=J41~t=--E1h;wWf5E>=nA&z<}qO?&Dv>HBS?gX3Yf zs+C>YK!UwshSbc=Gv=Lkvsr?~(S9Faf{r)8Ps~>q>xaIr&fu}SP`!+umgC^-2N2Q- zEmmKvm{5!$(dCi)gdl^6B1d^%gYgMkt@lp4*;+vdyc4gLgxv&wvi0^6P=c-FUU9Aev!sh$@Le2KZo;QRmBn z)E|ydj)uh%^p*wgF7yG+M(DIH>k+_E(RH#sd#+!$Rd}-@g;olw$M4=IE#n>PdrSb0 zTXQf=p3$UY5*^=1wz#8t@|3=h-HN?&f%yjk+;T{F3eKvKvLTt^&xD z4?IsW*o<`w1!~<8>#Bj!v$4`gncIiu2~_No=1K!ex!hw3u>%y~LZ* zYPVs7cKu-W{_>V5S5zOVU(#ta5Ee-w{n`E80txBX7c=)5EGa!o~* zSRBX;)L9rIGBbRHrNak82fY$n`Ry*1O=CnUG61Yy?(vw@?Du5Dh=8N7)v|il z;VWHn0Dthl4@b&2u2_`$iRbX{j-VwU_#P3u{-d=OzA7W1bf%Z?;a%G})se-C0;v9! z3wruuF7WtKvRJTN@=O9u-6CjyvLoAJXUV9d*TWIo@W4xUZ~UV$l6)JX#594>5qnv` z2yNBklh!i!Swb@$f^1la&%Ia#{VhM4oZ>~@&O2B6Bs}> zj}A#d+7SS(@r2l%*+D}%UFW$wZdMRyr^7ZpDG9` zEoMLLy3o_ahMxS^XuxG0oJh#|>>5}22c9rYBvwUm(KG>#xidgB1~@?P-M1d;#5p2P z5(~=|B4};#ZF5x>`e^8VA4l3jgE9u(dA+9ql`1mM4KviM^nZXR%h#MDIFI#BUzO;P z!&AL>tY>xG2a5G^ehkC--Y@4}c4u}yJl*fnV^{B5?NMAkfETTc>$^_t3*e76`W3b%atFkd8=_Q%3}+$IXuTPwTD zK8D+yoskVk()=aZzQ3C0Gp~s{M$m&@lKJEy!F+w)Pjc>AFV`H|>b>J%89u8VQnWt3 zo-R!Rkax3{AHfyBs+>aW5$9IUYsVLaH z9KlcT?3hu!5o?xaXh zi`u`EW5$%5j3swEyq^CY5T8*GV8;*t$oTOEh=!hzsrXj-X2~C(HR8 zIhlQ~2|lzpV3%`UPi&1Lb30=yQ%Ee8Q@IrAbQ-8#^`$3O&D+Mbs51>O6sokC&j8}* zb=-(U>zttTapQc|lM)($Aac7p_@3-I^a0~`ktIki&r2ck>Clpq?=s+q#p)Ystg4J6 z6eD7SaRY0&(H_dsSwrxVs z?abaepAWre?|gNl$zqK*g5AWL$1k$N1AX$5?`*o;=1kK0Xywb6bj()i%wi2Wz;zy9 z0BlOz`-tPa)T>9LFdC;#zv4rJ!I3FMdjIwLau4HGDYxfQ&Qmyd=Bscnf1{gAS|q;y?m)RSN5&!vv00wDf}i7YYuk?(UfS3AiIl|_Ush`W z<##hVn|v@^AJZv$*2kU(f@jOoYR*4@(1xWt)fmg{?KG}Cxt*T~TK_LVTR}|+e})I) z;^|(5rig7263G6TBaaE9!Z%7!12EeU#?1J{WIR!xyKk-AezgP**Kv|>(lYYP zm^Ek}k@epwI~cJJ9*H%$&-|ndUuhfWH&m>%&Kg3Um2bDG$7jkRIHe~~mX*AeXJ4ke z&sb|#6&uI8YfCO_Q15KQkbDi$wd3Mv`H+~X*SvRZ{o8S==pW)64>>QLCw1w1PaGc(^&YDER)JzJ&FEX?F>F6R7azCONo^Jzq*{rk6Bs6YC5#~sHyxvQtMT#gM#!{1M8oPSWX z$$HG(L3oV~e2U_TCT&97zj@hkAzd@SyunW^JVFsX+gPU3YwGuwp~0cfQZg~Sd$Dg& zM@_8`rsi#f*GhUTJ!_{qd8kRq<4fU?b4;xLU5HJYM2|D?)AMm*q>!FUHbIEx6N>Nn zup7e2cKPIUMON#J@cS@xNHF;;4cRO@tgIli-^h|Lehw2&f6r^`sZCt1(B0*j2Uern z)bD zm07&0_cDUO4}E3C{q{(+VmV>I_Jk$6?zd-xCIW?1p6)IjjEKkE2)Yu9 zgvmygC%*h3&qSZJ2F^C5AQ+V3iuM2gTJf%N`Kx(6j3eprF>#4Js!VI(dLGT!sMd0% z`AFM{S-hkL1N@zi(sOcW9_-WidIXI(eiiE91ahsd2HN;k>mH=jdxheMQjpyH+PI?d zxnTuLf@zR$`D?1cpi#rJ_7lORN9fUWLbg7Q3# z3muY3Ij1A5CboxTm3`(Ru7iq`t_gwJYS!4OWM9GMFIsY89i~#tVs@dVEKT2g4NTWl zxJ5vK_YNl^)I2YQqrgfPy+X*%G)`gU9@JZY<6E08C||u+l@h|0LDSmDOb1T^0#75G zG9#Qq)(b9E;Q+%MY7GAE01#qlrX<>2`~l3I!ZfCMCbaLPV-u6ciM44U!LVJe0Py!a zCv$vGhN{YYiwJ2b{x=Wdq$E-?&dBN7_3WTfpZe@oYK{(!omUY{rh~EIk zM*XIVnKA1$!OQRg(3iyUZ=iL?h&9?J622xMo2!?!kG`_w16u5MMWlc;b8mv(sOt$)t)Ie#bD1Hh#2`As+42uGO`k$|ds%L5ONo!%X_DWk*6+K9iL)d0g&W7LfUZGVlJdvi9EmircCF z7nmt?`yS`%A-@A&Vd)9X5g!$Dk^+=|G1Gj{>82l!bsf5#2*INZP=0s04o$bz1VyoW9@ zY(9O*LPz!Y$i867coerk0|hbM{=+!KzrNvvU(z98DGpdO+YfSIL2R5Fl<<}*{=Gw4 ztlEH$e+jNHp0<= zXjKXVZSrO7B>ER7cSiGGg7^3H43YyMuoWY9oA)M7C@5sjnPbG%uSSpAZP{`(q1?UpR!5OB@G^4t|x%}ItUOpaU6%a3;@2!EAbkDys&We zPB*B>a?Q$u&RQ3P2@r!Q-<0pDrsEN@qxexUgvirI7v28tvzZ{1j^>Y7c@yQYf(r8& zM3BZSP{IWXr&Y`tJ;Y|C`)*rE;91*(zL~tyhmZ^+!VdtXa33+ke&%`xiU@9^;7QGk z2sBz%k$ZGt@%^ANv#PALf}9TiRWTMLdgCc5-keD}81=p%7P=Arb)R$8Xrtn^*N}JUVh#6jZ_^!6P!)$MtYlKcKpwqmVp!pTCf6hBooG3l4Z-p4&hkog92>>XddPLDgkHRp1Au=%H#Stz zm8IBZay)WBRwK;#^u95?awFVcBLTtOv`VMdpO-T&(f@sXGf5(-K7P?jbZrCKyB#d@ z?66KG?^ew35n<$w+cyo-dcFDX)MOLFsm$WFK_d5$N)2wV4ZODVpMJM-e!r))>A*MU z>e#obqxiyohOvS`V;l%5H-KGOjP;T9oO0`O8U8j$r~b8OWSV+~E|`i#OEbCE0Ixk$ z$(%s@Ct&X6GK)=K5#%ap!07cyksx*rTQ74K_9@?^uQQ@O5erYxMFM4?_G#R_Cj=5b zV5P4~?r`CyXZpt*46t!4ES68!g5xvUjIs$7?Z4`({5Ge*yNjDOUVd%+u=RLvlGwGd zqQ3N{Vuc3u^Tuw~$kyvwdHOqrhSZ79ft?(Mi3|dJ-p|_>-S*CmR=)2X-Sp@5<{7#g za%}YI=ZE5NcKieYOPDfJ+M5;`vKMPrCdX~^q++}?(6=^R-W-$H;qu`7+1^3q7{6rX zLWsEq~T<8JH4qtzFKR3N}oI2l;6sN!}fsR zzbVR03A|(ENFgO8TjqAJvgJ8Z1YS_|uR1hMJ5D^AIOXeEXypI~XUiPfWX`1CEsG8; z(!k+h~zM zm+6@~;c4KKHX&qE;evFj-{w=mjRcS`Sqe)xkgwcbw5jD{JM=kjg(Ret?kl|%_+tZI z*caPQBTfQAq^h|kJ>0un5a_Zk*~P}=2b47vR{9o(xlV-G39K-DCno~pGRI-d53O>) z_w<%z3QCW~pQJo(mmp=CvdKQKE!k*F^fJ>~><`}m^&)dKcWm|a=Dd)K+09CDo(sWn zQ_qLt&vy3*bli&b`^wG#o-daHWMr9JUt&*`g^i)NZzR~Vnr0(ix}$p_UPQ*JJYn{z z7l0o+R>J-d>s_E;%@rHxqb@uS?GI~iB!(ysEXkC<$+RH)Gd?B>jE`UaL*f37vWl^5 zoh$@VP6XPK7cUorpRqrEYQH02boyrYUe2|t+I|UwKnNbTvp@~|@<>m1F4`}RRO*vF z(GYcsWaTdbt>FpbbHpQ@8PiwL{f%zKGw4G5Y*T~sh(y=v%}=BeaXlXwCJ!`|2-bF8ePP@e-kcai?`6sG^mz@=#;7#Rt#oPDp_JV z0@X_W$t)Beuy{Y8GJ`t%vSJ#q(-2XX5VxGj*0y7ucrMQ*O!i*Y&GvUM598^q#x({) zDPOb{g?`pu_U0O>7n zfw7W(GilcZ3ARaOgCz>~(I$7K-E(Ce)Ad2kc)1TlV399``O61pWlHi50~z1|?9xqK zKFVVxuDYf;;6x`rRLe1zI%QP~c(H*AVy3~bh4ONmqdOpsD)ZfVl_vRmi@`_1#u3#y zU#n3gAGyXI8aYtC#x@h)d|d}l1V z@=6kljKD`g%g=<)aF+H4me1d|jB86^LfIs>@_l9|^kXg-ZKSt7R8eX@CS!fvP9XZN zqKzDPAPn|=&Uv1=V)P7j_*(g}r_)`i&zTm<+tO(t=6Ry&wtceZ@*+x z9!8=AjU1OG{A=kIo?T)thwr7Y6rMlXvoX?_=MzA_yL@K|Onr%yI1gCU@yPZG!A@)93=~dB2XBEuh>%EPp!f4nr&#WP zHF|+JODF}hNwm}dLcUJI|7<8<&bj^v@ch4!;Ub>dG&q3rQa;)P#m3n{e=26=H82ng z1hJqj$_ua4=a>DV{K$drxW-;dguYQj<3p%+K*@?pyY*c2*FS;PIQ%7uurBa$ zVm!dvH^A~wPFZ`6aFe~ZMm>o7Y@-3&d+CeUAz?J`!7u|&;3W}Pj6hD5wkp~2Gez9;w~Pc|0!kYuk?X(P~E zC}WXhci@u)8H|wEV@amc{D{PBwj=Gt@^VqI>yQhS|wrZ2%d7H8Bn1{*v@n_Pk#kz6}7dLiMRP5fZK9RrGL|&v4 zMkKfWfi8bc8TAn5N9o;@`*vZrJ1-lDm(~PBW@<&W0nS%wQh1NsW9E@Y#s$Z_?+iJG zWZ_qS6b$Q^sw*g*@gc}M~OgTqzjY7+yiA0+Z{@{$sXy4Hl`D)CTrzaZZQ)6Wt- zvw$@Z5LjK!coSU^zg*_|8b)rE4ZSKwBdJDbkdx*9+D`e1?S57B6jKMBG#n@*3?2@l zbYjj9l2>k9Rag$qPZ!KD2lBeszR_9k@>*A*f8W}vR`wjkzN}?5CZhZhotz}}fLX!5 zcO4u&0gVu{y0C=M?AQ3tdmEa?j|of4rlzs_-=J`sy^vikGp6vZqZ%`j*74o4y7cw; z2kMMnw#=-D785RIB17C5fiSy}-K?;U^cUhz#0KUybUBtUQi_^p`UmQLPY%SnEtLJJ z7v#q@=q!knL`*8wZbvJ3Evx3nxLCdaq$Q%C%%wyaKSbr^WHJz*gFkjE9Qkp9p!UW> z-LQqQVnMIheoqg;47<037`WF!npcC9SI5(ng2Qha&}F%k$szUB7<^v8&lue0jG}H} z)*2_^yo~S5hk={J#P>`M^BDR1vOz6~c!_aG6v>aWa$CO&>bv@hacjYEgNTT=M&UaWgfA^q+!;i47S!_bAT`c|pAd^|1Tyq7 zY(~*OX_^ed?+v=H*~tElFl=is#9}YM0JwoS8YU(Bn%{lUn|gcfa4pu$zh94aE#|He z=p_T(UQAtA<=dIDhW%?xKh5KOPjrcv^{=EJzH%-h-5UA@apYb}&!Nv}E2nd&NV`7L ztRb5qd>|?_jPPf4yi5m}KZnUhx`9vW>jY87&$>bLV|R-Z#gKak)%65Xjp27vPje^Z z&pJuoo2*nPSl9}`|5jO}!Q{=i;>CW>r1&R;yU1S&2npmB;*eU4!87MHW3lw4YLAsn zl~7Ba?vMRG#Qy9us8=Y!4oZXo8mxObPo7gnsP?H=Iea4k@#dZdMqYq`42YN6w6z43 zKEr+14EgV=Mc;)2+bpO-RRFd;x*`YZ%&1jd-%nPS+&)mDknB)!UfR%?~ zgyJ=`_GUce^yjjJZ)t57^ze6l_d58V*gLK)@!XTt>Z9YhDsKPjcs0qdMM#shg-hy{ zclUHgr=ZHXG;+~vSry%vTLA`M@aouZ_II-2h||)43Oan-eh{_-dokqzqQ`KA<*CKk z?+eXnvO`pNFfJVldAudLuV$9sL01NrKJBB3$A&)v4W|oomi$1U;RyVx;OrIg@YGe~ z*p0reFJtEP@K1a&r6_1wQZy+AvXk9UJrQIf&4S(P=|#$yiL58~Dbyn+ zdH}D#H4DPt<9}t^w8;}PPygWb4-k0qHQp1fO?au`n~zY$xDYw$9SFc*;)l6BN1*rq z;~XRcmxE-84cb+yQPM1eKjw>IA|3pCLIfZkHVrHn5>1GYymg5_)v!AP<-Lg8GmG{9 zDNh|!`XkE{btjU_QQ-m!KCh^Oe7Ba0`0;wzR74o#5GhVUn)NFHETS-PJ1pS;&w3)* z9cox~&?!Wj7^vAC*Ho@O`7Vvb$bOwDm;pa@Pu9=;BhDJ_D&zmeYyZsl`TjHb2E48b zI;8qDOU?51vRM2(JQz*!pCf>mukQQ>kAIQc-v630B!t+!ncFaXI(>Nts8SF}xuHmY zQhA`B&PROK;*!pGKjBQ4RQ5TC+z3Duc^`k;rT5^hh{U+ntx&H4AG@wwnbQ4~y*#t= zm>(P`D{HRW+ppT{X`c|zfJI~kkjg})S&qWuvLC^WTFiuha>eMH$`5|eN5xP)7s?-j zr3=>~kPllGnlQEq26#imlE@3t?p`y!$&8@)-(^Mbzw1Li1zjQg$Cyt+?x{oU=DF(R zih$mQInXEirrerL)BMb6%+=vp_5esLEQBsQyLfnbhM2V5Is2k6} z>MOAIyI6c-(CajCCS!lTI51h7aicDivOBPCCf0uVw zaGYPf+Kf6c{eAaebf)j8yUjngZHYFkH$gB@HUOaO3q3*8#ymR63dBC<(9hC2DRii8 z>Z2={mrMYlWdMgpo}aUh;7eI>YFV$6vgld#GQF)%q?g%~`oOWaC2?>lplCBLZ^+KX z@xpxGQVMRp`MIfUL!u(^c%XqEZUlA1E#XieDeCOKFEczO{8tu@cy5Z8h(8079b8U> z^sOeg%Qg*Jgd=GY{;GO);9j0ftF|*!FbfQ-u7DTQ}Z)GWCK4KPc909tTfb`!WnCU-EmtS?l7f&a@HyTIrI+IxYlC7iGP(BRgd6eTj_;OJO$GVd69 zb)zw+xeo|o!T2-B2v4LX`JS6eZa6QYAgYJ6B=PW(mu&1vd6%SdU>V&^6V_+YqL%r@ zjlHD)RnEy|59qJSubW-ScQ;7I*5ijSF)Q+c7s@kEUv1T3Do3ewmw)6=vp@X=C9lN~ zU!m}orYK?_8?>CtS6M$EbvN-ZqGDLREVY27uFjd$U}c!r!R2RAG4A~`W6dCKLBc%( z75nL&Yoeo4&uJesO4k=53JJ~#tnR8l3l-829#t)Wmm=T>D=Z+*I@HtDQx!&AJf@f3 zE$d}-=_ArzrWQ4ixnA*x;8$o{GhVu?dNRzd6A-l z&t8v}$F|5{mU(%CSZ(6hio&5WkP`aGfX(tmTE{LV%KjoZgTRtcW@?`PU$i?`Nas4m zpmY-uG4Te}et_lg!=VkT67Pwp50dXMN}WiuPwXz0)bjv52arn5E}99UUQ)4kpyU+6 zPhiUzak&kz<`GJLLlro^mX-n)FU&0if9NnssB%Cj12Q0eQf64|0E$q6_+3uL=wX%^ zW^Fz>M=EAka7=tY@90J;^@pdO(DkG(pFSo(+Kw$97?t!^mm%R2Gr66fUGB=&ohC@e z(!zCHI7niYO5nMa)u7$A4DTO*ylE+lLoJ~*NssYVq#a;OhLouUkVa%$t@E5V8=F}W zSry$b>KY)a0@hH&2FKD(l={7kWHZy+#2_H5F`CYffe9bLv76M3{#8J`4Lcy=m*a3; zo8&oX&Tkcbyn#6&u5J{$9huWiA#QO_pgrSWi=e174$N$EE=~rEFl>D)p{x6~E}xEmBbDj0pFR>EuFu3o}SLl5t#7ioaH2)|7%_d7R|9iNmx9@+;8 zK3%yF1em{-Lf8u1^&S=-%px7hHApc3)P0o4YDBGuC`sY71WC(?q3K0>xUXUA6X=<` z)P@Rw?S1vUTNRN!L*1mza#KN!N^!S=yF}HeDodUO5qd)4lxC>Q>QFr@l52(mw~TuT_t?CwdcOUxwrWkzZlZ|CM&vWX?fu2nvly2C0e&|>B}2p!Exp%du6h-$p|T`e zfLRnkj+17|iwyp0edU`~J&XAzhP0O*NjkKUy(5I&+sn{lgpX>lO_=s?|J2GGqF&p3 zE_9~6)k6wQ^#ePg>i2p8Bs3L5#z_Yk6F|ze_6uJlVoeTJdOBgwS}Rl_{$-KdOE>WW zqsZGA&!4MTfsI1$Ges1j)kAX=Ms;;^i*KxOngW>wpS{y`rJF3-4oZFp4mT*irGk~4DAmC4bMG)&^OYTQV zNlh$V5G`Gmhf&^7YP3sGk!m4jaa4VRp{tCyH&BkO(|n>X+18=`-N)8&C`O5Sl-yksB+3 zY3%v>3)5U}qF(1F{mzkx)=t&W0^{1^O*M-<(qK}PF~~hrLz`op#WZcEc6TTK4{h%q z4rkZ3508EmLX_wsqDJpQ7!oCVqW9iK^h6y)nihoUH3*^;ooLZ}??@B1C^`~5SA!*E^K-q+fDo$FlZTAQ9_!@LX{DPdz2HCq@0Ry&ugQS8=nF^;`g zT6V`E8HMCh1{>;;^D>0$WRbk~!To2VKtXFJ~TP?H>5K&>{9pqQODu$-AXBO6jZJD+Afu zCVb?=rjSm@#d&8ZXDRN)Y(;LL=plLUf#sq52atVygA5DmpG-oV)4R!FXk|PZY&=)T zm3;Ehn8<-zGI9db#Sg0otPyf(wqnD&8Xtuu+rOktecOd};Q(2JIu6en46*OcLN9To zxiJ)9gc|PwJcWf6l%?q&lsvxN`~GI@knJ-9z6`q_cO6apB=*I{_ZYxdoknNr+(7+T z)p!11*yD85kARAqFU{CeK4z#kJ@YdLMqTP9!u~s3>ua9s#ofjld(RChKO_di&598p z?;k}LpvlL)otnbN_{&1Fp-r+>nqXBG`tP^D$PfSDlZBX)AtFcTZx^*ycW#a=iL(@@ zcxk;pJITdKy)mCUakCCG3P3Z0cD?<(Bvf)9#Hs(NM**Q1ar>Gf?wR_CiR6T}x$@#6 z@|=96jpm-$gPB_2aGk>+2WFO$KB%o4mX_*D=*6Yv^AHaU$Q)M?z+PLWu&8~h*vO-+9hiH<1JCz+c{Od~2=>EEAgFc0g$?b|BHRaZNPK{LH-HrU z-^wiDQgElRm;1OA?WswmZ^OQFXQg-=8aN$CEhc=nZjGF_eh()b$b@0qLOg-Wge#5C zeK-?_h#y=h0~5V2s)@*>)ewZANy^n+fNF60{~#izuaDiFy=yhXqSD`y5}e1f?2<_E zssnZql~eN2;nva=IU&UtA)V9CZ0zKf>a{+(>&rc^apRfj&6F7u)e5QU?^`|>E5U*j zKIE~uOtR!!k}{d_op^aKys9#Pu3}Ji&KB)c;Il5mXu@Qp09{nQW9=(XDHViP=BBG9 zOTgej(JC5oX#S9#L3v2dzX5PZ%eFgUXXFb^48(E_EA_T_1k$eVMiFR2LR}8 zh=&uMfurHN#)7@K7IL`NW=nVwwt?qLIBxsa$V`<+2-RQzGB%HSVPvJ``5?<>!H6W( zOIaOhNil+J1tU2=`I3ZulBSG3@czg}qZd6`Io8)KvajzWt81G896uwlhh|Ynu`zDr zgH(}>$EN0GYG%1P9|{K*1c@bjq_Ie!d9G1L6UZXAiVNI(MELruk0waWhr~E#Zg`Sq0*lYN7F&p z3q(;MI&bN@-V`=|8YzV&S1zMTsSchp@>Qs6tWauF z^-;XLyf~9lNpbuzTS))T+iPxh4oMiz@#!fk8{F1PdjiBP#_{jrpQhz!8Ew#+jf+{w zM~w~m{vHkMqtsGtUEOLR*E@w#evQDNNIik~dF<2S;HPa~%s)2DCZ-MX(jIF++~}fe zgc6Z44-{L(pL8>!-87Hvad)QWziM22)b}KxY2f|Xmtu9L(xRuW+>S=EePBc}^8{d7yWl=dZGNLUDuzX?FsjYiOHpS&ISsD;( zEOY#XNTGq$(m*%`FdPVSkTYPMyB*(xmM2Y$`jSd3PvNv9kZ2*Sx&Uqe%p2nF6GjjM z8vk!q*Pp!P{~FH)uXo)>5w;ekOmP;*d#M9`VC0Z` zkH&JJaZ7|c`}I`=63g_o4=A2@-T_Z>!-$9GN}YZ-{A!0DtRq13p$!lM=^Wzaz%3M! zys^Wo<<2C_!ZnlBY+<${e-r5+{f*Q#f>6r6g~maW#kn2tmfW|gN^^|Y7ETH#3)yz`Z9T#=b%qY@ANn##qzJ%J#; zf!RaR3w)-FxeoLcnw0O+7$;rVtE$#IXBSxr&x8d1`i!n&s zI?y9-9p_^(Ea_gc@zc5=K0nVF9%jC7di>_vMuq|*F^0`XX@2PDtFd=ge%7*2Qf@lY z^59tOx2Qe5)5j_VR}*LOQcLqs!<296xB5x6lvNyR8<=pzVpAVXU~g(Axk{jz)mqEz ztyCZw?RuN?5{(oB6xhq82;Wq$+rM#1Eg>>B51Iv@G5G4Kb_stuW6SOlf~Vi_^t|p0 z(vQ-oBjqwD!(nXg&Mz;UTevWg&?C!w-HM|FGjX37WK~wfPd004wiON+OcHfee=MPC zCM`2!l)0JQbZmdgYD`JjI4C5OU^5v+YR~^Uw!++S%j9AkL`Sja5TbZWkc zau1#D`BNZSw>5RDy1tI4TBAx(tdy~qFB7sOrIm7%$m|>2FdA%kh#wA0J7ENvOl$(4 zE?tam#5|wHG`MvPaYoJt`TgeN{Iu)N#sYM{o-kRWO94U!;3m%V`n_SMLhG+ZYQ@4?XN*ft}@)b+@v~)`YSI*be4ySbhO~QlZ zC8eZ6Vh(n|{x79l#__MHB=@Z!zBt2<5b&E5-B0<2#p`DT^)c9qt#kfm=zOqB{*jI| zix;(jh(b4fa8AN=UER{Cuj)OslF=kG`JB&`O46(0J=7s<^@*(4vmp2DR*VFXE?F{v z1&=!P=dygh5pNz^;BD4mg^u@bcH6_@p2gVmJ`rt3fpLs7b9@UFjU~1tZIOf$y?QK$ zW96n0ZDC-ta!mOWcqlk5)ELUR+Y~$xDcy3VrJs6Fle(iiRnZre)rsae7hx8pqb0MjxQ%{-oCX4zC^C}nbyZ-ECM$z&jF zlOcCY?%4iIM~x7LBr%2L^u-T~hvbDnfTqzcjS~h<4}i8(D~Aq3-Ex$|fc^@)tP;iMfp;Z9sV z^LdILegSQKy2RhCMgZaP#g{b5_QR^Gi`B)B!2>tYk&lS4(-|(XuE=C)?*1iIV9#je z6`NhpluyJ%Vjm$LmGsN{oa;LBI^hdS<8)KPy4C0Hma>s#hTY4rs^6i_c=*FQXa~ZF z{`vNY!VBv4nt+H)q`c9FeJBe+2?wFaR4tIwB692jlVVs(4^e2Pucen5Zy*QCiCXe> zb)M7V{7(+??)qtU%`)rKbcdf_sAVaQ=H9|bP++>Z4?bODe=-?WIP+Jsbf&KF7q9DG zD4TfTPfZ{zA6sNpZ-?GdG%}Ow?h5>i?a4=m<F$_^jHUrWP%jV4Y zoSQSdOVRYD;uTUl=v5rI9;N2D%4=4HLkqq^o+U{_eGc6vp=y^qZ3gmo2XTSTfEi(K zFadq)&73BpN$Z6BKAsblqXcPg(@%j0-96MYV_1w}sZHCe9#hYeWY!dU+xQ2^{FbY; z{DIs>WyrhD*vh@NE#m!D_%BM4_+rTvhgozna8VgJyBU$r7L!((gZwAO2r-I!fEwYrEOo^hzJQRD+3ibfLLY-i!q?z3ma77o+=LzVp{7M!qifsj2>{ z(@GL~*Rh!|f_VWoi$%?q5Q=kY0*tEXFVPHY{b7KT#z$n#0=GQN1JB)z4}VgjNx}n9 zqvK4MNAZ2`ge2&4sTjN2k09ZQ7D%L3{}gQ&EOZ#+lI%wlx>R>5EPT&5#fbHvSA3OC z=V1Q9OQ@^D4jr@?%#bOQYcPQbcHRpmqEiO{yhd=53|S$D%7}^Maw=?g(vZ=zJqQYX z^nUnImHU1EIx?OoVNJsyZ3aR^rq7}?Bpt~g|G1!vH>7h`S1|c$t9z+M-#uo^vQ~^L zU0#uo-H-Mwy~pmg2iq=Ibn{Khs#(V^b6o-+9E3R!Fyio4#6!x;vc0?S27GHg8qGEX zXnbV!`0n6{xj_emHSR3>Cw!#a_Sq=^$tO;sSg5&~tll3w|2jpVdaN>XiI2doVpQmZ zY}}N|QLm16lJAtd6!P z+H!tg4|V%_9kP&*tkvso=dgIHRk{BO?Gr!auUrJSftjZW{Iu7PsK@q5U2SKjg^zl& z+Ld>2zl%h%Ysrap|3lWD{olyC!D=aH8wr|N-%-l^rOsAw_{#GZ7YxXOFzuW^;D%5= zrNkwlRNee+VQ*q(M=J^HGAVIbW9!ak^m z!!6Px5woSL{rovxjIv6iM3I)=twWZb^s=^5V@XwopKf=S{G<;gfVtInLG(EK_z+o= z{c&7vJJyHqjzXsFFhF8@A|mM2!R$w-Z%jf@JzpVRnX;+%{kDbvOK;*Y{yZ8x>|s@KN`@}wh(3$3=PhIx7vgv8N)m3Uqq(f@z$sLDil@loWL;v>d9$9u zCf$lI1Z{?=1^00hMQ0`(%cOit=pb4W@4x}0!Wi*&A)B7GafbVcxfh~C0Pc~z_byx` zKl1iRuaB@oft+H3G$revrnrW}nP^JsdOp!8-fv@!BnNsNvjS5bc6nI$kY08)Ytb^O zd3|OjjELilO-UG1Fyh(%xwz*6swz#Qx9V9?L6;_3#uf^AfZPivvh(z?( zr2N6HASA*D5kdwoDkAQUb7`*tBVFoe^+5p zE8#@KwmC_zV{{CpFqREw2)x=J7d17c#!o8*l2=_+oLyL#I!*Qa?o75Eds`JLU&ZOW z6q24b)~G^p9{9GU#$*rOXyJ^U5zmfjLphCNA}`P{TP_Z`iuAKDtWgA9YMNd)`>Qk1 z*ynp`Mv>xw-;`k%0r7kSv*@;My+T|tw$o_p_u4E6bBM4}8eN_5V*)S&^E2e_1?+)CKW_;^+LRuS5=-l}C}FJ7e1TI|k^rM5T`jRn1@7&$%oX}_knQ7?h^tO?>` z#-hj1uOFFegTA7Y)x%;Van?zW?evWVD#L^6~I!~_b;bkkMw)3mXaUc{I9ga9MQ7=+|w-&oaMIUGV< z?r_T0g*pz`lt@fqyBhf_8Y=+7^u1i~y8Hs{2>YxadTb&;oQRS4)#4kn0S+w#2h?rK zZiStPtIsFxOYrHnVpD}3=XoyUz5U0Fl36!olMSxL-{z73D)3Paorq37DgTGRS)GHD zaap9~W8C<^C^1SIpQx#4F1-qr&;&tKX!QncS~a--;tqXusqo>&81BhNJZQCEJ|VbcC-) zeUjm^Yqtq+Y*>Qm0^6`&qtSZLVaotz`6Z63BiU8tok20{WE02eEntPa#1q9)mmYCk5K}dA?cj_7@SP=Nr`(SmA3{-GtE| zk$;`=JSqLc7;G)Da@7#<-yn+WZ^X+)nX3j*=RgQU^0zK$H0T@FxIg2y(13p_5F0i^ zIrSih7ZP5pQvoWS>Y`%92xUjv@g)Egd*H`^0w8d83~ZttY(PFBR2w8y;g>>{zq1$@ zxBag*Xa7@ng8ux&Z3%Ktgtf+7lt3=Y7Jq)mg)p9Ez1;&2vq_^fOczI%#QN5V)16c= zmVEv8)~A^^a0vm1Hzsqafn+9q4mZ1KOMcMi|Ja*NJxq!xOL{KRh}u#mJd^tWF1-qk{fGnv(LU z05noo(DDh$l+>uGzT>mKqG){QpAh-&YJ!;n(xY2%p8#~lD{=THf#Bg23P}^9G-Ip} zBis~{hM3q9nAnfGT#8-Z+`B*_YH9eq5ey#!14%^;eHR{zD$l)H&^35V0Qx$*+m@pek0EZMunoyS#?zo^gzh9^tlxP_{Exhty!lWE0pc zphdlYR2iy!zom+eL*Kd&qQ)PvT+acdL~*N_9Jjt_21EzGo9mMfh7PVy!^})OH@lz5 za_OfeSr<|9P-3*ZIg!RvzT`?>UpDenOFG6(rPcm*s(bkGj!Lte*|I_3dq&UIG)~XW z*bnh9h4f@oueWt3jKXBDST#v#8<4gt3gpq1rM94=j~eRgdrq^83iIZ*bBmDnKOwoo z9;Y?{1hicr#k&Z`bsE;ZBAcfWwtq&Hmj;tZm0CgGzkOb~wSs+`m zt9#~)Ya;GApj#RcNH%W%2)K6P#^0meoHefaeQ@x@U&BjRv9o6&2ax=5+v=@_gJ^@zSciMI2$>hiKOEWo_*i792eF&fEp8GMP z($l!9F(LwL#ys&h^mh6(_-L7GY1rOPeyQ8l)qZNRExX+GZzKJ7mktyAP9 zojE#kkcnzEybeuH%D4jOah;LY_~tRz;ff&W)k-j&kb2x*M zbibtdYxEXM*64r>MmHWQ6BUUVi|gRp31}0ljlhTaxo~lII1!39l6$-D>56{ zC1i*cr<+v*=U6(!Sa0R^4pDc~F26nB59V?o+bKmV!D}%F2vzqWT+c{wb$}!Xa0plz z6F5xRZ6WC1JRa*wInT9uT#qzx?7E)j^|CVD#Ub$YIjEOfQmlKrWc5rq-tZBAYA3F% zn6^F;V_tMTbZP&A)bvQ2F)9Oc6OHo)T2{qOb%bSaXGqf0Ws@m<2Fshu3$&8>0QKak z6lN2pe8iNza+q#J+0twhSvK_FUbhOv75kHoq8|QQhq<6OMezrNam?BTE!G6BIp4TF#2p8(F%m z`ts;>=+OPul(v0Zad;a_H#T0jBwJ~tS#;}lUqwX=GHT}z_6OB}45l6_8hohOyRBO` z;i}}KA{0UuiY@4EeOPl(Xip%N+Bp6MG=fSVQ3e&cA+{Qgl7tJYi&Lr>GMWKG9)P_J z(f_WSc}Hl=K_*^|F?%U%)?m3#Zh+I0{+dyB?2YeTA(g8&2QNWKt&=uw;Xnj0>#U0+ z@sq75_k=J}mnmpWNW3WR(0Ao4iVY(aXI+l`pE}UPjF{PPXB(WC;Qs$mo`d;sh2a19 zh1(q;&Mf$T8wgMk9872T^ot2gUJg1OJ&o=ipf`kP#|cmN)sUW6B%^!7{k$(L&`=Nw zP=mO~pbE`D=8o|ztim3qW&_z*8_0$;H$k{; zBH-oJ7c_skEO38`KM>|+onEsTEIc#=gx@p32CH;~Lh_E)qXO>uQv%Z zk>UD}pVsl?&!7oAqQtn3@7_abZkRn2J-7IB9l2qp%N!oE)pB@vj)-I22qr1k<&F12 zPZ%SwwSMQCANO~^l{R-R#!EEu*7Le1CW;jez`#KxRPm|T%v($2vQrz08ki79$NlVJ zDjb#Bi;cx5B@1ZJuPN02Vb50yG!Gb3+T*@Z;EeOGoqT9h6YsTB5%tri+utK97mK_gP)=RQPNZ!`;Q3 zSa6dWZ&EN2m(|-9RUPQ6{@4)lNc0iY&~S+gdZQ3yLo9t9<#iV=G0uhA@}h^z-NE2+ zOZkMYpd^L!N9ozb#cU;G&f=PX%G6L4;Dj4Q#>Hw*I`kITDRqD2NN$?KVlSMv%d(aX zs-L}4HVLbU?lIy5(+vr$T>L0*Sh%fuTQv;_uZz+!OZ;TihxjZ)&J6ww#4*(ezqC#o9gJH6 zY{U#3kMdtK(vCCla@3wmk(awm<6}PA^EM~H7ZX-4*WSHcv z(5)ElmOE+N69Rf8>+!ufo7Ia%FC=A>Pyp?k;1~2$23^*(7T;YCYvW_4EgCz>WP1$l zJv7jKw0=u&7^HBC*$IpHX{LQ{-Q(ulk3)0MZ#gNGUm02*5+Q^V_BRD?EOoCKG_brq zpBoe0KOpXD&@Ml~e`^crbqFhS`f6*_-#sbbCgBp=zg*H4Ss_Gd9q{&|cA4haGn*H3 zk;C6T;+mzp@sG!O;a{eM#lABAm7=0lLek{{$)4_lWiR&KBHmCJ7GDwJe2+URDu{|# zOy zCZoo}vj7{-xO>0d5i)s5OBJ^&1B6}YnGRd`ncVY#_|$|I6pfXG<1c>Dgi=Z#9fExB zriU8z#829EH`di)^m1hKA8^aO4DCj$l&E#BO)vr}m4LYbGEKyZMVnX4dW|;7bSzvZ z&juowEv1Gh<_tuoB!u7d<1tIWCe4c}S)>cHGiPszdLId>Fe%I6>Kw8-S&2C}zr}o7 zcbQq!yrg}G2ucno;7#TWcu;F06I4GBT)R2HS{qg(G8I!tD-t20F&jC(cO{kgkSeHt@AZe2vNX!g^LQll0)iwwqrkNo(8lHlPGVZ6z>=mImF zrI@3jk;P2=psaey&c?&HEx3A;Py|;o!&t6yVNBq2-QLK2`4c9Cz6WE-(MMR;+wr8JrI@HkFJX|f zmoR*C#I=2fa&()jYByheH(g)mlJo^-wpb_%_I0_0?Za=?E_p9Y z@PI;|f@^YXJQ7#CQKO_Mx;v!*lWYjA)f@Zr66V1Xw`ii%x2;l z;$hn<-@MK64bSNbbjPZVEWzf4^ZIDe@UHs~6qSH}K|&ssOPOq#J=58uS!DWxlX_0+m7>Ay zwr^F8?1GbU2R1U^_Lk!$I2BdNCvR()*)l85NmvePF*?;+Z9URlQ!4J;_VP9GMi`9B zJYi{Po%UE0xl?`ZacUZ!sWCvG1B3|kcSzHp?dH)I6F;}YZs)PRX8vXFT=Rs1%4M`^ zsTa25;V6(U6H@1Vi|s`j*GS~e0^3P$k-mu$4!RUq!mhF18DClMJA zwyT|T#-3!gzmo`ka4ZZMB~z6yIF$ZVfu05sjZWNa}eVMq5$jQ`GExSUb`Q zlSxeX)il~uPmlnLqIhU@QN)Ys#P%0oB?`q?dr~u1!k$$8>~od9u&XqRmCUT?&n>_2 zPCFjO1emmD({#Kh5=>ti!@@8UnK+MZeW2unGi}^VVZWy`Wx(QPgfqSKkWSr^kV?$c zj#*h~(j|(ua>mx0r0UM}U}oXsS*KxQ4%ulgBlmNeh9sZS_A=a=3K3F~RNX7kYpXlsnw7eF>mdt22$auYKlOK2|9J$PVO;@j=^LtupE0?C8uzV6b%2x2?R2g*| za8$iO-9I?pRCcq9-MdS49^t$-LngV_6XTsE0!~ZnoFM1l)(VD>1l6!X3xc%HGd35AFOjw9rjXWw-2&oU zzN5X=BYpKvaAWC4gb416XA86J0bbmTuoTE!UwrCgm{XEOg&gWmEY9WWXVDIZ81Rwcw&^pGP7P_rgof?Jkuaxa^yK>Ifr`ms?31y-5zlYl5(%M1 zGqT5~HA-$BhRI82y_EBi{ZIyLQ0Y;Hr4+A1uv;A$bMXY1V=?2EX?!rqcH}^Y!ygX+ z+GqUC#@x@Ne#qxGT3*;n;Mj=#+>acVd!w8r?#jHpb}nPU3;4SCPu)|Vio)jxZJ_Ii!?wBC0<3x!UzJ0FZokv1j z#$1!ibbkD4dQH}2%eDaR(-RVY2fJQer4*nS3=j=~;m5jfX!Eqi|7H|)iTbRK(x@~T z6*T*c_W85HeeIvGD#Jj5xjH_*Z=SC2%y*wvmKUgRkl>G4ror$}nDj=KfpC$v@9F*8 z!8eI{e$#w13IiwGDlkieC7M$^qHEY&DL-C@`Rs`O*ST|W5C!gx-Nla7DhWPDx7tTa zw8KhXO4U|LMVbj=uzsX{z*zmWXpUTTq!psDtL=DtT2a~mZUA!ECNxQsUk42n7fgQ> z#W=F*%$hN9kUt(u3yMD0Mk!AreoTP)6g3RaAjl80REX`K+okAfmAV6M=!!p+G#`D62Qx%VK3s?wq&f{#A z7!D;$HrZHa%Hnq3adOY)c+oeX@;2L_Q*XE?758_&?ar5GVYpd>X^H5Q(LY}P(JdO| zy-IK%LmJ&TO9y1@nOr&U@4`VRXFfkQ$H}|5=6tG*PL?F-MFrrmnlXbLusEJUGznpa zjwlyLrf-nkCP={NzyXy+rDm^=OE(NMUF}X%(4jQCVm&o>_?v5B@&<}b8_%p=I}LyH zz=deng5$%UrIXIRApCaw1==PF!W=h^j+y}Zp4l6vst%@dw;+*#G!j7ug0Q-aE_gouheCrm!ohk_FT~w=V9(`#KEy(O8(U zd*Q6p;rHPW`wPIcu5G+N-hHa`^_me5A$z+or;p@MyOV-;_miiWuxCp;g{PsTC1(lq z>FlG@EMte7E=;bm-*@>+VxmO9RdNZbxh5pStH;^@~LlT;GznI~cn~R5F|6b?oaV1Rgw1U| zN#3_7e40o?Zno0OYlfnB?RzR>>F(Ezzm^_8t7Uz9*jI$NcD6=;`PS~x^sm1)4g(9B zZ6Ms~et!mC{qw5!`}Xb`$Z5RgJ)^=m`6-L#yD6URHIKtIYrS~+R$q4^IHv^6r>C<8 zeDN@B#-9Q&u4+GN>Q|mQ(#hK;6cX2Sg$aTxln@r#w~jx_-m6(GNRi)sSLEL+QBwLi zwriqnSdiJzK?=Kbo}FsW}BnT^BgrEXww_vmwAwC&kRuwSiK znsre9^v`hJ_bt| zib(p|fyr@S>$Z@;iLI&fcV#5UI~%O1FTmye5DK(%F%Qp+x!;cD4%?u~NO;ui#MOk^ z^UGJ}l+2CpTEriKqcafBcoEE)iy&{S%YSi3#DAB;6yH4j7Rp$pM;gCAM~H0G~-9FA5&=lmht=~xO+GC zvoDJ?K0T^Z;YkSWTj0O=J&3)zcx zL?^FR{+3;x%Z-W3!;KJ+{lw^GSoocM?Pg5>pXpaMz!~z@ZaIDk;6N`n>POI)WX)di zk3EsCWA)^>G~7R5tObQ?R-=YTY09ZOHk$-6Sf3qXBNuE!{AfN=f*8aEyoNXiJ(dq> zABL!7O;$3rvqH_kD&z=-8kpyJ&)=qyWY6ebw#@@tsVtC#yhAZ!jq?66J7^T+i2+;l z;C#NDxv|}Zioy*`fN!uHNudjhXjR`($}B5p9ypym;H-2vocO)yfg7nWB!`||Ly;D`xgmYrJv)Xz=r)+V8iU8K>%)?UEZm3H0Oi=Vpcw=zm5~neD@79e6?}>^miwI z-uE`wfI#37d1)z)%`iVzI%ZKPR0l2Sf>AI-Vk-SOa(yL0G$u(J>;GlBI?1Ca zxiQ{lkwkZDdv#+AM|hP4?pui}Uwr$^J; zgAVx_bba?^p|WVmh2zVM>%=Z~zRa6GVnZr1+KJr3F3~F(4?Q)j8?OwGk3(a;=e1;` zo`|Ngt}-}xtAF%17;v!=s+1~25VS3ocYok`w!i36!q-qR+?T+kN9~J}Kb#GNX+_kd zw%sWt6eKg6G!xQDvCk;Mr?T?Q%zk!&P9UuS<~J{5da z`h0!)Q`%EaT!Z}In#I8|*Gt-DAl#DZpIBkA5@rJ71j50x5@)35kg~qX@IBwBd~{xJ zlm{POt+vJ-To=>1Qj=#62{CMRudQ^o`z&~Q*)7zLYA@VX4D;l%>(aL;y;AS1tw*3xPaAD71}n+*&GAS88td?ZRDXS`;iW^_wk@ z`hf9vE8B^%RZz|793BDF42szH5@fs&>IIvleY&RI$|}l z<(-mTEQ9R|(dnWWFwJ{wP@KO>hrdxpanZ`=+o9{nabx*4Qyy~>XDC;jj?HQd6`Cij z1?vw)w01UIJL1Ui4p-U?hdMZ>4k6g^(+t13Gp1wdvCoV~s$K9I9A|XW|BO=9oe8By4^@=?*EK>SfbjGjSv@1b0wE zf5Ok=C_*_NY00AfhU5?y$W>5|t4Zq^!GVxKSDv!@O{p_>-AFv!PMCHt|-& z$GH4nSFR?qd)ARGZX3de^Y8u`-9yO>)DE2N==$5*)M?P2eeRY3Z*tH~>E>p*N&DIR zD>h)ca5T`&*pj$a3o|-FgKn5ga(eagvX2!Y`M9=*ibf_>x8zO@q{6-TevQpML9S7) zdKU_5%k*LG-!VWNi4%~l1h_gAsuYPurBrdl{H6bZa`}uTr?(Y95{D6Zrm4ZfI zjxOc!PWp{G5ie}5iS}Z)HW$;Hz&1uLpzizOR!|teM-AGMCsWP1@^bE2;ea984|C^T zv&*m8l*_?*C-i!0ZuI8Y)NI`@nt-}N>9DfVL756o@%=WH2tr{4~uR}Gm>kbA^k^4hhm{jwbIbs7DyIli=E7Cx%7>vYZk zy%^WWn;SHOzecRo7&@FQ+If*q>>j zFK(!I=RynUuKUAS&9lc!`8JoZ*Z84VSQl3-1JAcOawv=L25nBcZE!^gY=M^+bf@iw z3p~MCANyu{5BqV+-A9R_t`Ahb^OmhE#lt@_^ZcxlVK%`P)=w=WbqBvVqW1VdB8C5) z=$ceJvM8E<`&cYKt(7BHZPyVy`aGOr{Ise`>h-r7oafFTtV|&90?IdHUpg)`BJQMP ze4&u6w*tyR2ht}P9fIEIT$5|4r{Z^+Bka@7udF3KqqRF8u8FHUI)WGL?FVx_{;t^c zb6@8pyiXX79m!tdZkP!Umj5RhFp)4+Exg+--L*5HcuyHQCA#SNLOj+4J!@(crfwPX zU%=TY^2VfUpJzYp%Zu<-%+&zeqTOG|2-9?axk~Y`podY%m-@PY3-||EbrNABRa62Y zFad{eqN;ZSrt6s7^RWQ3j4G~tfmP`u(tq||C|vkWggw!T)svEWzB$&IOUfzE6x~W# zCO>!Ot%6gXDD{DAW3Etd$&CDy!Lcp-P2lv8?OzFz&Pg_kEpd2qvD|WHamq^iB^@K= zUHQU;gr?y)vZ=sbZ0*(wWuHu{+%MT%qeZjh4#q7AGF;oMuyla%8uI-mUymrDbE(Vg z)!gNM>DwjYs=VAnua$S0;A|XvjMU;K;fG_&Inp@T@x$?E*`}tKszt$}CU}6!8A}VY zlU9Ic^^#4Mx9;_e07mM~6AIxYp`xz8?$VtZ%%5w zUJ?coyjORI>|7EB@aO+q-;M-*d9R(>rn^DSj@UBgZ}xu2-=lnq8QMt)!Utc%GAYAg z_@oGP#1*w->2500zgyam=4y0uorm#~MOHz4XzZlsJDL#^K_*%7p+$9$eT<3?DAiPM zG(!~yXd)6X!vVpj{4DsWVj*+uGY9IM2av;LTK=dTwME8ILhLd&V|n!brYRZ8`~Q{?_%;}xA_>)Mu0a~hH2m{|05gDMK~g>uubr(r zCz5;eBb%bu#AJ%!(;W&P$#$vln7a$rC^rUc=e{{5MfXlrejHM>^4E*kzN0_=zqxn3 z$^`zp(Gd7+S`kZ?afcVZwrtQZ`g@h`Z6Z19upR$S$$BDo?ywtM^LTJ|tz(uRCobfK zgL{SX-dV0wpWpQ>`#sxF>%#`Ta2g%&ST5aa)#O&_umZ_lU)DBf{;^1Nqpio$O6BWs z8^WO}gML@3uco%BrHjX%pEx{xx@QQ`&+nV@;trKFQB5-MaEtVFqtN zOHa@TsKlUX|1#T@gZQ(apxT5ZSmNX*JCqLU6-jRV#;Z@p98K2@)~zm(`CQ|LDi~ zB&q{0OEay#yu-A+!{%S7#&!llV>c89$E9y7gpp;bd=%454R&yF(k8|J=}cmmKKDkM z5i6J-lC z!vbbcH8BX&^UV4(*^|mhwTCShEyFid0>LP1CxS+3EMd+Bdomt2E0lT0$1fLHkc)7P>X!73BqnsN^XOw zAxQ?gCZ3j|S!iQLV~0<#PMLp-iJ5-8JG8?Czsmz>z>Fe(v1ozyln?hBL!^bWEp_0; zhohfCBZ$sO;f*f>52()yD3uzUEqi*Sg}n{f^1=*bHqJxLMcZ?jAMz(DJ|$i`BHPg( z@a6bN;_eSD0CrVEcAwd@dHv_EjdXRm{&DU7WZ@)R=rf8%{ufBb{oPK3f59%229sc+Qw6kGcTpToljnJ6QA*b9 z4ikYtm?!&*0y#4bq=g}J)NVO*vxY)at0B{9RUIZa;ggOXVSj{aP}+Yw>7}7WFZYla zZU@jf=7VKMr>wg4Rils7B1Wn@Zpm}cr*B5l8h1=h;Y5831K~vKPR7ibyD!*#v~ySE z;hw3SYdsq#4{oZwnmPX(G@MyfaOeE_xGOHRNp8Weux7ON)J-~aP<&wB_|Z}u+Ty?2B-)j24YfC4W;m4kj!F#j z%JG|!PE6MZ=vOC!7Hx^`)DJrZ1AV^aOgK_Hl6GHE$7&NnkE-x%(ui`i`fiA^!**Zg ze=1;Od1&N0ex&J^$l-Y^vRECAtK&Y}X}Ed+7_;XC37z$co8aJnjJ0>vrKb#WuQi)C zDgg`=!t<5m$Ya!$@9dF`QbT&&6;GT|;7c~!CW>4LHAk3}=4(Rl(t=}cgTd(yTOgNZ zeypCQoI|$~7j~KBp9UjJat?(x;sNI$)V5tcHC*)L=0H{bx+ryFwc)02j(_n9Y1_N6 zy?J~AT{zJ3O26op)*aKrC&u~MxytmXF~w%7GNEY~LDyd6;-`t2RPW$|G)dmqjUA&ns1yJi)?pr4;98qoAR_w1#`yR zk@t#VhVaYqBb*I*NoX9;E8Q z5)vKsCF&8FxJk>y=tTJteOwrj=mX)QQc$GTJ!A=^Uc2{;cbm-v1ZkS3h3DFX+yL7M zsWiA)51vdV^$29+$1VK6W{*4-1xMTgw*B>4T=&X=X4T6^BhI|dBs$-x#WK@VojRHK zMx#N0j7}(j z*sm3-WC8>r)$FA8X^|x=AV0)c$ZT$tee1;vg}XrOD6yXpa!EvRZp&98s;%Cv+AgE3 zWhuYhDL&-lG-aInYDu6_mJYW8B!QQtg@z2#cufF>x zujYJP%ZTRASOYJ}A*-*x`w37dU2Q?%5%nP9-r3qko}+p_7OL&CMpBZ>JLf`EyHpbQUD$krI#0dLTZ#P) zx5n?9PQI@~WlaHaS{l#D+u61@4_<6p-KijMtHsI}(BBf`+YQ@IC@7svV3Sj!Jax#M z=DU{hX+q^)yUuTd)_W;y26YFy#|{GNiVYjcXTbWIa8NF5#O}%VYU~6-(Y8Ly2*I8_ z`;FS@F;r4@>e&B7+nWbM`F(-I&mbaFBwL|uNwQ^MMtc$}g(5_H$ zbPg2Plrc2kq)s{SNBFl-DEU=!y9uWA^@T2(#COQfSX{@O@U_NQm7qdh4|@E*XcOL} zD_k6Ld1pbZ=jouro&j-Jy#E`e{CTh*?-c2;nY@z6YjH12UKF;1W}R59?dY-I(U-(r zny%Y?UTdFP?J~O(zDRaZdA9x3bj1Mac@u`-kR7Yq%7g-f5UXB03qn z+62Y>7loU&4zXkJd?(_>h{nv692v~^MoT!um4r(b+lovodjLhUTQ!q@5}JA&#>muM zTce`#SBG;iE_mAE@lWy4D5U6Z`#!^Uhs)VWcgxMZMb%D7`=%bxe4lBn@2*fe`JB3e zlV?{rVFLez?Uk1(iOV3h6q|0Dw&gor8y(>G)^I>W08C{2r%^E)Ya;W{ZyVERR zfQ^)zhIQtV{08$r=c!beJdYdO+EYg$z$_fwb8qUrjlDe=gu$E^E&Qx-r5kn2Xf~jX z!Q6V3{=+i6b+q}1oj0m4dn`Z=ik6IF=oQ&BeafTMxFSiA5)8xqn~CpRoEp$&GWIwm@0gf(sNYfUM6+Jkt;qr#cmP_xy!6%>Cx+>|=31 z4R6P_fu3pENjH)Cxdp}+=uKI z{l0yAA@i+^_{bC7(Dir}b>*H>p``R4l!z7$&V62VT>T*IBJiZb4|xrS%QG4{_dYvk z;0nB_#$^3ssGP8GhgoL`+0mePcD(5k#5rulaN4fD{(8Tw#_ik5TTZz>^QG6w#{-As zWI%eNchNiP3_nQ@E=hZGqJ#8begrD&YlYp!4-H2_QpQ<@ndq&4srDn1c>I5AzRR>rxOR#^gDc*eu_$=!9#gW5UAqQx*bM!1IfFIPoI@?L-5Ptt z3JJ;#a>_hrK6fS5)icK8>o!r3_Ex7>F2jP$S)B5BIgd|Be%y(?fR_|r#!mctMe7pv zzuW@WFM7@d&U$O}ml`X$I>{7RvUkqO@?UDBYy>MO8AR4e{lM|)406Sd`JqB*c>i4@ zpay=MHq0w$bYL8|1O5)pS#w3JF3IjqF448GM2iZ+wNUjX7+=+M-=xWmPKFR zfNvi#l!MN23kwJIPUA$6%e?6hx_ibU(y3T6|J9q8^mWk@X+BDL4VOXd3B{fdkZGY@@{q9+O*T7UT6Wbu59%Poc*T)h~tVstO3M2L36^-t6|J$t$N zM-AmO+q-i^6b}T&(jetC!30_dbqldlUu#OdC`{BlklO*h+Q2aA?y5L1Q;pBA$h~Yy zGf<}m=7P_k!XWC8%%BA2KO--ipR9v&+J|)?J}=1oOE;o?$f5Q{0jRb89BSef>m6z| zj3)BMRO<`*tpk!L%>>yg!6Cbm8_oAwPpJ#M(__~trVSIg;hYfhXWfs(i82GW_E=Xi~_ZeA`W=mwxwJ)x{uTu~!Lm`rTTR-w)T&(ZO%bMKZ#=i1)4B$(WNvI_>e%LS^kndd9q%8`U(Ss)E8_ak z>pX;=)jGG*Q@ts(;?E<-w1{v7C@Ula(J+w>fJ9A5hA6O7pNXve#hBfYMe{W&dy9P)53bx zVc*R+V6 zQea;$pY!Iv2ug|q-DDyWvXh$c6lYIA;akLJIlLO{5~NP79E@`*L>>{k$Nxaq!An>GtZ^nh)%7#m>MPPGTB?!Ywt% zCU`kbg6a^)wLU>F^r`fMlk%P+AzHR zuh8;(Ea^j-W|vVn`Hco9@fYY@GNPyjhx8`*s;61xF_)}{pxB>=ra~cufB6N3)#95< z*Bec-d8sExKEDg0z4?n{pxDY%&Z3}aW*o52o~r9~gZTaD*rJ{zAo?DfQfC%yL-!j~ zC^BgnlnAo=D&aH1ds`?|N+A+8W|8P#Ygq2qPO5HX)9{fziSg#7mOA?AMqOVRIE?8m zNg&SzMC?MqLFCdCsWy8_@SINvt-2+YK1f^N@OD#iCAO#XWTkN>?ac*Q@ubIh!w#*B zW1WJy5tD7ep~0p0KzC0=xVl8&CX|1c*imZA6b__Klo?Ijtxo%v8R7s_@>|-%t&~>o zsLPfR+qo+TMSUJyw9$sO37I-h-WJNa%`71_At#O@&TR%CtFd4M=$x3rJ{>4X?WJju zyw*U4U<;0Z()VoK`Rn`n^`gNd2?N5Ttn3P{XdqEbWh1V0VjXV9F&`+5;*)ha{Ka(HY<60zVw%{}9?D z?Q?r7s3$HBmZr+SFY;i~*5S@O`m`d{A8RJ^m|wXh!Jfm?>c2zbVW^v1vLSP)E4^Tb zHU4=ixg$>aE63KU`DlnSEu}1{URM%-7B1P{xy;hhr9khm88S4H4y+mx?78JO_|v7a zG9ySu`uTonb)@ue9Iq3%+J|#S?*`GQQ?X?#P15%WqH9VVjL8LH z2DcEN_^MyenSFCcsiyWME(eGozx7qhXJ}APJeE<)VUnH9JFIU^wNE0!WM3OsoeFH=QJZ+*F%SjV18nip!LU2@_ng_t4UwXo z4e9Ye>hEgWPy1+IMh>oWyGF=ScH2Z$g@b$h( z`FG|v{it7K{Cr8PlH*z5+m9@AJHf8%BQMV?XFfWPTUqba zjy16NKr`)R%{zNdjNzM)^HzRS-sp;OzE_AU6m#ylGB8J^e-El7_Mh;jvdrj+G6YhE zmPj=dJ+vWyfcn};q4db)ddH2^ff0fWtD(89C8sA2oD3NHPGl+zj3@L=${7nHhDs$9 z?#^R-wY~d?+=d73>MS1Qj<2ID?d?5AWv2S5x4O(DVR!5_5(?fFd7z$w=5S|d>5r%> zQT77kp6kR|mNqQx`mfJ)Wesf2r{9!$?R+KP-hXl{Y}7HbxE^7MoL`N1%^iv;*R+Vl zIgmGnZK$uQ&g1m!7L81QE4$$0UGP2eqh=RXHDYA~gzVOlH0?)cuwG$mu!0E6p#ilN zDRC0!R#3@zAy)l_I`uj>t=I+K6UGP6Pp~W@^pK6+%ca+cCggZE0QuzSAKk^RG)YG{ z``dfCf*#)%BAts*4J*Cs0Tt!ur^j!6&r?o?WyuzbuXiG~@3=^e^l_|~|2x2e;( zKgSruD0-oyas=zXL7>`|SJmy}K9@xj_nj-4h9-A~>V-3buLT`hzW%6qWleSCP|2l@ z!E9u!q65Ese8SxsELt0tDvSCYCN+Ha=%@-l=E3Y*zu8utfju&mY3Gdj?TkUzOQ0@u z4Tlz0cLYoTv3&nW3`np5d^8o*zk|U$ z)s69Qc(^%OqNLubP_HO32wM^ynIz+NaOgL?>_qn=a*iHcP8l)~or|^nn2;n7@Q&XF{r_*lCJ;m#n zZ~r= zQ`zBGWAnI>d9iZ;vpTW$WqrCcbj0P)7g6GN4ohVgRBIUwpE?&`yVc|zD#eeZdmScH zQ4f}dlZF+oMDfqDCjx{h-xTNs6T5|PVw;UxITYrzp|3(W5{|GrcNfX}3=GsZMa2%Z zmQmFSp=ywMYu&UxA7iao1?Fg$kA4A>FI7bf4ky}Ov>dg4WMhFBTDo$a%dxPeLDHFl z|7xsiy3q|8A1amGFQshvQ|u~MyLJ_nSEt2$clP+w0gz8|6kG)c_fua>6)vU8qlaal zCzrLdupbYIGQJZoIcC!fMKV4Ot@fad(K*nG2vYg-5!U5Qwm54nmE`?x78QOFYYWnksD zgVHslLAzEoQ+S@pVzeDpf-b0cNIza5|Nc*q;FV@D@jFJZ~RI8_5A@l`rdNduo3N|tpz#HttWWBfPX~nab4;;^NUl>%rqMpdB2`r z(x*UGpXqZ^x0u`5eN`$mD40HtV*i+mZH?)fv8WL6X z&!h8bGe$h%Q*eo zb4@OfJMPzozR^b9hZPv@#?FCBw9&R?ohgMwO|2#@A5&QGW#73hr{j-CO^w3g)ao~ z3w$q7GTjpC$Kq5@HE&N%!mKq^&%h_?W90Tz;lV!0=>pY05PJCUkiR_2QO2{becQrx zdXcuhOFv5wK-WQ2O1zFMErOQXr-ly*c;PJ?%ZPv7>mmKqxpAJ$JI_mIy;1fpaAI1{ zLXfNvWa9jvf|EkCGlA1ds1{rD@L{KMXM`Lx%HgVBD-BpK-2Vg(9mXxAma`}fO2MsEztZQH4|zX=e^`2a^Ql1^XMo@%2*L;Q^z?9>p=Out1^q1mO{>u3LMZefST zwSP>OSzzpV6dZ;s9}|EuvE-Fi)~>5u!1R&)?Y)x}o>Uw6vB7x>RZ7i%Tg1f))PC*R zT)VRcu(ubCVB*ZrXniJASU-XZjA*Ss`s(`g`#zRa94d;iaLI6;f9VI5C`+Fh2Gg?v z^?Z;0Vh)*}rWbzvF2>QcMJytR_E4@bKwQc_!crsoQ8=B%l?k-CnOg0I zGqBIK%vp5n2a@5k=Ye++q750+5CF4n|AznVqkF9>m1S zFQxl=koP6!@;t+?hO&J|ISY(O++P%zUpF)oIh%Xb-vKa-iCFj&b+S1(6r~-hR?ntF z6gpnAD$EMkHT&KdHd;>D%pBx(^rCLz0JX8BT0hKC;$GBt2rKv|x>2&0(`0|r%xMmo zB*i+@@cR=F>5MNu%@?oR=v#O6+Rf?Z_1YiW&SZ`%jF2Q~LE_6~z6d3oSK{W9BH&~0jPu7Gl!Ay!9l3;n`ZLR;Hja^85YM$W)sFbLXvZnyRLSYO#Uo!n zfl59UEu0@L-80V(rRZtnAQ%9sVEg_LKvgflogWFj9W@dxsxH`O+0&qvr84!5Z+2)t zjxJev{qEC}4!w%o{hIF|sTbR7JlNo?%Q=Rck)E2(Ku$y+SMmsDVh2WVn65A36F0*c==(D>gop)Bvl^(tmoNy7BbmLJXYL{apIcOLSXgp)Zm>sY~i{*2PlXbvGNbJRI< zyAGimMVN?!f&+KwAz1rs+?ax+>OwCk5ifdA-pwV5wxCdOp_-fNlP)Ka-14~ zd>jtrNtt?>1CcO+OdprfQ5!cVL{;P)F zSc12Lc!k1{(SXPl?fULZEe}U+WNiqECpsOV7MK^fcfJZ>(D<`uUX$$^`jmsQ@YPs_2muI7kzG}N2dp09(a%^TffiIxBYj;hb z!6fWWM^Ov167B~NLAFPeO6L!9L*Um)10oHQe=tHE%s6~*6ECsBwZF$43X}67WQ>XV zfHx#SiFk-Q-G&N^4%FcOP_#o$N?rZemRufC1z5NI}ZMNybGTK;d1YC z5*mWp@;ty|%BhTaXqdp?ZTl!^vO@;u(|id zog#>~fvydfBWIUFcc`FoH555=CzVz8uU&FrNk13Jm~Y#3f4`;=UOSH>fAX*R&;a8z z{t!&2+}8mZ$c_T$NCH$<+%}5If(BHOx!yCGuWdC-x~QujCu1?P9v~V0cFQiXv%6!4 z4m;#CaR}q^2v4SRq@Z#p3|bYEB^APcxKT#D2S}`cc!|d7g3+*Orrhn^m2P@ym-DWC z--V(IcANg;oY`^JVjbiD>^3wQd<;*=As&PR2+dFfvap@ZUFd1t)Im6${IfnUR+zz` z-aZt$cnzv$8iiN6JtR;z5%2B{SbQ9+|9xAE{_u`qZH1o6QfPl*oELnKgTU6fT>ksJ zQ_svBI<>V!mNB&d4k&AX?+nP7wfaq@4q~tUdz&yE?!1}{{Sq@d#%@DcKjn#{Xk?>DGM`S7A{m3vV#;{ST^LU`#aI z8n#RH`h_n&y?ZwQ6CGvh{f~YBgA4&fR6QGGO}c%aW9=cTIYJ%P4<}==#F7zLhuEr{ED&pqN8s88+Qy0lf2QR}Xlqx5uT>n_LLiipBz7?UV24V(agyS=y{wQYU2^8&S z4e^Qz3b1R3{6boJF|9f4J0m6en{o!6YO6c=QG7@?{<{TlfRK{}_r=~&x@GbmiXrfU z_943z6lOKvUfR#Z4IDG?{2mGObfi{O~!qKN4 zGKET{Rw^7PU%7AgTg-3QYa=fJyvfMH;3{ z+t8&DfgEmyS*&!cp)7Cd>@cwVtItM`_}S{pGb zkua5%%c_v@GqtBGEQUBdJl0JArYqqeg2A4ZS9vXd_u|L&B#WQmC=a^!}6MVWVFNQGXDz(fD<3%&U#rGz%2p zJ@999153a6Mx}>I=9!1C5$HAcv$4X$5kt#~sP1>(aeT7kpjQaSVJEvx{aw&LPS&A@ z!_Sb1E*+k^YV_CWAbCV@Ig_ra!HIEhVi6nN#4KKJ+M>L3`n;`I9pV9U?JkQjxVq8k ztz2wlen#m*_~)SeWr4;_bKcJLFO^%>5)r?v4~WMj$TN4JacI^djO?ewBySEk{4}Z& z_7zow??1^1iW2-a=0oT%8d1k~-Ft)d>44tC^GyTzIU32h-Fuyx-pcTxeCykWb#He0*L*?S3)B`(ml=_8!w9qKZC2?R!dJ@=#;BKw1Gu5${ta_ z$3ONXnkN`L_j$osHhSlZ~Aj^GpW_O|HM1n2iq zeDmFiM+>2@gjMDn;YG&VYn_y#tk$r(#bdvO0Vr~fB1OaS+@zhP)wtB3QY^cC5-jn9>tXuJNgawZ^eih`R>|PCGmLeN}^uESM}A+&CYC)#&~PNX@G~!j$C6FqBp*`g^O<%ZuCw| zGIqlgn-vIC#3BL_!?~O);u@;6zVZ^Sar@Jp?R(Ba3+dEFz?i&QiqFklg&*z??|?k2 z5wgxNjE>;zZu0G9dm3wKi^|xop6F+iDv?Nj6lT&)WPw2QqR0W zU@Uo5RW`SycB+lz1kPg|5GCHr0_SmTYyQkTi}u^Wy)jATe8lC=Wk(PafEem3z^BJI z3D3JUJHU4=FjDGuam2J%IYMoGGq=4B?&HAq2c1cSn5F8`<)4Ei3tho-6KHL!Xj=b6K#JE#ae)WxkD{! z_HMk+K?lDxJz1dQF)r}%&a~Uj@LD@q)1 zPd&Qto2^RY#v2xcmHmdsyuG8^HjM4SoA+=nPzfQ)yYri=l!JoQiLb!u?lrHFk8gfc z>yH}6F#U>FHBq&nS2ZIo3aERmQ6us5q-p^xd}pq!Vl9^ZH2eJ{8*F{A2c6k@(A8R^V-|wVv#bW zcw+qOYTtQyO6{Rx3Tyb=1o}5_E|`_9o$tL@InboUomgWpjKXbuV|;C|{GdU^#B6kP z{PNb;8(Fd=xmWS{cpb@jb1rT>&V5ZBht0!RI5Z-A@coNlTWmbZ_+|{De^k1c7MnEU zuezKE4!-&r$RVX1JQwA%IDW2mt~CV0&L)YAd>!+sTyOASXt|<(xj6OyWS%z#B=dPu zHv-`Zy+~74x$p9}!BN~z5Bn>ZY1ig4Gq$Kjp0#zVch<4ts=tYz?t(tRL=@!!q641X=Fs_Pu56CpGDDu=No z2LF0;@i4}%q9lKaRLC5;!HXNlZ3gx(60euEj>Z~i+JA~!klx@J?2YeLKtDW!6&W~( zEw>%PFAHywNy`htlp$#hKWXqf?tshr-cI}8pkNl;D2{p5;yszFXKgFjD%oD2S z_9Z*RQ?>IW_AWd_9n}mT6F|3;9z?nRAPvF^HOC(?Q6Ne5bE~bM@$;{I>dSWphzcxp z-4DoG#R)W-;seh`EjCV(TD>~FWZHzQ02qq802t+xTuuxfc@{f0lR8ardhP_qeP_`ONasL^I29V%LJcxw>LN4G(eMXatl5q{hRYgiFUOT#07dSpe zv4k5TX9dL`?t&2Zq_&(Ejh>@fszkYk^U11CpwIpTMMgb%@ji-)#KaJ=rn`*;nKVly zSCNmFytnC}^_9mEiZW?(aKn2O`W`5P`*txIC`XWNQWjG(FKNbVt%@JM{};(01Jo*D z6*_yu45B_o(GfIfM&09)z$ypc_GuOXGpXk_j{T8OBl*2J{KlAs514@^$O@v2ZTkpl zxvS1TlGS1+U}hlBkaEHGaR4<0!z3xZ?f-*ElBcO>BBPBZ;BE`c&2lcx1KTa1?AE^L z!+V-R|4+)+g&lI7{BAa7!@MY$q`ED%huWi{TFB#PgSpe=>8++0xs@ZYbK&b(rvjIW z`S$je>p7^0BkMVy&JN#P5faPWy%@8~v__a=%R-zD^Fmx_>5yanJ9)=G+l2PX{PPsS z;gfamD~Lgv6YU}F)aDVVq|uoAA?M#>Gr(K`Rn>6>!=BDbBMRvU)6EbPp*8XU1s^u&ow@4q1FTd_UKOp8X`SsC*r z%OOIAmk3GC@uWi3zEPw0=&y>`#;$yOp)(cc$~K~2{-NjiX71RaDDHO8rD&QQCW_3b z%S!mf)vk*!M*e6@%1Dxz=48+9^Vp-mp=}UMKyOLV-E$_6*m9Vma;;gMV{I}1*^lg3 z@uRDlxd#LT`O4o)Q<@lWKlk^aCm2X>F>z^v6n}ZhKm6s_D2)D#3njQ(E9Ms5$SWtO z;D$5`)F=b&Wan^;$4CSSPduiTN<`6(QRAnkc0IKFBaKPd1dHGOxacQi|c z`o&N5L&{-QfTx%&?xuW5fE$lH-nAL@HMBWP8hfMlj|GzPX-Po#5hjvGZVMx(wMn5< z!JZ`M;WPB~$Mgrn3yKsU*3#JX{0BKIzY>j`dY8x#*0RkIi;qa43Lrqds<`hO^|f%c z1!grv)+%CK8?%9m^C$njHJrsJ=bO*$Jjuz!e>t%tCE}}f8Hiaw%c>l|PzbL!`vV@i z7s|er!)pp9lx|`A$S#uqqWC-5`ZzDL*^p$t(lB+Jv?@N56|Y(28DLY`Y~XbzumWdP z;Xb_=7{12)>%Lv<=FudpJu2*{P+>R=x6<7~=r3J#ZMvF6Zki)r| zySc*%m!}FTx0Q73TL2x7>B_M}U$m86&w_gZ;+n z(Rriqt_`TALOt%)uRk406GbJPRX-KuE@_45UE7Hrt}lvDV_Ph0;c)tOt#bq+tpt`2 zB#vF@ebwjuKd^6XD0)Mj7Xf-cG_o9ru56sinA_ zqrK@Nc;epyw$(@5K8#U782GGHO6^f z30o0)#jX`NgM(gn?;ZE5QV=YX5_}8`eP+p;>JguAs2s^{hQh5!8X`DbxII5#%JF() zLk+k}dtFAZ=b3>mGg;`%h3b9761SsziJ^x2cl ztu}mbq}YhnU6A-s_pozUl6o&&OlvIom_mRx>Y=ax%& zU#GSlB~8WL6ObPJ`^0ncUkk7NbK)6~{>O=b+#Z^K5+}(yu2jhLHuniT|3#~pH6rAa zUL!lM+-*vkmK#}Tvelyk61z9*D>K3dv^VZLE8=yzKDAby*&-QT zjgQt;S!x9J5%Du37L0P^aw<8jTn{fi0E{O`;lbVeOo7L=8$#bnO*i5$->~{iAOMX- z6!nAPzN?W;{SZ2CFZI@_Mkhv9(-cG?b;YP&reaq*${7D--%YbQ{j=|+{D&4#-;(wi zoy!D0)2enPwIo!{=Kw?%?uzqZ9Z`uWfSHyr! z+AnYPd%cMpq>+kMbQB7Wz`a!*_y$>rd|H?7NJ3>H9S|^4#`wnz1B;G9SgiBwEBe$K zQeJ1-Xm2}b#_H*97}y&;=$G|Z9FFQa_^;)>e;UM%hs&}@2Bk6bp__~<62pId`wc?Z zlL#_)L(?z%yhCPO@-8{3g1y0b1zzy*CvYutD_7SR>0~;Znsfb~-FRq8?~rv`syA*l zIm?MDIqixy^+)B_K85x3CQyl4zqIvthvNlu%_~n6%ETVu?6B3HYCHM&wmkJxD~?8- zeg#qegjI?$xmnN}az`WH{xph3>k$h3S%qG$T>vaV0+-UvYz~6z9`8eIb))ak67Sx- z9pRP#lOWkQ64jEjXOBs z(j3ILDSs)SQVtHuX3K^FnNN~?bpW}tE!Z**U=w2mgUy=npdrqcJ~KVqP$$DoZqv;l zz_$mEkBhK|uYkmJy?(9xv_>Eaprp>3Cac6Fw7)c-;GR!GQH$<2?|vH{iCacXBpT zGXc!4u6IV&(?pi~TIl@I;IM9A5q{y~=J}yV@QkyCqe1_my5?!Z;K`whwBq3RC2>om zxUr#E5A_%|)$RHC-=TNz(ChEq)bnN=^|Z_s+zjibB>nRN&NAN}3bI)4^m_cV2{vA` z)O;kPeLsSM=ny)ZzHF7&!e2OWs?TE7ZdebxJ2)v>sOqXR?LG_2?+#iU3ZFZ9D*B1; zf!RT9xg4V@#l8+z9iya6(jNnUXTU*ai5%xr`l+Z-;L5)s&+p1K;IqET$jDbm1ID)L z4E4>+Z|(ki7J=(ve(Q2_;|x!XpVQ+^JDGNdJrVdHub+1qQU Q29Ohgv`<#UX<# z-7?(Ozu!HiR=cZAQZmOVT$17;|37+kQ%`rrFu4-<+ek@_*=;d}S^oe~L|&%yS|sQt zqWN=`jQgcMvPR@{GkBF$Dqd(9@f%~ldz<`={O7|0Hq2X!*SqOx+ivR{opf!n6%%O} z07TFt{+_Le!W}B=3`!(?KvB9qsljCNUl+ND$Y+Ra+wLiOKwl!0t<(vY0+s1eoRMvUmR60EeGehAeRfd)-Sg?+#*654NWAT!E(}GPyT~oJ6cZY>V(m2$nzQsLXxgw-!pHjL zhgZkPr4n_VBOHeBTX+r6yys+d9=*`!FBLuonnr*h2Rnxv{jd6tIL2i4aCV-n+-fai z=Cbd`K{n%ykFbg1uZKrShlT8^XxmQfM=^mD}`cM$etyXH+X*5qq z8+KAk*E<4RBB*gnZ@aK3HUO5k@x7bTbN-`_QS9Y!C6uU6a7q_UAVH3|up=rVHXzp> zWbtGV)I#^)euNz4z- zU{e!meqztbw$Q-0>x+i;Pl7pQm9PltiBO-);}W(WYBGgN>^2_JDx7lI-0GhMS_cy9TN**7>);j7;&saE) z&?Nuhh}$O9Q40dycu{&z$Nmj9i)_x3_#d{hW@>+k&H_Y79S1m1yVC@EH1A>r!|?pA#1=>_s&m*L{J*_H`Xh@2q73a0 zCU#GX3>4B)TlVdG7@?}q{XjMRv9Tx~RhYdS`}&k4v*|HeJY3ed3c%1&^G$_a7t7-r60NOmE*aYvxJPhGh{BuT7`e zY${!iVU_fGm)0y~MbQP#rOb1)z^%lS`z42({WD?buf|q<{o}HM37WL?G}%MZ&+WcE z7xm%N!J0-~vM9UW6*Lmf1`gj*qW;;ro~+y2pY1reUKGu+!96^=knm=Q10bs$>M`t> z$!OHH=_wWpGFU3eA1BngbRGFDk8FA^E{9` zeOg;IZgqz-`H3-O^5s*yFt!gGjc$cgK?unG%A0)0YpgT=|0rDf7h{twQ0R<@rP=p> z0oBUyfZ9-=@mCgHf-R}~!f&?h-@Bv97(H`X%w2jNdr6Wt<9N0(hgxHr(Z+bzgy?Ss zzAMx1y8-ssaC_<)T`HEAQtpVlEeuLt z>@u)!HxVr9Tk>(*wl850r8Y$&rL8-+%=A>|HEb>of!2D`KHm+lNcvE)HF2OQkdLm% z%QQ;(1XYS%VhAzY&lK~U^Y|RN*iPLr+h0Qa266P$b9)%jp#j6{l4o}jGApaeM^x~)ANTW-k zkUWCxojr|}ib#|UxBQtM`o`@N-v$RkCqz@^8T&i zC+2aAX7jB$mEY^H4*bq4#Y071V+MGtec9n$kJP6bRfe4&pQ{d9e3Bgy)WjxwQp#yM zr=dc64evX#-s0KZpJzgJF@m7Jqg2V7UvopXhAZ3}=2Ll}A+w!?%DHf>2?do~V4}T}w8)G>%(?m41eA>9qh%9QG-a1J@uN8!ke-htze3;I!Gll8CXK?Zx1 zOJUk4gW$Ba&m1U(x5Fb%b?UK2V zyth`e-sonPn7;K8(R)2=<5-z-skRm4Af`K53ERxU=zhBKlH-9sPuEz&Gq~5ju!E>y zk#H0Nlr$ydB7n`6I6_`Oafr!q`0U2`!&rke@gCu!a-Nrih(qE*TlU`l%hI28Nb;_# zPt>1fxZLnJSGVkR-FI_?5MNX1@vw-Sfd9G?Efh4%(R2js$~uvjqOHRoXKpo<8a<0U zv61$LeEb&W?ownf18ehJ4GyrrL$F}WiZNbvmVSE1uhBX9+D$q&K!vUu#$^hB(*OSnYoI2 z{6F)ms|{VFj**y3Jc3Zns=rpM34N#LGQDU+AEZ<9;n59Q))&#|0f14d6sqL=<9ZA}Pq){4;|D9BZnJt5 zhnc}~J9roVoue6>&Z8q+PXCfB{Oz#+akLe5M?T3HsvC)#vuO+PxHZ%wO7`9W6lL-O zS>qE?*+L&hUdVoJnSknOZj`;J81HNkz-|WGInq)k|E#Jpf|*Rm*47ybzEu`ZjfZdc zDNrT1?-I}S0(4H65NJ6z2L`6aYU^klJ(`cC4v!nAN=`Jm2!MFRM>C|*&0Tgb+jJ_m zBjYq8=+w@$Pjt;yO+W#nK47RX)KtkVgA;wU*WsR6W&f*jF?uhw8f9%fj6BMfwtlT! z;datGj)W+?Xzf!&lKGQn^VFyAaX0%tsGhDgUvXkRWX@!$0C|wRbFcctpV8(lnQZWL z8h^{w>utt-ck470uefaO1)18sI*wL++CnvhU$bJip|)WEKDqR{TH3knKC0p)LUjhYx)!_y1j(uh_c??#{T-v5;FuCo5B+>=!w3-_GXQ4UVhey-wD zzi#HAHZQrfS=MXwvaq`OM##pQ-})nhP{aH+q@b3RaRLS&nnt_X^?GE{khH~=jX7ln z36SlvrImBSpQulF)nDLYg&r7|{2Hv@RHNL6C@i|B9_5QwBvg+QmzU&7{ivs?HCIwq z1%6H2?`LSTZ)Pge#HdizCxrbk4t#X1`xB{f#Hd2&_Vx=^trz|kzvSPMI?oa~U(@E; zuWazUZ|W%?hImh)_O(_U#!9o#0S&yW=n!|2y&#ldMb32xa1u{DfTcSM3dqwQ_~8vYinR zRPi|So8{+KWk2w&)TrR@pwpneEummO_{#b#@olJ~Xr1sYoc@E;)~f_Z}zCY#0jH$eSLI zbLf1bbP~e2Mmi4N7{Qmtj2+j^4t-D%VjYK=p*xt@*AA><_bA3<()wOWH~+HXgz(wM z1Zuxjy!!65suTTe@RM)pneMVKeF=K+v_gpJhcp&Di;}{eV3dVz))k)0{iQl;lm?G) z;YXzcjm>y<;wLQJ99!(Qr#hYNXH{ZT?NsTUquV@*@9_L(Fb&??g-+zXbG$i^C~}zX zL#qv24Q99Qy1L#zZ+BQ7iALwowCwr}_>w8BAu*w$n&wdO8OiyV<)Q;mM=QAp!tPRuIh?5}pbn$&+y zji*ye8hvw3)ZHJ_z(rd)|Hwl-{X-+BAPW|eXFK5r=2<-(EcB^3FZxIGz`P^TCF$ze zHbarU9Wkw2&Br)~>3KvBlgp@x!TeF5OdD@DUF59c#jFzysJU$Gd1T>gRPe$6pe}lu z%7~iL*5`q`ds{h5p5jwwTw>n&pAUINtv6!F+a_h*D8k(@PKV;bf@Q9A5y}V|c|>%P zZqtKq`4|$r2=De3Gk9J<;VGzU!c}NVTy-8Czpkj$+6`Cw0xsxT1xtH`Jxf8VKwrNC z-TKA(DZdR0J<;pP`XI8u&3nitQ+?!Qb~wK9ssm|185Jfw$K^45c5C0pN%$D6^9&AF zGB$_4T-Y@c73*lDg0ISF5RwuotVG{UbFRvNDfMxkh@WCf)l>d8Z)vJsf-_jPup=HH z)|naA-wUg=gd3BNglD~Hoh8MSChFS!hi<0&RXJLg3X!-*Ir zHrTf|SGyQ-yr8(UF0~#Nyb$cgS00H`E7;^O@#4AbqiD&I>-UtSt5aO&9ub%EYU@JG zISW`pE_X$=Uy(qA_RMA0!OeW$y28qH7no5mylTz$#RxDyQ_G#*wQQ?>NO=YQ2Dkb^ z2K1+q&Hn^>^@bz;s?*^rtx^(QXU+OwSOQoi!!@7zR}ePScqJb?-QeFb5`IM+h1=svXTz+|N))1>{99MAFrlqSj zTXV0;6y;Mo`#d1?qiZdS_H_lkz1l2CpT&x<{b(+z{=9K4uY(Qlg~*?+Z|k(vMN+?2 zdO4Iz^zBOHjmaf(Mtjhww^9~CU%VJp+QR160}!x8Uo4oCrkdQ%BwO!AQGD)fv~x}e zji~Kfm)PDNPsRXS4h4dVNt<^WDJI<_Hsm1l(N0mBG+`Vci(6q~2pFG_&c}-((?vqe zs8Dw;Sk}(*`XE9+o(xD=so>PpA}7X;PhC6tV?kTT@3~A4y_)uRCZhboN7GYGag{;* zL^h=={HH+&CTW-TJMTQJ`nR;yK@>?NybBr!?3UTFrnq9{b<9zS%`Tb>zV7<~f1@b% z81xO1?)@;=`Ytq6Up!0V7aT_*wnH+?+WhOMj6*jJI(g97P(^*F-^n#p=yRwgN1Q|L!DWFjgxH6-yT&wbyDY|BIz|rQz z&q|9jEslbe<(p`yDcbT0rdT>{6CZ`EoxXT!m*ub7^Vyt)J1iU}MqF9QITmOuLBx2`_R=5_xyOWMh);oV_%{ijZbf$X~LVA7ymPiS@@&R9^K`V{J()I)hBn<*9j9M z47v7|zBZG}&>qL+(!f-}WfECDZf>Sq#kYdNZ_apV9e`vatw*Bla6^o@PNmCZ&s~jC z%0x;cqVObiH*CB+gnRztLgZ0Mv(J5Z!cxXL2TFUibFszM^W%{#9RWrgy@u$Th(+tS4zq z4#~j|`5Ry+u`iZ38E-XAySi9s>)nT^3W3u6pE!4DzA;+qwYA>^wjC)=vQZcncmEV^=T7z&tLA9L{1z80 z$jU4;cyHWQA6)9w`LKNZ_=ddHVax?AO_e2OqC>(=Y++S5l^%1_UoXZe-f|eXhCi9V zeev8{qgt3#U_@Qn8E&)db<2k*JB+WJ?76NwrY0R^(JJ0$&!caRMo23S>%l_{w)0f9 zI3Tv~HhfS4+GkTRr`_dPh&_6>$Dw?_M-z%iS%>c`Gd#^YLkq{}4=GeKj4CnP%WqS`w>+Df zP}k62$sJh9!qMj4TTB``TmvH}-u8bBbM-P#MzkfoJYct1h8$UckTdj!TVct2BA$$J zht*q5sFteQz}cL}6>S5KmZ_Bag>O+9Q<2z0C3VCg!SmGKHlf!n`YzPPy0ZB)XUicH zPXlLOZSo>#)FJ1sDy{?mS*MQcTi`bHcTJ$Zu(55Y)aNZJ0~KJmRvneF54M&!3^3C6 zc90b~M$mFihV!`>%O~)vAlZ$2Ou2?~h+^b z7_o?N{^4NBsn{%|i=fc+nOl!t5q1sTn%N1xK%Ee3n~?Sa%0rRr95U7&5U&F)wftUJbAy3-|ti8#hi-ytf=*L{(~eMc9)#s zGnsJXDeKRd!KR@9i1ZSkO}Vh@uUlrb8{1b9PEsx&Z*qAH&zc-DEE%9>egl!79|C+3 z)+NGyoxzW4zm>p0e?AsSlLPXTwNJkn5KEppXrhZbk@sLnqNoA603Q<%uKLA_->fvg zBI5+}Gn*$|=24&k4=x!nvywXwBo6Sb2zYSbUAdjqX-^{2g!BN+%IrL}wJN+pP;!-eQM9{!{mK1+-;u!H{&hmvmhK;& z=oII(L0QSvB(G(P_QuZgbcrC{d@noI1Wznrot2t%(ber!=`=TUaXwezLjNZCxbq%C zQO;=$=)f0OGmYD5;p_(A^v)1wT7#T1HN}Dg=S+``)e3dLAV5=1aqQo148Y=`&E##B zbAEpNgnp{cf{{M!+7qohv{6LRw_)SzYX(p<8Wr9Xl3yhU^BilT%+S}}D zS#K5_Nd*@dI3iJbZ@8q{+RH8ZUb?7M!f7d;XCJRlZ^p66=w6JRV^C$g`9{1xTZ}j0 zV7pQqnSZou>tE82D!rdVZ|IhyS;#b8QLZ@?ErtUkUTft z7+3K0vA*O>SYnNmW%gNWC8K$+^!?cI$y#f6IU+!C#E$1gOc8{BTVC-9s`i*Lq$=nG2OVw%lV|f?8t$c_UH!XGautw4wI_G8WjRfBb-jG}bjgFVq7T~fxDJ0JP!Q7hOqj7u?h;W;W%ZgPZ}f& zk0tW~oSbW*3?nHE0T-qTNhdiOP)B8h_DYR zmE$rrhm#x(OwRu;R5)#;LdjjPPom{DkG#4<|WD!;$VC>y^$yKb;d1P z)1Wh09oj)pqmfPi(-d#wWlur{2Gg2}ZZXuV8$`yP})}>0K15S@hDk5((?|9FgFjI(q zqZqOibZ?>rX96PKtqFmKb3OzyV>$%1d zap_>ItS_s-K7{5Yl;fSS9?pZ=Ee4i)Ahd)TcMU18Ljtp3kNH+R{G6hRAAt zk@Pp+nH`}&%UiS4q$ucvlsgIFS<^OCQf;$TEv+~{_C4y~S2AwHrbWz?@uN0aIh~5% za&by9dtZ1N;KznlHOW(3@7f9zoWLsEzGHg0No6FJVkrBf>>-@ z&VJzBDd|?xkS~6Gq8>48jlW_&U$EOCj3U^X81@jeHHkiao;%;XG@-xLj-DKyC8rfa z1~cI^s;fq-qXK8_-Us98Emq&VH|Fr&I$3nweUPx?dcaj~-Ookl2Zio=DEk&uydLh6 zarabCw$A1t!F{XO7?VxsD{VTGG{R8_q!AG*jijV7vpM0a_uDDLOsLSr2B`;kd#a-* z3Vv(K`#ulnmnp!KgSA_a8_FttuO_JB(^5?MYg`Me)w}BgZZfE@KpH_eBvbHDn$^Nw zq(cH*@1l(5DJ*YT*u$Qz~GI zC1PxZK5KW1fx7dW!6HWc z!eM-6_s~uf%HVv}1x?!MEWon|{fco4%_p`{yMNeUuOt#^8= z(1vBu58cmMWc5b>cBP-CcSxqQY;ruu&DDya7{MP z*;F{CsZE#68T+O2bob4B+Yje+P+E4osV1z3k;>Pe%8cTLoFA+@A*Lm}udy;CNZgRt(`-Uh2Z%!#2g* z?k)a9yWOEQtvh#lcy`Wx)qB{rCV2@g6DekIX|#_OQ>>FHLXy2_W4p7J8^kU^Ctu_q znSR109gN8SF`8#%nmT(uR@sv%7sP09C+!proaG0FCuGAY`BLkvI1;`O@B8Jpv$tc? z-#>s1WC6f%oS(GM2FE7G2v;IofV9f>uD{eWJF7p_z4|A+1sMeP@w#o+RT-B6L5sGn zn2`SRQdnZg^5lhjSKFU6!KuhgHz6sKIVjHp;{$~3(gj$eT6FqTg)bMMy;TYTv7kN~ z@Tz!%3iKl2D%l|%Is)A`Ewf1=4idAX?&}}pl-e>QzFu1@je1llpdCHX)~1tN>x=UZ z>K8;X`M7bB48v399g4WRHf3UsY+CZ@d~?;z=2qmqz*7wcv3nG2KNmRPFKe!>1-D%1Kv1x98 z;*0?%yOfl4rHX=Aw5+>$-#d@fTDHo<+MPX4#&!|DqYq)xoBcUe&0?FL39ZPQf(2(p zpxO3ygBk%eO1f32ELcij%z5xZ;b6d7cIUV~KkVSKBhMn1O4r{!0X)6^k@m&NvGM`O zGPq5P>uhs9$;SmwQ4Tbd$u0xU7|UkTO4vu@AE)yg!MTft<8qnuWE?MyrJrZj%nob6 z8}QA9bm|8R3_Y6_Q%IIUBIN3Kj+BUYp`VAE-=)(>4+NwljhIGtnik0z>gR0;vlb_ zxo1!s-{3J1M;o7U!KUFmC-vC@aTf&!Amya0Vc4RulrfNKN}e_+D0fKP8M&iTpcaEB z$=QEtJKSrAqBD8a2Ce_kgk6C9S${c#;kQu+pFqX^`R#&*J@p31l6h7*4P_w@WhoaS zyLRLANHD*ua!*;12JV%8l3cp9K!;*jd6}wz7?_5)FvyZ`;(1RyN`qmiQi^t$ z&Q4P{fr8N(v(7N#08hEdyZSx6kiUELq%O(qy@ao&f#a9MfvV$CND$9MmLBfv4e{RN z>5VJQik##10vm-?Aw_Wn3Qt3Qj(P_kDv-L^?`V;mgH5?6Yx-F1`ylJki>beT(%`JQ_l^`hnAv=*biBrbPoU^R6>cw%sN*CSRbV`WAkuQHNH`OkcIvec_cCi{q z(xJc>zCb~e+1)VMGxr~o==Ss8A-5!slSRB$aklXoY%RvoxAwN2Ck7e&l2h)TLuzzs zR;dpV%)Dmrup+e%qfA)K)3E6K?O^~SU!0#_wp{JXw($$+eS83s1K97;wh4lyyf6`8 z8}jKt=$4*} zo5a3UPr3tQOTqfU00N#jkZUZJ#?86v{~&KBOT36xuG|u9Rg*FYP&KX+kEgp7-HfgC zmoF#Urys->Dy_@Vqro)Z5V66WYnz3)4niXA|3IseN(I^swpa1Zg2nfdk<1bI4Z_s& zPT|E+1aIV+^b!esfuBhE#QfkQ(VcL}N;&s56q+}=(^~H^Yyy(GP4^F@B_M6c%;c@6 zJjf>6W3{077JH!sixuxfTab56xS8Dic+g-aB_v-4qk}a*o@X zYcFGM(yTa)>ePJs6YBN=^uo@s>@vsR3Rkqm-jH_L(6~a8zVzPeq`?9{pkwF16;4PJ zI!QR8GyuX}i1MzS84)_B+8g3rMeGSVazdCq5FV$XbIS%Z|4c5Gu9U$G4l;fwIG$q$m%R3>tE8>>KA?2u>T2EPeK`m6zv;0zr`4n zEob~lZ9qL3f7L!nqmGW0kyU$xZM&H`k#1jj*k?AP>gXBY@2W?NvY8&tA+J5vk%kH; z1)^8!W|Nz*Qp5cbbx`JCn`3QfI8w=y2Igp;-yMVTw00q8?V9dOM|U<6Gw_rf@|6?M zW9cVDso{cM(+W%t7szM*_|4ypm5~p8J`24bB~|Xvs(?bb=kI=7fim#? z?S4h*Cfcs3(+F8vK$wCWE`_C)+D(6;Ox%&lSZLy{GK)&(xnN3WpNA{~V%>c8DdhI0 zoV@xz;P}Ncp^%#+w74-OVJ#i}n=ma@b|Q~{WhjK=Z6N&#PKm2zNa%S3rTs&5PUg%B zFKRunekBUMaf%LLKK1}hsOzQ38S zI&6M~C4%!g3p7-Z5`7cZeQ4gclsK)22S|T{B|4P3Tp}Jy3}8TAGicJHKR`xU5*Znv z#r#3WW6%LILS4DJFB`&{J2u@oj~8F9Tm^TF_Pe0~u2}pO)ToivfUL@>=JWPW{m~rI zHxCSAI`eT#CH48C97bP~959UOe!&ZvAUp5Q;7}#o^Z2p#JOL}s5S-Fxsi~Ony1}7; z`5+nWHeaX6!xE82*y>-m;VZb1OjMrq`V6nr9tZ|~phCd>;~YaGB_A}CO38=d{7}iD zA-LsCTYi;Mpa0@MbA$1fIEV5BQgcV&FQU2;@PY0Y#%u+q)OyCk|yy6FloK2zOEVLulMN$(A5oo3Y=8mG#F8{+f)tRchTXmMTvqNZ0wEm}h<>-oO&IIA!IcgP&MiB|u*Gy8Zoi|f9hk|f6oI5PLU}PMa$z^ccAN~j#utZxsmA8kV zuL6d=D39DjQP1rkX~(#st@dvwr$=*-$usVCQM6ZM`dw*y z&?6lHf4?i@M7e|*eWOR2=H1zo`2?6zUEvpY3o+-^{gu2P9?h9}_p^RcpH?EMV_BMa zOiPaBKqcwmNFL%z$oon04eR@NYf0zc0lIFLq(PE|^J*M#pJGPMc@JU6p@tl6w%K8~ zm$lJ5TUUnIboy}^)PV)KXfTmZs}&iXFci#I`vJIsfBl-WWD60V6JLizq&A`B&jEF1 zyix$A@w^3EEMmwFx@G1ER0SO1jQ>irV%z#(wfDtYTDWBn#6WiQ$j%USfrdg)(^EKt z0TqkT2?6*<$y(Ne?3sO;ce-Lc)0uca>%Dy_9-L6(KF;20YR3a&}^TJk@ZW+{17Zr`ix2TU#VmL%1=P)7-_6f z$zaFXhicGuqxa?!&QZ_uHZ+JE#tT7mN2%ba`?C$b%sUiQ)vZm?Cj(8bm1jL_=S`|Az(3NERi?dzcjH_(&~QgBHl;KBWJE z6-5eDl^I)%;-@G&8oiGndBy_Pd zkm3ZRgrJo}!|`|dN1gY6@4#1|4x?Tm55GmQelXeM3lc*=wXh#k5W^9lY_mH+TV2=gmkTp_IU_tvQ+#&Vi`gL~G7CR>o7c0hrBi#sZ4$ z#3|k)xyxU`afpq$suh(0xZ7K6(Xdkj8t}#G5PvVS}gm^&R2?O_2Jw=)9wZ z{Yj=cpa(s_V2NqRsHQJy=yqI^6c>3=fHUJJuah<+<%| o5C{@h-ygF7|EK?_BeAhZAuwnZpcw6wO_~GED>|2RRL!6L4>7(5Hvj+t literal 0 HcmV?d00001 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| + + + +## 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| + + + +## 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| + + + +## 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| + + + +## 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| + + + +## 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| + + + +## 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

+ + + +## 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

+ + + +

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| + + + +## 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

+ + + +## 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| + + + +## 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| + + + +

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

+ + + +## 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| + + + +# 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| + +

MetaPartial

+ + + + + + +```json +{ + "deleted": true, + "deletedOn": "2019-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| + +

MetaExcluding_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", + "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)| + + + +## 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)| + + + +## 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| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +## 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| + + + +

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| + + + +

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)| + + + +## 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| + + + +

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

+ + + +## 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)| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +## 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| + + + +

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)| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +# 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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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)| + + + +## 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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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| + + + +## 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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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)| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +

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)| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +

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)| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +

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)| + + + +## 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| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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)| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +

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)| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +

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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +

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)| + + + +## 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| + + + +## 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| + + + +## 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)| + + + +## 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| + + + +## 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)| + + + +## 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)| + + + +## 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| + + + +# 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| + + + +## 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

+ + + +## 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| + + + +## 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

+ + + +

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

+ + + +## 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| + + + +## 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

+ + + +## 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| + + + +## 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 +{} +``` + + + +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|body|body|object|false|none| + +> Example responses + +> 200 Response + +``` +"string" +``` + + + +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|string| + + + +## 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| + + + +# 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); +}); From 053c71d2674e60eb1677a6c1badde708956eb4d4 Mon Sep 17 00:00:00 2001 From: ashish-sf <66070912+ashish-sf@users.noreply.github.com> Date: Fri, 4 Jun 2021 23:11:48 +0530 Subject: [PATCH 6/7] fix(authentication-service): fixed authentication acceptance test (#231) --- .../__tests__/acceptance/auth.acceptance.ts | 4 --- .../src/__tests__/fixtures/application.ts | 1 + .../datasources/auth-cache-mock.datasource.ts | 27 +++++++++++++++++++ 3 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 services/authentication-service/src/__tests__/fixtures/datasources/auth-cache-mock.datasource.ts diff --git a/services/authentication-service/src/__tests__/acceptance/auth.acceptance.ts b/services/authentication-service/src/__tests__/acceptance/auth.acceptance.ts index 0775953e93..4b539cbc49 100644 --- a/services/authentication-service/src/__tests__/acceptance/auth.acceptance.ts +++ b/services/authentication-service/src/__tests__/acceptance/auth.acceptance.ts @@ -111,7 +111,6 @@ describe('Authentication microservice', () => { .expect(200); const response = await client.post(`/auth/token`).send({ clientId: 'web', - username: 'test_user', code: reqForCode.body.code, }); expect(response.body).to.have.properties([ @@ -170,7 +169,6 @@ describe('Authentication microservice', () => { .expect(200); const reqForToken = await client.post(`/auth/token`).send({ clientId: 'web', - username: 'test_user', code: reqForCode.body.code, }); await client @@ -198,7 +196,6 @@ describe('Authentication microservice', () => { .expect(200); const reqForToken = await client.post(`/auth/token`).send({ clientId: 'web', - username: 'test_user', code: reqForCode.body.code, }); const response = await client @@ -325,7 +322,6 @@ describe('Authentication microservice', () => { .post(`/auth/token`) .send({ clientId: 'web', - username: 'test_user', code: reqForCode.body.code, }) .expect(200); diff --git a/services/authentication-service/src/__tests__/fixtures/application.ts b/services/authentication-service/src/__tests__/fixtures/application.ts index eb37aae3ab..91c375fd8b 100644 --- a/services/authentication-service/src/__tests__/fixtures/application.ts +++ b/services/authentication-service/src/__tests__/fixtures/application.ts @@ -9,6 +9,7 @@ import { import {ServiceMixin} from '@loopback/service-proxy'; import path from 'path'; import {AuthenticationServiceComponent} from '../../component'; +import '../../load-env'; export {ApplicationConfig}; diff --git a/services/authentication-service/src/__tests__/fixtures/datasources/auth-cache-mock.datasource.ts b/services/authentication-service/src/__tests__/fixtures/datasources/auth-cache-mock.datasource.ts new file mode 100644 index 0000000000..2cd9b9b05f --- /dev/null +++ b/services/authentication-service/src/__tests__/fixtures/datasources/auth-cache-mock.datasource.ts @@ -0,0 +1,27 @@ +import {inject, lifeCycleObserver, LifeCycleObserver} from '@loopback/core'; +import {juggler} from '@loopback/repository'; + +const config = { + name: 'redis', + connector: 'kv-memory', +}; + +// Observe application's life cycle to disconnect the datasource when +// application is stopped. This allows the application to be shut down +// gracefully. The `stop()` method is inherited from `juggler.DataSource`. +// Learn more at https://loopback.io/doc/en/lb4/Life-cycle.html +@lifeCycleObserver('datasource') +export class AuthCacheDataSource + extends juggler.DataSource + implements LifeCycleObserver +{ + static dataSourceName = 'AuthCache'; + static readonly defaultConfig = config; + + constructor( + @inject('datasources.config.AuthCache', {optional: true}) + dsConfig: object = config, + ) { + super(dsConfig); + } +} From 02858bcbb2ca800499bebdbfeb008dc996baf517 Mon Sep 17 00:00:00 2001 From: ashish-sf <66070912+ashish-sf@users.noreply.github.com> Date: Fri, 4 Jun 2021 23:23:29 +0530 Subject: [PATCH 7/7] feat(authentication-service): validate access token (#230) --- .../__tests__/acceptance/auth.acceptance.ts | 46 ++++++++++++++++++- .../src/modules/auth/login.controller.ts | 5 ++ 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/services/authentication-service/src/__tests__/acceptance/auth.acceptance.ts b/services/authentication-service/src/__tests__/acceptance/auth.acceptance.ts index 4b539cbc49..3ade13713a 100644 --- a/services/authentication-service/src/__tests__/acceptance/auth.acceptance.ts +++ b/services/authentication-service/src/__tests__/acceptance/auth.acceptance.ts @@ -200,9 +200,53 @@ describe('Authentication microservice', () => { }); const response = await client .post(`/auth/token-refresh`) - .send({refreshToken: reqForToken.body.refreshToken}); + .send({refreshToken: reqForToken.body.refreshToken}) + .set('Authorization', `Bearer ${reqForToken.body.accessToken}`); expect(response.body).to.have.properties(['accessToken', 'refreshToken']); }); + it('should return 401 for token refresh request when Authentication token invalid', async () => { + const reqData = { + // eslint-disable-next-line + client_id: 'web', // eslint-disable-next-line + client_secret: 'test', + username: 'test_user', + password: 'temp123!@', + }; + const reqForCode = await client + .post(`/auth/login`) + .send(reqData) + .expect(200); + const reqForToken = await client.post(`/auth/token`).send({ + clientId: 'web', + code: reqForCode.body.code, + }); + await client + .post(`/auth/token-refresh`) + .send({refreshToken: reqForToken.body.refreshToken}) + .set('Authorization', 'Bearer abc') + .expect(401); + }); + it('should return 401 for token refresh request when Authentication token missing', async () => { + const reqData = { + // eslint-disable-next-line + client_id: 'web', // eslint-disable-next-line + client_secret: 'test', + username: 'test_user', + password: 'temp123!@', + }; + const reqForCode = await client + .post(`/auth/login`) + .send(reqData) + .expect(200); + const reqForToken = await client.post(`/auth/token`).send({ + clientId: 'web', + code: reqForCode.body.code, + }); + await client + .post(`/auth/token-refresh`) + .send({refreshToken: reqForToken.body.refreshToken}) + .expect(401); + }); it('should send forgot password request successfully', async () => { const reqData = { // eslint-disable-next-line diff --git a/services/authentication-service/src/modules/auth/login.controller.ts b/services/authentication-service/src/modules/auth/login.controller.ts index f1a26bc69c..3ff5112e3a 100644 --- a/services/authentication-service/src/modules/auth/login.controller.ts +++ b/services/authentication-service/src/modules/auth/login.controller.ts @@ -311,6 +311,7 @@ export class LoginController { async exchangeToken( @requestBody() req: AuthRefreshTokenRequest, @param.header.string('device_id') deviceId?: string, + @param.header.string('Authorization') token?: string, ): Promise { const refreshPayload: RefreshToken = await this.refreshTokenRepo.get( req.refreshToken, @@ -326,6 +327,10 @@ export class LoginController { if (!authClient) { throw new HttpErrors.Unauthorized(AuthErrorKeys.ClientInvalid); } + const accessToken = token?.split(' ')[1]; + if (!accessToken || refreshPayload.accessToken !== accessToken) { + throw new HttpErrors.Unauthorized(AuthErrorKeys.TokenInvalid); + } await this.revokedTokensRepo.set(refreshPayload.accessToken, { token: refreshPayload.accessToken, });