diff --git a/.github/workflows/test-docs.yml b/.github/workflows/test-docs.yml new file mode 100644 index 000000000..7628a3423 --- /dev/null +++ b/.github/workflows/test-docs.yml @@ -0,0 +1,40 @@ +name: Test docs +on: + push: + paths: + - 'keep/**' + pull_request: + paths: + - 'keep/**' + workflow_dispatch: +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref }}-${{ github.job }} + cancel-in-progress: true +env: + PYTHON_VERSION: 3.11 + STORAGE_MANAGER_DIRECTORY: /tmp/storage-manager + +jobs: + tests: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + - uses: chartboost/ruff-action@v1 + with: + src: "./keep" + - name: Set up Python ${{ env.PYTHON_VERSION }} + uses: actions/setup-python@v4 + with: + python-version: ${{ env.PYTHON_VERSION }} + - name: Install mintlify and validate docs + run: | + npm i -g mintlify + cd docs && mintlify broken-links; + cd ../scripts; + ./docs_validate_navigation.sh; + python3 docs_get_providers_list.py --validate; + + # Todo: validate if openapi schema is matching with the code + \ No newline at end of file diff --git a/.github/workflows/test-pr-e2e.yml b/.github/workflows/test-pr-e2e.yml index 491745d45..eb37a8101 100644 --- a/.github/workflows/test-pr-e2e.yml +++ b/.github/workflows/test-pr-e2e.yml @@ -123,6 +123,12 @@ jobs: # create the state directory # mkdir -p ./state && chown -R root:root ./state && chmod -R 777 ./state + + - name: Testing if API docs are actual + run: | + # Keeping this test here to avoid spinning Keep's backend it in the docs-test job + ./scripts/docs_validate_openapi_is_actual.sh + - name: Run e2e tests and report coverage run: | poetry run coverage run --branch -m pytest -s tests/e2e_tests/ diff --git a/docs/api-ref/ai/create-alert.mdx b/docs/api-ref/ai/create-alert.mdx deleted file mode 100644 index f2c30f407..000000000 --- a/docs/api-ref/ai/create-alert.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /ai/create-alert ---- diff --git a/docs/api-ref/ai/repair-alert.mdx b/docs/api-ref/ai/repair-alert.mdx deleted file mode 100644 index 6844700eb..000000000 --- a/docs/api-ref/ai/repair-alert.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -openapi: post /ai/repair-alert ---- diff --git a/docs/api-ref/alerts/get-alert-audit.mdx b/docs/api-ref/alerts/get-alert-audit.mdx new file mode 100644 index 000000000..e3566b8b4 --- /dev/null +++ b/docs/api-ref/alerts/get-alert-audit.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /alerts/{fingerprint}/audit +--- \ No newline at end of file diff --git a/docs/api-ref/alerts/unenrich-alert.mdx b/docs/api-ref/alerts/unenrich-alert.mdx new file mode 100644 index 000000000..1a7682337 --- /dev/null +++ b/docs/api-ref/alerts/unenrich-alert.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /alerts/unenrich +--- \ No newline at end of file diff --git a/docs/api-ref/dashboard/create-dashboard.mdx b/docs/api-ref/dashboard/create-dashboard.mdx new file mode 100644 index 000000000..2f910af2d --- /dev/null +++ b/docs/api-ref/dashboard/create-dashboard.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /dashboard +--- \ No newline at end of file diff --git a/docs/api-ref/dashboard/delete-dashboard.mdx b/docs/api-ref/dashboard/delete-dashboard.mdx new file mode 100644 index 000000000..f2c059738 --- /dev/null +++ b/docs/api-ref/dashboard/delete-dashboard.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /dashboard/{dashboard_id} +--- \ No newline at end of file diff --git a/docs/api-ref/dashboard/read-dashboards.mdx b/docs/api-ref/dashboard/read-dashboards.mdx new file mode 100644 index 000000000..da275d36f --- /dev/null +++ b/docs/api-ref/dashboard/read-dashboards.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /dashboard +--- \ No newline at end of file diff --git a/docs/api-ref/dashboard/update-dashboard.mdx b/docs/api-ref/dashboard/update-dashboard.mdx new file mode 100644 index 000000000..ea9d45631 --- /dev/null +++ b/docs/api-ref/dashboard/update-dashboard.mdx @@ -0,0 +1,3 @@ +--- +openapi: put /dashboard/{dashboard_id} +--- \ No newline at end of file diff --git a/docs/api-ref/groups/get-groups.mdx b/docs/api-ref/groups/get-groups.mdx new file mode 100644 index 000000000..c7d6e3113 --- /dev/null +++ b/docs/api-ref/groups/get-groups.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /groups/ +--- \ No newline at end of file diff --git a/docs/api-ref/incidents/add-alerts-to-incident.mdx b/docs/api-ref/incidents/add-alerts-to-incident.mdx new file mode 100644 index 000000000..f77431dba --- /dev/null +++ b/docs/api-ref/incidents/add-alerts-to-incident.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /incidents/{incident_id}/alerts +--- \ No newline at end of file diff --git a/docs/api-ref/incidents/create-incident-endpoint.mdx b/docs/api-ref/incidents/create-incident-endpoint.mdx new file mode 100644 index 000000000..20739ac75 --- /dev/null +++ b/docs/api-ref/incidents/create-incident-endpoint.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /incidents +--- \ No newline at end of file diff --git a/docs/api-ref/incidents/delete-alerts-from-incident.mdx b/docs/api-ref/incidents/delete-alerts-from-incident.mdx new file mode 100644 index 000000000..99aae7702 --- /dev/null +++ b/docs/api-ref/incidents/delete-alerts-from-incident.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /incidents/{incident_id}/alerts +--- \ No newline at end of file diff --git a/docs/api-ref/incidents/delete-incident.mdx b/docs/api-ref/incidents/delete-incident.mdx new file mode 100644 index 000000000..11a7ad94e --- /dev/null +++ b/docs/api-ref/incidents/delete-incident.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /incidents/{incident_id} +--- \ No newline at end of file diff --git a/docs/api-ref/incidents/get-all-incidents.mdx b/docs/api-ref/incidents/get-all-incidents.mdx new file mode 100644 index 000000000..932482798 --- /dev/null +++ b/docs/api-ref/incidents/get-all-incidents.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /incidents +--- \ No newline at end of file diff --git a/docs/api-ref/incidents/get-incident-alerts.mdx b/docs/api-ref/incidents/get-incident-alerts.mdx new file mode 100644 index 000000000..2ec1bb9d1 --- /dev/null +++ b/docs/api-ref/incidents/get-incident-alerts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /incidents/{incident_id}/alerts +--- \ No newline at end of file diff --git a/docs/api-ref/incidents/get-incident.mdx b/docs/api-ref/incidents/get-incident.mdx new file mode 100644 index 000000000..0e5b2a991 --- /dev/null +++ b/docs/api-ref/incidents/get-incident.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /incidents/{incident_id} +--- \ No newline at end of file diff --git a/docs/api-ref/incidents/update-incident-1.mdx b/docs/api-ref/incidents/update-incident-1.mdx new file mode 100644 index 000000000..9f6e0e566 --- /dev/null +++ b/docs/api-ref/incidents/update-incident-1.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /incidents/{incident_id}/confirm +--- \ No newline at end of file diff --git a/docs/api-ref/incidents/update-incident.mdx b/docs/api-ref/incidents/update-incident.mdx new file mode 100644 index 000000000..9201b3030 --- /dev/null +++ b/docs/api-ref/incidents/update-incident.mdx @@ -0,0 +1,3 @@ +--- +openapi: put /incidents/{incident_id} +--- \ No newline at end of file diff --git a/docs/api-ref/metrics/get-metrics.mdx b/docs/api-ref/metrics/get-metrics.mdx new file mode 100644 index 000000000..4bbb01c3c --- /dev/null +++ b/docs/api-ref/metrics/get-metrics.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /metrics +--- \ No newline at end of file diff --git a/docs/api-ref/preset/create-preset-tab.mdx b/docs/api-ref/preset/create-preset-tab.mdx new file mode 100644 index 000000000..043d23b7d --- /dev/null +++ b/docs/api-ref/preset/create-preset-tab.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /preset/{preset_id}/tab +--- \ No newline at end of file diff --git a/docs/api-ref/preset/delete-tab.mdx b/docs/api-ref/preset/delete-tab.mdx new file mode 100644 index 000000000..646b51c76 --- /dev/null +++ b/docs/api-ref/preset/delete-tab.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /preset/{preset_id}/tab/{tab_id} +--- \ No newline at end of file diff --git a/docs/api-ref/preset/get-preset-alerts.mdx b/docs/api-ref/preset/get-preset-alerts.mdx new file mode 100644 index 000000000..262e516b2 --- /dev/null +++ b/docs/api-ref/preset/get-preset-alerts.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /preset/{preset_name}/alerts +--- \ No newline at end of file diff --git a/docs/api-ref/providers/get-alert-count.mdx b/docs/api-ref/providers/get-alert-count.mdx new file mode 100644 index 000000000..e7372237b --- /dev/null +++ b/docs/api-ref/providers/get-alert-count.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /providers/{provider_type}/{provider_id}/alerts/count +--- \ No newline at end of file diff --git a/docs/api-ref/tags/get-tags.mdx b/docs/api-ref/tags/get-tags.mdx new file mode 100644 index 000000000..8825646fa --- /dev/null +++ b/docs/api-ref/tags/get-tags.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /tags +--- \ No newline at end of file diff --git a/docs/api-ref/topology/get-topology-data.mdx b/docs/api-ref/topology/get-topology-data.mdx new file mode 100644 index 000000000..40519c6ad --- /dev/null +++ b/docs/api-ref/topology/get-topology-data.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /topology +--- \ No newline at end of file diff --git a/docs/api-ref/workflows/create-workflow-from-body.mdx b/docs/api-ref/workflows/create-workflow-from-body.mdx new file mode 100644 index 000000000..27a3f8dc8 --- /dev/null +++ b/docs/api-ref/workflows/create-workflow-from-body.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /workflows/json +--- \ No newline at end of file diff --git a/docs/api-ref/workflows/get-random-workflow-templates.mdx b/docs/api-ref/workflows/get-random-workflow-templates.mdx new file mode 100644 index 000000000..0076ea95b --- /dev/null +++ b/docs/api-ref/workflows/get-random-workflow-templates.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /workflows/random-templates +--- \ No newline at end of file diff --git a/docs/cli/commands/extraction-create.mdx b/docs/cli/commands/extraction-create.mdx index 27ba3681e..eeb31230b 100644 --- a/docs/cli/commands/extraction-create.mdx +++ b/docs/cli/commands/extraction-create.mdx @@ -31,7 +31,7 @@ Usage: keep extraction create [OPTIONS] * Default: `0` * Usage: `--priority ` - The priority of the extraction, higher priority means this rule will execute first. [0<=x<=100]. + The priority of the extraction, higher priority means this rule will execute first. `0<=x<=100`. * `pre` * Type: BOOL diff --git a/docs/cli/commands/mappings-create.mdx b/docs/cli/commands/mappings-create.mdx index 21069cc74..10cf7bd4e 100644 --- a/docs/cli/commands/mappings-create.mdx +++ b/docs/cli/commands/mappings-create.mdx @@ -45,7 +45,7 @@ Usage: keep mappings create [OPTIONS] * Default: `0` * Usage: `--priority ` - The priority of the mapping, higher priority means this rule will execute first. [0<=x<=100]. + The priority of the mapping, higher priority means this rule will execute first. `0<=x<=100`. * `help`: * Type: BOOL diff --git a/docs/development/getting-started.mdx b/docs/development/getting-started.mdx index 342b00062..ac18dd6ee 100644 --- a/docs/development/getting-started.mdx +++ b/docs/development/getting-started.mdx @@ -16,6 +16,45 @@ Next, run docker compose -f docker-compose.dev.yml up ``` +### Install Keep CLI + +First, clone Keep repository: + +```shell +git clone https://github.com/keephq/keep.git && cd keep +``` + +Install Keep CLI + +```shell +poetry install +``` + +From now on, Keep should be installed locally and accessible from your CLI, test it by executing: + +``` +keep version +``` + +## Enable Auto Completion + +**Keep's CLI supports shell auto-completion, which can make your life a whole lot easier 😌** + +If you're using zsh + +```shell title=~/.zshrc +eval "$(_KEEP_COMPLETE=zsh_source keep)" +``` + +If you're using bash + +```bash title=~/.bashrc +eval "$(_KEEP_COMPLETE=bash_source keep)" +``` + +> Using eval means that the command is invoked and evaluated every time a shell is started, which can delay shell responsiveness. To speed it up, write the generated script to a file, then source that. + + ### Testing Run unittests: diff --git a/docs/development/installation.mdx b/docs/development/installation.mdx deleted file mode 100644 index ce0184b4e..000000000 --- a/docs/development/installation.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: "Deployment" -sidebarTitle: "Overview" -description: "After writing some alerts with Keep, you may now want to use Keep in production! For that, you can easily deploy Keep on an environment other than your local station." ---- - -Keep currently supports [Docker](#docker) and [Render](#render). - - - Want to deploy Keep on a specific platform that is not yet supported? [Just - open an - issue](https://github.com/keephq/keep/issues/new?assignees=&labels=&template=feature_request.md&title=feature:%20new%20deployment%20option) - and we will get to it ASAP! - - -## E2E - -### Docker - -## CLI - -Run _Keep_ alerting engine (The CLI) - -### Docker - -Configure the Slack provider (See "[Run locally](https://github.com/keephq/keep#get-a-slack-incoming-webhook-using-this-tutorial-and-use-keep-to-configure-it)" on how to obtain the webhook URL) - -```bash -docker run -v ${PWD}:/app -it us-central1-docker.pkg.dev/keephq/keep/keep-cli config provider --provider-type slack --provider-id slack-demo -``` - -You should now have a providers.yaml file created locally - -Run Keep and execute our example "Paper DB has insufficient disk space" alert - -```bash -docker run -v ${PWD}:/app -it us-central1-docker.pkg.dev/keephq/keep/keep-cli -j run --alert-url https://raw.githubusercontent.com/keephq/keep/main/examples/alerts/db_disk_space.yml -``` - -### Render - -Click the Deploy to Render button to deploy Keep as a background worker running in [Render](https://www.render.com) - -[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/keephq/keep) - -To run Keep and execute our example "Paper DB has insufficient disk space" alert, you will need to configure you Slack provider. -When clicking the Deploy to Render button, you will be asked to provide the `KEEP_PROVIDER_SLACK_DEMO` environment variable, this is the expected format: - -```json -{ "authentication": { "webhook_url": "https://hooks.slack.com/services/..." } } -``` - -\*\* `KEEP_PROVIDER_PROVIDER_ID` is the way you can configure providers using environment variables
-\*\* Refer to [Run locally](https://github.com/keephq/keep#get-a-slack-incoming-webhook-using-this-tutorial-and-use-keep-to-configure-it) on how to obtain a Slack webhook URL or on how to obtain Keep's webhook. diff --git a/docs/development/overview.mdx b/docs/development/overview.mdx deleted file mode 100644 index fe47fb790..000000000 --- a/docs/development/overview.mdx +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: "Quickstart" ---- -## Run Locally - -### Docker-compose (Option 1) - -Run _Keep_ full stack (Console & API) - -```bash -docker-compose up -``` -Or - -```bash -docker-compose -f docker-compose.dev.yml up --build -``` -If you want to run *Keep* in [development mode](https://development-mode-url) (code compiles on changes) - - - **OpenAPI Integration** - - Please note that some features used by Keep requires OpenAI API key to work. Export `OPENAI_API_KEY=sk-YOUR_API_KEY` before running docker-compose to make them available. - - For example: - - ```bash - OPENAI_API_KEY=sk-YOUR_API_KEY docker-compose up - ``` - - -### Clone and install (Option 2) -Try our first mock alert and get it up and running in - -**First, clone Keep repository:** - -```shell -git clone https://github.com/keephq/keep.git && cd keep -``` - -**Install Keep CLI** - -```shell -pip install . -``` -or - -```shell -poetry install -``` - -**From now on, Keep should be installed locally and accessible from your CLI, test it by executing:** - -``` -keep version -``` - -**Get a Slack Incoming Webhook using [this tutorial](https://api.slack.com/messaging/webhooks) and use use Keep to configure it** - -``` -keep config provider --provider-type slack --provider-id slack-demo -``` -Paste the Slack Incoming Webhook URL (e.g. https://hooks.slack.com/services/...) and you're good to go 👌 - -**Let's now execute our example "Paper DB has insufficient disk space" alert** - -```bash -keep run --alerts-file examples/alerts/db_disk_space.yml -``` - -**Congrats 🥳 You should have received your first "Dunder Mifflin Paper Company" alert in Slack by now.** - -Wanna have your alerts up and running in production? Go through our more detailed [Deployment Guide](https://keephq.wiki/deployment). - -## Enable Auto Completion - -**Keep's CLI supports shell auto-completion, which can make your life a whole lot easier 😌** - -If you're using zsh - -```shell title=~/.zshrc -eval "$(_KEEP_COMPLETE=zsh_source keep)" -``` - -If you're using bash - -```bash title=~/.bashrc -eval "$(_KEEP_COMPLETE=bash_source keep)" -``` - -> Using eval means that the command is invoked and evaluated every time a shell is started, which can delay shell responsiveness. To speed it up, write the generated script to a file, then source that. diff --git a/docs/generate_readme_from_openapijson.sh b/docs/generate_readme_from_openapijson.sh deleted file mode 100755 index 439dc8f6e..000000000 --- a/docs/generate_readme_from_openapijson.sh +++ /dev/null @@ -1,7 +0,0 @@ - -#!/bin/bash - -# Before running this script, make sure you have update the openapi.json from the backend, (/docs route) - -python3 openapi_converter.py --source ./openapi.json --dest ./openapi.json -npx @mintlify/scraping@latest openapi-file ./openapi.json -o ./api-ref \ No newline at end of file diff --git a/docs/mint.json b/docs/mint.json index e8316d702..afc16151e 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -69,8 +69,8 @@ "platform/alerts", "platform/alertseverityandstatus", "platform/workflows", - "platform/workflowbuilder", - "platform/settings" + "platform/settings", + "platform/metrics" ] }, { @@ -79,73 +79,83 @@ "providers/overview", "providers/fingerprints", "providers/adding-a-new-provider", + "providers/getting-started", + "providers/what-is-a-provider", { "group": "Supported Providers", "pages": [ - "providers/documentation/appdynamics-provider", - "providers/documentation/aks-provider", - "providers/documentation/axiom-provider", - "providers/documentation/azuremonitoring-provider", - "providers/documentation/centreon-provider", - "providers/documentation/cloudwatch-provider", - "providers/documentation/console-provider", - "providers/documentation/coralogix-provider", - "providers/documentation/datadog-provider", - "providers/documentation/discord-provider", - "providers/documentation/elastic-provider", - "providers/documentation/gcpmonitoring-provider", - "providers/documentation/gitlab-provider", - "providers/documentation/google_chat-provider", - "providers/documentation/grafana_incident-provider", - "providers/documentation/grafana_oncall-provider", - "providers/documentation/grafana-provider", - "providers/documentation/http-provider", - "providers/documentation/ilert-provider", - "providers/documentation/quickchart-provider", - "providers/documentation/incidentio-provider", - "providers/documentation/jira-provider", - "providers/documentation/kibana-provider", - "providers/documentation/kubernetes-provider", - "providers/documentation/linearb-provider", - "providers/documentation/mailchimp-provider", - "providers/documentation/mock-provider", - "providers/documentation/mysql-provider", - "providers/documentation/netdata-provider", - "providers/documentation/new-relic-provider", - "providers/documentation/ntfy-provider", - "providers/documentation/openobserve-provider", - "providers/documentation/openshift-provider", - "providers/documentation/opsgenie-provider", - "providers/documentation/pagerduty-provider", - "providers/documentation/pagertree-provider", - "providers/documentation/pingdom-provider", - "providers/documentation/postgresql-provider", - "providers/documentation/pushover-provider", - "providers/documentation/redmine-provider", - "providers/documentation/resend-provider", - "providers/documentation/rollbar-provider", - "providers/documentation/sendgrid-provider", - "providers/documentation/sentry-provider", - "providers/documentation/signalfx-provider", - "providers/documentation/signl4-provider", - "providers/documentation/site24x7-provider", - "providers/documentation/slack-provider", - "providers/documentation/snowflake-provider", - "providers/documentation/statuscake-provider", - "providers/documentation/splunk-provider", - "providers/documentation/squadcast-provider", - "providers/documentation/ssh-provider", - "providers/documentation/teams-provider", - "providers/documentation/telegram-provider", - "providers/documentation/trello-provider", - "providers/documentation/twilio-provider", - "providers/documentation/uptimekuma-provider", - "providers/documentation/victoriametrics-provider", - "providers/documentation/websocket-provider", - "providers/documentation/webhook-provider", - "providers/documentation/incidentmanager-provider", - "providers/documentation/zabbix-provider", - "providers/documentation/zenduty-provider" + "providers/documentation/aks-provider", + "providers/documentation/appdynamics-provider", + "providers/documentation/axiom-provider", + "providers/documentation/azuremonitoring-provider", + "providers/documentation/centreon-provider", + "providers/documentation/cloudwatch-provider", + "providers/documentation/console-provider", + "providers/documentation/coralogix-provider", + "providers/documentation/datadog-provider", + "providers/documentation/discord-provider", + "providers/documentation/elastic-provider", + "providers/documentation/gcpmonitoring-provider", + "providers/documentation/github_workflows_provider", + "providers/documentation/gitlab-provider", + "providers/documentation/gitlabpipelines-provider", + "providers/documentation/google_chat-provider", + "providers/documentation/grafana-provider", + "providers/documentation/grafana_incident-provider", + "providers/documentation/grafana_oncall-provider", + "providers/documentation/http-provider", + "providers/documentation/ilert-provider", + "providers/documentation/incidentio-provider", + "providers/documentation/incidentmanager-provider", + "providers/documentation/jira-provider", + "providers/documentation/kibana-provider", + "providers/documentation/kubernetes-provider", + "providers/documentation/linear_provider", + "providers/documentation/linearb-provider", + "providers/documentation/mailchimp-provider", + "providers/documentation/mattermost-provider", + "providers/documentation/microsoft-planner-provider", + "providers/documentation/mock-provider", + "providers/documentation/mongodb-provider", + "providers/documentation/mysql-provider", + "providers/documentation/netdata-provider", + "providers/documentation/new-relic-provider", + "providers/documentation/ntfy-provider", + "providers/documentation/openobserve-provider", + "providers/documentation/openshift-provider", + "providers/documentation/opsgenie-provider", + "providers/documentation/pagerduty-provider", + "providers/documentation/pagertree-provider", + "providers/documentation/pingdom-provider", + "providers/documentation/planner-provider", + "providers/documentation/postgresql-provider", + "providers/documentation/pushover-provider", + "providers/documentation/quickchart-provider", + "providers/documentation/redmine-provider", + "providers/documentation/resend-provider", + "providers/documentation/rollbar-provider", + "providers/documentation/sendgrid-provider", + "providers/documentation/sentry-provider", + "providers/documentation/signalfx-provider", + "providers/documentation/signl4-provider", + "providers/documentation/site24x7-provider", + "providers/documentation/slack-provider", + "providers/documentation/snowflake-provider", + "providers/documentation/splunk-provider", + "providers/documentation/squadcast-provider", + "providers/documentation/ssh-provider", + "providers/documentation/statuscake-provider", + "providers/documentation/teams-provider", + "providers/documentation/telegram-provider", + "providers/documentation/template", + "providers/documentation/trello-provider", + "providers/documentation/twilio-provider", + "providers/documentation/uptimekuma-provider", + "providers/documentation/victoriametrics-provider", + "providers/documentation/webhook-provider", + "providers/documentation/websocket-provider", + "providers/documentation/zabbix-provider", + "providers/documentation/zenduty-provider" ] } ] @@ -154,6 +164,7 @@ "group": "Workflows", "pages": [ "workflows/overview", + "workflows/getting-started", { "group": "Syntax", "pages": [ @@ -162,13 +173,6 @@ "workflows/syntax/context-syntax" ] }, - { - "group": "Providers", - "pages": [ - "workflows/providers/getting-started", - "workflows/providers/what-is-a-provider" - ] - }, { "group": "Conditions", "pages": [ @@ -191,7 +195,10 @@ "workflows/functions/utcnow", "workflows/functions/to-utc", "workflows/functions/datetime-compare", - "workflows/functions/encode" + "workflows/functions/encode", + "workflows/functions/last", + "workflows/functions/lowercase", + "workflows/functions/uppercase" ] }, { @@ -230,11 +237,30 @@ "api-ref/providers/get-installed-providers", "api-ref/providers/install-provider-oauth2", "api-ref/providers/invoke-provider-method", - + "api-ref/providers/get-alert-count", + "api-ref/providers/export-providers", "api-ref/providers/update-provider", "api-ref/providers/validate-provider-scopes" ] }, + + { + "group": "Dashboard", + "pages": [ + "api-ref/dashboard/create-dashboard", + "api-ref/dashboard/read-dashboards", + "api-ref/dashboard/update-dashboard", + "api-ref/dashboard/delete-dashboard" + ] + }, + { + "group": "Groups", + "pages": ["api-ref/groups/get-groups"] + }, + { + "group": "Tags", + "pages": ["api-ref/tags/get-tags"] + }, { "group": "Healthcheck", "pages": ["api-ref/healthcheck/healthcheck"] @@ -252,7 +278,24 @@ "api-ref/alerts/get-all-alerts", "api-ref/alerts/receive-event", "api-ref/alerts/receive-generic-event", - "api-ref/alerts/search-alerts" + "api-ref/alerts/search-alerts", + "api-ref/alerts/webhook-challenge", + "api-ref/alerts/get-alert-audit", + "api-ref/alerts/unenrich-alert" + ] + }, + { + "group": "Incidents", + "pages": [ + "api-ref/incidents/update-incident", + "api-ref/incidents/get-incident-alerts", + "api-ref/incidents/update-incident-1", + "api-ref/incidents/delete-alerts-from-incident", + "api-ref/incidents/delete-incident", + "api-ref/incidents/create-incident-endpoint", + "api-ref/incidents/get-all-incidents", + "api-ref/incidents/get-incident", + "api-ref/incidents/add-alerts-to-incident" ] }, { @@ -270,31 +313,43 @@ }, { "group": "Whoami", - "pages": [ - "api-ref/whoami/get-tenant-id" - ] + "pages": ["api-ref/whoami/get-tenant-id"] }, { "group": "Mapping", "pages": [ "api-ref/mapping/create-mapping", - "api-ref/mapping/get-mappings" + "api-ref/mapping/get-mappings", + "api-ref/mapping/delete-mapping-by-id" ] }, { - "group": "Preset", + "group": "Metrics", "pages": [ + "api-ref/metrics/get-metrics" + ] + }, + { + "group": "Topology", + "pages": [ + "api-ref/topology/get-topology-data" + ] + }, + { + "group": "Presets", + "pages": [ + "api-ref/preset/create-preset-tab", "api-ref/preset/create-preset", "api-ref/preset/delete-preset", + "api-ref/preset/delete-tab", + "api-ref/preset/get-preset-alerts", "api-ref/preset/get-presets", "api-ref/preset/update-preset" ] }, { "group": "Pusher", - "pages": [ - "api-ref/pusher/pusher-authentication" - ] + "pages": ["api-ref/pusher/pusher-authentication"] }, { "group": "Rules", @@ -305,6 +360,15 @@ "api-ref/rules/update-rule" ] }, + { + "group": "Workflows", + "pages": [ + "api-ref/workflows/export-workflows", + "api-ref/workflows/run-workflow-from-definition", + "api-ref/workflows/get-random-workflow-templates", + "api-ref/workflows/create-workflow-from-body" + ] + }, { "group": "Webhook settings", "pages": [ @@ -333,9 +397,7 @@ }, { "group": "Status", - "pages": [ - "api-ref/status/status" - ] + "pages": ["api-ref/status/status"] }, { @@ -359,7 +421,9 @@ "api-ref/actions/get-actions", "api-ref/actions/add-actions", "api-ref/actions/update-action", - "api-ref/actions/delete-action" + "api-ref/actions/delete-action", + "api-ref/actions/create-actions", + "api-ref/actions/put-action" ] } ] @@ -376,6 +440,7 @@ { "group": "keep alert", "pages": [ + "cli/commands/cli-alert", "cli/commands/alert-enrich", "cli/commands/alert-get", "cli/commands/alert-list" @@ -384,6 +449,7 @@ { "group": "keep provider", "pages": [ + "cli/commands/cli-provider", "cli/commands/provider-connect", "cli/commands/provider-delete", "cli/commands/provider-list" @@ -392,9 +458,11 @@ { "group": "keep workflow", "pages": [ + "cli/commands/cli-workflow", "cli/commands/workflow-apply", "cli/commands/workflow-list", "cli/commands/workflow-run", + "cli/commands/workflow-runs", { "group": "keep workflow runs", "pages": ["cli/commands/runs-logs", "cli/commands/runs-list"] @@ -409,7 +477,19 @@ "cli/commands/mappings-delete" ] }, + { + "group": "keep extractions", + "pages": [ + "cli/commands/extraction-create", + "cli/commands/extraction-delete", + "cli/commands/extractions-list" + ] + }, + "cli/commands/cli", "cli/commands/cli-api", + "cli/commands/cli-config-new", + "cli/commands/cli-config-show", + "cli/commands/cli-run", "cli/commands/cli-config", "cli/commands/cli-version", "cli/commands/cli-whoami" diff --git a/docs/openapi.json b/docs/openapi.json index 380a33002..2ba776960 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Keep API","description":"Rest API powering https://platform.keephq.dev and friends 🏄‍♀️","version":"0.1.0"},"paths":{"/providers":{"get":{"tags":["providers"],"summary":"Get Providers","operationId":"get_providers_providers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/providers/export":{"get":{"tags":["providers"],"summary":"Get Installed Providers","description":"export all installed providers","operationId":"get_installed_providers_providers_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/providers/{provider_type}/{provider_id}/configured-alerts":{"get":{"tags":["providers"],"summary":"Get Alerts Configuration","description":"Get alerts configuration from a provider","operationId":"get_alerts_configuration_providers__provider_type___provider_id__configured_alerts_get","parameters":[{"required":true,"schema":{"type":"string","title":"Provider Type"},"name":"provider_type","in":"path"},{"required":true,"schema":{"type":"string","title":"Provider Id"},"name":"provider_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{},"type":"array","title":"Response Get Alerts Configuration Providers Provider Type Provider Id Configured Alerts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/providers/{provider_type}/{provider_id}/logs":{"get":{"tags":["providers"],"summary":"Get Logs","description":"Get logs from a provider","operationId":"get_logs_providers__provider_type___provider_id__logs_get","parameters":[{"required":true,"schema":{"type":"string","title":"Provider Type"},"name":"provider_type","in":"path"},{"required":true,"schema":{"type":"string","title":"Provider Id"},"name":"provider_id","in":"path"},{"required":false,"schema":{"type":"integer","title":"Limit","default":5},"name":"limit","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{},"type":"array","title":"Response Get Logs Providers Provider Type Provider Id Logs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/providers/{provider_type}/schema":{"get":{"tags":["providers"],"summary":"Get Alerts Schema","description":"Get the provider's API schema used to push alerts configuration","operationId":"get_alerts_schema_providers__provider_type__schema_get","parameters":[{"required":true,"schema":{"type":"string","title":"Provider Type"},"name":"provider_type","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Get Alerts Schema Providers Provider Type Schema Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/providers/{provider_type}/{provider_id}/alerts":{"post":{"tags":["providers"],"summary":"Add Alert","description":"Push new alerts to the provider","operationId":"add_alert_providers__provider_type___provider_id__alerts_post","parameters":[{"required":true,"schema":{"type":"string","title":"Provider Type"},"name":"provider_type","in":"path"},{"required":true,"schema":{"type":"string","title":"Provider Id"},"name":"provider_id","in":"path"},{"required":false,"schema":{"type":"string","title":"Alert Id"},"name":"alert_id","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"Alert"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/providers/test":{"post":{"tags":["providers"],"summary":"Test Provider","description":"Test a provider's alert retrieval","operationId":"test_provider_providers_test_post","requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"Provider Info"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/providers/{provider_type}/{provider_id}":{"delete":{"tags":["providers"],"summary":"Delete Provider","operationId":"delete_provider_providers__provider_type___provider_id__delete","parameters":[{"required":true,"schema":{"type":"string","title":"Provider Type"},"name":"provider_type","in":"path"},{"required":true,"schema":{"type":"string","title":"Provider Id"},"name":"provider_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/providers/{provider_id}/scopes":{"post":{"tags":["providers"],"summary":"Validate Provider Scopes","description":"Validate provider scopes","operationId":"validate_provider_scopes_providers__provider_id__scopes_post","parameters":[{"required":true,"schema":{"type":"string","title":"Provider Id"},"name":"provider_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"type":"object","title":"Response Validate Provider Scopes Providers Provider Id Scopes Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/providers/{provider_id}":{"put":{"tags":["providers"],"summary":"Update Provider","description":"Update provider","operationId":"update_provider_providers__provider_id__put","parameters":[{"required":true,"schema":{"type":"string","title":"Provider Id"},"name":"provider_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/providers/install":{"post":{"tags":["providers"],"summary":"Install Provider","operationId":"install_provider_providers_install_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/providers/install/oauth2/{provider_type}":{"post":{"tags":["providers"],"summary":"Install Provider Oauth2","operationId":"install_provider_oauth2_providers_install_oauth2__provider_type__post","parameters":[{"required":true,"schema":{"type":"string","title":"Provider Type"},"name":"provider_type","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"Provider Info"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/providers/{provider_id}/invoke/{method}":{"post":{"tags":["providers"],"summary":"Invoke Provider Method","description":"Invoke provider special method","operationId":"invoke_provider_method_providers__provider_id__invoke__method__post","parameters":[{"required":true,"schema":{"type":"string","title":"Provider Id"},"name":"provider_id","in":"path"},{"required":true,"schema":{"type":"string","title":"Method"},"name":"method","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"Method Params"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/providers/install/webhook/{provider_type}/{provider_id}":{"post":{"tags":["providers"],"summary":"Install Provider Webhook","operationId":"install_provider_webhook_providers_install_webhook__provider_type___provider_id__post","parameters":[{"required":true,"schema":{"type":"string","title":"Provider Type"},"name":"provider_type","in":"path"},{"required":true,"schema":{"type":"string","title":"Provider Id"},"name":"provider_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/providers/{provider_type}/webhook":{"get":{"tags":["providers"],"summary":"Get Webhook Settings","operationId":"get_webhook_settings_providers__provider_type__webhook_get","parameters":[{"required":true,"schema":{"type":"string","title":"Provider Type"},"name":"provider_type","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderWebhookSettings"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/healthcheck":{"get":{"tags":["healthcheck"],"summary":"Healthcheck","description":"simple healthcheck endpoint","operationId":"healthcheck_healthcheck_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Healthcheck Healthcheck Get"}}}}}}},"/alerts":{"get":{"tags":["alerts"],"summary":"Get All Alerts","description":"Get last alerts occurrence","operationId":"get_all_alerts_alerts_get","parameters":[{"required":false,"schema":{"type":"boolean","title":"Sync","default":false},"name":"sync","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AlertDto"},"type":"array","title":"Response Get All Alerts Alerts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"delete":{"tags":["alerts"],"summary":"Delete Alert","description":"Delete alert by finerprint and last received time","operationId":"delete_alert_alerts_delete","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRequestBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Delete Alert Alerts Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/alerts/{fingerprint}/history":{"get":{"tags":["alerts"],"summary":"Get Alert History","description":"Get alert history","operationId":"get_alert_history_alerts__fingerprint__history_get","parameters":[{"required":true,"schema":{"type":"string","title":"Fingerprint"},"name":"fingerprint","in":"path"},{"required":false,"schema":{"type":"string","title":"Provider Id"},"name":"provider_id","in":"query"},{"required":false,"schema":{"type":"string","title":"Provider Type"},"name":"provider_type","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AlertDto"},"type":"array","title":"Response Get Alert History Alerts Fingerprint History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/alerts/{fingerprint}/assign/{last_received}":{"post":{"tags":["alerts"],"summary":"Assign Alert","description":"Assign alert to user","operationId":"assign_alert_alerts__fingerprint__assign__last_received__post","parameters":[{"required":true,"schema":{"type":"string","title":"Fingerprint"},"name":"fingerprint","in":"path"},{"required":true,"schema":{"type":"string","title":"Last Received"},"name":"last_received","in":"path"},{"required":false,"schema":{"type":"boolean","title":"Unassign","default":false},"name":"unassign","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Assign Alert Alerts Fingerprint Assign Last Received Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/alerts/event":{"post":{"tags":["alerts"],"summary":"Receive Generic Event","description":"Receive a generic alert event","operationId":"receive_generic_event_alerts_event_post","parameters":[{"required":false,"schema":{"type":"string","title":"Fingerprint"},"name":"fingerprint","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AlertDto"},{"items":{"$ref":"#/components/schemas/AlertDto"},"type":"array"},{"type":"object"}],"title":"Event"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AlertDto"},{"items":{"$ref":"#/components/schemas/AlertDto"},"type":"array"}],"title":"Response Receive Generic Event Alerts Event Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/alerts/event/{provider_type}":{"post":{"tags":["alerts"],"summary":"Receive Event","description":"Receive an alert event from a provider","operationId":"receive_event_alerts_event__provider_type__post","parameters":[{"required":true,"schema":{"type":"string","title":"Provider Type"},"name":"provider_type","in":"path"},{"required":false,"schema":{"type":"string","title":"Provider Id"},"name":"provider_id","in":"query"},{"required":false,"schema":{"type":"string","title":"Fingerprint"},"name":"fingerprint","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Receive Event Alerts Event Provider Type Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/alerts/{fingerprint}":{"get":{"tags":["alerts"],"summary":"Get Alert","description":"Get alert by fingerprint","operationId":"get_alert_alerts__fingerprint__get","parameters":[{"required":true,"schema":{"type":"string","title":"Fingerprint"},"name":"fingerprint","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertDto"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/alerts/enrich":{"post":{"tags":["alerts"],"summary":"Enrich Alert","description":"Enrich an alert","operationId":"enrich_alert_alerts_enrich_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichAlertRequestBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Enrich Alert Alerts Enrich Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/alerts/search":{"post":{"tags":["alerts"],"summary":"Search Alerts","description":"Search alerts","operationId":"search_alerts_alerts_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchAlertsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AlertDto"},"type":"array","title":"Response Search Alerts Alerts Search Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/settings/webhook":{"get":{"tags":["settings"],"summary":"Webhook Settings","description":"Get details about the webhook endpoint (e.g. the API url and an API key)","operationId":"webhook_settings_settings_webhook_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSettings"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/settings/users":{"get":{"tags":["settings"],"summary":"Get Users","description":"Get all users","operationId":"get_users_settings_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/User"},"type":"array","title":"Response Get Users Settings Users Get"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"post":{"tags":["settings"],"summary":"Create User","description":"Create a user","operationId":"create_user_settings_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/keep__api__routes__settings__CreateUserRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/settings/users/{user_email}":{"delete":{"tags":["settings"],"summary":"Delete User","description":"Delete a user","operationId":"delete_user_settings_users__user_email__delete","parameters":[{"required":true,"schema":{"type":"string","title":"User Email"},"name":"user_email","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/settings/smtp":{"get":{"tags":["settings"],"summary":"Get Smtp Settings","description":"Get SMTP settings","operationId":"get_smtp_settings_settings_smtp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"post":{"tags":["settings"],"summary":"Update Smtp Settings","description":"Install or update SMTP settings","operationId":"update_smtp_settings_settings_smtp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SMTPSettings"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"delete":{"tags":["settings"],"summary":"Delete Smtp Settings","description":"Delete SMTP settings","operationId":"delete_smtp_settings_settings_smtp_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/settings/smtp/test":{"post":{"tags":["settings"],"summary":"Test Smtp Settings","description":"Test SMTP settings","operationId":"test_smtp_settings_settings_smtp_test_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SMTPSettings"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/settings/apikey":{"put":{"tags":["settings"],"summary":"Update Api Key","description":"Update API key secret","operationId":"update_api_key_settings_apikey_put","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"post":{"tags":["settings"],"summary":"Create Key","description":"Create API key","operationId":"create_key_settings_apikey_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/settings/apikeys":{"get":{"tags":["settings"],"summary":"Get Keys","description":"Get API keys","operationId":"get_keys_settings_apikeys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/settings/apikey/{keyId}":{"delete":{"tags":["settings"],"summary":"Delete Api Key","description":"Delete API key","operationId":"delete_api_key_settings_apikey__keyId__delete","parameters":[{"required":true,"schema":{"type":"string","title":"Keyid"},"name":"keyId","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/workflows":{"get":{"tags":["workflows","alerts"],"summary":"Get Workflows","description":"Get workflows","operationId":"get_workflows_workflows_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowDTO"},"type":"array","title":"Response Get Workflows Workflows Get"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"post":{"tags":["workflows","alerts"],"summary":"Create Workflow","description":"Create or update a workflow","operationId":"create_workflow_workflows_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_workflows_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowCreateOrUpdateDTO"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/workflows/export":{"get":{"tags":["workflows","alerts"],"summary":"Export Workflows","description":"export all workflow Yamls","operationId":"export_workflows_workflows_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Response Export Workflows Workflows Export Get"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/workflows/{workflow_id}/run":{"post":{"tags":["workflows","alerts"],"summary":"Run Workflow","description":"Run a workflow","operationId":"run_workflow_workflows__workflow_id__run_post","parameters":[{"required":true,"schema":{"type":"string","title":"Workflow Id"},"name":"workflow_id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Run Workflow Workflows Workflow Id Run Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/workflows/test":{"post":{"tags":["workflows","alerts"],"summary":"Run Workflow From Definition","description":"Test run a workflow from a definition","operationId":"run_workflow_from_definition_workflows_test_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_run_workflow_from_definition_workflows_test_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Run Workflow From Definition Workflows Test Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/workflows/{workflow_id}":{"get":{"tags":["workflows","alerts"],"summary":"Get Workflow By Id","description":"Get workflow executions by ID","operationId":"get_workflow_by_id_workflows__workflow_id__get","parameters":[{"required":true,"schema":{"type":"string","title":"Workflow Id"},"name":"workflow_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowExecutionDTO"},"type":"array","title":"Response Get Workflow By Id Workflows Workflow Id Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"put":{"tags":["workflows","alerts"],"summary":"Update Workflow By Id","description":"Update a workflow","operationId":"update_workflow_by_id_workflows__workflow_id__put","parameters":[{"required":true,"schema":{"type":"string","title":"Workflow Id"},"name":"workflow_id","in":"path"}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowCreateOrUpdateDTO"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"delete":{"tags":["workflows","alerts"],"summary":"Delete Workflow By Id","description":"Delete workflow","operationId":"delete_workflow_by_id_workflows__workflow_id__delete","parameters":[{"required":true,"schema":{"type":"string","title":"Workflow Id"},"name":"workflow_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/workflows/{workflow_id}/raw":{"get":{"tags":["workflows","alerts"],"summary":"Get Raw Workflow By Id","description":"Get workflow executions by ID","operationId":"get_raw_workflow_by_id_workflows__workflow_id__raw_get","parameters":[{"required":true,"schema":{"type":"string","title":"Workflow Id"},"name":"workflow_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string","title":"Response Get Raw Workflow By Id Workflows Workflow Id Raw Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/workflows/executions":{"get":{"tags":["workflows","alerts"],"summary":"Get Workflow Executions By Alert Fingerprint","description":"Get workflow executions by alert fingerprint","operationId":"get_workflow_executions_by_alert_fingerprint_workflows_executions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowToAlertExecutionDTO"},"type":"array","title":"Response Get Workflow Executions By Alert Fingerprint Workflows Executions Get"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/workflows/{workflow_id}/runs/{workflow_execution_id}":{"get":{"tags":["workflows","alerts"],"summary":"Get Workflow Execution Status","description":"Get a workflow execution status","operationId":"get_workflow_execution_status_workflows__workflow_id__runs__workflow_execution_id__get","parameters":[{"required":true,"schema":{"type":"string","title":"Workflow Execution Id"},"name":"workflow_execution_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionDTO"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/workflows/executions/list":{"get":{"tags":["workflows","alerts"],"summary":"Get Workflow Executions","description":"List last workflow executions","operationId":"get_workflow_executions_workflows_executions_list_get","parameters":[{"description":"Workflow execution ID","required":false,"schema":{"type":"string","title":"Workflow Execution Id","description":"Workflow execution ID"},"name":"workflow_execution_id","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowExecutionDTO"},"type":"array","title":"Response Get Workflow Executions Workflows Executions List Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/whoami":{"get":{"tags":["whoami"],"summary":"Get Tenant Id","description":"Get tenant id","operationId":"get_tenant_id_whoami_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Get Tenant Id Whoami Get"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/pusher/auth":{"post":{"tags":["pusher"],"summary":"Pusher Authentication","description":"Authenticate a user to a private channel\n\nArgs:\n request (Request): The request object\n tenant_id (str, optional): The tenant ID. Defaults to Depends(verify_bearer_token).\n pusher_client (Pusher, optional): Pusher client. Defaults to Depends(get_pusher_client).\n\nRaises:\n HTTPException: 403 if the user is not allowed to access the channel.\n\nReturns:\n dict: The authentication response.","operationId":"pusher_authentication_pusher_auth_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_pusher_authentication_pusher_auth_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Pusher Authentication Pusher Auth Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/status":{"get":{"tags":["status"],"summary":"Status","description":"simple status endpoint","operationId":"status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Status Status Get"}}}}}}},"/rules":{"get":{"tags":["rules"],"summary":"Get Rules","description":"Get Rules","operationId":"get_rules_rules_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"post":{"tags":["rules"],"summary":"Create Rule","description":"Create Rule","operationId":"create_rule_rules_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleCreateDto"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/rules/{rule_id}":{"put":{"tags":["rules"],"summary":"Update Rule","description":"Update Rule","operationId":"update_rule_rules__rule_id__put","parameters":[{"required":true,"schema":{"type":"string","title":"Rule Id"},"name":"rule_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"delete":{"tags":["rules"],"summary":"Delete Rule","description":"Delete Rule","operationId":"delete_rule_rules__rule_id__delete","parameters":[{"required":true,"schema":{"type":"string","title":"Rule Id"},"name":"rule_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/preset":{"get":{"tags":["preset"],"summary":"Get Presets","description":"Get all presets for tenant","operationId":"get_presets_preset_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PresetDto"},"type":"array","title":"Response Get Presets Preset Get"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"post":{"tags":["preset"],"summary":"Create Preset","description":"Create a preset for tenant","operationId":"create_preset_preset_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrUpdatePresetDto"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresetDto"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/preset/{uuid}":{"put":{"tags":["preset"],"summary":"Update Preset","description":"Update a preset for tenant","operationId":"update_preset_preset__uuid__put","parameters":[{"required":true,"schema":{"type":"string","title":"Uuid"},"name":"uuid","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrUpdatePresetDto"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresetDto"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"delete":{"tags":["preset"],"summary":"Delete Preset","description":"Delete a preset for tenant","operationId":"delete_preset_preset__uuid__delete","parameters":[{"required":true,"schema":{"type":"string","title":"Uuid"},"name":"uuid","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/groups/":{"get":{"tags":["groups"],"summary":"Get Groups","description":"Get groups","operationId":"get_groups_groups__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"object"},"type":"array","title":"Response Get Groups Groups Get"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/users":{"get":{"tags":["users"],"summary":"Get Users","description":"Get all users","operationId":"get_users_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/User"},"type":"array","title":"Response Get Users Users Get"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"post":{"tags":["users"],"summary":"Create User","description":"Create a user","operationId":"create_user_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/keep__api__routes__users__CreateUserRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/users/{user_email}":{"delete":{"tags":["users"],"summary":"Delete User","description":"Delete a user","operationId":"delete_user_users__user_email__delete","parameters":[{"required":true,"schema":{"type":"string","title":"User Email"},"name":"user_email","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/mapping":{"get":{"tags":["enrichment","mapping"],"summary":"Get Rules","description":"Get all mapping rules","operationId":"get_rules_mapping_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MappingRuleDtoOut"},"type":"array","title":"Response Get Rules Mapping Get"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"put":{"tags":["enrichment","mapping"],"summary":"Update Rule","description":"Update an existing rule","operationId":"update_rule_mapping_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MappingRuleDtoUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MappingRuleDtoOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"post":{"tags":["enrichment","mapping"],"summary":"Create Rule","description":"Create a new mapping rule","operationId":"create_rule_mapping_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MappingRuleDtoIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MappingRule"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/mapping/{rule_id}":{"delete":{"tags":["enrichment","mapping"],"summary":"Delete Rule","description":"Delete a mapping rule","operationId":"delete_rule_mapping__rule_id__delete","parameters":[{"required":true,"schema":{"type":"integer","title":"Rule Id"},"name":"rule_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/extraction":{"get":{"tags":["enrichment","extraction"],"summary":"Get Extraction Rules","description":"Get all extraction rules","operationId":"get_extraction_rules_extraction_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ExtractionRuleDtoOut"},"type":"array","title":"Response Get Extraction Rules Extraction Get"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"post":{"tags":["enrichment","extraction"],"summary":"Create Extraction Rule","description":"Create a new extraction rule","operationId":"create_extraction_rule_extraction_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtractionRuleDtoBase"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtractionRuleDtoOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}},"/extraction/{rule_id}":{"put":{"tags":["enrichment","extraction"],"summary":"Update Extraction Rule","description":"Update an existing extraction rule","operationId":"update_extraction_rule_extraction__rule_id__put","parameters":[{"required":true,"schema":{"type":"integer","title":"Rule Id"},"name":"rule_id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtractionRuleDtoBase"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtractionRuleDtoOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]},"delete":{"tags":["enrichment","extraction"],"summary":"Delete Extraction Rule","description":"Delete an extraction rule","operationId":"delete_extraction_rule_extraction__rule_id__delete","parameters":[{"required":true,"schema":{"type":"integer","title":"Rule Id"},"name":"rule_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"HTTPBasic":[]},{"OAuth2PasswordBearer":[]}]}}},"components":{"schemas":{"AlertDto":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"status":{"$ref":"#/components/schemas/AlertStatus"},"severity":{"$ref":"#/components/schemas/AlertSeverity"},"lastReceived":{"type":"string","title":"Lastreceived"},"environment":{"type":"string","title":"Environment","default":"undefined"},"isDuplicate":{"type":"boolean","title":"Isduplicate"},"duplicateReason":{"type":"string","title":"Duplicatereason"},"service":{"type":"string","title":"Service"},"source":{"items":{"type":"string"},"type":"array","title":"Source","default":[]},"apiKeyRef":{"type":"string","title":"Apikeyref"},"message":{"type":"string","title":"Message"},"description":{"type":"string","title":"Description"},"pushed":{"type":"boolean","title":"Pushed","default":false},"event_id":{"type":"string","title":"Event Id"},"url":{"type":"string","maxLength":65536,"minLength":1,"format":"uri","title":"Url"},"labels":{"type":"object","title":"Labels","default":{}},"fingerprint":{"type":"string","title":"Fingerprint"},"deleted":{"type":"boolean","title":"Deleted","default":false},"dismissUntil":{"type":"string","title":"Dismissuntil"},"dismissed":{"type":"boolean","title":"Dismissed","default":false},"assignee":{"type":"string","title":"Assignee"},"providerId":{"type":"string","title":"Providerid"},"group":{"type":"boolean","title":"Group","default":false},"note":{"type":"string","title":"Note"},"startedAt":{"type":"string","title":"Startedat"},"isNoisy":{"type":"boolean","title":"Isnoisy","default":false}},"type":"object","required":["id","name","status","severity","lastReceived"],"title":"AlertDto","examples":[{"id":"1234","name":"Alert name","status":"firing","lastReceived":"2021-01-01T00:00:00.000Z","environment":"production","isDuplicate":false,"service":"backend","source":["keep"],"message":"Keep: Alert message","description":"Keep: Alert description","severity":"critical","pushed":true,"event_id":"1234","url":"https://www.keephq.dev?alertId=1234","labels":{"key":"value"},"ticket_url":"https://www.keephq.dev?enrichedTicketId=456","fingerprint":"1234"}]},"AlertSeverity":{"enum":["critical","high","warning","info","low"],"title":"AlertSeverity","description":"An enumeration."},"AlertStatus":{"enum":["firing","resolved","acknowledged","suppressed","pending"],"title":"AlertStatus","description":"An enumeration."},"Body_create_workflow_workflows_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","title":"Body_create_workflow_workflows_post"},"Body_pusher_authentication_pusher_auth_post":{"properties":{"channel_name":{"title":"Channel Name"},"socket_id":{"title":"Socket Id"}},"type":"object","required":["channel_name","socket_id"],"title":"Body_pusher_authentication_pusher_auth_post"},"Body_run_workflow_from_definition_workflows_test_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","title":"Body_run_workflow_from_definition_workflows_test_post"},"CreateOrUpdatePresetDto":{"properties":{"name":{"type":"string","title":"Name"},"options":{"items":{"$ref":"#/components/schemas/PresetOption"},"type":"array","title":"Options"},"is_private":{"type":"boolean","title":"Is Private","default":false},"is_noisy":{"type":"boolean","title":"Is Noisy","default":false}},"type":"object","required":["options"],"title":"CreateOrUpdatePresetDto"},"DeleteRequestBody":{"properties":{"fingerprint":{"type":"string","title":"Fingerprint"},"lastReceived":{"type":"string","title":"Lastreceived"},"restore":{"type":"boolean","title":"Restore","default":false}},"type":"object","required":["fingerprint","lastReceived"],"title":"DeleteRequestBody"},"EnrichAlertRequestBody":{"properties":{"enrichments":{"additionalProperties":{"type":"string"},"type":"object","title":"Enrichments"},"fingerprint":{"type":"string","title":"Fingerprint"}},"type":"object","required":["enrichments","fingerprint"],"title":"EnrichAlertRequestBody"},"ExtractionRuleDtoBase":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"priority":{"type":"integer","title":"Priority","default":0},"attribute":{"type":"string","title":"Attribute"},"condition":{"type":"string","title":"Condition"},"disabled":{"type":"boolean","title":"Disabled","default":false},"regex":{"type":"string","title":"Regex"},"pre":{"type":"boolean","title":"Pre","default":false}},"type":"object","required":["name","regex"],"title":"ExtractionRuleDtoBase"},"ExtractionRuleDtoOut":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"priority":{"type":"integer","title":"Priority","default":0},"attribute":{"type":"string","title":"Attribute"},"condition":{"type":"string","title":"Condition"},"disabled":{"type":"boolean","title":"Disabled","default":false},"regex":{"type":"string","title":"Regex"},"pre":{"type":"boolean","title":"Pre","default":false},"id":{"type":"integer","title":"Id"},"created_by":{"type":"string","title":"Created By"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_by":{"type":"string","title":"Updated By"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["name","regex","id","created_at"],"title":"ExtractionRuleDtoOut"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"MappingRule":{"properties":{"id":{"type":"integer","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"priority":{"type":"integer","title":"Priority","default":0},"name":{"type":"string","maxLength":255,"title":"Name"},"description":{"type":"string","maxLength":2048,"title":"Description"},"file_name":{"type":"string","maxLength":255,"title":"File Name"},"created_by":{"type":"string","maxLength":255,"title":"Created By"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"disabled":{"type":"boolean","title":"Disabled","default":false},"override":{"type":"boolean","title":"Override","default":true},"condition":{"type":"string","maxLength":2000,"title":"Condition"},"matchers":{"items":{"type":"string"},"type":"array","title":"Matchers"},"rows":{"items":{"type":"object"},"type":"array","title":"Rows"},"updated_by":{"type":"string","maxLength":255,"title":"Updated By"},"last_updated_at":{"type":"string","format":"date-time","title":"Last Updated At"}},"type":"object","required":["tenant_id","name","matchers","rows"],"title":"MappingRule"},"MappingRuleDtoIn":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"file_name":{"type":"string","title":"File Name"},"priority":{"type":"integer","title":"Priority","default":0},"matchers":{"items":{"type":"string"},"type":"array","title":"Matchers"},"rows":{"items":{"type":"object"},"type":"array","title":"Rows"}},"type":"object","required":["name","matchers","rows"],"title":"MappingRuleDtoIn"},"MappingRuleDtoOut":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"file_name":{"type":"string","title":"File Name"},"priority":{"type":"integer","title":"Priority","default":0},"matchers":{"items":{"type":"string"},"type":"array","title":"Matchers"},"id":{"type":"integer","title":"Id"},"created_by":{"type":"string","title":"Created By"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"attributes":{"items":{"type":"string"},"type":"array","title":"Attributes","default":[]},"updated_by":{"type":"string","title":"Updated By"},"last_updated_at":{"type":"string","format":"date-time","title":"Last Updated At"}},"type":"object","required":["name","matchers","id","created_at"],"title":"MappingRuleDtoOut"},"MappingRuleDtoUpdate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"file_name":{"type":"string","title":"File Name"},"priority":{"type":"integer","title":"Priority","default":0},"matchers":{"items":{"type":"string"},"type":"array","title":"Matchers"},"id":{"type":"integer","title":"Id"},"rows":{"items":{"type":"object"},"type":"array","title":"Rows"}},"type":"object","required":["name","matchers","id"],"title":"MappingRuleDtoUpdate"},"PresetDto":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"options":{"items":{},"type":"array","title":"Options","default":[]},"created_by":{"type":"string","title":"Created By"},"is_private":{"type":"boolean","title":"Is Private","default":false},"is_noisy":{"type":"boolean","title":"Is Noisy","default":false},"should_do_noise_now":{"type":"boolean","title":"Should Do Noise Now","default":false},"alerts_count":{"type":"integer","title":"Alerts Count","default":0}},"type":"object","required":["id","name"],"title":"PresetDto"},"PresetOption":{"properties":{"label":{"type":"string","title":"Label"},"value":{"anyOf":[{"type":"string"},{"type":"object"}],"title":"Value"}},"type":"object","required":["label","value"],"title":"PresetOption"},"ProviderDTO":{"properties":{"type":{"type":"string","title":"Type"},"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"installed":{"type":"boolean","title":"Installed"}},"type":"object","required":["type","name","installed"],"title":"ProviderDTO"},"ProviderWebhookSettings":{"properties":{"webhookDescription":{"type":"string","title":"Webhookdescription"},"webhookTemplate":{"type":"string","title":"Webhooktemplate"},"webhookMarkdown":{"type":"string","title":"Webhookmarkdown"}},"type":"object","required":["webhookTemplate"],"title":"ProviderWebhookSettings"},"RuleCreateDto":{"properties":{"ruleName":{"type":"string","title":"Rulename"},"sqlQuery":{"type":"object","title":"Sqlquery"},"celQuery":{"type":"string","title":"Celquery"},"timeframeInSeconds":{"type":"integer","title":"Timeframeinseconds"},"groupingCriteria":{"items":{},"type":"array","title":"Groupingcriteria","default":[]},"groupDescription":{"type":"string","title":"Groupdescription"}},"type":"object","required":["ruleName","sqlQuery","celQuery","timeframeInSeconds"],"title":"RuleCreateDto"},"SMTPSettings":{"properties":{"host":{"type":"string","title":"Host"},"port":{"type":"integer","title":"Port"},"from_email":{"type":"string","title":"From Email"},"username":{"type":"string","title":"Username"},"password":{"type":"string","format":"password","title":"Password","writeOnly":true},"secure":{"type":"boolean","title":"Secure","default":true},"to_email":{"type":"string","title":"To Email","default":"keep@example.com"}},"type":"object","required":["host","port","from_email"],"title":"SMTPSettings","example":{"host":"smtp.example.com","port":587,"username":"user@example.com","password":"password","secure":true,"from_email":"noreply@example.com","to_email":""}},"SearchAlertsRequest":{"properties":{"query":{"type":"string","title":"Query"},"timeframe":{"type":"integer","title":"Timeframe"}},"type":"object","required":["query","timeframe"],"title":"SearchAlertsRequest"},"User":{"properties":{"email":{"type":"string","title":"Email"},"name":{"type":"string","title":"Name"},"role":{"type":"string","title":"Role"},"picture":{"type":"string","title":"Picture"},"created_at":{"type":"string","title":"Created At"},"last_login":{"type":"string","title":"Last Login"}},"type":"object","required":["email","name","role","created_at"],"title":"User"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WebhookSettings":{"properties":{"webhookApi":{"type":"string","title":"Webhookapi"},"apiKey":{"type":"string","title":"Apikey"},"modelSchema":{"type":"object","title":"Modelschema"}},"type":"object","required":["webhookApi","apiKey","modelSchema"],"title":"WebhookSettings"},"WorkflowCreateOrUpdateDTO":{"properties":{"workflow_id":{"type":"string","title":"Workflow Id"},"status":{"type":"string","enum":["created","updated"],"title":"Status"},"revision":{"type":"integer","title":"Revision","default":1}},"type":"object","required":["workflow_id","status"],"title":"WorkflowCreateOrUpdateDTO"},"WorkflowDTO":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":"Workflow file doesn't contain name"},"description":{"type":"string","title":"Description","default":"Workflow file doesn't contain description"},"created_by":{"type":"string","title":"Created By"},"creation_time":{"type":"string","format":"date-time","title":"Creation Time"},"triggers":{"items":{"type":"object"},"type":"array","title":"Triggers"},"interval":{"type":"integer","title":"Interval"},"last_execution_time":{"type":"string","format":"date-time","title":"Last Execution Time"},"last_execution_status":{"type":"string","title":"Last Execution Status"},"providers":{"items":{"$ref":"#/components/schemas/ProviderDTO"},"type":"array","title":"Providers"},"workflow_raw":{"type":"string","title":"Workflow Raw"},"revision":{"type":"integer","title":"Revision","default":1},"last_updated":{"type":"string","format":"date-time","title":"Last Updated"},"invalid":{"type":"boolean","title":"Invalid","default":false}},"type":"object","required":["id","created_by","creation_time","interval","providers","workflow_raw"],"title":"WorkflowDTO"},"WorkflowExecutionDTO":{"properties":{"id":{"type":"string","title":"Id"},"workflow_id":{"type":"string","title":"Workflow Id"},"started":{"type":"string","format":"date-time","title":"Started"},"triggered_by":{"type":"string","title":"Triggered By"},"status":{"type":"string","title":"Status"},"logs":{"items":{"$ref":"#/components/schemas/WorkflowExecutionLogsDTO"},"type":"array","title":"Logs"},"error":{"type":"string","title":"Error"},"execution_time":{"type":"integer","title":"Execution Time"},"results":{"type":"object","title":"Results"}},"type":"object","required":["id","workflow_id","started","triggered_by","status"],"title":"WorkflowExecutionDTO"},"WorkflowExecutionLogsDTO":{"properties":{"id":{"type":"integer","title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"message":{"type":"string","title":"Message"},"context":{"type":"object","title":"Context"}},"type":"object","required":["id","timestamp","message"],"title":"WorkflowExecutionLogsDTO"},"WorkflowToAlertExecutionDTO":{"properties":{"workflow_id":{"type":"string","title":"Workflow Id"},"workflow_execution_id":{"type":"string","title":"Workflow Execution Id"},"alert_fingerprint":{"type":"string","title":"Alert Fingerprint"},"workflow_status":{"type":"string","title":"Workflow Status"},"workflow_started":{"type":"string","format":"date-time","title":"Workflow Started"}},"type":"object","required":["workflow_id","workflow_execution_id","alert_fingerprint","workflow_status","workflow_started"],"title":"WorkflowToAlertExecutionDTO"},"keep__api__routes__settings__CreateUserRequest":{"properties":{"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"},"role":{"type":"string","title":"Role"}},"type":"object","required":["username","role"],"title":"CreateUserRequest"},"keep__api__routes__users__CreateUserRequest":{"properties":{"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"},"role":{"type":"string","title":"Role"}},"type":"object","required":["username","role"],"title":"CreateUserRequest"}},"securitySchemes":{"API Key":{"type":"apiKey","in":"header","name":"X-API-KEY"},"HTTPBasic":{"type":"http","scheme":"basic"},"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"token"}}}}}} \ No newline at end of file +{"openapi": "3.0.2", "info": {"title": "Keep API", "description": "Rest API powering https://platform.keephq.dev and friends \ud83c\udfc4\u200d\u2640\ufe0f", "version": "0.1.0"}, "paths": {"/providers": {"get": {"tags": ["providers"], "summary": "Get Providers", "operationId": "get_providers_providers_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/providers/export": {"get": {"tags": ["providers"], "summary": "Get Installed Providers", "description": "export all installed providers", "operationId": "get_installed_providers_providers_export_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/providers/{provider_type}/{provider_id}/configured-alerts": {"get": {"tags": ["providers"], "summary": "Get Alerts Configuration", "description": "Get alerts configuration from a provider", "operationId": "get_alerts_configuration_providers__provider_type___provider_id__configured_alerts_get", "parameters": [{"required": true, "schema": {"type": "string", "title": "Provider Type"}, "name": "provider_type", "in": "path"}, {"required": true, "schema": {"type": "string", "title": "Provider Id"}, "name": "provider_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {}, "type": "array", "title": "Response Get Alerts Configuration Providers Provider Type Provider Id Configured Alerts Get"}}}}, "421": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/providers/{provider_type}/{provider_id}/logs": {"get": {"tags": ["providers"], "summary": "Get Logs", "description": "Get logs from a provider", "operationId": "get_logs_providers__provider_type___provider_id__logs_get", "parameters": [{"required": true, "schema": {"type": "string", "title": "Provider Type"}, "name": "provider_type", "in": "path"}, {"required": true, "schema": {"type": "string", "title": "Provider Id"}, "name": "provider_id", "in": "path"}, {"required": false, "schema": {"type": "integer", "title": "Limit", "default": 5}, "name": "limit", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {}, "type": "array", "title": "Response Get Logs Providers Provider Type Provider Id Logs Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/providers/{provider_type}/schema": {"get": {"tags": ["providers"], "summary": "Get Alerts Schema", "description": "Get the provider's API schema used to push alerts configuration", "operationId": "get_alerts_schema_providers__provider_type__schema_get", "parameters": [{"required": true, "schema": {"type": "string", "title": "Provider Type"}, "name": "provider_type", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "title": "Response Get Alerts Schema Providers Provider Type Schema Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/providers/{provider_type}/{provider_id}/alerts/count": {"get": {"tags": ["providers"], "summary": "Get Alert Count", "description": "Get number of alerts a specific provider has received (in a specific time time period or ever)", "operationId": "get_alert_count_providers__provider_type___provider_id__alerts_count_get", "parameters": [{"required": true, "schema": {"type": "string", "title": "Provider Type"}, "name": "provider_type", "in": "path"}, {"required": true, "schema": {"type": "string", "title": "Provider Id"}, "name": "provider_id", "in": "path"}, {"required": true, "schema": {"type": "boolean", "title": "Ever"}, "name": "ever", "in": "query"}, {"required": false, "schema": {"type": "string", "format": "date-time", "title": "Start Time"}, "name": "start_time", "in": "query"}, {"required": false, "schema": {"type": "string", "format": "date-time", "title": "End Time"}, "name": "end_time", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/providers/{provider_type}/{provider_id}/alerts": {"post": {"tags": ["providers"], "summary": "Add Alert", "description": "Push new alerts to the provider", "operationId": "add_alert_providers__provider_type___provider_id__alerts_post", "parameters": [{"required": true, "schema": {"type": "string", "title": "Provider Type"}, "name": "provider_type", "in": "path"}, {"required": true, "schema": {"type": "string", "title": "Provider Id"}, "name": "provider_id", "in": "path"}, {"required": false, "schema": {"type": "string", "title": "Alert Id"}, "name": "alert_id", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"type": "object", "title": "Alert"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/providers/test": {"post": {"tags": ["providers"], "summary": "Test Provider", "description": "Test a provider's alert retrieval", "operationId": "test_provider_providers_test_post", "requestBody": {"content": {"application/json": {"schema": {"type": "object", "title": "Provider Info"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/providers/{provider_type}/{provider_id}": {"delete": {"tags": ["providers"], "summary": "Delete Provider", "operationId": "delete_provider_providers__provider_type___provider_id__delete", "parameters": [{"required": true, "schema": {"type": "string", "title": "Provider Type"}, "name": "provider_type", "in": "path"}, {"required": true, "schema": {"type": "string", "title": "Provider Id"}, "name": "provider_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/providers/{provider_id}/scopes": {"post": {"tags": ["providers"], "summary": "Validate Provider Scopes", "description": "Validate provider scopes", "operationId": "validate_provider_scopes_providers__provider_id__scopes_post", "parameters": [{"required": true, "schema": {"type": "string", "title": "Provider Id"}, "name": "provider_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"additionalProperties": {"anyOf": [{"type": "boolean"}, {"type": "string"}]}, "type": "object", "title": "Response Validate Provider Scopes Providers Provider Id Scopes Post"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/providers/{provider_id}": {"put": {"tags": ["providers"], "summary": "Update Provider", "description": "Update provider", "operationId": "update_provider_providers__provider_id__put", "parameters": [{"required": true, "schema": {"type": "string", "title": "Provider Id"}, "name": "provider_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/providers/install": {"post": {"tags": ["providers"], "summary": "Install Provider", "operationId": "install_provider_providers_install_post", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/providers/install/oauth2/{provider_type}": {"post": {"tags": ["providers"], "summary": "Install Provider Oauth2", "operationId": "install_provider_oauth2_providers_install_oauth2__provider_type__post", "parameters": [{"required": true, "schema": {"type": "string", "title": "Provider Type"}, "name": "provider_type", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"type": "object", "title": "Provider Info"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/providers/{provider_id}/invoke/{method}": {"post": {"tags": ["providers"], "summary": "Invoke Provider Method", "description": "Invoke provider special method", "operationId": "invoke_provider_method_providers__provider_id__invoke__method__post", "parameters": [{"required": true, "schema": {"type": "string", "title": "Provider Id"}, "name": "provider_id", "in": "path"}, {"required": true, "schema": {"type": "string", "title": "Method"}, "name": "method", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"type": "object", "title": "Method Params"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/providers/install/webhook/{provider_type}/{provider_id}": {"post": {"tags": ["providers"], "summary": "Install Provider Webhook", "operationId": "install_provider_webhook_providers_install_webhook__provider_type___provider_id__post", "parameters": [{"required": true, "schema": {"type": "string", "title": "Provider Type"}, "name": "provider_type", "in": "path"}, {"required": true, "schema": {"type": "string", "title": "Provider Id"}, "name": "provider_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/providers/{provider_type}/webhook": {"get": {"tags": ["providers"], "summary": "Get Webhook Settings", "operationId": "get_webhook_settings_providers__provider_type__webhook_get", "parameters": [{"required": true, "schema": {"type": "string", "title": "Provider Type"}, "name": "provider_type", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProviderWebhookSettings"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/actions": {"get": {"tags": ["actions"], "summary": "Get Actions", "description": "Get all actions", "operationId": "get_actions_actions_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "post": {"tags": ["actions"], "summary": "Create Actions", "description": "Create new actions by uploading a file", "operationId": "create_actions_actions_post", "requestBody": {"content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_create_actions_actions_post"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/actions/{action_id}": {"put": {"tags": ["actions"], "summary": "Put Action", "description": "Update an action", "operationId": "put_action_actions__action_id__put", "parameters": [{"required": true, "schema": {"type": "string", "title": "Action Id"}, "name": "action_id", "in": "path"}], "requestBody": {"content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_put_action_actions__action_id__put"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["actions"], "summary": "Delete Action", "description": "Delete an action", "operationId": "delete_action_actions__action_id__delete", "parameters": [{"required": true, "schema": {"type": "string", "title": "Action Id"}, "name": "action_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/healthcheck": {"get": {"tags": ["healthcheck"], "summary": "Healthcheck", "description": "simple healthcheck endpoint", "operationId": "healthcheck_healthcheck_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "title": "Response Healthcheck Healthcheck Get"}}}}}}}, "/alerts": {"get": {"tags": ["alerts"], "summary": "Get All Alerts", "description": "Get last alerts occurrence", "operationId": "get_all_alerts_alerts_get", "parameters": [{"required": false, "schema": {"type": "integer", "title": "Limit", "default": 1000}, "name": "limit", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/AlertDto"}, "type": "array", "title": "Response Get All Alerts Alerts Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["alerts"], "summary": "Delete Alert", "description": "Delete alert by finerprint and last received time", "operationId": "delete_alert_alerts_delete", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteRequestBody"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Response Delete Alert Alerts Delete"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/alerts/{fingerprint}/history": {"get": {"tags": ["alerts"], "summary": "Get Alert History", "description": "Get alert history", "operationId": "get_alert_history_alerts__fingerprint__history_get", "parameters": [{"required": true, "schema": {"type": "string", "title": "Fingerprint"}, "name": "fingerprint", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/AlertDto"}, "type": "array", "title": "Response Get Alert History Alerts Fingerprint History Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/alerts/{fingerprint}/assign/{last_received}": {"post": {"tags": ["alerts"], "summary": "Assign Alert", "description": "Assign alert to user", "operationId": "assign_alert_alerts__fingerprint__assign__last_received__post", "parameters": [{"required": true, "schema": {"type": "string", "title": "Fingerprint"}, "name": "fingerprint", "in": "path"}, {"required": true, "schema": {"type": "string", "title": "Last Received"}, "name": "last_received", "in": "path"}, {"required": false, "schema": {"type": "boolean", "title": "Unassign", "default": false}, "name": "unassign", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Response Assign Alert Alerts Fingerprint Assign Last Received Post"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/alerts/event": {"post": {"tags": ["alerts"], "summary": "Receive Generic Event", "description": "Receive a generic alert event", "operationId": "receive_generic_event_alerts_event_post", "parameters": [{"required": false, "schema": {"type": "string", "title": "Fingerprint"}, "name": "fingerprint", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/AlertDto"}, {"items": {"$ref": "#/components/schemas/AlertDto"}, "type": "array"}, {"type": "object"}], "title": "Event"}}}, "required": true}, "responses": {"202": {"description": "Successful Response", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/AlertDto"}, {"items": {"$ref": "#/components/schemas/AlertDto"}, "type": "array"}], "title": "Response Receive Generic Event Alerts Event Post"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/alerts/event/netdata": {"get": {"tags": ["alerts"], "summary": "Webhook Challenge", "description": "Helper function to complete Netdata webhook challenge", "operationId": "webhook_challenge_alerts_event_netdata_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}, "/alerts/event/{provider_type}": {"post": {"tags": ["alerts"], "summary": "Receive Event", "description": "Receive an alert event from a provider", "operationId": "receive_event_alerts_event__provider_type__post", "parameters": [{"required": true, "schema": {"type": "string", "title": "Provider Type"}, "name": "provider_type", "in": "path"}, {"required": false, "schema": {"type": "string", "title": "Provider Id"}, "name": "provider_id", "in": "query"}, {"required": false, "schema": {"type": "string", "title": "Fingerprint"}, "name": "fingerprint", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"anyOf": [{"type": "object"}, {"type": "string", "format": "binary"}], "title": "Event"}}}, "required": true}, "responses": {"202": {"description": "Successful Response", "content": {"application/json": {"schema": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Response Receive Event Alerts Event Provider Type Post"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/alerts/{fingerprint}": {"get": {"tags": ["alerts"], "summary": "Get Alert", "description": "Get alert by fingerprint", "operationId": "get_alert_alerts__fingerprint__get", "parameters": [{"required": true, "schema": {"type": "string", "title": "Fingerprint"}, "name": "fingerprint", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AlertDto"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/alerts/enrich": {"post": {"tags": ["alerts"], "summary": "Enrich Alert", "description": "Enrich an alert", "operationId": "enrich_alert_alerts_enrich_post", "parameters": [{"description": "Dispose on new alert", "required": false, "schema": {"type": "boolean", "title": "Dispose On New Alert", "description": "Dispose on new alert", "default": false}, "name": "dispose_on_new_alert", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/EnrichAlertRequestBody"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Response Enrich Alert Alerts Enrich Post"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/alerts/unenrich": {"post": {"tags": ["alerts"], "summary": "Unenrich Alert", "description": "Un-Enrich an alert", "operationId": "unenrich_alert_alerts_unenrich_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnEnrichAlertRequestBody"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Response Unenrich Alert Alerts Unenrich Post"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/alerts/search": {"post": {"tags": ["alerts"], "summary": "Search Alerts", "description": "Search alerts", "operationId": "search_alerts_alerts_search_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchAlertsRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/AlertDto"}, "type": "array", "title": "Response Search Alerts Alerts Search Post"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/alerts/{fingerprint}/audit": {"get": {"tags": ["alerts"], "summary": "Get Alert Audit", "description": "Get alert enrichment", "operationId": "get_alert_audit_alerts__fingerprint__audit_get", "parameters": [{"required": true, "schema": {"type": "string", "title": "Fingerprint"}, "name": "fingerprint", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/incidents": {"get": {"tags": ["incidents"], "summary": "Get All Incidents", "description": "Get last incidents", "operationId": "get_all_incidents_incidents_get", "parameters": [{"required": false, "schema": {"type": "boolean", "title": "Confirmed", "default": true}, "name": "confirmed", "in": "query"}, {"required": false, "schema": {"type": "integer", "title": "Limit", "default": 25}, "name": "limit", "in": "query"}, {"required": false, "schema": {"type": "integer", "title": "Offset", "default": 0}, "name": "offset", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IncidentsPaginatedResultsDto"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "post": {"tags": ["incidents"], "summary": "Create Incident Endpoint", "description": "Create new incident", "operationId": "create_incident_endpoint_incidents_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/IncidentDtoIn"}}}, "required": true}, "responses": {"202": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IncidentDto"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/incidents/{incident_id}": {"get": {"tags": ["incidents"], "summary": "Get Incident", "description": "Get incident by id", "operationId": "get_incident_incidents__incident_id__get", "parameters": [{"required": true, "schema": {"type": "string", "title": "Incident Id"}, "name": "incident_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IncidentDto"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "put": {"tags": ["incidents"], "summary": "Update Incident", "description": "Update incident by id", "operationId": "update_incident_incidents__incident_id__put", "parameters": [{"required": true, "schema": {"type": "string", "title": "Incident Id"}, "name": "incident_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/IncidentDtoIn"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IncidentDto"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["incidents"], "summary": "Delete Incident", "description": "Delete incident by incident id", "operationId": "delete_incident_incidents__incident_id__delete", "parameters": [{"required": true, "schema": {"type": "string", "title": "Incident Id"}, "name": "incident_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/incidents/{incident_id}/alerts": {"get": {"tags": ["incidents"], "summary": "Get Incident Alerts", "description": "Get incident alerts by incident incident id", "operationId": "get_incident_alerts_incidents__incident_id__alerts_get", "parameters": [{"required": true, "schema": {"type": "string", "title": "Incident Id"}, "name": "incident_id", "in": "path"}, {"required": false, "schema": {"type": "integer", "title": "Limit", "default": 25}, "name": "limit", "in": "query"}, {"required": false, "schema": {"type": "integer", "title": "Offset", "default": 0}, "name": "offset", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AlertPaginatedResultsDto"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "post": {"tags": ["incidents"], "summary": "Add Alerts To Incident", "description": "Add alerts to incident", "operationId": "add_alerts_to_incident_incidents__incident_id__alerts_post", "parameters": [{"required": true, "schema": {"type": "string", "title": "Incident Id"}, "name": "incident_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"items": {"type": "string", "format": "uuid"}, "type": "array", "title": "Alert Ids"}}}, "required": true}, "responses": {"202": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/AlertDto"}, "type": "array", "title": "Response Add Alerts To Incident Incidents Incident Id Alerts Post"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["incidents"], "summary": "Delete Alerts From Incident", "description": "Delete alerts from incident", "operationId": "delete_alerts_from_incident_incidents__incident_id__alerts_delete", "parameters": [{"required": true, "schema": {"type": "string", "title": "Incident Id"}, "name": "incident_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"items": {"type": "string", "format": "uuid"}, "type": "array", "title": "Alert Ids"}}}, "required": true}, "responses": {"202": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/AlertDto"}, "type": "array", "title": "Response Delete Alerts From Incident Incidents Incident Id Alerts Delete"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/incidents/{incident_id}/confirm": {"post": {"tags": ["incidents"], "summary": "Update Incident", "description": "Confirm predicted incident by id", "operationId": "update_incident_incidents__incident_id__confirm_post", "parameters": [{"required": true, "schema": {"type": "string", "title": "Incident Id"}, "name": "incident_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IncidentDto"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/settings/webhook": {"get": {"tags": ["settings"], "summary": "Webhook Settings", "description": "Get details about the webhook endpoint (e.g. the API url and an API key)", "operationId": "webhook_settings_settings_webhook_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/WebhookSettings"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/settings/users": {"get": {"tags": ["settings"], "summary": "Get Users", "description": "Get all users", "operationId": "get_users_settings_users_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/User"}, "type": "array", "title": "Response Get Users Settings Users Get"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "post": {"tags": ["settings"], "summary": "Create User", "description": "Create a user", "operationId": "create_user_settings_users_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/keep__api__routes__settings__CreateUserRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/settings/users/{user_email}": {"delete": {"tags": ["settings"], "summary": "Delete User", "description": "Delete a user", "operationId": "delete_user_settings_users__user_email__delete", "parameters": [{"required": true, "schema": {"type": "string", "title": "User Email"}, "name": "user_email", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/settings/smtp": {"get": {"tags": ["settings"], "summary": "Get Smtp Settings", "description": "Get SMTP settings", "operationId": "get_smtp_settings_settings_smtp_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "post": {"tags": ["settings"], "summary": "Update Smtp Settings", "description": "Install or update SMTP settings", "operationId": "update_smtp_settings_settings_smtp_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/SMTPSettings"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["settings"], "summary": "Delete Smtp Settings", "description": "Delete SMTP settings", "operationId": "delete_smtp_settings_settings_smtp_delete", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/settings/smtp/test": {"post": {"tags": ["settings"], "summary": "Test Smtp Settings", "description": "Test SMTP settings", "operationId": "test_smtp_settings_settings_smtp_test_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/SMTPSettings"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/settings/apikey": {"put": {"tags": ["settings"], "summary": "Update Api Key", "description": "Update API key secret", "operationId": "update_api_key_settings_apikey_put", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "post": {"tags": ["settings"], "summary": "Create Key", "description": "Create API key", "operationId": "create_key_settings_apikey_post", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/settings/apikeys": {"get": {"tags": ["settings"], "summary": "Get Keys", "description": "Get API keys", "operationId": "get_keys_settings_apikeys_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/settings/apikey/{keyId}": {"delete": {"tags": ["settings"], "summary": "Delete Api Key", "description": "Delete API key", "operationId": "delete_api_key_settings_apikey__keyId__delete", "parameters": [{"required": true, "schema": {"type": "string", "title": "Keyid"}, "name": "keyId", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/workflows": {"get": {"tags": ["workflows", "alerts"], "summary": "Get Workflows", "description": "Get workflows", "operationId": "get_workflows_workflows_get", "parameters": [{"required": false, "schema": {"type": "boolean", "title": "Is V2", "default": false}, "name": "is_v2", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"anyOf": [{"items": {"$ref": "#/components/schemas/WorkflowDTO"}, "type": "array"}, {"items": {"type": "object"}, "type": "array"}], "title": "Response Get Workflows Workflows Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "post": {"tags": ["workflows", "alerts"], "summary": "Create Workflow", "description": "Create or update a workflow", "operationId": "create_workflow_workflows_post", "requestBody": {"content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_create_workflow_workflows_post"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/WorkflowCreateOrUpdateDTO"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/workflows/export": {"get": {"tags": ["workflows", "alerts"], "summary": "Export Workflows", "description": "export all workflow Yamls", "operationId": "export_workflows_workflows_export_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"type": "string"}, "type": "array", "title": "Response Export Workflows Workflows Export Get"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/workflows/{workflow_id}/run": {"post": {"tags": ["workflows", "alerts"], "summary": "Run Workflow", "description": "Run a workflow", "operationId": "run_workflow_workflows__workflow_id__run_post", "parameters": [{"required": true, "schema": {"type": "string", "title": "Workflow Id"}, "name": "workflow_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"type": "object", "title": "Body"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "title": "Response Run Workflow Workflows Workflow Id Run Post"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/workflows/test": {"post": {"tags": ["workflows", "alerts"], "summary": "Run Workflow From Definition", "description": "Test run a workflow from a definition", "operationId": "run_workflow_from_definition_workflows_test_post", "requestBody": {"content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_run_workflow_from_definition_workflows_test_post"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "title": "Response Run Workflow From Definition Workflows Test Post"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/workflows/json": {"post": {"tags": ["workflows", "alerts"], "summary": "Create Workflow From Body", "description": "Create or update a workflow", "operationId": "create_workflow_from_body_workflows_json_post", "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/WorkflowCreateOrUpdateDTO"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/workflows/random-templates": {"get": {"tags": ["workflows", "alerts"], "summary": "Get Random Workflow Templates", "description": "Get random workflow templates", "operationId": "get_random_workflow_templates_workflows_random_templates_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"type": "object"}, "type": "array", "title": "Response Get Random Workflow Templates Workflows Random Templates Get"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/workflows/{workflow_id}": {"get": {"tags": ["workflows", "alerts"], "summary": "Get Workflow By Id", "description": "Get workflow executions by ID", "operationId": "get_workflow_by_id_workflows__workflow_id__get", "parameters": [{"required": true, "schema": {"type": "string", "title": "Workflow Id"}, "name": "workflow_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/WorkflowExecutionDTO"}, "type": "array", "title": "Response Get Workflow By Id Workflows Workflow Id Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "put": {"tags": ["workflows", "alerts"], "summary": "Update Workflow By Id", "description": "Update a workflow", "operationId": "update_workflow_by_id_workflows__workflow_id__put", "parameters": [{"required": true, "schema": {"type": "string", "title": "Workflow Id"}, "name": "workflow_id", "in": "path"}], "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/WorkflowCreateOrUpdateDTO"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["workflows", "alerts"], "summary": "Delete Workflow By Id", "description": "Delete workflow", "operationId": "delete_workflow_by_id_workflows__workflow_id__delete", "parameters": [{"required": true, "schema": {"type": "string", "title": "Workflow Id"}, "name": "workflow_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/workflows/{workflow_id}/raw": {"get": {"tags": ["workflows", "alerts"], "summary": "Get Raw Workflow By Id", "description": "Get workflow executions by ID", "operationId": "get_raw_workflow_by_id_workflows__workflow_id__raw_get", "parameters": [{"required": true, "schema": {"type": "string", "title": "Workflow Id"}, "name": "workflow_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "string", "title": "Response Get Raw Workflow By Id Workflows Workflow Id Raw Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/workflows/executions": {"get": {"tags": ["workflows", "alerts"], "summary": "Get Workflow Executions By Alert Fingerprint", "description": "Get workflow executions by alert fingerprint", "operationId": "get_workflow_executions_by_alert_fingerprint_workflows_executions_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/WorkflowToAlertExecutionDTO"}, "type": "array", "title": "Response Get Workflow Executions By Alert Fingerprint Workflows Executions Get"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/workflows/{workflow_id}/runs/{workflow_execution_id}": {"get": {"tags": ["workflows", "alerts"], "summary": "Get Workflow Execution Status", "description": "Get a workflow execution status", "operationId": "get_workflow_execution_status_workflows__workflow_id__runs__workflow_execution_id__get", "parameters": [{"required": true, "schema": {"type": "string", "title": "Workflow Execution Id"}, "name": "workflow_execution_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/WorkflowExecutionDTO"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/workflows/executions/list": {"get": {"tags": ["workflows", "alerts"], "summary": "Get Workflow Executions", "description": "List last workflow executions", "operationId": "get_workflow_executions_workflows_executions_list_get", "parameters": [{"description": "Workflow execution ID", "required": false, "schema": {"type": "string", "title": "Workflow Execution Id", "description": "Workflow execution ID"}, "name": "workflow_execution_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/WorkflowExecutionDTO"}, "type": "array", "title": "Response Get Workflow Executions Workflows Executions List Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/whoami": {"get": {"tags": ["whoami"], "summary": "Get Tenant Id", "description": "Get tenant id", "operationId": "get_tenant_id_whoami_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "title": "Response Get Tenant Id Whoami Get"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/pusher/auth": {"post": {"tags": ["pusher"], "summary": "Pusher Authentication", "description": "Authenticate a user to a private channel\n\nArgs:\n request (Request): The request object\n tenant_id (str, optional): The tenant ID. Defaults to Depends(verify_bearer_token).\n pusher_client (Pusher, optional): Pusher client. Defaults to Depends(get_pusher_client).\n\nRaises:\n HTTPException: 403 if the user is not allowed to access the channel.\n\nReturns:\n dict: The authentication response.", "operationId": "pusher_authentication_pusher_auth_post", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_pusher_authentication_pusher_auth_post"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "title": "Response Pusher Authentication Pusher Auth Post"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/status": {"get": {"tags": ["status"], "summary": "Status", "description": "simple status endpoint", "operationId": "status_status_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "title": "Response Status Status Get"}}}}}}}, "/rules": {"get": {"tags": ["rules"], "summary": "Get Rules", "description": "Get Rules", "operationId": "get_rules_rules_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "post": {"tags": ["rules"], "summary": "Create Rule", "description": "Create Rule", "operationId": "create_rule_rules_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RuleCreateDto"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/rules/{rule_id}": {"put": {"tags": ["rules"], "summary": "Update Rule", "description": "Update Rule", "operationId": "update_rule_rules__rule_id__put", "parameters": [{"required": true, "schema": {"type": "string", "title": "Rule Id"}, "name": "rule_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["rules"], "summary": "Delete Rule", "description": "Delete Rule", "operationId": "delete_rule_rules__rule_id__delete", "parameters": [{"required": true, "schema": {"type": "string", "title": "Rule Id"}, "name": "rule_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/preset": {"get": {"tags": ["preset"], "summary": "Get Presets", "description": "Get all presets for tenant", "operationId": "get_presets_preset_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/PresetDto"}, "type": "array", "title": "Response Get Presets Preset Get"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "post": {"tags": ["preset"], "summary": "Create Preset", "description": "Create a preset for tenant", "operationId": "create_preset_preset_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateOrUpdatePresetDto"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PresetDto"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/preset/{uuid}": {"put": {"tags": ["preset"], "summary": "Update Preset", "description": "Update a preset for tenant", "operationId": "update_preset_preset__uuid__put", "parameters": [{"required": true, "schema": {"type": "string", "title": "Uuid"}, "name": "uuid", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateOrUpdatePresetDto"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PresetDto"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["preset"], "summary": "Delete Preset", "description": "Delete a preset for tenant", "operationId": "delete_preset_preset__uuid__delete", "parameters": [{"required": true, "schema": {"type": "string", "title": "Uuid"}, "name": "uuid", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/preset/{preset_name}/alerts": {"get": {"tags": ["preset"], "summary": "Get Preset Alerts", "description": "Get a preset for tenant", "operationId": "get_preset_alerts_preset__preset_name__alerts_get", "parameters": [{"required": true, "schema": {"type": "string", "title": "Preset Name"}, "name": "preset_name", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/AlertDto"}, "type": "array", "title": "Response Get Preset Alerts Preset Preset Name Alerts Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/preset/{preset_id}/tab": {"post": {"tags": ["preset"], "summary": "Create Preset Tab", "description": "Create a tab for a preset", "operationId": "create_preset_tab_preset__preset_id__tab_post", "parameters": [{"required": true, "schema": {"type": "string", "title": "Preset Id"}, "name": "preset_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreatePresetTab"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/preset/{preset_id}/tab/{tab_id}": {"delete": {"tags": ["preset"], "summary": "Delete Tab", "description": "Delete a tab from a preset", "operationId": "delete_tab_preset__preset_id__tab__tab_id__delete", "parameters": [{"required": true, "schema": {"type": "string", "title": "Preset Id"}, "name": "preset_id", "in": "path"}, {"required": true, "schema": {"type": "string", "title": "Tab Id"}, "name": "tab_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/users": {"get": {"tags": ["users"], "summary": "Get Users", "description": "Get all users", "operationId": "get_users_users_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/User"}, "type": "array", "title": "Response Get Users Users Get"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "post": {"tags": ["users"], "summary": "Create User", "description": "Create a user", "operationId": "create_user_users_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/keep__api__routes__users__CreateUserRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/users/{user_email}": {"delete": {"tags": ["users"], "summary": "Delete User", "description": "Delete a user", "operationId": "delete_user_users__user_email__delete", "parameters": [{"required": true, "schema": {"type": "string", "title": "User Email"}, "name": "user_email", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/topology": {"get": {"tags": ["topology"], "summary": "Get Topology Data", "description": "Get all topology data", "operationId": "get_topology_data_topology_get", "parameters": [{"required": false, "schema": {"type": "string", "title": "Provider Id"}, "name": "provider_id", "in": "query"}, {"required": false, "schema": {"type": "string", "title": "Service Id"}, "name": "service_id", "in": "query"}, {"required": false, "schema": {"type": "string", "title": "Environment"}, "name": "environment", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/TopologyServiceDtoOut"}, "type": "array", "title": "Response Get Topology Data Topology Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/mapping": {"get": {"tags": ["enrichment", "mapping"], "summary": "Get Rules", "description": "Get all mapping rules", "operationId": "get_rules_mapping_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/MappingRuleDtoOut"}, "type": "array", "title": "Response Get Rules Mapping Get"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "put": {"tags": ["enrichment", "mapping"], "summary": "Update Rule", "description": "Update an existing rule", "operationId": "update_rule_mapping_put", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MappingRuleDtoUpdate"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MappingRuleDtoOut"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "post": {"tags": ["enrichment", "mapping"], "summary": "Create Rule", "description": "Create a new mapping rule", "operationId": "create_rule_mapping_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MappingRuleDtoIn"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MappingRule"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/mapping/{rule_id}": {"delete": {"tags": ["enrichment", "mapping"], "summary": "Delete Rule", "description": "Delete a mapping rule", "operationId": "delete_rule_mapping__rule_id__delete", "parameters": [{"required": true, "schema": {"type": "integer", "title": "Rule Id"}, "name": "rule_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/metrics": {"get": {"tags": ["metrics"], "summary": "Get Metrics", "description": "This endpoint is used by Prometheus to scrape such metrics from the application:\n- alerts_total {incident_name, incident_id} - The total number of alerts per incident.\n- open_incidents_total - The total number of open incidents\n\nPlease note that those metrics are per-tenant and are not designed to be used for the monitoring of the application itself.\n\nExample prometheus configuration:\n```\nscrape_configs:\n- job_name: \"scrape_keep\"\n scrape_interval: 5m # It's important to scrape not too often to avoid rate limiting.\n static_configs:\n - targets: [\"https://api.keephq.dev\"] # Or your own domain.\n authorization:\n type: Bearer\n credentials: \"{Your API Key}\"\n```", "operationId": "get_metrics_metrics_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/extraction": {"get": {"tags": ["enrichment", "extraction"], "summary": "Get Extraction Rules", "description": "Get all extraction rules", "operationId": "get_extraction_rules_extraction_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/ExtractionRuleDtoOut"}, "type": "array", "title": "Response Get Extraction Rules Extraction Get"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "post": {"tags": ["enrichment", "extraction"], "summary": "Create Extraction Rule", "description": "Create a new extraction rule", "operationId": "create_extraction_rule_extraction_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExtractionRuleDtoBase"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExtractionRuleDtoOut"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/extraction/{rule_id}": {"put": {"tags": ["enrichment", "extraction"], "summary": "Update Extraction Rule", "description": "Update an existing extraction rule", "operationId": "update_extraction_rule_extraction__rule_id__put", "parameters": [{"required": true, "schema": {"type": "integer", "title": "Rule Id"}, "name": "rule_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExtractionRuleDtoBase"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExtractionRuleDtoOut"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["enrichment", "extraction"], "summary": "Delete Extraction Rule", "description": "Delete an extraction rule", "operationId": "delete_extraction_rule_extraction__rule_id__delete", "parameters": [{"required": true, "schema": {"type": "integer", "title": "Rule Id"}, "name": "rule_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/dashboard": {"get": {"tags": ["dashboard"], "summary": "Read Dashboards", "operationId": "read_dashboards_dashboard_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/DashboardResponseDTO"}, "type": "array", "title": "Response Read Dashboards Dashboard Get"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "post": {"tags": ["dashboard"], "summary": "Create Dashboard", "operationId": "create_dashboard_dashboard_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/DashboardCreateDTO"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DashboardResponseDTO"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/dashboard/{dashboard_id}": {"put": {"tags": ["dashboard"], "summary": "Update Dashboard", "operationId": "update_dashboard_dashboard__dashboard_id__put", "parameters": [{"required": true, "schema": {"type": "string", "title": "Dashboard Id"}, "name": "dashboard_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/DashboardUpdateDTO"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DashboardResponseDTO"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["dashboard"], "summary": "Delete Dashboard", "operationId": "delete_dashboard_dashboard__dashboard_id__delete", "parameters": [{"required": true, "schema": {"type": "string", "title": "Dashboard Id"}, "name": "dashboard_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}, "/tags": {"get": {"tags": ["tags"], "summary": "Get Tags", "description": "get tags", "operationId": "get_tags_tags_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"type": "object"}, "type": "array", "title": "Response Get Tags Tags Get"}}}}}, "security": [{"API Key": []}, {"HTTPBasic": []}, {"OAuth2PasswordBearer": []}]}}}, "components": {"schemas": {"AlertDto": {"properties": {"id": {"type": "string", "title": "Id"}, "name": {"type": "string", "title": "Name"}, "status": {"$ref": "#/components/schemas/AlertStatus"}, "severity": {"$ref": "#/components/schemas/AlertSeverity"}, "lastReceived": {"type": "string", "title": "Lastreceived"}, "firingStartTime": {"type": "string", "title": "Firingstarttime"}, "environment": {"type": "string", "title": "Environment", "default": "undefined"}, "isDuplicate": {"type": "boolean", "title": "Isduplicate"}, "duplicateReason": {"type": "string", "title": "Duplicatereason"}, "service": {"type": "string", "title": "Service"}, "source": {"items": {"type": "string"}, "type": "array", "title": "Source", "default": []}, "apiKeyRef": {"type": "string", "title": "Apikeyref"}, "message": {"type": "string", "title": "Message"}, "description": {"type": "string", "title": "Description"}, "pushed": {"type": "boolean", "title": "Pushed", "default": false}, "event_id": {"type": "string", "title": "Event Id"}, "url": {"type": "string", "maxLength": 65536, "minLength": 1, "format": "uri", "title": "Url"}, "labels": {"type": "object", "title": "Labels", "default": {}}, "fingerprint": {"type": "string", "title": "Fingerprint"}, "deleted": {"type": "boolean", "title": "Deleted", "default": false}, "dismissUntil": {"type": "string", "title": "Dismissuntil"}, "dismissed": {"type": "boolean", "title": "Dismissed", "default": false}, "assignee": {"type": "string", "title": "Assignee"}, "providerId": {"type": "string", "title": "Providerid"}, "providerType": {"type": "string", "title": "Providertype"}, "note": {"type": "string", "title": "Note"}, "startedAt": {"type": "string", "title": "Startedat"}, "isNoisy": {"type": "boolean", "title": "Isnoisy", "default": false}, "enriched_fields": {"items": {}, "type": "array", "title": "Enriched Fields", "default": []}}, "type": "object", "required": ["name", "status", "severity", "lastReceived"], "title": "AlertDto", "example": {"id": "1234", "name": "Alert name", "status": "firing", "lastReceived": "2021-01-01T00:00:00.000Z", "environment": "production", "isDuplicate": false, "service": "backend", "source": ["keep"], "message": "Keep: Alert message", "description": "Keep: Alert description", "severity": "critical", "pushed": true, "event_id": "1234", "url": "https://www.keephq.dev?alertId=1234", "labels": {"key": "value"}, "ticket_url": "https://www.keephq.dev?enrichedTicketId=456", "fingerprint": "1234"}}, "AlertPaginatedResultsDto": {"properties": {"limit": {"type": "integer", "title": "Limit", "default": 25}, "offset": {"type": "integer", "title": "Offset", "default": 0}, "count": {"type": "integer", "title": "Count"}, "items": {"items": {"$ref": "#/components/schemas/AlertDto"}, "type": "array", "title": "Items"}}, "type": "object", "required": ["count", "items"], "title": "AlertPaginatedResultsDto"}, "AlertSeverity": {"enum": ["critical", "high", "warning", "info", "low"], "title": "AlertSeverity", "description": "An enumeration."}, "AlertStatus": {"enum": ["firing", "resolved", "acknowledged", "suppressed", "pending"], "title": "AlertStatus", "description": "An enumeration."}, "Body_create_actions_actions_post": {"properties": {"file": {"type": "string", "format": "binary", "title": "File"}}, "type": "object", "title": "Body_create_actions_actions_post"}, "Body_create_workflow_workflows_post": {"properties": {"file": {"type": "string", "format": "binary", "title": "File"}}, "type": "object", "required": ["file"], "title": "Body_create_workflow_workflows_post"}, "Body_pusher_authentication_pusher_auth_post": {"properties": {"channel_name": {"title": "Channel Name"}, "socket_id": {"title": "Socket Id"}}, "type": "object", "required": ["channel_name", "socket_id"], "title": "Body_pusher_authentication_pusher_auth_post"}, "Body_put_action_actions__action_id__put": {"properties": {"file": {"type": "string", "format": "binary", "title": "File"}}, "type": "object", "required": ["file"], "title": "Body_put_action_actions__action_id__put"}, "Body_run_workflow_from_definition_workflows_test_post": {"properties": {"file": {"type": "string", "format": "binary", "title": "File"}}, "type": "object", "title": "Body_run_workflow_from_definition_workflows_test_post"}, "CreateOrUpdatePresetDto": {"properties": {"name": {"type": "string", "title": "Name"}, "options": {"items": {"$ref": "#/components/schemas/PresetOption"}, "type": "array", "title": "Options"}, "is_private": {"type": "boolean", "title": "Is Private", "default": false}, "is_noisy": {"type": "boolean", "title": "Is Noisy", "default": false}, "tags": {"items": {"$ref": "#/components/schemas/TagDto"}, "type": "array", "title": "Tags", "default": []}}, "type": "object", "required": ["options"], "title": "CreateOrUpdatePresetDto"}, "CreatePresetTab": {"properties": {"name": {"type": "string", "title": "Name"}, "filter": {"type": "string", "title": "Filter"}}, "type": "object", "required": ["name", "filter"], "title": "CreatePresetTab"}, "DashboardCreateDTO": {"properties": {"dashboard_name": {"type": "string", "title": "Dashboard Name"}, "dashboard_config": {"type": "object", "title": "Dashboard Config"}}, "type": "object", "required": ["dashboard_name", "dashboard_config"], "title": "DashboardCreateDTO"}, "DashboardResponseDTO": {"properties": {"id": {"type": "string", "title": "Id"}, "dashboard_name": {"type": "string", "title": "Dashboard Name"}, "dashboard_config": {"type": "object", "title": "Dashboard Config"}, "created_at": {"type": "string", "format": "date-time", "title": "Created At"}, "updated_at": {"type": "string", "format": "date-time", "title": "Updated At"}}, "type": "object", "required": ["id", "dashboard_name", "dashboard_config", "created_at", "updated_at"], "title": "DashboardResponseDTO"}, "DashboardUpdateDTO": {"properties": {"dashboard_config": {"type": "object", "title": "Dashboard Config"}, "dashboard_name": {"type": "string", "title": "Dashboard Name"}}, "type": "object", "title": "DashboardUpdateDTO"}, "DeleteRequestBody": {"properties": {"fingerprint": {"type": "string", "title": "Fingerprint"}, "lastReceived": {"type": "string", "title": "Lastreceived"}, "restore": {"type": "boolean", "title": "Restore", "default": false}}, "type": "object", "required": ["fingerprint", "lastReceived"], "title": "DeleteRequestBody"}, "EnrichAlertRequestBody": {"properties": {"enrichments": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Enrichments"}, "fingerprint": {"type": "string", "title": "Fingerprint"}}, "type": "object", "required": ["enrichments", "fingerprint"], "title": "EnrichAlertRequestBody"}, "ExtractionRuleDtoBase": {"properties": {"name": {"type": "string", "title": "Name"}, "description": {"type": "string", "title": "Description"}, "priority": {"type": "integer", "title": "Priority", "default": 0}, "attribute": {"type": "string", "title": "Attribute"}, "condition": {"type": "string", "title": "Condition"}, "disabled": {"type": "boolean", "title": "Disabled", "default": false}, "regex": {"type": "string", "title": "Regex"}, "pre": {"type": "boolean", "title": "Pre", "default": false}}, "type": "object", "required": ["name", "regex"], "title": "ExtractionRuleDtoBase"}, "ExtractionRuleDtoOut": {"properties": {"name": {"type": "string", "title": "Name"}, "description": {"type": "string", "title": "Description"}, "priority": {"type": "integer", "title": "Priority", "default": 0}, "attribute": {"type": "string", "title": "Attribute"}, "condition": {"type": "string", "title": "Condition"}, "disabled": {"type": "boolean", "title": "Disabled", "default": false}, "regex": {"type": "string", "title": "Regex"}, "pre": {"type": "boolean", "title": "Pre", "default": false}, "id": {"type": "integer", "title": "Id"}, "created_by": {"type": "string", "title": "Created By"}, "created_at": {"type": "string", "format": "date-time", "title": "Created At"}, "updated_by": {"type": "string", "title": "Updated By"}, "updated_at": {"type": "string", "format": "date-time", "title": "Updated At"}}, "type": "object", "required": ["name", "regex", "id", "created_at"], "title": "ExtractionRuleDtoOut"}, "HTTPValidationError": {"properties": {"detail": {"items": {"$ref": "#/components/schemas/ValidationError"}, "type": "array", "title": "Detail"}}, "type": "object", "title": "HTTPValidationError"}, "IncidentDto": {"properties": {"name": {"type": "string", "title": "Name"}, "assignee": {"type": "string", "title": "Assignee"}, "user_summary": {"type": "string", "title": "User Summary"}, "id": {"type": "string", "format": "uuid", "title": "Id"}, "start_time": {"type": "string", "format": "date-time", "title": "Start Time"}, "last_seen_time": {"type": "string", "format": "date-time", "title": "Last Seen Time"}, "end_time": {"type": "string", "format": "date-time", "title": "End Time"}, "number_of_alerts": {"type": "integer", "title": "Number Of Alerts"}, "alert_sources": {"items": {"type": "string"}, "type": "array", "title": "Alert Sources"}, "severity": {"$ref": "#/components/schemas/IncidentSeverity"}, "services": {"items": {"type": "string"}, "type": "array", "title": "Services"}, "is_predicted": {"type": "boolean", "title": "Is Predicted"}, "is_confirmed": {"type": "boolean", "title": "Is Confirmed"}, "generated_summary": {"type": "string", "title": "Generated Summary"}}, "type": "object", "required": ["name", "id", "number_of_alerts", "alert_sources", "severity", "services", "is_predicted", "is_confirmed"], "title": "IncidentDto", "example": {"id": "c2509cb3-6168-4347-b83b-a41da9df2d5b", "name": "Incident name", "user_summary": "Keep: Incident description"}}, "IncidentDtoIn": {"properties": {"name": {"type": "string", "title": "Name"}, "assignee": {"type": "string", "title": "Assignee"}, "user_summary": {"type": "string", "title": "User Summary"}}, "type": "object", "required": ["name"], "title": "IncidentDtoIn", "example": {"id": "c2509cb3-6168-4347-b83b-a41da9df2d5b", "name": "Incident name", "user_summary": "Keep: Incident description"}}, "IncidentSeverity": {"enum": ["critical", "high", "warning", "info", "low"], "title": "IncidentSeverity", "description": "An enumeration."}, "IncidentsPaginatedResultsDto": {"properties": {"limit": {"type": "integer", "title": "Limit", "default": 25}, "offset": {"type": "integer", "title": "Offset", "default": 0}, "count": {"type": "integer", "title": "Count"}, "items": {"items": {"$ref": "#/components/schemas/IncidentDto"}, "type": "array", "title": "Items"}}, "type": "object", "required": ["count", "items"], "title": "IncidentsPaginatedResultsDto"}, "MappingRule": {"properties": {"id": {"type": "integer", "title": "Id"}, "tenant_id": {"type": "string", "title": "Tenant Id"}, "priority": {"type": "integer", "title": "Priority", "default": 0}, "name": {"type": "string", "maxLength": 255, "title": "Name"}, "description": {"type": "string", "maxLength": 2048, "title": "Description"}, "file_name": {"type": "string", "maxLength": 255, "title": "File Name"}, "created_by": {"type": "string", "maxLength": 255, "title": "Created By"}, "created_at": {"type": "string", "format": "date-time", "title": "Created At"}, "disabled": {"type": "boolean", "title": "Disabled", "default": false}, "override": {"type": "boolean", "title": "Override", "default": true}, "condition": {"type": "string", "maxLength": 2000, "title": "Condition"}, "matchers": {"items": {"type": "string"}, "type": "array", "title": "Matchers"}, "rows": {"items": {"type": "object"}, "type": "array", "title": "Rows"}, "updated_by": {"type": "string", "maxLength": 255, "title": "Updated By"}, "last_updated_at": {"type": "string", "format": "date-time", "title": "Last Updated At"}}, "type": "object", "required": ["tenant_id", "name", "matchers", "rows"], "title": "MappingRule"}, "MappingRuleDtoIn": {"properties": {"name": {"type": "string", "title": "Name"}, "description": {"type": "string", "title": "Description"}, "file_name": {"type": "string", "title": "File Name"}, "priority": {"type": "integer", "title": "Priority", "default": 0}, "matchers": {"items": {"type": "string"}, "type": "array", "title": "Matchers"}, "rows": {"items": {"type": "object"}, "type": "array", "title": "Rows"}}, "type": "object", "required": ["name", "matchers", "rows"], "title": "MappingRuleDtoIn"}, "MappingRuleDtoOut": {"properties": {"name": {"type": "string", "title": "Name"}, "description": {"type": "string", "title": "Description"}, "file_name": {"type": "string", "title": "File Name"}, "priority": {"type": "integer", "title": "Priority", "default": 0}, "matchers": {"items": {"type": "string"}, "type": "array", "title": "Matchers"}, "id": {"type": "integer", "title": "Id"}, "created_by": {"type": "string", "title": "Created By"}, "created_at": {"type": "string", "format": "date-time", "title": "Created At"}, "attributes": {"items": {"type": "string"}, "type": "array", "title": "Attributes", "default": []}, "updated_by": {"type": "string", "title": "Updated By"}, "last_updated_at": {"type": "string", "format": "date-time", "title": "Last Updated At"}}, "type": "object", "required": ["name", "matchers", "id", "created_at"], "title": "MappingRuleDtoOut"}, "MappingRuleDtoUpdate": {"properties": {"name": {"type": "string", "title": "Name"}, "description": {"type": "string", "title": "Description"}, "file_name": {"type": "string", "title": "File Name"}, "priority": {"type": "integer", "title": "Priority", "default": 0}, "matchers": {"items": {"type": "string"}, "type": "array", "title": "Matchers"}, "id": {"type": "integer", "title": "Id"}, "rows": {"items": {"type": "object"}, "type": "array", "title": "Rows"}}, "type": "object", "required": ["name", "matchers", "id"], "title": "MappingRuleDtoUpdate"}, "PresetDto": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id"}, "name": {"type": "string", "title": "Name"}, "options": {"items": {}, "type": "array", "title": "Options", "default": []}, "created_by": {"type": "string", "title": "Created By"}, "is_private": {"type": "boolean", "title": "Is Private", "default": false}, "is_noisy": {"type": "boolean", "title": "Is Noisy", "default": false}, "should_do_noise_now": {"type": "boolean", "title": "Should Do Noise Now", "default": false}, "alerts_count": {"type": "integer", "title": "Alerts Count", "default": 0}, "static": {"type": "boolean", "title": "Static", "default": false}, "tags": {"items": {"$ref": "#/components/schemas/TagDto"}, "type": "array", "title": "Tags", "default": []}}, "type": "object", "required": ["id", "name"], "title": "PresetDto"}, "PresetOption": {"properties": {"label": {"type": "string", "title": "Label"}, "value": {"anyOf": [{"type": "string"}, {"type": "object"}], "title": "Value"}}, "type": "object", "required": ["label", "value"], "title": "PresetOption"}, "PresetSearchQuery": {"properties": {"cel_query": {"type": "string", "minLength": 1, "title": "Cel Query"}, "sql_query": {"type": "object", "title": "Sql Query"}, "limit": {"type": "integer", "minimum": 0.0, "title": "Limit", "default": 1000}, "timeframe": {"type": "integer", "minimum": 0.0, "title": "Timeframe", "default": 0}}, "type": "object", "required": ["cel_query", "sql_query"], "title": "PresetSearchQuery"}, "ProviderDTO": {"properties": {"type": {"type": "string", "title": "Type"}, "id": {"type": "string", "title": "Id"}, "name": {"type": "string", "title": "Name"}, "installed": {"type": "boolean", "title": "Installed"}}, "type": "object", "required": ["type", "name", "installed"], "title": "ProviderDTO"}, "ProviderWebhookSettings": {"properties": {"webhookDescription": {"type": "string", "title": "Webhookdescription"}, "webhookTemplate": {"type": "string", "title": "Webhooktemplate"}, "webhookMarkdown": {"type": "string", "title": "Webhookmarkdown"}}, "type": "object", "required": ["webhookTemplate"], "title": "ProviderWebhookSettings"}, "RuleCreateDto": {"properties": {"ruleName": {"type": "string", "title": "Rulename"}, "sqlQuery": {"type": "object", "title": "Sqlquery"}, "celQuery": {"type": "string", "title": "Celquery"}, "timeframeInSeconds": {"type": "integer", "title": "Timeframeinseconds"}, "groupingCriteria": {"items": {}, "type": "array", "title": "Groupingcriteria", "default": []}, "groupDescription": {"type": "string", "title": "Groupdescription"}, "requireApprove": {"type": "boolean", "title": "Requireapprove", "default": false}}, "type": "object", "required": ["ruleName", "sqlQuery", "celQuery", "timeframeInSeconds"], "title": "RuleCreateDto"}, "SMTPSettings": {"properties": {"host": {"type": "string", "title": "Host"}, "port": {"type": "integer", "title": "Port"}, "from_email": {"type": "string", "title": "From Email"}, "username": {"type": "string", "title": "Username"}, "password": {"type": "string", "format": "password", "title": "Password", "writeOnly": true}, "secure": {"type": "boolean", "title": "Secure", "default": true}, "to_email": {"type": "string", "title": "To Email", "default": "keep@example.com"}}, "type": "object", "required": ["host", "port", "from_email"], "title": "SMTPSettings", "example": {"host": "smtp.example.com", "port": 587, "username": "user@example.com", "password": "password", "secure": true, "from_email": "noreply@example.com", "to_email": ""}}, "SearchAlertsRequest": {"properties": {"query": {"$ref": "#/components/schemas/PresetSearchQuery"}, "timeframe": {"type": "integer", "title": "Timeframe"}}, "type": "object", "required": ["query", "timeframe"], "title": "SearchAlertsRequest"}, "TagDto": {"properties": {"id": {"type": "string", "title": "Id"}, "name": {"type": "string", "title": "Name"}}, "type": "object", "required": ["name"], "title": "TagDto"}, "TopologyServiceDependencyDto": {"properties": {"serviceId": {"type": "integer", "title": "Serviceid"}, "serviceName": {"type": "string", "title": "Servicename"}, "protocol": {"type": "string", "title": "Protocol", "default": "unknown"}}, "type": "object", "required": ["serviceId", "serviceName"], "title": "TopologyServiceDependencyDto"}, "TopologyServiceDtoOut": {"properties": {"source_provider_id": {"type": "string", "title": "Source Provider Id"}, "repository": {"type": "string", "title": "Repository"}, "tags": {"items": {"type": "string"}, "type": "array", "title": "Tags"}, "service": {"type": "string", "title": "Service"}, "display_name": {"type": "string", "title": "Display Name"}, "environment": {"type": "string", "title": "Environment", "default": "unknown"}, "description": {"type": "string", "title": "Description"}, "team": {"type": "string", "title": "Team"}, "application": {"type": "string", "title": "Application"}, "email": {"type": "string", "title": "Email"}, "slack": {"type": "string", "title": "Slack"}, "id": {"type": "integer", "title": "Id"}, "dependencies": {"items": {"$ref": "#/components/schemas/TopologyServiceDependencyDto"}, "type": "array", "title": "Dependencies"}, "updated_at": {"type": "string", "format": "date-time", "title": "Updated At"}}, "type": "object", "required": ["service", "display_name", "id", "dependencies"], "title": "TopologyServiceDtoOut"}, "UnEnrichAlertRequestBody": {"properties": {"enrichments": {"items": {"type": "string"}, "type": "array", "title": "Enrichments"}, "fingerprint": {"type": "string", "title": "Fingerprint"}}, "type": "object", "required": ["enrichments", "fingerprint"], "title": "UnEnrichAlertRequestBody"}, "User": {"properties": {"email": {"type": "string", "title": "Email"}, "name": {"type": "string", "title": "Name"}, "role": {"type": "string", "title": "Role"}, "picture": {"type": "string", "title": "Picture"}, "created_at": {"type": "string", "title": "Created At"}, "last_login": {"type": "string", "title": "Last Login"}}, "type": "object", "required": ["email", "name", "role", "created_at"], "title": "User"}, "ValidationError": {"properties": {"loc": {"items": {"anyOf": [{"type": "string"}, {"type": "integer"}]}, "type": "array", "title": "Location"}, "msg": {"type": "string", "title": "Message"}, "type": {"type": "string", "title": "Error Type"}}, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError"}, "WebhookSettings": {"properties": {"webhookApi": {"type": "string", "title": "Webhookapi"}, "apiKey": {"type": "string", "title": "Apikey"}, "modelSchema": {"type": "object", "title": "Modelschema"}}, "type": "object", "required": ["webhookApi", "apiKey", "modelSchema"], "title": "WebhookSettings"}, "WorkflowCreateOrUpdateDTO": {"properties": {"workflow_id": {"type": "string", "title": "Workflow Id"}, "status": {"type": "string", "enum": ["created", "updated"], "title": "Status"}, "revision": {"type": "integer", "title": "Revision", "default": 1}}, "type": "object", "required": ["workflow_id", "status"], "title": "WorkflowCreateOrUpdateDTO"}, "WorkflowDTO": {"properties": {"id": {"type": "string", "title": "Id"}, "name": {"type": "string", "title": "Name", "default": "Workflow file doesn't contain name"}, "description": {"type": "string", "title": "Description", "default": "Workflow file doesn't contain description"}, "created_by": {"type": "string", "title": "Created By"}, "creation_time": {"type": "string", "format": "date-time", "title": "Creation Time"}, "triggers": {"items": {"type": "object"}, "type": "array", "title": "Triggers"}, "interval": {"type": "integer", "title": "Interval"}, "last_execution_time": {"type": "string", "format": "date-time", "title": "Last Execution Time"}, "last_execution_status": {"type": "string", "title": "Last Execution Status"}, "providers": {"items": {"$ref": "#/components/schemas/ProviderDTO"}, "type": "array", "title": "Providers"}, "workflow_raw": {"type": "string", "title": "Workflow Raw"}, "revision": {"type": "integer", "title": "Revision", "default": 1}, "last_updated": {"type": "string", "format": "date-time", "title": "Last Updated"}, "invalid": {"type": "boolean", "title": "Invalid", "default": false}, "last_executions": {"items": {"type": "object"}, "type": "array", "title": "Last Executions"}, "last_execution_started": {"type": "string", "format": "date-time", "title": "Last Execution Started"}}, "type": "object", "required": ["id", "created_by", "creation_time", "interval", "providers", "workflow_raw"], "title": "WorkflowDTO"}, "WorkflowExecutionDTO": {"properties": {"id": {"type": "string", "title": "Id"}, "workflow_id": {"type": "string", "title": "Workflow Id"}, "started": {"type": "string", "format": "date-time", "title": "Started"}, "triggered_by": {"type": "string", "title": "Triggered By"}, "status": {"type": "string", "title": "Status"}, "logs": {"items": {"$ref": "#/components/schemas/WorkflowExecutionLogsDTO"}, "type": "array", "title": "Logs"}, "error": {"type": "string", "title": "Error"}, "execution_time": {"type": "integer", "title": "Execution Time"}, "results": {"type": "object", "title": "Results"}}, "type": "object", "required": ["id", "workflow_id", "started", "triggered_by", "status"], "title": "WorkflowExecutionDTO"}, "WorkflowExecutionLogsDTO": {"properties": {"id": {"type": "integer", "title": "Id"}, "timestamp": {"type": "string", "format": "date-time", "title": "Timestamp"}, "message": {"type": "string", "title": "Message"}, "context": {"type": "object", "title": "Context"}}, "type": "object", "required": ["id", "timestamp", "message"], "title": "WorkflowExecutionLogsDTO"}, "WorkflowToAlertExecutionDTO": {"properties": {"workflow_id": {"type": "string", "title": "Workflow Id"}, "workflow_execution_id": {"type": "string", "title": "Workflow Execution Id"}, "alert_fingerprint": {"type": "string", "title": "Alert Fingerprint"}, "workflow_status": {"type": "string", "title": "Workflow Status"}, "workflow_started": {"type": "string", "format": "date-time", "title": "Workflow Started"}}, "type": "object", "required": ["workflow_id", "workflow_execution_id", "alert_fingerprint", "workflow_status", "workflow_started"], "title": "WorkflowToAlertExecutionDTO"}, "keep__api__routes__settings__CreateUserRequest": {"properties": {"username": {"type": "string", "title": "Username"}, "password": {"type": "string", "title": "Password"}, "role": {"type": "string", "title": "Role"}}, "type": "object", "required": ["username", "role"], "title": "CreateUserRequest"}, "keep__api__routes__users__CreateUserRequest": {"properties": {"username": {"type": "string", "title": "Username"}, "password": {"type": "string", "title": "Password"}, "role": {"type": "string", "title": "Role"}}, "type": "object", "required": ["username", "role"], "title": "CreateUserRequest"}}, "securitySchemes": {"API Key": {"type": "apiKey", "in": "header", "name": "X-API-KEY"}, "HTTPBasic": {"type": "http", "scheme": "basic"}, "OAuth2PasswordBearer": {"type": "oauth2", "flows": {"password": {"scopes": {}, "tokenUrl": "token"}}}}}} \ No newline at end of file diff --git a/docs/overview/keyconcepts.mdx b/docs/overview/keyconcepts.mdx index 07a3b2dd3..94f9bdb26 100644 --- a/docs/overview/keyconcepts.mdx +++ b/docs/overview/keyconcepts.mdx @@ -45,5 +45,5 @@ Workflows are commonly used to: 3. Create multi-steps alerts. ## API first -Keep is an API-first platform, meaning that anything you can do via the [UI](ui/) can also be accomplished through the [API](api/) +Keep is an API-first platform, meaning that anything you can do via the UI can also be accomplished through the [API](/api-ref) This gives you the flexibility to integrate Keep with your existing stack and to automate alert remediation and enrichment processes. diff --git a/docs/platform/alerts.mdx b/docs/platform/alerts.mdx index cf9bdc953..0b729e9dd 100644 --- a/docs/platform/alerts.mdx +++ b/docs/platform/alerts.mdx @@ -4,7 +4,7 @@ sidebarTitle: Alerts --- ## Overview -You can manage Alerts programmatically using the Alerts API. +You can manage Alerts programmatically using the Alerts API. The alerts page let you manage your alerts in a single pane of glass. diff --git a/docs/platform/overview.mdx b/docs/platform/overview.mdx index 222791ec7..93051bfc9 100644 --- a/docs/platform/overview.mdx +++ b/docs/platform/overview.mdx @@ -12,5 +12,4 @@ The platform is currently built on top of: 1. [Providers](/platform/providers) - connect your stack to Keep. 2. [Alerts](/platform/alerts) - single pane of glass for your alerts. 3. [Workflows](/platform/workflows) - create automations on top of your alerts (or regardless). -4. [Workflow Builder](/platform/workflowbuilder) - a visual builder for your workflows. -5. [Settings](/platform/settings) - the settings page (add users, etc). +4. [Settings](/platform/settings) - the settings page (add users, etc). diff --git a/docs/platform/providers.mdx b/docs/platform/providers.mdx index eff84979c..f9e28cfd1 100644 --- a/docs/platform/providers.mdx +++ b/docs/platform/providers.mdx @@ -4,7 +4,7 @@ sidebarTitle: Providers --- ## Overview -You can manage Providers programmatically using the Providers API. +You can manage Providers programmatically using the Providers API. The providers page let you manage your Providers in easy way. Under construction diff --git a/docs/platform/workflows.mdx b/docs/platform/workflows.mdx index 50400340a..d7e8b7ac7 100644 --- a/docs/platform/workflows.mdx +++ b/docs/platform/workflows.mdx @@ -4,7 +4,7 @@ sidebarTitle: Workflows --- ## Overview -You can manage Workflows programmatically using the Workflow API. +You can manage Workflows programmatically using the Workflow API. The Workflows page implements a convinent interface to manage your workflows. Workflows can be triggered by: diff --git a/docs/providers/documentation/pingdom_provider.mdx b/docs/providers/documentation/pingdom-provider.mdx similarity index 100% rename from docs/providers/documentation/pingdom_provider.mdx rename to docs/providers/documentation/pingdom-provider.mdx diff --git a/docs/providers/overview.mdx b/docs/providers/overview.mdx index 8e9234940..36beeb12a 100644 --- a/docs/providers/overview.mdx +++ b/docs/providers/overview.mdx @@ -15,497 +15,397 @@ By leveraging Keep Providers, users are able to deeply integrate Keep with the t - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + href="/providers/documentation/google_chat-provider" + icon={ } > - } + title="Grafana" + href="/providers/documentation/grafana-provider" + icon={ } > - } + title="Grafana Oncall" + href="/providers/documentation/grafana_oncall-provider" + icon={ } > - } + icon={ } > - } + icon={ } +> + + } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } +> + + } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + href="/providers/documentation/pingdom-provider" + icon={ } > - } + icon={ } > - } + icon={ } +> + + } > - } + icon={ } > - } + icon={ } > - } + icon={ } +> + + } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > - } + icon={ } > } > - + \ No newline at end of file diff --git a/docs/workflows/conditions/what-is-a-condition.mdx b/docs/workflows/conditions/what-is-a-condition.mdx index 9821de8c7..51495a18a 100644 --- a/docs/workflows/conditions/what-is-a-condition.mdx +++ b/docs/workflows/conditions/what-is-a-condition.mdx @@ -12,6 +12,6 @@ In Keep's context, a condition is a predefined rule that decide if an action sho Each condition has its own inputs/output. The current supported conditions: -1. [Threshold](/core/conditions/what-is-a-condition) -2. [Assert](/core/conditions/assert) -3. [Stddev](/core/conditions/stddev) +1. [Threshold](/workflows/conditions/threshold) +2. [Assert](/workflows/conditions/assert) +3. [Stddev](/workflows/conditions/stddev) diff --git a/docs/workflows/functions/datetime-compare.mdx b/docs/workflows/functions/datetime-compare.mdx index d2c1db3c1..f7b284132 100644 --- a/docs/workflows/functions/datetime-compare.mdx +++ b/docs/workflows/functions/datetime-compare.mdx @@ -1,10 +1,24 @@ +--- +title: "datetime_compare" +--- + +datetime_compare(t1, t2) compares t1-t2 and returns the diff in seconds + +### Input + +datetime.datetime, datetime.datetime + +### Output + +Integer, timedelta in seconds. + +### Example + +```yaml actions: - name: trigger-slack condition: - type: threshold - # datetime_compare(t1, t2) compares t1-t2 and returns the diff in seconds - # utcnow() returns the local machine datetime in UTC - # to_utc() converts a datetime to UTC value: keep.datetime_compare(keep.utcnow(), keep.to_utc("{{ steps.this.results[0][0] }}")) compare_to: 3600 # seconds (1 hour) compare_type: gt # greater than @@ -26,3 +40,4 @@ def datetime_compare(t1: datetime, t2: datetime) -> int: # t1 = datetime.utcnow() # t2 = datetime.utcnow() - timedelta(hours=2) # print(datetime_compare(t1, t2)) # Should return 7200 (2 hours * 3600 seconds) +``` \ No newline at end of file diff --git a/docs/workflows/functions/diff.mdx b/docs/workflows/functions/diff.mdx index 4abeb6c9b..8cc6819c9 100644 --- a/docs/workflows/functions/diff.mdx +++ b/docs/workflows/functions/diff.mdx @@ -7,7 +7,7 @@ sidebarTitle: "diff" An iterable. ### Output -Opposite of [`all`](all) - returns False if all items are identical, else True +Opposite of [`all`](/workflows/functions/all) - returns False if all items are identical, else True ### Example ```yaml diff --git a/docs/workflows/state.mdx b/docs/workflows/state.mdx index 4b4a0c09a..c06e46f34 100644 --- a/docs/workflows/state.mdx +++ b/docs/workflows/state.mdx @@ -11,7 +11,7 @@ Keep State Manager is currently used for: State is currently being saved as a JSON file under `./state/keepstate.json`, a path that can be overriden by setting the `KEEP_STATE_FILE` environment variable. ## Example -One of the usages for Keep's state mechanism is throttling, see [One Until Resolved](../025_throttles/02-one-until-resolved.md) Keep handles it for you behind the scenes so you can use it without doing any further modifications. +One of the usages for Keep's state mechanism is throttling, see [One Until Resolved](/workflows/throttles/one-until-resolved) Keep handles it for you behind the scenes so you can use it without doing any further modifications. ## Serverless If you are running Keep on production, you should host the `keepstate.json` file on persistance storage and mount it to your serverless environment. Feel free to create an issue if you need solution for your preferred deployment architecture. diff --git a/docs/workflows/syntax/basic-syntax.mdx b/docs/workflows/syntax/basic-syntax.mdx index faad12ab4..9d2c7be95 100644 --- a/docs/workflows/syntax/basic-syntax.mdx +++ b/docs/workflows/syntax/basic-syntax.mdx @@ -66,7 +66,7 @@ provider: interval: 10 ``` `Provider` is built of: -- `type` - the type of the provider ([see supported providers](/workflows/providers/)) +- `type` - the type of the provider ([see supported providers](/providers/overview/)) - `config` - the provider configuration. you can either supply it explicitly or using `"{{ providers.mysql-prod }}"` - `with` - all type-specific provider configuration. for example, for `mysql` we will provide the SQL query. - `on-failure` - handling the error when provider execution fails, it is built of: @@ -110,11 +110,11 @@ steps/actions: - `name` - the name of the action. - `condition` - a list of conditions that - `provider` - the provider that will trigger the action. -- `throttle` - you can [throttle](../025_throttles/01-what-is-throttle.md) the action. -- `if` - action can be limited to when certain [conditions](../023_conditions/01-what-is-a-condition.md) are met. +- `throttle` - you can [throttle](/workflows/throttles/what-is-a-throttle) the action. +- `if` - action can be limited to when certain [conditions](/workflows/conditions/what-is-a-condition) are met. - `foreach` - when `foreach` block supplied, Keep will evaluate it as a list, and evaluates the `action` for every item in the list. -The `provider` configuration is already covered in [Providers](syntax#provider) +The `provider` configuration is already covered in [Providers](/workflows/syntax/basic-syntax) ### On-failure ```yaml diff --git a/docs/workflows/syntax/context-syntax.mdx b/docs/workflows/syntax/context-syntax.mdx index ad8749841..4cf854780 100644 --- a/docs/workflows/syntax/context-syntax.mdx +++ b/docs/workflows/syntax/context-syntax.mdx @@ -41,7 +41,7 @@ The output of steps can be accessed from anywhere in the YAML using `{{ steps.st Keep's syntax allow to use functions on context blocks. For example, `keep.len({{ steps.step-name.results }})` will return the number of results of `step-name` step. -- [See supported functions](/core/functions/what-is-a-function) -- [Create new functions](core/functions/what-is-a-function#how-to-create-a-new-function) +- [See supported functions](/workflows/functions/what-is-a-function) +- [Create new functions](/workflows/functions/what-is-a-function#how-to-create-a-new-function) Under the hood, Keep uses Python's `ast` module to parse these expressions and evaluate them as best as possible. diff --git a/docs/workflows/throttles/what-is-a-throttle.mdx b/docs/workflows/throttles/what-is-a-throttle.mdx index f885d72bd..9d62245c5 100644 --- a/docs/workflows/throttles/what-is-a-throttle.mdx +++ b/docs/workflows/throttles/what-is-a-throttle.mdx @@ -5,7 +5,7 @@ description: "The purpose of throttling is to prevent any action from being trig ## Throttle strategies -- [One Until Resolved](/platform/core/throttles/what-is-a-throttle) +- [One Until Resolved](/workflows/throttles/one-until-resolved) ## Implementing new strategy diff --git a/docs/workflows/ui/getting-started.mdx b/docs/workflows/ui/getting-started.mdx deleted file mode 100644 index 6bf28e4ee..000000000 --- a/docs/workflows/ui/getting-started.mdx +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "" -sidebarTitle: "Getting Started" ---- diff --git a/ee/experimental/incident_utils.py b/ee/experimental/incident_utils.py index 90e29884f..e3cb670ec 100644 --- a/ee/experimental/incident_utils.py +++ b/ee/experimental/incident_utils.py @@ -273,7 +273,7 @@ async def mine_incidents_and_create_objects( incident_ids_to_update.append(incident.id) if not ctx: - pool = get_pool() + pool = await get_pool() else: pool = ctx["redis"] for incident_id in incident_ids_to_update: diff --git a/keep-ui/app/ai/ai.tsx b/keep-ui/app/ai/ai.tsx index 1a0a92a71..69f331629 100644 --- a/keep-ui/app/ai/ai.tsx +++ b/keep-ui/app/ai/ai.tsx @@ -200,7 +200,7 @@ export default function Ai() { className={"p-4 flex flex-col w-full border-white border-2"} >

- Summorization v0.1 + Summarization v0.1

Using LLMs to provide a human-readable incident summary. diff --git a/keep-ui/app/incidents/create-or-update-incident.tsx b/keep-ui/app/incidents/create-or-update-incident.tsx index 7bee84d07..aee1b94ed 100644 --- a/keep-ui/app/incidents/create-or-update-incident.tsx +++ b/keep-ui/app/incidents/create-or-update-incident.tsx @@ -117,8 +117,7 @@ export default function CreateOrUpdateIncident({ const submitEnabled = (): boolean => { return ( - !!incidentName && - !!incidentUserSummary + !!incidentName ); }; @@ -140,10 +139,10 @@ export default function CreateOrUpdateIncident({ />

- Summary* + Summary