@remit/api-openapi-spec 0.0.46 → 0.0.48

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.
Files changed (2) hide show
  1. package/openapi.json +47 -6
  2. package/package.json +1 -1
package/openapi.json CHANGED
@@ -3238,6 +3238,16 @@
3238
3238
  }
3239
3239
  }
3240
3240
  }
3241
+ },
3242
+ "409": {
3243
+ "description": "The same flat 409 body, for a message whose folder and uid do not name the same message.\n\n`code: \"message_placement_unsettled\"` — the message is mid-move, so its row names the destination folder while its uid still belongs to the source; acting on that pair would hit whatever the destination holds at that uid. `details` carries `accountId`, `messageId` and `reason`, one of: `in_flight` (the move is still running, and the same request succeeds once it confirms) or `unverified` (the move gave up without confirming, so where the message sits is unknown until the folder is resynced).",
3244
+ "content": {
3245
+ "application/json": {
3246
+ "schema": {
3247
+ "$ref": "#/components/schemas/ApiError"
3248
+ }
3249
+ }
3250
+ }
3241
3251
  }
3242
3252
  },
3243
3253
  "requestBody": {
@@ -7825,6 +7835,16 @@
7825
7835
  ],
7826
7836
  "description": "Header-derived message category. Set by classifyByHeaders during body-sync. Defaults to `uncategorized`, which covers both a message that has not been classified yet and one the classifier declined to categorize; `Message.classificationState` is what tells those apart."
7827
7837
  },
7838
+ "RemitImap.MessageMutation": {
7839
+ "type": "string",
7840
+ "enum": [
7841
+ "none",
7842
+ "move",
7843
+ "delete",
7844
+ "copy"
7845
+ ],
7846
+ "description": "Which mutation a message's placement gave up on. Read it only while\n`syncStatus` is `abandoned` — outside that it is `none` and says nothing,\nthe way `originalUid` says nothing once a placement has settled\n(`docs/architecture/imap-mutations.md` R3).\n\nIt exists because a hand-back erases the evidence: the give-up puts `status`\nback to `active`, and `status` was the only field naming the mutation that\nwas outstanding. Without this the client can see that something was\nabandoned and cannot see what, which is how a move that gave up came to be\nexplained to the user as a failed delete."
7847
+ },
7828
7848
  "RemitImap.MessageReferenceResponse": {
7829
7849
  "type": "object",
7830
7850
  "required": [
@@ -7890,7 +7910,8 @@
7890
7910
  "rfc822Size",
7891
7911
  "internalDate",
7892
7912
  "status",
7893
- "syncStatus"
7913
+ "syncStatus",
7914
+ "abandonedMutation"
7894
7915
  ],
7895
7916
  "properties": {
7896
7917
  "messageId": {
@@ -7952,10 +7973,20 @@
7952
7973
  "$ref": "#/components/schemas/RemitImap.MessageSyncStatus"
7953
7974
  }
7954
7975
  ],
7955
- "description": "Sync status for move/delete operations. The `synced` column default only applies to a row written without the field: the repository always supplies one, and an ordinary inbound sync writes `pending`, which nothing later promotes. So `pending` here does not mean an outstanding move or delete — `status` names that, and `failed` marks a mutation that gave up.",
7976
+ "description": "Sync status for move/delete operations, read as a pair with `status` (imap-mutations R3). The `synced` column default only applies to a row written without the field: the repository always supplies one, and an ordinary inbound sync writes `pending`, which nothing later promotes. So `pending` here does not mean an outstanding move or delete — `status` names that, `failed` marks an attempt about to be redelivered, and `abandoned` marks a mutation that gave up.",
7956
7977
  "default": "synced",
7957
7978
  "readOnly": true
7958
7979
  },
7980
+ "abandonedMutation": {
7981
+ "allOf": [
7982
+ {
7983
+ "$ref": "#/components/schemas/RemitImap.MessageMutation"
7984
+ }
7985
+ ],
7986
+ "description": "Which mutation gave up on this message. Meaningful only while `syncStatus` is `abandoned`; `none` everywhere else, so the absent state is a named value rather than a missing attribute. Written by the same transition that writes `abandoned`, because a hand-back sets `status` back to `active` and that is the field which named the mutation.",
7987
+ "default": "none",
7988
+ "readOnly": true
7989
+ },
7959
7990
  "authenticity": {
7960
7991
  "allOf": [
7961
7992
  {
@@ -7996,9 +8027,10 @@
7996
8027
  "enum": [
7997
8028
  "synced",
7998
8029
  "pending",
7999
- "failed"
8030
+ "failed",
8031
+ "abandoned"
8000
8032
  ],
8001
- "description": "Sync status for message move/delete operations"
8033
+ "description": "Sync status for message move/delete operations. Read it as a pair with\n`MessageStatus`, never alone — the six placement states and the transitions\nbetween them are `docs/architecture/imap-mutations.md` R3."
8002
8034
  },
8003
8035
  "RemitImap.MintOutboxAttachmentInput": {
8004
8036
  "type": "object",
@@ -9537,7 +9569,8 @@
9537
9569
  "senderTrust",
9538
9570
  "muted",
9539
9571
  "status",
9540
- "syncStatus"
9572
+ "syncStatus",
9573
+ "abandonedMutation"
9541
9574
  ],
9542
9575
  "properties": {
9543
9576
  "threadMessageId": {
@@ -9697,7 +9730,15 @@
9697
9730
  "$ref": "#/components/schemas/RemitImap.MessageSyncStatus"
9698
9731
  }
9699
9732
  ],
9700
- "description": "Sync status of the underlying Message, projected at read time. Read it WITH `status`, never alone: `message-move`, `message-delete` and `message-copy` all write `failed` on an ordinary transient attempt before a redelivery that usually succeeds, so `failed` by itself does not mean a mutation gave up. One pair does prove one: `active` + `failed`, written only by `abandonDelete` — a delete Remit refused to run and handed back. Nothing else here is decidable. A move that gave up leaves `moving` + `failed`, the same pair its first dropped connection leaves; a delete that exhausted its retries is repaired to `active` + `synced` and reads as settled; `flag-push` and `placement-move-push` never write either field."
9733
+ "description": "Sync status of the underlying Message, projected at read time. Read it WITH `status`, never alone (imap-mutations R3): `message-move`, `message-delete` and `message-copy` all write `failed` on an ordinary transient attempt before a redelivery that usually succeeds, so `failed` never means a mutation gave up. Give-up is `active` + `abandoned`, and that pair is decidable on its own — the row has been put back on a placement the server holds and nothing else is coming for it. A mutation that exhausted its retries and was repaired against IMAP settles to `active` + `synced` and reads as settled."
9734
+ },
9735
+ "abandonedMutation": {
9736
+ "allOf": [
9737
+ {
9738
+ "$ref": "#/components/schemas/RemitImap.MessageMutation"
9739
+ }
9740
+ ],
9741
+ "description": "Which mutation gave up on the underlying Message, projected at read time. Read it only where `syncStatus` is `abandoned`; `none` otherwise. This is what lets a surface name the operation that actually failed — before it existed, a move that handed back and a delete that was refused were the same two values on the wire, and the client called both a failed delete."
9701
9742
  },
9702
9743
  "accountId": {
9703
9744
  "allOf": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remit/api-openapi-spec",
3
- "version": "0.0.46",
3
+ "version": "0.0.48",
4
4
  "description": "Remit API OpenAPI 3 document, generated from TypeSpec.",
5
5
  "exports": {
6
6
  ".": "./openapi.json",