@proxima-nexus/openapi 2.0.1 → 2.2.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/CHANGELOG.md +36 -0
- package/openapi.json +628 -10
- package/openapi.yaml +438 -8
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,42 @@ All notable changes to the Proxima Nexus OpenAPI specification are documented in
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.2.0] - 2026-03-02
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Event time range filters**
|
|
13
|
+
- `GET /event`: optional `from` / `to` query params to filter events by time window (`from` = events ending after this instant, `to` = events starting before this instant).
|
|
14
|
+
- `GET /user/{userId}/events`: optional `from` / `to` range filters with the same semantics; `from` defaults to “now” when omitted.
|
|
15
|
+
- `GET /group/{groupId}/events`: optional `from` / `to` range filters with the same semantics.
|
|
16
|
+
- `GET /events/search`: optional `from` / `to` range filters with the same semantics.
|
|
17
|
+
- `GET /event-series/{seriesId}/events`: optional `from` / `to` range filters with the same semantics.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- **Event series instances**: `GET /event-series/{seriesId}/events` summary/description now clarify that the endpoint returns instances ordered by start time and **defaults to only ongoing/upcoming instances** unless a custom `from` / `to` window is provided.
|
|
22
|
+
|
|
23
|
+
## [2.1.0] - 2026-03-02
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
|
|
27
|
+
- **Event series API**
|
|
28
|
+
- `POST /event-series`: create an event series from an RRULE and pre-generate all event instances. The creating user (or associated group) becomes the OWNER.
|
|
29
|
+
- `GET /event-series/{seriesId}`: fetch an event series definition.
|
|
30
|
+
- `PUT /event-series/{seriesId}`: update a series and propagate metadata changes to upcoming instances (per-instance overrides are preserved).
|
|
31
|
+
- `DELETE /event-series/{seriesId}`: delete a series and all upcoming event instances; past instances are preserved.
|
|
32
|
+
- `GET /event-series/{seriesId}/events`: list all event instances in a series, ordered by start time.
|
|
33
|
+
- **New schemas**: `CreateEventSeriesDto`, `EventSeriesDto`, and `UpdateEventSeriesDto` for creating, returning, and updating event series.
|
|
34
|
+
- **Event instances**: `EventDto` now includes an optional `seriesId` linking an instance back to its series.
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- **Event updates**: `PUT /event/{eventId}` summary clarifies how updates behave for instances in a series—fields supplied in the request body are treated as per-instance overrides and no longer follow series-level updates.
|
|
39
|
+
- **Validation**
|
|
40
|
+
- `UpdateUserDto`: `displayName` is no longer required; only `gender` and `birthDate` remain required.
|
|
41
|
+
- `CreateEventDto`: schema no longer requires `displayName`, `startTime`, `endTime`, or `type` (server-side validation may still enforce business rules).
|
|
42
|
+
- Group create/update DTOs that previously required `displayName` now only require `type`.
|
|
43
|
+
|
|
8
44
|
## [2.0.1] - 2026-02-04
|
|
9
45
|
|
|
10
46
|
### Changed
|
package/openapi.json
CHANGED
|
@@ -132,6 +132,26 @@
|
|
|
132
132
|
"type": "number"
|
|
133
133
|
}
|
|
134
134
|
},
|
|
135
|
+
{
|
|
136
|
+
"name": "from",
|
|
137
|
+
"required": false,
|
|
138
|
+
"in": "query",
|
|
139
|
+
"description": "ISO 8601 date — filter events ending after this time",
|
|
140
|
+
"schema": {
|
|
141
|
+
"example": "2025-01-01T00:00:00Z",
|
|
142
|
+
"type": "string"
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"name": "to",
|
|
147
|
+
"required": false,
|
|
148
|
+
"in": "query",
|
|
149
|
+
"description": "ISO 8601 date — filter events starting before this time",
|
|
150
|
+
"schema": {
|
|
151
|
+
"example": "2025-12-31T23:59:59Z",
|
|
152
|
+
"type": "string"
|
|
153
|
+
}
|
|
154
|
+
},
|
|
135
155
|
{
|
|
136
156
|
"name": "X-Proxima-Nexus-Requester-User-Id",
|
|
137
157
|
"in": "header",
|
|
@@ -618,6 +638,24 @@
|
|
|
618
638
|
"type": "string"
|
|
619
639
|
}
|
|
620
640
|
},
|
|
641
|
+
{
|
|
642
|
+
"name": "from",
|
|
643
|
+
"required": false,
|
|
644
|
+
"in": "query",
|
|
645
|
+
"description": "ISO 8601 start of range (events ending after this time). Default: NOW()",
|
|
646
|
+
"schema": {
|
|
647
|
+
"type": "string"
|
|
648
|
+
}
|
|
649
|
+
},
|
|
650
|
+
{
|
|
651
|
+
"name": "to",
|
|
652
|
+
"required": false,
|
|
653
|
+
"in": "query",
|
|
654
|
+
"description": "ISO 8601 end of range (events starting before this time)",
|
|
655
|
+
"schema": {
|
|
656
|
+
"type": "string"
|
|
657
|
+
}
|
|
658
|
+
},
|
|
621
659
|
{
|
|
622
660
|
"name": "X-Proxima-Nexus-Requester-User-Id",
|
|
623
661
|
"in": "header",
|
|
@@ -799,6 +837,26 @@
|
|
|
799
837
|
"type": "number"
|
|
800
838
|
}
|
|
801
839
|
},
|
|
840
|
+
{
|
|
841
|
+
"name": "from",
|
|
842
|
+
"required": false,
|
|
843
|
+
"in": "query",
|
|
844
|
+
"description": "ISO 8601 date — filter events ending after this time",
|
|
845
|
+
"schema": {
|
|
846
|
+
"example": "2025-01-01T00:00:00Z",
|
|
847
|
+
"type": "string"
|
|
848
|
+
}
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
"name": "to",
|
|
852
|
+
"required": false,
|
|
853
|
+
"in": "query",
|
|
854
|
+
"description": "ISO 8601 date — filter events starting before this time",
|
|
855
|
+
"schema": {
|
|
856
|
+
"example": "2025-12-31T23:59:59Z",
|
|
857
|
+
"type": "string"
|
|
858
|
+
}
|
|
859
|
+
},
|
|
802
860
|
{
|
|
803
861
|
"name": "X-Proxima-Nexus-Requester-User-Id",
|
|
804
862
|
"in": "header",
|
|
@@ -880,7 +938,7 @@
|
|
|
880
938
|
},
|
|
881
939
|
"put": {
|
|
882
940
|
"operationId": "EventController_update",
|
|
883
|
-
"summary": "Update an event",
|
|
941
|
+
"summary": "Update an event. For series instances, only the fields provided in the request body will be marked as overridden and will no longer be propagated by series-level updates.",
|
|
884
942
|
"parameters": [
|
|
885
943
|
{
|
|
886
944
|
"name": "eventId",
|
|
@@ -1341,6 +1399,26 @@
|
|
|
1341
1399
|
"type": "number"
|
|
1342
1400
|
}
|
|
1343
1401
|
},
|
|
1402
|
+
{
|
|
1403
|
+
"name": "from",
|
|
1404
|
+
"required": false,
|
|
1405
|
+
"in": "query",
|
|
1406
|
+
"description": "ISO 8601 date — filter events ending after this time",
|
|
1407
|
+
"schema": {
|
|
1408
|
+
"example": "2025-01-01T00:00:00Z",
|
|
1409
|
+
"type": "string"
|
|
1410
|
+
}
|
|
1411
|
+
},
|
|
1412
|
+
{
|
|
1413
|
+
"name": "to",
|
|
1414
|
+
"required": false,
|
|
1415
|
+
"in": "query",
|
|
1416
|
+
"description": "ISO 8601 date — filter events starting before this time",
|
|
1417
|
+
"schema": {
|
|
1418
|
+
"example": "2025-12-31T23:59:59Z",
|
|
1419
|
+
"type": "string"
|
|
1420
|
+
}
|
|
1421
|
+
},
|
|
1344
1422
|
{
|
|
1345
1423
|
"name": "X-Proxima-Nexus-Requester-User-Id",
|
|
1346
1424
|
"in": "header",
|
|
@@ -1736,6 +1814,24 @@
|
|
|
1736
1814
|
"type": "string"
|
|
1737
1815
|
}
|
|
1738
1816
|
},
|
|
1817
|
+
{
|
|
1818
|
+
"name": "from",
|
|
1819
|
+
"required": false,
|
|
1820
|
+
"in": "query",
|
|
1821
|
+
"description": "ISO 8601 start of range (events ending after this time). Default: NOW()",
|
|
1822
|
+
"schema": {
|
|
1823
|
+
"type": "string"
|
|
1824
|
+
}
|
|
1825
|
+
},
|
|
1826
|
+
{
|
|
1827
|
+
"name": "to",
|
|
1828
|
+
"required": false,
|
|
1829
|
+
"in": "query",
|
|
1830
|
+
"description": "ISO 8601 end of range (events starting before this time)",
|
|
1831
|
+
"schema": {
|
|
1832
|
+
"type": "string"
|
|
1833
|
+
}
|
|
1834
|
+
},
|
|
1739
1835
|
{
|
|
1740
1836
|
"name": "X-Proxima-Nexus-Requester-User-Id",
|
|
1741
1837
|
"in": "header",
|
|
@@ -1820,6 +1916,263 @@
|
|
|
1820
1916
|
}
|
|
1821
1917
|
]
|
|
1822
1918
|
}
|
|
1919
|
+
},
|
|
1920
|
+
"/event-series": {
|
|
1921
|
+
"post": {
|
|
1922
|
+
"operationId": "EventSeriesController_create",
|
|
1923
|
+
"summary": "Create an event series",
|
|
1924
|
+
"description": "Creates a series definition and pre-generates all event instances based on the RRULE. The creating user (or associated group) becomes the OWNER.",
|
|
1925
|
+
"parameters": [
|
|
1926
|
+
{
|
|
1927
|
+
"name": "X-Proxima-Nexus-Requester-User-Id",
|
|
1928
|
+
"in": "header",
|
|
1929
|
+
"description": "ID of the user creating the series",
|
|
1930
|
+
"required": true,
|
|
1931
|
+
"schema": {
|
|
1932
|
+
"type": "string"
|
|
1933
|
+
}
|
|
1934
|
+
}
|
|
1935
|
+
],
|
|
1936
|
+
"requestBody": {
|
|
1937
|
+
"required": true,
|
|
1938
|
+
"content": {
|
|
1939
|
+
"application/json": {
|
|
1940
|
+
"schema": {
|
|
1941
|
+
"$ref": "#/components/schemas/CreateEventSeriesDto"
|
|
1942
|
+
}
|
|
1943
|
+
}
|
|
1944
|
+
}
|
|
1945
|
+
},
|
|
1946
|
+
"responses": {
|
|
1947
|
+
"201": {
|
|
1948
|
+
"description": "Created series ID",
|
|
1949
|
+
"content": {
|
|
1950
|
+
"application/json": {
|
|
1951
|
+
"schema": {
|
|
1952
|
+
"type": "string"
|
|
1953
|
+
}
|
|
1954
|
+
}
|
|
1955
|
+
}
|
|
1956
|
+
},
|
|
1957
|
+
"400": {
|
|
1958
|
+
"description": "Requester user ID missing, or associated group not found"
|
|
1959
|
+
},
|
|
1960
|
+
"401": {
|
|
1961
|
+
"description": "User cannot create series for the associated group"
|
|
1962
|
+
}
|
|
1963
|
+
},
|
|
1964
|
+
"tags": [
|
|
1965
|
+
"event-series"
|
|
1966
|
+
],
|
|
1967
|
+
"security": [
|
|
1968
|
+
{
|
|
1969
|
+
"api_key": []
|
|
1970
|
+
}
|
|
1971
|
+
]
|
|
1972
|
+
}
|
|
1973
|
+
},
|
|
1974
|
+
"/event-series/{seriesId}": {
|
|
1975
|
+
"get": {
|
|
1976
|
+
"operationId": "EventSeriesController_get",
|
|
1977
|
+
"summary": "Get an event series by ID",
|
|
1978
|
+
"parameters": [
|
|
1979
|
+
{
|
|
1980
|
+
"name": "seriesId",
|
|
1981
|
+
"required": true,
|
|
1982
|
+
"in": "path",
|
|
1983
|
+
"schema": {
|
|
1984
|
+
"type": "string"
|
|
1985
|
+
}
|
|
1986
|
+
}
|
|
1987
|
+
],
|
|
1988
|
+
"responses": {
|
|
1989
|
+
"200": {
|
|
1990
|
+
"description": "Event series returned",
|
|
1991
|
+
"content": {
|
|
1992
|
+
"application/json": {
|
|
1993
|
+
"schema": {
|
|
1994
|
+
"$ref": "#/components/schemas/EventSeriesDto"
|
|
1995
|
+
}
|
|
1996
|
+
}
|
|
1997
|
+
}
|
|
1998
|
+
},
|
|
1999
|
+
"404": {
|
|
2000
|
+
"description": "Series not found"
|
|
2001
|
+
}
|
|
2002
|
+
},
|
|
2003
|
+
"tags": [
|
|
2004
|
+
"event-series"
|
|
2005
|
+
],
|
|
2006
|
+
"security": [
|
|
2007
|
+
{
|
|
2008
|
+
"api_key": []
|
|
2009
|
+
}
|
|
2010
|
+
]
|
|
2011
|
+
},
|
|
2012
|
+
"put": {
|
|
2013
|
+
"operationId": "EventSeriesController_update",
|
|
2014
|
+
"summary": "Update an event series",
|
|
2015
|
+
"description": "Updates the series definition and propagates metadata changes to all upcoming event instances. Fields that were individually overridden on a specific instance will not be overwritten.",
|
|
2016
|
+
"parameters": [
|
|
2017
|
+
{
|
|
2018
|
+
"name": "seriesId",
|
|
2019
|
+
"required": true,
|
|
2020
|
+
"in": "path",
|
|
2021
|
+
"schema": {
|
|
2022
|
+
"type": "string"
|
|
2023
|
+
}
|
|
2024
|
+
},
|
|
2025
|
+
{
|
|
2026
|
+
"name": "X-Proxima-Nexus-Requester-User-Id",
|
|
2027
|
+
"in": "header",
|
|
2028
|
+
"description": "ID of the user updating the series",
|
|
2029
|
+
"required": true,
|
|
2030
|
+
"schema": {
|
|
2031
|
+
"type": "string"
|
|
2032
|
+
}
|
|
2033
|
+
}
|
|
2034
|
+
],
|
|
2035
|
+
"requestBody": {
|
|
2036
|
+
"required": true,
|
|
2037
|
+
"content": {
|
|
2038
|
+
"application/json": {
|
|
2039
|
+
"schema": {
|
|
2040
|
+
"$ref": "#/components/schemas/UpdateEventSeriesDto"
|
|
2041
|
+
}
|
|
2042
|
+
}
|
|
2043
|
+
}
|
|
2044
|
+
},
|
|
2045
|
+
"responses": {
|
|
2046
|
+
"200": {
|
|
2047
|
+
"description": "Updated series ID",
|
|
2048
|
+
"content": {
|
|
2049
|
+
"application/json": {
|
|
2050
|
+
"schema": {
|
|
2051
|
+
"type": "string"
|
|
2052
|
+
}
|
|
2053
|
+
}
|
|
2054
|
+
}
|
|
2055
|
+
},
|
|
2056
|
+
"401": {
|
|
2057
|
+
"description": "User cannot edit this series"
|
|
2058
|
+
},
|
|
2059
|
+
"404": {
|
|
2060
|
+
"description": "Series not found"
|
|
2061
|
+
}
|
|
2062
|
+
},
|
|
2063
|
+
"tags": [
|
|
2064
|
+
"event-series"
|
|
2065
|
+
],
|
|
2066
|
+
"security": [
|
|
2067
|
+
{
|
|
2068
|
+
"api_key": []
|
|
2069
|
+
}
|
|
2070
|
+
]
|
|
2071
|
+
},
|
|
2072
|
+
"delete": {
|
|
2073
|
+
"operationId": "EventSeriesController_remove",
|
|
2074
|
+
"summary": "Delete an event series",
|
|
2075
|
+
"description": "Deletes the series and all upcoming event instances. Past instances (already started) are preserved.",
|
|
2076
|
+
"parameters": [
|
|
2077
|
+
{
|
|
2078
|
+
"name": "seriesId",
|
|
2079
|
+
"required": true,
|
|
2080
|
+
"in": "path",
|
|
2081
|
+
"schema": {
|
|
2082
|
+
"type": "string"
|
|
2083
|
+
}
|
|
2084
|
+
},
|
|
2085
|
+
{
|
|
2086
|
+
"name": "X-Proxima-Nexus-Requester-User-Id",
|
|
2087
|
+
"in": "header",
|
|
2088
|
+
"description": "ID of the user deleting the series",
|
|
2089
|
+
"required": true,
|
|
2090
|
+
"schema": {
|
|
2091
|
+
"type": "string"
|
|
2092
|
+
}
|
|
2093
|
+
}
|
|
2094
|
+
],
|
|
2095
|
+
"responses": {
|
|
2096
|
+
"204": {
|
|
2097
|
+
"description": "Series deleted"
|
|
2098
|
+
},
|
|
2099
|
+
"401": {
|
|
2100
|
+
"description": "User cannot delete this series"
|
|
2101
|
+
},
|
|
2102
|
+
"404": {
|
|
2103
|
+
"description": "Series not found"
|
|
2104
|
+
}
|
|
2105
|
+
},
|
|
2106
|
+
"tags": [
|
|
2107
|
+
"event-series"
|
|
2108
|
+
],
|
|
2109
|
+
"security": [
|
|
2110
|
+
{
|
|
2111
|
+
"api_key": []
|
|
2112
|
+
}
|
|
2113
|
+
]
|
|
2114
|
+
}
|
|
2115
|
+
},
|
|
2116
|
+
"/event-series/{seriesId}/events": {
|
|
2117
|
+
"get": {
|
|
2118
|
+
"operationId": "EventSeriesController_getInstances",
|
|
2119
|
+
"summary": "List event instances in a series",
|
|
2120
|
+
"description": "Returns event instances belonging to this series, ordered by start time. Defaults to only ongoing/upcoming instances.",
|
|
2121
|
+
"parameters": [
|
|
2122
|
+
{
|
|
2123
|
+
"name": "seriesId",
|
|
2124
|
+
"required": true,
|
|
2125
|
+
"in": "path",
|
|
2126
|
+
"schema": {
|
|
2127
|
+
"type": "string"
|
|
2128
|
+
}
|
|
2129
|
+
},
|
|
2130
|
+
{
|
|
2131
|
+
"name": "from",
|
|
2132
|
+
"required": false,
|
|
2133
|
+
"in": "query",
|
|
2134
|
+
"description": "ISO 8601 start of range (events ending after this time). Default: NOW()",
|
|
2135
|
+
"schema": {
|
|
2136
|
+
"type": "string"
|
|
2137
|
+
}
|
|
2138
|
+
},
|
|
2139
|
+
{
|
|
2140
|
+
"name": "to",
|
|
2141
|
+
"required": false,
|
|
2142
|
+
"in": "query",
|
|
2143
|
+
"description": "ISO 8601 end of range (events starting before this time)",
|
|
2144
|
+
"schema": {
|
|
2145
|
+
"type": "string"
|
|
2146
|
+
}
|
|
2147
|
+
}
|
|
2148
|
+
],
|
|
2149
|
+
"responses": {
|
|
2150
|
+
"200": {
|
|
2151
|
+
"description": "Event instances returned",
|
|
2152
|
+
"content": {
|
|
2153
|
+
"application/json": {
|
|
2154
|
+
"schema": {
|
|
2155
|
+
"type": "array",
|
|
2156
|
+
"items": {
|
|
2157
|
+
"$ref": "#/components/schemas/EventDto"
|
|
2158
|
+
}
|
|
2159
|
+
}
|
|
2160
|
+
}
|
|
2161
|
+
}
|
|
2162
|
+
},
|
|
2163
|
+
"404": {
|
|
2164
|
+
"description": "Series not found"
|
|
2165
|
+
}
|
|
2166
|
+
},
|
|
2167
|
+
"tags": [
|
|
2168
|
+
"event-series"
|
|
2169
|
+
],
|
|
2170
|
+
"security": [
|
|
2171
|
+
{
|
|
2172
|
+
"api_key": []
|
|
2173
|
+
}
|
|
2174
|
+
]
|
|
2175
|
+
}
|
|
1823
2176
|
}
|
|
1824
2177
|
},
|
|
1825
2178
|
"info": {
|
|
@@ -2114,7 +2467,6 @@
|
|
|
2114
2467
|
}
|
|
2115
2468
|
},
|
|
2116
2469
|
"required": [
|
|
2117
|
-
"displayName",
|
|
2118
2470
|
"gender",
|
|
2119
2471
|
"birthDate"
|
|
2120
2472
|
]
|
|
@@ -2474,6 +2826,11 @@
|
|
|
2474
2826
|
"type": "number",
|
|
2475
2827
|
"description": "Maximum number of attendees allowed (null = unlimited)",
|
|
2476
2828
|
"example": 100
|
|
2829
|
+
},
|
|
2830
|
+
"seriesId": {
|
|
2831
|
+
"type": "string",
|
|
2832
|
+
"description": "ID of the event series this instance belongs to, if any",
|
|
2833
|
+
"example": "series-weekly-standup"
|
|
2477
2834
|
}
|
|
2478
2835
|
},
|
|
2479
2836
|
"required": [
|
|
@@ -2544,13 +2901,7 @@
|
|
|
2544
2901
|
"description": "Maximum number of attendees allowed (null = unlimited)",
|
|
2545
2902
|
"example": 100
|
|
2546
2903
|
}
|
|
2547
|
-
}
|
|
2548
|
-
"required": [
|
|
2549
|
-
"displayName",
|
|
2550
|
-
"startTime",
|
|
2551
|
-
"endTime",
|
|
2552
|
-
"type"
|
|
2553
|
-
]
|
|
2904
|
+
}
|
|
2554
2905
|
},
|
|
2555
2906
|
"MutateEventEntityConnectionDto": {
|
|
2556
2907
|
"type": "object",
|
|
@@ -2791,7 +3142,6 @@
|
|
|
2791
3142
|
}
|
|
2792
3143
|
},
|
|
2793
3144
|
"required": [
|
|
2794
|
-
"displayName",
|
|
2795
3145
|
"type"
|
|
2796
3146
|
]
|
|
2797
3147
|
},
|
|
@@ -2830,6 +3180,274 @@
|
|
|
2830
3180
|
"required": [
|
|
2831
3181
|
"groupIds"
|
|
2832
3182
|
]
|
|
3183
|
+
},
|
|
3184
|
+
"CreateEventSeriesDto": {
|
|
3185
|
+
"type": "object",
|
|
3186
|
+
"properties": {
|
|
3187
|
+
"displayName": {
|
|
3188
|
+
"type": "string",
|
|
3189
|
+
"description": "Display name",
|
|
3190
|
+
"example": "Display Name"
|
|
3191
|
+
},
|
|
3192
|
+
"visibility": {
|
|
3193
|
+
"type": "string",
|
|
3194
|
+
"description": "Visibility of the entity",
|
|
3195
|
+
"enum": [
|
|
3196
|
+
"public",
|
|
3197
|
+
"connections",
|
|
3198
|
+
"hidden"
|
|
3199
|
+
],
|
|
3200
|
+
"example": "public"
|
|
3201
|
+
},
|
|
3202
|
+
"location": {
|
|
3203
|
+
"description": "Optional location information",
|
|
3204
|
+
"allOf": [
|
|
3205
|
+
{
|
|
3206
|
+
"$ref": "#/components/schemas/LocationDto"
|
|
3207
|
+
}
|
|
3208
|
+
]
|
|
3209
|
+
},
|
|
3210
|
+
"description": {
|
|
3211
|
+
"type": "string",
|
|
3212
|
+
"description": "Entity description",
|
|
3213
|
+
"example": "A description of the entity"
|
|
3214
|
+
},
|
|
3215
|
+
"tags": {
|
|
3216
|
+
"description": "Entity tags",
|
|
3217
|
+
"example": [
|
|
3218
|
+
"tag1",
|
|
3219
|
+
"tag2"
|
|
3220
|
+
],
|
|
3221
|
+
"type": "array",
|
|
3222
|
+
"items": {
|
|
3223
|
+
"type": "string"
|
|
3224
|
+
}
|
|
3225
|
+
},
|
|
3226
|
+
"seriesId": {
|
|
3227
|
+
"type": "string",
|
|
3228
|
+
"description": "Unique series identifier",
|
|
3229
|
+
"example": "series-weekly-standup"
|
|
3230
|
+
},
|
|
3231
|
+
"type": {
|
|
3232
|
+
"type": "string",
|
|
3233
|
+
"description": "Event type",
|
|
3234
|
+
"example": "standup"
|
|
3235
|
+
},
|
|
3236
|
+
"rrule": {
|
|
3237
|
+
"type": "string",
|
|
3238
|
+
"description": "iCal RRULE string (without DTSTART). Defines the recurrence pattern.",
|
|
3239
|
+
"example": "FREQ=WEEKLY;BYDAY=TH;UNTIL=20261231T000000Z"
|
|
3240
|
+
},
|
|
3241
|
+
"startDate": {
|
|
3242
|
+
"type": "string",
|
|
3243
|
+
"description": "Date of the first occurrence in YYYY-MM-DD format (local date in the given timezone)",
|
|
3244
|
+
"example": "2026-01-08"
|
|
3245
|
+
},
|
|
3246
|
+
"instanceStartTime": {
|
|
3247
|
+
"type": "string",
|
|
3248
|
+
"description": "Start time of each instance in HH:MM format (local time in the given timezone)",
|
|
3249
|
+
"example": "10:00"
|
|
3250
|
+
},
|
|
3251
|
+
"instanceEndTime": {
|
|
3252
|
+
"type": "string",
|
|
3253
|
+
"description": "End time of each instance in HH:MM format (local time in the given timezone)",
|
|
3254
|
+
"example": "11:00"
|
|
3255
|
+
},
|
|
3256
|
+
"timezone": {
|
|
3257
|
+
"type": "string",
|
|
3258
|
+
"description": "IANA timezone for interpreting times and generating instances",
|
|
3259
|
+
"example": "America/New_York"
|
|
3260
|
+
},
|
|
3261
|
+
"associatedGroupId": {
|
|
3262
|
+
"type": "string",
|
|
3263
|
+
"description": "Identifier of the associated group. Owners/admins of the group will be admins of the series.",
|
|
3264
|
+
"example": "group-engineering"
|
|
3265
|
+
},
|
|
3266
|
+
"maxNumAttendees": {
|
|
3267
|
+
"type": "number",
|
|
3268
|
+
"description": "Maximum number of attendees per event instance (null = unlimited)",
|
|
3269
|
+
"example": 50
|
|
3270
|
+
}
|
|
3271
|
+
},
|
|
3272
|
+
"required": [
|
|
3273
|
+
"displayName",
|
|
3274
|
+
"visibility",
|
|
3275
|
+
"seriesId",
|
|
3276
|
+
"type",
|
|
3277
|
+
"rrule",
|
|
3278
|
+
"startDate",
|
|
3279
|
+
"instanceStartTime",
|
|
3280
|
+
"instanceEndTime",
|
|
3281
|
+
"timezone"
|
|
3282
|
+
]
|
|
3283
|
+
},
|
|
3284
|
+
"EventSeriesDto": {
|
|
3285
|
+
"type": "object",
|
|
3286
|
+
"properties": {
|
|
3287
|
+
"entityId": {
|
|
3288
|
+
"type": "string",
|
|
3289
|
+
"description": "Unique identifier for the entity",
|
|
3290
|
+
"example": "entity-123"
|
|
3291
|
+
},
|
|
3292
|
+
"displayName": {
|
|
3293
|
+
"type": "string",
|
|
3294
|
+
"description": "Display name of the entity",
|
|
3295
|
+
"example": "Sample Entity"
|
|
3296
|
+
},
|
|
3297
|
+
"visibility": {
|
|
3298
|
+
"type": "string",
|
|
3299
|
+
"description": "Visibility of the entity",
|
|
3300
|
+
"enum": [
|
|
3301
|
+
"PUBLIC",
|
|
3302
|
+
"PRIVATE"
|
|
3303
|
+
],
|
|
3304
|
+
"example": "PUBLIC"
|
|
3305
|
+
},
|
|
3306
|
+
"description": {
|
|
3307
|
+
"type": "string",
|
|
3308
|
+
"description": "Description of the entity",
|
|
3309
|
+
"example": "A description of the entity"
|
|
3310
|
+
},
|
|
3311
|
+
"tags": {
|
|
3312
|
+
"description": "Tags associated with the entity",
|
|
3313
|
+
"example": [
|
|
3314
|
+
"tag1",
|
|
3315
|
+
"tag2"
|
|
3316
|
+
],
|
|
3317
|
+
"type": "array",
|
|
3318
|
+
"items": {
|
|
3319
|
+
"type": "string"
|
|
3320
|
+
}
|
|
3321
|
+
},
|
|
3322
|
+
"createdAt": {
|
|
3323
|
+
"type": "string",
|
|
3324
|
+
"description": "Date/time the entity was created (ISO string)",
|
|
3325
|
+
"example": "2024-05-01T12:34:56.789Z"
|
|
3326
|
+
},
|
|
3327
|
+
"updatedAt": {
|
|
3328
|
+
"type": "string",
|
|
3329
|
+
"description": "Date/time the entity was last updated (ISO string)",
|
|
3330
|
+
"example": "2024-05-02T12:34:56.789Z"
|
|
3331
|
+
},
|
|
3332
|
+
"location": {
|
|
3333
|
+
"description": "Required location information",
|
|
3334
|
+
"allOf": [
|
|
3335
|
+
{
|
|
3336
|
+
"$ref": "#/components/schemas/LocationDto"
|
|
3337
|
+
}
|
|
3338
|
+
]
|
|
3339
|
+
},
|
|
3340
|
+
"requesterConnection": {
|
|
3341
|
+
"description": "Connection to the requester",
|
|
3342
|
+
"allOf": [
|
|
3343
|
+
{
|
|
3344
|
+
"$ref": "#/components/schemas/EntityConnectionDto"
|
|
3345
|
+
}
|
|
3346
|
+
]
|
|
3347
|
+
},
|
|
3348
|
+
"type": {
|
|
3349
|
+
"type": "string",
|
|
3350
|
+
"description": "Event type",
|
|
3351
|
+
"example": "standup"
|
|
3352
|
+
},
|
|
3353
|
+
"rrule": {
|
|
3354
|
+
"type": "string",
|
|
3355
|
+
"description": "iCal RRULE string defining the recurrence pattern",
|
|
3356
|
+
"example": "FREQ=WEEKLY;BYDAY=TH;UNTIL=20261231T000000Z"
|
|
3357
|
+
},
|
|
3358
|
+
"startDate": {
|
|
3359
|
+
"type": "string",
|
|
3360
|
+
"description": "Date of the first occurrence (YYYY-MM-DD, local in timezone)",
|
|
3361
|
+
"example": "2026-01-08"
|
|
3362
|
+
},
|
|
3363
|
+
"instanceStartTime": {
|
|
3364
|
+
"type": "string",
|
|
3365
|
+
"description": "Start time of each instance in HH:MM format",
|
|
3366
|
+
"example": "10:00"
|
|
3367
|
+
},
|
|
3368
|
+
"instanceEndTime": {
|
|
3369
|
+
"type": "string",
|
|
3370
|
+
"description": "End time of each instance in HH:MM format",
|
|
3371
|
+
"example": "11:00"
|
|
3372
|
+
},
|
|
3373
|
+
"timezone": {
|
|
3374
|
+
"type": "string",
|
|
3375
|
+
"description": "IANA timezone for all instances",
|
|
3376
|
+
"example": "America/New_York"
|
|
3377
|
+
},
|
|
3378
|
+
"associatedGroupId": {
|
|
3379
|
+
"type": "string",
|
|
3380
|
+
"description": "Identifier of the associated group",
|
|
3381
|
+
"example": "group-engineering"
|
|
3382
|
+
},
|
|
3383
|
+
"maxNumAttendees": {
|
|
3384
|
+
"type": "number",
|
|
3385
|
+
"description": "Maximum number of attendees per event instance",
|
|
3386
|
+
"example": 50
|
|
3387
|
+
}
|
|
3388
|
+
},
|
|
3389
|
+
"required": [
|
|
3390
|
+
"type",
|
|
3391
|
+
"rrule",
|
|
3392
|
+
"startDate",
|
|
3393
|
+
"instanceStartTime",
|
|
3394
|
+
"instanceEndTime",
|
|
3395
|
+
"timezone"
|
|
3396
|
+
]
|
|
3397
|
+
},
|
|
3398
|
+
"UpdateEventSeriesDto": {
|
|
3399
|
+
"type": "object",
|
|
3400
|
+
"properties": {
|
|
3401
|
+
"visibility": {
|
|
3402
|
+
"type": "string",
|
|
3403
|
+
"description": "Visibility of the entity",
|
|
3404
|
+
"enum": [
|
|
3405
|
+
"public",
|
|
3406
|
+
"connections",
|
|
3407
|
+
"hidden"
|
|
3408
|
+
],
|
|
3409
|
+
"example": "public"
|
|
3410
|
+
},
|
|
3411
|
+
"displayName": {
|
|
3412
|
+
"type": "string",
|
|
3413
|
+
"description": "Display name",
|
|
3414
|
+
"example": "Display Name"
|
|
3415
|
+
},
|
|
3416
|
+
"location": {
|
|
3417
|
+
"description": "Optional location information",
|
|
3418
|
+
"allOf": [
|
|
3419
|
+
{
|
|
3420
|
+
"$ref": "#/components/schemas/LocationDto"
|
|
3421
|
+
}
|
|
3422
|
+
]
|
|
3423
|
+
},
|
|
3424
|
+
"description": {
|
|
3425
|
+
"type": "string",
|
|
3426
|
+
"description": "Entity description",
|
|
3427
|
+
"example": "A description of the entity"
|
|
3428
|
+
},
|
|
3429
|
+
"tags": {
|
|
3430
|
+
"description": "Entity tags",
|
|
3431
|
+
"example": [
|
|
3432
|
+
"tag1",
|
|
3433
|
+
"tag2"
|
|
3434
|
+
],
|
|
3435
|
+
"type": "array",
|
|
3436
|
+
"items": {
|
|
3437
|
+
"type": "string"
|
|
3438
|
+
}
|
|
3439
|
+
},
|
|
3440
|
+
"type": {
|
|
3441
|
+
"type": "string",
|
|
3442
|
+
"description": "Event type",
|
|
3443
|
+
"example": "standup"
|
|
3444
|
+
},
|
|
3445
|
+
"maxNumAttendees": {
|
|
3446
|
+
"type": "number",
|
|
3447
|
+
"description": "Maximum number of attendees per event instance (null = unlimited)",
|
|
3448
|
+
"example": 50
|
|
3449
|
+
}
|
|
3450
|
+
}
|
|
2833
3451
|
}
|
|
2834
3452
|
}
|
|
2835
3453
|
}
|
package/openapi.yaml
CHANGED
|
@@ -93,6 +93,20 @@ paths:
|
|
|
93
93
|
schema:
|
|
94
94
|
example: 100
|
|
95
95
|
type: number
|
|
96
|
+
- name: from
|
|
97
|
+
required: false
|
|
98
|
+
in: query
|
|
99
|
+
description: ISO 8601 date — filter events ending after this time
|
|
100
|
+
schema:
|
|
101
|
+
example: '2025-01-01T00:00:00Z'
|
|
102
|
+
type: string
|
|
103
|
+
- name: to
|
|
104
|
+
required: false
|
|
105
|
+
in: query
|
|
106
|
+
description: ISO 8601 date — filter events starting before this time
|
|
107
|
+
schema:
|
|
108
|
+
example: '2025-12-31T23:59:59Z'
|
|
109
|
+
type: string
|
|
96
110
|
- name: X-Proxima-Nexus-Requester-User-Id
|
|
97
111
|
in: header
|
|
98
112
|
description: >-
|
|
@@ -411,6 +425,18 @@ paths:
|
|
|
411
425
|
in: path
|
|
412
426
|
schema:
|
|
413
427
|
type: string
|
|
428
|
+
- name: from
|
|
429
|
+
required: false
|
|
430
|
+
in: query
|
|
431
|
+
description: 'ISO 8601 start of range (events ending after this time). Default: NOW()'
|
|
432
|
+
schema:
|
|
433
|
+
type: string
|
|
434
|
+
- name: to
|
|
435
|
+
required: false
|
|
436
|
+
in: query
|
|
437
|
+
description: ISO 8601 end of range (events starting before this time)
|
|
438
|
+
schema:
|
|
439
|
+
type: string
|
|
414
440
|
- name: X-Proxima-Nexus-Requester-User-Id
|
|
415
441
|
in: header
|
|
416
442
|
description: >-
|
|
@@ -531,6 +557,20 @@ paths:
|
|
|
531
557
|
schema:
|
|
532
558
|
example: 100
|
|
533
559
|
type: number
|
|
560
|
+
- name: from
|
|
561
|
+
required: false
|
|
562
|
+
in: query
|
|
563
|
+
description: ISO 8601 date — filter events ending after this time
|
|
564
|
+
schema:
|
|
565
|
+
example: '2025-01-01T00:00:00Z'
|
|
566
|
+
type: string
|
|
567
|
+
- name: to
|
|
568
|
+
required: false
|
|
569
|
+
in: query
|
|
570
|
+
description: ISO 8601 date — filter events starting before this time
|
|
571
|
+
schema:
|
|
572
|
+
example: '2025-12-31T23:59:59Z'
|
|
573
|
+
type: string
|
|
534
574
|
- name: X-Proxima-Nexus-Requester-User-Id
|
|
535
575
|
in: header
|
|
536
576
|
description: >-
|
|
@@ -583,7 +623,9 @@ paths:
|
|
|
583
623
|
- api_key: []
|
|
584
624
|
put:
|
|
585
625
|
operationId: EventController_update
|
|
586
|
-
summary:
|
|
626
|
+
summary: >-
|
|
627
|
+
Update an event. For series instances, only the fields provided in the request body will be marked as overridden
|
|
628
|
+
and will no longer be propagated by series-level updates.
|
|
587
629
|
parameters:
|
|
588
630
|
- name: eventId
|
|
589
631
|
required: true
|
|
@@ -877,6 +919,20 @@ paths:
|
|
|
877
919
|
schema:
|
|
878
920
|
example: 100
|
|
879
921
|
type: number
|
|
922
|
+
- name: from
|
|
923
|
+
required: false
|
|
924
|
+
in: query
|
|
925
|
+
description: ISO 8601 date — filter events ending after this time
|
|
926
|
+
schema:
|
|
927
|
+
example: '2025-01-01T00:00:00Z'
|
|
928
|
+
type: string
|
|
929
|
+
- name: to
|
|
930
|
+
required: false
|
|
931
|
+
in: query
|
|
932
|
+
description: ISO 8601 date — filter events starting before this time
|
|
933
|
+
schema:
|
|
934
|
+
example: '2025-12-31T23:59:59Z'
|
|
935
|
+
type: string
|
|
880
936
|
- name: X-Proxima-Nexus-Requester-User-Id
|
|
881
937
|
in: header
|
|
882
938
|
description: >-
|
|
@@ -1127,6 +1183,18 @@ paths:
|
|
|
1127
1183
|
in: path
|
|
1128
1184
|
schema:
|
|
1129
1185
|
type: string
|
|
1186
|
+
- name: from
|
|
1187
|
+
required: false
|
|
1188
|
+
in: query
|
|
1189
|
+
description: 'ISO 8601 start of range (events ending after this time). Default: NOW()'
|
|
1190
|
+
schema:
|
|
1191
|
+
type: string
|
|
1192
|
+
- name: to
|
|
1193
|
+
required: false
|
|
1194
|
+
in: query
|
|
1195
|
+
description: ISO 8601 end of range (events starting before this time)
|
|
1196
|
+
schema:
|
|
1197
|
+
type: string
|
|
1130
1198
|
- name: X-Proxima-Nexus-Requester-User-Id
|
|
1131
1199
|
in: header
|
|
1132
1200
|
description: >-
|
|
@@ -1180,6 +1248,170 @@ paths:
|
|
|
1180
1248
|
- group
|
|
1181
1249
|
security:
|
|
1182
1250
|
- api_key: []
|
|
1251
|
+
/event-series:
|
|
1252
|
+
post:
|
|
1253
|
+
operationId: EventSeriesController_create
|
|
1254
|
+
summary: Create an event series
|
|
1255
|
+
description: >-
|
|
1256
|
+
Creates a series definition and pre-generates all event instances based on the RRULE. The creating user (or
|
|
1257
|
+
associated group) becomes the OWNER.
|
|
1258
|
+
parameters:
|
|
1259
|
+
- name: X-Proxima-Nexus-Requester-User-Id
|
|
1260
|
+
in: header
|
|
1261
|
+
description: ID of the user creating the series
|
|
1262
|
+
required: true
|
|
1263
|
+
schema:
|
|
1264
|
+
type: string
|
|
1265
|
+
requestBody:
|
|
1266
|
+
required: true
|
|
1267
|
+
content:
|
|
1268
|
+
application/json:
|
|
1269
|
+
schema:
|
|
1270
|
+
$ref: '#/components/schemas/CreateEventSeriesDto'
|
|
1271
|
+
responses:
|
|
1272
|
+
'201':
|
|
1273
|
+
description: Created series ID
|
|
1274
|
+
content:
|
|
1275
|
+
application/json:
|
|
1276
|
+
schema:
|
|
1277
|
+
type: string
|
|
1278
|
+
'400':
|
|
1279
|
+
description: Requester user ID missing, or associated group not found
|
|
1280
|
+
'401':
|
|
1281
|
+
description: User cannot create series for the associated group
|
|
1282
|
+
tags:
|
|
1283
|
+
- event-series
|
|
1284
|
+
security:
|
|
1285
|
+
- api_key: []
|
|
1286
|
+
/event-series/{seriesId}:
|
|
1287
|
+
get:
|
|
1288
|
+
operationId: EventSeriesController_get
|
|
1289
|
+
summary: Get an event series by ID
|
|
1290
|
+
parameters:
|
|
1291
|
+
- name: seriesId
|
|
1292
|
+
required: true
|
|
1293
|
+
in: path
|
|
1294
|
+
schema:
|
|
1295
|
+
type: string
|
|
1296
|
+
responses:
|
|
1297
|
+
'200':
|
|
1298
|
+
description: Event series returned
|
|
1299
|
+
content:
|
|
1300
|
+
application/json:
|
|
1301
|
+
schema:
|
|
1302
|
+
$ref: '#/components/schemas/EventSeriesDto'
|
|
1303
|
+
'404':
|
|
1304
|
+
description: Series not found
|
|
1305
|
+
tags:
|
|
1306
|
+
- event-series
|
|
1307
|
+
security:
|
|
1308
|
+
- api_key: []
|
|
1309
|
+
put:
|
|
1310
|
+
operationId: EventSeriesController_update
|
|
1311
|
+
summary: Update an event series
|
|
1312
|
+
description: >-
|
|
1313
|
+
Updates the series definition and propagates metadata changes to all upcoming event instances. Fields that were
|
|
1314
|
+
individually overridden on a specific instance will not be overwritten.
|
|
1315
|
+
parameters:
|
|
1316
|
+
- name: seriesId
|
|
1317
|
+
required: true
|
|
1318
|
+
in: path
|
|
1319
|
+
schema:
|
|
1320
|
+
type: string
|
|
1321
|
+
- name: X-Proxima-Nexus-Requester-User-Id
|
|
1322
|
+
in: header
|
|
1323
|
+
description: ID of the user updating the series
|
|
1324
|
+
required: true
|
|
1325
|
+
schema:
|
|
1326
|
+
type: string
|
|
1327
|
+
requestBody:
|
|
1328
|
+
required: true
|
|
1329
|
+
content:
|
|
1330
|
+
application/json:
|
|
1331
|
+
schema:
|
|
1332
|
+
$ref: '#/components/schemas/UpdateEventSeriesDto'
|
|
1333
|
+
responses:
|
|
1334
|
+
'200':
|
|
1335
|
+
description: Updated series ID
|
|
1336
|
+
content:
|
|
1337
|
+
application/json:
|
|
1338
|
+
schema:
|
|
1339
|
+
type: string
|
|
1340
|
+
'401':
|
|
1341
|
+
description: User cannot edit this series
|
|
1342
|
+
'404':
|
|
1343
|
+
description: Series not found
|
|
1344
|
+
tags:
|
|
1345
|
+
- event-series
|
|
1346
|
+
security:
|
|
1347
|
+
- api_key: []
|
|
1348
|
+
delete:
|
|
1349
|
+
operationId: EventSeriesController_remove
|
|
1350
|
+
summary: Delete an event series
|
|
1351
|
+
description: Deletes the series and all upcoming event instances. Past instances (already started) are preserved.
|
|
1352
|
+
parameters:
|
|
1353
|
+
- name: seriesId
|
|
1354
|
+
required: true
|
|
1355
|
+
in: path
|
|
1356
|
+
schema:
|
|
1357
|
+
type: string
|
|
1358
|
+
- name: X-Proxima-Nexus-Requester-User-Id
|
|
1359
|
+
in: header
|
|
1360
|
+
description: ID of the user deleting the series
|
|
1361
|
+
required: true
|
|
1362
|
+
schema:
|
|
1363
|
+
type: string
|
|
1364
|
+
responses:
|
|
1365
|
+
'204':
|
|
1366
|
+
description: Series deleted
|
|
1367
|
+
'401':
|
|
1368
|
+
description: User cannot delete this series
|
|
1369
|
+
'404':
|
|
1370
|
+
description: Series not found
|
|
1371
|
+
tags:
|
|
1372
|
+
- event-series
|
|
1373
|
+
security:
|
|
1374
|
+
- api_key: []
|
|
1375
|
+
/event-series/{seriesId}/events:
|
|
1376
|
+
get:
|
|
1377
|
+
operationId: EventSeriesController_getInstances
|
|
1378
|
+
summary: List event instances in a series
|
|
1379
|
+
description: >-
|
|
1380
|
+
Returns event instances belonging to this series, ordered by start time. Defaults to only ongoing/upcoming
|
|
1381
|
+
instances.
|
|
1382
|
+
parameters:
|
|
1383
|
+
- name: seriesId
|
|
1384
|
+
required: true
|
|
1385
|
+
in: path
|
|
1386
|
+
schema:
|
|
1387
|
+
type: string
|
|
1388
|
+
- name: from
|
|
1389
|
+
required: false
|
|
1390
|
+
in: query
|
|
1391
|
+
description: 'ISO 8601 start of range (events ending after this time). Default: NOW()'
|
|
1392
|
+
schema:
|
|
1393
|
+
type: string
|
|
1394
|
+
- name: to
|
|
1395
|
+
required: false
|
|
1396
|
+
in: query
|
|
1397
|
+
description: ISO 8601 end of range (events starting before this time)
|
|
1398
|
+
schema:
|
|
1399
|
+
type: string
|
|
1400
|
+
responses:
|
|
1401
|
+
'200':
|
|
1402
|
+
description: Event instances returned
|
|
1403
|
+
content:
|
|
1404
|
+
application/json:
|
|
1405
|
+
schema:
|
|
1406
|
+
type: array
|
|
1407
|
+
items:
|
|
1408
|
+
$ref: '#/components/schemas/EventDto'
|
|
1409
|
+
'404':
|
|
1410
|
+
description: Series not found
|
|
1411
|
+
tags:
|
|
1412
|
+
- event-series
|
|
1413
|
+
security:
|
|
1414
|
+
- api_key: []
|
|
1183
1415
|
info:
|
|
1184
1416
|
title: proxima-nexus-data-plane-api
|
|
1185
1417
|
description: Proxima Nexus Data Plane API
|
|
@@ -1397,7 +1629,6 @@ components:
|
|
|
1397
1629
|
description: Birth date (ISO 8601)
|
|
1398
1630
|
example: '1990-01-01'
|
|
1399
1631
|
required:
|
|
1400
|
-
- displayName
|
|
1401
1632
|
- gender
|
|
1402
1633
|
- birthDate
|
|
1403
1634
|
MutateUserConnectionDto:
|
|
@@ -1671,6 +1902,10 @@ components:
|
|
|
1671
1902
|
type: number
|
|
1672
1903
|
description: Maximum number of attendees allowed (null = unlimited)
|
|
1673
1904
|
example: 100
|
|
1905
|
+
seriesId:
|
|
1906
|
+
type: string
|
|
1907
|
+
description: ID of the event series this instance belongs to, if any
|
|
1908
|
+
example: series-weekly-standup
|
|
1674
1909
|
required:
|
|
1675
1910
|
- startTime
|
|
1676
1911
|
- endTime
|
|
@@ -1722,11 +1957,6 @@ components:
|
|
|
1722
1957
|
type: number
|
|
1723
1958
|
description: Maximum number of attendees allowed (null = unlimited)
|
|
1724
1959
|
example: 100
|
|
1725
|
-
required:
|
|
1726
|
-
- displayName
|
|
1727
|
-
- startTime
|
|
1728
|
-
- endTime
|
|
1729
|
-
- type
|
|
1730
1960
|
MutateEventEntityConnectionDto:
|
|
1731
1961
|
type: object
|
|
1732
1962
|
properties:
|
|
@@ -1900,7 +2130,6 @@ components:
|
|
|
1900
2130
|
- invite
|
|
1901
2131
|
example: open
|
|
1902
2132
|
required:
|
|
1903
|
-
- displayName
|
|
1904
2133
|
- type
|
|
1905
2134
|
MutateGroupEntityConnectionDto:
|
|
1906
2135
|
type: object
|
|
@@ -1927,3 +2156,204 @@ components:
|
|
|
1927
2156
|
type: string
|
|
1928
2157
|
required:
|
|
1929
2158
|
- groupIds
|
|
2159
|
+
CreateEventSeriesDto:
|
|
2160
|
+
type: object
|
|
2161
|
+
properties:
|
|
2162
|
+
displayName:
|
|
2163
|
+
type: string
|
|
2164
|
+
description: Display name
|
|
2165
|
+
example: Display Name
|
|
2166
|
+
visibility:
|
|
2167
|
+
type: string
|
|
2168
|
+
description: Visibility of the entity
|
|
2169
|
+
enum:
|
|
2170
|
+
- public
|
|
2171
|
+
- connections
|
|
2172
|
+
- hidden
|
|
2173
|
+
example: public
|
|
2174
|
+
location:
|
|
2175
|
+
description: Optional location information
|
|
2176
|
+
allOf:
|
|
2177
|
+
- $ref: '#/components/schemas/LocationDto'
|
|
2178
|
+
description:
|
|
2179
|
+
type: string
|
|
2180
|
+
description: Entity description
|
|
2181
|
+
example: A description of the entity
|
|
2182
|
+
tags:
|
|
2183
|
+
description: Entity tags
|
|
2184
|
+
example:
|
|
2185
|
+
- tag1
|
|
2186
|
+
- tag2
|
|
2187
|
+
type: array
|
|
2188
|
+
items:
|
|
2189
|
+
type: string
|
|
2190
|
+
seriesId:
|
|
2191
|
+
type: string
|
|
2192
|
+
description: Unique series identifier
|
|
2193
|
+
example: series-weekly-standup
|
|
2194
|
+
type:
|
|
2195
|
+
type: string
|
|
2196
|
+
description: Event type
|
|
2197
|
+
example: standup
|
|
2198
|
+
rrule:
|
|
2199
|
+
type: string
|
|
2200
|
+
description: iCal RRULE string (without DTSTART). Defines the recurrence pattern.
|
|
2201
|
+
example: FREQ=WEEKLY;BYDAY=TH;UNTIL=20261231T000000Z
|
|
2202
|
+
startDate:
|
|
2203
|
+
type: string
|
|
2204
|
+
description: Date of the first occurrence in YYYY-MM-DD format (local date in the given timezone)
|
|
2205
|
+
example: '2026-01-08'
|
|
2206
|
+
instanceStartTime:
|
|
2207
|
+
type: string
|
|
2208
|
+
description: Start time of each instance in HH:MM format (local time in the given timezone)
|
|
2209
|
+
example: '10:00'
|
|
2210
|
+
instanceEndTime:
|
|
2211
|
+
type: string
|
|
2212
|
+
description: End time of each instance in HH:MM format (local time in the given timezone)
|
|
2213
|
+
example: '11:00'
|
|
2214
|
+
timezone:
|
|
2215
|
+
type: string
|
|
2216
|
+
description: IANA timezone for interpreting times and generating instances
|
|
2217
|
+
example: America/New_York
|
|
2218
|
+
associatedGroupId:
|
|
2219
|
+
type: string
|
|
2220
|
+
description: Identifier of the associated group. Owners/admins of the group will be admins of the series.
|
|
2221
|
+
example: group-engineering
|
|
2222
|
+
maxNumAttendees:
|
|
2223
|
+
type: number
|
|
2224
|
+
description: Maximum number of attendees per event instance (null = unlimited)
|
|
2225
|
+
example: 50
|
|
2226
|
+
required:
|
|
2227
|
+
- displayName
|
|
2228
|
+
- visibility
|
|
2229
|
+
- seriesId
|
|
2230
|
+
- type
|
|
2231
|
+
- rrule
|
|
2232
|
+
- startDate
|
|
2233
|
+
- instanceStartTime
|
|
2234
|
+
- instanceEndTime
|
|
2235
|
+
- timezone
|
|
2236
|
+
EventSeriesDto:
|
|
2237
|
+
type: object
|
|
2238
|
+
properties:
|
|
2239
|
+
entityId:
|
|
2240
|
+
type: string
|
|
2241
|
+
description: Unique identifier for the entity
|
|
2242
|
+
example: entity-123
|
|
2243
|
+
displayName:
|
|
2244
|
+
type: string
|
|
2245
|
+
description: Display name of the entity
|
|
2246
|
+
example: Sample Entity
|
|
2247
|
+
visibility:
|
|
2248
|
+
type: string
|
|
2249
|
+
description: Visibility of the entity
|
|
2250
|
+
enum:
|
|
2251
|
+
- PUBLIC
|
|
2252
|
+
- PRIVATE
|
|
2253
|
+
example: PUBLIC
|
|
2254
|
+
description:
|
|
2255
|
+
type: string
|
|
2256
|
+
description: Description of the entity
|
|
2257
|
+
example: A description of the entity
|
|
2258
|
+
tags:
|
|
2259
|
+
description: Tags associated with the entity
|
|
2260
|
+
example:
|
|
2261
|
+
- tag1
|
|
2262
|
+
- tag2
|
|
2263
|
+
type: array
|
|
2264
|
+
items:
|
|
2265
|
+
type: string
|
|
2266
|
+
createdAt:
|
|
2267
|
+
type: string
|
|
2268
|
+
description: Date/time the entity was created (ISO string)
|
|
2269
|
+
example: '2024-05-01T12:34:56.789Z'
|
|
2270
|
+
updatedAt:
|
|
2271
|
+
type: string
|
|
2272
|
+
description: Date/time the entity was last updated (ISO string)
|
|
2273
|
+
example: '2024-05-02T12:34:56.789Z'
|
|
2274
|
+
location:
|
|
2275
|
+
description: Required location information
|
|
2276
|
+
allOf:
|
|
2277
|
+
- $ref: '#/components/schemas/LocationDto'
|
|
2278
|
+
requesterConnection:
|
|
2279
|
+
description: Connection to the requester
|
|
2280
|
+
allOf:
|
|
2281
|
+
- $ref: '#/components/schemas/EntityConnectionDto'
|
|
2282
|
+
type:
|
|
2283
|
+
type: string
|
|
2284
|
+
description: Event type
|
|
2285
|
+
example: standup
|
|
2286
|
+
rrule:
|
|
2287
|
+
type: string
|
|
2288
|
+
description: iCal RRULE string defining the recurrence pattern
|
|
2289
|
+
example: FREQ=WEEKLY;BYDAY=TH;UNTIL=20261231T000000Z
|
|
2290
|
+
startDate:
|
|
2291
|
+
type: string
|
|
2292
|
+
description: Date of the first occurrence (YYYY-MM-DD, local in timezone)
|
|
2293
|
+
example: '2026-01-08'
|
|
2294
|
+
instanceStartTime:
|
|
2295
|
+
type: string
|
|
2296
|
+
description: Start time of each instance in HH:MM format
|
|
2297
|
+
example: '10:00'
|
|
2298
|
+
instanceEndTime:
|
|
2299
|
+
type: string
|
|
2300
|
+
description: End time of each instance in HH:MM format
|
|
2301
|
+
example: '11:00'
|
|
2302
|
+
timezone:
|
|
2303
|
+
type: string
|
|
2304
|
+
description: IANA timezone for all instances
|
|
2305
|
+
example: America/New_York
|
|
2306
|
+
associatedGroupId:
|
|
2307
|
+
type: string
|
|
2308
|
+
description: Identifier of the associated group
|
|
2309
|
+
example: group-engineering
|
|
2310
|
+
maxNumAttendees:
|
|
2311
|
+
type: number
|
|
2312
|
+
description: Maximum number of attendees per event instance
|
|
2313
|
+
example: 50
|
|
2314
|
+
required:
|
|
2315
|
+
- type
|
|
2316
|
+
- rrule
|
|
2317
|
+
- startDate
|
|
2318
|
+
- instanceStartTime
|
|
2319
|
+
- instanceEndTime
|
|
2320
|
+
- timezone
|
|
2321
|
+
UpdateEventSeriesDto:
|
|
2322
|
+
type: object
|
|
2323
|
+
properties:
|
|
2324
|
+
visibility:
|
|
2325
|
+
type: string
|
|
2326
|
+
description: Visibility of the entity
|
|
2327
|
+
enum:
|
|
2328
|
+
- public
|
|
2329
|
+
- connections
|
|
2330
|
+
- hidden
|
|
2331
|
+
example: public
|
|
2332
|
+
displayName:
|
|
2333
|
+
type: string
|
|
2334
|
+
description: Display name
|
|
2335
|
+
example: Display Name
|
|
2336
|
+
location:
|
|
2337
|
+
description: Optional location information
|
|
2338
|
+
allOf:
|
|
2339
|
+
- $ref: '#/components/schemas/LocationDto'
|
|
2340
|
+
description:
|
|
2341
|
+
type: string
|
|
2342
|
+
description: Entity description
|
|
2343
|
+
example: A description of the entity
|
|
2344
|
+
tags:
|
|
2345
|
+
description: Entity tags
|
|
2346
|
+
example:
|
|
2347
|
+
- tag1
|
|
2348
|
+
- tag2
|
|
2349
|
+
type: array
|
|
2350
|
+
items:
|
|
2351
|
+
type: string
|
|
2352
|
+
type:
|
|
2353
|
+
type: string
|
|
2354
|
+
description: Event type
|
|
2355
|
+
example: standup
|
|
2356
|
+
maxNumAttendees:
|
|
2357
|
+
type: number
|
|
2358
|
+
description: Maximum number of attendees per event instance (null = unlimited)
|
|
2359
|
+
example: 50
|