@epilot/automation-client 2.4.0 → 2.5.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/openapi.d.ts CHANGED
@@ -226,7 +226,125 @@ declare namespace Components {
226
226
  * }
227
227
  */
228
228
  SendEmailActionConfig | /* Creates an order entity with prices from journey */ CartCheckoutActionConfig | AutomationActionConfig;
229
- export type AnyTrigger = FrontendSubmitTrigger | JourneySubmitTrigger | ApiSubmissionTrigger | EntityOperationTrigger | ActivityTrigger | EntityManualTrigger | ReceivedEmailTrigger;
229
+ export type AnyTrigger = FrontendSubmitTrigger | JourneySubmitTrigger | ApiSubmissionTrigger | /**
230
+ * - If provides filter_config, executes an automation based on the filtered configuration when an entity event occurs.
231
+ * - The conditions on a filter follows the event bridge patterns - `https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html`
232
+ * | Comparison | Example | Rule syntax |
233
+ * |------------------------|-----------------------------------------------------|----------------------------------------------------------|
234
+ * | Null | first_name is null | `"first_name": [ null ]` |
235
+ * | Empty | last_name is empty | `"last_name": [""]` |
236
+ * | Equals | email is "j.doe@email.com" | `"email": [ "j.doe@email.com" ]` |
237
+ * | Equals (ignore case) | first_name is "John" | `"first_name": [ { "equals-ignore-case": "john" } ]` |
238
+ * | And | fist_name is "John" and last_name is "Doe" | `"first_name": [ "John" ], "last_name": ["Doe"]` |
239
+ * | Or | PaymentType is "Invoice" or "SEPA" | `"PaymentType": [ "invoice", "sepa"]` |
240
+ * | Or (multiple fields) | first_name is "John", or last_name is "Doe". | `"$or": [ { "first_name": [ "John" ] }, { "last_name": [ "Doe" ] } ]` |
241
+ * | Not | status is anything but "cancelled" | `"status": [ { "anything-but": [ "cancelled" ] } ]` |
242
+ * | Numeric (equals) | Price is 100 | `"Price": [ { "numeric": [ "=", 100 ] } ]` |
243
+ * | Numeric (range) | Price is more than 10, and less than or equal to 20 | `"Price": [ { "numeric": [ ">", 10, "<=", 20 ] } ]` |
244
+ * | Exists | ProductName exists | `"ProductName": [ { "exists": true } ]` |
245
+ * | Does not exist | ProductName does not exist | `"ProductName": [ { "exists": false } ]` |
246
+ * | Begins with | OpportunityNumber starts with OPP- | `"opportunity_number": [ { "prefix": "OPP-" } ]` |
247
+ * | Ends with | FileName ends with a .png extension | `"filename": [ { "suffix": ".png" } ]` |
248
+ * - To run the execution on all update events
249
+ * ```
250
+ * {
251
+ * "type": "filter_entity_event",
252
+ * "configuration": {
253
+ * "operation": {
254
+ * "operation": ["updateEntity"]
255
+ * }
256
+ * }
257
+ * }
258
+ * ```
259
+ * - To run the execution only when the updates are from a portal user
260
+ * ```
261
+ * {
262
+ * "type": "filter_entity_event",
263
+ * "configuration": {
264
+ * "operation": {
265
+ * "operation": ["updateEntity"]
266
+ * },
267
+ * "activity": {
268
+ * "type": "EntityUpdatedFromPortal"
269
+ * }
270
+ * }
271
+ * }
272
+ * ```
273
+ * - To run the execution only when there is an update on a specific attribute
274
+ * ```
275
+ * Only starts the automation when the email on a contact is changed
276
+ * {
277
+ * "type": "filter_entity_event",
278
+ * "configuration": {
279
+ * "operation": {
280
+ * "operation": ["updateEntity"],
281
+ * "payload": {
282
+ * "_schema": ["contact"]
283
+ * },
284
+ * "diff": {
285
+ * "updated": {
286
+ * "email": [{ "exists": true }]
287
+ * }
288
+ * }
289
+ * }
290
+ * }
291
+ * }
292
+ * ```
293
+ * - To run the execution only when a specific attribute is altered(created/updated/deleted)
294
+ * ```
295
+ * Only starts the automation when a price is altered on a contract
296
+ * {
297
+ * "type": "filter_entity_event",
298
+ * "configuration": {
299
+ * "operation": {
300
+ * "payload": {
301
+ * "_schema": ["contract"]
302
+ * },
303
+ * "diff": {
304
+ * // Whether he first_name has been added, updated, or removed
305
+ * $or: [
306
+ * {
307
+ * 'added.first_name': [{ exists: true }]
308
+ * },
309
+ * {
310
+ * 'updated.first_name': [{ exists: true }]
311
+ * },
312
+ * {
313
+ * 'deleted.first_name': [{ exists: true }]
314
+ * }
315
+ * ]
316
+ * }
317
+ * }
318
+ * }
319
+ * }
320
+ * ```
321
+ * - To run the execution if an attribute is changed from one state to another
322
+ * ```
323
+ * Only starts the automation when the order status changes from `open_for_acceptance` to `placed`
324
+ * {
325
+ * "type": "filter_entity_event",
326
+ * "configuration": {
327
+ * "operation": {
328
+ * "operation": ["updateEntity"],
329
+ * "payload": {
330
+ * "_schema": ["order"],
331
+ * "status": ["placed"]
332
+ * },
333
+ * "diff": {
334
+ * "updated": {
335
+ * "status": ["open_for_acceptance"]
336
+ * }
337
+ * }
338
+ * }
339
+ * }
340
+ * }
341
+ * ```
342
+ *
343
+ */
344
+ EntityOperationTrigger | ActivityTrigger | EntityManualTrigger | ReceivedEmailTrigger;
345
+ export interface AnythingButCondition {
346
+ "anything-but"?: string[];
347
+ }
230
348
  export interface ApiCallerContext {
231
349
  [name: string]: any;
232
350
  EpilotAuth?: {
@@ -737,6 +855,9 @@ declare namespace Components {
737
855
  template_id?: string;
738
856
  filename?: string;
739
857
  }
858
+ export type DiffAdded = FilterConditionOnEvent;
859
+ export type DiffDeleted = FilterConditionOnEvent;
860
+ export type DiffUpdated = FilterConditionOnEvent;
740
861
  /**
741
862
  * example:
742
863
  * e3d3ebac-baab-4395-abf4-50b5bf1f8b74
@@ -768,6 +889,121 @@ declare namespace Components {
768
889
  };
769
890
  }
770
891
  export type EntityOperation = "createEntity" | "updateEntity" | "deleteEntity";
892
+ /**
893
+ * - If provides filter_config, executes an automation based on the filtered configuration when an entity event occurs.
894
+ * - The conditions on a filter follows the event bridge patterns - `https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html`
895
+ * | Comparison | Example | Rule syntax |
896
+ * |------------------------|-----------------------------------------------------|----------------------------------------------------------|
897
+ * | Null | first_name is null | `"first_name": [ null ]` |
898
+ * | Empty | last_name is empty | `"last_name": [""]` |
899
+ * | Equals | email is "j.doe@email.com" | `"email": [ "j.doe@email.com" ]` |
900
+ * | Equals (ignore case) | first_name is "John" | `"first_name": [ { "equals-ignore-case": "john" } ]` |
901
+ * | And | fist_name is "John" and last_name is "Doe" | `"first_name": [ "John" ], "last_name": ["Doe"]` |
902
+ * | Or | PaymentType is "Invoice" or "SEPA" | `"PaymentType": [ "invoice", "sepa"]` |
903
+ * | Or (multiple fields) | first_name is "John", or last_name is "Doe". | `"$or": [ { "first_name": [ "John" ] }, { "last_name": [ "Doe" ] } ]` |
904
+ * | Not | status is anything but "cancelled" | `"status": [ { "anything-but": [ "cancelled" ] } ]` |
905
+ * | Numeric (equals) | Price is 100 | `"Price": [ { "numeric": [ "=", 100 ] } ]` |
906
+ * | Numeric (range) | Price is more than 10, and less than or equal to 20 | `"Price": [ { "numeric": [ ">", 10, "<=", 20 ] } ]` |
907
+ * | Exists | ProductName exists | `"ProductName": [ { "exists": true } ]` |
908
+ * | Does not exist | ProductName does not exist | `"ProductName": [ { "exists": false } ]` |
909
+ * | Begins with | OpportunityNumber starts with OPP- | `"opportunity_number": [ { "prefix": "OPP-" } ]` |
910
+ * | Ends with | FileName ends with a .png extension | `"filename": [ { "suffix": ".png" } ]` |
911
+ * - To run the execution on all update events
912
+ * ```
913
+ * {
914
+ * "type": "filter_entity_event",
915
+ * "configuration": {
916
+ * "operation": {
917
+ * "operation": ["updateEntity"]
918
+ * }
919
+ * }
920
+ * }
921
+ * ```
922
+ * - To run the execution only when the updates are from a portal user
923
+ * ```
924
+ * {
925
+ * "type": "filter_entity_event",
926
+ * "configuration": {
927
+ * "operation": {
928
+ * "operation": ["updateEntity"]
929
+ * },
930
+ * "activity": {
931
+ * "type": "EntityUpdatedFromPortal"
932
+ * }
933
+ * }
934
+ * }
935
+ * ```
936
+ * - To run the execution only when there is an update on a specific attribute
937
+ * ```
938
+ * Only starts the automation when the email on a contact is changed
939
+ * {
940
+ * "type": "filter_entity_event",
941
+ * "configuration": {
942
+ * "operation": {
943
+ * "operation": ["updateEntity"],
944
+ * "payload": {
945
+ * "_schema": ["contact"]
946
+ * },
947
+ * "diff": {
948
+ * "updated": {
949
+ * "email": [{ "exists": true }]
950
+ * }
951
+ * }
952
+ * }
953
+ * }
954
+ * }
955
+ * ```
956
+ * - To run the execution only when a specific attribute is altered(created/updated/deleted)
957
+ * ```
958
+ * Only starts the automation when a price is altered on a contract
959
+ * {
960
+ * "type": "filter_entity_event",
961
+ * "configuration": {
962
+ * "operation": {
963
+ * "payload": {
964
+ * "_schema": ["contract"]
965
+ * },
966
+ * "diff": {
967
+ * // Whether he first_name has been added, updated, or removed
968
+ * $or: [
969
+ * {
970
+ * 'added.first_name': [{ exists: true }]
971
+ * },
972
+ * {
973
+ * 'updated.first_name': [{ exists: true }]
974
+ * },
975
+ * {
976
+ * 'deleted.first_name': [{ exists: true }]
977
+ * }
978
+ * ]
979
+ * }
980
+ * }
981
+ * }
982
+ * }
983
+ * ```
984
+ * - To run the execution if an attribute is changed from one state to another
985
+ * ```
986
+ * Only starts the automation when the order status changes from `open_for_acceptance` to `placed`
987
+ * {
988
+ * "type": "filter_entity_event",
989
+ * "configuration": {
990
+ * "operation": {
991
+ * "operation": ["updateEntity"],
992
+ * "payload": {
993
+ * "_schema": ["order"],
994
+ * "status": ["placed"]
995
+ * },
996
+ * "diff": {
997
+ * "updated": {
998
+ * "status": ["open_for_acceptance"]
999
+ * }
1000
+ * }
1001
+ * }
1002
+ * }
1003
+ * }
1004
+ * ```
1005
+ *
1006
+ */
771
1007
  export interface EntityOperationTrigger {
772
1008
  type: "entity_operation";
773
1009
  configuration: {
@@ -775,21 +1011,83 @@ declare namespace Components {
775
1011
  * example:
776
1012
  * submission
777
1013
  */
778
- schema: string;
779
- operations: [
1014
+ schema?: string;
1015
+ operations?: [
780
1016
  EntityOperation,
781
1017
  ...EntityOperation[]
782
1018
  ];
783
1019
  include_activities?: string[];
784
1020
  exclude_activities?: string[];
1021
+ filter_config?: {
1022
+ operation?: {
1023
+ /**
1024
+ * Filter on operation type. If not specified, all operations will be matched on execution.
1025
+ * Example:
1026
+ * 1. Filter all the createEntity/updateEntity operations
1027
+ * ```
1028
+ * {
1029
+ * "operation":{
1030
+ * "operation": ["createEntity", "updateEntity"]
1031
+ * }
1032
+ * }
1033
+ * ```
1034
+ *
1035
+ */
1036
+ operation?: EntityOperation[];
1037
+ payload?: FilterConditionOnEvent;
1038
+ diff?: OrConditionForDiff | {
1039
+ added?: FilterConditionOnEvent;
1040
+ updated?: FilterConditionOnEvent;
1041
+ deleted?: FilterConditionOnEvent;
1042
+ };
1043
+ };
1044
+ activity?: {
1045
+ /**
1046
+ * Filter on activity type. If not specified, all activities will be matched on execution.
1047
+ * Example:
1048
+ * 1. Filter the events when an entity is updated from portal
1049
+ * ```
1050
+ * {
1051
+ * "activity":{
1052
+ * "type": ["EntityUpdatedFromPortal"]
1053
+ * }
1054
+ * }
1055
+ * ```
1056
+ * 2. Filter the events when either a doc is uploaded/removed on an entity from a portal
1057
+ * ```
1058
+ * {
1059
+ * "activity":{
1060
+ * "type": ["DocUploadedFromPortal", "DocRemovedFromPortal"]
1061
+ * }
1062
+ * }
1063
+ * ```
1064
+ *
1065
+ * example:
1066
+ * [
1067
+ * "EntityUpdatedFromPortal",
1068
+ * "EntityUpdatedFromPortal"
1069
+ * ]
1070
+ */
1071
+ type?: string[];
1072
+ };
1073
+ };
785
1074
  };
786
1075
  }
1076
+ export interface EqualsIgnoreCaseCondition {
1077
+ "equals-ignore-case"?: string;
1078
+ }
787
1079
  export type ErrorCode = "MAPPING_ERROR" | "REFRESH_RELATIONS_ERROR" | "DUPLICATE_ENTITY_ERROR" | "TRIGGER_WORKFLOW_ERROR" | "TIMEOUT_ERROR" | "BAD_CONFIG" | "INTERNAL_ERROR";
788
1080
  export interface ErrorOutput {
789
1081
  error_code: ErrorCode;
790
1082
  error_reason: string;
791
1083
  }
792
1084
  export type ExecutionStatus = "pending" | "in_progress" | "success" | "failed" | "cancelled";
1085
+ export interface ExistsCondition {
1086
+ exists?: boolean;
1087
+ }
1088
+ export type FilterConditionOnEvent = OrCondition | {
1089
+ [name: string]: (string | EqualsIgnoreCaseCondition | AnythingButCondition | NumericCondition | ExistsCondition | PrefixCondition | SuffixCondition)[];
1090
+ };
793
1091
  export interface FrontendSubmitTrigger {
794
1092
  type: "frontend_submission";
795
1093
  configuration: {
@@ -1069,6 +1367,9 @@ declare namespace Components {
1069
1367
  */
1070
1368
  version?: number;
1071
1369
  }
1370
+ export interface NumericCondition {
1371
+ numeric?: (string | number)[];
1372
+ }
1072
1373
  /**
1073
1374
  * Mapping operation nodes are either primitive values or operation node objects
1074
1375
  */
@@ -1091,11 +1392,20 @@ declare namespace Components {
1091
1392
  */
1092
1393
  _copy?: string;
1093
1394
  }
1395
+ export interface OrCondition {
1396
+ $or?: FilterConditionOnEvent[];
1397
+ }
1398
+ export interface OrConditionForDiff {
1399
+ $or?: (FilterConditionOnEvent | FilterConditionOnEvent | FilterConditionOnEvent)[];
1400
+ }
1094
1401
  /**
1095
1402
  * example:
1096
1403
  * e3d3ebac-baab-4395-abf4-50b5bf1f8b74
1097
1404
  */
1098
1405
  export type OrganizationId = string;
1406
+ export interface PrefixCondition {
1407
+ prefix?: string;
1408
+ }
1099
1409
  export type PrimitiveJSONValue = any;
1100
1410
  export interface ReceivedEmailTrigger {
1101
1411
  type: "received_email";
@@ -1312,6 +1622,9 @@ declare namespace Components {
1312
1622
  */
1313
1623
  AutomationFlowId;
1314
1624
  }
1625
+ export interface SuffixCondition {
1626
+ suffix?: string;
1627
+ }
1315
1628
  /**
1316
1629
  * example:
1317
1630
  * {
package/dist/openapi.json CHANGED
@@ -2092,18 +2092,74 @@
2092
2092
  "SyncEntity"
2093
2093
  ]
2094
2094
  }
2095
+ },
2096
+ "filter_config": {
2097
+ "type": "object",
2098
+ "properties": {
2099
+ "operation": {
2100
+ "type": "object",
2101
+ "properties": {
2102
+ "operation": {
2103
+ "type": "array",
2104
+ "description": "Filter on operation type. If not specified, all operations will be matched on execution.\nExample:\n 1. Filter all the createEntity/updateEntity operations \n ```\n { \n \"operation\":{\n \"operation\": [\"createEntity\", \"updateEntity\"]\n }\n }\n ```\n",
2105
+ "items": {
2106
+ "$ref": "#/components/schemas/EntityOperation"
2107
+ }
2108
+ },
2109
+ "payload": {
2110
+ "$ref": "#/components/schemas/FilterConditionOnEvent"
2111
+ },
2112
+ "diff": {
2113
+ "anyOf": [
2114
+ {
2115
+ "$ref": "#/components/schemas/OrConditionForDiff"
2116
+ },
2117
+ {
2118
+ "type": "object",
2119
+ "description": "Diff to it's prior state when an entity is updated",
2120
+ "properties": {
2121
+ "added": {
2122
+ "$ref": "#/components/schemas/DiffAdded"
2123
+ },
2124
+ "updated": {
2125
+ "$ref": "#/components/schemas/DiffUpdated"
2126
+ },
2127
+ "deleted": {
2128
+ "$ref": "#/components/schemas/DiffDeleted"
2129
+ }
2130
+ }
2131
+ }
2132
+ ]
2133
+ }
2134
+ }
2135
+ },
2136
+ "activity": {
2137
+ "type": "object",
2138
+ "properties": {
2139
+ "type": {
2140
+ "type": "array",
2141
+ "items": {
2142
+ "type": "string",
2143
+ "example": "EntityUpdatedFromPortal"
2144
+ },
2145
+ "example": [
2146
+ "EntityUpdatedFromPortal",
2147
+ "EntityUpdatedFromPortal"
2148
+ ],
2149
+ "description": "Filter on activity type. If not specified, all activities will be matched on execution.\nExample:\n 1. Filter the events when an entity is updated from portal\n ```\n { \n \"activity\":{\n \"type\": [\"EntityUpdatedFromPortal\"]\n }\n }\n ```\n 2. Filter the events when either a doc is uploaded/removed on an entity from a portal\n ```\n { \n \"activity\":{\n \"type\": [\"DocUploadedFromPortal\", \"DocRemovedFromPortal\"]\n }\n }\n ```\n"
2150
+ }
2151
+ }
2152
+ }
2153
+ }
2095
2154
  }
2096
- },
2097
- "required": [
2098
- "schema",
2099
- "operations"
2100
- ]
2155
+ }
2101
2156
  }
2102
2157
  },
2103
2158
  "required": [
2104
2159
  "type",
2105
2160
  "configuration"
2106
- ]
2161
+ ],
2162
+ "description": "- If provides filter_config, executes an automation based on the filtered configuration when an entity event occurs.\n- The conditions on a filter follows the event bridge patterns - `https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html`\n | Comparison | Example | Rule syntax |\n |------------------------|-----------------------------------------------------|----------------------------------------------------------|\n | Null | first_name is null | `\"first_name\": [ null ]` |\n | Empty | last_name is empty | `\"last_name\": [\"\"]` |\n | Equals | email is \"j.doe@email.com\" | `\"email\": [ \"j.doe@email.com\" ]` |\n | Equals (ignore case) | first_name is \"John\" | `\"first_name\": [ { \"equals-ignore-case\": \"john\" } ]` |\n | And | fist_name is \"John\" and last_name is \"Doe\" | `\"first_name\": [ \"John\" ], \"last_name\": [\"Doe\"]` |\n | Or | PaymentType is \"Invoice\" or \"SEPA\" | `\"PaymentType\": [ \"invoice\", \"sepa\"]` |\n | Or (multiple fields) | first_name is \"John\", or last_name is \"Doe\". | `\"$or\": [ { \"first_name\": [ \"John\" ] }, { \"last_name\": [ \"Doe\" ] } ]` |\n | Not | status is anything but \"cancelled\" | `\"status\": [ { \"anything-but\": [ \"cancelled\" ] } ]` |\n | Numeric (equals) | Price is 100 | `\"Price\": [ { \"numeric\": [ \"=\", 100 ] } ]` |\n | Numeric (range) | Price is more than 10, and less than or equal to 20 | `\"Price\": [ { \"numeric\": [ \">\", 10, \"<=\", 20 ] } ]` |\n | Exists | ProductName exists | `\"ProductName\": [ { \"exists\": true } ]` |\n | Does not exist | ProductName does not exist | `\"ProductName\": [ { \"exists\": false } ]` |\n | Begins with | OpportunityNumber starts with OPP- | `\"opportunity_number\": [ { \"prefix\": \"OPP-\" } ]` |\n | Ends with | FileName ends with a .png extension | `\"filename\": [ { \"suffix\": \".png\" } ]` |\n - To run the execution on all update events\n ```\n {\n \"type\": \"filter_entity_event\",\n \"configuration\": {\n \"operation\": {\n \"operation\": [\"updateEntity\"]\n }\n }\n }\n ```\n - To run the execution only when the updates are from a portal user\n ```\n {\n \"type\": \"filter_entity_event\",\n \"configuration\": {\n \"operation\": {\n \"operation\": [\"updateEntity\"]\n },\n \"activity\": {\n \"type\": \"EntityUpdatedFromPortal\"\n }\n }\n }\n ```\n - To run the execution only when there is an update on a specific attribute\n ```\n Only starts the automation when the email on a contact is changed\n {\n \"type\": \"filter_entity_event\",\n \"configuration\": {\n \"operation\": {\n \"operation\": [\"updateEntity\"],\n \"payload\": {\n \"_schema\": [\"contact\"]\n },\n \"diff\": {\n \"updated\": {\n \"email\": [{ \"exists\": true }]\n }\n }\n }\n }\n }\n ```\n - To run the execution only when a specific attribute is altered(created/updated/deleted)\n ```\n Only starts the automation when a price is altered on a contract\n {\n \"type\": \"filter_entity_event\",\n \"configuration\": {\n \"operation\": {\n \"payload\": {\n \"_schema\": [\"contract\"]\n },\n \"diff\": {\n // Whether he first_name has been added, updated, or removed\n $or: [\n {\n 'added.first_name': [{ exists: true }]\n },\n {\n 'updated.first_name': [{ exists: true }]\n },\n {\n 'deleted.first_name': [{ exists: true }]\n }\n ]\n }\n }\n }\n }\n ```\n - To run the execution if an attribute is changed from one state to another\n ```\n Only starts the automation when the order status changes from `open_for_acceptance` to `placed`\n {\n \"type\": \"filter_entity_event\",\n \"configuration\": {\n \"operation\": {\n \"operation\": [\"updateEntity\"],\n \"payload\": {\n \"_schema\": [\"order\"],\n \"status\": [\"placed\"]\n },\n \"diff\": {\n \"updated\": {\n \"status\": [\"open_for_acceptance\"]\n }\n }\n }\n }\n }\n ```\n"
2107
2163
  },
2108
2164
  "ActivityTrigger": {
2109
2165
  "type": "object",
@@ -2224,6 +2280,147 @@
2224
2280
  "is_empty"
2225
2281
  ]
2226
2282
  },
2283
+ "FilterConditionOnEvent": {
2284
+ "anyOf": [
2285
+ {
2286
+ "$ref": "#/components/schemas/OrCondition"
2287
+ },
2288
+ {
2289
+ "type": "object",
2290
+ "description": "- Filter on entity payload that is modified. If not specified, entire entity be matched on execution.\n Example:\n ```\n {\n \"operation\": {\n \"payload\": {\n \"_schema\": [\"contact\"]\n \"address\": { \n \"country\": [\"Germany\"] \n }\n age: [ { \"numeric\": [ \">\", 25, \"<=\", 35 ] } ]\n }\n }\n }\n",
2291
+ "additionalProperties": {
2292
+ "type": "array",
2293
+ "items": {
2294
+ "oneOf": [
2295
+ {
2296
+ "type": "string"
2297
+ },
2298
+ {
2299
+ "$ref": "#/components/schemas/EqualsIgnoreCaseCondition"
2300
+ },
2301
+ {
2302
+ "$ref": "#/components/schemas/AnythingButCondition"
2303
+ },
2304
+ {
2305
+ "$ref": "#/components/schemas/NumericCondition"
2306
+ },
2307
+ {
2308
+ "$ref": "#/components/schemas/ExistsCondition"
2309
+ },
2310
+ {
2311
+ "$ref": "#/components/schemas/PrefixCondition"
2312
+ },
2313
+ {
2314
+ "$ref": "#/components/schemas/SuffixCondition"
2315
+ }
2316
+ ]
2317
+ }
2318
+ }
2319
+ }
2320
+ ]
2321
+ },
2322
+ "EqualsIgnoreCaseCondition": {
2323
+ "type": "object",
2324
+ "properties": {
2325
+ "equals-ignore-case": {
2326
+ "type": "string"
2327
+ }
2328
+ }
2329
+ },
2330
+ "AnythingButCondition": {
2331
+ "type": "object",
2332
+ "properties": {
2333
+ "anything-but": {
2334
+ "type": "array",
2335
+ "items": {
2336
+ "type": "string"
2337
+ }
2338
+ }
2339
+ }
2340
+ },
2341
+ "NumericCondition": {
2342
+ "type": "object",
2343
+ "properties": {
2344
+ "numeric": {
2345
+ "type": "array",
2346
+ "items": {
2347
+ "oneOf": [
2348
+ {
2349
+ "type": "string"
2350
+ },
2351
+ {
2352
+ "type": "integer"
2353
+ }
2354
+ ]
2355
+ }
2356
+ }
2357
+ }
2358
+ },
2359
+ "ExistsCondition": {
2360
+ "type": "object",
2361
+ "properties": {
2362
+ "exists": {
2363
+ "type": "boolean"
2364
+ }
2365
+ }
2366
+ },
2367
+ "PrefixCondition": {
2368
+ "type": "object",
2369
+ "properties": {
2370
+ "prefix": {
2371
+ "type": "string"
2372
+ }
2373
+ }
2374
+ },
2375
+ "SuffixCondition": {
2376
+ "type": "object",
2377
+ "properties": {
2378
+ "suffix": {
2379
+ "type": "string"
2380
+ }
2381
+ }
2382
+ },
2383
+ "OrCondition": {
2384
+ "type": "object",
2385
+ "properties": {
2386
+ "$or": {
2387
+ "type": "array",
2388
+ "items": {
2389
+ "$ref": "#/components/schemas/FilterConditionOnEvent"
2390
+ }
2391
+ }
2392
+ }
2393
+ },
2394
+ "DiffAdded": {
2395
+ "$ref": "#/components/schemas/FilterConditionOnEvent"
2396
+ },
2397
+ "DiffUpdated": {
2398
+ "$ref": "#/components/schemas/FilterConditionOnEvent"
2399
+ },
2400
+ "DiffDeleted": {
2401
+ "$ref": "#/components/schemas/FilterConditionOnEvent"
2402
+ },
2403
+ "OrConditionForDiff": {
2404
+ "type": "object",
2405
+ "properties": {
2406
+ "$or": {
2407
+ "type": "array",
2408
+ "items": {
2409
+ "anyOf": [
2410
+ {
2411
+ "$ref": "#/components/schemas/DiffAdded"
2412
+ },
2413
+ {
2414
+ "$ref": "#/components/schemas/DiffUpdated"
2415
+ },
2416
+ {
2417
+ "$ref": "#/components/schemas/DiffDeleted"
2418
+ }
2419
+ ]
2420
+ }
2421
+ }
2422
+ }
2423
+ },
2227
2424
  "EntityItemSnapshot": {
2228
2425
  "type": "object",
2229
2426
  "properties": {
@@ -2275,9 +2472,6 @@
2275
2472
  }
2276
2473
  },
2277
2474
  "servers": [
2278
- {
2279
- "url": "https://automation.sls.epilot.io"
2280
- },
2281
2475
  {
2282
2476
  "url": "https://automation.sls.epilot.io"
2283
2477
  }