{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/RegisterTaskRequest",
"title": "RegisterTaskRequest",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Unique task name"
},
"entryPoint": {
"type": "string",
"description": "Fully qualified class name implementing IBackgroundTask"
},
"trigger": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"SystemTrigger",
"TimeTrigger",
"MaintenanceTrigger",
"PushNotificationTrigger",
"LocationTrigger",
"BluetoothLEAdvertisementWatcherTrigger",
"DeviceUseTrigger",
"ActivitySensorTrigger",
"GattCharacteristicNotificationTrigger",
"MediaProcessingTrigger"
],
"description": "Trigger type"
},
"systemTriggerType": {
"type": "string",
"enum": [
"SmsReceived",
"UserPresent",
"UserAway",
"NetworkStateChange",
"ControlChannelReset",
"InternetAvailable",
"SessionConnected",
"ServicingComplete",
"LockScreenApplicationAdded",
"LockScreenApplicationRemoved",
"TimeZoneChange",
"OnlineIdConnectedStateChange",
"BackgroundWorkCostChange",
"PowerStateChange"
],
"description": "System trigger type (for SystemTrigger)"
},
"freshnessTime": {
"type": "integer",
"description": "Interval in minutes (for TimeTrigger)"
},
"oneShot": {
"type": "boolean",
"description": "Whether the trigger fires only once"
}
},
"required": [
"type"
]
},
"conditions": {
"type": "array",
"items": {
"type": "string",
"enum": [
"InternetAvailable",
"InternetNotAvailable",
"SessionConnected",
"SessionDisconnected",
"UserPresent",
"UserNotPresent",
"FreeNetworkAvailable",
"BackgroundWorkCostNotHigh"
]
}
},
"isNetworkRequested": {
"type": "boolean",
"description": "Whether the task requires network access",
"default": false
}
},
"required": [
"name",
"entryPoint",
"trigger"
]
}