action superset_post_report {
label: "post_report"
description: "Create a report schedule"
provider: superset
method: POST
path: "/report/"
encoding: json
input: {
type: "object"
required: ["crontab", "name", "type"]
properties: {
active: {
type: "boolean"
}
chart: {
type: "integer"
format: "int32"
}
context_markdown: {
type: "string"
description: "Markdown description"
}
creation_method: {
description: "Creation method is used to inform the frontend whether the report/alert was created in the dashboard, chart, or alerts and reports UI."
type: "object"
}
crontab: {
type: "string"
description: "A CRON expression.[Crontab Guru](https://crontab.guru/) is a helpful resource that can help you craft a CRON expression."
}
dashboard: {
type: "integer"
format: "int32"
}
database: {
type: "integer"
format: "int32"
}
description: {
type: "string"
description: "Use a nice description to give context to this Alert/Report"
}
grace_period: {
type: "integer"
format: "int32"
description: "Once an alert is triggered, how long, in seconds, before Superset nags you again. (in seconds)"
}
log_retention: {
type: "integer"
format: "int32"
description: "How long to keep the logs around for this report (in days)"
}
name: {
type: "string"
description: "The report schedule name."
}
owners: {
type: "array"
items: {
type: "integer"
format: "int32"
description: "Owner are users ids allowed to delete or change this report. If left empty you will be one of the owners of the report."
}
}
recipients: {
type: "array"
items: {
type: "object"
required: ["type"]
properties: {
recipient_config_json: {
type: "object"
properties: {
target: {
type: "string"
}
}
}
type: {
type: "string"
description: "The recipient type, check spec for valid options"
enum: ["Email", "Slack"]
}
}
}
}
report_format: {
type: "string"
enum: ["PNG", "CSV", "TEXT"]
}
sql: {
type: "string"
description: "A SQL statement that defines whether the alert should get triggered or not. The query is expected to return either NULL or a number value."
}
timezone: {
type: "string"
description: "A timezone string that represents the location of the timezone."
}
type: {
type: "string"
description: "The report schedule type"
enum: ["Alert", "Report"]
}
validator_config_json: {
type: "object"
properties: {
op: {
type: "string"
description: "The operation to compare with a threshold to apply to the SQL output\n"
enum: ["<", "<=", ">", ">=", "==", "!="]
}
threshold: {
type: "integer"
format: "int32"
}
}
}
validator_type: {
type: "string"
description: "Determines when to trigger alert based off value from alert query. Alerts will be triggered with these validator types:\n- Not Null - When the return value is Not NULL, Empty, or 0\n- Operator - When `sql_return_value comparison_operator threshold` is True e.g. `50 <= 75`
Supports the comparison operators <, <=, >, >=, ==, and !="
enum: ["not null", "operator"]
}
working_timeout: {
type: "integer"
format: "int32"
description: "If an alert is staled at a working state, how long until it's state is reseted to error"
}
}
}
output: {
type: "object"
properties: {
id: {
type: "number"
}
result: {
type: "object"
required: ["crontab", "name", "type"]
properties: {
active: {
type: "boolean"
}
chart: {
type: "integer"
format: "int32"
}
context_markdown: {
type: "string"
description: "Markdown description"
}
creation_method: {
description: "Creation method is used to inform the frontend whether the report/alert was created in the dashboard, chart, or alerts and reports UI."
type: "object"
}
crontab: {
type: "string"
description: "A CRON expression.[Crontab Guru](https://crontab.guru/) is a helpful resource that can help you craft a CRON expression."
}
dashboard: {
type: "integer"
format: "int32"
}
database: {
type: "integer"
format: "int32"
}
description: {
type: "string"
description: "Use a nice description to give context to this Alert/Report"
}
grace_period: {
type: "integer"
format: "int32"
description: "Once an alert is triggered, how long, in seconds, before Superset nags you again. (in seconds)"
}
log_retention: {
type: "integer"
format: "int32"
description: "How long to keep the logs around for this report (in days)"
}
name: {
type: "string"
description: "The report schedule name."
}
owners: {
type: "array"
items: {
type: "integer"
format: "int32"
description: "Owner are users ids allowed to delete or change this report. If left empty you will be one of the owners of the report."
}
}
recipients: {
type: "array"
items: {
type: "object"
required: ["type"]
properties: {
recipient_config_json: {
type: "object"
properties: {
target: {
type: "string"
}
}
}
type: {
type: "string"
description: "The recipient type, check spec for valid options"
enum: ["Email", "Slack"]
}
}
}
}
report_format: {
type: "string"
enum: ["PNG", "CSV", "TEXT"]
}
sql: {
type: "string"
description: "A SQL statement that defines whether the alert should get triggered or not. The query is expected to return either NULL or a number value."
}
timezone: {
type: "string"
description: "A timezone string that represents the location of the timezone."
}
type: {
type: "string"
description: "The report schedule type"
enum: ["Alert", "Report"]
}
validator_config_json: {
type: "object"
properties: {
op: {
type: "string"
description: "The operation to compare with a threshold to apply to the SQL output\n"
enum: ["<", "<=", ">", ">=", "==", "!="]
}
threshold: {
type: "integer"
format: "int32"
}
}
}
validator_type: {
type: "string"
description: "Determines when to trigger alert based off value from alert query. Alerts will be triggered with these validator types:\n- Not Null - When the return value is Not NULL, Empty, or 0\n- Operator - When `sql_return_value comparison_operator threshold` is True e.g. `50 <= 75`
Supports the comparison operators <, <=, >, >=, ==, and !="
enum: ["not null", "operator"]
}
working_timeout: {
type: "integer"
format: "int32"
description: "If an alert is staled at a working state, how long until it's state is reseted to error"
}
}
}
}
}
}