@reveldigital/mcp-graphql-proxy 2.1.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/query-builder.d.ts.map +1 -1
- package/dist/core/query-builder.js +37 -0
- package/dist/core/query-builder.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +64 -2
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/index.js +784 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/types/schema.graphql +612 -29
package/src/types/schema.graphql
CHANGED
|
@@ -341,6 +341,23 @@ type Query {
|
|
|
341
341
|
order: [AdHawkDeviceMediaImpressionsSortInput!] @cost(weight: "10")
|
|
342
342
|
): [AdHawkDeviceMediaImpressions] @cost(weight: "10")
|
|
343
343
|
"""
|
|
344
|
+
Gets alert rules for the authenticated account.
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
**Returns:**
|
|
348
|
+
List of alert rules
|
|
349
|
+
"""
|
|
350
|
+
alertRule(
|
|
351
|
+
"Filter by specific alert rule IDs (encrypted)"
|
|
352
|
+
id: [String!]
|
|
353
|
+
"Filter by organization ID (encrypted)"
|
|
354
|
+
orgId: String
|
|
355
|
+
"Maximum number of items to return"
|
|
356
|
+
limit: Int
|
|
357
|
+
where: AlertRuleFilterInput @cost(weight: "10")
|
|
358
|
+
order: [AlertRuleSortInput!] @cost(weight: "10")
|
|
359
|
+
): [AlertRule] @cost(weight: "10")
|
|
360
|
+
"""
|
|
344
361
|
Gets alerts for the authenticated account.
|
|
345
362
|
|
|
346
363
|
|
|
@@ -395,6 +412,20 @@ type Query {
|
|
|
395
412
|
where: AuditEventFilterInput @cost(weight: "10")
|
|
396
413
|
order: [AuditEventSortInput!] @cost(weight: "10")
|
|
397
414
|
): [AuditEvent!]! @cost(weight: "10")
|
|
415
|
+
"""
|
|
416
|
+
Fetches a normalized dataset from a registered connector data source through the broker.
|
|
417
|
+
The caller never sends SQL; it references a datasetId on a
|
|
418
|
+
datasourceId plus validated params. The tenant is
|
|
419
|
+
resolved from the caller's API key / bearer, never supplied by the caller.
|
|
420
|
+
"""
|
|
421
|
+
connectorData(
|
|
422
|
+
"The registered data source identifier."
|
|
423
|
+
datasourceId: String
|
|
424
|
+
"The registered dataset identifier on that source."
|
|
425
|
+
datasetId: String
|
|
426
|
+
"Optional validated parameters for the dataset (JSON object)."
|
|
427
|
+
params: [Any]
|
|
428
|
+
): ConnectorData @cost(weight: "10")
|
|
398
429
|
"Lists data tables in the account, with optional group filtering."
|
|
399
430
|
dataTables(
|
|
400
431
|
"Optional group ID to filter by"
|
|
@@ -438,6 +469,10 @@ type Query {
|
|
|
438
469
|
inRange value is between from and to (inclusive)
|
|
439
470
|
outOfRange value is outside [from, to]
|
|
440
471
|
|
|
472
|
+
Set operators (require a non-empty `values` array):
|
|
473
|
+
in value matches one of the entries in `values`
|
|
474
|
+
notIn value matches none of the entries in `values`
|
|
475
|
+
|
|
441
476
|
No-value operators (no `value` / `from` / `to`):
|
|
442
477
|
isEmpty column is null / empty string
|
|
443
478
|
isNotEmpty column has a value
|
|
@@ -465,6 +500,7 @@ type Query {
|
|
|
465
500
|
{"price": {"op": "gte", "value": 25}}
|
|
466
501
|
{"name": {"op": "contains", "value": "pizza"}}
|
|
467
502
|
{"score": {"op": "inRange", "from": 0, "to": 100}}
|
|
503
|
+
{"category": {"op": "in", "values": ["Entree", "Dessert"]}}
|
|
468
504
|
{"deletedAt": {"op": "isEmpty"}}
|
|
469
505
|
{"publishAt": {"op": "beforeNow"}}
|
|
470
506
|
|
|
@@ -623,6 +659,17 @@ type Query {
|
|
|
623
659
|
}
|
|
624
660
|
|
|
625
661
|
type Mutation {
|
|
662
|
+
"""
|
|
663
|
+
Create a new alert rule.
|
|
664
|
+
Example: An AI agent creates a rule that fires when a lobby display goes offline.
|
|
665
|
+
"""
|
|
666
|
+
createAlertRule(input: AlertRuleInput): AlertRuleMutationResult
|
|
667
|
+
@cost(weight: "10")
|
|
668
|
+
"Update an existing alert rule."
|
|
669
|
+
updateAlertRule(input: AlertRuleInput): AlertRuleMutationResult
|
|
670
|
+
@cost(weight: "10")
|
|
671
|
+
"Delete an alert rule."
|
|
672
|
+
deleteAlertRule(id: String): AlertRuleMutationResult @cost(weight: "10")
|
|
626
673
|
"""
|
|
627
674
|
Create a new data table with the specified column schema.
|
|
628
675
|
Example: Create a menu board table with columns for item name, price, description, and image.
|
|
@@ -779,6 +826,60 @@ type Mutation {
|
|
|
779
826
|
"""
|
|
780
827
|
reorderPlaylistSources(input: ReorderPlaylistSourcesInput): PlaylistMutationResult
|
|
781
828
|
@cost(weight: "10")
|
|
829
|
+
"""
|
|
830
|
+
Update a template's properties (name, tags, dimensions, colors, etc.).
|
|
831
|
+
Example: AI adjusts template dimensions to optimize for a new display resolution.
|
|
832
|
+
"""
|
|
833
|
+
updateTemplate(input: UpdateTemplateInput): TemplateMutationResult
|
|
834
|
+
@cost(weight: "10")
|
|
835
|
+
"""
|
|
836
|
+
Add a new module to a template.
|
|
837
|
+
Example: AI adds a new weather module to show real-time conditions in the corner.
|
|
838
|
+
"""
|
|
839
|
+
addTemplateModule(input: AddTemplateModuleInput): ModuleMutationResult
|
|
840
|
+
@cost(weight: "10")
|
|
841
|
+
"""
|
|
842
|
+
Update a module within a template.
|
|
843
|
+
Example: AI repositions a module based on engagement analytics, or changes the assigned playlist.
|
|
844
|
+
"""
|
|
845
|
+
updateTemplateModule(input: UpdateTemplateModuleInput): ModuleMutationResult
|
|
846
|
+
@cost(weight: "10")
|
|
847
|
+
"""
|
|
848
|
+
Remove a module from a template.
|
|
849
|
+
Example: AI removes an underperforming ad module to optimize content flow.
|
|
850
|
+
"""
|
|
851
|
+
removeTemplateModule(input: RemoveTemplateModuleInput): ModuleMutationResult
|
|
852
|
+
@cost(weight: "10")
|
|
853
|
+
"""
|
|
854
|
+
Reorder modules within a template by updating their sequence/z-order.
|
|
855
|
+
Example: AI reorders modules to bring important content to the front based on viewer engagement.
|
|
856
|
+
"""
|
|
857
|
+
reorderTemplateModules(input: ReorderTemplateModulesInput): TemplateMutationResult
|
|
858
|
+
@cost(weight: "10")
|
|
859
|
+
"""
|
|
860
|
+
Batch update multiple modules in a template at once.
|
|
861
|
+
Example: AI repositions all modules to create a new layout optimized for viewer attention.
|
|
862
|
+
"""
|
|
863
|
+
batchUpdateTemplateModules(input: BatchUpdateTemplateModulesInput): BatchModuleMutationResult
|
|
864
|
+
@cost(weight: "10")
|
|
865
|
+
"""
|
|
866
|
+
Set all options for a module (replaces existing options).
|
|
867
|
+
Example: AI configures a weather module with location, units, and API key settings.
|
|
868
|
+
"""
|
|
869
|
+
setModuleOptions(input: SetModuleOptionsInput): ModuleMutationResult
|
|
870
|
+
@cost(weight: "10")
|
|
871
|
+
"""
|
|
872
|
+
Add or update a single module option.
|
|
873
|
+
Example: AI updates the refresh interval for a web module.
|
|
874
|
+
"""
|
|
875
|
+
upsertModuleOption(input: UpsertModuleOptionInput): ModuleOptionMutationResult
|
|
876
|
+
@cost(weight: "10")
|
|
877
|
+
"""
|
|
878
|
+
Remove a module option by name.
|
|
879
|
+
Example: AI removes an outdated configuration setting from a module.
|
|
880
|
+
"""
|
|
881
|
+
removeModuleOption(input: RemoveModuleOptionInput): ModuleOptionMutationResult
|
|
882
|
+
@cost(weight: "10")
|
|
782
883
|
}
|
|
783
884
|
|
|
784
885
|
"Aggregated audience metrics for a device over a time period"
|
|
@@ -1229,6 +1330,67 @@ type AlertDevice {
|
|
|
1229
1330
|
name: String
|
|
1230
1331
|
}
|
|
1231
1332
|
|
|
1333
|
+
"Full alert rule model. An alert rule defines the conditions that trigger alerts."
|
|
1334
|
+
type AlertRule {
|
|
1335
|
+
"The alert rule id (encrypted)"
|
|
1336
|
+
id: String
|
|
1337
|
+
"The name of the alert rule"
|
|
1338
|
+
name: String
|
|
1339
|
+
"""
|
|
1340
|
+
The rule set configuration as a JSON string. See AlertRuleInput.ruleSet for the full
|
|
1341
|
+
schema, supported condition types, operators, and value semantics.
|
|
1342
|
+
"""
|
|
1343
|
+
ruleSet: String
|
|
1344
|
+
"""
|
|
1345
|
+
Indicates whether the alert rule is currently enabled and will be evaluated.
|
|
1346
|
+
When false, the rule is stored but never triggers alerts.
|
|
1347
|
+
"""
|
|
1348
|
+
isEnabled: Boolean
|
|
1349
|
+
"The look-back / evaluation period, in minutes, used by time-window based conditions."
|
|
1350
|
+
period: Int
|
|
1351
|
+
"""
|
|
1352
|
+
A legacy scalar threshold value retained for backward compatibility. Thresholds for new
|
|
1353
|
+
rules are expressed inside the rule set (AlertRuleInput.ruleSet) via each item's "value" instead.
|
|
1354
|
+
"""
|
|
1355
|
+
threshold: Int
|
|
1356
|
+
"Optional HTTPS webhook URL that is invoked (HTTP POST) when the rule triggers."
|
|
1357
|
+
webhookUrl: String
|
|
1358
|
+
"""
|
|
1359
|
+
When true, the rule is evaluated against every device in the account and
|
|
1360
|
+
DeviceIds is empty. When false, only DeviceIds are evaluated.
|
|
1361
|
+
"""
|
|
1362
|
+
allDevices: Boolean
|
|
1363
|
+
"""
|
|
1364
|
+
When true, all users in the account are notified and UserIds is empty.
|
|
1365
|
+
When false, only the users in UserIds are notified.
|
|
1366
|
+
"""
|
|
1367
|
+
allUsers: Boolean
|
|
1368
|
+
"The date and time the alert rule was created"
|
|
1369
|
+
createdOn: DateTime
|
|
1370
|
+
"The date and time the alert rule was last updated"
|
|
1371
|
+
updatedOn: DateTime
|
|
1372
|
+
"""
|
|
1373
|
+
The devices explicitly associated with the rule (encrypted ids).
|
|
1374
|
+
Empty when AllDevices is true.
|
|
1375
|
+
"""
|
|
1376
|
+
deviceIds: [String]
|
|
1377
|
+
"""
|
|
1378
|
+
The users explicitly notified by the rule (encrypted ids).
|
|
1379
|
+
Empty when AllUsers is true.
|
|
1380
|
+
"""
|
|
1381
|
+
userIds: [String]
|
|
1382
|
+
}
|
|
1383
|
+
|
|
1384
|
+
"Result from an alert rule mutation."
|
|
1385
|
+
type AlertRuleMutationResult {
|
|
1386
|
+
"Whether the operation was successful."
|
|
1387
|
+
success: Boolean!
|
|
1388
|
+
"The created or updated alert rule."
|
|
1389
|
+
alertRule: AlertRule
|
|
1390
|
+
"Error message if the operation failed."
|
|
1391
|
+
error: String
|
|
1392
|
+
}
|
|
1393
|
+
|
|
1232
1394
|
"Alert rule summary (minimal info included with alerts)"
|
|
1233
1395
|
type AlertRuleSummary {
|
|
1234
1396
|
"The alert rule id (encrypted)"
|
|
@@ -1299,6 +1461,18 @@ type BatchDeleteDataTableRowsResult {
|
|
|
1299
1461
|
error: String
|
|
1300
1462
|
}
|
|
1301
1463
|
|
|
1464
|
+
"Result from batch updating multiple modules."
|
|
1465
|
+
type BatchModuleMutationResult {
|
|
1466
|
+
"Total number of modules attempted."
|
|
1467
|
+
totalModules: Int!
|
|
1468
|
+
"Number of successful updates."
|
|
1469
|
+
successCount: Int!
|
|
1470
|
+
"Number of failed updates."
|
|
1471
|
+
failureCount: Int!
|
|
1472
|
+
"Per-module results."
|
|
1473
|
+
results: [ModuleMutationResult]
|
|
1474
|
+
}
|
|
1475
|
+
|
|
1302
1476
|
type BatchRowResultModel {
|
|
1303
1477
|
rowId: String
|
|
1304
1478
|
success: Boolean!
|
|
@@ -1393,6 +1567,12 @@ type BulkCommandResult {
|
|
|
1393
1567
|
results: [CommandResult]
|
|
1394
1568
|
}
|
|
1395
1569
|
|
|
1570
|
+
"Describes a single column in a ConnectorData result."
|
|
1571
|
+
type ColumnMeta {
|
|
1572
|
+
name: String
|
|
1573
|
+
type: String
|
|
1574
|
+
}
|
|
1575
|
+
|
|
1396
1576
|
"Result from sending commands to a device."
|
|
1397
1577
|
type CommandResult {
|
|
1398
1578
|
"Whether the command was successfully queued."
|
|
@@ -1420,6 +1600,25 @@ type Condition {
|
|
|
1420
1600
|
value4: String
|
|
1421
1601
|
}
|
|
1422
1602
|
|
|
1603
|
+
"""
|
|
1604
|
+
A normalized, source-agnostic dataset returned by the connector broker. The same shape
|
|
1605
|
+
carries SQL rows, HTTP-JSON rows and RSS items alike. Mirrors the broker HTTP contract
|
|
1606
|
+
(POST {BrokerUrl}/v1/connector-data).
|
|
1607
|
+
"""
|
|
1608
|
+
type ConnectorData {
|
|
1609
|
+
"The columns, in row order."
|
|
1610
|
+
columns: [ColumnMeta]
|
|
1611
|
+
"""
|
|
1612
|
+
Row-major data; each row is an array of cell values aligned to Columns.
|
|
1613
|
+
Exposed through the JSON scalar so arbitrary SQL/JSON/RSS cell values flow through.
|
|
1614
|
+
"""
|
|
1615
|
+
rows: [[Any]]
|
|
1616
|
+
"Epoch milliseconds at which the broker last fetched the underlying data."
|
|
1617
|
+
fetchedAt: Long!
|
|
1618
|
+
"True when the broker served a cached copy while revalidating (stale-while-revalidate)."
|
|
1619
|
+
stale: Boolean!
|
|
1620
|
+
}
|
|
1621
|
+
|
|
1423
1622
|
"Result from creating media from a URL."
|
|
1424
1623
|
type CreateMediaResult {
|
|
1425
1624
|
"Whether the upload was successful."
|
|
@@ -1482,8 +1681,12 @@ type DataTableRowModel {
|
|
|
1482
1681
|
data: Any
|
|
1483
1682
|
updatedAt: DateTime!
|
|
1484
1683
|
"""
|
|
1485
|
-
Optimistic concurrency token.
|
|
1486
|
-
|
|
1684
|
+
Optimistic concurrency token. To ensure the row hasn't changed since you read it,
|
|
1685
|
+
send this value back as the If-Match request header on the REST
|
|
1686
|
+
updateDataTableRow (HTTP PUT) call, or as the eTag input field on
|
|
1687
|
+
the GraphQL updateDataTableRow mutation. A stale token results in
|
|
1688
|
+
409 Conflict (REST) or a mutation error (GraphQL). Note: the REST endpoint does
|
|
1689
|
+
not read an eTag body property — it uses the If-Match header.
|
|
1487
1690
|
"""
|
|
1488
1691
|
eTag: String
|
|
1489
1692
|
}
|
|
@@ -1760,28 +1963,73 @@ type Media {
|
|
|
1760
1963
|
}
|
|
1761
1964
|
|
|
1762
1965
|
"""
|
|
1763
|
-
Represents a module (zone
|
|
1764
|
-
Modules define rectangular areas on screen where content from playlists is displayed.
|
|
1966
|
+
Represents a module (also called a zone or region) within a template layout.
|
|
1967
|
+
Modules/zones define rectangular areas on screen where content from playlists is displayed.
|
|
1968
|
+
The terms "module" and "zone" are used interchangeably throughout the API.
|
|
1765
1969
|
"""
|
|
1766
1970
|
type Module {
|
|
1767
|
-
"Module
|
|
1971
|
+
"Module/zone unique identifier"
|
|
1768
1972
|
id: String
|
|
1769
|
-
"Module name"
|
|
1973
|
+
"Module/zone name"
|
|
1770
1974
|
name: String
|
|
1771
|
-
"Module type"
|
|
1975
|
+
"Module/zone type (e.g., 'Playlist', 'Clock', 'Weather', 'Ticker', 'Web')"
|
|
1772
1976
|
type: String
|
|
1773
|
-
"Left position"
|
|
1977
|
+
"Left position in pixels from the top-left corner of the template"
|
|
1774
1978
|
left: Int
|
|
1775
|
-
"Top position"
|
|
1979
|
+
"Top position in pixels from the top-left corner of the template"
|
|
1776
1980
|
top: Int
|
|
1777
|
-
"Width"
|
|
1981
|
+
"Width of the module/zone in pixels"
|
|
1778
1982
|
width: Int
|
|
1779
|
-
"Height"
|
|
1983
|
+
"Height of the module/zone in pixels"
|
|
1780
1984
|
height: Int
|
|
1781
|
-
"
|
|
1985
|
+
"""
|
|
1986
|
+
Playlist ID assigned to this module/zone.
|
|
1987
|
+
Determines what content is displayed in this area of the screen.
|
|
1988
|
+
"""
|
|
1782
1989
|
playlistId: String
|
|
1783
|
-
"
|
|
1990
|
+
"""
|
|
1991
|
+
Sequence or Z-order for overlapping modules/zones.
|
|
1992
|
+
Higher values appear in front of lower values.
|
|
1993
|
+
"""
|
|
1784
1994
|
sequence: Int
|
|
1995
|
+
"""
|
|
1996
|
+
Module/zone configuration options (key-value pairs).
|
|
1997
|
+
Used to store type-specific settings like timezone for Clock zones, location for Weather zones, etc.
|
|
1998
|
+
"""
|
|
1999
|
+
options: [ModuleOption]
|
|
2000
|
+
}
|
|
2001
|
+
|
|
2002
|
+
"Result from a module mutation within a template."
|
|
2003
|
+
type ModuleMutationResult {
|
|
2004
|
+
"Whether the operation was successful."
|
|
2005
|
+
success: Boolean!
|
|
2006
|
+
"The created or updated module."
|
|
2007
|
+
module: Module
|
|
2008
|
+
"Error message if the operation failed."
|
|
2009
|
+
error: String
|
|
2010
|
+
}
|
|
2011
|
+
|
|
2012
|
+
"""
|
|
2013
|
+
Represents a configuration option for a module/zone (key-value pair).
|
|
2014
|
+
Module/zone options store settings specific to each module/zone type.
|
|
2015
|
+
"""
|
|
2016
|
+
type ModuleOption {
|
|
2017
|
+
"Module/zone option unique identifier"
|
|
2018
|
+
id: String
|
|
2019
|
+
"Option name/key (e.g., 'timezone', 'location', 'refresh_interval')"
|
|
2020
|
+
name: String
|
|
2021
|
+
"Option value (stored as string, parse as needed for the specific option)"
|
|
2022
|
+
value: String
|
|
2023
|
+
}
|
|
2024
|
+
|
|
2025
|
+
"Result from a module option mutation."
|
|
2026
|
+
type ModuleOptionMutationResult {
|
|
2027
|
+
"Whether the operation was successful."
|
|
2028
|
+
success: Boolean!
|
|
2029
|
+
"The created or updated module option."
|
|
2030
|
+
option: ModuleOption
|
|
2031
|
+
"Error message if the operation failed."
|
|
2032
|
+
error: String
|
|
1785
2033
|
}
|
|
1786
2034
|
|
|
1787
2035
|
"""
|
|
@@ -2126,12 +2374,26 @@ type Template {
|
|
|
2126
2374
|
width: Int
|
|
2127
2375
|
"Height"
|
|
2128
2376
|
height: Int
|
|
2129
|
-
"
|
|
2377
|
+
"Display orientation: Landscape, Portrait, Landscape Reversed, or Portrait Reversed"
|
|
2130
2378
|
orientation: Int
|
|
2131
|
-
"
|
|
2379
|
+
"""
|
|
2380
|
+
Collection of modules/zones that define content areas within this template.
|
|
2381
|
+
Each module/zone represents a rectangular region where content from a playlist is displayed.
|
|
2382
|
+
The terms "module" and "zone" are used interchangeably.
|
|
2383
|
+
"""
|
|
2132
2384
|
modules: [Module]
|
|
2133
2385
|
}
|
|
2134
2386
|
|
|
2387
|
+
"Result from a template mutation."
|
|
2388
|
+
type TemplateMutationResult {
|
|
2389
|
+
"Whether the operation was successful."
|
|
2390
|
+
success: Boolean!
|
|
2391
|
+
"The updated template."
|
|
2392
|
+
template: Template
|
|
2393
|
+
"Error message if the operation failed."
|
|
2394
|
+
error: String
|
|
2395
|
+
}
|
|
2396
|
+
|
|
2135
2397
|
"Result from updating media metadata."
|
|
2136
2398
|
type UpdateMediaResult {
|
|
2137
2399
|
"Whether the operation was successful."
|
|
@@ -2211,6 +2473,14 @@ input AddPlaylistSourceInput {
|
|
|
2211
2473
|
position: Int
|
|
2212
2474
|
}
|
|
2213
2475
|
|
|
2476
|
+
"Input for adding a module to a template."
|
|
2477
|
+
input AddTemplateModuleInput {
|
|
2478
|
+
"The template ID to add the module to."
|
|
2479
|
+
templateId: String
|
|
2480
|
+
"The module to add."
|
|
2481
|
+
module: ModuleInput
|
|
2482
|
+
}
|
|
2483
|
+
|
|
2214
2484
|
"Aggregated audience metrics for a device over a time period"
|
|
2215
2485
|
input AdHawkAudienceMetricsFilterInput {
|
|
2216
2486
|
and: [AdHawkAudienceMetricsFilterInput!]
|
|
@@ -3113,6 +3383,142 @@ input AlertFilterInput {
|
|
|
3113
3383
|
isActive: BooleanOperationFilterInput
|
|
3114
3384
|
}
|
|
3115
3385
|
|
|
3386
|
+
"Full alert rule model. An alert rule defines the conditions that trigger alerts."
|
|
3387
|
+
input AlertRuleFilterInput {
|
|
3388
|
+
and: [AlertRuleFilterInput!]
|
|
3389
|
+
or: [AlertRuleFilterInput!]
|
|
3390
|
+
"The alert rule id (encrypted)"
|
|
3391
|
+
id: StringOperationFilterInput
|
|
3392
|
+
"The name of the alert rule"
|
|
3393
|
+
name: StringOperationFilterInput
|
|
3394
|
+
"""
|
|
3395
|
+
The rule set configuration as a JSON string. See AlertRuleInput.ruleSet for the full
|
|
3396
|
+
schema, supported condition types, operators, and value semantics.
|
|
3397
|
+
"""
|
|
3398
|
+
ruleSet: StringOperationFilterInput
|
|
3399
|
+
"""
|
|
3400
|
+
Indicates whether the alert rule is currently enabled and will be evaluated.
|
|
3401
|
+
When false, the rule is stored but never triggers alerts.
|
|
3402
|
+
"""
|
|
3403
|
+
isEnabled: BooleanOperationFilterInput
|
|
3404
|
+
"The look-back / evaluation period, in minutes, used by time-window based conditions."
|
|
3405
|
+
period: IntOperationFilterInput
|
|
3406
|
+
"""
|
|
3407
|
+
A legacy scalar threshold value retained for backward compatibility. Thresholds for new
|
|
3408
|
+
rules are expressed inside the rule set (AlertRuleInput.ruleSet) via each item's "value" instead.
|
|
3409
|
+
"""
|
|
3410
|
+
threshold: IntOperationFilterInput
|
|
3411
|
+
"Optional HTTPS webhook URL that is invoked (HTTP POST) when the rule triggers."
|
|
3412
|
+
webhookUrl: StringOperationFilterInput
|
|
3413
|
+
"""
|
|
3414
|
+
When true, the rule is evaluated against every device in the account and
|
|
3415
|
+
DeviceIds is empty. When false, only DeviceIds are evaluated.
|
|
3416
|
+
"""
|
|
3417
|
+
allDevices: BooleanOperationFilterInput
|
|
3418
|
+
"""
|
|
3419
|
+
When true, all users in the account are notified and UserIds is empty.
|
|
3420
|
+
When false, only the users in UserIds are notified.
|
|
3421
|
+
"""
|
|
3422
|
+
allUsers: BooleanOperationFilterInput
|
|
3423
|
+
"The date and time the alert rule was created"
|
|
3424
|
+
createdOn: DateTimeOperationFilterInput
|
|
3425
|
+
"The date and time the alert rule was last updated"
|
|
3426
|
+
updatedOn: DateTimeOperationFilterInput
|
|
3427
|
+
"""
|
|
3428
|
+
The devices explicitly associated with the rule (encrypted ids).
|
|
3429
|
+
Empty when AllDevices is true.
|
|
3430
|
+
"""
|
|
3431
|
+
deviceIds: ListStringOperationFilterInput
|
|
3432
|
+
"""
|
|
3433
|
+
The users explicitly notified by the rule (encrypted ids).
|
|
3434
|
+
Empty when AllUsers is true.
|
|
3435
|
+
"""
|
|
3436
|
+
userIds: ListStringOperationFilterInput
|
|
3437
|
+
}
|
|
3438
|
+
|
|
3439
|
+
"GraphQL input for creating or updating an alert rule."
|
|
3440
|
+
input AlertRuleInput {
|
|
3441
|
+
"The alert rule id (encrypted). Required for update, omitted for create."
|
|
3442
|
+
id: String
|
|
3443
|
+
"The name of the alert rule."
|
|
3444
|
+
name: String
|
|
3445
|
+
"""
|
|
3446
|
+
The rule set configuration, supplied as a JSON string (serialized JSON, not a nested object).
|
|
3447
|
+
A rule set is an array of condition groups combined with logical AND; the items within each group
|
|
3448
|
+
are combined with logical OR. Each item is { "type", "op", "value" }: "type" (required, case-sensitive)
|
|
3449
|
+
is one of TimeOffline, LastUpdate, MemoryUsage, CpuUsage, DiskUsage, NoContent, BytesTxDay, BytesRxDay,
|
|
3450
|
+
BytesTotalDay, BytesTxPeriod, BytesRxPeriod, BytesTotalPeriod, ClockSkew, DisplayDetected, BatteryVoltage,
|
|
3451
|
+
BatteryPercentage, or SystemTemperature; "op" (optional) is EQ, NE, GT, LT, GTE, or LTE (defaults to EQ);
|
|
3452
|
+
"value" (required) is a non-empty array of numbers. Example:
|
|
3453
|
+
[{"items":[{"type":"CpuUsage","op":"GTE","value":[90]}]}]. Invalid rule sets are rejected. Null or empty
|
|
3454
|
+
leaves the rule unevaluated.
|
|
3455
|
+
"""
|
|
3456
|
+
ruleSet: String
|
|
3457
|
+
"Indicates if the alert rule is enabled."
|
|
3458
|
+
isEnabled: Boolean
|
|
3459
|
+
"""
|
|
3460
|
+
The look-back / evaluation period, in minutes, used by time-window based conditions
|
|
3461
|
+
such as NoContent. Ignored by conditions that read the current value.
|
|
3462
|
+
"""
|
|
3463
|
+
period: Int
|
|
3464
|
+
"""
|
|
3465
|
+
A legacy scalar threshold value retained for backward compatibility. New rules should
|
|
3466
|
+
express thresholds inside RuleSet via each item's "value" instead.
|
|
3467
|
+
"""
|
|
3468
|
+
threshold: Int
|
|
3469
|
+
"Optional webhook URL that is invoked when the rule triggers."
|
|
3470
|
+
webhookUrl: String
|
|
3471
|
+
"If true, the rule applies to all devices in the account."
|
|
3472
|
+
allDevices: Boolean
|
|
3473
|
+
"If true, the rule notifies all users in the account."
|
|
3474
|
+
allUsers: Boolean
|
|
3475
|
+
"The devices to associate with the rule (encrypted ids). Ignored when AllDevices is true."
|
|
3476
|
+
deviceIds: [String]
|
|
3477
|
+
"The users to notify (encrypted ids). Ignored when AllUsers is true."
|
|
3478
|
+
userIds: [String]
|
|
3479
|
+
}
|
|
3480
|
+
|
|
3481
|
+
"Full alert rule model. An alert rule defines the conditions that trigger alerts."
|
|
3482
|
+
input AlertRuleSortInput {
|
|
3483
|
+
"The alert rule id (encrypted)"
|
|
3484
|
+
id: SortEnumType @cost(weight: "10")
|
|
3485
|
+
"The name of the alert rule"
|
|
3486
|
+
name: SortEnumType @cost(weight: "10")
|
|
3487
|
+
"""
|
|
3488
|
+
The rule set configuration as a JSON string. See AlertRuleInput.ruleSet for the full
|
|
3489
|
+
schema, supported condition types, operators, and value semantics.
|
|
3490
|
+
"""
|
|
3491
|
+
ruleSet: SortEnumType @cost(weight: "10")
|
|
3492
|
+
"""
|
|
3493
|
+
Indicates whether the alert rule is currently enabled and will be evaluated.
|
|
3494
|
+
When false, the rule is stored but never triggers alerts.
|
|
3495
|
+
"""
|
|
3496
|
+
isEnabled: SortEnumType @cost(weight: "10")
|
|
3497
|
+
"The look-back / evaluation period, in minutes, used by time-window based conditions."
|
|
3498
|
+
period: SortEnumType @cost(weight: "10")
|
|
3499
|
+
"""
|
|
3500
|
+
A legacy scalar threshold value retained for backward compatibility. Thresholds for new
|
|
3501
|
+
rules are expressed inside the rule set (AlertRuleInput.ruleSet) via each item's "value" instead.
|
|
3502
|
+
"""
|
|
3503
|
+
threshold: SortEnumType @cost(weight: "10")
|
|
3504
|
+
"Optional HTTPS webhook URL that is invoked (HTTP POST) when the rule triggers."
|
|
3505
|
+
webhookUrl: SortEnumType @cost(weight: "10")
|
|
3506
|
+
"""
|
|
3507
|
+
When true, the rule is evaluated against every device in the account and
|
|
3508
|
+
DeviceIds is empty. When false, only DeviceIds are evaluated.
|
|
3509
|
+
"""
|
|
3510
|
+
allDevices: SortEnumType @cost(weight: "10")
|
|
3511
|
+
"""
|
|
3512
|
+
When true, all users in the account are notified and UserIds is empty.
|
|
3513
|
+
When false, only the users in UserIds are notified.
|
|
3514
|
+
"""
|
|
3515
|
+
allUsers: SortEnumType @cost(weight: "10")
|
|
3516
|
+
"The date and time the alert rule was created"
|
|
3517
|
+
createdOn: SortEnumType @cost(weight: "10")
|
|
3518
|
+
"The date and time the alert rule was last updated"
|
|
3519
|
+
updatedOn: SortEnumType @cost(weight: "10")
|
|
3520
|
+
}
|
|
3521
|
+
|
|
3116
3522
|
"Alert rule summary (minimal info included with alerts)"
|
|
3117
3523
|
input AlertRuleSummaryFilterInput {
|
|
3118
3524
|
and: [AlertRuleSummaryFilterInput!]
|
|
@@ -3262,6 +3668,14 @@ input BatchDeleteDataTableRowsInput {
|
|
|
3262
3668
|
rowIds: [String]
|
|
3263
3669
|
}
|
|
3264
3670
|
|
|
3671
|
+
"Input for batch updating multiple modules in a template."
|
|
3672
|
+
input BatchUpdateTemplateModulesInput {
|
|
3673
|
+
"The template ID."
|
|
3674
|
+
templateId: String
|
|
3675
|
+
"List of module updates to apply."
|
|
3676
|
+
modules: [UpdateTemplateModuleInput]
|
|
3677
|
+
}
|
|
3678
|
+
|
|
3265
3679
|
"""
|
|
3266
3680
|
Represents Bluetooth Low Energy (BLE) beacon configuration for a device.
|
|
3267
3681
|
Beacons enable proximity-based interactions, allowing mobile devices to detect nearby digital signage
|
|
@@ -3956,6 +4370,13 @@ input ListFilterInputTypeOfModuleFilterInput {
|
|
|
3956
4370
|
any: Boolean @cost(weight: "10")
|
|
3957
4371
|
}
|
|
3958
4372
|
|
|
4373
|
+
input ListFilterInputTypeOfModuleOptionFilterInput {
|
|
4374
|
+
all: ModuleOptionFilterInput @cost(weight: "10")
|
|
4375
|
+
none: ModuleOptionFilterInput @cost(weight: "10")
|
|
4376
|
+
some: ModuleOptionFilterInput @cost(weight: "10")
|
|
4377
|
+
any: Boolean @cost(weight: "10")
|
|
4378
|
+
}
|
|
4379
|
+
|
|
3959
4380
|
input ListFilterInputTypeOfScheduleDeviceFilterInput {
|
|
3960
4381
|
all: ScheduleDeviceFilterInput @cost(weight: "10")
|
|
3961
4382
|
none: ScheduleDeviceFilterInput @cost(weight: "10")
|
|
@@ -4148,30 +4569,96 @@ input MediaSortInput {
|
|
|
4148
4569
|
}
|
|
4149
4570
|
|
|
4150
4571
|
"""
|
|
4151
|
-
Represents a module (zone
|
|
4152
|
-
Modules define rectangular areas on screen where content from playlists is displayed.
|
|
4572
|
+
Represents a module (also called a zone or region) within a template layout.
|
|
4573
|
+
Modules/zones define rectangular areas on screen where content from playlists is displayed.
|
|
4574
|
+
The terms "module" and "zone" are used interchangeably throughout the API.
|
|
4153
4575
|
"""
|
|
4154
4576
|
input ModuleFilterInput {
|
|
4155
4577
|
and: [ModuleFilterInput!]
|
|
4156
4578
|
or: [ModuleFilterInput!]
|
|
4157
|
-
"Module
|
|
4579
|
+
"Module/zone unique identifier"
|
|
4158
4580
|
id: StringOperationFilterInput
|
|
4159
|
-
"Module name"
|
|
4581
|
+
"Module/zone name"
|
|
4160
4582
|
name: StringOperationFilterInput
|
|
4161
|
-
"Module type"
|
|
4583
|
+
"Module/zone type (e.g., 'Playlist', 'Clock', 'Weather', 'Ticker', 'Web')"
|
|
4162
4584
|
type: StringOperationFilterInput
|
|
4163
|
-
"Left position"
|
|
4585
|
+
"Left position in pixels from the top-left corner of the template"
|
|
4164
4586
|
left: IntOperationFilterInput
|
|
4165
|
-
"Top position"
|
|
4587
|
+
"Top position in pixels from the top-left corner of the template"
|
|
4166
4588
|
top: IntOperationFilterInput
|
|
4167
|
-
"Width"
|
|
4589
|
+
"Width of the module/zone in pixels"
|
|
4168
4590
|
width: IntOperationFilterInput
|
|
4169
|
-
"Height"
|
|
4591
|
+
"Height of the module/zone in pixels"
|
|
4170
4592
|
height: IntOperationFilterInput
|
|
4171
|
-
"
|
|
4593
|
+
"""
|
|
4594
|
+
Playlist ID assigned to this module/zone.
|
|
4595
|
+
Determines what content is displayed in this area of the screen.
|
|
4596
|
+
"""
|
|
4172
4597
|
playlistId: StringOperationFilterInput
|
|
4173
|
-
"
|
|
4598
|
+
"""
|
|
4599
|
+
Sequence or Z-order for overlapping modules/zones.
|
|
4600
|
+
Higher values appear in front of lower values.
|
|
4601
|
+
"""
|
|
4174
4602
|
sequence: IntOperationFilterInput
|
|
4603
|
+
"""
|
|
4604
|
+
Module/zone configuration options (key-value pairs).
|
|
4605
|
+
Used to store type-specific settings like timezone for Clock zones, location for Weather zones, etc.
|
|
4606
|
+
"""
|
|
4607
|
+
options: ListFilterInputTypeOfModuleOptionFilterInput
|
|
4608
|
+
}
|
|
4609
|
+
|
|
4610
|
+
"Input for a module within a template - used when adding modules."
|
|
4611
|
+
input ModuleInput {
|
|
4612
|
+
"Module name."
|
|
4613
|
+
name: String
|
|
4614
|
+
"Module type (e.g., 'Playlist', 'Clock', 'Weather', 'Ticker', 'Web')."
|
|
4615
|
+
type: String
|
|
4616
|
+
"Left position in pixels."
|
|
4617
|
+
left: Int
|
|
4618
|
+
"Top position in pixels."
|
|
4619
|
+
top: Int
|
|
4620
|
+
"Width in pixels."
|
|
4621
|
+
width: Int
|
|
4622
|
+
"Height in pixels."
|
|
4623
|
+
height: Int
|
|
4624
|
+
"Playlist ID assigned to this module."
|
|
4625
|
+
playlistId: String
|
|
4626
|
+
"Z-order/sequence for overlapping modules."
|
|
4627
|
+
sequence: Int
|
|
4628
|
+
}
|
|
4629
|
+
|
|
4630
|
+
"""
|
|
4631
|
+
Represents a configuration option for a module/zone (key-value pair).
|
|
4632
|
+
Module/zone options store settings specific to each module/zone type.
|
|
4633
|
+
"""
|
|
4634
|
+
input ModuleOptionFilterInput {
|
|
4635
|
+
and: [ModuleOptionFilterInput!]
|
|
4636
|
+
or: [ModuleOptionFilterInput!]
|
|
4637
|
+
"Module/zone option unique identifier"
|
|
4638
|
+
id: StringOperationFilterInput
|
|
4639
|
+
"Option name/key (e.g., 'timezone', 'location', 'refresh_interval')"
|
|
4640
|
+
name: StringOperationFilterInput
|
|
4641
|
+
"Option value (stored as string, parse as needed for the specific option)"
|
|
4642
|
+
value: StringOperationFilterInput
|
|
4643
|
+
}
|
|
4644
|
+
|
|
4645
|
+
"""
|
|
4646
|
+
Request model for creating or updating a module/zone option.
|
|
4647
|
+
Used to set configuration values for specific module/zone types.
|
|
4648
|
+
"""
|
|
4649
|
+
input ModuleOptionRequestInput {
|
|
4650
|
+
"Option name/key (e.g., 'timezone', 'location', 'url')"
|
|
4651
|
+
name: String
|
|
4652
|
+
"Option value (string representation that will be parsed based on the option type)"
|
|
4653
|
+
value: String
|
|
4654
|
+
}
|
|
4655
|
+
|
|
4656
|
+
"Represents a module ID and its new sequence number for reordering."
|
|
4657
|
+
input ModuleSequenceInput {
|
|
4658
|
+
"The module ID."
|
|
4659
|
+
moduleId: String
|
|
4660
|
+
"The new sequence/z-order value."
|
|
4661
|
+
sequence: Int!
|
|
4175
4662
|
}
|
|
4176
4663
|
|
|
4177
4664
|
input NullableOfAdHawkAgeRangeOperationFilterInput {
|
|
@@ -4401,6 +4888,24 @@ input PlaylistTypeOperationFilterInput {
|
|
|
4401
4888
|
nin: [PlaylistType!] @cost(weight: "10")
|
|
4402
4889
|
}
|
|
4403
4890
|
|
|
4891
|
+
"Input for removing a module option by name."
|
|
4892
|
+
input RemoveModuleOptionInput {
|
|
4893
|
+
"The template ID."
|
|
4894
|
+
templateId: String
|
|
4895
|
+
"The module ID."
|
|
4896
|
+
moduleId: String
|
|
4897
|
+
"The option name to remove."
|
|
4898
|
+
optionName: String
|
|
4899
|
+
}
|
|
4900
|
+
|
|
4901
|
+
"Input for removing a module from a template."
|
|
4902
|
+
input RemoveTemplateModuleInput {
|
|
4903
|
+
"The template ID containing the module."
|
|
4904
|
+
templateId: String
|
|
4905
|
+
"The module ID to remove."
|
|
4906
|
+
moduleId: String
|
|
4907
|
+
}
|
|
4908
|
+
|
|
4404
4909
|
"Input for reordering rows in a data table."
|
|
4405
4910
|
input ReorderDataTableRowsInput {
|
|
4406
4911
|
"The table ID containing the rows."
|
|
@@ -4417,6 +4922,14 @@ input ReorderPlaylistSourcesInput {
|
|
|
4417
4922
|
sourceIds: [String]
|
|
4418
4923
|
}
|
|
4419
4924
|
|
|
4925
|
+
"Input for reordering modules within a template."
|
|
4926
|
+
input ReorderTemplateModulesInput {
|
|
4927
|
+
"The template ID."
|
|
4928
|
+
templateId: String
|
|
4929
|
+
"List of module IDs with their new sequence numbers."
|
|
4930
|
+
moduleSequences: [ModuleSequenceInput]
|
|
4931
|
+
}
|
|
4932
|
+
|
|
4420
4933
|
"Input for rolling back a row to a previous version."
|
|
4421
4934
|
input RollbackDataTableRowInput {
|
|
4422
4935
|
"The table ID containing the row."
|
|
@@ -4647,6 +5160,16 @@ input ScheduleTypeOperationFilterInput {
|
|
|
4647
5160
|
nin: [ScheduleType!] @cost(weight: "10")
|
|
4648
5161
|
}
|
|
4649
5162
|
|
|
5163
|
+
"Input for setting all options for a module (replaces existing)."
|
|
5164
|
+
input SetModuleOptionsInput {
|
|
5165
|
+
"The template ID."
|
|
5166
|
+
templateId: String
|
|
5167
|
+
"The module ID."
|
|
5168
|
+
moduleId: String
|
|
5169
|
+
"List of options to set (replaces all existing options)."
|
|
5170
|
+
options: [ModuleOptionRequestInput]
|
|
5171
|
+
}
|
|
5172
|
+
|
|
4650
5173
|
"""
|
|
4651
5174
|
Represents a content item within a playlist. A source defines what content to display
|
|
4652
5175
|
and for how long. Sources can reference media files, templates, embedded playlists, URLs, or other content types.
|
|
@@ -4764,9 +5287,13 @@ input TemplateFilterInput {
|
|
|
4764
5287
|
width: IntOperationFilterInput
|
|
4765
5288
|
"Height"
|
|
4766
5289
|
height: IntOperationFilterInput
|
|
4767
|
-
"
|
|
5290
|
+
"Display orientation: Landscape, Portrait, Landscape Reversed, or Portrait Reversed"
|
|
4768
5291
|
orientation: IntOperationFilterInput
|
|
4769
|
-
"
|
|
5292
|
+
"""
|
|
5293
|
+
Collection of modules/zones that define content areas within this template.
|
|
5294
|
+
Each module/zone represents a rectangular region where content from a playlist is displayed.
|
|
5295
|
+
The terms "module" and "zone" are used interchangeably.
|
|
5296
|
+
"""
|
|
4770
5297
|
modules: ListFilterInputTypeOfModuleFilterInput
|
|
4771
5298
|
}
|
|
4772
5299
|
|
|
@@ -4801,7 +5328,7 @@ input TemplateSortInput {
|
|
|
4801
5328
|
width: SortEnumType @cost(weight: "10")
|
|
4802
5329
|
"Height"
|
|
4803
5330
|
height: SortEnumType @cost(weight: "10")
|
|
4804
|
-
"
|
|
5331
|
+
"Display orientation: Landscape, Portrait, Landscape Reversed, or Portrait Reversed"
|
|
4805
5332
|
orientation: SortEnumType @cost(weight: "10")
|
|
4806
5333
|
}
|
|
4807
5334
|
|
|
@@ -4889,6 +5416,62 @@ input UpdatePlaylistSourceInput {
|
|
|
4889
5416
|
source: SourceInput
|
|
4890
5417
|
}
|
|
4891
5418
|
|
|
5419
|
+
"Input for updating a template's properties."
|
|
5420
|
+
input UpdateTemplateInput {
|
|
5421
|
+
"The template ID to update."
|
|
5422
|
+
templateId: String
|
|
5423
|
+
"Template name."
|
|
5424
|
+
name: String
|
|
5425
|
+
"Group ID to assign the template to."
|
|
5426
|
+
groupId: String
|
|
5427
|
+
"Tags (newline-delimited values stored in Description field)."
|
|
5428
|
+
tags: String
|
|
5429
|
+
"Template script for custom logic."
|
|
5430
|
+
script: String
|
|
5431
|
+
"Background color (e.g., '#000000')."
|
|
5432
|
+
backColor: String
|
|
5433
|
+
"Template width in pixels."
|
|
5434
|
+
width: Int
|
|
5435
|
+
"Template height in pixels."
|
|
5436
|
+
height: Int
|
|
5437
|
+
"Display orientation (0=Landscape, 1=Portrait, 2=Landscape Reversed, 3=Portrait Reversed)."
|
|
5438
|
+
orientation: Int
|
|
5439
|
+
}
|
|
5440
|
+
|
|
5441
|
+
"Input for updating an existing module within a template."
|
|
5442
|
+
input UpdateTemplateModuleInput {
|
|
5443
|
+
"The template ID containing the module."
|
|
5444
|
+
templateId: String
|
|
5445
|
+
"The module ID to update."
|
|
5446
|
+
moduleId: String
|
|
5447
|
+
"Module name."
|
|
5448
|
+
name: String
|
|
5449
|
+
"Module type."
|
|
5450
|
+
type: String
|
|
5451
|
+
"Left position in pixels."
|
|
5452
|
+
left: Int
|
|
5453
|
+
"Top position in pixels."
|
|
5454
|
+
top: Int
|
|
5455
|
+
"Width in pixels."
|
|
5456
|
+
width: Int
|
|
5457
|
+
"Height in pixels."
|
|
5458
|
+
height: Int
|
|
5459
|
+
"Playlist ID assigned to this module."
|
|
5460
|
+
playlistId: String
|
|
5461
|
+
"Z-order/sequence."
|
|
5462
|
+
sequence: Int
|
|
5463
|
+
}
|
|
5464
|
+
|
|
5465
|
+
"Input for upserting (create or update) a single module option."
|
|
5466
|
+
input UpsertModuleOptionInput {
|
|
5467
|
+
"The template ID."
|
|
5468
|
+
templateId: String
|
|
5469
|
+
"The module ID."
|
|
5470
|
+
moduleId: String
|
|
5471
|
+
"The option to create or update (matched by name)."
|
|
5472
|
+
option: ModuleOptionRequestInput
|
|
5473
|
+
}
|
|
5474
|
+
|
|
4892
5475
|
"User model"
|
|
4893
5476
|
input UserFilterInput {
|
|
4894
5477
|
and: [UserFilterInput!]
|