infrawrench-sdk 1.55.0 → 1.57.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: 8fc4c8f39d0367833ba8cb129d5f738efe4e2f26df0968afe58382a5c748a918
4
- data.tar.gz: 5f05dadf135c2b6ab268b36bc7d982d4d41aae8a2ec5756f5e41f8bfb56614fd
3
+ metadata.gz: fc2d8358586c5a9a7c2377bf754a59ce738b29ebb2d98addd4a447d6de6158b9
4
+ data.tar.gz: 5111a97d76595cc9ecca3b86c0ce30107d6dc0b8f78d4afde485eaa9fc2130ec
5
5
  SHA512:
6
- metadata.gz: 78601f4ae638adfb83788ea4f89dfbe78265462206145bdb78b575e7afe9483691f8640d0322e725d6fedf6e43569ec26f45bf5418f3d6fe05f7fd58955cab6f
7
- data.tar.gz: bfc444ab1e485fed0801b337d2673e8afde9b9a99b9d8f91b3690d51251c1585e5c16525c8f0bdf340f7743f613e081955c42fc076acffa5511d00560052a9d9
6
+ metadata.gz: 528e83b6dda5845775556617c3c63595a60274bc184889158ff10fb2ebf07d0a14438f21ea97098b7b566c47b078c352be786f48161271c2c16caf13c81c6476
7
+ data.tar.gz: 07e3cd8fa1a5fca5eca1bf5318b09181286ea3e5e2d63212ffa4bae050251d091f6f71c702a398ac7b7604cac9f7936bcf2f02251426a2d5f0903aecbcc565d2
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.55.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `1.57.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
- 823 schemas, as RBS type aliases that steep and TypeProf can read.
44
+ 838 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.55.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.57.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.55.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.57.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.55.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v1.55.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.57.0)."
21
+ spec.description = "Generated Ruby client for the Infrawrench API (v1.57.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.55.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.57.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.55.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.57.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1359,6 +1359,405 @@ module Infrawrench
1359
1359
  end
1360
1360
  end
1361
1361
 
1362
+ # `client.ai_attribution.dimensions`
1363
+ class AiAttributionDimensionsNamespace
1364
+ # @api private
1365
+ # @param transport [Transport]
1366
+ def initialize(transport)
1367
+ @transport = transport
1368
+ end
1369
+
1370
+ # Map request-metadata keys to a caller dimension
1371
+ #
1372
+ # POST /api/org/{orgId}/ai-attribution/dimensions
1373
+ #
1374
+ # Raises on 400: Bad request
1375
+ #
1376
+ # Raises on 403: Forbidden
1377
+ #
1378
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1379
+ # constructed with.
1380
+ # @param body [Hash] Request body, shaped as `AiAttributionDimensionInput`.
1381
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1382
+ # @return [Hash] Parsed JSON, shaped as `AiAttributionDimension` — see
1383
+ # `sig/infrawrench/sdk.rbs`.
1384
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1385
+ def create(body:, org_id: nil, request_options: nil)
1386
+ @transport.request(
1387
+ http_method: "POST",
1388
+ path: "/api/org/{orgId}/ai-attribution/dimensions",
1389
+ path_params: { "orgId" => org_id },
1390
+ body: body,
1391
+ request_options: request_options
1392
+ )
1393
+ end
1394
+
1395
+ # Delete a caller dimension
1396
+ #
1397
+ # DELETE /api/org/{orgId}/ai-attribution/dimensions/{id}
1398
+ #
1399
+ # Raises on 403: Forbidden
1400
+ #
1401
+ # Raises on 404: Not found
1402
+ #
1403
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1404
+ # constructed with.
1405
+ # @param id [String]
1406
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1407
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
1408
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1409
+ def delete(id:, org_id: nil, request_options: nil)
1410
+ @transport.request(
1411
+ http_method: "DELETE",
1412
+ path: "/api/org/{orgId}/ai-attribution/dimensions/{id}",
1413
+ path_params: { "orgId" => org_id, "id" => id },
1414
+ request_options: request_options
1415
+ )
1416
+ end
1417
+
1418
+ # List caller dimensions
1419
+ #
1420
+ # GET /api/org/{orgId}/ai-attribution/dimensions
1421
+ #
1422
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1423
+ # constructed with.
1424
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1425
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
1426
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1427
+ def get(org_id: nil, request_options: nil)
1428
+ @transport.request(
1429
+ http_method: "GET",
1430
+ path: "/api/org/{orgId}/ai-attribution/dimensions",
1431
+ path_params: { "orgId" => org_id },
1432
+ request_options: request_options
1433
+ )
1434
+ end
1435
+
1436
+ # Update a caller dimension
1437
+ #
1438
+ # PUT /api/org/{orgId}/ai-attribution/dimensions/{id}
1439
+ #
1440
+ # Raises on 400: Bad request
1441
+ #
1442
+ # Raises on 403: Forbidden
1443
+ #
1444
+ # Raises on 404: Not found
1445
+ #
1446
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1447
+ # constructed with.
1448
+ # @param id [String]
1449
+ # @param body [Hash] Request body, shaped as `AiAttributionDimensionInput`.
1450
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1451
+ # @return [Hash] Parsed JSON, shaped as `AiAttributionDimension` — see
1452
+ # `sig/infrawrench/sdk.rbs`.
1453
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1454
+ def update(id:, body:, org_id: nil, request_options: nil)
1455
+ @transport.request(
1456
+ http_method: "PUT",
1457
+ path: "/api/org/{orgId}/ai-attribution/dimensions/{id}",
1458
+ path_params: { "orgId" => org_id, "id" => id },
1459
+ body: body,
1460
+ request_options: request_options
1461
+ )
1462
+ end
1463
+ end
1464
+
1465
+ # `client.ai_attribution.sources`
1466
+ class AiAttributionSourcesNamespace
1467
+ # @api private
1468
+ # @param transport [Transport]
1469
+ def initialize(transport)
1470
+ @transport = transport
1471
+ end
1472
+
1473
+ # Add a request-log source
1474
+ #
1475
+ # Governed by `org:settings:write`: a source authorizes a daily read of the
1476
+ # org's request logs, and the Bedrock CloudWatch kind runs a Logs Insights
1477
+ # query billed to the org's own AWS account per GB scanned. Audit-logged.
1478
+ #
1479
+ # POST /api/org/{orgId}/ai-attribution/sources
1480
+ #
1481
+ # Raises on 400: Bad request
1482
+ #
1483
+ # Raises on 403: Forbidden
1484
+ #
1485
+ # Raises on 404: Not found
1486
+ #
1487
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1488
+ # constructed with.
1489
+ # @param body [Hash] Request body, shaped as `AiRequestSourceInput`.
1490
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1491
+ # @return [Hash] Parsed JSON, shaped as `AiRequestSource` — see `sig/infrawrench/sdk.rbs`.
1492
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1493
+ def create(body:, org_id: nil, request_options: nil)
1494
+ @transport.request(
1495
+ http_method: "POST",
1496
+ path: "/api/org/{orgId}/ai-attribution/sources",
1497
+ path_params: { "orgId" => org_id },
1498
+ body: body,
1499
+ request_options: request_options
1500
+ )
1501
+ end
1502
+
1503
+ # Delete a request-log source
1504
+ #
1505
+ # DELETE /api/org/{orgId}/ai-attribution/sources/{id}
1506
+ #
1507
+ # Raises on 403: Forbidden
1508
+ #
1509
+ # Raises on 404: Not found
1510
+ #
1511
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1512
+ # constructed with.
1513
+ # @param id [String]
1514
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1515
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
1516
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1517
+ def delete(id:, org_id: nil, request_options: nil)
1518
+ @transport.request(
1519
+ http_method: "DELETE",
1520
+ path: "/api/org/{orgId}/ai-attribution/sources/{id}",
1521
+ path_params: { "orgId" => org_id, "id" => id },
1522
+ request_options: request_options
1523
+ )
1524
+ end
1525
+
1526
+ # List request-log sources
1527
+ #
1528
+ # GET /api/org/{orgId}/ai-attribution/sources
1529
+ #
1530
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1531
+ # constructed with.
1532
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1533
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
1534
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1535
+ def get(org_id: nil, request_options: nil)
1536
+ @transport.request(
1537
+ http_method: "GET",
1538
+ path: "/api/org/{orgId}/ai-attribution/sources",
1539
+ path_params: { "orgId" => org_id },
1540
+ request_options: request_options
1541
+ )
1542
+ end
1543
+
1544
+ # Read one request-log source
1545
+ #
1546
+ # GET /api/org/{orgId}/ai-attribution/sources/{id}
1547
+ #
1548
+ # Raises on 404: Not found
1549
+ #
1550
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1551
+ # constructed with.
1552
+ # @param id [String]
1553
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1554
+ # @return [Hash] Parsed JSON, shaped as `AiRequestSource` — see `sig/infrawrench/sdk.rbs`.
1555
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1556
+ def get_org_org_id_ai_attribution_sources_id(id:, org_id: nil, request_options: nil)
1557
+ @transport.request(
1558
+ http_method: "GET",
1559
+ path: "/api/org/{orgId}/ai-attribution/sources/{id}",
1560
+ path_params: { "orgId" => org_id, "id" => id },
1561
+ request_options: request_options
1562
+ )
1563
+ end
1564
+
1565
+ # Re-read a source's history from a day
1566
+ #
1567
+ # Aggregates keep only mapped metadata keys, so a newly mapped dimension
1568
+ # reaches history only by re-reading it. Clamped to the source kind's
1569
+ # history limit.
1570
+ #
1571
+ # POST /api/org/{orgId}/ai-attribution/sources/{id}/recollect
1572
+ #
1573
+ # Raises on 400: Bad request
1574
+ #
1575
+ # Raises on 404: Not found
1576
+ #
1577
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1578
+ # constructed with.
1579
+ # @param id [String]
1580
+ # @param body [Hash] Request body, shaped as `Hash`.
1581
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1582
+ # @return [Hash] Parsed JSON, shaped as `AiRequestSource` — see `sig/infrawrench/sdk.rbs`.
1583
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1584
+ def recollect(id:, body:, org_id: nil, request_options: nil)
1585
+ @transport.request(
1586
+ http_method: "POST",
1587
+ path: "/api/org/{orgId}/ai-attribution/sources/{id}/recollect",
1588
+ path_params: { "orgId" => org_id, "id" => id },
1589
+ body: body,
1590
+ request_options: request_options
1591
+ )
1592
+ end
1593
+
1594
+ # Update a request-log source
1595
+ #
1596
+ # Pointing a source at a different location restarts its collection history.
1597
+ #
1598
+ # PUT /api/org/{orgId}/ai-attribution/sources/{id}
1599
+ #
1600
+ # Raises on 400: Bad request
1601
+ #
1602
+ # Raises on 403: Forbidden
1603
+ #
1604
+ # Raises on 404: Not found
1605
+ #
1606
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1607
+ # constructed with.
1608
+ # @param id [String]
1609
+ # @param body [Hash] Request body, shaped as `AiRequestSourceInput`.
1610
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1611
+ # @return [Hash] Parsed JSON, shaped as `AiRequestSource` — see `sig/infrawrench/sdk.rbs`.
1612
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1613
+ def update(id:, body:, org_id: nil, request_options: nil)
1614
+ @transport.request(
1615
+ http_method: "PUT",
1616
+ path: "/api/org/{orgId}/ai-attribution/sources/{id}",
1617
+ path_params: { "orgId" => org_id, "id" => id },
1618
+ body: body,
1619
+ request_options: request_options
1620
+ )
1621
+ end
1622
+ end
1623
+
1624
+ # `client.ai_attribution`
1625
+ class AiAttributionNamespace
1626
+ # @return [AiAttributionDimensionsNamespace] `client.ai_attribution.dimensions`
1627
+ attr_reader :dimensions
1628
+ # @return [AiAttributionSourcesNamespace] `client.ai_attribution.sources`
1629
+ attr_reader :sources
1630
+
1631
+ # @api private
1632
+ # @param transport [Transport]
1633
+ def initialize(transport)
1634
+ @transport = transport
1635
+ @dimensions = AiAttributionDimensionsNamespace.new(@transport)
1636
+ @sources = AiAttributionSourcesNamespace.new(@transport)
1637
+ end
1638
+
1639
+ # Discover locations (buckets, log groups, gateways) for a source kind
1640
+ #
1641
+ # GET /api/org/{orgId}/ai-attribution/locations
1642
+ #
1643
+ # Raises on 400: Bad request
1644
+ #
1645
+ # Raises on 403: Forbidden
1646
+ #
1647
+ # Raises on 404: Not found
1648
+ #
1649
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1650
+ # constructed with.
1651
+ # @param account_id [String]
1652
+ # @param source_kind_id [String]
1653
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1654
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
1655
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1656
+ def locations(account_id:, source_kind_id:, org_id: nil, request_options: nil)
1657
+ @transport.request(
1658
+ http_method: "GET",
1659
+ path: "/api/org/{orgId}/ai-attribution/locations",
1660
+ path_params: { "orgId" => org_id },
1661
+ query: { "accountId" => account_id, "sourceKindId" => source_kind_id },
1662
+ request_options: request_options
1663
+ )
1664
+ end
1665
+
1666
+ # Re-split a range of days now
1667
+ #
1668
+ # POST /api/org/{orgId}/ai-attribution/reattribute
1669
+ #
1670
+ # Raises on 400: Bad request
1671
+ #
1672
+ # Raises on 403: Forbidden
1673
+ #
1674
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1675
+ # constructed with.
1676
+ # @param body [Hash] Request body, shaped as `Hash`.
1677
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1678
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
1679
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1680
+ def reattribute(body:, org_id: nil, request_options: nil)
1681
+ @transport.request(
1682
+ http_method: "POST",
1683
+ path: "/api/org/{orgId}/ai-attribution/reattribute",
1684
+ path_params: { "orgId" => org_id },
1685
+ body: body,
1686
+ request_options: request_options
1687
+ )
1688
+ end
1689
+
1690
+ # List the request-log source kinds the org can add
1691
+ #
1692
+ # GET /api/org/{orgId}/ai-attribution/source-kinds
1693
+ #
1694
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1695
+ # constructed with.
1696
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1697
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
1698
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1699
+ def source_kinds(org_id: nil, request_options: nil)
1700
+ @transport.request(
1701
+ http_method: "GET",
1702
+ path: "/api/org/{orgId}/ai-attribution/source-kinds",
1703
+ path_params: { "orgId" => org_id },
1704
+ request_options: request_options
1705
+ )
1706
+ end
1707
+
1708
+ # Attributed AI spend by one caller dimension
1709
+ #
1710
+ # Includes the `(unattributed)` remainder and `(not set)` for matched
1711
+ # requests that lacked every mapped key. For time series, group a cost
1712
+ # report by the tag key `caller:<dimension>`.
1713
+ #
1714
+ # GET /api/org/{orgId}/ai-attribution/spend
1715
+ #
1716
+ # Raises on 400: Bad request
1717
+ #
1718
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1719
+ # constructed with.
1720
+ # @param from [String, nil] Inclusive start day. Defaults to 29 days ago.
1721
+ # @param to [String, nil] Inclusive end day. Defaults to today.
1722
+ # @param dimension [String]
1723
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1724
+ # @return [Hash] Parsed JSON, shaped as `AiSpendBreakdown` — see `sig/infrawrench/sdk.rbs`.
1725
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1726
+ def spend(dimension:, org_id: nil, from: nil, to: nil, request_options: nil)
1727
+ @transport.request(
1728
+ http_method: "GET",
1729
+ path: "/api/org/{orgId}/ai-attribution/spend",
1730
+ path_params: { "orgId" => org_id },
1731
+ query: { "from" => from, "to" => to, "dimension" => dimension },
1732
+ request_options: request_options
1733
+ )
1734
+ end
1735
+
1736
+ # Match-rate statistics per source and coverage per provider
1737
+ #
1738
+ # GET /api/org/{orgId}/ai-attribution/stats
1739
+ #
1740
+ # Raises on 400: Bad request
1741
+ #
1742
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1743
+ # constructed with.
1744
+ # @param from [String, nil] Inclusive start day. Defaults to 29 days ago.
1745
+ # @param to [String, nil] Inclusive end day. Defaults to today.
1746
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1747
+ # @return [Hash] Parsed JSON, shaped as `AiAttributionStats` — see
1748
+ # `sig/infrawrench/sdk.rbs`.
1749
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1750
+ def stats(org_id: nil, from: nil, to: nil, request_options: nil)
1751
+ @transport.request(
1752
+ http_method: "GET",
1753
+ path: "/api/org/{orgId}/ai-attribution/stats",
1754
+ path_params: { "orgId" => org_id },
1755
+ query: { "from" => from, "to" => to },
1756
+ request_options: request_options
1757
+ )
1758
+ end
1759
+ end
1760
+
1362
1761
  # `client.alert_rules.deliveries`
1363
1762
  class AlertRulesDeliveriesNamespace
1364
1763
  # @api private
@@ -2713,7 +3112,7 @@ module Infrawrench
2713
3112
  )
2714
3113
  end
2715
3114
 
2716
- # Get a budget with current-month status
3115
+ # Get a budget with current-period status
2717
3116
  #
2718
3117
  # GET /api/org/{orgId}/budgets/{id}
2719
3118
  #
@@ -2723,7 +3122,7 @@ module Infrawrench
2723
3122
  # constructed with.
2724
3123
  # @param id [String]
2725
3124
  # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
2726
- # @return [Hash] Parsed JSON, shaped as `BudgetFull` — see `sig/infrawrench/sdk.rbs`.
3125
+ # @return [Hash] Parsed JSON, shaped as `BudgetWithStatus` — see `sig/infrawrench/sdk.rbs`.
2727
3126
  # @raise [Infrawrench::ApiError] On any non-2xx response.
2728
3127
  def get(id:, org_id: nil, request_options: nil)
2729
3128
  @transport.request(
@@ -2734,7 +3133,7 @@ module Infrawrench
2734
3133
  )
2735
3134
  end
2736
3135
 
2737
- # List budgets with current-month actuals and forecasts
3136
+ # List budgets with current-period actuals and forecasts
2738
3137
  #
2739
3138
  # GET /api/org/{orgId}/budgets
2740
3139
  #
@@ -6481,9 +6880,10 @@ module Infrawrench
6481
6880
  # List distinct values for a cost dimension
6482
6881
  #
6483
6882
  # Feeds the filter and group-by pickers. Pass dimension=tag-keys for tag
6484
- # keys; dimension=tag requires tagKey. `charge_type` answers from the fixed
6485
- # set of charge types rather than from the stored data, so the picker is
6486
- # populated before any provider has reported one.
6883
+ # keys, or dimension=usage-units for the usage units providers report (a
6884
+ # usage budget's unit); dimension=tag requires tagKey. `charge_type` answers
6885
+ # from the fixed set of charge types rather than from the stored data, so
6886
+ # the picker is populated before any provider has reported one.
6487
6887
  #
6488
6888
  # _Requires permission: `costs:read`._
6489
6889
  #
@@ -18473,6 +18873,8 @@ module Infrawrench
18473
18873
  attr_reader :agent_registrations
18474
18874
  # @return [AgentsNamespace] `client.agents`
18475
18875
  attr_reader :agents
18876
+ # @return [AiAttributionNamespace] `client.ai_attribution`
18877
+ attr_reader :ai_attribution
18476
18878
  # @return [AlertRulesNamespace] `client.alert_rules`
18477
18879
  attr_reader :alert_rules
18478
18880
  # @return [ApiKeysNamespace] `client.api_keys`
@@ -18681,6 +19083,7 @@ module Infrawrench
18681
19083
  @agent = AgentNamespace.new(@transport)
18682
19084
  @agent_registrations = AgentRegistrationsNamespace.new(@transport)
18683
19085
  @agents = AgentsNamespace.new(@transport)
19086
+ @ai_attribution = AiAttributionNamespace.new(@transport)
18684
19087
  @alert_rules = AlertRulesNamespace.new(@transport)
18685
19088
  @api_keys = ApiKeysNamespace.new(@transport)
18686
19089
  @apps = AppsNamespace.new(@transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.55.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.57.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.55.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.57.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.55.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.57.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.55.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.57.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.55.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.57.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.55.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.57.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.55.0"
18
+ VERSION = "1.57.0"
19
19
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.55.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.57.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.55.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.57.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.55.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v1.57.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.55.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.57.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -414,6 +414,128 @@ module Infrawrench
414
414
  "hiddenFieldKeys" => Array[String]
415
415
  }
416
416
 
417
+ # Spec schema: `AiAttributionDimension`.
418
+ type ai_attribution_dimension = {
419
+ "id" => String,
420
+ "key" => String,
421
+ "label" => String,
422
+ "metadataKeys" => Array[String],
423
+ "createdAt" => String,
424
+ "updatedAt" => String
425
+ }
426
+
427
+ # Spec schema: `AiAttributionDimensionInput`.
428
+ type ai_attribution_dimension_input = { "key" => String, "label" => String, "metadataKeys" => Array[String] }
429
+
430
+ # Spec schema: `AiAttributionStats`.
431
+ type ai_attribution_stats = {
432
+ "from" => String,
433
+ "to" => String,
434
+ "sources" => Array[ai_source_match_stats],
435
+ "providers" => Array[ai_provider_coverage],
436
+ "attributedDays" => Integer
437
+ }
438
+
439
+ # Spec schema: `AiProviderCoverage`.
440
+ type ai_provider_coverage = {
441
+ "provider" => String,
442
+ "currency" => String,
443
+ "billedAmount" => Numeric,
444
+ "attributedAmount" => Numeric,
445
+ "unattributedAmount" => Numeric
446
+ }
447
+
448
+ # Spec schema: `AiRequestLogLocation`.
449
+ type ai_request_log_location = {
450
+ "id" => String,
451
+ "label" => String,
452
+ ?"detail" => String,
453
+ "location" => Hash[String, String],
454
+ ?"recommended" => bool
455
+ }
456
+
457
+ # Spec schema: `AiRequestSource`.
458
+ type ai_request_source = {
459
+ "id" => String,
460
+ "name" => String,
461
+ "kind" => "plugin" | "litellm",
462
+ "pluginId" => String | nil,
463
+ "accountId" => String | nil,
464
+ "accountName" => String | nil,
465
+ "sourceKindId" => String,
466
+ "location" => Hash[String, String],
467
+ "enabled" => bool,
468
+ "lookbackDays" => Integer,
469
+ "baseUrl" => String | nil,
470
+ "hasApiKey" => bool,
471
+ "collectedThrough" => String | nil,
472
+ "lastRunAt" => String | nil,
473
+ "nextRunAt" => String | nil,
474
+ "lastError" => String | nil,
475
+ "lastErrorHelpUrl" => String | nil,
476
+ "failureCount" => Integer,
477
+ "observedMetadataKeys" => Hash[String, Numeric],
478
+ "lastQueryBytesScanned" => Numeric | nil,
479
+ "createdAt" => String,
480
+ "updatedAt" => String
481
+ }
482
+
483
+ # Spec schema: `AiRequestSourceInput`.
484
+ type ai_request_source_input = {
485
+ "name" => String,
486
+ "kind" => "plugin" | "litellm",
487
+ ?"accountId" => String | nil,
488
+ "sourceKindId" => String,
489
+ "location" => Hash[String, String],
490
+ "enabled" => bool,
491
+ "lookbackDays" => Integer,
492
+ ?"baseUrl" => String | nil,
493
+ ?"apiKey" => String
494
+ }
495
+
496
+ # Spec schema: `AiRequestSourceKindOption`.
497
+ type ai_request_source_kind_option = {
498
+ "kind" => "plugin" | "litellm",
499
+ "pluginId" => String | nil,
500
+ "pluginName" => String | nil,
501
+ "sourceKindId" => String,
502
+ "label" => String,
503
+ "description" => String,
504
+ "locationLabel" => String,
505
+ "maxHistoryDays" => Integer,
506
+ "queriesBillable" => bool,
507
+ "acceptsPrefix" => bool,
508
+ "helpUrl" => String | nil,
509
+ "accounts" => Array[{ "id" => String, "name" => String }]
510
+ }
511
+
512
+ # Spec schema: `AiSourceMatchStats`.
513
+ type ai_source_match_stats = {
514
+ "sourceId" => String,
515
+ "name" => String,
516
+ "days" => Integer,
517
+ "requests" => Numeric,
518
+ "matchedRequests" => Numeric,
519
+ "ambiguousRequests" => Numeric,
520
+ "unmatchedRequests" => Numeric,
521
+ "skippedRecords" => Numeric,
522
+ "currency" => String | nil,
523
+ "attributedAmount" => Numeric,
524
+ "billedAmount" => Numeric,
525
+ "coveragePercent" => Numeric | nil,
526
+ "degradedDays" => Integer,
527
+ "truncatedDays" => Integer
528
+ }
529
+
530
+ # Spec schema: `AiSpendBreakdown`.
531
+ type ai_spend_breakdown = {
532
+ "from" => String,
533
+ "to" => String,
534
+ "dimension" => String,
535
+ "tagKey" => String,
536
+ "rows" => Array[{ "value" => String, "currency" => String, "amount" => Numeric }]
537
+ }
538
+
417
539
  # One clause of a rule. A rule matches when every condition matches; 'or' is
418
540
  # expressed by writing a second rule. A condition on a fact the alert does not
419
541
  # carry never matches — in either direction, so `accountId notIn [x]` does not
@@ -952,7 +1074,11 @@ module Infrawrench
952
1074
  "thresholdPercent" => Integer,
953
1075
  "actualAmountCents" => Integer,
954
1076
  "forecastAmountCents" => Integer | nil,
955
- "triggeredAt" => String
1077
+ "triggeredAt" => String,
1078
+ "periodStart" => String | nil,
1079
+ "periodEnd" => String | nil,
1080
+ "actualUsage" => Numeric | nil,
1081
+ "forecastUsage" => Numeric | nil
956
1082
  }
957
1083
 
958
1084
  # The basis `actualCents` and `forecastCents` were measured on.
@@ -975,6 +1101,12 @@ module Infrawrench
975
1101
  ?"tagKey" => String
976
1102
  }
977
1103
 
1104
+ # Spec schema: `BudgetExplicitPeriods`.
1105
+ type budget_explicit_periods = {
1106
+ "kind" => "explicit",
1107
+ "periods" => Array[{ "start" => String, "end" => String, ?"amountCents" => Integer, ?"usageAmount" => Numeric }]
1108
+ }
1109
+
978
1110
  # Spec schema: `BudgetFull`.
979
1111
  type budget_full = {
980
1112
  "id" => String,
@@ -991,20 +1123,65 @@ module Infrawrench
991
1123
  "createdByUserId" => String | nil,
992
1124
  "deletedAt" => String | nil,
993
1125
  "createdAt" => String,
994
- "updatedAt" => String
1126
+ "updatedAt" => String,
1127
+ "measure" => budget_measure,
1128
+ "usageUnit" => String | nil,
1129
+ "usageAmount" => Numeric | nil,
1130
+ "period" => budget_period,
1131
+ "parentBudgetId" => String | nil
1132
+ }
1133
+
1134
+ # Spec schema: `BudgetHierarchyWarning`.
1135
+ type budget_hierarchy_warning = {
1136
+ "kind" => "allocation" | "actual" | "forecast",
1137
+ "childTotal" => Numeric,
1138
+ "parentLimit" => Numeric
995
1139
  }
996
1140
 
997
1141
  # Spec schema: `BudgetInput`.
998
1142
  type budget_input = {
999
1143
  "name" => String,
1000
- "amountCents" => Integer,
1144
+ ?"amountCents" => Integer,
1001
1145
  ?"currency" => String,
1002
1146
  ?"filters" => Array[budget_cost_filter],
1003
1147
  ?"savedFilterId" => String,
1004
1148
  ?"scenarioModelId" => String,
1005
1149
  "thresholds" => Array[budget_threshold],
1006
1150
  ?"costBasis" => budget_cost_basis & untyped,
1007
- ?"useAdjustedSpend" => bool
1151
+ ?"useAdjustedSpend" => bool,
1152
+ ?"measure" => budget_measure,
1153
+ ?"usageUnit" => String,
1154
+ ?"usageAmount" => Numeric,
1155
+ ?"period" => budget_period & (budget_recurring_period | budget_explicit_periods),
1156
+ ?"parentBudgetId" => String
1157
+ }
1158
+
1159
+ # What the budget counts. `cost` (the default) is money in `currency`, against
1160
+ # `amountCents`. `usage` sums the cost rows' usage quantity in `usageUnit`
1161
+ # against `usageAmount` (tokens, GB, instance-hours, requests: whatever the
1162
+ # providers report; list them with GET
1163
+ # /costs/dimensions?dimension=usage-units). Units are matched exactly and
1164
+ # never converted. A usage budget takes no scenario model and no billing
1165
+ # rules.
1166
+ #
1167
+ # Spec schema: `BudgetMeasure`.
1168
+ type budget_measure = "cost" | "usage"
1169
+
1170
+ # Which periods the budget covers. Omitted (or null) is the calendar month.
1171
+ # `recurring` repeats every `interval` × `unit` from `startDate`; `explicit`
1172
+ # lists the periods with an amount each, and the top-level amount is then
1173
+ # ignored. Thresholds fire once per period; days outside every period are not
1174
+ # measured.
1175
+ #
1176
+ # Spec schema: `BudgetPeriod`.
1177
+ type budget_period = budget_recurring_period | budget_explicit_periods | nil
1178
+
1179
+ # Spec schema: `BudgetRecurringPeriod`.
1180
+ type budget_recurring_period = {
1181
+ "kind" => "recurring",
1182
+ "unit" => "day" | "week" | "month" | "quarter" | "year",
1183
+ "interval" => Integer,
1184
+ "startDate" => String
1008
1185
  }
1009
1186
 
1010
1187
  # Spec schema: `BudgetThreshold`.
@@ -1034,7 +1211,20 @@ module Infrawrench
1034
1211
  "thresholdPercent" => Integer,
1035
1212
  "triggeredAt" => String
1036
1213
  }],
1037
- "placements" => Array[{ "widgetId" => String, "dashboardId" => String, "dashboardName" => String }]
1214
+ "placements" => Array[{ "widgetId" => String, "dashboardId" => String, "dashboardName" => String }],
1215
+ "measure" => budget_measure,
1216
+ "usageUnit" => String | nil,
1217
+ "usageAmount" => Numeric | nil,
1218
+ "period" => budget_period,
1219
+ "parentBudgetId" => String | nil,
1220
+ "periodStart" => String | nil,
1221
+ "periodEnd" => String | nil,
1222
+ "periodLimit" => Numeric | nil,
1223
+ "actualUsage" => Numeric | nil,
1224
+ "forecastUsage" => Numeric | nil,
1225
+ "rolledUp" => bool,
1226
+ "childCount" => Integer,
1227
+ "hierarchyWarnings" => Array[budget_hierarchy_warning]
1038
1228
  }
1039
1229
 
1040
1230
  # Spec schema: `BusinessMetric`.
@@ -8737,6 +8927,35 @@ module Infrawrench
8737
8927
  def accounts: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[agent_vm_account]
8738
8928
  end
8739
8929
 
8930
+ class AiAttributionDimensionsNamespace
8931
+ def initialize: (Transport) -> void
8932
+ def create: (body: ai_attribution_dimension_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ai_attribution_dimension
8933
+ def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "ok" => bool }
8934
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "dimensions" => Array[ai_attribution_dimension] }
8935
+ def update: (id: String, body: ai_attribution_dimension_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ai_attribution_dimension
8936
+ end
8937
+
8938
+ class AiAttributionSourcesNamespace
8939
+ def initialize: (Transport) -> void
8940
+ def create: (body: ai_request_source_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ai_request_source
8941
+ def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "ok" => bool }
8942
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "sources" => Array[ai_request_source] }
8943
+ def get_org_org_id_ai_attribution_sources_id: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ai_request_source
8944
+ def recollect: (id: String, body: { "from" => String }, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ai_request_source
8945
+ def update: (id: String, body: ai_request_source_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ai_request_source
8946
+ end
8947
+
8948
+ class AiAttributionNamespace
8949
+ attr_reader dimensions: AiAttributionDimensionsNamespace
8950
+ attr_reader sources: AiAttributionSourcesNamespace
8951
+ def initialize: (Transport) -> void
8952
+ def locations: (account_id: String, source_kind_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "locations" => Array[ai_request_log_location] }
8953
+ def reattribute: (body: { "from" => String, "to" => String }, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "ok" => bool, "days" => Integer }
8954
+ def source_kinds: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "sourceKinds" => Array[ai_request_source_kind_option] }
8955
+ def spend: (dimension: String, ?org_id: String?, ?from: String?, ?to: String?, ?request_options: Hash[Symbol, untyped]?) -> ai_spend_breakdown
8956
+ def stats: (?org_id: String?, ?from: String?, ?to: String?, ?request_options: Hash[Symbol, untyped]?) -> ai_attribution_stats
8957
+ end
8958
+
8740
8959
  class AlertRulesDeliveriesNamespace
8741
8960
  def initialize: (Transport) -> void
8742
8961
  def ack: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "acknowledged" => bool, ?"alreadyAcknowledgedBy" => String | nil, ?"reason" => "not_pending" | "already_escalated" | "already_acknowledged", ?"title" => String }
@@ -8852,7 +9071,7 @@ module Infrawrench
8852
9071
  def create: (body: budget_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> budget_full
8853
9072
  def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
8854
9073
  def events: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[budget_alert_event]
8855
- def get: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> budget_full
9074
+ def get: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> budget_with_status
8856
9075
  def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[budget_with_status]
8857
9076
  def update: (id: String, body: budget_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> budget_full
8858
9077
  end
@@ -9128,7 +9347,7 @@ module Infrawrench
9128
9347
  attr_reader anomaly_settings: CostsAnomalySettingsNamespace
9129
9348
  attr_reader efficiency_alert_settings: CostsEfficiencyAlertSettingsNamespace
9130
9349
  def initialize: (Transport) -> void
9131
- def dimensions: (dimension: "provider" | "account" | "service" | "region" | "resource" | "tag" | "charge_type" | "commitment" | "tag-keys", ?org_id: String?, ?tag_key: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_dimension_values
9350
+ def dimensions: (dimension: "provider" | "account" | "service" | "region" | "resource" | "tag" | "charge_type" | "commitment" | "tag-keys" | "usage-units", ?org_id: String?, ?tag_key: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_dimension_values
9132
9351
  def efficiency_alerts: (?org_id: String?, ?kind: "commitment_expiry" | "commitment_idle" | "unit_cost_regression"?, ?limit: Integer?, ?request_options: Hash[Symbol, untyped]?) -> { "events" => Array[efficiency_alert_event] }
9133
9352
  def focus_export: (body: focus_export_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> String
9134
9353
  def query: (body: cost_query_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_query_response
@@ -10005,6 +10224,7 @@ module Infrawrench
10005
10224
  attr_reader agent: AgentNamespace
10006
10225
  attr_reader agent_registrations: AgentRegistrationsNamespace
10007
10226
  attr_reader agents: AgentsNamespace
10227
+ attr_reader ai_attribution: AiAttributionNamespace
10008
10228
  attr_reader alert_rules: AlertRulesNamespace
10009
10229
  attr_reader api_keys: ApiKeysNamespace
10010
10230
  attr_reader apps: AppsNamespace
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.55.0
4
+ version: 1.57.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Infrawrench LLC
@@ -11,7 +11,7 @@ bindir: bin
11
11
  cert_chain: []
12
12
  date: 2026-10-05 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: Generated Ruby client for the Infrawrench API (v1.55.0). Covers the published
14
+ description: Generated Ruby client for the Infrawrench API (v1.57.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.55.0).
61
+ summary: Generated Ruby client for the Infrawrench API (v1.57.0).
62
62
  test_files: []