infrawrench-sdk 1.82.0 → 1.84.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 93dac4c6860e3b35f999f9e108e55730b71187a2d9505d3427f1b5f53cdf8368
4
- data.tar.gz: f236a69cc07c82ebddaeb2c4c0d7db8f93ee26a64c16f1eab3f65b5028dcb644
3
+ metadata.gz: 7f7d0e7354a049832f795c911e497f51c083ca7262cca9eece9e4b19b1f3582b
4
+ data.tar.gz: 36b41d8fb492a4ae3bc4cfc2cb4afe5315962149d23b4d870220fa4e79a064a0
5
5
  SHA512:
6
- metadata.gz: d9e83207d048d86fcb1c9eb99c33164afa713ebd7e9bab0acd67424174421d867939e18cbc309639af89345c4efa3d95e311f37b3450e87c6f29d37522361734
7
- data.tar.gz: c96308af83e27a1307f87858b98cc787f1ae97f19084d5d8b8fd6aaf35689aa6056e9a9a1802ad193ef43441f46db37a726ffa7025f85adaf4b604326bf92be3
6
+ metadata.gz: 93775c1595b4ac80df8a843beaad56953cbf1af9379fe0941c77842c1f5e25443db9cafc46ab6532023ad7c1572f9f0b29ee8af27c75c4864d04bcaf26d39506
7
+ data.tar.gz: 2d076f43602ac56f4d59c3665f3f6e1d54235de2b8d1bbec4f5c7df0dc21db413fc4a6d597f4a5d78bc8f64866372e037d9c0e877b68cf931057ac3fbb2effcc
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # infrawrench-sdk
2
2
 
3
- Generated Ruby client for the Infrawrench API (API version `1.82.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `1.84.0`).
4
4
 
5
5
  **Do not edit this gem by hand** — it is regenerated from `openapi.json` and is
6
6
  not checked into the repository. Run
@@ -41,7 +41,7 @@ Every method takes an optional trailing `request_options:` hash (`:headers`,
41
41
  Responses are the plain `Hash`/`Array` that `JSON.parse` returns, with String
42
42
  keys spelled exactly as the wire spells them. There are no model classes — see
43
43
  [`sig/infrawrench/sdk.rbs`](./sig/infrawrench/sdk.rbs) for the shape of every one of the
44
- 1243 schemas, as RBS type aliases that steep and TypeProf can read.
44
+ 1262 schemas, as RBS type aliases that steep and TypeProf can read.
45
45
 
46
46
  Non-2xx responses raise `Infrawrench::ApiError`, which carries `#status`,
47
47
  the parsed `#body`, and the machine-readable `#code` when the API sends one —
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.82.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.84.0 | MIT | Copyright (c) 2026 Infrawrench LLC
4
4
  # https://github.com/Infrawrench/Infrawrench
5
5
  #
6
- # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.82.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.84.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -17,8 +17,8 @@ require_relative "lib/infrawrench/version"
17
17
  Gem::Specification.new do |spec|
18
18
  spec.name = "infrawrench-sdk"
19
19
  spec.version = Infrawrench::VERSION
20
- spec.summary = "Generated Ruby client for the Infrawrench API (v1.82.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v1.82.0). Covers the published API surface only — operations marked x-internal in the spec are not generated. No runtime dependencies."
20
+ spec.summary = "Generated Ruby client for the Infrawrench API (v1.84.0)."
21
+ spec.description = "Generated Ruby client for the Infrawrench API (v1.84.0). Covers the published API surface only — operations marked x-internal in the spec are not generated. No runtime dependencies."
22
22
  spec.authors = ["Infrawrench LLC", "Astrid Gealer"]
23
23
  spec.email = ["astrid@infrawrench.com"]
24
24
  spec.homepage = "https://infrawrench.com/docs/team-and-billing/client-sdks"
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.82.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.84.0 | MIT | Copyright (c) 2026 Infrawrench LLC
4
4
  # https://github.com/Infrawrench/Infrawrench
5
5
  #
6
- # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.82.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.84.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1061,6 +1061,404 @@ module Infrawrench
1061
1061
  end
1062
1062
  end
1063
1063
 
1064
+ # `client.agent_link.agents`
1065
+ class AgentLinkAgentsNamespace
1066
+ # @api private
1067
+ # @param transport [Transport]
1068
+ def initialize(transport)
1069
+ @transport = transport
1070
+ end
1071
+
1072
+ # Create an agent with its own `iwa_` credential
1073
+ #
1074
+ # POST /api/agent-link/agents
1075
+ #
1076
+ # Raises on 400: `scope_not_allowed` (with `scopes`), `invalid_provider`, or
1077
+ # malformed
1078
+ #
1079
+ # Raises on 401: Unknown or revoked link credential
1080
+ #
1081
+ # Raises on 403: The approving person no longer exists
1082
+ #
1083
+ # Raises on 409: `exists`: a live agent with this `externalId` (with
1084
+ # `agentId`)
1085
+ #
1086
+ # @param body [Hash, nil] Request body, shaped as `CreatePlatformAgent`.
1087
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1088
+ # @return [Hash] Parsed JSON, shaped as `PlatformAgentWithCredential` — see
1089
+ # `sig/infrawrench/sdk.rbs`.
1090
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1091
+ def create(body: nil, request_options: nil)
1092
+ @transport.request(
1093
+ http_method: "POST",
1094
+ path: "/api/agent-link/agents",
1095
+ body: body,
1096
+ request_options: request_options
1097
+ )
1098
+ end
1099
+
1100
+ # Revoke an agent (idempotent; the row is kept for the audit log)
1101
+ #
1102
+ # DELETE /api/agent-link/agents/{id}
1103
+ #
1104
+ # Raises on 401: Unknown or revoked link credential
1105
+ #
1106
+ # Raises on 404: Not an agent of this link
1107
+ #
1108
+ # @param id [String]
1109
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1110
+ # @return [Hash] Parsed JSON, shaped as `Ok` — see `sig/infrawrench/sdk.rbs`.
1111
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1112
+ def delete(id:, request_options: nil)
1113
+ @transport.request(
1114
+ http_method: "DELETE",
1115
+ path: "/api/agent-link/agents/{id}",
1116
+ path_params: { "id" => id },
1117
+ request_options: request_options
1118
+ )
1119
+ end
1120
+
1121
+ # List the agents this link made, newest first, revoked included
1122
+ #
1123
+ # GET /api/agent-link/agents
1124
+ #
1125
+ # Raises on 401: Unknown or revoked link credential
1126
+ #
1127
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1128
+ # @return [Array<Hash>] Parsed JSON, shaped as `Array<PlatformAgent>` — see
1129
+ # `sig/infrawrench/sdk.rbs`.
1130
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1131
+ def list(request_options: nil)
1132
+ @transport.request(
1133
+ http_method: "GET",
1134
+ path: "/api/agent-link/agents",
1135
+ request_options: request_options
1136
+ )
1137
+ end
1138
+
1139
+ # Replace an agent's credential; the old one stops working immediately
1140
+ #
1141
+ # POST /api/agent-link/agents/{id}/rotate
1142
+ #
1143
+ # Raises on 401: Unknown or revoked link credential
1144
+ #
1145
+ # Raises on 404: Not an agent of this link, or revoked
1146
+ #
1147
+ # @param id [String]
1148
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1149
+ # @return [Hash] Parsed JSON, shaped as `PlatformAgentWithCredential` — see
1150
+ # `sig/infrawrench/sdk.rbs`.
1151
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1152
+ def rotate(id:, request_options: nil)
1153
+ @transport.request(
1154
+ http_method: "POST",
1155
+ path: "/api/agent-link/agents/{id}/rotate",
1156
+ path_params: { "id" => id },
1157
+ request_options: request_options
1158
+ )
1159
+ end
1160
+
1161
+ # Edit an agent's label, scopes or providers
1162
+ #
1163
+ # PATCH /api/agent-link/agents/{id}
1164
+ #
1165
+ # Raises on 400: `scope_not_allowed`, `invalid_provider`, or malformed
1166
+ #
1167
+ # Raises on 401: Unknown or revoked link credential
1168
+ #
1169
+ # Raises on 404: Not an agent of this link, or revoked
1170
+ #
1171
+ # @param id [String]
1172
+ # @param body [Hash, nil] Request body, shaped as `PatchPlatformAgent`.
1173
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1174
+ # @return [Hash] Parsed JSON, shaped as `PlatformAgentEnvelope` — see
1175
+ # `sig/infrawrench/sdk.rbs`.
1176
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1177
+ def update(id:, body: nil, request_options: nil)
1178
+ @transport.request(
1179
+ http_method: "PATCH",
1180
+ path: "/api/agent-link/agents/{id}",
1181
+ path_params: { "id" => id },
1182
+ body: body,
1183
+ request_options: request_options
1184
+ )
1185
+ end
1186
+ end
1187
+
1188
+ # `client.agent_link`
1189
+ class AgentLinkNamespace
1190
+ # @return [AgentLinkAgentsNamespace] `client.agent_link.agents`
1191
+ attr_reader :agents
1192
+
1193
+ # @api private
1194
+ # @param transport [Transport]
1195
+ def initialize(transport)
1196
+ @transport = transport
1197
+ @agents = AgentLinkAgentsNamespace.new(@transport)
1198
+ end
1199
+
1200
+ # Unlink, revoking every agent this link made
1201
+ #
1202
+ # DELETE /api/agent-link
1203
+ #
1204
+ # Raises on 401: Unknown or revoked link credential
1205
+ #
1206
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1207
+ # @return [Hash] Parsed JSON, shaped as `Ok` — see `sig/infrawrench/sdk.rbs`.
1208
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1209
+ def delete(request_options: nil)
1210
+ @transport.request(
1211
+ http_method: "DELETE",
1212
+ path: "/api/agent-link",
1213
+ request_options: request_options
1214
+ )
1215
+ end
1216
+
1217
+ # Describe this link
1218
+ #
1219
+ # GET /api/agent-link
1220
+ #
1221
+ # Raises on 401: Unknown or revoked link credential
1222
+ #
1223
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1224
+ # @return [Hash] Parsed JSON, shaped as `AgentLinkInfo` — see `sig/infrawrench/sdk.rbs`.
1225
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1226
+ def get(request_options: nil)
1227
+ @transport.request(
1228
+ http_method: "GET",
1229
+ path: "/api/agent-link",
1230
+ request_options: request_options
1231
+ )
1232
+ end
1233
+ end
1234
+
1235
+ # `client.agent_links.requests`
1236
+ class AgentLinksRequestsNamespace
1237
+ # @api private
1238
+ # @param transport [Transport]
1239
+ def initialize(transport)
1240
+ @transport = transport
1241
+ end
1242
+
1243
+ # Approve a link request into an organization
1244
+ #
1245
+ # Session only. Needs `team:invite` in the organization; `scopes` (the
1246
+ # ceiling) must be within what you hold there, break-glass elevation
1247
+ # excluded, minus permissions no agent may hold.
1248
+ #
1249
+ # POST /api/agent-links/requests/approve
1250
+ #
1251
+ # Raises on 400: Bad code, or `scope_not_allowed`
1252
+ #
1253
+ # Raises on 401: Unauthenticated
1254
+ #
1255
+ # Raises on 403: You lack `team:invite` there
1256
+ #
1257
+ # Raises on 409: Already decided or expired
1258
+ #
1259
+ # Raises on 429: Too many attempts
1260
+ #
1261
+ # @param body [Hash, nil] Request body, shaped as `AgentLinkApprove`.
1262
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1263
+ # @return [Hash] Parsed JSON, shaped as `Ok` — see `sig/infrawrench/sdk.rbs`.
1264
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1265
+ def approve(body: nil, request_options: nil)
1266
+ @transport.request(
1267
+ http_method: "POST",
1268
+ path: "/api/agent-links/requests/approve",
1269
+ body: body,
1270
+ request_options: request_options
1271
+ )
1272
+ end
1273
+
1274
+ # Start linking a platform (device flow)
1275
+ #
1276
+ # Unauthenticated, rate limited per source address.
1277
+ #
1278
+ # POST /api/agent-links/requests
1279
+ #
1280
+ # Raises on 400: Malformed platform, label or scopes
1281
+ #
1282
+ # Raises on 429: Too many requests from this address
1283
+ #
1284
+ # @param body [Hash, nil] Request body, shaped as `AgentLinkRequest`.
1285
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1286
+ # @return [Hash] Parsed JSON, shaped as `AgentLinkRequestStarted` — see
1287
+ # `sig/infrawrench/sdk.rbs`.
1288
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1289
+ def create(body: nil, request_options: nil)
1290
+ @transport.request(
1291
+ http_method: "POST",
1292
+ path: "/api/agent-links/requests",
1293
+ body: body,
1294
+ request_options: request_options
1295
+ )
1296
+ end
1297
+
1298
+ # Deny a link request
1299
+ #
1300
+ # POST /api/agent-links/requests/deny
1301
+ #
1302
+ # Raises on 400: Bad code
1303
+ #
1304
+ # Raises on 401: Unauthenticated
1305
+ #
1306
+ # @param body [Hash, nil] Request body, shaped as `AgentLinkCode`.
1307
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1308
+ # @return [Hash] Parsed JSON, shaped as `Ok` — see `sig/infrawrench/sdk.rbs`.
1309
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1310
+ def deny(body: nil, request_options: nil)
1311
+ @transport.request(
1312
+ http_method: "POST",
1313
+ path: "/api/agent-links/requests/deny",
1314
+ body: body,
1315
+ request_options: request_options
1316
+ )
1317
+ end
1318
+
1319
+ # Resolve a user code for the approval page
1320
+ #
1321
+ # Session only. A POST with the code in the body rather than a query string:
1322
+ # the code is a live bearer secret. Rate limited per user.
1323
+ #
1324
+ # POST /api/agent-links/requests/lookup
1325
+ #
1326
+ # Raises on 400: Malformed, unknown or expired code
1327
+ #
1328
+ # Raises on 401: Unauthenticated
1329
+ #
1330
+ # Raises on 429: Too many attempts
1331
+ #
1332
+ # @param body [Hash, nil] Request body, shaped as `AgentLinkCode`.
1333
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1334
+ # @return [Hash] Parsed JSON, shaped as `AgentLinkLookup` — see `sig/infrawrench/sdk.rbs`.
1335
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1336
+ def lookup(body: nil, request_options: nil)
1337
+ @transport.request(
1338
+ http_method: "POST",
1339
+ path: "/api/agent-links/requests/lookup",
1340
+ body: body,
1341
+ request_options: request_options
1342
+ )
1343
+ end
1344
+
1345
+ # Poll a link request
1346
+ #
1347
+ # POST /api/agent-links/requests/token
1348
+ #
1349
+ # Raises on 429: Polling faster than `interval`: `{ error: "slow_down" }`
1350
+ #
1351
+ # @param body [Hash, nil] Request body, shaped as `Hash`.
1352
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1353
+ # @return [Hash] Parsed JSON, shaped as `AgentLinkPoll` — see `sig/infrawrench/sdk.rbs`.
1354
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1355
+ def token(body: nil, request_options: nil)
1356
+ @transport.request(
1357
+ http_method: "POST",
1358
+ path: "/api/agent-links/requests/token",
1359
+ body: body,
1360
+ request_options: request_options
1361
+ )
1362
+ end
1363
+ end
1364
+
1365
+ # `client.agent_links`
1366
+ class AgentLinksNamespace
1367
+ # @return [AgentLinksRequestsNamespace] `client.agent_links.requests`
1368
+ attr_reader :requests
1369
+
1370
+ # @api private
1371
+ # @param transport [Transport]
1372
+ def initialize(transport)
1373
+ @transport = transport
1374
+ @requests = AgentLinksRequestsNamespace.new(@transport)
1375
+ end
1376
+
1377
+ # Revoke a platform link and every agent it made
1378
+ #
1379
+ # Closed to agent credentials.
1380
+ #
1381
+ # _Requires permission: `team:invite`._
1382
+ #
1383
+ # DELETE /api/org/{orgId}/agent-links/{id}
1384
+ #
1385
+ # Raises on 400: Bad request
1386
+ #
1387
+ # Raises on 401: Unauthenticated
1388
+ #
1389
+ # Raises on 402: Payment required: the organization's plan does not include
1390
+ # this
1391
+ #
1392
+ # Raises on 403: Forbidden
1393
+ #
1394
+ # Raises on 404: Not found
1395
+ #
1396
+ # Raises on 409: Conflict
1397
+ #
1398
+ # Raises on 500: Server error
1399
+ #
1400
+ # Raises on 503: A backing service this endpoint depends on is not available
1401
+ #
1402
+ # Raises on reauth: Recent sign-in required. Send the user through sign-in
1403
+ # again and retry; the request itself was well-formed.
1404
+ #
1405
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1406
+ # constructed with.
1407
+ # @param id [String]
1408
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1409
+ # @return [Hash] Parsed JSON, shaped as `AgentLinkRevoked` — see `sig/infrawrench/sdk.rbs`.
1410
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1411
+ def delete(id:, org_id: nil, request_options: nil)
1412
+ @transport.request(
1413
+ http_method: "DELETE",
1414
+ path: "/api/org/{orgId}/agent-links/{id}",
1415
+ path_params: { "orgId" => org_id, "id" => id },
1416
+ request_options: request_options
1417
+ )
1418
+ end
1419
+
1420
+ # List the platforms linked to this organization
1421
+ #
1422
+ # _Requires permission: `team:read`._
1423
+ #
1424
+ # GET /api/org/{orgId}/agent-links
1425
+ #
1426
+ # Raises on 400: Bad request
1427
+ #
1428
+ # Raises on 401: Unauthenticated
1429
+ #
1430
+ # Raises on 402: Payment required: the organization's plan does not include
1431
+ # this
1432
+ #
1433
+ # Raises on 403: Forbidden
1434
+ #
1435
+ # Raises on 404: Not found
1436
+ #
1437
+ # Raises on 409: Conflict
1438
+ #
1439
+ # Raises on 500: Server error
1440
+ #
1441
+ # Raises on 503: A backing service this endpoint depends on is not available
1442
+ #
1443
+ # Raises on reauth: Recent sign-in required. Send the user through sign-in
1444
+ # again and retry; the request itself was well-formed.
1445
+ #
1446
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1447
+ # constructed with.
1448
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1449
+ # @return [Array<Hash>] Parsed JSON, shaped as `Array<AgentLinkSummary>` — see
1450
+ # `sig/infrawrench/sdk.rbs`.
1451
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1452
+ def list(org_id: nil, request_options: nil)
1453
+ @transport.request(
1454
+ http_method: "GET",
1455
+ path: "/api/org/{orgId}/agent-links",
1456
+ path_params: { "orgId" => org_id },
1457
+ request_options: request_options
1458
+ )
1459
+ end
1460
+ end
1461
+
1064
1462
  # `client.agent_registrations`
1065
1463
  class AgentRegistrationsNamespace
1066
1464
  # @api private
@@ -1074,6 +1472,8 @@ module Infrawrench
1074
1472
  # The row is kept so audit entries naming this agent stay legible; its
1075
1473
  # credential stops working on the next request. Closed to agent credentials.
1076
1474
  #
1475
+ # _Requires permission: `team:invite`._
1476
+ #
1077
1477
  # DELETE /api/org/{orgId}/agent-registrations/{id}
1078
1478
  #
1079
1479
  # Raises on 400: Bad request
@@ -1113,6 +1513,8 @@ module Infrawrench
1113
1513
 
1114
1514
  # List the agent registrations acting in this organization
1115
1515
  #
1516
+ # _Requires permission: `team:read`._
1517
+ #
1116
1518
  # GET /api/org/{orgId}/agent-registrations
1117
1519
  #
1118
1520
  # Raises on 400: Bad request
@@ -1149,6 +1551,54 @@ module Infrawrench
1149
1551
  request_options: request_options
1150
1552
  )
1151
1553
  end
1554
+
1555
+ # Edit a platform agent's label, scopes or providers
1556
+ #
1557
+ # Platform agents only (`kind: platform`). Scopes must be within the link's
1558
+ # current ceiling, and you may only add scopes you hold yourself. Closed to
1559
+ # agent credentials.
1560
+ #
1561
+ # _Requires permission: `team:invite`._
1562
+ #
1563
+ # PATCH /api/org/{orgId}/agent-registrations/{id}
1564
+ #
1565
+ # Raises on 400: Bad request
1566
+ #
1567
+ # Raises on 401: Unauthenticated
1568
+ #
1569
+ # Raises on 402: Payment required: the organization's plan does not include
1570
+ # this
1571
+ #
1572
+ # Raises on 403: Forbidden
1573
+ #
1574
+ # Raises on 404: Not found
1575
+ #
1576
+ # Raises on 409: The agent or its link has been revoked
1577
+ #
1578
+ # Raises on 500: Server error
1579
+ #
1580
+ # Raises on 503: A backing service this endpoint depends on is not available
1581
+ #
1582
+ # Raises on reauth: Recent sign-in required. Send the user through sign-in
1583
+ # again and retry; the request itself was well-formed.
1584
+ #
1585
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1586
+ # constructed with.
1587
+ # @param id [String]
1588
+ # @param body [Hash, nil] Request body, shaped as `PatchPlatformAgent`.
1589
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1590
+ # @return [Hash] Parsed JSON, shaped as `PlatformAgentEnvelope` — see
1591
+ # `sig/infrawrench/sdk.rbs`.
1592
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1593
+ def update(id:, org_id: nil, body: nil, request_options: nil)
1594
+ @transport.request(
1595
+ http_method: "PATCH",
1596
+ path: "/api/org/{orgId}/agent-registrations/{id}",
1597
+ path_params: { "orgId" => org_id, "id" => id },
1598
+ body: body,
1599
+ request_options: request_options
1600
+ )
1601
+ end
1152
1602
  end
1153
1603
 
1154
1604
  # `client.agents.sessions`
@@ -1167,6 +1617,8 @@ module Infrawrench
1167
1617
  #
1168
1618
  # Raises on 400: Bad request
1169
1619
  #
1620
+ # Raises on 403: Forbidden
1621
+ #
1170
1622
  # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1171
1623
  # constructed with.
1172
1624
  # @param body [Hash] Request body, shaped as `CreateAgentSession`.
@@ -1364,6 +1816,29 @@ module Infrawrench
1364
1816
  request_options: request_options
1365
1817
  )
1366
1818
  end
1819
+
1820
+ # What you could give a Nibblets session's agent link
1821
+ #
1822
+ # `scopes` is null when you cannot approve links here (no `team:invite`).
1823
+ #
1824
+ # _Requires permission: `resources:write`._
1825
+ #
1826
+ # GET /api/org/{orgId}/agents/link-scopes
1827
+ #
1828
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1829
+ # constructed with.
1830
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1831
+ # @return [Hash] Parsed JSON, shaped as `AgentLinkableScopes` — see
1832
+ # `sig/infrawrench/sdk.rbs`.
1833
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1834
+ def link_scopes(org_id: nil, request_options: nil)
1835
+ @transport.request(
1836
+ http_method: "GET",
1837
+ path: "/api/org/{orgId}/agents/link-scopes",
1838
+ path_params: { "orgId" => org_id },
1839
+ request_options: request_options
1840
+ )
1841
+ end
1367
1842
  end
1368
1843
 
1369
1844
  # `client.ai_attribution.dimensions`
@@ -27449,6 +27924,10 @@ module Infrawrench
27449
27924
  attr_reader :accounts
27450
27925
  # @return [AgentNamespace] `client.agent`
27451
27926
  attr_reader :agent
27927
+ # @return [AgentLinkNamespace] `client.agent_link`
27928
+ attr_reader :agent_link
27929
+ # @return [AgentLinksNamespace] `client.agent_links`
27930
+ attr_reader :agent_links
27452
27931
  # @return [AgentRegistrationsNamespace] `client.agent_registrations`
27453
27932
  attr_reader :agent_registrations
27454
27933
  # @return [AgentsNamespace] `client.agents`
@@ -27719,6 +28198,8 @@ module Infrawrench
27719
28198
  @access_review = AccessReviewNamespace.new(@transport)
27720
28199
  @accounts = AccountsNamespace.new(@transport)
27721
28200
  @agent = AgentNamespace.new(@transport)
28201
+ @agent_link = AgentLinkNamespace.new(@transport)
28202
+ @agent_links = AgentLinksNamespace.new(@transport)
27722
28203
  @agent_registrations = AgentRegistrationsNamespace.new(@transport)
27723
28204
  @agents = AgentsNamespace.new(@transport)
27724
28205
  @ai_attribution = AiAttributionNamespace.new(@transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.82.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.84.0 | MIT | Copyright (c) 2026 Infrawrench LLC
4
4
  # https://github.com/Infrawrench/Infrawrench
5
5
  #
6
- # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.82.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.84.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.82.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.84.0 | MIT | Copyright (c) 2026 Infrawrench LLC
4
4
  # https://github.com/Infrawrench/Infrawrench
5
5
  #
6
- # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.82.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.84.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.82.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.84.0 | MIT | Copyright (c) 2026 Infrawrench LLC
4
4
  # https://github.com/Infrawrench/Infrawrench
5
5
  #
6
- # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.82.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.84.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -15,5 +15,5 @@
15
15
  # Kept in its own file so the gemspec can read the version without loading the
16
16
  # client — a gemspec that pulls in net/http is a gemspec that can fail to parse.
17
17
  module Infrawrench
18
- VERSION = "1.82.0"
18
+ VERSION = "1.84.0"
19
19
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.82.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.84.0 | MIT | Copyright (c) 2026 Infrawrench LLC
4
4
  # https://github.com/Infrawrench/Infrawrench
5
5
  #
6
- # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.82.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.84.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1,7 +1,7 @@
1
- # infrawrench-sdk v1.82.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v1.84.0 | MIT | Copyright (c) 2026 Infrawrench LLC
2
2
  # https://github.com/Infrawrench/Infrawrench
3
3
  #
4
- # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.82.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.84.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -355,6 +355,97 @@ module Infrawrench
355
355
  "trial_expires_in_ms" => Integer | nil
356
356
  }
357
357
 
358
+ # Spec schema: `AgentLinkApprove`.
359
+ type agent_link_approve = { "code" => String, "organizationId" => String, "scopes" => Array[String] }
360
+
361
+ # Spec schema: `AgentLinkCode`.
362
+ type agent_link_code = { "code" => String }
363
+
364
+ # Spec schema: `AgentLinkError`.
365
+ type agent_link_error = {
366
+ "error" => String,
367
+ ?"code" => String,
368
+ ?"scopes" => Array[String],
369
+ ?"agentId" => String,
370
+ ?"providers" => Array[String]
371
+ }
372
+
373
+ # Spec schema: `AgentLinkInfo`.
374
+ type agent_link_info = {
375
+ "id" => String,
376
+ "organizationId" => String,
377
+ "organizationName" => String,
378
+ "platform" => String,
379
+ "label" => String,
380
+ "scopes" => Array[String],
381
+ "effectiveScopes" => Array[String],
382
+ "narrowableScopes" => Array[String],
383
+ "scopeGroups" => Array[agent_link_scope_group],
384
+ "providers" => Array[agent_link_provider],
385
+ "approvedBy" => { "email" => String } | nil,
386
+ "createdAt" => String
387
+ }
388
+
389
+ # Spec schema: `AgentLinkLookup`.
390
+ type agent_link_lookup = {
391
+ "platform" => String,
392
+ "label" => String,
393
+ "requestedScopes" => Array[String],
394
+ "expiresAt" => String,
395
+ "organizations" => Array[agent_link_lookup_organization]
396
+ }
397
+
398
+ # Spec schema: `AgentLinkLookupOrganization`.
399
+ type agent_link_lookup_organization = { "id" => String, "name" => String, "canApprove" => bool, "grantableScopes" => Array[String] }
400
+
401
+ # Spec schema: `AgentLinkPoll`.
402
+ type agent_link_poll = { "status" => "pending" | "denied" | "expired" }
403
+ | { "status" => "approved", "credential" => String, "link" => agent_link_info }
404
+
405
+ # Spec schema: `AgentLinkProvider`.
406
+ type agent_link_provider = { "id" => String, "displayName" => String }
407
+
408
+ # Spec schema: `AgentLinkRequest`.
409
+ type agent_link_request = { "platform" => String, "label" => String, ?"requestedScopes" => Array[String] }
410
+
411
+ # Spec schema: `AgentLinkRequestStarted`.
412
+ type agent_link_request_started = {
413
+ "deviceCode" => String,
414
+ "userCode" => String,
415
+ "verificationUrl" => String,
416
+ "verificationUrlComplete" => String,
417
+ "expiresIn" => Integer,
418
+ "interval" => Integer
419
+ }
420
+
421
+ # Spec schema: `AgentLinkRevoked`.
422
+ type agent_link_revoked = { "ok" => bool, "revoked" => bool }
423
+
424
+ # Spec schema: `AgentLinkScopeGroup`.
425
+ type agent_link_scope_group = { "title" => String, "scopes" => Array[{ "value" => String, "label" => String }] }
426
+
427
+ # Spec schema: `AgentLinkSummary`.
428
+ type agent_link_summary = {
429
+ "id" => String,
430
+ "organizationId" => String,
431
+ "organizationName" => String,
432
+ "platform" => String,
433
+ "label" => String,
434
+ "scopes" => Array[String],
435
+ "effectiveScopes" => Array[String],
436
+ "narrowableScopes" => Array[String],
437
+ "scopeGroups" => Array[agent_link_scope_group],
438
+ "providers" => Array[agent_link_provider],
439
+ "approvedBy" => { "email" => String } | nil,
440
+ "createdAt" => String,
441
+ "credentialPrefix" => String | nil,
442
+ "lastSeenAt" => String | nil,
443
+ "revokedAt" => String | nil
444
+ }
445
+
446
+ # Spec schema: `AgentLinkableScopes`.
447
+ type agent_linkable_scopes = { "scopes" => Array[String] | nil }
448
+
358
449
  # Spec schema: `AgentRegisterRequest`.
359
450
  type agent_register_request = { ?"label" => String }
360
451
 
@@ -362,14 +453,18 @@ module Infrawrench
362
453
  type agent_registration = {
363
454
  "id" => String,
364
455
  "label" => String | nil,
365
- "kind" => "anonymous" | "service_auth",
456
+ "kind" => "anonymous" | "service_auth" | "platform",
366
457
  "prefix" => String | nil,
367
458
  "claimedAt" => String | nil,
368
459
  "claimedByUserId" => String | nil,
369
460
  "claimedByEmail" => String | nil,
370
461
  "lastSeenAt" => String | nil,
371
462
  "revokedAt" => String | nil,
372
- "createdAt" => String
463
+ "createdAt" => String,
464
+ "linkId" => String | nil,
465
+ "externalId" => String | nil,
466
+ "scopes" => Array[String] | nil,
467
+ "providers" => Array[String] | nil
373
468
  }
374
469
 
375
470
  # Spec schema: `AgentRevoked`.
@@ -388,10 +483,11 @@ module Infrawrench
388
483
  "pluginId" => String,
389
484
  "resourceTypeId" => String,
390
485
  "tool" => "codex" | "claude-code",
391
- ?"surface" => "terminal" | "t3-code",
486
+ ?"surface" => "terminal" | "t3-code" | "nibblets",
392
487
  ?"serviceAccountIds" => Array[String],
393
488
  ?"t3Access" => "t3-connect" | "tailscale",
394
489
  ?"serviceInstalls" => Array[agent_service_install],
490
+ ?"agentLinkId" => String | nil,
395
491
  "branchName" => String,
396
492
  "status" => "pending" | "provisioning" | "setting-up" | "up" | "failed" | "stopped",
397
493
  "vmResourceId" => String | nil,
@@ -406,7 +502,7 @@ module Infrawrench
406
502
  "pluginId" => String,
407
503
  "resourceTypeId" => String,
408
504
  "tool" => "codex" | "claude-code",
409
- ?"surface" => "terminal" | "t3-code",
505
+ ?"surface" => "terminal" | "t3-code" | "nibblets",
410
506
  "fields" => Hash[String, String],
411
507
  ?"serviceAccountIds" => Array[String],
412
508
  ?"t3Access" => "t3-connect" | "tailscale"
@@ -3708,7 +3804,8 @@ module Infrawrench
3708
3804
  ?"repo" => String,
3709
3805
  ?"projectName" => String,
3710
3806
  ?"workspaceName" => String,
3711
- "settings" => agent_settings & Hash[String, untyped]
3807
+ "settings" => agent_settings & Hash[String, untyped],
3808
+ ?"nibbletsLink" => { "scopes" => Array[String] }
3712
3809
  }
3713
3810
 
3714
3811
  # Spec schema: `CreateApiKeyRequest`.
@@ -3762,6 +3859,14 @@ module Infrawrench
3762
3859
  # Spec schema: `CreateOrgRequest`.
3763
3860
  type create_org_request = { "displayName" => String }
3764
3861
 
3862
+ # Spec schema: `CreatePlatformAgent`.
3863
+ type create_platform_agent = {
3864
+ "externalId" => String,
3865
+ "label" => String,
3866
+ "scopes" => Array[String],
3867
+ ?"providers" => Array[String]
3868
+ }
3869
+
3765
3870
  # Spec schema: `CreatePricingRequest`.
3766
3871
  type create_pricing_request = {
3767
3872
  "accountId" => String,
@@ -9527,6 +9632,9 @@ module Infrawrench
9527
9632
  # Spec schema: `PagingSyncResult`.
9528
9633
  type paging_sync_result = { "synced" => Integer }
9529
9634
 
9635
+ # Spec schema: `PatchPlatformAgent`.
9636
+ type patch_platform_agent = { ?"label" => String, ?"scopes" => Array[String], ?"providers" => Array[String] }
9637
+
9530
9638
  # Spec schema: `PeerPane`.
9531
9639
  type peer_pane = peer_pane_stub & { "schema" => json_object }
9532
9640
 
@@ -9667,6 +9775,25 @@ module Infrawrench
9667
9775
  ?"gridY" => Integer
9668
9776
  }
9669
9777
 
9778
+ # Spec schema: `PlatformAgent`.
9779
+ type platform_agent = {
9780
+ "id" => String,
9781
+ "externalId" => String,
9782
+ "label" => String,
9783
+ "scopes" => Array[String],
9784
+ "providers" => Array[String],
9785
+ "credentialPrefix" => String | nil,
9786
+ "lastSeenAt" => String | nil,
9787
+ "revokedAt" => String | nil,
9788
+ "createdAt" => String
9789
+ }
9790
+
9791
+ # Spec schema: `PlatformAgentEnvelope`.
9792
+ type platform_agent_envelope = { "agent" => platform_agent }
9793
+
9794
+ # Spec schema: `PlatformAgentWithCredential`.
9795
+ type platform_agent_with_credential = { "agent" => platform_agent, "credential" => String }
9796
+
9670
9797
  # Manifest id of an installed plugin.
9671
9798
  #
9672
9799
  # Spec schema: `PluginId`.
@@ -14825,10 +14952,43 @@ module Infrawrench
14825
14952
  def initialize: (Transport) -> void
14826
14953
  end
14827
14954
 
14955
+ class AgentLinkAgentsNamespace
14956
+ def initialize: (Transport) -> void
14957
+ def create: (?body: create_platform_agent?, ?request_options: Hash[Symbol, untyped]?) -> platform_agent_with_credential
14958
+ def delete: (id: String, ?request_options: Hash[Symbol, untyped]?) -> ok
14959
+ def list: (?request_options: Hash[Symbol, untyped]?) -> Array[platform_agent]
14960
+ def rotate: (id: String, ?request_options: Hash[Symbol, untyped]?) -> platform_agent_with_credential
14961
+ def update: (id: String, ?body: patch_platform_agent?, ?request_options: Hash[Symbol, untyped]?) -> platform_agent_envelope
14962
+ end
14963
+
14964
+ class AgentLinkNamespace
14965
+ attr_reader agents: AgentLinkAgentsNamespace
14966
+ def initialize: (Transport) -> void
14967
+ def delete: (?request_options: Hash[Symbol, untyped]?) -> ok
14968
+ def get: (?request_options: Hash[Symbol, untyped]?) -> agent_link_info
14969
+ end
14970
+
14971
+ class AgentLinksRequestsNamespace
14972
+ def initialize: (Transport) -> void
14973
+ def approve: (?body: agent_link_approve?, ?request_options: Hash[Symbol, untyped]?) -> ok
14974
+ def create: (?body: agent_link_request?, ?request_options: Hash[Symbol, untyped]?) -> agent_link_request_started
14975
+ def deny: (?body: agent_link_code?, ?request_options: Hash[Symbol, untyped]?) -> ok
14976
+ def lookup: (?body: agent_link_code?, ?request_options: Hash[Symbol, untyped]?) -> agent_link_lookup
14977
+ def token: (?body: { "deviceCode" => String }?, ?request_options: Hash[Symbol, untyped]?) -> agent_link_poll
14978
+ end
14979
+
14980
+ class AgentLinksNamespace
14981
+ attr_reader requests: AgentLinksRequestsNamespace
14982
+ def initialize: (Transport) -> void
14983
+ def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> agent_link_revoked
14984
+ def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[agent_link_summary]
14985
+ end
14986
+
14828
14987
  class AgentRegistrationsNamespace
14829
14988
  def initialize: (Transport) -> void
14830
14989
  def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> agent_revoked
14831
14990
  def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[agent_registration]
14991
+ def update: (id: String, ?org_id: String?, ?body: patch_platform_agent?, ?request_options: Hash[Symbol, untyped]?) -> platform_agent_envelope
14832
14992
  end
14833
14993
 
14834
14994
  class AgentsSessionsNamespace
@@ -14851,6 +15011,7 @@ module Infrawrench
14851
15011
  attr_reader settings: AgentsSettingsNamespace
14852
15012
  def initialize: (Transport) -> void
14853
15013
  def accounts: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[agent_vm_account]
15014
+ def link_scopes: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> agent_linkable_scopes
14854
15015
  end
14855
15016
 
14856
15017
  class AiAttributionDimensionsNamespace
@@ -16794,6 +16955,8 @@ module Infrawrench
16794
16955
  attr_reader access_review: AccessReviewNamespace
16795
16956
  attr_reader accounts: AccountsNamespace
16796
16957
  attr_reader agent: AgentNamespace
16958
+ attr_reader agent_link: AgentLinkNamespace
16959
+ attr_reader agent_links: AgentLinksNamespace
16797
16960
  attr_reader agent_registrations: AgentRegistrationsNamespace
16798
16961
  attr_reader agents: AgentsNamespace
16799
16962
  attr_reader ai_attribution: AiAttributionNamespace
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: infrawrench-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.82.0
4
+ version: 1.84.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Infrawrench LLC
@@ -9,9 +9,9 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2026-10-16 00:00:00.000000000 Z
12
+ date: 2026-10-26 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: Generated Ruby client for the Infrawrench API (v1.82.0). Covers the published
14
+ description: Generated Ruby client for the Infrawrench API (v1.84.0). Covers the published
15
15
  API surface only — operations marked x-internal in the spec are not generated. No
16
16
  runtime dependencies.
17
17
  email:
@@ -58,5 +58,5 @@ requirements: []
58
58
  rubygems_version: 3.5.22
59
59
  signing_key:
60
60
  specification_version: 4
61
- summary: Generated Ruby client for the Infrawrench API (v1.82.0).
61
+ summary: Generated Ruby client for the Infrawrench API (v1.84.0).
62
62
  test_files: []