@remit/api-openapi-spec 0.0.98 → 0.0.99
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/openapi.json +303 -16
- package/package.json +1 -1
- package/request-validators.mjs +1 -1
package/openapi.json
CHANGED
|
@@ -10645,7 +10645,6 @@
|
|
|
10645
10645
|
"name",
|
|
10646
10646
|
"scope",
|
|
10647
10647
|
"matchOperator",
|
|
10648
|
-
"literalClauses",
|
|
10649
10648
|
"actionLabelId",
|
|
10650
10649
|
"actionMailboxId"
|
|
10651
10650
|
],
|
|
@@ -10679,14 +10678,6 @@
|
|
|
10679
10678
|
"description": "How literalClauses combine.",
|
|
10680
10679
|
"default": "And"
|
|
10681
10680
|
},
|
|
10682
|
-
"literalClauses": {
|
|
10683
|
-
"type": "array",
|
|
10684
|
-
"items": {
|
|
10685
|
-
"$ref": "#/components/schemas/RemitImap.FilterClause"
|
|
10686
|
-
},
|
|
10687
|
-
"minItems": 1,
|
|
10688
|
-
"description": "Literal from/subject/has-words predicate clauses (RFC 031). A filter carries at least one."
|
|
10689
|
-
},
|
|
10690
10681
|
"actionLabelId": {
|
|
10691
10682
|
"type": "string",
|
|
10692
10683
|
"description": "Label applied when this filter matches — additive action, any number of filters can independently apply their own label (RFC 034 Decision 3.1). The named sentinel `\"None\"` means no label action; never an empty/optional field.",
|
|
@@ -10696,6 +10687,30 @@
|
|
|
10696
10687
|
"type": "string",
|
|
10697
10688
|
"description": "Mailbox matched messages are moved into — exclusive action, since a message lives in exactly one mailbox (RFC 034 Decision 3.1). On conflict between filters, the one with the latest actionChangedAt wins. `\"None\"` means no move action.",
|
|
10698
10689
|
"default": "None"
|
|
10690
|
+
},
|
|
10691
|
+
"priority": {
|
|
10692
|
+
"type": "integer",
|
|
10693
|
+
"format": "int32",
|
|
10694
|
+
"description": "Evaluation order (RFC 040). Lower runs first. Defaults to 0."
|
|
10695
|
+
},
|
|
10696
|
+
"stop": {
|
|
10697
|
+
"type": "boolean",
|
|
10698
|
+
"description": "When set, a match ends evaluation for that message after this filter's own actions (RFC 040, Sieve `stop`). Defaults to false."
|
|
10699
|
+
},
|
|
10700
|
+
"literalClauses": {
|
|
10701
|
+
"type": "array",
|
|
10702
|
+
"items": {
|
|
10703
|
+
"$ref": "#/components/schemas/RemitImap.FilterClause"
|
|
10704
|
+
},
|
|
10705
|
+
"description": "Literal clauses combined by matchOperator. Send these or rule, never both."
|
|
10706
|
+
},
|
|
10707
|
+
"rule": {
|
|
10708
|
+
"allOf": [
|
|
10709
|
+
{
|
|
10710
|
+
"$ref": "#/components/schemas/RemitImap.FilterRuleV1"
|
|
10711
|
+
}
|
|
10712
|
+
],
|
|
10713
|
+
"description": "The rule as a test tree (RFC 040). Send this or literalClauses, never both. The server caps a rule at 50 leaves and 5 levels."
|
|
10699
10714
|
}
|
|
10700
10715
|
},
|
|
10701
10716
|
"description": "Input for creating a filter (RFC 034). `ttl` is omitted — it is derived\nserver-side from `expiresAt` when `scope` is `Temporary` (RFC 034 Decision\n1.3), never client-supplied. `state`, `ruleChangedAt`, and `filterId` are\nall server-derived and excluded by their Read-only visibility."
|
|
@@ -10713,10 +10728,13 @@
|
|
|
10713
10728
|
"actionChangedAt",
|
|
10714
10729
|
"matchOperator",
|
|
10715
10730
|
"literalClauses",
|
|
10731
|
+
"priority",
|
|
10732
|
+
"stop",
|
|
10716
10733
|
"actionLabelId",
|
|
10717
10734
|
"actionMailboxId",
|
|
10718
10735
|
"createdAt",
|
|
10719
10736
|
"updatedAt",
|
|
10737
|
+
"rule",
|
|
10720
10738
|
"organizeJobId"
|
|
10721
10739
|
],
|
|
10722
10740
|
"properties": {
|
|
@@ -10803,8 +10821,18 @@
|
|
|
10803
10821
|
"items": {
|
|
10804
10822
|
"$ref": "#/components/schemas/RemitImap.FilterClause"
|
|
10805
10823
|
},
|
|
10806
|
-
"
|
|
10807
|
-
|
|
10824
|
+
"description": "Literal from/subject/has-words predicate clauses (RFC 031). Empty when the rule is not leaves under one allof or anyof."
|
|
10825
|
+
},
|
|
10826
|
+
"priority": {
|
|
10827
|
+
"type": "integer",
|
|
10828
|
+
"format": "int32",
|
|
10829
|
+
"description": "Evaluation order (RFC 040). Lower runs first; ties go to the newest actionChangedAt, then to filterId. The first move a message reaches wins.",
|
|
10830
|
+
"default": 0
|
|
10831
|
+
},
|
|
10832
|
+
"stop": {
|
|
10833
|
+
"type": "boolean",
|
|
10834
|
+
"description": "When set, a match ends evaluation for that message after this filter's own actions (RFC 040, Sieve `stop`).",
|
|
10835
|
+
"default": false
|
|
10808
10836
|
},
|
|
10809
10837
|
"actionLabelId": {
|
|
10810
10838
|
"type": "string",
|
|
@@ -10826,6 +10854,14 @@
|
|
|
10826
10854
|
"format": "int64",
|
|
10827
10855
|
"readOnly": true
|
|
10828
10856
|
},
|
|
10857
|
+
"rule": {
|
|
10858
|
+
"allOf": [
|
|
10859
|
+
{
|
|
10860
|
+
"$ref": "#/components/schemas/RemitImap.FilterRuleV1"
|
|
10861
|
+
}
|
|
10862
|
+
],
|
|
10863
|
+
"description": "The rule as a test tree (RFC 040). literalClauses mirrors it when it is leaves under one allof or anyof, and is empty otherwise."
|
|
10864
|
+
},
|
|
10829
10865
|
"organizeJobId": {
|
|
10830
10866
|
"type": "string",
|
|
10831
10867
|
"description": "The organize job queued to run the new filter over the inbox. Poll GET /accounts/{accountId}/organize/{organizeJobId}; a filter with nothing to run reports Failed with the reason."
|
|
@@ -11292,6 +11328,81 @@
|
|
|
11292
11328
|
},
|
|
11293
11329
|
"description": "Message envelope (header metadata)"
|
|
11294
11330
|
},
|
|
11331
|
+
"RemitImap.FilterAddressTest": {
|
|
11332
|
+
"type": "object",
|
|
11333
|
+
"required": [
|
|
11334
|
+
"test",
|
|
11335
|
+
"match",
|
|
11336
|
+
"part",
|
|
11337
|
+
"key"
|
|
11338
|
+
],
|
|
11339
|
+
"properties": {
|
|
11340
|
+
"test": {
|
|
11341
|
+
"type": "string",
|
|
11342
|
+
"enum": [
|
|
11343
|
+
"address"
|
|
11344
|
+
]
|
|
11345
|
+
},
|
|
11346
|
+
"match": {
|
|
11347
|
+
"$ref": "#/components/schemas/RemitImap.FilterRuleMatch"
|
|
11348
|
+
},
|
|
11349
|
+
"part": {
|
|
11350
|
+
"$ref": "#/components/schemas/RemitImap.FilterRuleAddressPart"
|
|
11351
|
+
},
|
|
11352
|
+
"key": {
|
|
11353
|
+
"$ref": "#/components/schemas/String256"
|
|
11354
|
+
}
|
|
11355
|
+
},
|
|
11356
|
+
"description": "Compares one part of the From address against one key (Sieve `address`). Reads `from` only."
|
|
11357
|
+
},
|
|
11358
|
+
"RemitImap.FilterAllOfTest": {
|
|
11359
|
+
"type": "object",
|
|
11360
|
+
"required": [
|
|
11361
|
+
"test",
|
|
11362
|
+
"tests"
|
|
11363
|
+
],
|
|
11364
|
+
"properties": {
|
|
11365
|
+
"test": {
|
|
11366
|
+
"type": "string",
|
|
11367
|
+
"enum": [
|
|
11368
|
+
"allof"
|
|
11369
|
+
]
|
|
11370
|
+
},
|
|
11371
|
+
"tests": {
|
|
11372
|
+
"type": "array",
|
|
11373
|
+
"items": {
|
|
11374
|
+
"$ref": "#/components/schemas/RemitImap.FilterTest"
|
|
11375
|
+
},
|
|
11376
|
+
"minItems": 1,
|
|
11377
|
+
"maxItems": 50
|
|
11378
|
+
}
|
|
11379
|
+
},
|
|
11380
|
+
"description": "Matches when every test in `tests` matches (Sieve `allof`)."
|
|
11381
|
+
},
|
|
11382
|
+
"RemitImap.FilterAnyOfTest": {
|
|
11383
|
+
"type": "object",
|
|
11384
|
+
"required": [
|
|
11385
|
+
"test",
|
|
11386
|
+
"tests"
|
|
11387
|
+
],
|
|
11388
|
+
"properties": {
|
|
11389
|
+
"test": {
|
|
11390
|
+
"type": "string",
|
|
11391
|
+
"enum": [
|
|
11392
|
+
"anyof"
|
|
11393
|
+
]
|
|
11394
|
+
},
|
|
11395
|
+
"tests": {
|
|
11396
|
+
"type": "array",
|
|
11397
|
+
"items": {
|
|
11398
|
+
"$ref": "#/components/schemas/RemitImap.FilterTest"
|
|
11399
|
+
},
|
|
11400
|
+
"minItems": 1,
|
|
11401
|
+
"maxItems": 50
|
|
11402
|
+
}
|
|
11403
|
+
},
|
|
11404
|
+
"description": "Matches when any test in `tests` matches (Sieve `anyof`)."
|
|
11405
|
+
},
|
|
11295
11406
|
"RemitImap.FilterClause": {
|
|
11296
11407
|
"type": "object",
|
|
11297
11408
|
"required": [
|
|
@@ -11340,6 +11451,55 @@
|
|
|
11340
11451
|
],
|
|
11341
11452
|
"description": "Why a Filter is Disabled. `None` while the filter is not Disabled; every other value names the one thing that has to change before it can run again."
|
|
11342
11453
|
},
|
|
11454
|
+
"RemitImap.FilterHasWordsTest": {
|
|
11455
|
+
"type": "object",
|
|
11456
|
+
"required": [
|
|
11457
|
+
"test",
|
|
11458
|
+
"words"
|
|
11459
|
+
],
|
|
11460
|
+
"properties": {
|
|
11461
|
+
"test": {
|
|
11462
|
+
"type": "string",
|
|
11463
|
+
"enum": [
|
|
11464
|
+
"hasWords"
|
|
11465
|
+
]
|
|
11466
|
+
},
|
|
11467
|
+
"words": {
|
|
11468
|
+
"type": "array",
|
|
11469
|
+
"items": {
|
|
11470
|
+
"$ref": "#/components/schemas/String256"
|
|
11471
|
+
}
|
|
11472
|
+
}
|
|
11473
|
+
},
|
|
11474
|
+
"description": "Matches when every word occurs in the sender, the subject or the body."
|
|
11475
|
+
},
|
|
11476
|
+
"RemitImap.FilterHeaderTest": {
|
|
11477
|
+
"type": "object",
|
|
11478
|
+
"required": [
|
|
11479
|
+
"test",
|
|
11480
|
+
"match",
|
|
11481
|
+
"header",
|
|
11482
|
+
"key"
|
|
11483
|
+
],
|
|
11484
|
+
"properties": {
|
|
11485
|
+
"test": {
|
|
11486
|
+
"type": "string",
|
|
11487
|
+
"enum": [
|
|
11488
|
+
"header"
|
|
11489
|
+
]
|
|
11490
|
+
},
|
|
11491
|
+
"match": {
|
|
11492
|
+
"$ref": "#/components/schemas/RemitImap.FilterRuleMatch"
|
|
11493
|
+
},
|
|
11494
|
+
"header": {
|
|
11495
|
+
"$ref": "#/components/schemas/RemitImap.FilterRuleHeader"
|
|
11496
|
+
},
|
|
11497
|
+
"key": {
|
|
11498
|
+
"$ref": "#/components/schemas/String256"
|
|
11499
|
+
}
|
|
11500
|
+
},
|
|
11501
|
+
"description": "Compares one header against one key (Sieve `header`)."
|
|
11502
|
+
},
|
|
11343
11503
|
"RemitImap.FilterMatchOperator": {
|
|
11344
11504
|
"type": "string",
|
|
11345
11505
|
"enum": [
|
|
@@ -11348,6 +11508,25 @@
|
|
|
11348
11508
|
],
|
|
11349
11509
|
"description": "How a Filter's literalClauses combine (RFC 031 \"literal predicates, AND/OR\"). Ignored when literalClauses is empty."
|
|
11350
11510
|
},
|
|
11511
|
+
"RemitImap.FilterNotTest": {
|
|
11512
|
+
"type": "object",
|
|
11513
|
+
"required": [
|
|
11514
|
+
"test",
|
|
11515
|
+
"operand"
|
|
11516
|
+
],
|
|
11517
|
+
"properties": {
|
|
11518
|
+
"test": {
|
|
11519
|
+
"type": "string",
|
|
11520
|
+
"enum": [
|
|
11521
|
+
"not"
|
|
11522
|
+
]
|
|
11523
|
+
},
|
|
11524
|
+
"operand": {
|
|
11525
|
+
"$ref": "#/components/schemas/RemitImap.FilterTest"
|
|
11526
|
+
}
|
|
11527
|
+
},
|
|
11528
|
+
"description": "Matches when `operand` does not (Sieve `not`)."
|
|
11529
|
+
},
|
|
11351
11530
|
"RemitImap.FilterResponse": {
|
|
11352
11531
|
"type": "object",
|
|
11353
11532
|
"required": [
|
|
@@ -11361,10 +11540,13 @@
|
|
|
11361
11540
|
"actionChangedAt",
|
|
11362
11541
|
"matchOperator",
|
|
11363
11542
|
"literalClauses",
|
|
11543
|
+
"priority",
|
|
11544
|
+
"stop",
|
|
11364
11545
|
"actionLabelId",
|
|
11365
11546
|
"actionMailboxId",
|
|
11366
11547
|
"createdAt",
|
|
11367
|
-
"updatedAt"
|
|
11548
|
+
"updatedAt",
|
|
11549
|
+
"rule"
|
|
11368
11550
|
],
|
|
11369
11551
|
"properties": {
|
|
11370
11552
|
"filterId": {
|
|
@@ -11450,8 +11632,18 @@
|
|
|
11450
11632
|
"items": {
|
|
11451
11633
|
"$ref": "#/components/schemas/RemitImap.FilterClause"
|
|
11452
11634
|
},
|
|
11453
|
-
"
|
|
11454
|
-
|
|
11635
|
+
"description": "Literal from/subject/has-words predicate clauses (RFC 031). Empty when the rule is not leaves under one allof or anyof."
|
|
11636
|
+
},
|
|
11637
|
+
"priority": {
|
|
11638
|
+
"type": "integer",
|
|
11639
|
+
"format": "int32",
|
|
11640
|
+
"description": "Evaluation order (RFC 040). Lower runs first; ties go to the newest actionChangedAt, then to filterId. The first move a message reaches wins.",
|
|
11641
|
+
"default": 0
|
|
11642
|
+
},
|
|
11643
|
+
"stop": {
|
|
11644
|
+
"type": "boolean",
|
|
11645
|
+
"description": "When set, a match ends evaluation for that message after this filter's own actions (RFC 040, Sieve `stop`).",
|
|
11646
|
+
"default": false
|
|
11455
11647
|
},
|
|
11456
11648
|
"actionLabelId": {
|
|
11457
11649
|
"type": "string",
|
|
@@ -11472,10 +11664,64 @@
|
|
|
11472
11664
|
"type": "integer",
|
|
11473
11665
|
"format": "int64",
|
|
11474
11666
|
"readOnly": true
|
|
11667
|
+
},
|
|
11668
|
+
"rule": {
|
|
11669
|
+
"allOf": [
|
|
11670
|
+
{
|
|
11671
|
+
"$ref": "#/components/schemas/RemitImap.FilterRuleV1"
|
|
11672
|
+
}
|
|
11673
|
+
],
|
|
11674
|
+
"description": "The rule as a test tree (RFC 040). literalClauses mirrors it when it is leaves under one allof or anyof, and is empty otherwise."
|
|
11475
11675
|
}
|
|
11476
11676
|
},
|
|
11477
11677
|
"description": "Filter item returned by list/get/create/update operations. `ttl` is internal bookkeeping (RFC 034 Decision 1.3) and not surfaced."
|
|
11478
11678
|
},
|
|
11679
|
+
"RemitImap.FilterRuleAddressPart": {
|
|
11680
|
+
"type": "string",
|
|
11681
|
+
"enum": [
|
|
11682
|
+
"All",
|
|
11683
|
+
"Localpart",
|
|
11684
|
+
"Domain",
|
|
11685
|
+
"RegistrableDomain"
|
|
11686
|
+
],
|
|
11687
|
+
"description": "The part of the From address a FilterRule address test reads (RFC 040). `RegistrableDomain` is the public-suffix aware domain."
|
|
11688
|
+
},
|
|
11689
|
+
"RemitImap.FilterRuleHeader": {
|
|
11690
|
+
"type": "string",
|
|
11691
|
+
"enum": [
|
|
11692
|
+
"From",
|
|
11693
|
+
"Subject",
|
|
11694
|
+
"ListId"
|
|
11695
|
+
],
|
|
11696
|
+
"description": "The header a FilterRule header test reads (RFC 040). `ListId` is normalized as a `List-Id` filter clause is."
|
|
11697
|
+
},
|
|
11698
|
+
"RemitImap.FilterRuleMatch": {
|
|
11699
|
+
"type": "string",
|
|
11700
|
+
"enum": [
|
|
11701
|
+
"Is",
|
|
11702
|
+
"Contains"
|
|
11703
|
+
],
|
|
11704
|
+
"description": "How a FilterRule header or address test compares its key (RFC 040, after Sieve's `:is` and `:contains`). Both fold case."
|
|
11705
|
+
},
|
|
11706
|
+
"RemitImap.FilterRuleV1": {
|
|
11707
|
+
"type": "object",
|
|
11708
|
+
"required": [
|
|
11709
|
+
"version",
|
|
11710
|
+
"test"
|
|
11711
|
+
],
|
|
11712
|
+
"properties": {
|
|
11713
|
+
"version": {
|
|
11714
|
+
"type": "number",
|
|
11715
|
+
"enum": [
|
|
11716
|
+
1
|
|
11717
|
+
]
|
|
11718
|
+
},
|
|
11719
|
+
"test": {
|
|
11720
|
+
"$ref": "#/components/schemas/RemitImap.FilterTest"
|
|
11721
|
+
}
|
|
11722
|
+
},
|
|
11723
|
+
"description": "A rule whose test is the truth; the row's literal clauses are empty."
|
|
11724
|
+
},
|
|
11479
11725
|
"RemitImap.FilterScope": {
|
|
11480
11726
|
"type": "string",
|
|
11481
11727
|
"enum": [
|
|
@@ -11493,6 +11739,29 @@
|
|
|
11493
11739
|
],
|
|
11494
11740
|
"description": "Whether a Filter runs, backing the byAccountAndState index (RFC 034 Decision 1.2). Active and Disabled are written; Expired is a lazily-patched cache of Filter.expiresAt, which stays the source of truth for expiry. A Disabled filter records why in Filter.disabledReason."
|
|
11495
11741
|
},
|
|
11742
|
+
"RemitImap.FilterTest": {
|
|
11743
|
+
"anyOf": [
|
|
11744
|
+
{
|
|
11745
|
+
"$ref": "#/components/schemas/RemitImap.FilterAllOfTest"
|
|
11746
|
+
},
|
|
11747
|
+
{
|
|
11748
|
+
"$ref": "#/components/schemas/RemitImap.FilterAnyOfTest"
|
|
11749
|
+
},
|
|
11750
|
+
{
|
|
11751
|
+
"$ref": "#/components/schemas/RemitImap.FilterNotTest"
|
|
11752
|
+
},
|
|
11753
|
+
{
|
|
11754
|
+
"$ref": "#/components/schemas/RemitImap.FilterHeaderTest"
|
|
11755
|
+
},
|
|
11756
|
+
{
|
|
11757
|
+
"$ref": "#/components/schemas/RemitImap.FilterAddressTest"
|
|
11758
|
+
},
|
|
11759
|
+
{
|
|
11760
|
+
"$ref": "#/components/schemas/RemitImap.FilterHasWordsTest"
|
|
11761
|
+
}
|
|
11762
|
+
],
|
|
11763
|
+
"description": "A node of a filter rule's test tree (RFC 040)."
|
|
11764
|
+
},
|
|
11496
11765
|
"RemitImap.FolderAppointment": {
|
|
11497
11766
|
"type": "object",
|
|
11498
11767
|
"required": [
|
|
@@ -14936,8 +15205,18 @@
|
|
|
14936
15205
|
"items": {
|
|
14937
15206
|
"$ref": "#/components/schemas/RemitImap.FilterClause"
|
|
14938
15207
|
},
|
|
14939
|
-
"
|
|
14940
|
-
|
|
15208
|
+
"description": "Literal from/subject/has-words predicate clauses (RFC 031). Empty when the rule is not leaves under one allof or anyof."
|
|
15209
|
+
},
|
|
15210
|
+
"priority": {
|
|
15211
|
+
"type": "integer",
|
|
15212
|
+
"format": "int32",
|
|
15213
|
+
"description": "Evaluation order (RFC 040). Lower runs first; ties go to the newest actionChangedAt, then to filterId. The first move a message reaches wins.",
|
|
15214
|
+
"default": 0
|
|
15215
|
+
},
|
|
15216
|
+
"stop": {
|
|
15217
|
+
"type": "boolean",
|
|
15218
|
+
"description": "When set, a match ends evaluation for that message after this filter's own actions (RFC 040, Sieve `stop`).",
|
|
15219
|
+
"default": false
|
|
14941
15220
|
},
|
|
14942
15221
|
"actionLabelId": {
|
|
14943
15222
|
"type": "string",
|
|
@@ -14948,6 +15227,14 @@
|
|
|
14948
15227
|
"type": "string",
|
|
14949
15228
|
"description": "Mailbox matched messages are moved into — exclusive action, since a message lives in exactly one mailbox (RFC 034 Decision 3.1). On conflict between filters, the one with the latest actionChangedAt wins. `\"None\"` means no move action.",
|
|
14950
15229
|
"default": "None"
|
|
15230
|
+
},
|
|
15231
|
+
"rule": {
|
|
15232
|
+
"allOf": [
|
|
15233
|
+
{
|
|
15234
|
+
"$ref": "#/components/schemas/RemitImap.FilterRuleV1"
|
|
15235
|
+
}
|
|
15236
|
+
],
|
|
15237
|
+
"description": "Replaces the rule (RFC 040). Never sent with matchOperator or literalClauses. The server caps a rule at 50 leaves and 5 levels."
|
|
14951
15238
|
}
|
|
14952
15239
|
},
|
|
14953
15240
|
"description": "Input for updating a filter (RFC 034, reader #266). The name, predicate,\naction, scope, and expiresAt are all updatable; `ttl` is always\nserver-derived from `scope`/`expiresAt`, never client-supplied, and\n`disabledReason`/`ruleChangedAt`/`actionChangedAt`/`filterId` are\nserver-derived too. `state` takes `Active` or `Disabled`: the user turns a\nfilter off or back on, and turning it on clears `disabledReason`. `Expired`\nis refused; the expiry is set through `scope`/`expiresAt`. A patch touching the predicate, the action, `scope`, or\n`expiresAt` bumps `ruleChangedAt`; a name-only rename never does (RFC 034\nDecision 3.2, reader #266). Only a patch touching the predicate or the\naction bumps `actionChangedAt`, the narrower signal exclusive-move\nprecedence reads (reader #384) — a scope/expiresAt-only edit leaves it\nuntouched."
|
package/package.json
CHANGED