infrawrench-sdk 0.25.0 → 0.27.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 +4 -4
- data/README.md +2 -2
- data/infrawrench-sdk.gemspec +4 -4
- data/lib/infrawrench/client.rb +255 -19
- data/lib/infrawrench/sdk.rb +2 -2
- data/lib/infrawrench/transport.rb +2 -2
- data/lib/infrawrench/version.rb +3 -3
- data/lib/infrawrench-sdk.rb +2 -2
- data/sig/infrawrench/sdk.rbs +120 -7
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bfbc2c017e0fefb9e4b1daa4f2a8ac2794717bff63f25e59ade00168e87e434b
|
|
4
|
+
data.tar.gz: 77ce3e6830114def58a200abd701bb2f5361c74fd0ed6253d89554ee4d3dc97f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 788ed975c54ffa008b118feab4d6284be292e267cfdfefe4f0ff27f2cf3675fea67e85fa28f31c72c7db83ca766f077e4434a3ff89ce03561df8eec44e753645
|
|
7
|
+
data.tar.gz: 864e4ace06f40692888a6fb892339ea4619966d56d98b8a2440c749d37f03a159f9cb344c6ab67ff3d96a61d76138ba32ea6ad751d63e676e6c4fac99ac4087d
|
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# infrawrench-sdk
|
|
2
2
|
|
|
3
|
-
Generated Ruby client for the Infrawrench API (API version `0.
|
|
3
|
+
Generated Ruby client for the Infrawrench API (API version `0.27.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
|
-
|
|
44
|
+
254 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 —
|
data/infrawrench-sdk.gemspec
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# infrawrench-sdk v0.
|
|
3
|
+
# infrawrench-sdk v0.27.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 0.
|
|
6
|
+
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.27.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 (v0.
|
|
21
|
-
spec.description = "Generated Ruby client for the Infrawrench API (v0.
|
|
20
|
+
spec.summary = "Generated Ruby client for the Infrawrench API (v0.27.0)."
|
|
21
|
+
spec.description = "Generated Ruby client for the Infrawrench API (v0.27.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"
|
data/lib/infrawrench/client.rb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# infrawrench-sdk v0.
|
|
3
|
+
# infrawrench-sdk v0.27.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 0.
|
|
6
|
+
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.27.0).
|
|
7
7
|
#
|
|
8
8
|
# DO NOT EDIT. Regenerate with:
|
|
9
9
|
# pnpm --filter @infrawrench/web generate:sdk
|
|
@@ -1269,12 +1269,78 @@ module Infrawrench
|
|
|
1269
1269
|
end
|
|
1270
1270
|
end
|
|
1271
1271
|
|
|
1272
|
+
# `client.changes.alert_settings`
|
|
1273
|
+
class ChangesAlertSettingsNamespace
|
|
1274
|
+
# @api private
|
|
1275
|
+
# @param transport [Transport]
|
|
1276
|
+
def initialize(transport)
|
|
1277
|
+
@transport = transport
|
|
1278
|
+
end
|
|
1279
|
+
|
|
1280
|
+
# Get the organization's resource-drift alert filter
|
|
1281
|
+
#
|
|
1282
|
+
# Drift notifications are batched: at most one message per organization per
|
|
1283
|
+
# `cooldownMinutes`, covering every change since the previous one. These
|
|
1284
|
+
# settings decide which changes count and how often a message may go out.
|
|
1285
|
+
# Who receives it is the `resourceDrift` opt-in on push preferences, Slack
|
|
1286
|
+
# channels and Teams webhooks — off by default on all three.
|
|
1287
|
+
#
|
|
1288
|
+
# GET /api/org/{orgId}/changes/alert-settings
|
|
1289
|
+
#
|
|
1290
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
1291
|
+
# constructed with.
|
|
1292
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
1293
|
+
# @return [Hash] Parsed JSON, shaped as `DriftAlertSettings` — see
|
|
1294
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
1295
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
1296
|
+
def get(org_id: nil, request_options: nil)
|
|
1297
|
+
@transport.request(
|
|
1298
|
+
http_method: "GET",
|
|
1299
|
+
path: "/api/org/{orgId}/changes/alert-settings",
|
|
1300
|
+
path_params: { "orgId" => org_id },
|
|
1301
|
+
request_options: request_options
|
|
1302
|
+
)
|
|
1303
|
+
end
|
|
1304
|
+
|
|
1305
|
+
# Update the organization's resource-drift alert filter
|
|
1306
|
+
#
|
|
1307
|
+
# Every field is optional so a single toggle can be saved on its own.
|
|
1308
|
+
# `cooldownMinutes` is floored at 5: below the poller's own cycle the
|
|
1309
|
+
# notification rate would follow the sync rate again, which is what the
|
|
1310
|
+
# batching exists to prevent.
|
|
1311
|
+
#
|
|
1312
|
+
# PUT /api/org/{orgId}/changes/alert-settings
|
|
1313
|
+
#
|
|
1314
|
+
# Raises on 400: Bad request
|
|
1315
|
+
#
|
|
1316
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
1317
|
+
# constructed with.
|
|
1318
|
+
# @param body [Hash, nil] Request body, shaped as `DriftAlertSettingsUpdate`.
|
|
1319
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
1320
|
+
# @return [Hash] Parsed JSON, shaped as `DriftAlertSettings` — see
|
|
1321
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
1322
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
1323
|
+
def update(org_id: nil, body: nil, request_options: nil)
|
|
1324
|
+
@transport.request(
|
|
1325
|
+
http_method: "PUT",
|
|
1326
|
+
path: "/api/org/{orgId}/changes/alert-settings",
|
|
1327
|
+
path_params: { "orgId" => org_id },
|
|
1328
|
+
body: body,
|
|
1329
|
+
request_options: request_options
|
|
1330
|
+
)
|
|
1331
|
+
end
|
|
1332
|
+
end
|
|
1333
|
+
|
|
1272
1334
|
# `client.changes`
|
|
1273
1335
|
class ChangesNamespace
|
|
1336
|
+
# @return [ChangesAlertSettingsNamespace] `client.changes.alert_settings`
|
|
1337
|
+
attr_reader :alert_settings
|
|
1338
|
+
|
|
1274
1339
|
# @api private
|
|
1275
1340
|
# @param transport [Transport]
|
|
1276
1341
|
def initialize(transport)
|
|
1277
1342
|
@transport = transport
|
|
1343
|
+
@alert_settings = ChangesAlertSettingsNamespace.new(@transport)
|
|
1278
1344
|
end
|
|
1279
1345
|
|
|
1280
1346
|
# Org-wide change timeline (paginated, filterable)
|
|
@@ -1449,20 +1515,97 @@ module Infrawrench
|
|
|
1449
1515
|
end
|
|
1450
1516
|
end
|
|
1451
1517
|
|
|
1518
|
+
# `client.costs.anomaly_settings`
|
|
1519
|
+
class CostsAnomalySettingsNamespace
|
|
1520
|
+
# @api private
|
|
1521
|
+
# @param transport [Transport]
|
|
1522
|
+
def initialize(transport)
|
|
1523
|
+
@transport = transport
|
|
1524
|
+
end
|
|
1525
|
+
|
|
1526
|
+
# Get the organization's anomaly detection thresholds
|
|
1527
|
+
#
|
|
1528
|
+
# The tunable part of cost anomaly detection. Everything else about the
|
|
1529
|
+
# model — the 28-day baseline, the 7-day notification cooldown, the minimum
|
|
1530
|
+
# history a baseline needs — is fixed. An organization that has never
|
|
1531
|
+
# changed a threshold reads back the defaults. The response also carries the
|
|
1532
|
+
# derived, read-only `smsConfigured`.
|
|
1533
|
+
#
|
|
1534
|
+
# _Requires permission: `costs:read`._
|
|
1535
|
+
#
|
|
1536
|
+
# GET /api/org/{orgId}/costs/anomaly-settings
|
|
1537
|
+
#
|
|
1538
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
1539
|
+
# constructed with.
|
|
1540
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
1541
|
+
# @return [Hash] Parsed JSON, shaped as `CostAnomalySettingsView` — see
|
|
1542
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
1543
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
1544
|
+
def get(org_id: nil, request_options: nil)
|
|
1545
|
+
@transport.request(
|
|
1546
|
+
http_method: "GET",
|
|
1547
|
+
path: "/api/org/{orgId}/costs/anomaly-settings",
|
|
1548
|
+
path_params: { "orgId" => org_id },
|
|
1549
|
+
request_options: request_options
|
|
1550
|
+
)
|
|
1551
|
+
end
|
|
1552
|
+
|
|
1553
|
+
# Update the organization's anomaly detection thresholds
|
|
1554
|
+
#
|
|
1555
|
+
# Takes effect on the next detection pass (which runs after each cost
|
|
1556
|
+
# collection). Anomalies already stored are not re-judged. All four fields
|
|
1557
|
+
# are required — this is a PUT of the whole settings object, not a patch —
|
|
1558
|
+
# and `smsAlerts` deliberately has no server-side default, so a client that
|
|
1559
|
+
# omits it is rejected rather than silently switching an organization's SMS
|
|
1560
|
+
# paging back off. `smsConfigured` is derived and is not accepted here.
|
|
1561
|
+
#
|
|
1562
|
+
# _Requires permission: `costs:write`._
|
|
1563
|
+
#
|
|
1564
|
+
# PUT /api/org/{orgId}/costs/anomaly-settings
|
|
1565
|
+
#
|
|
1566
|
+
# Raises on 400: Bad request
|
|
1567
|
+
#
|
|
1568
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
1569
|
+
# constructed with.
|
|
1570
|
+
# @param body [Hash] Request body, shaped as `CostAnomalySettings`.
|
|
1571
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
1572
|
+
# @return [Hash] Parsed JSON, shaped as `CostAnomalySettingsView` — see
|
|
1573
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
1574
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
1575
|
+
def update(body:, org_id: nil, request_options: nil)
|
|
1576
|
+
@transport.request(
|
|
1577
|
+
http_method: "PUT",
|
|
1578
|
+
path: "/api/org/{orgId}/costs/anomaly-settings",
|
|
1579
|
+
path_params: { "orgId" => org_id },
|
|
1580
|
+
body: body,
|
|
1581
|
+
request_options: request_options
|
|
1582
|
+
)
|
|
1583
|
+
end
|
|
1584
|
+
end
|
|
1585
|
+
|
|
1452
1586
|
# `client.costs`
|
|
1453
1587
|
class CostsNamespace
|
|
1588
|
+
# @return [CostsAnomalySettingsNamespace] `client.costs.anomaly_settings`
|
|
1589
|
+
attr_reader :anomaly_settings
|
|
1590
|
+
|
|
1454
1591
|
# @api private
|
|
1455
1592
|
# @param transport [Transport]
|
|
1456
1593
|
def initialize(transport)
|
|
1457
1594
|
@transport = transport
|
|
1595
|
+
@anomaly_settings = CostsAnomalySettingsNamespace.new(@transport)
|
|
1458
1596
|
end
|
|
1459
1597
|
|
|
1460
1598
|
# List recently detected cost anomalies
|
|
1461
1599
|
#
|
|
1462
|
-
# Spend anomalies detected by the daily background pass
|
|
1463
|
-
# provider's or service's spend exceeded its
|
|
1464
|
-
# statistical threshold (mean + N·stddev, with
|
|
1465
|
-
# penny-scale noise)
|
|
1600
|
+
# Spend anomalies detected by the daily background pass. Two kinds share the
|
|
1601
|
+
# list: a `spike`, where a provider's or service's spend exceeded its
|
|
1602
|
+
# trailing 28-day baseline by a statistical threshold (mean + N·stddev, with
|
|
1603
|
+
# an absolute floor to ignore penny-scale noise), and a `new_source`, where
|
|
1604
|
+
# a provider or service with no spend at all across that window suddenly
|
|
1605
|
+
# billed a material amount. Thresholds are per organization — see GET
|
|
1606
|
+
# /costs/anomaly-settings. Newest day first, capped at 200 rows.
|
|
1607
|
+
#
|
|
1608
|
+
# _Requires permission: `costs:read`._
|
|
1466
1609
|
#
|
|
1467
1610
|
# GET /api/org/{orgId}/costs/anomalies
|
|
1468
1611
|
#
|
|
@@ -2295,7 +2438,8 @@ module Infrawrench
|
|
|
2295
2438
|
@transport = transport
|
|
2296
2439
|
end
|
|
2297
2440
|
|
|
2298
|
-
# The org's resource dependency graph,
|
|
2441
|
+
# The org's resource dependency graph, from synced cloud data and output
|
|
2442
|
+
# references
|
|
2299
2443
|
#
|
|
2300
2444
|
# _Requires permission: `resources:read`._
|
|
2301
2445
|
#
|
|
@@ -2696,19 +2840,106 @@ module Infrawrench
|
|
|
2696
2840
|
end
|
|
2697
2841
|
end
|
|
2698
2842
|
|
|
2843
|
+
# `client.digest.recipients`
|
|
2844
|
+
class DigestRecipientsNamespace
|
|
2845
|
+
# @api private
|
|
2846
|
+
# @param transport [Transport]
|
|
2847
|
+
def initialize(transport)
|
|
2848
|
+
@transport = transport
|
|
2849
|
+
end
|
|
2850
|
+
|
|
2851
|
+
# Add a digest email recipient
|
|
2852
|
+
#
|
|
2853
|
+
# Adding an address the organization already has is a no-op that returns the
|
|
2854
|
+
# existing entry, so a double submit cannot double-deliver.
|
|
2855
|
+
#
|
|
2856
|
+
# POST /api/org/{orgId}/digest/recipients
|
|
2857
|
+
#
|
|
2858
|
+
# Raises on 400: Bad request
|
|
2859
|
+
#
|
|
2860
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
2861
|
+
# constructed with.
|
|
2862
|
+
# @param body [Hash, nil] Request body, shaped as `DigestEmailRecipientCreate`.
|
|
2863
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
2864
|
+
# @return [Hash] Parsed JSON, shaped as `DigestEmailRecipient` — see
|
|
2865
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
2866
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
2867
|
+
def create(org_id: nil, body: nil, request_options: nil)
|
|
2868
|
+
@transport.request(
|
|
2869
|
+
http_method: "POST",
|
|
2870
|
+
path: "/api/org/{orgId}/digest/recipients",
|
|
2871
|
+
path_params: { "orgId" => org_id },
|
|
2872
|
+
body: body,
|
|
2873
|
+
request_options: request_options
|
|
2874
|
+
)
|
|
2875
|
+
end
|
|
2876
|
+
|
|
2877
|
+
# Remove a digest email recipient
|
|
2878
|
+
#
|
|
2879
|
+
# DELETE /api/org/{orgId}/digest/recipients/{recipientId}
|
|
2880
|
+
#
|
|
2881
|
+
# Raises on 404: Not found
|
|
2882
|
+
#
|
|
2883
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
2884
|
+
# constructed with.
|
|
2885
|
+
# @param recipient_id [String] Recipient id
|
|
2886
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
2887
|
+
# @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
|
|
2888
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
2889
|
+
def delete(recipient_id:, org_id: nil, request_options: nil)
|
|
2890
|
+
@transport.request(
|
|
2891
|
+
http_method: "DELETE",
|
|
2892
|
+
path: "/api/org/{orgId}/digest/recipients/{recipientId}",
|
|
2893
|
+
path_params: { "orgId" => org_id, "recipientId" => recipient_id },
|
|
2894
|
+
request_options: request_options
|
|
2895
|
+
)
|
|
2896
|
+
end
|
|
2897
|
+
|
|
2898
|
+
# List the organization's digest email recipients
|
|
2899
|
+
#
|
|
2900
|
+
# Email is a digest-only transport, so its destinations are an
|
|
2901
|
+
# organization-level address list rather than a per-channel trigger.
|
|
2902
|
+
# Addresses need not belong to Infrawrench users — a finance alias is a
|
|
2903
|
+
# valid recipient.
|
|
2904
|
+
#
|
|
2905
|
+
# GET /api/org/{orgId}/digest/recipients
|
|
2906
|
+
#
|
|
2907
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
2908
|
+
# constructed with.
|
|
2909
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
2910
|
+
# @return [Hash] Parsed JSON, shaped as `DigestEmailRecipientList` — see
|
|
2911
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
2912
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
2913
|
+
def get(org_id: nil, request_options: nil)
|
|
2914
|
+
@transport.request(
|
|
2915
|
+
http_method: "GET",
|
|
2916
|
+
path: "/api/org/{orgId}/digest/recipients",
|
|
2917
|
+
path_params: { "orgId" => org_id },
|
|
2918
|
+
request_options: request_options
|
|
2919
|
+
)
|
|
2920
|
+
end
|
|
2921
|
+
end
|
|
2922
|
+
|
|
2699
2923
|
# `client.digest`
|
|
2700
2924
|
class DigestNamespace
|
|
2925
|
+
# @return [DigestRecipientsNamespace] `client.digest.recipients`
|
|
2926
|
+
attr_reader :recipients
|
|
2927
|
+
|
|
2701
2928
|
# @api private
|
|
2702
2929
|
# @param transport [Transport]
|
|
2703
2930
|
def initialize(transport)
|
|
2704
2931
|
@transport = transport
|
|
2932
|
+
@recipients = DigestRecipientsNamespace.new(@transport)
|
|
2705
2933
|
end
|
|
2706
2934
|
|
|
2707
2935
|
# Get the organization's weekly digest settings
|
|
2708
2936
|
#
|
|
2709
|
-
# The weekly digest is a
|
|
2710
|
-
# week-over-week movers), sync incidents, and resource
|
|
2711
|
-
# the Slack channels and Teams webhooks opted into the
|
|
2937
|
+
# The weekly digest is a summary of the last complete Monday-to-Sunday
|
|
2938
|
+
# week's spend (with week-over-week movers), sync incidents, and resource
|
|
2939
|
+
# churn, delivered to the Slack channels and Teams webhooks opted into the
|
|
2940
|
+
# weeklyDigest trigger and to the organization's digest email recipients.
|
|
2941
|
+
# The response also carries the outcome of the most recent delivery attempt
|
|
2942
|
+
# so a silently failing digest is visible.
|
|
2712
2943
|
#
|
|
2713
2944
|
# GET /api/org/{orgId}/digest
|
|
2714
2945
|
#
|
|
@@ -2729,8 +2960,10 @@ module Infrawrench
|
|
|
2729
2960
|
# Compose and send last week's digest now
|
|
2730
2961
|
#
|
|
2731
2962
|
# Ignores the schedule and the enabled flag — composes the digest for the
|
|
2732
|
-
# last complete week and
|
|
2733
|
-
#
|
|
2963
|
+
# last complete week and sends it to every opted-in channel and email
|
|
2964
|
+
# recipient. This is also the manual recovery for a partial delivery, which
|
|
2965
|
+
# is never retried automatically. Fails when nothing is routed to receive
|
|
2966
|
+
# the digest, or when every destination rejected it.
|
|
2734
2967
|
#
|
|
2735
2968
|
# POST /api/org/{orgId}/digest/send
|
|
2736
2969
|
#
|
|
@@ -2750,11 +2983,14 @@ module Infrawrench
|
|
|
2750
2983
|
)
|
|
2751
2984
|
end
|
|
2752
2985
|
|
|
2753
|
-
#
|
|
2986
|
+
# Update the weekly digest settings
|
|
2754
2987
|
#
|
|
2755
|
-
# Enabling schedules the first digest for next
|
|
2756
|
-
# rather than sending immediately — use POST
|
|
2757
|
-
# one.
|
|
2988
|
+
# Every field is optional. Enabling schedules the first digest for the next
|
|
2989
|
+
# configured send time rather than sending immediately — use POST
|
|
2990
|
+
# /digest/send for an immediate one. The week boundary follows `timezone`,
|
|
2991
|
+
# so the reported window is always the organization's own local
|
|
2992
|
+
# Monday-to-Sunday week. Changing the schedule clears any parked failure
|
|
2993
|
+
# state but never replays a week that already went out.
|
|
2758
2994
|
#
|
|
2759
2995
|
# PUT /api/org/{orgId}/digest
|
|
2760
2996
|
#
|
|
@@ -5608,7 +5844,7 @@ module Infrawrench
|
|
|
5608
5844
|
#
|
|
5609
5845
|
# The suspended run resumes within a few seconds of the decision landing.
|
|
5610
5846
|
#
|
|
5611
|
-
# _Requires permission: `
|
|
5847
|
+
# _Requires permission: `workflows:approve`._
|
|
5612
5848
|
#
|
|
5613
5849
|
# POST /api/org/{orgId}/workflow-approvals/{id}/approve
|
|
5614
5850
|
#
|
|
@@ -5635,7 +5871,7 @@ module Infrawrench
|
|
|
5635
5871
|
#
|
|
5636
5872
|
# Denial fails the waiting `infra.waitForApproval(...)` call in the run.
|
|
5637
5873
|
#
|
|
5638
|
-
# _Requires permission: `
|
|
5874
|
+
# _Requires permission: `workflows:approve`._
|
|
5639
5875
|
#
|
|
5640
5876
|
# POST /api/org/{orgId}/workflow-approvals/{id}/deny
|
|
5641
5877
|
#
|
|
@@ -5664,7 +5900,7 @@ module Infrawrench
|
|
|
5664
5900
|
# runs, newest first. Filter with `status=pending` to build an approvals
|
|
5665
5901
|
# inbox.
|
|
5666
5902
|
#
|
|
5667
|
-
# _Requires permission: `
|
|
5903
|
+
# _Requires permission: `workflows:read`._
|
|
5668
5904
|
#
|
|
5669
5905
|
# GET /api/org/{orgId}/workflow-approvals
|
|
5670
5906
|
#
|
data/lib/infrawrench/sdk.rb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# infrawrench-sdk v0.
|
|
3
|
+
# infrawrench-sdk v0.27.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 0.
|
|
6
|
+
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.27.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 v0.
|
|
3
|
+
# infrawrench-sdk v0.27.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 0.
|
|
6
|
+
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.27.0).
|
|
7
7
|
#
|
|
8
8
|
# DO NOT EDIT. Regenerate with:
|
|
9
9
|
# pnpm --filter @infrawrench/web generate:sdk
|
data/lib/infrawrench/version.rb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# infrawrench-sdk v0.
|
|
3
|
+
# infrawrench-sdk v0.27.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 0.
|
|
6
|
+
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.27.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 = "0.
|
|
18
|
+
VERSION = "0.27.0"
|
|
19
19
|
end
|
data/lib/infrawrench-sdk.rb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# infrawrench-sdk v0.
|
|
3
|
+
# infrawrench-sdk v0.27.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 0.
|
|
6
|
+
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.27.0).
|
|
7
7
|
#
|
|
8
8
|
# DO NOT EDIT. Regenerate with:
|
|
9
9
|
# pnpm --filter @infrawrench/web generate:sdk
|
data/sig/infrawrench/sdk.rbs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# infrawrench-sdk v0.
|
|
1
|
+
# infrawrench-sdk v0.27.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 0.
|
|
4
|
+
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.27.0).
|
|
5
5
|
#
|
|
6
6
|
# DO NOT EDIT. Regenerate with:
|
|
7
7
|
# pnpm --filter @infrawrench/web generate:sdk
|
|
@@ -452,6 +452,7 @@ module Infrawrench
|
|
|
452
452
|
type cost_anomaly = {
|
|
453
453
|
"id" => String,
|
|
454
454
|
"day" => String,
|
|
455
|
+
"kind" => "spike" | "new_source",
|
|
455
456
|
"dimension" => "provider" | "service",
|
|
456
457
|
"dimensionKey" => String,
|
|
457
458
|
"currency" => String,
|
|
@@ -462,6 +463,17 @@ module Infrawrench
|
|
|
462
463
|
"notifiedAt" => String | nil
|
|
463
464
|
}
|
|
464
465
|
|
|
466
|
+
# Spec schema: `CostAnomalySettings`.
|
|
467
|
+
type cost_anomaly_settings = {
|
|
468
|
+
"sigmas" => Numeric,
|
|
469
|
+
"minDeltaCents" => Integer,
|
|
470
|
+
"newSourceMinCents" => Integer,
|
|
471
|
+
"smsAlerts" => "off" | "new_source" | "all"
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
# Spec schema: `CostAnomalySettingsView`.
|
|
475
|
+
type cost_anomaly_settings_view = cost_anomaly_settings & { "smsConfigured" => bool }
|
|
476
|
+
|
|
465
477
|
# Spec schema: `CostDimension`.
|
|
466
478
|
type cost_dimension = "provider" | "account" | "service" | "region" | "resource" | "tag"
|
|
467
479
|
|
|
@@ -776,7 +788,9 @@ module Infrawrench
|
|
|
776
788
|
"consumerResourceId" => resource_id & untyped,
|
|
777
789
|
"consumerFieldKey" => String,
|
|
778
790
|
"providerResourceId" => resource_id & untyped,
|
|
779
|
-
"providerOutputKey" => String
|
|
791
|
+
"providerOutputKey" => String,
|
|
792
|
+
?"kind" => "output-ref" | "declared" | "containment" | "field-match",
|
|
793
|
+
?"label" => String
|
|
780
794
|
}
|
|
781
795
|
|
|
782
796
|
# Spec schema: `DependencyGraphNode`.
|
|
@@ -793,7 +807,11 @@ module Infrawrench
|
|
|
793
807
|
}
|
|
794
808
|
|
|
795
809
|
# Spec schema: `DependencyGraphResponse`.
|
|
796
|
-
type dependency_graph_response = {
|
|
810
|
+
type dependency_graph_response = {
|
|
811
|
+
"nodes" => Array[dependency_graph_node],
|
|
812
|
+
"edges" => Array[dependency_graph_edge],
|
|
813
|
+
"truncated" => bool
|
|
814
|
+
}
|
|
797
815
|
|
|
798
816
|
# Spec schema: `DeployCreatedResource`.
|
|
799
817
|
type deploy_created_resource = {
|
|
@@ -919,14 +937,54 @@ module Infrawrench
|
|
|
919
937
|
# Spec schema: `DescribeResponse`.
|
|
920
938
|
type describe_response = { "text" => String }
|
|
921
939
|
|
|
940
|
+
# Spec schema: `DigestEmailRecipient`.
|
|
941
|
+
type digest_email_recipient = { "id" => String, "email" => String }
|
|
942
|
+
|
|
943
|
+
# Spec schema: `DigestEmailRecipientCreate`.
|
|
944
|
+
type digest_email_recipient_create = { "email" => String }
|
|
945
|
+
|
|
946
|
+
# Spec schema: `DigestEmailRecipientList`.
|
|
947
|
+
type digest_email_recipient_list = { "recipients" => Array[digest_email_recipient] }
|
|
948
|
+
|
|
922
949
|
# Spec schema: `DigestSendResult`.
|
|
923
|
-
type digest_send_result = {
|
|
950
|
+
type digest_send_result = {
|
|
951
|
+
"ok" => bool,
|
|
952
|
+
"attempted" => Integer,
|
|
953
|
+
"succeeded" => Integer,
|
|
954
|
+
"slack" => digest_transport_result,
|
|
955
|
+
"teams" => digest_transport_result,
|
|
956
|
+
"email" => digest_transport_result
|
|
957
|
+
}
|
|
924
958
|
|
|
925
959
|
# Spec schema: `DigestSettings`.
|
|
926
|
-
type digest_settings = {
|
|
960
|
+
type digest_settings = {
|
|
961
|
+
"enabled" => bool,
|
|
962
|
+
"lastSentWeekStart" => String | nil,
|
|
963
|
+
"lastSentAt" => String | nil,
|
|
964
|
+
"timezone" => String,
|
|
965
|
+
"sendDay" => Integer,
|
|
966
|
+
"sendHour" => Integer,
|
|
967
|
+
"narrativeEnabled" => bool,
|
|
968
|
+
"narrativeAvailable" => bool,
|
|
969
|
+
"emailAvailable" => bool,
|
|
970
|
+
"attemptCount" => Integer,
|
|
971
|
+
"lastAttemptAt" => String | nil,
|
|
972
|
+
"lastStatus" => "pending" | "succeeded" | "partial" | "failed" | "no_targets" | nil,
|
|
973
|
+
"lastError" => String | nil,
|
|
974
|
+
"nextAttemptAt" => String | nil
|
|
975
|
+
}
|
|
927
976
|
|
|
928
977
|
# Spec schema: `DigestSettingsUpdate`.
|
|
929
|
-
type digest_settings_update = {
|
|
978
|
+
type digest_settings_update = {
|
|
979
|
+
?"enabled" => bool,
|
|
980
|
+
?"timezone" => String,
|
|
981
|
+
?"sendDay" => Integer,
|
|
982
|
+
?"sendHour" => Integer,
|
|
983
|
+
?"narrativeEnabled" => bool
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
# Spec schema: `DigestTransportResult`.
|
|
987
|
+
type digest_transport_result = { "attempted" => Integer, "succeeded" => Integer }
|
|
930
988
|
|
|
931
989
|
# Spec schema: `DockerCommandRequest`.
|
|
932
990
|
type docker_command_request = { "accountId" => String, "op" => String, ?"params" => json_object }
|
|
@@ -934,6 +992,27 @@ module Infrawrench
|
|
|
934
992
|
# Spec schema: `DockerCommandResponse`.
|
|
935
993
|
type docker_command_response = { ?"result" => json_object | untyped | nil }
|
|
936
994
|
|
|
995
|
+
# Spec schema: `DriftAlertSettings`.
|
|
996
|
+
type drift_alert_settings = {
|
|
997
|
+
"notifyCreated" => bool,
|
|
998
|
+
"notifyUpdated" => bool,
|
|
999
|
+
"notifyDeleted" => bool,
|
|
1000
|
+
"cooldownMinutes" => Integer,
|
|
1001
|
+
"minChanges" => Integer,
|
|
1002
|
+
"accountIds" => Array[String],
|
|
1003
|
+
"lastNotifiedAt" => String | nil
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
# Spec schema: `DriftAlertSettingsUpdate`.
|
|
1007
|
+
type drift_alert_settings_update = {
|
|
1008
|
+
?"notifyCreated" => bool,
|
|
1009
|
+
?"notifyUpdated" => bool,
|
|
1010
|
+
?"notifyDeleted" => bool,
|
|
1011
|
+
?"cooldownMinutes" => Integer,
|
|
1012
|
+
?"minChanges" => Integer,
|
|
1013
|
+
?"accountIds" => Array[String]
|
|
1014
|
+
}
|
|
1015
|
+
|
|
937
1016
|
# Spec schema: `EditableField`.
|
|
938
1017
|
type editable_field = {
|
|
939
1018
|
"key" => String,
|
|
@@ -1112,6 +1191,7 @@ module Infrawrench
|
|
|
1112
1191
|
"syncIncidents" => bool,
|
|
1113
1192
|
"budgetAlerts" => bool,
|
|
1114
1193
|
"anomalyAlerts" => bool,
|
|
1194
|
+
"resourceDrift" => bool,
|
|
1115
1195
|
"workflowPages" => bool,
|
|
1116
1196
|
"weeklyDigest" => bool
|
|
1117
1197
|
}
|
|
@@ -1123,6 +1203,7 @@ module Infrawrench
|
|
|
1123
1203
|
?"syncIncidents" => bool,
|
|
1124
1204
|
?"budgetAlerts" => bool,
|
|
1125
1205
|
?"anomalyAlerts" => bool,
|
|
1206
|
+
?"resourceDrift" => bool,
|
|
1126
1207
|
?"workflowPages" => bool,
|
|
1127
1208
|
?"weeklyDigest" => bool
|
|
1128
1209
|
}
|
|
@@ -1133,6 +1214,7 @@ module Infrawrench
|
|
|
1133
1214
|
?"syncIncidents" => bool,
|
|
1134
1215
|
?"budgetAlerts" => bool,
|
|
1135
1216
|
?"anomalyAlerts" => bool,
|
|
1217
|
+
?"resourceDrift" => bool,
|
|
1136
1218
|
?"workflowPages" => bool,
|
|
1137
1219
|
?"weeklyDigest" => bool
|
|
1138
1220
|
}
|
|
@@ -1272,6 +1354,9 @@ module Infrawrench
|
|
|
1272
1354
|
| "storage:write"
|
|
1273
1355
|
| "dashboards:read"
|
|
1274
1356
|
| "dashboards:write"
|
|
1357
|
+
| "workflows:read"
|
|
1358
|
+
| "workflows:write"
|
|
1359
|
+
| "workflows:approve"
|
|
1275
1360
|
| "deployments:read"
|
|
1276
1361
|
| "deployments:plan"
|
|
1277
1362
|
| "deployments:write"
|
|
@@ -1607,6 +1692,7 @@ module Infrawrench
|
|
|
1607
1692
|
| "azure-app-gateway"
|
|
1608
1693
|
| "azure-app-registration"
|
|
1609
1694
|
| "azure-app-service"
|
|
1695
|
+
| "azure-app-service-plan"
|
|
1610
1696
|
| "azure-container-instance"
|
|
1611
1697
|
| "azure-container-registry"
|
|
1612
1698
|
| "azure-cosmos-db"
|
|
@@ -1701,6 +1787,7 @@ module Infrawrench
|
|
|
1701
1787
|
| "databricks-workspace-object"
|
|
1702
1788
|
| "dataflow-job"
|
|
1703
1789
|
| "dataset"
|
|
1790
|
+
| "db-subnet-group"
|
|
1704
1791
|
| "db-user"
|
|
1705
1792
|
| "dedicated-inference"
|
|
1706
1793
|
| "deployed-model"
|
|
@@ -1883,6 +1970,7 @@ module Infrawrench
|
|
|
1883
1970
|
| "redirect-rule"
|
|
1884
1971
|
| "redis-instance"
|
|
1885
1972
|
| "redshift-cluster"
|
|
1973
|
+
| "reserved-ip"
|
|
1886
1974
|
| "route-table"
|
|
1887
1975
|
| "route53-health-check"
|
|
1888
1976
|
| "route53-hosted-zone"
|
|
@@ -2118,6 +2206,7 @@ module Infrawrench
|
|
|
2118
2206
|
"syncIncidents" => bool,
|
|
2119
2207
|
"budgetAlerts" => bool,
|
|
2120
2208
|
"anomalyAlerts" => bool,
|
|
2209
|
+
"resourceDrift" => bool,
|
|
2121
2210
|
"workflowPages" => bool,
|
|
2122
2211
|
"weeklyDigest" => bool
|
|
2123
2212
|
}
|
|
@@ -2131,6 +2220,7 @@ module Infrawrench
|
|
|
2131
2220
|
?"syncIncidents" => bool,
|
|
2132
2221
|
?"budgetAlerts" => bool,
|
|
2133
2222
|
?"anomalyAlerts" => bool,
|
|
2223
|
+
?"resourceDrift" => bool,
|
|
2134
2224
|
?"workflowPages" => bool,
|
|
2135
2225
|
?"weeklyDigest" => bool
|
|
2136
2226
|
}
|
|
@@ -2140,6 +2230,7 @@ module Infrawrench
|
|
|
2140
2230
|
?"syncIncidents" => bool,
|
|
2141
2231
|
?"budgetAlerts" => bool,
|
|
2142
2232
|
?"anomalyAlerts" => bool,
|
|
2233
|
+
?"resourceDrift" => bool,
|
|
2143
2234
|
?"workflowPages" => bool,
|
|
2144
2235
|
?"weeklyDigest" => bool
|
|
2145
2236
|
}
|
|
@@ -2490,7 +2581,14 @@ module Infrawrench
|
|
|
2490
2581
|
def update: (id: String, body: change_freeze_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> change_freeze
|
|
2491
2582
|
end
|
|
2492
2583
|
|
|
2584
|
+
class ChangesAlertSettingsNamespace
|
|
2585
|
+
def initialize: (Transport) -> void
|
|
2586
|
+
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> drift_alert_settings
|
|
2587
|
+
def update: (?org_id: String?, ?body: drift_alert_settings_update?, ?request_options: Hash[Symbol, untyped]?) -> drift_alert_settings
|
|
2588
|
+
end
|
|
2589
|
+
|
|
2493
2590
|
class ChangesNamespace
|
|
2591
|
+
attr_reader alert_settings: ChangesAlertSettingsNamespace
|
|
2494
2592
|
def initialize: (Transport) -> void
|
|
2495
2593
|
def get: (?org_id: String?, ?page: Integer?, ?page_size: Integer?, ?account_id: String?, ?resource_id: String?, ?kind: resource_change_kind?, ?from: String?, ?to: String?, ?request_options: Hash[Symbol, untyped]?) -> resource_change_feed_response
|
|
2496
2594
|
def resource: (resource_id: String, ?org_id: String?, ?limit: Integer?, ?request_options: Hash[Symbol, untyped]?) -> resource_change_list_response
|
|
@@ -2503,7 +2601,14 @@ module Infrawrench
|
|
|
2503
2601
|
def templates: (body: connect_templates_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> connect_templates_response
|
|
2504
2602
|
end
|
|
2505
2603
|
|
|
2604
|
+
class CostsAnomalySettingsNamespace
|
|
2605
|
+
def initialize: (Transport) -> void
|
|
2606
|
+
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_anomaly_settings_view
|
|
2607
|
+
def update: (body: cost_anomaly_settings, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_anomaly_settings_view
|
|
2608
|
+
end
|
|
2609
|
+
|
|
2506
2610
|
class CostsNamespace
|
|
2611
|
+
attr_reader anomaly_settings: CostsAnomalySettingsNamespace
|
|
2507
2612
|
def initialize: (Transport) -> void
|
|
2508
2613
|
def anomalies: (?org_id: String?, ?days: String?, ?request_options: Hash[Symbol, untyped]?) -> { "anomalies" => Array[cost_anomaly] }
|
|
2509
2614
|
def dimensions: (dimension: "provider" | "account" | "service" | "region" | "resource" | "tag" | "tag-keys", ?org_id: String?, ?tag_key: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_dimension_values
|
|
@@ -2591,7 +2696,15 @@ module Infrawrench
|
|
|
2591
2696
|
def repos: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[deploy_repo]
|
|
2592
2697
|
end
|
|
2593
2698
|
|
|
2699
|
+
class DigestRecipientsNamespace
|
|
2700
|
+
def initialize: (Transport) -> void
|
|
2701
|
+
def create: (?org_id: String?, ?body: digest_email_recipient_create?, ?request_options: Hash[Symbol, untyped]?) -> digest_email_recipient
|
|
2702
|
+
def delete: (recipient_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "ok" => bool }
|
|
2703
|
+
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> digest_email_recipient_list
|
|
2704
|
+
end
|
|
2705
|
+
|
|
2594
2706
|
class DigestNamespace
|
|
2707
|
+
attr_reader recipients: DigestRecipientsNamespace
|
|
2595
2708
|
def initialize: (Transport) -> void
|
|
2596
2709
|
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> digest_settings
|
|
2597
2710
|
def post_org_org_id_digest_send: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> digest_send_result
|
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: 0.
|
|
4
|
+
version: 0.27.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-07-31 00:00:00.000000000 Z
|
|
13
13
|
dependencies: []
|
|
14
|
-
description: Generated Ruby client for the Infrawrench API (v0.
|
|
14
|
+
description: Generated Ruby client for the Infrawrench API (v0.27.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 (v0.
|
|
61
|
+
summary: Generated Ruby client for the Infrawrench API (v0.27.0).
|
|
62
62
|
test_files: []
|