@proxima-nexus/openapi 2.0.0 → 2.1.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/openapi.yaml CHANGED
@@ -302,10 +302,9 @@ paths:
302
302
  items:
303
303
  type: string
304
304
  enum:
305
- - requested
305
+ - incoming_request
306
+ - outgoing_request
306
307
  - active
307
- - rejected
308
- - blocked
309
308
  - name: type
310
309
  required: false
311
310
  in: query
@@ -584,7 +583,9 @@ paths:
584
583
  - api_key: []
585
584
  put:
586
585
  operationId: EventController_update
587
- summary: Update an event
586
+ summary: >-
587
+ Update an event. For series instances, only the fields provided in the request body will be marked as overridden
588
+ and will no longer be propagated by series-level updates.
588
589
  parameters:
589
590
  - name: eventId
590
591
  required: true
@@ -1081,8 +1082,7 @@ paths:
1081
1082
  enum:
1082
1083
  - requested
1083
1084
  - active
1084
- - rejected
1085
- - blocked
1085
+ - invited
1086
1086
  - name: type
1087
1087
  required: false
1088
1088
  in: query
@@ -1182,6 +1182,156 @@ paths:
1182
1182
  - group
1183
1183
  security:
1184
1184
  - api_key: []
1185
+ /event-series:
1186
+ post:
1187
+ operationId: EventSeriesController_create
1188
+ summary: Create an event series
1189
+ description: >-
1190
+ Creates a series definition and pre-generates all event instances based on the RRULE. The creating user (or
1191
+ associated group) becomes the OWNER.
1192
+ parameters:
1193
+ - name: X-Proxima-Nexus-Requester-User-Id
1194
+ in: header
1195
+ description: ID of the user creating the series
1196
+ required: true
1197
+ schema:
1198
+ type: string
1199
+ requestBody:
1200
+ required: true
1201
+ content:
1202
+ application/json:
1203
+ schema:
1204
+ $ref: '#/components/schemas/CreateEventSeriesDto'
1205
+ responses:
1206
+ '201':
1207
+ description: Created series ID
1208
+ content:
1209
+ application/json:
1210
+ schema:
1211
+ type: string
1212
+ '400':
1213
+ description: Requester user ID missing, or associated group not found
1214
+ '401':
1215
+ description: User cannot create series for the associated group
1216
+ tags:
1217
+ - event-series
1218
+ security:
1219
+ - api_key: []
1220
+ /event-series/{seriesId}:
1221
+ get:
1222
+ operationId: EventSeriesController_get
1223
+ summary: Get an event series by ID
1224
+ parameters:
1225
+ - name: seriesId
1226
+ required: true
1227
+ in: path
1228
+ schema:
1229
+ type: string
1230
+ responses:
1231
+ '200':
1232
+ description: Event series returned
1233
+ content:
1234
+ application/json:
1235
+ schema:
1236
+ $ref: '#/components/schemas/EventSeriesDto'
1237
+ '404':
1238
+ description: Series not found
1239
+ tags:
1240
+ - event-series
1241
+ security:
1242
+ - api_key: []
1243
+ put:
1244
+ operationId: EventSeriesController_update
1245
+ summary: Update an event series
1246
+ description: >-
1247
+ Updates the series definition and propagates metadata changes to all upcoming event instances. Fields that were
1248
+ individually overridden on a specific instance will not be overwritten.
1249
+ parameters:
1250
+ - name: seriesId
1251
+ required: true
1252
+ in: path
1253
+ schema:
1254
+ type: string
1255
+ - name: X-Proxima-Nexus-Requester-User-Id
1256
+ in: header
1257
+ description: ID of the user updating the series
1258
+ required: true
1259
+ schema:
1260
+ type: string
1261
+ requestBody:
1262
+ required: true
1263
+ content:
1264
+ application/json:
1265
+ schema:
1266
+ $ref: '#/components/schemas/UpdateEventSeriesDto'
1267
+ responses:
1268
+ '200':
1269
+ description: Updated series ID
1270
+ content:
1271
+ application/json:
1272
+ schema:
1273
+ type: string
1274
+ '401':
1275
+ description: User cannot edit this series
1276
+ '404':
1277
+ description: Series not found
1278
+ tags:
1279
+ - event-series
1280
+ security:
1281
+ - api_key: []
1282
+ delete:
1283
+ operationId: EventSeriesController_remove
1284
+ summary: Delete an event series
1285
+ description: Deletes the series and all upcoming event instances. Past instances (already started) are preserved.
1286
+ parameters:
1287
+ - name: seriesId
1288
+ required: true
1289
+ in: path
1290
+ schema:
1291
+ type: string
1292
+ - name: X-Proxima-Nexus-Requester-User-Id
1293
+ in: header
1294
+ description: ID of the user deleting the series
1295
+ required: true
1296
+ schema:
1297
+ type: string
1298
+ responses:
1299
+ '204':
1300
+ description: Series deleted
1301
+ '401':
1302
+ description: User cannot delete this series
1303
+ '404':
1304
+ description: Series not found
1305
+ tags:
1306
+ - event-series
1307
+ security:
1308
+ - api_key: []
1309
+ /event-series/{seriesId}/events:
1310
+ get:
1311
+ operationId: EventSeriesController_getInstances
1312
+ summary: List all event instances in a series
1313
+ description: Returns all event instances (past and upcoming) belonging to this series, ordered by start time.
1314
+ parameters:
1315
+ - name: seriesId
1316
+ required: true
1317
+ in: path
1318
+ schema:
1319
+ type: string
1320
+ responses:
1321
+ '200':
1322
+ description: Event instances returned
1323
+ content:
1324
+ application/json:
1325
+ schema:
1326
+ type: array
1327
+ items:
1328
+ $ref: '#/components/schemas/EventDto'
1329
+ '404':
1330
+ description: Series not found
1331
+ tags:
1332
+ - event-series
1333
+ security:
1334
+ - api_key: []
1185
1335
  info:
1186
1336
  title: proxima-nexus-data-plane-api
1187
1337
  description: Proxima Nexus Data Plane API
@@ -1280,14 +1430,6 @@ components:
1280
1430
  type: string
1281
1431
  description: Date/time the connection was last updated (ISO string)
1282
1432
  example: '2024-05-02T12:34:56.789Z'
1283
- state:
1284
- type: string
1285
- description: Connection state
1286
- enum:
1287
- - requested
1288
- - active
1289
- - rejected
1290
- - blocked
1291
1433
  type:
1292
1434
  type: string
1293
1435
  description: Connection type
@@ -1296,13 +1438,19 @@ components:
1296
1438
  - admin
1297
1439
  - owner
1298
1440
  - member
1299
- - admin
1300
- - owner
1301
1441
  - friend
1302
1442
  - blocked
1303
1443
  - none
1444
+ state:
1445
+ type: string
1446
+ description: Connection state
1447
+ enum:
1448
+ - incoming_request
1449
+ - outgoing_request
1450
+ - active
1451
+ - requested
1452
+ - invited
1304
1453
  required:
1305
- - state
1306
1454
  - type
1307
1455
  UserDto:
1308
1456
  type: object
@@ -1401,7 +1549,6 @@ components:
1401
1549
  description: Birth date (ISO 8601)
1402
1550
  example: '1990-01-01'
1403
1551
  required:
1404
- - displayName
1405
1552
  - gender
1406
1553
  - birthDate
1407
1554
  MutateUserConnectionDto:
@@ -1427,14 +1574,6 @@ components:
1427
1574
  type: string
1428
1575
  description: Date/time the connection was last updated (ISO string)
1429
1576
  example: '2024-05-02T12:34:56.789Z'
1430
- state:
1431
- type: string
1432
- description: Connection state
1433
- enum:
1434
- - requested
1435
- - active
1436
- - rejected
1437
- - blocked
1438
1577
  type:
1439
1578
  type: string
1440
1579
  description: Connection type
@@ -1443,17 +1582,23 @@ components:
1443
1582
  - admin
1444
1583
  - owner
1445
1584
  - member
1446
- - admin
1447
- - owner
1448
1585
  - friend
1449
1586
  - blocked
1450
1587
  - none
1588
+ state:
1589
+ type: string
1590
+ description: Connection state
1591
+ enum:
1592
+ - incoming_request
1593
+ - outgoing_request
1594
+ - active
1595
+ - requested
1596
+ - invited
1451
1597
  userId:
1452
1598
  type: string
1453
1599
  description: User ID
1454
1600
  example: user-123
1455
1601
  required:
1456
- - state
1457
1602
  - type
1458
1603
  - userId
1459
1604
  GetUsersDto:
@@ -1480,14 +1625,6 @@ components:
1480
1625
  type: string
1481
1626
  description: Date/time the connection was last updated (ISO string)
1482
1627
  example: '2024-05-02T12:34:56.789Z'
1483
- state:
1484
- type: string
1485
- description: Connection state
1486
- enum:
1487
- - requested
1488
- - active
1489
- - rejected
1490
- - blocked
1491
1628
  type:
1492
1629
  type: string
1493
1630
  description: Connection type
@@ -1496,17 +1633,23 @@ components:
1496
1633
  - admin
1497
1634
  - owner
1498
1635
  - member
1499
- - admin
1500
- - owner
1501
1636
  - friend
1502
1637
  - blocked
1503
1638
  - none
1639
+ state:
1640
+ type: string
1641
+ description: Connection state
1642
+ enum:
1643
+ - incoming_request
1644
+ - outgoing_request
1645
+ - active
1646
+ - requested
1647
+ - invited
1504
1648
  groupId:
1505
1649
  type: string
1506
1650
  description: Group ID
1507
1651
  example: group-123
1508
1652
  required:
1509
- - state
1510
1653
  - type
1511
1654
  - groupId
1512
1655
  EventEntityConnectionDto:
@@ -1520,14 +1663,6 @@ components:
1520
1663
  type: string
1521
1664
  description: Date/time the connection was last updated (ISO string)
1522
1665
  example: '2024-05-02T12:34:56.789Z'
1523
- state:
1524
- type: string
1525
- description: Connection state
1526
- enum:
1527
- - requested
1528
- - active
1529
- - rejected
1530
- - blocked
1531
1666
  type:
1532
1667
  type: string
1533
1668
  description: Connection type
@@ -1536,17 +1671,23 @@ components:
1536
1671
  - admin
1537
1672
  - owner
1538
1673
  - member
1539
- - admin
1540
- - owner
1541
1674
  - friend
1542
1675
  - blocked
1543
1676
  - none
1677
+ state:
1678
+ type: string
1679
+ description: Connection state
1680
+ enum:
1681
+ - incoming_request
1682
+ - outgoing_request
1683
+ - active
1684
+ - requested
1685
+ - invited
1544
1686
  eventId:
1545
1687
  type: string
1546
1688
  description: Event ID
1547
1689
  example: event-123
1548
1690
  required:
1549
- - state
1550
1691
  - type
1551
1692
  - eventId
1552
1693
  CreateEventDto:
@@ -1681,6 +1822,10 @@ components:
1681
1822
  type: number
1682
1823
  description: Maximum number of attendees allowed (null = unlimited)
1683
1824
  example: 100
1825
+ seriesId:
1826
+ type: string
1827
+ description: ID of the event series this instance belongs to, if any
1828
+ example: series-weekly-standup
1684
1829
  required:
1685
1830
  - startTime
1686
1831
  - endTime
@@ -1732,11 +1877,6 @@ components:
1732
1877
  type: number
1733
1878
  description: Maximum number of attendees allowed (null = unlimited)
1734
1879
  example: 100
1735
- required:
1736
- - displayName
1737
- - startTime
1738
- - endTime
1739
- - type
1740
1880
  MutateEventEntityConnectionDto:
1741
1881
  type: object
1742
1882
  properties:
@@ -1910,7 +2050,6 @@ components:
1910
2050
  - invite
1911
2051
  example: open
1912
2052
  required:
1913
- - displayName
1914
2053
  - type
1915
2054
  MutateGroupEntityConnectionDto:
1916
2055
  type: object
@@ -1937,3 +2076,204 @@ components:
1937
2076
  type: string
1938
2077
  required:
1939
2078
  - groupIds
2079
+ CreateEventSeriesDto:
2080
+ type: object
2081
+ properties:
2082
+ displayName:
2083
+ type: string
2084
+ description: Display name
2085
+ example: Display Name
2086
+ visibility:
2087
+ type: string
2088
+ description: Visibility of the entity
2089
+ enum:
2090
+ - public
2091
+ - connections
2092
+ - hidden
2093
+ example: public
2094
+ location:
2095
+ description: Optional location information
2096
+ allOf:
2097
+ - $ref: '#/components/schemas/LocationDto'
2098
+ description:
2099
+ type: string
2100
+ description: Entity description
2101
+ example: A description of the entity
2102
+ tags:
2103
+ description: Entity tags
2104
+ example:
2105
+ - tag1
2106
+ - tag2
2107
+ type: array
2108
+ items:
2109
+ type: string
2110
+ seriesId:
2111
+ type: string
2112
+ description: Unique series identifier
2113
+ example: series-weekly-standup
2114
+ type:
2115
+ type: string
2116
+ description: Event type
2117
+ example: standup
2118
+ rrule:
2119
+ type: string
2120
+ description: iCal RRULE string (without DTSTART). Defines the recurrence pattern.
2121
+ example: FREQ=WEEKLY;BYDAY=TH;UNTIL=20261231T000000Z
2122
+ startDate:
2123
+ type: string
2124
+ description: Date of the first occurrence in YYYY-MM-DD format (local date in the given timezone)
2125
+ example: '2026-01-08'
2126
+ instanceStartTime:
2127
+ type: string
2128
+ description: Start time of each instance in HH:MM format (local time in the given timezone)
2129
+ example: '10:00'
2130
+ instanceEndTime:
2131
+ type: string
2132
+ description: End time of each instance in HH:MM format (local time in the given timezone)
2133
+ example: '11:00'
2134
+ timezone:
2135
+ type: string
2136
+ description: IANA timezone for interpreting times and generating instances
2137
+ example: America/New_York
2138
+ associatedGroupId:
2139
+ type: string
2140
+ description: Identifier of the associated group. Owners/admins of the group will be admins of the series.
2141
+ example: group-engineering
2142
+ maxNumAttendees:
2143
+ type: number
2144
+ description: Maximum number of attendees per event instance (null = unlimited)
2145
+ example: 50
2146
+ required:
2147
+ - displayName
2148
+ - visibility
2149
+ - seriesId
2150
+ - type
2151
+ - rrule
2152
+ - startDate
2153
+ - instanceStartTime
2154
+ - instanceEndTime
2155
+ - timezone
2156
+ EventSeriesDto:
2157
+ type: object
2158
+ properties:
2159
+ entityId:
2160
+ type: string
2161
+ description: Unique identifier for the entity
2162
+ example: entity-123
2163
+ displayName:
2164
+ type: string
2165
+ description: Display name of the entity
2166
+ example: Sample Entity
2167
+ visibility:
2168
+ type: string
2169
+ description: Visibility of the entity
2170
+ enum:
2171
+ - PUBLIC
2172
+ - PRIVATE
2173
+ example: PUBLIC
2174
+ description:
2175
+ type: string
2176
+ description: Description of the entity
2177
+ example: A description of the entity
2178
+ tags:
2179
+ description: Tags associated with the entity
2180
+ example:
2181
+ - tag1
2182
+ - tag2
2183
+ type: array
2184
+ items:
2185
+ type: string
2186
+ createdAt:
2187
+ type: string
2188
+ description: Date/time the entity was created (ISO string)
2189
+ example: '2024-05-01T12:34:56.789Z'
2190
+ updatedAt:
2191
+ type: string
2192
+ description: Date/time the entity was last updated (ISO string)
2193
+ example: '2024-05-02T12:34:56.789Z'
2194
+ location:
2195
+ description: Required location information
2196
+ allOf:
2197
+ - $ref: '#/components/schemas/LocationDto'
2198
+ requesterConnection:
2199
+ description: Connection to the requester
2200
+ allOf:
2201
+ - $ref: '#/components/schemas/EntityConnectionDto'
2202
+ type:
2203
+ type: string
2204
+ description: Event type
2205
+ example: standup
2206
+ rrule:
2207
+ type: string
2208
+ description: iCal RRULE string defining the recurrence pattern
2209
+ example: FREQ=WEEKLY;BYDAY=TH;UNTIL=20261231T000000Z
2210
+ startDate:
2211
+ type: string
2212
+ description: Date of the first occurrence (YYYY-MM-DD, local in timezone)
2213
+ example: '2026-01-08'
2214
+ instanceStartTime:
2215
+ type: string
2216
+ description: Start time of each instance in HH:MM format
2217
+ example: '10:00'
2218
+ instanceEndTime:
2219
+ type: string
2220
+ description: End time of each instance in HH:MM format
2221
+ example: '11:00'
2222
+ timezone:
2223
+ type: string
2224
+ description: IANA timezone for all instances
2225
+ example: America/New_York
2226
+ associatedGroupId:
2227
+ type: string
2228
+ description: Identifier of the associated group
2229
+ example: group-engineering
2230
+ maxNumAttendees:
2231
+ type: number
2232
+ description: Maximum number of attendees per event instance
2233
+ example: 50
2234
+ required:
2235
+ - type
2236
+ - rrule
2237
+ - startDate
2238
+ - instanceStartTime
2239
+ - instanceEndTime
2240
+ - timezone
2241
+ UpdateEventSeriesDto:
2242
+ type: object
2243
+ properties:
2244
+ visibility:
2245
+ type: string
2246
+ description: Visibility of the entity
2247
+ enum:
2248
+ - public
2249
+ - connections
2250
+ - hidden
2251
+ example: public
2252
+ displayName:
2253
+ type: string
2254
+ description: Display name
2255
+ example: Display Name
2256
+ location:
2257
+ description: Optional location information
2258
+ allOf:
2259
+ - $ref: '#/components/schemas/LocationDto'
2260
+ description:
2261
+ type: string
2262
+ description: Entity description
2263
+ example: A description of the entity
2264
+ tags:
2265
+ description: Entity tags
2266
+ example:
2267
+ - tag1
2268
+ - tag2
2269
+ type: array
2270
+ items:
2271
+ type: string
2272
+ type:
2273
+ type: string
2274
+ description: Event type
2275
+ example: standup
2276
+ maxNumAttendees:
2277
+ type: number
2278
+ description: Maximum number of attendees per event instance (null = unlimited)
2279
+ example: 50
package/package.json CHANGED
@@ -1,47 +1,47 @@
1
1
  {
2
2
  "name": "@proxima-nexus/openapi",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "OpenAPI specification for Proxima Nexus",
5
5
  "main": "openapi.json",
6
6
  "types": "openapi.json",
7
7
  "files": [
8
- "openapi.json",
9
- "openapi.yaml",
10
- "README.md",
11
- "CHANGELOG.md",
12
- "LICENSE"
8
+ "openapi.json",
9
+ "openapi.yaml",
10
+ "README.md",
11
+ "CHANGELOG.md",
12
+ "LICENSE"
13
13
  ],
14
14
  "scripts": {
15
- "validate": "swagger-cli validate openapi.yaml",
16
- "prepublishOnly": "npm run validate"
15
+ "validate": "swagger-cli validate openapi.yaml",
16
+ "prepublishOnly": "npm run validate"
17
17
  },
18
18
  "keywords": [
19
- "openapi",
20
- "swagger",
21
- "api",
22
- "specification",
23
- "proxima-nexus",
24
- "rest-api"
19
+ "openapi",
20
+ "swagger",
21
+ "api",
22
+ "specification",
23
+ "proxima-nexus",
24
+ "rest-api"
25
25
  ],
26
26
  "author": "Proxima Nexus",
27
27
  "license": "ISC",
28
28
  "repository": {
29
- "type": "git",
30
- "url": "https://github.com/proxima-nexus/openapi.git"
29
+ "type": "git",
30
+ "url": "https://github.com/proxima-nexus/openapi.git"
31
31
  },
32
32
  "bugs": {
33
- "url": "https://github.com/proxima-nexus/openapi/issues"
33
+ "url": "https://github.com/proxima-nexus/openapi/issues"
34
34
  },
35
35
  "homepage": "https://github.com/proxima-nexus/openapi#readme",
36
36
  "publishConfig": {
37
- "access": "public",
38
- "provenance": "true",
39
- "registry": "https://registry.npmjs.org/"
37
+ "access": "public",
38
+ "provenance": "true",
39
+ "registry": "https://registry.npmjs.org/"
40
40
  },
41
41
  "devDependencies": {
42
- "@apidevtools/swagger-cli": "^4.0.4"
42
+ "@apidevtools/swagger-cli": "^4.0.4"
43
43
  },
44
44
  "engines": {
45
- "node": ">=18.x"
45
+ "node": ">=18.x"
46
46
  }
47
- }
47
+ }