@celigo/api-specs 0.2.38 → 0.2.40

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.
@@ -1595,6 +1595,126 @@ paths:
1595
1595
  $ref: '#/components/responses/401-unauthorized'
1596
1596
  '404':
1597
1597
  $ref: '#/components/responses/404-not-found'
1598
+ /v1/integrations/{_id}/lookupcaches:
1599
+ get:
1600
+ x-internal: false
1601
+ operationId: listIntegrationLookupCaches
1602
+ tags:
1603
+ - Integrations
1604
+ summary: List lookup caches registered to an integration
1605
+ description: |-
1606
+ Returns a bare array of full lookup cache objects for every cache in the integration's
1607
+ `_registeredLookupCacheIds`, sorted by `name`. Each element is the same shape as
1608
+ `GET /v1/lookupcaches/{_id}`. Rejects unknown integration ids with a 404.
1609
+ parameters:
1610
+ - name: _id
1611
+ in: path
1612
+ required: true
1613
+ description: Integration id.
1614
+ schema:
1615
+ type: string
1616
+ format: objectId
1617
+ x-celigo-refModel: integrations
1618
+ examples:
1619
+ - 6842261335b64c0bcb308e4f
1620
+ - name: limit
1621
+ in: query
1622
+ required: false
1623
+ description: Maximum number of lookup caches to return per page.
1624
+ schema:
1625
+ type: integer
1626
+ minimum: 1
1627
+ examples:
1628
+ - 100
1629
+ - $ref: '#/components/parameters/After'
1630
+ responses:
1631
+ '200':
1632
+ description: Array of lookup cache objects.
1633
+ headers:
1634
+ Link:
1635
+ description: |-
1636
+ RFC 5988 pagination link. Includes `<...>; rel="next"` with an `after` cursor when more
1637
+ caches remain; absent on the final page.
1638
+ schema:
1639
+ type: string
1640
+ content:
1641
+ application/json:
1642
+ schema:
1643
+ type: array
1644
+ items:
1645
+ $ref: '#/components/schemas/LookupCache'
1646
+ examples:
1647
+ one_cache:
1648
+ summary: Integration with one registered cache
1649
+ value:
1650
+ - _id: 68680d7111d1437fbcbce534
1651
+ _userId: 624cb0346309dc3a543733a2
1652
+ name: US State Name to State Code
1653
+ includeDataInTemplatesAndCloning: false
1654
+ size: 1887
1655
+ sizeInMB: <5 MB
1656
+ createdAt: '2026-03-24T19:51:01.266Z'
1657
+ lastModified: '2026-04-18T05:40:33.812Z'
1658
+ '204':
1659
+ description: No lookup caches are registered to the integration.
1660
+ '401':
1661
+ $ref: '#/components/responses/401-unauthorized'
1662
+ '404':
1663
+ $ref: '#/components/responses/404-not-found'
1664
+ post:
1665
+ x-internal: false
1666
+ operationId: createLookupCacheOnIntegration
1667
+ tags:
1668
+ - Integrations
1669
+ summary: Create a lookup cache and register it
1670
+ description: |-
1671
+ Creates a lookup cache exactly as `POST /v1/lookupcaches` does and, in the same call, adds it to
1672
+ the integration's `_registeredLookupCacheIds` and an `aliases[]` entry whose `alias` is a slug of
1673
+ the cache name — the same side effect as the `register` operations. Populate the cache afterwards
1674
+ with `POST /v1/lookupcaches/{_id}/data`.
1675
+ parameters:
1676
+ - name: _id
1677
+ in: path
1678
+ required: true
1679
+ description: Integration id.
1680
+ schema:
1681
+ type: string
1682
+ format: objectId
1683
+ x-celigo-refModel: integrations
1684
+ examples:
1685
+ - 6842261335b64c0bcb308e4f
1686
+ requestBody:
1687
+ required: true
1688
+ content:
1689
+ application/json:
1690
+ schema:
1691
+ $ref: '#/components/schemas/Request-2'
1692
+ examples:
1693
+ default:
1694
+ value:
1695
+ name: Customer ID Cache
1696
+ responses:
1697
+ '201':
1698
+ description: Created lookup cache, already registered to the integration.
1699
+ content:
1700
+ application/json:
1701
+ schema:
1702
+ $ref: '#/components/schemas/LookupCache'
1703
+ examples:
1704
+ created:
1705
+ value:
1706
+ _id: 6ab1f6f37c4b4e699fe8c72c
1707
+ _userId: 624cb0346309dc3a543733a2
1708
+ name: Customer ID Cache
1709
+ includeDataInTemplatesAndCloning: false
1710
+ size: 0
1711
+ sizeInMB: 0 MB
1712
+ createdAt: '2026-09-22T03:33:07.337Z'
1713
+ lastModified: '2026-09-22T03:33:07.367Z'
1714
+ '401':
1715
+ $ref: '#/components/responses/401-unauthorized'
1716
+ '404':
1717
+ $ref: '#/components/responses/404-not-found'
1598
1718
  /v1/integrations/{_id}/lookupcaches/{_lookupCacheId}/register:
1599
1719
  put:
1600
1720
  x-internal: false
@@ -1771,6 +1891,329 @@ paths:
1771
1891
  $ref: '#/components/responses/401-unauthorized'
1772
1892
  '404':
1773
1893
  $ref: '#/components/responses/404-not-found'
1894
+ /v1/integrations/{_id}/topics:
1895
+ get:
1896
+ x-internal: false
1897
+ operationId: listIntegrationTopics
1898
+ tags:
1899
+ - Integrations
1900
+ summary: List topics registered to an integration
1901
+ description: |-
1902
+ Returns a bare array of full topic objects for every topic in the integration's
1903
+ `_registeredTopicIds`, sorted by `name`. Each element is the same shape as
1904
+ `GET /v1/topics/{_id}`. Rejects unknown integration ids with a 404. The `externalId` filter of
1905
+ `GET /v1/topics` is not applied here.
1906
+ parameters:
1907
+ - name: _id
1908
+ in: path
1909
+ required: true
1910
+ description: Integration id.
1911
+ schema:
1912
+ type: string
1913
+ format: objectId
1914
+ x-celigo-refModel: integrations
1915
+ examples:
1916
+ - 6842261335b64c0bcb308e4f
1917
+ - name: limit
1918
+ in: query
1919
+ required: false
1920
+ description: Maximum number of topics to return per page.
1921
+ schema:
1922
+ type: integer
1923
+ minimum: 1
1924
+ examples:
1925
+ - 100
1926
+ - $ref: '#/components/parameters/After'
1927
+ responses:
1928
+ '200':
1929
+ description: Array of topic objects.
1930
+ headers:
1931
+ Link:
1932
+ description: |-
1933
+ RFC 5988 pagination link. Includes `<...>; rel="next"` with an `after` cursor when more
1934
+ topics remain; absent on the final page.
1935
+ schema:
1936
+ type: string
1937
+ content:
1938
+ application/json:
1939
+ schema:
1940
+ type: array
1941
+ items:
1942
+ $ref: '#/components/schemas/Topic'
1943
+ examples:
1944
+ one_topic:
1945
+ summary: Integration with one registered topic
1946
+ value:
1947
+ - _id: 6aab2870265e1cf39fcbee4d
1948
+ _userId: 624cb0346309dc3a543733a2
1949
+ name: orders.created
1950
+ description: One event per order placed. Consumed by the fulfillment and finance flows.
1951
+ retentionMs: 604800000
1952
+ createdAt: '2026-09-16T23:38:24.578Z'
1953
+ lastModified: '2026-09-16T23:38:24.578Z'
1954
+ '204':
1955
+ description: No topics are registered to the integration.
1956
+ '401':
1957
+ $ref: '#/components/responses/401-unauthorized'
1958
+ '404':
1959
+ $ref: '#/components/responses/404-not-found'
1960
+ post:
1961
+ x-internal: false
1962
+ operationId: createTopicOnIntegration
1963
+ tags:
1964
+ - Integrations
1965
+ summary: Create a topic and register it
1966
+ description: |-
1967
+ Creates a topic exactly as `POST /v1/topics` does and, in the same call, adds it to the
1968
+ integration's `_registeredTopicIds`. Use this when the topic is being built for one integration's
1969
+ flows; to share a topic across several integrations, create it with `POST /v1/topics` and
1970
+ register it on each with the `register` operations.
1971
+ parameters:
1972
+ - name: _id
1973
+ in: path
1974
+ required: true
1975
+ description: Integration id.
1976
+ schema:
1977
+ type: string
1978
+ format: objectId
1979
+ x-celigo-refModel: integrations
1980
+ examples:
1981
+ - 6842261335b64c0bcb308e4f
1982
+ requestBody:
1983
+ required: true
1984
+ content:
1985
+ application/json:
1986
+ schema:
1987
+ $ref: '#/components/schemas/Request-3'
1988
+ examples:
1989
+ default:
1990
+ value:
1991
+ name: orders.created
1992
+ description: One event per order placed. Consumed by the fulfillment and finance flows.
1993
+ retentionMs: 604800000
1994
+ responses:
1995
+ '201':
1996
+ description: Created topic, already registered to the integration.
1997
+ content:
1998
+ application/json:
1999
+ schema:
2000
+ $ref: '#/components/schemas/Topic'
2001
+ examples:
2002
+ created:
2003
+ value:
2004
+ _id: 6aab2870265e1cf39fcbee4d
2005
+ _userId: 624cb0346309dc3a543733a2
2006
+ name: orders.created
2007
+ description: One event per order placed. Consumed by the fulfillment and finance flows.
2008
+ retentionMs: 604800000
2009
+ createdAt: '2026-09-16T23:38:24.578Z'
2010
+ lastModified: '2026-09-16T23:38:24.578Z'
2011
+ '401':
2012
+ $ref: '#/components/responses/401-unauthorized'
2013
+ '404':
2014
+ $ref: '#/components/responses/404-not-found'
2015
+ '422':
2016
+ description: The topic body failed validation — the same codes as `POST /v1/topics`.
2017
+ content:
2018
+ application/json:
2019
+ schema:
2020
+ $ref: '#/components/schemas/Error'
2021
+ examples:
2022
+ retention_too_short:
2023
+ value:
2024
+ errors:
2025
+ - field: retentionMs
2026
+ code: min
2027
+ message: Path `retentionMs` (3599999) is less than minimum allowed value (3600000).
2028
+ /v1/integrations/{_id}/topics/{_topicId}/register:
2029
+ put:
2030
+ x-internal: false
2031
+ operationId: registerTopicToIntegration
2032
+ tags:
2033
+ - Integrations
2034
+ summary: Register a topic to an integration (by path)
2035
+ description: |-
2036
+ Adds a single topic to the integration's `_registeredTopicIds` so flows in the integration can
2037
+ subscribe to or publish on it. No request body is needed; registering an already-registered topic
2038
+ succeeds without duplicating it. To unregister, use `DELETE` on the same path; to register several
2039
+ topics at once, use `PUT /v1/integrations/{_id}/topics/register`.
2040
+
2041
+ Registration also happens automatically when a flow in the integration is saved with a step
2042
+ bound to the topic. Unlike lookup caches, registering a topic adds no `aliases[]` entry.
2043
+ parameters:
2044
+ - name: _id
2045
+ in: path
2046
+ required: true
2047
+ description: Integration id.
2048
+ schema:
2049
+ type: string
2050
+ format: objectId
2051
+ x-celigo-refModel: integrations
2052
+ examples:
2053
+ - 6842261335b64c0bcb308e4f
2054
+ - name: _topicId
2055
+ in: path
2056
+ required: true
2057
+ description: Topic id to register.
2058
+ schema:
2059
+ type: string
2060
+ format: objectId
2061
+ x-celigo-refModel: topics
2062
+ examples:
2063
+ - 6aab2870265e1cf39fcbee4d
2064
+ responses:
2065
+ '204':
2066
+ description: Topic registered successfully. No body returned.
2067
+ '401':
2068
+ $ref: '#/components/responses/401-unauthorized'
2069
+ '404':
2070
+ description: The integration does not exist, or the topic does not exist in this account.
2071
+ content:
2072
+ application/json:
2073
+ schema:
2074
+ $ref: '#/components/schemas/Error'
2075
+ examples:
2076
+ topic_not_found:
2077
+ value:
2078
+ errors:
2079
+ - code: not_found
2080
+ message: 'The topics with following _id''s: 6aab2870265e1cf39fcbee4d don''t exist.'
2081
+ delete:
2082
+ x-internal: false
2083
+ operationId: unregisterTopicFromIntegration
2084
+ tags:
2085
+ - Integrations
2086
+ summary: Unregister a topic from an integration
2087
+ description: |-
2088
+ Removes a topic's registration from the integration. This does not delete the topic — it only
2089
+ removes it from the integration's `_registeredTopicIds`. Fails when the topic is not registered
2090
+ on the integration, or while any flow step in the integration (an export or import with
2091
+ `topic._topicId` set) still uses it. Repoint or delete those steps first, then retry.
2092
+ x-celigo-ai-guidance:
2093
+ - |-
2094
+ Before calling, check `GET /v1/topics/{_topicId}/dependencies` for `flows` in this integration
2095
+ — while any exist the platform returns 400 `not_allowed` "The topic is being actively used by a
2096
+ step in this integration…".
2097
+ parameters:
2098
+ - name: _id
2099
+ in: path
2100
+ required: true
2101
+ description: Integration id.
2102
+ schema:
2103
+ type: string
2104
+ format: objectId
2105
+ x-celigo-refModel: integrations
2106
+ examples:
2107
+ - 6842261335b64c0bcb308e4f
2108
+ - name: _topicId
2109
+ in: path
2110
+ required: true
2111
+ description: Topic id to unregister.
2112
+ schema:
2113
+ type: string
2114
+ format: objectId
2115
+ x-celigo-refModel: topics
2116
+ examples:
2117
+ - 6aab2870265e1cf39fcbee4d
2118
+ responses:
2119
+ '204':
2120
+ description: Topic unregistered successfully. No body returned.
2121
+ '400':
2122
+ description: |-
2123
+ The topic is not registered on this integration ("The topic which you are trying to
2124
+ deregister is not registered on the integration."), or a flow step in the integration still
2125
+ uses it ("The topic is being actively used by a step in this integration…"). Error code:
2126
+ `not_allowed` for both.
2127
+ content:
2128
+ application/json:
2129
+ schema:
2130
+ $ref: '#/components/schemas/Error'
2131
+ examples:
2132
+ in_use:
2133
+ value:
2134
+ errors:
2135
+ - code: not_allowed
2136
+ message: The topic is being actively used by a step in this integration. Please remove the topic reference from all steps before deregistering.
2137
+ not_registered:
2138
+ value:
2139
+ errors:
2140
+ - code: not_allowed
2141
+ message: The topic which you are trying to deregister is not registered on the integration.
2142
+ '401':
2143
+ $ref: '#/components/responses/401-unauthorized'
2144
+ '404':
2145
+ $ref: '#/components/responses/404-not-found'
2146
+ /v1/integrations/{_id}/topics/register:
2147
+ put:
2148
+ x-internal: false
2149
+ operationId: registerTopicsToIntegration
2150
+ tags:
2151
+ - Integrations
2152
+ summary: Register topics to an integration (by body)
2153
+ description: |-
2154
+ Adds one or more topics to the integration's `_registeredTopicIds`. The request body is a bare
2155
+ JSON array of topic ids; duplicates and already-registered ids are collapsed, and an empty array
2156
+ is accepted as a no-op. Every id must name a topic in this account or nothing is registered.
2157
+ Alternatively, use `PUT /v1/integrations/{_id}/topics/{_topicId}/register` to register a single
2158
+ topic by path parameter.
2159
+ parameters:
2160
+ - name: _id
2161
+ in: path
2162
+ required: true
2163
+ description: Integration id.
2164
+ schema:
2165
+ type: string
2166
+ format: objectId
2167
+ x-celigo-refModel: integrations
2168
+ examples:
2169
+ - 6842261335b64c0bcb308e4f
2170
+ requestBody:
2171
+ required: true
2172
+ content:
2173
+ application/json:
2174
+ schema:
2175
+ type: array
2176
+ description: Topic ids to register.
2177
+ items:
2178
+ type: string
2179
+ format: objectId
2180
+ x-celigo-refModel: topics
2181
+ examples:
2182
+ default:
2183
+ value:
2184
+ - 6aab2870265e1cf39fcbee4d
2185
+ - 6aab2870bb44c84f7b77e9f7
2186
+ responses:
2187
+ '204':
2188
+ description: Topics registered successfully. No body returned.
2189
+ '400':
2190
+ description: |-
2191
+ The body is not a JSON array ("Maximum batch size is …", code `batch_size_exceeded`), or an
2192
+ entry is not a valid ObjectId ("Please provide a valid _topicId.", code `invalid_ref`).
2193
+ content:
2194
+ application/json:
2195
+ schema:
2196
+ $ref: '#/components/schemas/Error'
2197
+ examples:
2198
+ bad_id:
2199
+ value:
2200
+ errors:
2201
+ - code: invalid_ref
2202
+ message: Please provide a valid _topicId.
2203
+ '401':
2204
+ $ref: '#/components/responses/401-unauthorized'
2205
+ '404':
2206
+ description: The integration does not exist, or one of the topics does not exist in this account.
2207
+ content:
2208
+ application/json:
2209
+ schema:
2210
+ $ref: '#/components/schemas/Error'
2211
+ examples:
2212
+ topic_not_found:
2213
+ value:
2214
+ errors:
2215
+ - code: not_found
2216
+ message: 'The topics with following _id''s: 6aab2870bb44c84f7b77e9f7 don''t exist.'
1774
2217
  /v1/integrations/{_id}/tree/metadata:
1775
2218
  get:
1776
2219
  x-internal: false
@@ -2205,6 +2648,15 @@ components:
2205
2648
  schema:
2206
2649
  type: string
2207
2650
  example: createdAt,lastModified
2651
+ After:
2652
+ name: after
2653
+ in: query
2654
+ required: false
2655
+ description: |-
2656
+ Opaque cursor for forward pagination. Pass the value from the `Link`
2657
+ response header (`rel="next"`) to fetch the next page.
2658
+ schema:
2659
+ type: string
2208
2660
  schemas:
2209
2661
  Settings:
2210
2662
  type: object
@@ -3795,6 +4247,22 @@ components:
3795
4247
  type: string
3796
4248
  format: objectId
3797
4249
  x-celigo-refModel: lookupcaches
4250
+ _registeredTopicIds:
4251
+ type: array
4252
+ readOnly: true
4253
+ description: |-
4254
+ Topics registered to this integration, so its flows can subscribe to or publish on them.
4255
+ Maintained by the platform: added through the integration's topic `register` operations,
4256
+ `POST /v1/topics` with `__integrationIds`, or automatically when a flow in the integration
4257
+ is saved with a step bound to a topic; removed by the `DELETE …/register` operation or when
4258
+ the topic is deleted. Client-sent values are ignored (PUT-verified). Absent on integrations
4259
+ that have never had a topic registered.
4260
+ items:
4261
+ type: string
4262
+ format: objectId
4263
+ x-celigo-refModel: topics
4264
+ examples:
4265
+ - - 6aab2870265e1cf39fcbee4d
3798
4266
  Request:
3799
4267
  type: object
3800
4268
  description: Fields that can be sent when creating or updating an integration.
@@ -4254,6 +4722,345 @@ components:
4254
4722
  - 67b123456789abcdef012345
4255
4723
  description: Environment id the integration belongs to.
4256
4724
  additionalProperties: true
4725
+ LookupCacheBase:
4726
+ type: object
4727
+ description: Writable fields shared by the request and response schemas.
4728
+ properties:
4729
+ name:
4730
+ type: string
4731
+ maxLength: 200
4732
+ description: Display name.
4733
+ examples:
4734
+ - Customer ID Cache
4735
+ - Product SKU Lookup
4736
+ description:
4737
+ type: string
4738
+ maxLength: 5120
4739
+ description: Purpose or contents of the cache.
4740
+ examples:
4741
+ - Maps external customer IDs to internal Salesforce IDs for deduplication
4742
+ includeDataInTemplatesAndCloning:
4743
+ type: boolean
4744
+ default: false
4745
+ description: |-
4746
+ Whether to include the cached key-value data when this cache is
4747
+ used in templates or cloned. When `false` (default), only
4748
+ metadata transfers. Set to `true` for static reference tables.
4749
+ examples:
4750
+ - false
4751
+ - true
4752
+ x-celigo-ai-guidance:
4753
+ - |-
4754
+ When false (default), only the cache metadata is included — the actual
4755
+ key-value data is not transferred. Set to true if the cached data is
4756
+ part of the integration's configuration (e.g., static reference tables).
4757
+ externalId:
4758
+ type: string
4759
+ description: Caller-supplied identifier for cross-system correlation.
4760
+ examples:
4761
+ - ext-cache-12345
4762
+ LookupCache:
4763
+ type: object
4764
+ required:
4765
+ - _id
4766
+ - _userId
4767
+ - createdAt
4768
+ - lastModified
4769
+ description: Lookup cache object as returned by the API.
4770
+ allOf:
4771
+ - $ref: '#/components/schemas/LookupCacheBase'
4772
+ - $ref: '#/components/schemas/ResourceResponse'
4773
+ - type: object
4774
+ properties:
4775
+ _userId:
4776
+ type: string
4777
+ format: objectId
4778
+ readOnly: true
4779
+ x-celigo-refModel: users
4780
+ description: User who owns this lookup cache.
4781
+ examples:
4782
+ - 624cb0346309dc3a543733a2
4783
+ _templateId:
4784
+ type: string
4785
+ format: objectId
4786
+ readOnly: true
4787
+ x-celigo-refModel: templates
4788
+ description: Template this lookup cache was installed from, when it originated from a template.
4789
+ examples:
4790
+ - 6a27a36f9cea1a85192e72cd
4791
+ _sourceId:
4792
+ type: string
4793
+ format: objectId
4794
+ readOnly: true
4795
+ description: Origin resource ID when this cache was created by cloning or installing a template.
4796
+ examples:
4797
+ - 5f8d43a1b9e5a80011a35f2c
4798
+ size:
4799
+ type: integer
4800
+ minimum: 0
4801
+ readOnly: true
4802
+ description: Current size of the cached data in bytes. Maximum 50 MB per cache; 1 GB aggregate per environment.
4803
+ examples:
4804
+ - 0
4805
+ - 1887
4806
+ - 5242880
4807
+ sizeInMB:
4808
+ type: string
4809
+ readOnly: true
4810
+ description: |-
4811
+ Human-readable size rounded up to the nearest 5 MB increment.
4812
+ `"0 MB"` for empty caches, `"<5 MB"` through `"<50 MB"` for
4813
+ non-empty caches, `"50 MB"` at the per-cache cap.
4814
+ examples:
4815
+ - 0 MB
4816
+ - <5 MB
4817
+ - <25 MB
4818
+ - 50 MB
4819
+ x-celigo-ai-guidance:
4820
+ - |-
4821
+ Human-readable representation of the cache size, rounded up to
4822
+ the nearest 5 MB increment. Returns "0 MB" for empty caches,
4823
+ "<N MB" for caches under 50 MB, and "50 MB" for caches at or
4824
+ over the limit.
4825
+ draft:
4826
+ type: boolean
4827
+ readOnly: true
4828
+ description: When true, this cache was created as a draft by the AI-assisted builder and has not yet been confirmed.
4829
+ examples:
4830
+ - true
4831
+ draftExpiresAt:
4832
+ type: string
4833
+ format: date-time
4834
+ readOnly: true
4835
+ description: When the draft cache expires and will be automatically deleted. Only present when `draft` is `true`.
4836
+ examples:
4837
+ - '2026-05-08T17:29:30.726Z'
4838
+ Request-2:
4839
+ type: object
4840
+ description: Writable fields for creating or updating a lookup cache.
4841
+ allOf:
4842
+ - $ref: '#/components/schemas/LookupCacheBase'
4843
+ Topic:
4844
+ type: object
4845
+ description: Topic as returned by the API.
4846
+ required:
4847
+ - _id
4848
+ - _userId
4849
+ - name
4850
+ - retentionMs
4851
+ - createdAt
4852
+ - lastModified
4853
+ properties:
4854
+ _id:
4855
+ type: string
4856
+ format: objectId
4857
+ readOnly: true
4858
+ x-celigo-refModel: topics
4859
+ description: |-
4860
+ Unique identifier for the topic. Topic exports and imports bind to it through
4861
+ `topic._topicId`, and it is the `_topicId` used by every `/v1/topics/{_id}/…` endpoint.
4862
+ examples:
4863
+ - 6ab1f44d7c4b4e699fe84b0a
4864
+ _userId:
4865
+ type: string
4866
+ format: objectId
4867
+ readOnly: true
4868
+ x-celigo-refModel: users
4869
+ description: Account owner whose license and topic quota the topic counts against.
4870
+ examples:
4871
+ - 624cb0346309dc3a543733a2
4872
+ name:
4873
+ type: string
4874
+ maxLength: 200
4875
+ description: |-
4876
+ Display name shown in the UI. Empty when the topic was created without one; not unique, so
4877
+ use `_id` to identify a topic.
4878
+ examples:
4879
+ - orders.created
4880
+ description:
4881
+ type:
4882
+ - string
4883
+ - 'null'
4884
+ maxLength: 5120
4885
+ description: What the topic carries and which flows consume it. Absent or null when never set.
4886
+ examples:
4887
+ - One event per order placed. Consumed by the fulfillment and finance flows.
4888
+ retentionMs:
4889
+ type: integer
4890
+ minimum: 3600000
4891
+ maximum: 7776000000
4892
+ default: 604800000
4893
+ description: |-
4894
+ How long a published message stays readable, in milliseconds, before it is dropped from the
4895
+ stream whether or not a listener consumed it. The week-long default applies when the topic was
4896
+ created without one.
4897
+ examples:
4898
+ - 604800000
4899
+ - 3600000
4900
+ externalId:
4901
+ type: string
4902
+ maxLength: 1024
4903
+ description: |-
4904
+ Caller-chosen key set at creation or update. Present only when it was supplied; filter the
4905
+ list with `GET /v1/topics?externalId=…`.
4906
+ examples:
4907
+ - erp-orders-created
4908
+ _integrationId:
4909
+ type: string
4910
+ format: objectId
4911
+ readOnly: true
4912
+ x-celigo-refModel: integrations
4913
+ description: |-
4914
+ Integration App installation that owns the topic. Present only on topics created by an
4915
+ Integration App; absent on topics you create directly, which are shared across integrations
4916
+ through `_registeredTopicIds` instead.
4917
+ examples:
4918
+ - 6ab1f4a138d7733b45998d99
4919
+ _connectorId:
4920
+ type: string
4921
+ format: objectId
4922
+ readOnly: true
4923
+ x-celigo-refModel: connectors
4924
+ description: |-
4925
+ Integration App (connector) that installed the topic. Present only on connector-managed
4926
+ topics, which the connector — not the user — registers and deregisters.
4927
+ examples:
4928
+ - 5b3c8f9a2e1d4c0011223344
4929
+ _templateId:
4930
+ type: string
4931
+ format: objectId
4932
+ readOnly: true
4933
+ x-celigo-refModel: templates
4934
+ description: Template the topic was installed from. Present only when it originated from a template.
4935
+ examples:
4936
+ - 6a27a36f9cea1a85192e72cd
4937
+ _sourceId:
4938
+ type: string
4939
+ format: objectId
4940
+ readOnly: true
4941
+ description: Topic this one was cloned or installed from. Present only on copies.
4942
+ examples:
4943
+ - 6aab2870265e1cf39fcbee4d
4944
+ draft:
4945
+ type: boolean
4946
+ readOnly: true
4947
+ description: |-
4948
+ When true, the topic was created as a draft by the AI-assisted builder and has not been
4949
+ confirmed yet. Absent on ordinary topics.
4950
+ examples:
4951
+ - true
4952
+ draftExpiresAt:
4953
+ type: string
4954
+ format: date-time
4955
+ readOnly: true
4956
+ description: Timestamp when an unconfirmed draft is deleted automatically. Present only when `draft` is true.
4957
+ examples:
4958
+ - '2026-09-24T03:30:27.432Z'
4959
+ createdAt:
4960
+ type: string
4961
+ format: date-time
4962
+ readOnly: true
4963
+ description: Timestamp when the topic was created.
4964
+ examples:
4965
+ - '2026-09-16T23:38:24.578Z'
4966
+ lastModified:
4967
+ type: string
4968
+ format: date-time
4969
+ readOnly: true
4970
+ description: Timestamp when the topic was last updated by PUT or PATCH.
4971
+ examples:
4972
+ - '2026-09-22T02:51:12.733Z'
4973
+ deletedAt:
4974
+ type: string
4975
+ format: date-time
4976
+ readOnly: true
4977
+ description: |-
4978
+ Timestamp when the topic was moved to the recycle bin. Present only on the copy returned by
4979
+ `GET /v1/recycleBinTTL/topics/{_id}`; deleted topics are hidden from every other endpoint.
4980
+ examples:
4981
+ - '2026-09-22T03:29:50.803Z'
4982
+ Request-3:
4983
+ type: object
4984
+ description: Writable fields for creating or updating a topic.
4985
+ required:
4986
+ - name
4987
+ x-celigo-ai-guidance:
4988
+ - |-
4989
+ Always send name — the server does not enforce it and creates a topic with an empty name
4990
+ that cannot be told apart in lists. On PUT send the whole document: omitted fields are
4991
+ cleared (description, externalId) and retentionMs falls back to seven days.
4992
+ - |-
4993
+ Unknown top-level fields are dropped silently, so a misspelled field does not fail the
4994
+ request — read the response body back to confirm what was stored.
4995
+ properties:
4996
+ name:
4997
+ type: string
4998
+ maxLength: 200
4999
+ description: |-
5000
+ Display name shown in the UI and recorded as `deletedInfo.name` on audit entries. Names need
5001
+ not be unique — exports and imports bind to the topic id, so renaming never breaks a
5002
+ subscription. Script tags and other unsafe HTML are stripped on save.
5003
+ examples:
5004
+ - orders.created
5005
+ description:
5006
+ type:
5007
+ - string
5008
+ - 'null'
5009
+ maxLength: 5120
5010
+ description: |-
5011
+ What the topic carries and which flows consume it. Shown in the UI only; it plays no part in
5012
+ routing. Send null to clear a previous value.
5013
+ examples:
5014
+ - One event per order placed. Consumed by the fulfillment and finance flows.
5015
+ retentionMs:
5016
+ type: integer
5017
+ minimum: 3600000
5018
+ maximum: 7776000000
5019
+ default: 604800000
5020
+ description: |-
5021
+ How long a published message stays readable, in milliseconds, before it is dropped from the
5022
+ stream whether or not a listener consumed it. The default keeps a week of messages, enough for
5023
+ a listener that is paused over a weekend to catch up; the ceiling is further capped by the
5024
+ account license's `topics.retentionCeilingDays`. Changing it on an existing topic
5025
+ re-configures the stream, so messages older than the new window are no longer retained.
5026
+ examples:
5027
+ - 604800000
5028
+ - 3600000
5029
+ x-celigo-ai-guidance:
5030
+ - |-
5031
+ A value above the account's ceiling fails with 422 `topics_retention_exceeds_entitlement`;
5032
+ read the ceiling from `GET /v1/licenses` (`topics.retentionCeilingDays`) before asking for
5033
+ long retention. Below one hour fails with 422 `min`.
5034
+ externalId:
5035
+ type: string
5036
+ maxLength: 1024
5037
+ description: |-
5038
+ Caller-chosen key for finding the topic again without storing its id — filter the list with
5039
+ `GET /v1/topics?externalId=…`. Integration Apps use it to locate a topic across installs.
5040
+ examples:
5041
+ - erp-orders-created
5042
+ __integrationIds:
5043
+ type: array
5044
+ maxItems: 100
5045
+ items:
5046
+ type: string
5047
+ format: objectId
5048
+ x-celigo-refModel: integrations
5049
+ description: |-
5050
+ Integrations to register the new topic on immediately after creation, so flows in those
5051
+ integrations can subscribe to it. Honored only on `POST /v1/topics` (ignored on PUT), never
5052
+ persisted, and not echoed back. Ids are validated before the topic is saved; registration
5053
+ runs after the save, and per-integration failures are reported in
5054
+ `__failedIntegrationRegistrations` on the 201 response without rolling back the new topic.
5055
+ x-celigo-ai-guidance:
5056
+ - |-
5057
+ Invalid input rejects the whole request without creating the topic: a non-array value or
5058
+ duplicate ids fail with 422 `invalid_request`, an element that is not a valid ObjectId fails
5059
+ with 422 `invalid_ref` naming `__integrationIds[i]`, and an integration that does not exist
5060
+ in the account fails with 404.
5061
+ - To register an existing topic instead, use `PUT /v1/integrations/{_id}/topics/{_topicId}/register`.
5062
+ examples:
5063
+ - - 6ab1f4a138d7733b45998d99
4257
5064
  ILMIgnoreResponse:
4258
5065
  type: object
4259
5066
  description: |-
@@ -4300,6 +5107,13 @@ components:
4300
5107
  description: Display name of the dependent resource.
4301
5108
  examples:
4302
5109
  - Import Orders to NetSuite
5110
+ type:
5111
+ type: string
5112
+ description: |-
5113
+ Sub-type of the dependent resource when its collection distinguishes one, such as
5114
+ `stream` for a listener export. Only present for resource types that carry a `type`.
5115
+ examples:
5116
+ - stream
4303
5117
  paths:
4304
5118
  type: array
4305
5119
  description: |-