@remit/api-openapi-spec 0.0.38 → 0.0.39
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 +548 -0
- package/package.json +1 -1
package/openapi.json
CHANGED
|
@@ -1868,6 +1868,237 @@
|
|
|
1868
1868
|
}
|
|
1869
1869
|
}
|
|
1870
1870
|
},
|
|
1871
|
+
"/calendar-suggestions": {
|
|
1872
|
+
"get": {
|
|
1873
|
+
"operationId": "CalendarSuggestionOperations_listCalendarSuggestions",
|
|
1874
|
+
"description": "List the caller's suggestions in one state, newest first. `Pending` is the set that is waiting on a person and the one a client normally asks for.",
|
|
1875
|
+
"parameters": [
|
|
1876
|
+
{
|
|
1877
|
+
"name": "state",
|
|
1878
|
+
"in": "query",
|
|
1879
|
+
"required": true,
|
|
1880
|
+
"schema": {
|
|
1881
|
+
"$ref": "#/components/schemas/RemitImap.CalendarSuggestionState"
|
|
1882
|
+
}
|
|
1883
|
+
},
|
|
1884
|
+
{
|
|
1885
|
+
"name": "continuationToken",
|
|
1886
|
+
"in": "query",
|
|
1887
|
+
"required": false,
|
|
1888
|
+
"schema": {
|
|
1889
|
+
"type": "string"
|
|
1890
|
+
}
|
|
1891
|
+
}
|
|
1892
|
+
],
|
|
1893
|
+
"responses": {
|
|
1894
|
+
"200": {
|
|
1895
|
+
"description": "The request has succeeded.",
|
|
1896
|
+
"content": {
|
|
1897
|
+
"application/json": {
|
|
1898
|
+
"schema": {
|
|
1899
|
+
"type": "object",
|
|
1900
|
+
"required": [
|
|
1901
|
+
"items"
|
|
1902
|
+
],
|
|
1903
|
+
"properties": {
|
|
1904
|
+
"continuationToken": {
|
|
1905
|
+
"allOf": [
|
|
1906
|
+
{
|
|
1907
|
+
"$ref": "#/components/schemas/String800"
|
|
1908
|
+
}
|
|
1909
|
+
],
|
|
1910
|
+
"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)."
|
|
1911
|
+
},
|
|
1912
|
+
"items": {
|
|
1913
|
+
"type": "array",
|
|
1914
|
+
"items": {
|
|
1915
|
+
"$ref": "#/components/schemas/RemitImap.CalendarSuggestionResponse"
|
|
1916
|
+
}
|
|
1917
|
+
}
|
|
1918
|
+
}
|
|
1919
|
+
}
|
|
1920
|
+
}
|
|
1921
|
+
}
|
|
1922
|
+
},
|
|
1923
|
+
"400": {
|
|
1924
|
+
"description": "Validation error response",
|
|
1925
|
+
"content": {
|
|
1926
|
+
"application/json": {
|
|
1927
|
+
"schema": {
|
|
1928
|
+
"$ref": "#/components/schemas/ApiError"
|
|
1929
|
+
}
|
|
1930
|
+
}
|
|
1931
|
+
}
|
|
1932
|
+
}
|
|
1933
|
+
},
|
|
1934
|
+
"x-amazon-apigateway-integration": {
|
|
1935
|
+
"type": "aws_proxy",
|
|
1936
|
+
"httpMethod": "POST",
|
|
1937
|
+
"passthroughBehavior": "when_no_match",
|
|
1938
|
+
"uri": {
|
|
1939
|
+
"Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:{{HandlerFunctionName}}/invocations"
|
|
1940
|
+
}
|
|
1941
|
+
}
|
|
1942
|
+
}
|
|
1943
|
+
},
|
|
1944
|
+
"/calendar-suggestions/{suggestionId}/accept": {
|
|
1945
|
+
"post": {
|
|
1946
|
+
"operationId": "CalendarSuggestionActionOperations_acceptCalendarSuggestion",
|
|
1947
|
+
"description": "Add the suggested event to a calendar. One transaction: a VCALENDAR is\nbuilt from the invitation's own bytes, keeping its UID and SEQUENCE and\nmarking the user `ATTENDEE;PARTSTAT=ACCEPTED`, and written through the\nsame service function every other calendar write goes through — so a web\nedit and a native edit of that event cannot diverge. Accepting a `Cancel`\nsuggestion writes `STATUS:CANCELLED` on the resource the same way.\n\nNo reply is sent to the organizer. This endpoint sends no mail at all,\nand the card says so.\n\nIdempotent: accepting an already-accepted suggestion rewrites the same\nresource and returns the same suggestion, because both the resource id\nand the suggestion id are derived rather than minted.\n\n400 when the suggestion is not one that can be accepted — already\ndeclined, dismissed or superseded — or when its iCalendar will not parse.",
|
|
1948
|
+
"parameters": [
|
|
1949
|
+
{
|
|
1950
|
+
"name": "suggestionId",
|
|
1951
|
+
"in": "path",
|
|
1952
|
+
"required": true,
|
|
1953
|
+
"schema": {
|
|
1954
|
+
"$ref": "#/components/schemas/UUID"
|
|
1955
|
+
}
|
|
1956
|
+
}
|
|
1957
|
+
],
|
|
1958
|
+
"responses": {
|
|
1959
|
+
"200": {
|
|
1960
|
+
"description": "The request has succeeded.",
|
|
1961
|
+
"content": {
|
|
1962
|
+
"application/json": {
|
|
1963
|
+
"schema": {
|
|
1964
|
+
"$ref": "#/components/schemas/RemitImap.CalendarSuggestionResponse"
|
|
1965
|
+
}
|
|
1966
|
+
}
|
|
1967
|
+
}
|
|
1968
|
+
},
|
|
1969
|
+
"400": {
|
|
1970
|
+
"description": "Validation error response",
|
|
1971
|
+
"content": {
|
|
1972
|
+
"application/json": {
|
|
1973
|
+
"schema": {
|
|
1974
|
+
"$ref": "#/components/schemas/ApiError"
|
|
1975
|
+
}
|
|
1976
|
+
}
|
|
1977
|
+
}
|
|
1978
|
+
}
|
|
1979
|
+
},
|
|
1980
|
+
"requestBody": {
|
|
1981
|
+
"required": true,
|
|
1982
|
+
"content": {
|
|
1983
|
+
"application/json": {
|
|
1984
|
+
"schema": {
|
|
1985
|
+
"$ref": "#/components/schemas/RemitImap.AcceptCalendarSuggestionInput"
|
|
1986
|
+
}
|
|
1987
|
+
}
|
|
1988
|
+
}
|
|
1989
|
+
},
|
|
1990
|
+
"x-amazon-apigateway-integration": {
|
|
1991
|
+
"type": "aws_proxy",
|
|
1992
|
+
"httpMethod": "POST",
|
|
1993
|
+
"passthroughBehavior": "when_no_match",
|
|
1994
|
+
"uri": {
|
|
1995
|
+
"Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:{{HandlerFunctionName}}/invocations"
|
|
1996
|
+
}
|
|
1997
|
+
}
|
|
1998
|
+
}
|
|
1999
|
+
},
|
|
2000
|
+
"/calendar-suggestions/{suggestionId}/decline": {
|
|
2001
|
+
"post": {
|
|
2002
|
+
"operationId": "CalendarSuggestionActionOperations_declineCalendarSuggestion",
|
|
2003
|
+
"description": "Say no. Writes no calendar object and sends no reply to the organizer. Idempotent; 400 when the suggestion was already accepted, since a resource exists and declining would not remove it.",
|
|
2004
|
+
"parameters": [
|
|
2005
|
+
{
|
|
2006
|
+
"name": "suggestionId",
|
|
2007
|
+
"in": "path",
|
|
2008
|
+
"required": true,
|
|
2009
|
+
"schema": {
|
|
2010
|
+
"$ref": "#/components/schemas/UUID"
|
|
2011
|
+
}
|
|
2012
|
+
}
|
|
2013
|
+
],
|
|
2014
|
+
"responses": {
|
|
2015
|
+
"200": {
|
|
2016
|
+
"description": "The request has succeeded.",
|
|
2017
|
+
"content": {
|
|
2018
|
+
"application/json": {
|
|
2019
|
+
"schema": {
|
|
2020
|
+
"$ref": "#/components/schemas/RemitImap.CalendarSuggestionResponse"
|
|
2021
|
+
}
|
|
2022
|
+
}
|
|
2023
|
+
}
|
|
2024
|
+
},
|
|
2025
|
+
"400": {
|
|
2026
|
+
"description": "Validation error response",
|
|
2027
|
+
"content": {
|
|
2028
|
+
"application/json": {
|
|
2029
|
+
"schema": {
|
|
2030
|
+
"$ref": "#/components/schemas/ApiError"
|
|
2031
|
+
}
|
|
2032
|
+
}
|
|
2033
|
+
}
|
|
2034
|
+
}
|
|
2035
|
+
},
|
|
2036
|
+
"x-amazon-apigateway-integration": {
|
|
2037
|
+
"type": "aws_proxy",
|
|
2038
|
+
"httpMethod": "POST",
|
|
2039
|
+
"passthroughBehavior": "when_no_match",
|
|
2040
|
+
"uri": {
|
|
2041
|
+
"Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:{{HandlerFunctionName}}/invocations"
|
|
2042
|
+
}
|
|
2043
|
+
}
|
|
2044
|
+
}
|
|
2045
|
+
},
|
|
2046
|
+
"/calendar-suggestions/{suggestionId}/dismiss": {
|
|
2047
|
+
"post": {
|
|
2048
|
+
"operationId": "CalendarSuggestionActionOperations_dismissCalendarSuggestion",
|
|
2049
|
+
"description": "Wave the card away. Writes no calendar object. With `muteSender`, also writes a standing `Filter` rule on the message's sender so their invitations stop being offered. Idempotent; 400 when the suggestion was already accepted.",
|
|
2050
|
+
"parameters": [
|
|
2051
|
+
{
|
|
2052
|
+
"name": "suggestionId",
|
|
2053
|
+
"in": "path",
|
|
2054
|
+
"required": true,
|
|
2055
|
+
"schema": {
|
|
2056
|
+
"$ref": "#/components/schemas/UUID"
|
|
2057
|
+
}
|
|
2058
|
+
}
|
|
2059
|
+
],
|
|
2060
|
+
"responses": {
|
|
2061
|
+
"200": {
|
|
2062
|
+
"description": "The request has succeeded.",
|
|
2063
|
+
"content": {
|
|
2064
|
+
"application/json": {
|
|
2065
|
+
"schema": {
|
|
2066
|
+
"$ref": "#/components/schemas/RemitImap.CalendarSuggestionResponse"
|
|
2067
|
+
}
|
|
2068
|
+
}
|
|
2069
|
+
}
|
|
2070
|
+
},
|
|
2071
|
+
"400": {
|
|
2072
|
+
"description": "Validation error response",
|
|
2073
|
+
"content": {
|
|
2074
|
+
"application/json": {
|
|
2075
|
+
"schema": {
|
|
2076
|
+
"$ref": "#/components/schemas/ApiError"
|
|
2077
|
+
}
|
|
2078
|
+
}
|
|
2079
|
+
}
|
|
2080
|
+
}
|
|
2081
|
+
},
|
|
2082
|
+
"requestBody": {
|
|
2083
|
+
"required": true,
|
|
2084
|
+
"content": {
|
|
2085
|
+
"application/json": {
|
|
2086
|
+
"schema": {
|
|
2087
|
+
"$ref": "#/components/schemas/RemitImap.DismissCalendarSuggestionInput"
|
|
2088
|
+
}
|
|
2089
|
+
}
|
|
2090
|
+
}
|
|
2091
|
+
},
|
|
2092
|
+
"x-amazon-apigateway-integration": {
|
|
2093
|
+
"type": "aws_proxy",
|
|
2094
|
+
"httpMethod": "POST",
|
|
2095
|
+
"passthroughBehavior": "when_no_match",
|
|
2096
|
+
"uri": {
|
|
2097
|
+
"Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:{{HandlerFunctionName}}/invocations"
|
|
2098
|
+
}
|
|
2099
|
+
}
|
|
2100
|
+
}
|
|
2101
|
+
},
|
|
1871
2102
|
"/calendars": {
|
|
1872
2103
|
"get": {
|
|
1873
2104
|
"operationId": "CalendarOperations_listCalendars",
|
|
@@ -2913,6 +3144,71 @@
|
|
|
2913
3144
|
}
|
|
2914
3145
|
}
|
|
2915
3146
|
},
|
|
3147
|
+
"/messages/{messageId}/calendar-suggestions": {
|
|
3148
|
+
"get": {
|
|
3149
|
+
"operationId": "MessageCalendarSuggestionOperations_listMessageCalendarSuggestions",
|
|
3150
|
+
"description": "Every suggestion read out of one message, in whatever state each has reached — a superseded revision included, so the card can say which revision replaced it.",
|
|
3151
|
+
"parameters": [
|
|
3152
|
+
{
|
|
3153
|
+
"name": "messageId",
|
|
3154
|
+
"in": "path",
|
|
3155
|
+
"required": true,
|
|
3156
|
+
"schema": {
|
|
3157
|
+
"$ref": "#/components/schemas/UUID"
|
|
3158
|
+
}
|
|
3159
|
+
}
|
|
3160
|
+
],
|
|
3161
|
+
"responses": {
|
|
3162
|
+
"200": {
|
|
3163
|
+
"description": "The request has succeeded.",
|
|
3164
|
+
"content": {
|
|
3165
|
+
"application/json": {
|
|
3166
|
+
"schema": {
|
|
3167
|
+
"type": "object",
|
|
3168
|
+
"required": [
|
|
3169
|
+
"items"
|
|
3170
|
+
],
|
|
3171
|
+
"properties": {
|
|
3172
|
+
"continuationToken": {
|
|
3173
|
+
"allOf": [
|
|
3174
|
+
{
|
|
3175
|
+
"$ref": "#/components/schemas/String800"
|
|
3176
|
+
}
|
|
3177
|
+
],
|
|
3178
|
+
"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)."
|
|
3179
|
+
},
|
|
3180
|
+
"items": {
|
|
3181
|
+
"type": "array",
|
|
3182
|
+
"items": {
|
|
3183
|
+
"$ref": "#/components/schemas/RemitImap.CalendarSuggestionResponse"
|
|
3184
|
+
}
|
|
3185
|
+
}
|
|
3186
|
+
}
|
|
3187
|
+
}
|
|
3188
|
+
}
|
|
3189
|
+
}
|
|
3190
|
+
},
|
|
3191
|
+
"400": {
|
|
3192
|
+
"description": "Validation error response",
|
|
3193
|
+
"content": {
|
|
3194
|
+
"application/json": {
|
|
3195
|
+
"schema": {
|
|
3196
|
+
"$ref": "#/components/schemas/ApiError"
|
|
3197
|
+
}
|
|
3198
|
+
}
|
|
3199
|
+
}
|
|
3200
|
+
}
|
|
3201
|
+
},
|
|
3202
|
+
"x-amazon-apigateway-integration": {
|
|
3203
|
+
"type": "aws_proxy",
|
|
3204
|
+
"httpMethod": "POST",
|
|
3205
|
+
"passthroughBehavior": "when_no_match",
|
|
3206
|
+
"uri": {
|
|
3207
|
+
"Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:{{HandlerFunctionName}}/invocations"
|
|
3208
|
+
}
|
|
3209
|
+
}
|
|
3210
|
+
}
|
|
3211
|
+
},
|
|
2916
3212
|
"/messages/{messageId}/flags": {
|
|
2917
3213
|
"patch": {
|
|
2918
3214
|
"operationId": "MessageOperations_updateMessageFlags",
|
|
@@ -3775,6 +4071,23 @@
|
|
|
3775
4071
|
}
|
|
3776
4072
|
}
|
|
3777
4073
|
},
|
|
4074
|
+
"RemitImap.AcceptCalendarSuggestionInput": {
|
|
4075
|
+
"type": "object",
|
|
4076
|
+
"required": [
|
|
4077
|
+
"calendarId"
|
|
4078
|
+
],
|
|
4079
|
+
"properties": {
|
|
4080
|
+
"calendarId": {
|
|
4081
|
+
"allOf": [
|
|
4082
|
+
{
|
|
4083
|
+
"$ref": "#/components/schemas/UUID"
|
|
4084
|
+
}
|
|
4085
|
+
],
|
|
4086
|
+
"description": "Collection the accepted event is written into."
|
|
4087
|
+
}
|
|
4088
|
+
},
|
|
4089
|
+
"description": "Body of `POST /calendar-suggestions/{suggestionId}/accept`. Names the collection the event is written into; there is no default, because filing someone else's invitation into a calendar the user did not pick is a decision the server does not get to make."
|
|
4090
|
+
},
|
|
3778
4091
|
"RemitImap.AccountAuthType": {
|
|
3779
4092
|
"type": "string",
|
|
3780
4093
|
"enum": [
|
|
@@ -5075,6 +5388,18 @@
|
|
|
5075
5388
|
},
|
|
5076
5389
|
"description": "One stretch of time the caller is busy in. Merged across every calendar they\nhold, so two overlapping meetings in two calendars are one span and a caller\nasking \"is this slot free\" never has to do the merging itself."
|
|
5077
5390
|
},
|
|
5391
|
+
"RemitImap.CalendarInviteMethod": {
|
|
5392
|
+
"type": "string",
|
|
5393
|
+
"enum": [
|
|
5394
|
+
"Request",
|
|
5395
|
+
"Reply",
|
|
5396
|
+
"Cancel",
|
|
5397
|
+
"Counter",
|
|
5398
|
+
"Publish",
|
|
5399
|
+
"None"
|
|
5400
|
+
],
|
|
5401
|
+
"description": "The iTIP method a scheduling message carries (RFC 5546 3.2), read from the VCALENDAR's METHOD property. It says what the sender is asking for, which is not derivable from the VEVENT: a cancellation and an invitation differ by this property alone."
|
|
5402
|
+
},
|
|
5078
5403
|
"RemitImap.CalendarListResponse": {
|
|
5079
5404
|
"type": "object",
|
|
5080
5405
|
"required": [
|
|
@@ -5208,6 +5533,215 @@
|
|
|
5208
5533
|
],
|
|
5209
5534
|
"description": "Where a calendar collection came from. `Default` is the one provisioned per account config on first use and is never deleted; `UserCreated` is one a person made; `MailDerived` is one populated from mail rather than by a person."
|
|
5210
5535
|
},
|
|
5536
|
+
"RemitImap.CalendarSuggestionResponse": {
|
|
5537
|
+
"type": "object",
|
|
5538
|
+
"required": [
|
|
5539
|
+
"suggestionId",
|
|
5540
|
+
"accountConfigId",
|
|
5541
|
+
"messageId",
|
|
5542
|
+
"bodyPartId",
|
|
5543
|
+
"icalUid",
|
|
5544
|
+
"sequence",
|
|
5545
|
+
"method",
|
|
5546
|
+
"source",
|
|
5547
|
+
"state",
|
|
5548
|
+
"summary",
|
|
5549
|
+
"dtStart",
|
|
5550
|
+
"dtEnd",
|
|
5551
|
+
"allDay",
|
|
5552
|
+
"location",
|
|
5553
|
+
"organizer",
|
|
5554
|
+
"zoneCertainty",
|
|
5555
|
+
"acceptedCalendarObjectId",
|
|
5556
|
+
"createdAt",
|
|
5557
|
+
"updatedAt"
|
|
5558
|
+
],
|
|
5559
|
+
"properties": {
|
|
5560
|
+
"suggestionId": {
|
|
5561
|
+
"allOf": [
|
|
5562
|
+
{
|
|
5563
|
+
"$ref": "#/components/schemas/UUID"
|
|
5564
|
+
}
|
|
5565
|
+
],
|
|
5566
|
+
"description": "Primary identifier, derived from messageId + bodyPartId + icalUid",
|
|
5567
|
+
"readOnly": true
|
|
5568
|
+
},
|
|
5569
|
+
"accountConfigId": {
|
|
5570
|
+
"allOf": [
|
|
5571
|
+
{
|
|
5572
|
+
"$ref": "#/components/schemas/UUID"
|
|
5573
|
+
}
|
|
5574
|
+
],
|
|
5575
|
+
"description": "Owning account configuration",
|
|
5576
|
+
"readOnly": true
|
|
5577
|
+
},
|
|
5578
|
+
"messageId": {
|
|
5579
|
+
"allOf": [
|
|
5580
|
+
{
|
|
5581
|
+
"$ref": "#/components/schemas/UUID"
|
|
5582
|
+
}
|
|
5583
|
+
],
|
|
5584
|
+
"description": "Message this suggestion was read out of. The card is offered beside this message and nowhere else.",
|
|
5585
|
+
"readOnly": true
|
|
5586
|
+
},
|
|
5587
|
+
"bodyPartId": {
|
|
5588
|
+
"allOf": [
|
|
5589
|
+
{
|
|
5590
|
+
"$ref": "#/components/schemas/UUID"
|
|
5591
|
+
}
|
|
5592
|
+
],
|
|
5593
|
+
"description": "MIME part the iCalendar bytes came from. Part of the identity, so two invitations in one message stay two suggestions rather than overwriting each other.",
|
|
5594
|
+
"readOnly": true
|
|
5595
|
+
},
|
|
5596
|
+
"icalUid": {
|
|
5597
|
+
"allOf": [
|
|
5598
|
+
{
|
|
5599
|
+
"$ref": "#/components/schemas/String512"
|
|
5600
|
+
}
|
|
5601
|
+
],
|
|
5602
|
+
"description": "The VEVENT's UID property (RFC 5545 3.8.4.7). What ties a revision, a cancellation and the original invitation together across three separate messages.",
|
|
5603
|
+
"readOnly": true
|
|
5604
|
+
},
|
|
5605
|
+
"sequence": {
|
|
5606
|
+
"type": "integer",
|
|
5607
|
+
"format": "int32",
|
|
5608
|
+
"description": "The VEVENT's SEQUENCE property (RFC 5545 3.8.7.4) — the organizer's revision counter. A later message carrying the same `icalUid` with a higher value supersedes this one. `0` when the event declares none, which is the RFC default.",
|
|
5609
|
+
"default": 0,
|
|
5610
|
+
"readOnly": true
|
|
5611
|
+
},
|
|
5612
|
+
"method": {
|
|
5613
|
+
"allOf": [
|
|
5614
|
+
{
|
|
5615
|
+
"$ref": "#/components/schemas/RemitImap.CalendarInviteMethod"
|
|
5616
|
+
}
|
|
5617
|
+
],
|
|
5618
|
+
"description": "The iTIP method the VCALENDAR declared. `None` when it declared no METHOD.",
|
|
5619
|
+
"default": "None",
|
|
5620
|
+
"readOnly": true
|
|
5621
|
+
},
|
|
5622
|
+
"source": {
|
|
5623
|
+
"allOf": [
|
|
5624
|
+
{
|
|
5625
|
+
"$ref": "#/components/schemas/RemitImap.CalendarSuggestionSource"
|
|
5626
|
+
}
|
|
5627
|
+
],
|
|
5628
|
+
"description": "Where in the message this was read from",
|
|
5629
|
+
"default": "IcalendarPart",
|
|
5630
|
+
"readOnly": true
|
|
5631
|
+
},
|
|
5632
|
+
"state": {
|
|
5633
|
+
"allOf": [
|
|
5634
|
+
{
|
|
5635
|
+
"$ref": "#/components/schemas/RemitImap.CalendarSuggestionState"
|
|
5636
|
+
}
|
|
5637
|
+
],
|
|
5638
|
+
"description": "What has become of this suggestion. Only `Pending` asks the user for anything.",
|
|
5639
|
+
"default": "Pending",
|
|
5640
|
+
"readOnly": true
|
|
5641
|
+
},
|
|
5642
|
+
"summary": {
|
|
5643
|
+
"allOf": [
|
|
5644
|
+
{
|
|
5645
|
+
"$ref": "#/components/schemas/String512"
|
|
5646
|
+
}
|
|
5647
|
+
],
|
|
5648
|
+
"description": "Projection of the VEVENT's SUMMARY. `\"\"` when the event carries none.",
|
|
5649
|
+
"readOnly": true
|
|
5650
|
+
},
|
|
5651
|
+
"dtStart": {
|
|
5652
|
+
"allOf": [
|
|
5653
|
+
{
|
|
5654
|
+
"$ref": "#/components/schemas/String64"
|
|
5655
|
+
}
|
|
5656
|
+
],
|
|
5657
|
+
"description": "Projection of the VEVENT's DTSTART as an ISO 8601 date-time with zone offset — a business date, not an epoch instant. An all-day event carries midnight in the event's own zone.",
|
|
5658
|
+
"readOnly": true
|
|
5659
|
+
},
|
|
5660
|
+
"dtEnd": {
|
|
5661
|
+
"allOf": [
|
|
5662
|
+
{
|
|
5663
|
+
"$ref": "#/components/schemas/String64"
|
|
5664
|
+
}
|
|
5665
|
+
],
|
|
5666
|
+
"description": "Projection of the VEVENT's effective end as an ISO 8601 date-time with zone offset, resolved from DTEND or from DTSTART + DURATION. An event with neither ends when it starts (RFC 5545 3.6.1).",
|
|
5667
|
+
"readOnly": true
|
|
5668
|
+
},
|
|
5669
|
+
"allDay": {
|
|
5670
|
+
"type": "boolean",
|
|
5671
|
+
"description": "Whether DTSTART is a DATE rather than a DATE-TIME (RFC 5545 3.3.4) — an all-day or multi-day event, whose end is exclusive.",
|
|
5672
|
+
"default": false,
|
|
5673
|
+
"readOnly": true
|
|
5674
|
+
},
|
|
5675
|
+
"location": {
|
|
5676
|
+
"allOf": [
|
|
5677
|
+
{
|
|
5678
|
+
"$ref": "#/components/schemas/String512"
|
|
5679
|
+
}
|
|
5680
|
+
],
|
|
5681
|
+
"description": "Projection of the VEVENT's LOCATION. `\"\"` when the event carries none.",
|
|
5682
|
+
"default": "",
|
|
5683
|
+
"readOnly": true
|
|
5684
|
+
},
|
|
5685
|
+
"organizer": {
|
|
5686
|
+
"allOf": [
|
|
5687
|
+
{
|
|
5688
|
+
"$ref": "#/components/schemas/String256"
|
|
5689
|
+
}
|
|
5690
|
+
],
|
|
5691
|
+
"description": "Mail address of the VEVENT's ORGANIZER, without the `mailto:` scheme. `\"\"` when the event names none — which is what a `PUBLISH` typically looks like, and why dismissing with `muteSender` mutes the message's sender rather than this field.",
|
|
5692
|
+
"default": "",
|
|
5693
|
+
"readOnly": true
|
|
5694
|
+
},
|
|
5695
|
+
"zoneCertainty": {
|
|
5696
|
+
"allOf": [
|
|
5697
|
+
{
|
|
5698
|
+
"$ref": "#/components/schemas/RemitImap.ZoneCertainty"
|
|
5699
|
+
}
|
|
5700
|
+
],
|
|
5701
|
+
"description": "How the DTSTART above was placed on the clock. `Ambiguous` means the invitation named a zone nothing could resolve, so the time shown may be hours out — a card says so rather than presenting a guess as a fact.",
|
|
5702
|
+
"default": "Explicit",
|
|
5703
|
+
"readOnly": true
|
|
5704
|
+
},
|
|
5705
|
+
"acceptedCalendarObjectId": {
|
|
5706
|
+
"type": "string",
|
|
5707
|
+
"description": "The `CalendarObject` that accepting this suggestion wrote. `\"\"` until it is accepted — the named absent state, never a missing attribute — and the resource's id afterwards, so the card can link to the event it produced.",
|
|
5708
|
+
"default": "",
|
|
5709
|
+
"readOnly": true
|
|
5710
|
+
},
|
|
5711
|
+
"createdAt": {
|
|
5712
|
+
"type": "integer",
|
|
5713
|
+
"format": "int64",
|
|
5714
|
+
"readOnly": true
|
|
5715
|
+
},
|
|
5716
|
+
"updatedAt": {
|
|
5717
|
+
"type": "integer",
|
|
5718
|
+
"format": "int64",
|
|
5719
|
+
"readOnly": true
|
|
5720
|
+
}
|
|
5721
|
+
},
|
|
5722
|
+
"description": "A suggestion as the API returns it. The raw `icalData` is not surfaced: a client renders the projected fields, and the bytes exist so that accepting can write them into a calendar unchanged."
|
|
5723
|
+
},
|
|
5724
|
+
"RemitImap.CalendarSuggestionSource": {
|
|
5725
|
+
"type": "string",
|
|
5726
|
+
"enum": [
|
|
5727
|
+
"IcalendarPart",
|
|
5728
|
+
"IcalendarAttachment",
|
|
5729
|
+
"TextHeuristic"
|
|
5730
|
+
],
|
|
5731
|
+
"description": "Where in a message a suggestion was read from. It is what a card says to explain itself, and it is what separates a suggestion carrying real iCalendar from one inferred out of prose."
|
|
5732
|
+
},
|
|
5733
|
+
"RemitImap.CalendarSuggestionState": {
|
|
5734
|
+
"type": "string",
|
|
5735
|
+
"enum": [
|
|
5736
|
+
"Pending",
|
|
5737
|
+
"Accepted",
|
|
5738
|
+
"Declined",
|
|
5739
|
+
"Tentative",
|
|
5740
|
+
"Dismissed",
|
|
5741
|
+
"Superseded"
|
|
5742
|
+
],
|
|
5743
|
+
"description": "What has become of a suggestion. `Pending` is the only state that asks a person for anything; every other value is a decision already taken, and nothing but an explicit act moves a suggestion out of `Pending`."
|
|
5744
|
+
},
|
|
5211
5745
|
"RemitImap.CalendarTransparency": {
|
|
5212
5746
|
"type": "string",
|
|
5213
5747
|
"enum": [
|
|
@@ -6049,6 +6583,20 @@
|
|
|
6049
6583
|
},
|
|
6050
6584
|
"description": "Complete message description including all related data. Body content is delivered via the per-part `BodyPartResponse.contentUrl` (CloudFront, JWT-authorized at the edge); the legacy `bodyText`/`bodyHtml` fields were removed once content delivery cut over end-to-end (#224)."
|
|
6051
6585
|
},
|
|
6586
|
+
"RemitImap.DismissCalendarSuggestionInput": {
|
|
6587
|
+
"type": "object",
|
|
6588
|
+
"required": [
|
|
6589
|
+
"muteSender"
|
|
6590
|
+
],
|
|
6591
|
+
"properties": {
|
|
6592
|
+
"muteSender": {
|
|
6593
|
+
"type": "boolean",
|
|
6594
|
+
"description": "Also stop offering invitations from this message's sender, by writing a standing `Filter` rule. `false` dismisses this one card and nothing else.",
|
|
6595
|
+
"default": false
|
|
6596
|
+
}
|
|
6597
|
+
},
|
|
6598
|
+
"description": "Body of `POST /calendar-suggestions/{suggestionId}/dismiss`."
|
|
6599
|
+
},
|
|
6052
6600
|
"RemitImap.DisplayNameCorrespondence": {
|
|
6053
6601
|
"type": "string",
|
|
6054
6602
|
"enum": [
|