@remit/api-openapi-spec 0.0.14 → 0.0.16
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 +498 -0
- package/package.json +1 -1
package/openapi.json
CHANGED
|
@@ -543,6 +543,240 @@
|
|
|
543
543
|
}
|
|
544
544
|
}
|
|
545
545
|
},
|
|
546
|
+
"/accounts/{accountId}/labels": {
|
|
547
|
+
"get": {
|
|
548
|
+
"operationId": "LabelOperations_listLabels",
|
|
549
|
+
"parameters": [
|
|
550
|
+
{
|
|
551
|
+
"name": "accountId",
|
|
552
|
+
"in": "path",
|
|
553
|
+
"required": true,
|
|
554
|
+
"schema": {
|
|
555
|
+
"$ref": "#/components/schemas/UUID"
|
|
556
|
+
}
|
|
557
|
+
},
|
|
558
|
+
{
|
|
559
|
+
"name": "continuationToken",
|
|
560
|
+
"in": "query",
|
|
561
|
+
"required": false,
|
|
562
|
+
"schema": {
|
|
563
|
+
"type": "string"
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
],
|
|
567
|
+
"responses": {
|
|
568
|
+
"200": {
|
|
569
|
+
"description": "The request has succeeded.",
|
|
570
|
+
"content": {
|
|
571
|
+
"application/json": {
|
|
572
|
+
"schema": {
|
|
573
|
+
"type": "object",
|
|
574
|
+
"required": [
|
|
575
|
+
"items"
|
|
576
|
+
],
|
|
577
|
+
"properties": {
|
|
578
|
+
"continuationToken": {
|
|
579
|
+
"allOf": [
|
|
580
|
+
{
|
|
581
|
+
"$ref": "#/components/schemas/String800"
|
|
582
|
+
}
|
|
583
|
+
],
|
|
584
|
+
"description": "Opaque, server-minted cursor: absent means the first (or last) page, present means resume from here. Echo it back unchanged to fetch the next page. Every listing endpoint that accepts it rejects a token it cannot decode with 400 ValidationError rather than silently restarting from the first page (#136, #172)."
|
|
585
|
+
},
|
|
586
|
+
"items": {
|
|
587
|
+
"type": "array",
|
|
588
|
+
"items": {
|
|
589
|
+
"$ref": "#/components/schemas/RemitImap.LabelResponse"
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
},
|
|
598
|
+
"x-amazon-apigateway-integration": {
|
|
599
|
+
"type": "aws_proxy",
|
|
600
|
+
"httpMethod": "POST",
|
|
601
|
+
"passthroughBehavior": "when_no_match",
|
|
602
|
+
"uri": {
|
|
603
|
+
"Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:{{HandlerFunctionName}}/invocations"
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
},
|
|
607
|
+
"post": {
|
|
608
|
+
"operationId": "LabelOperations_createLabel",
|
|
609
|
+
"parameters": [
|
|
610
|
+
{
|
|
611
|
+
"name": "accountId",
|
|
612
|
+
"in": "path",
|
|
613
|
+
"required": true,
|
|
614
|
+
"schema": {
|
|
615
|
+
"$ref": "#/components/schemas/UUID"
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
],
|
|
619
|
+
"responses": {
|
|
620
|
+
"200": {
|
|
621
|
+
"description": "The request has succeeded.",
|
|
622
|
+
"content": {
|
|
623
|
+
"application/json": {
|
|
624
|
+
"schema": {
|
|
625
|
+
"$ref": "#/components/schemas/RemitImap.LabelResponse"
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
},
|
|
631
|
+
"requestBody": {
|
|
632
|
+
"required": true,
|
|
633
|
+
"content": {
|
|
634
|
+
"application/json": {
|
|
635
|
+
"schema": {
|
|
636
|
+
"$ref": "#/components/schemas/RemitImap.CreateLabelInput"
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
},
|
|
641
|
+
"x-amazon-apigateway-integration": {
|
|
642
|
+
"type": "aws_proxy",
|
|
643
|
+
"httpMethod": "POST",
|
|
644
|
+
"passthroughBehavior": "when_no_match",
|
|
645
|
+
"uri": {
|
|
646
|
+
"Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:{{HandlerFunctionName}}/invocations"
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
},
|
|
651
|
+
"/accounts/{accountId}/labels/{labelId}": {
|
|
652
|
+
"get": {
|
|
653
|
+
"operationId": "LabelDetailOperations_getLabel",
|
|
654
|
+
"parameters": [
|
|
655
|
+
{
|
|
656
|
+
"name": "accountId",
|
|
657
|
+
"in": "path",
|
|
658
|
+
"required": true,
|
|
659
|
+
"schema": {
|
|
660
|
+
"$ref": "#/components/schemas/UUID"
|
|
661
|
+
}
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
"name": "labelId",
|
|
665
|
+
"in": "path",
|
|
666
|
+
"required": true,
|
|
667
|
+
"schema": {
|
|
668
|
+
"$ref": "#/components/schemas/UUID"
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
],
|
|
672
|
+
"responses": {
|
|
673
|
+
"200": {
|
|
674
|
+
"description": "The request has succeeded.",
|
|
675
|
+
"content": {
|
|
676
|
+
"application/json": {
|
|
677
|
+
"schema": {
|
|
678
|
+
"$ref": "#/components/schemas/RemitImap.LabelResponse"
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
},
|
|
684
|
+
"x-amazon-apigateway-integration": {
|
|
685
|
+
"type": "aws_proxy",
|
|
686
|
+
"httpMethod": "POST",
|
|
687
|
+
"passthroughBehavior": "when_no_match",
|
|
688
|
+
"uri": {
|
|
689
|
+
"Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:{{HandlerFunctionName}}/invocations"
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
},
|
|
693
|
+
"patch": {
|
|
694
|
+
"operationId": "LabelDetailOperations_updateLabel",
|
|
695
|
+
"parameters": [
|
|
696
|
+
{
|
|
697
|
+
"name": "accountId",
|
|
698
|
+
"in": "path",
|
|
699
|
+
"required": true,
|
|
700
|
+
"schema": {
|
|
701
|
+
"$ref": "#/components/schemas/UUID"
|
|
702
|
+
}
|
|
703
|
+
},
|
|
704
|
+
{
|
|
705
|
+
"name": "labelId",
|
|
706
|
+
"in": "path",
|
|
707
|
+
"required": true,
|
|
708
|
+
"schema": {
|
|
709
|
+
"$ref": "#/components/schemas/UUID"
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
],
|
|
713
|
+
"responses": {
|
|
714
|
+
"200": {
|
|
715
|
+
"description": "The request has succeeded.",
|
|
716
|
+
"content": {
|
|
717
|
+
"application/json": {
|
|
718
|
+
"schema": {
|
|
719
|
+
"$ref": "#/components/schemas/RemitImap.LabelResponse"
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
},
|
|
725
|
+
"requestBody": {
|
|
726
|
+
"required": true,
|
|
727
|
+
"content": {
|
|
728
|
+
"application/json": {
|
|
729
|
+
"schema": {
|
|
730
|
+
"$ref": "#/components/schemas/RemitImap.UpdateLabelInput"
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
},
|
|
735
|
+
"x-amazon-apigateway-integration": {
|
|
736
|
+
"type": "aws_proxy",
|
|
737
|
+
"httpMethod": "POST",
|
|
738
|
+
"passthroughBehavior": "when_no_match",
|
|
739
|
+
"uri": {
|
|
740
|
+
"Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:{{HandlerFunctionName}}/invocations"
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
},
|
|
744
|
+
"delete": {
|
|
745
|
+
"operationId": "LabelDetailOperations_deleteLabel",
|
|
746
|
+
"description": "Delete a label. Cascades in both directions (issue #26): every `MessageLabel` row for it is removed, and every filter whose `actionLabelId` is this label is deleted outright — never left dangling, never blocking the delete. The client is expected to confirm first, naming `LabelResponse.filterCount` as the number of filters that will go with it.",
|
|
747
|
+
"parameters": [
|
|
748
|
+
{
|
|
749
|
+
"name": "accountId",
|
|
750
|
+
"in": "path",
|
|
751
|
+
"required": true,
|
|
752
|
+
"schema": {
|
|
753
|
+
"$ref": "#/components/schemas/UUID"
|
|
754
|
+
}
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
"name": "labelId",
|
|
758
|
+
"in": "path",
|
|
759
|
+
"required": true,
|
|
760
|
+
"schema": {
|
|
761
|
+
"$ref": "#/components/schemas/UUID"
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
],
|
|
765
|
+
"responses": {
|
|
766
|
+
"204": {
|
|
767
|
+
"description": "There is no content to send for this request, but the headers may be useful. "
|
|
768
|
+
}
|
|
769
|
+
},
|
|
770
|
+
"x-amazon-apigateway-integration": {
|
|
771
|
+
"type": "aws_proxy",
|
|
772
|
+
"httpMethod": "POST",
|
|
773
|
+
"passthroughBehavior": "when_no_match",
|
|
774
|
+
"uri": {
|
|
775
|
+
"Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:{{HandlerFunctionName}}/invocations"
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
}
|
|
779
|
+
},
|
|
546
780
|
"/accounts/{accountId}/mailboxes": {
|
|
547
781
|
"get": {
|
|
548
782
|
"operationId": "MailboxOperations_listMailboxes",
|
|
@@ -1661,6 +1895,43 @@
|
|
|
1661
1895
|
}
|
|
1662
1896
|
}
|
|
1663
1897
|
},
|
|
1898
|
+
"/messages/labels": {
|
|
1899
|
+
"post": {
|
|
1900
|
+
"operationId": "MessageBulkOperations_updateMessageLabels",
|
|
1901
|
+
"description": "Apply or remove a label on multiple messages — the manual \"just these\" scope (RFC 034 recap, issue #26). `appliedByFilterId` stays absent on the resulting `MessageLabel` rows; that provenance is reserved for filter/organize applies.",
|
|
1902
|
+
"parameters": [],
|
|
1903
|
+
"responses": {
|
|
1904
|
+
"200": {
|
|
1905
|
+
"description": "The request has succeeded.",
|
|
1906
|
+
"content": {
|
|
1907
|
+
"application/json": {
|
|
1908
|
+
"schema": {
|
|
1909
|
+
"$ref": "#/components/schemas/RemitImap.MessageBulkOperationResult"
|
|
1910
|
+
}
|
|
1911
|
+
}
|
|
1912
|
+
}
|
|
1913
|
+
}
|
|
1914
|
+
},
|
|
1915
|
+
"requestBody": {
|
|
1916
|
+
"required": true,
|
|
1917
|
+
"content": {
|
|
1918
|
+
"application/json": {
|
|
1919
|
+
"schema": {
|
|
1920
|
+
"$ref": "#/components/schemas/RemitImap.UpdateMessageLabelsInput"
|
|
1921
|
+
}
|
|
1922
|
+
}
|
|
1923
|
+
}
|
|
1924
|
+
},
|
|
1925
|
+
"x-amazon-apigateway-integration": {
|
|
1926
|
+
"type": "aws_proxy",
|
|
1927
|
+
"httpMethod": "POST",
|
|
1928
|
+
"passthroughBehavior": "when_no_match",
|
|
1929
|
+
"uri": {
|
|
1930
|
+
"Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:{{HandlerFunctionName}}/invocations"
|
|
1931
|
+
}
|
|
1932
|
+
}
|
|
1933
|
+
}
|
|
1934
|
+
},
|
|
1664
1935
|
"/messages/move": {
|
|
1665
1936
|
"post": {
|
|
1666
1937
|
"operationId": "MessageBulkOperations_moveMessages",
|
|
@@ -3629,6 +3900,33 @@
|
|
|
3629
3900
|
},
|
|
3630
3901
|
"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`, `hasAnchor`, `ruleChangedAt`, and\n`filterId` are all server-derived and excluded by their Read-only visibility.\n\nWhen `anchorMessageId` is set, the server builds and persists the filter's\nsemantic anchor from that message's indexed vectors (RFC 034 Decision 2) and\nsets `hasAnchor`. Absent for a purely-literal filter."
|
|
3631
3902
|
},
|
|
3903
|
+
"RemitImap.CreateLabelInput": {
|
|
3904
|
+
"type": "object",
|
|
3905
|
+
"required": [
|
|
3906
|
+
"name",
|
|
3907
|
+
"color"
|
|
3908
|
+
],
|
|
3909
|
+
"properties": {
|
|
3910
|
+
"name": {
|
|
3911
|
+
"allOf": [
|
|
3912
|
+
{
|
|
3913
|
+
"$ref": "#/components/schemas/String140"
|
|
3914
|
+
}
|
|
3915
|
+
],
|
|
3916
|
+
"description": "Human-readable label name (display)"
|
|
3917
|
+
},
|
|
3918
|
+
"color": {
|
|
3919
|
+
"allOf": [
|
|
3920
|
+
{
|
|
3921
|
+
"$ref": "#/components/schemas/RemitImap.LabelColor"
|
|
3922
|
+
}
|
|
3923
|
+
],
|
|
3924
|
+
"description": "Display color for this label",
|
|
3925
|
+
"default": "Default"
|
|
3926
|
+
}
|
|
3927
|
+
},
|
|
3928
|
+
"description": "Input for creating a label (RFC 030). `normalizedName` is server-derived from `name` and excluded by its Read-only visibility."
|
|
3929
|
+
},
|
|
3632
3930
|
"RemitImap.CreateMailboxInput": {
|
|
3633
3931
|
"type": "object",
|
|
3634
3932
|
"required": [
|
|
@@ -4227,6 +4525,114 @@
|
|
|
4227
4525
|
},
|
|
4228
4526
|
"description": "Per-account appointment of a canonical role to at most one mailbox (RFC 032 exclusive-folder-appointment, issue #976). A role with no `mailboxId` is unfilled — either genuinely unappointed, or the account has no matching folder yet. Persisted as per-(account, role) AccountSetting rows (RFC 032 settings tiers), surfaced on AccountResponse.folderAppointments — never on the Mailbox entity, so two folders can never both claim the same role."
|
|
4229
4527
|
},
|
|
4528
|
+
"RemitImap.LabelAction": {
|
|
4529
|
+
"type": "string",
|
|
4530
|
+
"enum": [
|
|
4531
|
+
"Apply",
|
|
4532
|
+
"Remove"
|
|
4533
|
+
],
|
|
4534
|
+
"description": "Manual bulk label action (issue #26) — apply or remove a label on a `just these` selection. Never sets `appliedByFilterId`: that field is reserved for filter-driven applies (RFC 034 Decision 3.3)."
|
|
4535
|
+
},
|
|
4536
|
+
"RemitImap.LabelColor": {
|
|
4537
|
+
"type": "string",
|
|
4538
|
+
"enum": [
|
|
4539
|
+
"Default",
|
|
4540
|
+
"Red",
|
|
4541
|
+
"Orange",
|
|
4542
|
+
"Yellow",
|
|
4543
|
+
"Green",
|
|
4544
|
+
"Teal",
|
|
4545
|
+
"Blue",
|
|
4546
|
+
"Purple",
|
|
4547
|
+
"Gray"
|
|
4548
|
+
],
|
|
4549
|
+
"description": "Display color for a user-defined Label (RFC 030)."
|
|
4550
|
+
},
|
|
4551
|
+
"RemitImap.LabelResponse": {
|
|
4552
|
+
"type": "object",
|
|
4553
|
+
"required": [
|
|
4554
|
+
"labelId",
|
|
4555
|
+
"accountConfigId",
|
|
4556
|
+
"name",
|
|
4557
|
+
"color",
|
|
4558
|
+
"createdAt",
|
|
4559
|
+
"updatedAt",
|
|
4560
|
+
"filterCount"
|
|
4561
|
+
],
|
|
4562
|
+
"properties": {
|
|
4563
|
+
"labelId": {
|
|
4564
|
+
"allOf": [
|
|
4565
|
+
{
|
|
4566
|
+
"$ref": "#/components/schemas/UUID"
|
|
4567
|
+
}
|
|
4568
|
+
],
|
|
4569
|
+
"description": "Primary identifier",
|
|
4570
|
+
"readOnly": true
|
|
4571
|
+
},
|
|
4572
|
+
"accountConfigId": {
|
|
4573
|
+
"allOf": [
|
|
4574
|
+
{
|
|
4575
|
+
"$ref": "#/components/schemas/UUID"
|
|
4576
|
+
}
|
|
4577
|
+
],
|
|
4578
|
+
"description": "Owning account configuration",
|
|
4579
|
+
"readOnly": true
|
|
4580
|
+
},
|
|
4581
|
+
"name": {
|
|
4582
|
+
"allOf": [
|
|
4583
|
+
{
|
|
4584
|
+
"$ref": "#/components/schemas/String140"
|
|
4585
|
+
}
|
|
4586
|
+
],
|
|
4587
|
+
"description": "Human-readable label name (display)"
|
|
4588
|
+
},
|
|
4589
|
+
"color": {
|
|
4590
|
+
"allOf": [
|
|
4591
|
+
{
|
|
4592
|
+
"$ref": "#/components/schemas/RemitImap.LabelColor"
|
|
4593
|
+
}
|
|
4594
|
+
],
|
|
4595
|
+
"description": "Display color for this label",
|
|
4596
|
+
"default": "Default"
|
|
4597
|
+
},
|
|
4598
|
+
"createdAt": {
|
|
4599
|
+
"type": "integer",
|
|
4600
|
+
"format": "int64",
|
|
4601
|
+
"readOnly": true
|
|
4602
|
+
},
|
|
4603
|
+
"updatedAt": {
|
|
4604
|
+
"type": "integer",
|
|
4605
|
+
"format": "int64",
|
|
4606
|
+
"readOnly": true
|
|
4607
|
+
},
|
|
4608
|
+
"filterCount": {
|
|
4609
|
+
"type": "integer",
|
|
4610
|
+
"format": "int32",
|
|
4611
|
+
"description": "Number of the account's filters whose `actionLabelId` is this label. Deleting the label deletes every one of them (issue #26) — a client shows this count in its delete confirmation."
|
|
4612
|
+
}
|
|
4613
|
+
},
|
|
4614
|
+
"description": "Label item returned by list/get/create/update operations (RFC 030). `filterCount` is computed at read time so a client can name the blast radius before confirming a delete — the delete itself never blocks on it (issue #26)."
|
|
4615
|
+
},
|
|
4616
|
+
"RemitImap.LabelSummaryResponse": {
|
|
4617
|
+
"type": "object",
|
|
4618
|
+
"required": [
|
|
4619
|
+
"labelId",
|
|
4620
|
+
"name",
|
|
4621
|
+
"color"
|
|
4622
|
+
],
|
|
4623
|
+
"properties": {
|
|
4624
|
+
"labelId": {
|
|
4625
|
+
"$ref": "#/components/schemas/UUID"
|
|
4626
|
+
},
|
|
4627
|
+
"name": {
|
|
4628
|
+
"$ref": "#/components/schemas/String140"
|
|
4629
|
+
},
|
|
4630
|
+
"color": {
|
|
4631
|
+
"$ref": "#/components/schemas/RemitImap.LabelColor"
|
|
4632
|
+
}
|
|
4633
|
+
},
|
|
4634
|
+
"description": "The id, name, and color of a label applied to a message — embedded on message/thread read responses (issue #26). Never the full LabelResponse: a read-time attachment carries no filterCount."
|
|
4635
|
+
},
|
|
4230
4636
|
"RemitImap.MailboxResponse": {
|
|
4231
4637
|
"type": "object",
|
|
4232
4638
|
"required": [
|
|
@@ -4333,6 +4739,15 @@
|
|
|
4333
4739
|
"description": "Timestamp of the last successful message sync",
|
|
4334
4740
|
"readOnly": true
|
|
4335
4741
|
},
|
|
4742
|
+
"syncStatus": {
|
|
4743
|
+
"allOf": [
|
|
4744
|
+
{
|
|
4745
|
+
"$ref": "#/components/schemas/RemitImap.MailboxSyncStatus"
|
|
4746
|
+
}
|
|
4747
|
+
],
|
|
4748
|
+
"description": "Sync status for mailbox operations (create, rename, delete)",
|
|
4749
|
+
"readOnly": true
|
|
4750
|
+
},
|
|
4336
4751
|
"specialUse": {
|
|
4337
4752
|
"type": "array",
|
|
4338
4753
|
"items": {
|
|
@@ -4428,6 +4843,16 @@
|
|
|
4428
4843
|
},
|
|
4429
4844
|
"description": "Per-mailbox progress entry in the sync-status response"
|
|
4430
4845
|
},
|
|
4846
|
+
"RemitImap.MailboxSyncStatus": {
|
|
4847
|
+
"type": "string",
|
|
4848
|
+
"enum": [
|
|
4849
|
+
"synced",
|
|
4850
|
+
"pending",
|
|
4851
|
+
"failed",
|
|
4852
|
+
"deleting"
|
|
4853
|
+
],
|
|
4854
|
+
"description": "Sync status for mailbox operations"
|
|
4855
|
+
},
|
|
4431
4856
|
"RemitImap.MediaType": {
|
|
4432
4857
|
"type": "string",
|
|
4433
4858
|
"enum": [
|
|
@@ -4597,6 +5022,13 @@
|
|
|
4597
5022
|
}
|
|
4598
5023
|
],
|
|
4599
5024
|
"description": "Present only when Remit auto-moved this message on body-sync. Absent means the message was not auto-moved by Remit."
|
|
5025
|
+
},
|
|
5026
|
+
"labels": {
|
|
5027
|
+
"type": "array",
|
|
5028
|
+
"items": {
|
|
5029
|
+
"$ref": "#/components/schemas/RemitImap.LabelSummaryResponse"
|
|
5030
|
+
},
|
|
5031
|
+
"description": "Labels applied to this message — filter-, organize-, and manually-applied alike (issue #26). Absent/empty means no label is applied."
|
|
4600
5032
|
}
|
|
4601
5033
|
},
|
|
4602
5034
|
"description": "Core message metadata for API responses"
|
|
@@ -5972,6 +6404,13 @@
|
|
|
5972
6404
|
}
|
|
5973
6405
|
],
|
|
5974
6406
|
"description": "Present only when Remit auto-moved this message on body-sync. Absent means the message was not auto-moved by Remit."
|
|
6407
|
+
},
|
|
6408
|
+
"labels": {
|
|
6409
|
+
"type": "array",
|
|
6410
|
+
"items": {
|
|
6411
|
+
"$ref": "#/components/schemas/RemitImap.LabelSummaryResponse"
|
|
6412
|
+
},
|
|
6413
|
+
"description": "Labels applied to this message — filter-, organize-, and manually-applied alike (issue #26). Absent/empty means no label is applied."
|
|
5975
6414
|
}
|
|
5976
6415
|
},
|
|
5977
6416
|
"description": "Thread message item returned by list/search operations. `category` and `senderTrust` are attached at read time via batch-fetch so the inbox row can render badges without a per-row round trip."
|
|
@@ -6319,6 +6758,65 @@
|
|
|
6319
6758
|
},
|
|
6320
6759
|
"description": "Input for updating message flags (translated to IMAP flags server-side)"
|
|
6321
6760
|
},
|
|
6761
|
+
"RemitImap.UpdateLabelInput": {
|
|
6762
|
+
"type": "object",
|
|
6763
|
+
"properties": {
|
|
6764
|
+
"name": {
|
|
6765
|
+
"allOf": [
|
|
6766
|
+
{
|
|
6767
|
+
"$ref": "#/components/schemas/String140"
|
|
6768
|
+
}
|
|
6769
|
+
],
|
|
6770
|
+
"description": "Human-readable label name (display)"
|
|
6771
|
+
},
|
|
6772
|
+
"color": {
|
|
6773
|
+
"allOf": [
|
|
6774
|
+
{
|
|
6775
|
+
"$ref": "#/components/schemas/RemitImap.LabelColor"
|
|
6776
|
+
}
|
|
6777
|
+
],
|
|
6778
|
+
"description": "Display color for this label",
|
|
6779
|
+
"default": "Default"
|
|
6780
|
+
}
|
|
6781
|
+
},
|
|
6782
|
+
"description": "Input for updating a label (RFC 030). Only `name` and `color` are mutable."
|
|
6783
|
+
},
|
|
6784
|
+
"RemitImap.UpdateMessageLabelsInput": {
|
|
6785
|
+
"type": "object",
|
|
6786
|
+
"required": [
|
|
6787
|
+
"messageIds",
|
|
6788
|
+
"labelId",
|
|
6789
|
+
"action"
|
|
6790
|
+
],
|
|
6791
|
+
"properties": {
|
|
6792
|
+
"messageIds": {
|
|
6793
|
+
"type": "array",
|
|
6794
|
+
"items": {
|
|
6795
|
+
"$ref": "#/components/schemas/UUID"
|
|
6796
|
+
},
|
|
6797
|
+
"minItems": 1,
|
|
6798
|
+
"maxItems": 100,
|
|
6799
|
+
"description": "List of message IDs to operate on"
|
|
6800
|
+
},
|
|
6801
|
+
"labelId": {
|
|
6802
|
+
"allOf": [
|
|
6803
|
+
{
|
|
6804
|
+
"$ref": "#/components/schemas/UUID"
|
|
6805
|
+
}
|
|
6806
|
+
],
|
|
6807
|
+
"description": "Label to apply or remove"
|
|
6808
|
+
},
|
|
6809
|
+
"action": {
|
|
6810
|
+
"allOf": [
|
|
6811
|
+
{
|
|
6812
|
+
"$ref": "#/components/schemas/RemitImap.LabelAction"
|
|
6813
|
+
}
|
|
6814
|
+
],
|
|
6815
|
+
"description": "Whether to apply or remove the label"
|
|
6816
|
+
}
|
|
6817
|
+
},
|
|
6818
|
+
"description": "Input for a manual bulk label action — the \"just these\" scope (RFC 034 recap). `appliedByFilterId` never gets set on the resulting `MessageLabel` rows; that provenance is reserved for filter/organize applies (RFC 034 Decision 3.3)."
|
|
6819
|
+
},
|
|
6322
6820
|
"RemitImap.UpdateOutboxMessageInput": {
|
|
6323
6821
|
"type": "object",
|
|
6324
6822
|
"properties": {
|