Skip to content

Create



POST /api/v1/incidents/schedule/add

Overview

Create a schedule

Body Request Parameters

Parameter Name Type Required Description
name string Y Name
Allow null: False
Max length: 256
Allow empty string: False
timezone string Timezone, default Asia/Shanghai
Example: Asia/Shanghai
Allow null: False
Max length: 48
start string Y Time period start time
Example: 00:00
Allow null: False
Max length: 48
end string Y Time period end time
Example: 23:59
Allow null: False
Max length: 48
tagFilter array Filter tag corresponding uuid list
Allow null: False
Example: ['tag1', 'tag2']
dimensionFilter string Filter dimension
Allow null: False
Example: host:127.0.0.1
notifyTargets array Y Notification targets, includes account uuid, notification target uuid, email
Example: ['acnt_xxx', 'notify_', '[email protected]']
Allow null: False
extend json Extended information, includes rotation notification target configuration
Allow null: False
extend.enableRotateNotification boolean Whether to enable rotation, default off
Example: False
Allow null: False
extend.rotationCycle string Rotation cycle, day: day, week: week, month: month, workday: workDay, weekend: weekend
Example: day
Allow null: False
Optional values: ['day', 'week', 'month', 'workDay', 'weekend']
extend.effectiveTime json Schedule effective period, default this schedule is permanently effective, start/end time is 11-digit timestamp
Example: {'start': 1719990196, 'end': 1729990196}
Allow null: False
scheduleStrategy array Escalation strategy rules

Parameter Supplementary Description

1. Request Parameter Description

Parameter Name type Required Description
name String Required Schedule name
start String Required Time period start time
end String Required Time period end time
timezone String Timezone
tagFilter array Filter tag corresponding uuid list
dimensionFilter array Dimension filter, currently supports equal and wildcard logic
notifyTargets array Required Notification targets, includes account uuid, notification target uuid, email
extend Json Extended information
scheduleStrategy Json Escalation strategy rules

2. dimensionFilter Parameter Description Dimension filter, currently supports equal and wildcard logic, format is key:value, for example host:127.0.0.1 means only includes dimensions where host is 127.0.0.1. Wildcard logic supports * wildcard, for example host:127.0.0.* means only includes dimensions where host starts with 127.0.0.. Also supports multiple conditions OR\AND, for example host:127.0.0.1 AND service:mysql Currently supported dimension fields are as follows: host, service, resource, pod_name, app_name, env, url


3. Parameter Description in extend

Parameter Name type Required Description
enableRotateNotification Boolean Whether to enable notification target rotation, default off
rotationCycle string Rotation cycle after enabling notification target rotation
effectiveTime json Schedule effective time configuration, default this schedule is permanently effective, start/end time is 11-digit timestamp

4. Parameter Description in scheduleStrategy

Parameter Name type Required Description
scheduleStrategy[].uuid string Y Unique uuid
scheduleStrategy[].name string Y Strategy name
scheduleStrategy[].strategy array N Escalation strategy list
scheduleStrategy[].strategy[].level integer Y Level
scheduleStrategy[].strategy[].notifyConfig array Y Notification configuration list
scheduleStrategy[].strategy[].notifyConfig[].notifyType array Y Notification target type member - member object - notification target
scheduleStrategy[].strategy[].notifyConfig[].notifyObject array Y Notification target list, watchkeeper represents the current on-duty person
scheduleStrategy[].strategy[].notifyConfig[].notifyMethod array N Notification method, if it's a notification target then no need to pass mobile - phone message - SMS email - email
scheduleStrategy[].strategy[].ifRepeatNotify boolean Y Whether to repeat sending notifications
scheduleStrategy[].strategy[].repeatNotifyInterval integer N Repeat notification sending interval, unit seconds
scheduleStrategy[].strategy[].levelUpTime integer N Escalation duration time
scheduleStrategy[].strategy[].incidentsLevel array N Corresponding incident level list
scheduleStrategy[].strategy[].incidentsStatus array N Corresponding incident status open - unassigned working - in progress

scheduleStrategy field example:

  [
    {
        "uuid": "",
        "name": "AAA",
        "strategy": [
            {
                "level": 0,
                "notifyConfig": [
                    {
                        "notifyObjectType": "member",
                        "notifyObject": ["watchkeeper"]
                    }
                    {
                        "notifyObjectType": "member",
                        "notifyObject": ["uuid_xxx1"]
                    }
                ],
                "ifRepeatNotify": true,
                "repeatNotifyInterval": 300
            },
            {
                "level": 1,
                "notifyConfig": [
                    {
                        "notifyObjectType": "member",
                        "notifyObject": ["uuid_xxx1"],
                        "notifyMethod": ["mobile", "message", "email"]
                    },
                    {
                        "notifyObjectType": "group",
                        "notifyObject": ["uuid_xxx2"],
                        "notifyMethod": ["mobile", "message", "email"]
                    }
                ],
                "ifRepeatNotify": true,
                "repeatNotifyInterval": 300,
                "levelUpTime": 1800,
                "incidentsLevel": ["uuid_xxxx"],
                "incidentsStatus": ["open"]
            }
        ]
    },
    {
        "uuid": "",
        "name": "BBB",
        "strategy": [
            {
                "level": 0,
                "notifyConfig": [
                    {
                        "notifyObject": "uuid_xxx"
                    }
                ],
                "ifRepeatNotify": true,
                "repeatNotifyInterval": 300
            }
        ]
    }
]

Request Example

curl 'https://openapi.truewatch.com/api/v1/incidents/schedule/add' \
-H 'DF-API-KEY: <DF-API-KEY>' \
-H 'Content-Type: application/json;charset=UTF-8' \
--data-raw '{"name":"test","timezone":"Asia/Shanghai","start":"00:00","end":"23:59","tagFilter":[],"dimensionFilter":"host:172.16.242.113","scheduleStrategy":[{"name":"test","uuid":"4c5851c0-f692-11f0-9ba3-87705656b525","strategy":[{"level":0,"notifyConfig":[{"notifyMethod":["email","message"],"notifyObject":["watchkeeper"],"notifyObjectType":"member"},{"notifyMethod":[],"notifyObject":["notify_xxx"],"notifyObjectType":"notify"}],"ifRepeatNotify":false,"repeatNotifyInterval":null},{"level":1,"levelUpTime":1800,"notifyConfig":[{"notifyMethod":["email"],"notifyObject":["acnt_xxxx"],"notifyObjectType":"member"}],"ifRepeatNotify":true,"incidentsLevel":["system_level_0"],"incidentsStatus":["open"],"repeatNotifyInterval":300}]}],"notifyTargets":["acnt_xxx"],"extend":{"enableRotateNotification":false,"rotationCycle":"day"}}' \
--compressed

Response

{
    "code": 200,
    "content": {
        "workspaceUUID": "wksp_xxx",
        "name": "test",
        "timezone": "Asia/Shanghai",
        "start": "00:00",
        "end": "23:59",
        "tagFilter": [],
        "dimensionFilter": "host:172.16.242.113",
        "notifyTargets": [
            "acnt_xxx"
        ],
        "strategyConfig": [
            {
                "name": "test",
                "uuid": "4c5851c0-f692-11f0-9ba3-87705656b525",
                "strategy": [
                    {
                        "level": 0,
                        "notifyConfig": [
                            {
                                "notifyMethod": [
                                    "email",
                                    "message"
                                ],
                                "notifyObject": [
                                    "watchkeeper"
                                ],
                                "notifyObjectType": "member"
                            },
                            {
                                "notifyMethod": [],
                                "notifyObject": [
                                    "notify_xxx"
                                ],
                                "notifyObjectType": "notify"
                            }
                        ],
                        "ifRepeatNotify": false,
                        "repeatNotifyInterval": null
                    },
                    {
                        "level": 1,
                        "levelUpTime": 1800,
                        "notifyConfig": [
                            {
                                "notifyMethod": [
                                    "email"
                                ],
                                "notifyObject": [
                                    "acnt_xxx"
                                ],
                                "notifyObjectType": "member"
                            }
                        ],
                        "ifRepeatNotify": true,
                        "incidentsLevel": [
                            "system_level_0"
                        ],
                        "incidentsStatus": [
                            "open"
                        ],
                        "repeatNotifyInterval": 300
                    }
                ]
            }
        ],
        "extend": {
            "enableRotateNotification": false,
            "rotationCycle": "day"
        },
        "isDefault": false,
        "rotationUpdateAt": 1768989775,
        "id": 9180,
        "uuid": "incsch_xxx",
        "status": 0,
        "creator": "acnt_xxx",
        "updator": "acnt_xxx",
        "createAt": 1768964659,
        "deleteAt": -1,
        "updateAt": 1768989775
    },
    "errorCode": "",
    "message": "",
    "success": true,
    "traceId": "xxx"
}