changedInput schema / properties / schedule / oneOf
Previous value: -[
- {
- "properties": {
- "expr": {
- "description": "Standard cron expression string.",
- "minLength": 1,
- "title": "Cron Expression",
- "type": "string"
- },
- "type": {
- "const": "cron",
- "type": "string"
- }
- },
- "required": [
- "type",
- "expr"
- ],
- "type": "object"
- },
- {
- "properties": {
- "rrule": {
- "description": "iCalendar recurrence rule (RFC 5545) string.",
- "minLength": 1,
- "title": "RRule",
- "type": "string"
- },
- "type": {
- "const": "rrule",
- "type": "string"
- }
- },
- "required": [
- "type",
- "rrule"
- ],
- "type": "object"
- },
- {
- "properties": {
- "at": {
- "description": "ISO 8601 timestamp for one-time execution.",
- "minLength": 1,
- "title": "At Time",
- "type": "string"
- },
- "type": {
- "const": "at",
- "type": "string"
- }
- },
- "required": [
- "type",
- "at"
- ],
- "type": "object"
- },
- {
- "properties": {
- "n": {
- "description": "Number of time units between executions.",
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "title": "Interval",
- "type": "integer"
- },
- "type": {
- "const": "every",
- "type": "string"
- },
- "unit": {
- "description": "Time unit for interval scheduling.",
- "enum": [
- "minutes",
- "hours"
- ],
- "title": "Time Unit",
- "type": "string"
- }
- },
- "required": [
- "type",
- "unit",
- "n"
- ],
- "type": "object"
- },
- {
- "properties": {
- "channelIds": {
- "description": "Optional channel scope: message channel UUIDs this automation is limited to. Omit for all channels (global). Only valid when every selected event supports channel scoping (see EVENT_CHANNEL_SCOPING).",
- "items": {
- "format": "uuid",
- "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
- "type": "string"
- },
- "minItems": 1,
- "title": "Channel IDs",
- "type": "array"
- },
- "condition": {
- "description": "Optional free-form natural-language condition (\"only run when …\"), up to 2000 characters, evaluated against each trigger event's payload; the automation runs only for events that satisfy it. Omit to run on every matching event.",
- "maxLength": 2000,
- "minLength": 1,
- "title": "Trigger Condition",
- "type": "string"
- },
- "conditionMode": {
- "description": "Server-derived; ignored on input. judge = the condition is decided from the event payload before the run starts; agent = the agent decides it at the start of every run.",
- "enum": [
- "judge",
- "agent"
- ],
- "title": "Condition Mode",
- "type": "string"
- },
- "conditionSchemaVersion": {
- "description": "Server-derived; ignored on input. The version of the event field guide the condition was judged against; absent when it was not judged.",
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "title": "Condition Schema Version",
- "type": "integer"
- },
- "delaySeconds": {
- "description": "Optional delay, in seconds, before running the automation after its trigger event fires (e.g. 1800 = 30 minutes after the event). Omit for immediate execution. Maximum 604800 (7 days).",
- "maximum": 604800,
- "minimum": 1,
- "title": "Delay (seconds)",
- "type": "integer"
- },
- "event": {
- "description": "Legacy single-event trigger (e.g., github.pr.created). Still accepted on read/write for backwards compatibility; prefer `events` for new writes. When both are present, `events` is canonical.",
- "minLength": 1,
- "title": "Event Name (legacy single-event form)",
- "type": "string"
- },
- "events": {
- "description": "Trigger events for this automation (e.g., [\"github.pr.created\", \"github.pr.dismissed\"]). The automation fires once per matching event occurrence. Canonical form — prefer this over the legacy `event` field.",
- "items": {
- "minLength": 1,
- "type": "string"
- },
- "maxItems": 20,
- "minItems": 1,
- "title": "Event Names",
- "type": "array"
- },
- "productIds": {
- "description": "Optional product scope: the products this automation is limited to. Omit for all products (global); an empty array is rejected so 'global' has one representation. Acts as a channel preset — at dispatch time the scoped products' currently linked message channels (product_channels) are resolved and the automation fires when the triggering event's channels intersect ANY of them. It additionally instructs the agent to scope the run's output to those products. May be combined with channelIds — both scopes must pass (AND semantics).",
- "items": {
- "format": "uuid",
- "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
- "type": "string"
- },
- "minItems": 1,
- "title": "Product IDs",
- "type": "array"
- },
- "targetBranches": {
- "description": "Optional case-sensitive allowlist of GitHub PR base_ref branches. Names match exactly; * matches zero or more characters, including slashes. Only valid for GitHub PR triggers. Omit for all target branches; channel and product scopes must also pass. Nonmatching events are skipped before launching a workflow or agent.",
- "items": {
- "minLength": 1,
- "pattern": "^[^\\s\\p{Cc}~^:?[\\]\\\\]+$",
- "type": "string"
- },
- "minItems": 1,
- "title": "Target Branches",
- "type": "array"
- },
- "type": {
- "const": "event",
- "type": "string"
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "properties": {
+ "expr": {
+ "description": "Standard cron expression string.",
+ "minLength": 1,
+ "title": "Cron Expression",
+ "type": "string"
+ },
+ "type": {
+ "const": "cron",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "expr"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "rrule": {
+ "description": "iCalendar recurrence rule (RFC 5545) string.",
+ "minLength": 1,
+ "title": "RRule",
+ "type": "string"
+ },
+ "type": {
+ "const": "rrule",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "rrule"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "at": {
+ "description": "ISO 8601 timestamp for one-time execution.",
+ "minLength": 1,
+ "title": "At Time",
+ "type": "string"
+ },
+ "type": {
+ "const": "at",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "at"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "n": {
+ "description": "Number of time units between executions.",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "title": "Interval",
+ "type": "integer"
+ },
+ "type": {
+ "const": "every",
+ "type": "string"
+ },
+ "unit": {
+ "description": "Time unit for interval scheduling.",
+ "enum": [
+ "minutes",
+ "hours"
+ ],
+ "title": "Time Unit",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "unit",
+ "n"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "channelIds": {
+ "description": "Optional channel scope: message channel UUIDs this automation is limited to. Omit for all channels (global). Only valid when every selected event supports channel scoping (see EVENT_CHANNEL_SCOPING).",
+ "items": {
+ "format": "uuid",
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
+ "type": "string"
+ },
+ "minItems": 1,
+ "title": "Channel IDs",
+ "type": "array"
+ },
+ "condition": {
+ "description": "Optional free-form natural-language condition (\"only run when …\"), up to 2000 characters, evaluated against each trigger event's payload; the automation runs only for events that satisfy it. Omit to run on every matching event. A condition also satisfies an event that requires a channel or product scope.",
+ "maxLength": 2000,
+ "minLength": 1,
+ "title": "Trigger Condition",
+ "type": "string"
+ },
+ "conditionMode": {
+ "description": "Server-derived; ignored on input. judge = the condition is decided from the event payload before the run starts; agent = the agent decides it at the start of every run.",
+ "enum": [
+ "judge",
+ "agent"
+ ],
+ "title": "Condition Mode",
+ "type": "string"
+ },
+ "conditionSchemaVersion": {
+ "description": "Server-derived; ignored on input. The version of the event field guide the condition was judged against; absent when it was not judged.",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "title": "Condition Schema Version",
+ "type": "integer"
+ },
+ "delaySeconds": {
+ "description": "Optional delay, in seconds, before running the automation after its trigger event fires (e.g. 1800 = 30 minutes after the event). Omit for immediate execution. Maximum 604800 (7 days).",
+ "maximum": 604800,
+ "minimum": 1,
+ "title": "Delay (seconds)",
+ "type": "integer"
+ },
+ "event": {
+ "description": "Legacy single-event trigger (e.g., github.pr.created). Still accepted on read/write for backwards compatibility; prefer `events` for new writes. When both are present, `events` is canonical.",
+ "minLength": 1,
+ "title": "Event Name (legacy single-event form)",
+ "type": "string"
+ },
+ "events": {
+ "description": "Trigger events for this automation (e.g., [\"github.pr.created\", \"github.pr.dismissed\"]). The automation fires once per matching event occurrence. Canonical form — prefer this over the legacy `event` field.",
+ "items": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 20,
+ "minItems": 1,
+ "title": "Event Names",
+ "type": "array"
+ },
+ "productIds": {
+ "description": "Optional product scope: the products this automation is limited to. Omit for all products (global); an empty array is rejected so 'global' has one representation. Acts as a channel preset — at dispatch time the scoped products' currently linked message channels (product_channels) are resolved and the automation fires when the triggering event's channels intersect ANY of them. It additionally instructs the agent to scope the run's output to those products. May be combined with channelIds — both scopes must pass (AND semantics).",
+ "items": {
+ "format": "uuid",
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
+ "type": "string"
+ },
+ "minItems": 1,
+ "title": "Product IDs",
+ "type": "array"
+ },
+ "targetBranches": {
+ "description": "Optional case-sensitive allowlist of GitHub PR base_ref branches. Names match exactly; * matches zero or more characters, including slashes. Only valid for GitHub PR triggers. Omit for all target branches; channel and product scopes must also pass. Nonmatching events are skipped before launching a workflow or agent.",
+ "items": {
+ "minLength": 1,
+ "pattern": "^[^\\s\\p{Cc}~^:?[\\]\\\\]+$",
+ "type": "string"
+ },
+ "minItems": 1,
+ "title": "Target Branches",
+ "type": "array"
+ },
+ "type": {
+ "const": "event",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ }
+]