@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.
package/dist/iclient.yml CHANGED
@@ -25,7 +25,8 @@ tags:
25
25
 
26
26
  Each iClient targets one `provider` — the provider determines
27
27
  which credential sub-object (`oauth2`, `netsuite`, `salesforce`,
28
- `ebay`, `amazonmws`, `azureserviceprincipal`) is required.
28
+ `ebay`, `amazonmws`, `azureserviceprincipal`, `googleserviceaccount`,
29
+ `awsIam`) is required.
29
30
  Secrets are stored encrypted and returned masked as `"******"`.
30
31
 
31
32
  ## iClient schema
@@ -163,6 +164,14 @@ paths:
163
164
  clientId: a1b2c3d4-e5f6-7890-abcd-ef1234567890
164
165
  clientSecret: my-client-secret
165
166
  tenantId: f0e1d2c3-b4a5-6789-0abc-def012345678
167
+ awsIam:
168
+ summary: AWS IAM role for HTTP awsiam connections
169
+ value:
170
+ name: AWS IAM - orders account
171
+ provider: awsIam
172
+ awsIam:
173
+ externalId: celigo-7f3a9c2e1b
174
+ roleArn: arn:aws:iam::123456789012:role/celigo-http-adaptor-orders
166
175
  responses:
167
176
  '201':
168
177
  description: iClient created.
@@ -192,6 +201,20 @@ paths:
192
201
  - example.com
193
202
  grantType: clientcredentials
194
203
  useNewAuthFailSchema: true
204
+ awsIam:
205
+ summary: Created AWS IAM iClient (role fields returned in clear)
206
+ value:
207
+ _id: 6ab1f51c7b3d01a908423f0a
208
+ name: AWS IAM - orders account
209
+ published: false
210
+ lastModified: '2026-09-21T20:25:16.371Z'
211
+ provider: awsIam
212
+ enableJWT: false
213
+ enableIClientReferences: false
214
+ formType: http
215
+ awsIam:
216
+ externalId: celigo-7f3a9c2e1b
217
+ roleArn: arn:aws:iam::123456789012:role/celigo-http-adaptor-orders
195
218
  '400':
196
219
  $ref: '#/components/responses/400-bad-request'
197
220
  '401':
@@ -199,7 +222,38 @@ paths:
199
222
  '403':
200
223
  $ref: '#/components/responses/403-forbidden'
201
224
  '422':
202
- $ref: '#/components/responses/422-unprocessable-entity'
225
+ description: |-
226
+ Unprocessable entity. The body was well-formed but the provider's credential
227
+ sub-object is missing or invalid.
228
+ content:
229
+ application/json:
230
+ schema:
231
+ $ref: '#/components/schemas/Error'
232
+ examples:
233
+ awsIamSubSchemaMissing:
234
+ summary: awsIam provider without the awsIam object
235
+ value:
236
+ errors:
237
+ - field: awsIam
238
+ code: missing_required_field
239
+ message: The awsIam sub-schema is required
240
+ - field: awsIam.externalId
241
+ code: missing_required_field
242
+ message: 'Expected field: externalId to be present.'
243
+ awsIamExternalIdInvalid:
244
+ summary: externalId outside the allowed character set
245
+ value:
246
+ errors:
247
+ - field: awsIam.externalId
248
+ code: invalid_field_value
249
+ message: externalId must be 2-1224 characters and contain only alphanumeric and +=,.@:/_- characters.
250
+ awsIamRoleArnInvalid:
251
+ summary: roleArn is not an IAM role ARN
252
+ value:
253
+ errors:
254
+ - field: awsIam.roleArn
255
+ code: invalid_field_value
256
+ message: roleArn must match format arn:aws:iam::{account-id}:role/[path/]{role-name}.
203
257
  /v1/iclients/{_id}:
204
258
  get:
205
259
  x-internal: false
@@ -3947,23 +4001,44 @@ components:
3947
4001
  awsIam:
3948
4002
  type: object
3949
4003
  description: |-
3950
- AWS IAM cross-account role credentials. Required when `provider` is `awsIam`.
3951
- Celigo assumes `roleArn` using `externalId` as the trust-policy external ID.
4004
+ AWS IAM cross-account role credentials. Required when `provider` is `awsIam`
4005
+ (omitting the object fails with 422 `missing_required_field` "The awsIam sub-schema is
4006
+ required"). Celigo assumes `roleArn` using `externalId` as the trust-policy external ID.
4007
+ The iClient itself saves with `externalId` alone; the connection that references it
4008
+ adds its own rules on `roleArn` (see that field).
3952
4009
  required:
3953
4010
  - externalId
3954
4011
  properties:
3955
4012
  externalId:
3956
4013
  type: string
4014
+ minLength: 2
4015
+ maxLength: 1224
4016
+ pattern: ^[a-zA-Z0-9+=,.@:/_-]+$
3957
4017
  description: |-
3958
4018
  External ID Celigo presents when assuming the role; must match the
3959
- `sts:ExternalId` condition in the role's trust policy.
4019
+ `sts:ExternalId` condition in the role's trust policy. Fixed at creation: a `PUT`
4020
+ that sends a different value keeps the stored one. A value outside the allowed
4021
+ character set or length fails with 422 `invalid_field_value`.
3960
4022
  examples:
3961
4023
  - celigo-7f3a9c2e1b
3962
4024
  roleArn:
3963
4025
  type: string
3964
- description: ARN of the AWS IAM role to assume for cross-account access.
4026
+ pattern: ^arn:[a-z-]+:iam::\d{12}:role/[A-Za-z0-9+=,.@_/-]{1,576}$
4027
+ description: |-
4028
+ ARN of the AWS IAM role to assume for cross-account access. Optional on the iClient
4029
+ (a malformed ARN fails with 422 `invalid_field_value`), but an HTTP connection with
4030
+ `auth.type` `awsiam` cannot be saved against this iClient until it is set and its
4031
+ role name starts with `celigo-http-adaptor-`.
4032
+ x-celigo-ai-guidance:
4033
+ - |-
4034
+ For an HTTP connection using auth.type "awsiam", name the role
4035
+ "celigo-http-adaptor-<anything>" — the connection save fails with 422
4036
+ invalid_field_value "HTTP IAM Role authentication requires awsIam.roleArn to
4037
+ reference a role name starting with celigo-http-adaptor-." otherwise, and with 422
4038
+ missing_required_field "Expected field: awsIam.roleArn to be present." while roleArn
4039
+ is unset. The prefix rule is specific to HTTP awsiam connections.
3965
4040
  examples:
3966
- - arn:aws:iam::123456789012:role/celigo-integration
4041
+ - arn:aws:iam::123456789012:role/celigo-http-adaptor-orders
3967
4042
  jwt:
3968
4043
  type: object
3969
4044
  description: |-
@@ -4078,6 +4153,15 @@ components:
4078
4153
  isSecretBase64Encoded:
4079
4154
  type: boolean
4080
4155
  description: When true, the `secret` value is Base64-encoded.
4156
+ if:
4157
+ properties:
4158
+ provider:
4159
+ const: awsIam
4160
+ required:
4161
+ - provider
4162
+ then:
4163
+ required:
4164
+ - awsIam
4081
4165
  ResourceResponse:
4082
4166
  type: object
4083
4167
  description: Response
@@ -4199,7 +4283,8 @@ components:
4199
4283
  description: |-
4200
4284
  iClient configuration. The shape varies by `provider` — each provider
4201
4285
  requires its own credential sub-object (`oauth2`, `netsuite`,
4202
- `salesforce`, `ebay`, `amazonmws`, `azureserviceprincipal`).
4286
+ `salesforce`, `ebay`, `amazonmws`, `azureserviceprincipal`,
4287
+ `googleserviceaccount`, `awsIam`).
4203
4288
  For `custom_oauth2`, credentials go in the `oauth2` sub-object.
4204
4289
  Secrets (`clientSecret`, `privateKey`, etc.) are returned masked
4205
4290
  as `"******"`. On update, re-send that masked value to keep the
@@ -4262,6 +4347,13 @@ components:
4262
4347
  description: Display name of the dependent resource.
4263
4348
  examples:
4264
4349
  - Import Orders to NetSuite
4350
+ type:
4351
+ type: string
4352
+ description: |-
4353
+ Sub-type of the dependent resource when its collection distinguishes one, such as
4354
+ `stream` for a listener export. Only present for resource types that carry a `type`.
4355
+ examples:
4356
+ - stream
4265
4357
  paths:
4266
4358
  type: array
4267
4359
  description: |-
@@ -4385,9 +4477,9 @@ components:
4385
4477
  errors:
4386
4478
  - code: forbidden
4387
4479
  message: You do not have permission to access this resource.
4388
- 422-unprocessable-entity:
4480
+ 404-not-found:
4389
4481
  description: |
4390
- Unprocessable entity. The request was well-formed but was unable to be followed due to semantic errors.
4482
+ Not found. The requested resource does not exist or is not visible to the caller.
4391
4483
  content:
4392
4484
  application/json:
4393
4485
  schema:
@@ -4396,11 +4488,11 @@ components:
4396
4488
  default:
4397
4489
  value:
4398
4490
  errors:
4399
- - code: unprocessable_entity
4400
- message: The request could not be processed due to a semantic error.
4401
- 404-not-found:
4491
+ - code: not_found
4492
+ message: The requested resource was not found.
4493
+ 422-unprocessable-entity:
4402
4494
  description: |
4403
- Not found. The requested resource does not exist or is not visible to the caller.
4495
+ Unprocessable entity. The request was well-formed but was unable to be followed due to semantic errors.
4404
4496
  content:
4405
4497
  application/json:
4406
4498
  schema:
@@ -4409,7 +4501,7 @@ components:
4409
4501
  default:
4410
4502
  value:
4411
4503
  errors:
4412
- - code: not_found
4413
- message: The requested resource was not found.
4504
+ - code: unprocessable_entity
4505
+ message: The request could not be processed due to a semantic error.
4414
4506
  x-enable-proxy: true
4415
4507
  x-internal: false