├── babel.config.json
├── .vscode
├── settings.json
└── launch.json
├── docs
├── .gitignore
├── examples
│ ├── overview.md
│ ├── setup-retriability.md
│ ├── create-and-get.md
│ ├── exporting-and-importing-config.md
│ ├── setup-authentication.md
│ ├── import-configuration-and-send.md
│ └── send-event-and-consume.md
├── common-objects
│ ├── common-objects-overview.md
│ ├── common-query-params.md
│ ├── page-metadata.md
│ ├── retry-configuration.md
│ └── region-utils.md
├── _data
│ ├── common-query-parameters.json
│ ├── retry-configuration.json
│ ├── failure-reason.json
│ ├── consumer-paged-response.json
│ ├── basic-authentication.json
│ ├── certificate-authentication.json
│ ├── page-response.json
│ ├── page-metadata.json
│ ├── configuration.json
│ ├── region-utils.json
│ ├── destination-service.json
│ ├── consumer-event-metadata.json
│ ├── oauth-authentication.json
│ ├── affected-resource.json
│ ├── subscription.json
│ ├── condition.json
│ ├── consumer-query-parameters.json
│ ├── action.json
│ ├── resource-event.json
│ └── consumer-event.json
├── configuration-api
│ ├── objects-overview.md
│ ├── state.md
│ ├── entity-type.md
│ ├── page-response.md
│ ├── action.md
│ ├── subscription.md
│ ├── configuration.md
│ └── condition.md
├── 404.html
├── authentication
│ ├── authentication-overview.md
│ ├── certificate-authentication.md
│ ├── basic-authentication.md
│ ├── destination-service-authentication.md
│ └── oauth-authentication.md
├── Gemfile
├── event-api-objects
│ ├── objects-overview.md
│ ├── severity.md
│ ├── category.md
│ ├── consumer-query-parameters.md
│ ├── affected-resource.md
│ ├── resource-event.md
│ ├── consumer-paged-response.md
│ └── consumer-event.md
├── README.md
├── _config.yml
├── _includes
│ └── footer_custom.html
├── overview.md
└── Gemfile.lock
├── jks-js.d.ts
├── .prettierrc.json
├── .npmignore
├── __tests__
├── tsconfig.test.json
├── utils
│ ├── region.test.ts
│ └── axios-utils.test.ts
├── keyStore.test.ts
├── test-utils.ts
├── producer-api
│ └── event-producer-client.test.ts
├── configuration-api
│ └── configuration-client.test.ts
├── authentication.test.ts
└── client.test.ts
├── tsconfig.json
├── jest.config.js
├── src
├── utils
│ ├── common.ts
│ ├── key-store.ts
│ ├── axios-utils.ts
│ └── destination-configuration.ts
├── index.ts
├── producer-api
│ ├── event-producer-client.ts
│ └── models.ts
├── configuration-api
│ ├── models.ts
│ └── configuration-client.ts
└── authentication.ts
├── .eslintrc.json
├── .gitignore
├── .github
└── workflows
│ └── node.js.yml
├── .reuse
└── dep5
├── package.json
├── README.md
└── LICENSES
└── Apache-2.0.txt
/babel.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["@babel/preset-env"]
3 | }
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor.formatOnSave": true,
3 | }
--------------------------------------------------------------------------------
/docs/.gitignore:
--------------------------------------------------------------------------------
1 | _site
2 | .sass-cache
3 | .jekyll-cache
4 | .jekyll-metadata
5 | vendor
6 |
--------------------------------------------------------------------------------
/jks-js.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'jks-js' {
2 | export function toPem(encodedKeystore: Buffer, password: string): any;
3 | }
4 |
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "singleQuote": true,
3 | "tabWidth": 4,
4 | "trailingComma": "none",
5 | "printWidth": 100,
6 | "semi": true
7 | }
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | logs
2 | *.log
3 | npm-debug.log*
4 | yarn-debug.log*
5 | yarn-error.log*
6 | .vscode
7 | __tests__/
8 | docs/
9 | node_modules/
10 | jest.config.js
11 | tsconfig.json
12 | .eslintrc.json
13 | .prettierrc.json
14 | .reuse
--------------------------------------------------------------------------------
/__tests__/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "declaration": true,
4 | "module": "commonjs",
5 | "esModuleInterop": true,
6 | "target": "es6",
7 | "moduleResolution": "node",
8 | "outDir": "dist",
9 | }
10 | }
--------------------------------------------------------------------------------
/docs/examples/overview.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Examples
4 | nav_order: 5
5 | has_children: true
6 | has_toc: true
7 | permalink: /examples/
8 | ---
9 |
10 | ## Overview
11 |
12 | In this section we have provided some examples and tutorials on how to setup and use the Alert Notification service node client.
13 |
--------------------------------------------------------------------------------
/docs/common-objects/common-objects-overview.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Common objects
4 | nav_order: 3
5 | has_children: true
6 | has_toc: true
7 | permalink: /common-objects/
8 | ---
9 |
10 | ## Overview
11 |
12 | This section describes the common objects which are used/received accross Alert Notification service APIs.
13 |
--------------------------------------------------------------------------------
/docs/_data/common-query-parameters.json:
--------------------------------------------------------------------------------
1 | {
2 | "propertyFields": [
3 | {
4 | "name": "page?",
5 | "type": "number",
6 | "description": "Looked up page"
7 | },
8 | {
9 | "name": "pageSize?",
10 | "type": "number",
11 | "description": "Size of a page"
12 | }
13 | ]
14 | }
--------------------------------------------------------------------------------
/docs/_data/retry-configuration.json:
--------------------------------------------------------------------------------
1 | {
2 | "propertyFields": [
3 | {
4 | "name": "maxRetries",
5 | "type": "number",
6 | "description": "Maximum number of retries"
7 | },
8 | {
9 | "name": "retryBackoff",
10 | "type": "number",
11 | "description": "Timeout in milliseconds used to wait before executing the next retry"
12 | }
13 | ]
14 | }
--------------------------------------------------------------------------------
/docs/configuration-api/objects-overview.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Configuration's API objects
4 | has_toc: true
5 | has_children: true
6 | nav_order: 4
7 | permalink: /configuration-api-objects/
8 | ---
9 |
10 | # Configuration API overview
11 |
12 | Alert Notification service Configuration API is responsible for managing customer's configuration.
13 |
14 | ## Configuration API's objects
15 |
16 | In this section you will learn about the objects which have to be used in order to manage your configuration.
--------------------------------------------------------------------------------
/docs/404.html:
--------------------------------------------------------------------------------
1 | ---
2 | permalink: /404.html
3 | layout: default
4 | ---
5 |
6 |
19 |
20 |
21 |
404
22 |
23 |
Page not found :(
24 |
The requested page could not be found.
25 |
26 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.2.0",
3 | "configurations": [
4 | {
5 | "name": "Debug Jest Tests",
6 | "type": "node",
7 | "request": "launch",
8 | "runtimeArgs": [
9 | "--inspect-brk",
10 | "${workspaceRoot}/node_modules/.bin/jest",
11 | "--runInBand"
12 | ],
13 | "console": "externalTerminal",
14 | "internalConsoleOptions": "neverOpen",
15 | "port": 9229
16 | }
17 | ]
18 | }
--------------------------------------------------------------------------------
/docs/authentication/authentication-overview.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Authentication
4 | nav_order: 2
5 | has_children: true
6 | has_toc: true
7 | permalink: /authentication/
8 | ---
9 |
10 | ## Overview
11 |
12 | Alert Notification service supports four types of authentication:
13 |
14 | * _Basic_
15 | * _OAuth_
16 | * _mTLS_
17 | * _mTLS, Basic, OAuth using the Destination Service_
18 | ## Resources
19 |
20 | * [Credential management](https://help.sap.com/viewer/5967a369d4b74f7a9c2b91f5df8e6ab6/Cloud/en-US/b90ed0f3a9604f8e844c73a78d5fad45.html)
--------------------------------------------------------------------------------
/docs/Gemfile:
--------------------------------------------------------------------------------
1 | # If you have any plugins, put them here!
2 | group :jekyll_plugins do
3 | gem "github-pages"
4 | gem "jekyll-feed", "~> 0.12"
5 | gem "jekyll-include-cache"
6 | end
7 |
8 | # Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
9 | # and associated library.
10 | platforms :mingw, :x64_mingw, :mswin, :jruby do
11 | gem "tzinfo", "~> 1.2"
12 | gem "tzinfo-data"
13 | end
14 |
15 | # Performance-booster for watching directories on Windows
16 | gem 'wdm', '>= 0.1.0' if Gem.win_platform?
17 | gem "webrick", "~> 1.7"
18 |
--------------------------------------------------------------------------------
/docs/event-api-objects/objects-overview.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Event API's objects
4 | has_toc: true
5 | has_children: true
6 | nav_order: 5
7 | permalink: /event-api-objects
8 | ---
9 |
10 | # Event API overview
11 |
12 | Alert Notification service Event API is responsible for ingesting customer events for further processing. They will further be evaluated for any matching criteria regarding the received event and will be delivered accordingly.
13 |
14 | ## Event API's objects
15 |
16 | In this section you will learn about the objects which have to be used in order to send/get event/_s_.
--------------------------------------------------------------------------------
/docs/_data/failure-reason.json:
--------------------------------------------------------------------------------
1 | {
2 | "propertyFields": [
3 | {
4 | "name": "code",
5 | "type": "number",
6 | "description": "The error code that represents the failure"
7 | },
8 | {
9 | "name": "reason",
10 | "type": "string",
11 | "description": "The reason why the delivery of the event has failed"
12 | },
13 | {
14 | "name": "timestamp",
15 | "type": "number",
16 | "description": "Time in UNIX epoch format that specifies when the event failure occurred"
17 | }
18 | ]
19 | }
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "declaration": true,
4 | "module": "commonjs",
5 | "esModuleInterop": true,
6 | "target": "es6",
7 | "moduleResolution": "node",
8 | "sourceMap": true,
9 | "outDir": "dist",
10 | "noImplicitReturns": true,
11 | "noImplicitAny": true,
12 | "strict": true,
13 | "noUnusedLocals": true,
14 | "forceConsistentCasingInFileNames": true
15 | },
16 | "include": [
17 | "src/**/*",
18 | "jks-js.d.ts"
19 | ],
20 | "exclude": [
21 | "node_modules", "__tests__"
22 | ],
23 | "lib": ["es2015"]
24 | }
--------------------------------------------------------------------------------
/docs/_data/consumer-paged-response.json:
--------------------------------------------------------------------------------
1 | {
2 | "propertyFields": [
3 | {
4 | "name": "responseMetadata",
5 | "type": "[PageMetadata](/alert-notification-node-client/common-objects/page-metadata) (object)",
6 | "description": "Represents page's metadata, e.g. what is the currently looked page, how many pages there are, etc."
7 | },
8 | {
9 | "name": "results",
10 | "type": "[ConsumerEvent](/alert-notification-node-client/event-api-objects/consumer-event)[] (array