|
8 | 8 | "configuration": { |
9 | 9 | "type": "object", |
10 | 10 | "title": "Operations Agent Configuration", |
11 | | - "description": "User specified configuration containing goals, instructions, data sources, and actions of the agent.", |
| 11 | + "description": "User specified configuration containing instructions, data sources, actions, message destination, and identity of the agent.", |
12 | 12 | "properties": { |
13 | | - "goals": { |
14 | | - "type": "string", |
15 | | - "description": "Business goals for the agent to accomplish." |
16 | | - }, |
17 | 13 | "instructions": { |
18 | 14 | "type": "string", |
19 | 15 | "description": "Explicit instructions or procedures for the agent to follow." |
20 | 16 | }, |
21 | 17 | "dataSources": { |
22 | 18 | "type": "object", |
| 19 | + "description": "Map of user-chosen data source aliases to data source objects or variable reference strings.", |
23 | 20 | "additionalProperties": { |
24 | | - "$ref": "#/definitions/dataSource" |
| 21 | + "oneOf": [ |
| 22 | + { "$ref": "#/definitions/dataSource" }, |
| 23 | + { "$ref": "#/definitions/variableReference" } |
| 24 | + ] |
25 | 25 | } |
26 | 26 | }, |
27 | 27 | "actions": { |
28 | 28 | "type": "object", |
| 29 | + "description": "Map of user-chosen action aliases to action objects.", |
29 | 30 | "additionalProperties": { |
30 | 31 | "$ref": "#/definitions/action" |
31 | 32 | } |
32 | 33 | }, |
33 | | - "recipient": { |
34 | | - "type": "string" |
| 34 | + "messageDestination": { |
| 35 | + "$ref": "#/definitions/messageDestination" |
| 36 | + }, |
| 37 | + "identity": { |
| 38 | + "$ref": "#/definitions/agentIdentity" |
35 | 39 | } |
36 | 40 | }, |
37 | 41 | "required": [ |
38 | | - "goals", |
39 | 42 | "instructions", |
40 | 43 | "dataSources", |
41 | 44 | "actions" |
|
56 | 59 | ], |
57 | 60 | "additionalProperties": false, |
58 | 61 | "definitions": { |
| 62 | + "variableReference": { |
| 63 | + "type": "string", |
| 64 | + "description": "Reference to a variable in a Fabric variable library, in the form $(/<WorkspaceName>/<LibraryName>/<VariableName>).", |
| 65 | + "pattern": "^\\$\\(/[^/]+/[^/]+/[^/]+\\)$" |
| 66 | + }, |
59 | 67 | "dataSource": { |
60 | 68 | "type": "object", |
61 | 69 | "properties": { |
|
66 | 74 | "type": { |
67 | 75 | "type": "string", |
68 | 76 | "enum": [ |
69 | | - "KustoDatabase" |
| 77 | + "KustoDatabase", |
| 78 | + "Ontology" |
70 | 79 | ] |
71 | 80 | }, |
72 | 81 | "workspaceId": { |
|
96 | 105 | "kind": { |
97 | 106 | "type": "string", |
98 | 107 | "enum": [ |
99 | | - "PowerAutomateAction" |
| 108 | + "PowerAutomateAction", |
| 109 | + "FabricJobAction" |
100 | 110 | ] |
101 | 111 | }, |
102 | 112 | "parameters": { |
103 | 113 | "type": "array", |
104 | 114 | "items": { |
105 | 115 | "$ref": "#/definitions/parameter" |
106 | 116 | } |
| 117 | + }, |
| 118 | + "connection": { |
| 119 | + "$ref": "#/definitions/fabricItemConnection" |
107 | 120 | } |
108 | 121 | }, |
109 | 122 | "required": [ |
110 | 123 | "id", |
111 | 124 | "displayName", |
112 | 125 | "description", |
113 | 126 | "kind" |
| 127 | + ], |
| 128 | + "allOf": [ |
| 129 | + { |
| 130 | + "if": { |
| 131 | + "properties": { "kind": { "const": "FabricJobAction" } }, |
| 132 | + "required": ["kind"] |
| 133 | + }, |
| 134 | + "then": { |
| 135 | + "required": ["connection"] |
| 136 | + } |
| 137 | + } |
114 | 138 | ] |
115 | 139 | }, |
| 140 | + "fabricItemConnection": { |
| 141 | + "type": "object", |
| 142 | + "description": "Specifies the Fabric item and job to invoke for a FabricJobAction.", |
| 143 | + "properties": { |
| 144 | + "jobArtifactId": { |
| 145 | + "type": "string", |
| 146 | + "format": "uuid", |
| 147 | + "description": "Artifact (item) ID of the Fabric item to run the job on." |
| 148 | + }, |
| 149 | + "jobWorkspaceId": { |
| 150 | + "type": "string", |
| 151 | + "format": "uuid", |
| 152 | + "description": "Workspace ID containing the item." |
| 153 | + }, |
| 154 | + "itemType": { |
| 155 | + "type": "string", |
| 156 | + "description": "The Fabric item type (for example, DataPipeline, Notebook)." |
| 157 | + }, |
| 158 | + "jobType": { |
| 159 | + "type": "string", |
| 160 | + "description": "The job type to invoke on the item (for example, Pipeline, RunNotebook)." |
| 161 | + }, |
| 162 | + "subItemId": { |
| 163 | + "type": "string", |
| 164 | + "description": "Identifier for the sub-item being targeted by the job, when applicable." |
| 165 | + } |
| 166 | + }, |
| 167 | + "required": [ |
| 168 | + "jobArtifactId", |
| 169 | + "jobWorkspaceId", |
| 170 | + "itemType", |
| 171 | + "jobType" |
| 172 | + ], |
| 173 | + "additionalProperties": false |
| 174 | + }, |
116 | 175 | "parameter": { |
117 | 176 | "type": "object", |
118 | 177 | "properties": { |
|
127 | 186 | "name" |
128 | 187 | ], |
129 | 188 | "additionalProperties": false |
| 189 | + }, |
| 190 | + "messageDestination": { |
| 191 | + "description": "Polymorphic destination for agent notifications. Selected by the kind discriminator.", |
| 192 | + "oneOf": [ |
| 193 | + { "$ref": "#/definitions/recipientDestination" }, |
| 194 | + { "$ref": "#/definitions/teamsChannelDestination" } |
| 195 | + ] |
| 196 | + }, |
| 197 | + "recipientDestination": { |
| 198 | + "type": "object", |
| 199 | + "properties": { |
| 200 | + "kind": { |
| 201 | + "type": "string", |
| 202 | + "const": "Recipient" |
| 203 | + }, |
| 204 | + "recipient": { |
| 205 | + "type": "string", |
| 206 | + "description": "The UPN of the recipient." |
| 207 | + } |
| 208 | + }, |
| 209 | + "required": [ |
| 210 | + "kind", |
| 211 | + "recipient" |
| 212 | + ], |
| 213 | + "additionalProperties": false |
| 214 | + }, |
| 215 | + "teamsChannelDestination": { |
| 216 | + "type": "object", |
| 217 | + "properties": { |
| 218 | + "kind": { |
| 219 | + "type": "string", |
| 220 | + "const": "TeamsChannel" |
| 221 | + }, |
| 222 | + "teamId": { |
| 223 | + "type": "string", |
| 224 | + "description": "The Teams team ID." |
| 225 | + }, |
| 226 | + "channelId": { |
| 227 | + "type": "string", |
| 228 | + "description": "The Teams channel ID." |
| 229 | + } |
| 230 | + }, |
| 231 | + "required": [ |
| 232 | + "kind", |
| 233 | + "teamId", |
| 234 | + "channelId" |
| 235 | + ], |
| 236 | + "additionalProperties": false |
| 237 | + }, |
| 238 | + "agentIdentity": { |
| 239 | + "type": "object", |
| 240 | + "description": "Identity information for the agent, used for agent OBO / app-only scenarios on ALM import/export.", |
| 241 | + "properties": { |
| 242 | + "principalId": { |
| 243 | + "type": "string", |
| 244 | + "description": "The principal ID for the agent identity." |
| 245 | + }, |
| 246 | + "blueprintId": { |
| 247 | + "type": "string", |
| 248 | + "description": "The agent identity blueprint ID." |
| 249 | + }, |
| 250 | + "mode": { |
| 251 | + "type": "string", |
| 252 | + "enum": ["Delegated"], |
| 253 | + "description": "Execution mode." |
| 254 | + }, |
| 255 | + "sponsor": { |
| 256 | + "type": "string", |
| 257 | + "description": "The UPN of the sponsor user. Required when messageDestination is a non-Recipient kind." |
| 258 | + } |
| 259 | + }, |
| 260 | + "additionalProperties": false |
130 | 261 | } |
131 | 262 | } |
132 | 263 | } |
0 commit comments