infrawrench-sdk 0.26.0 → 0.28.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 +364 -18
- 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 +139 -5
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: edc3a7dbc71d1e8a2dd3b550bc9f6a12c756099844446736c876b038517db51b
|
|
4
|
+
data.tar.gz: 9ba35c615b9ffe37cf2fbf7959253f40c4ca8755f74a1766706499800c59e3ce
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ce60e4429633e19bf757cd0fabf572b7a8412362affe398b409a4293fe7aca6cbf20ee17744367f8c1810c4ad8f0f947583ed31d79ce13355407e2374e6c5ed3
|
|
7
|
+
data.tar.gz: 5c50424f9363ad95e86aa8e3197aa69411d90aa1ffa9df66bac0be5f8e9378befb0f5ab55151d88c4d9bff8651d9260b218b4ef1f0a5b405b13b1b6a8af17f45
|
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.28.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
|
+
257 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.28.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.28.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.28.0)."
|
|
21
|
+
spec.description = "Generated Ruby client for the Infrawrench API (v0.28.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.28.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.28.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
|
#
|
|
@@ -2697,19 +2840,106 @@ module Infrawrench
|
|
|
2697
2840
|
end
|
|
2698
2841
|
end
|
|
2699
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
|
+
|
|
2700
2923
|
# `client.digest`
|
|
2701
2924
|
class DigestNamespace
|
|
2925
|
+
# @return [DigestRecipientsNamespace] `client.digest.recipients`
|
|
2926
|
+
attr_reader :recipients
|
|
2927
|
+
|
|
2702
2928
|
# @api private
|
|
2703
2929
|
# @param transport [Transport]
|
|
2704
2930
|
def initialize(transport)
|
|
2705
2931
|
@transport = transport
|
|
2932
|
+
@recipients = DigestRecipientsNamespace.new(@transport)
|
|
2706
2933
|
end
|
|
2707
2934
|
|
|
2708
2935
|
# Get the organization's weekly digest settings
|
|
2709
2936
|
#
|
|
2710
|
-
# The weekly digest is a
|
|
2711
|
-
# week-over-week movers), sync incidents, and resource
|
|
2712
|
-
# 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.
|
|
2713
2943
|
#
|
|
2714
2944
|
# GET /api/org/{orgId}/digest
|
|
2715
2945
|
#
|
|
@@ -2730,8 +2960,10 @@ module Infrawrench
|
|
|
2730
2960
|
# Compose and send last week's digest now
|
|
2731
2961
|
#
|
|
2732
2962
|
# Ignores the schedule and the enabled flag — composes the digest for the
|
|
2733
|
-
# last complete week and
|
|
2734
|
-
#
|
|
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.
|
|
2735
2967
|
#
|
|
2736
2968
|
# POST /api/org/{orgId}/digest/send
|
|
2737
2969
|
#
|
|
@@ -2751,11 +2983,14 @@ module Infrawrench
|
|
|
2751
2983
|
)
|
|
2752
2984
|
end
|
|
2753
2985
|
|
|
2754
|
-
#
|
|
2986
|
+
# Update the weekly digest settings
|
|
2755
2987
|
#
|
|
2756
|
-
# Enabling schedules the first digest for next
|
|
2757
|
-
# rather than sending immediately — use POST
|
|
2758
|
-
# 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.
|
|
2759
2994
|
#
|
|
2760
2995
|
# PUT /api/org/{orgId}/digest
|
|
2761
2996
|
#
|
|
@@ -5609,7 +5844,7 @@ module Infrawrench
|
|
|
5609
5844
|
#
|
|
5610
5845
|
# The suspended run resumes within a few seconds of the decision landing.
|
|
5611
5846
|
#
|
|
5612
|
-
# _Requires permission: `
|
|
5847
|
+
# _Requires permission: `workflows:approve`._
|
|
5613
5848
|
#
|
|
5614
5849
|
# POST /api/org/{orgId}/workflow-approvals/{id}/approve
|
|
5615
5850
|
#
|
|
@@ -5636,7 +5871,7 @@ module Infrawrench
|
|
|
5636
5871
|
#
|
|
5637
5872
|
# Denial fails the waiting `infra.waitForApproval(...)` call in the run.
|
|
5638
5873
|
#
|
|
5639
|
-
# _Requires permission: `
|
|
5874
|
+
# _Requires permission: `workflows:approve`._
|
|
5640
5875
|
#
|
|
5641
5876
|
# POST /api/org/{orgId}/workflow-approvals/{id}/deny
|
|
5642
5877
|
#
|
|
@@ -5665,7 +5900,7 @@ module Infrawrench
|
|
|
5665
5900
|
# runs, newest first. Filter with `status=pending` to build an approvals
|
|
5666
5901
|
# inbox.
|
|
5667
5902
|
#
|
|
5668
|
-
# _Requires permission: `
|
|
5903
|
+
# _Requires permission: `workflows:read`._
|
|
5669
5904
|
#
|
|
5670
5905
|
# GET /api/org/{orgId}/workflow-approvals
|
|
5671
5906
|
#
|
|
@@ -5691,6 +5926,114 @@ module Infrawrench
|
|
|
5691
5926
|
end
|
|
5692
5927
|
end
|
|
5693
5928
|
|
|
5929
|
+
# `client.workflows.schedule`
|
|
5930
|
+
class WorkflowsScheduleNamespace
|
|
5931
|
+
# @api private
|
|
5932
|
+
# @param transport [Transport]
|
|
5933
|
+
def initialize(transport)
|
|
5934
|
+
@transport = transport
|
|
5935
|
+
end
|
|
5936
|
+
|
|
5937
|
+
# Remove a workflow's cron schedule
|
|
5938
|
+
#
|
|
5939
|
+
# Reverts the workflow's trigger to manual and clears the pending fire time.
|
|
5940
|
+
# A no-op when the trigger is not cron.
|
|
5941
|
+
#
|
|
5942
|
+
# _Requires permission: `dashboards:write`._
|
|
5943
|
+
#
|
|
5944
|
+
# DELETE /api/org/{orgId}/workflows/{id}/schedule
|
|
5945
|
+
#
|
|
5946
|
+
# Raises on 404: Not found
|
|
5947
|
+
#
|
|
5948
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
5949
|
+
# constructed with.
|
|
5950
|
+
# @param id [String] Workflow id
|
|
5951
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
5952
|
+
# @return [Hash] Parsed JSON, shaped as `Ok` — see `sig/infrawrench/sdk.rbs`.
|
|
5953
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
5954
|
+
def delete(id:, org_id: nil, request_options: nil)
|
|
5955
|
+
@transport.request(
|
|
5956
|
+
http_method: "DELETE",
|
|
5957
|
+
path: "/api/org/{orgId}/workflows/{id}/schedule",
|
|
5958
|
+
path_params: { "orgId" => org_id, "id" => id },
|
|
5959
|
+
request_options: request_options
|
|
5960
|
+
)
|
|
5961
|
+
end
|
|
5962
|
+
|
|
5963
|
+
# Get a workflow's cron schedule
|
|
5964
|
+
#
|
|
5965
|
+
# The schedule view of the workflow's trigger, with the next few computed
|
|
5966
|
+
# fire times. `schedule` is null when the workflow is triggered some other
|
|
5967
|
+
# way (manual, git, budget).
|
|
5968
|
+
#
|
|
5969
|
+
# _Requires permission: `dashboards:read`._
|
|
5970
|
+
#
|
|
5971
|
+
# GET /api/org/{orgId}/workflows/{id}/schedule
|
|
5972
|
+
#
|
|
5973
|
+
# Raises on 404: Not found
|
|
5974
|
+
#
|
|
5975
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
5976
|
+
# constructed with.
|
|
5977
|
+
# @param id [String] Workflow id
|
|
5978
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
5979
|
+
# @return [Hash] Parsed JSON, shaped as `WorkflowScheduleResponse` — see
|
|
5980
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
5981
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
5982
|
+
def get(id:, org_id: nil, request_options: nil)
|
|
5983
|
+
@transport.request(
|
|
5984
|
+
http_method: "GET",
|
|
5985
|
+
path: "/api/org/{orgId}/workflows/{id}/schedule",
|
|
5986
|
+
path_params: { "orgId" => org_id, "id" => id },
|
|
5987
|
+
request_options: request_options
|
|
5988
|
+
)
|
|
5989
|
+
end
|
|
5990
|
+
|
|
5991
|
+
# Create or replace a workflow's cron schedule
|
|
5992
|
+
#
|
|
5993
|
+
# Sets the workflow's trigger to cron with the given expression and
|
|
5994
|
+
# timezone, validating both, and computes the next fire time. The workflow
|
|
5995
|
+
# fires at the schedule's next occurrence — never immediately on save.
|
|
5996
|
+
#
|
|
5997
|
+
# _Requires permission: `dashboards:write`._
|
|
5998
|
+
#
|
|
5999
|
+
# PUT /api/org/{orgId}/workflows/{id}/schedule
|
|
6000
|
+
#
|
|
6001
|
+
# Raises on 400: Bad request
|
|
6002
|
+
#
|
|
6003
|
+
# Raises on 404: Not found
|
|
6004
|
+
#
|
|
6005
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
6006
|
+
# constructed with.
|
|
6007
|
+
# @param id [String] Workflow id
|
|
6008
|
+
# @param body [Hash] Request body, shaped as `WorkflowScheduleInput`.
|
|
6009
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
6010
|
+
# @return [Hash] Parsed JSON, shaped as `WorkflowScheduleResponse` — see
|
|
6011
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
6012
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
6013
|
+
def update(id:, body:, org_id: nil, request_options: nil)
|
|
6014
|
+
@transport.request(
|
|
6015
|
+
http_method: "PUT",
|
|
6016
|
+
path: "/api/org/{orgId}/workflows/{id}/schedule",
|
|
6017
|
+
path_params: { "orgId" => org_id, "id" => id },
|
|
6018
|
+
body: body,
|
|
6019
|
+
request_options: request_options
|
|
6020
|
+
)
|
|
6021
|
+
end
|
|
6022
|
+
end
|
|
6023
|
+
|
|
6024
|
+
# `client.workflows`
|
|
6025
|
+
class WorkflowsNamespace
|
|
6026
|
+
# @return [WorkflowsScheduleNamespace] `client.workflows.schedule`
|
|
6027
|
+
attr_reader :schedule
|
|
6028
|
+
|
|
6029
|
+
# @api private
|
|
6030
|
+
# @param transport [Transport]
|
|
6031
|
+
def initialize(transport)
|
|
6032
|
+
@transport = transport
|
|
6033
|
+
@schedule = WorkflowsScheduleNamespace.new(@transport)
|
|
6034
|
+
end
|
|
6035
|
+
end
|
|
6036
|
+
|
|
5694
6037
|
# A client for the Infrawrench API.
|
|
5695
6038
|
#
|
|
5696
6039
|
# client = Infrawrench::APIV1Client.new(
|
|
@@ -5777,6 +6120,8 @@ module Infrawrench
|
|
|
5777
6120
|
attr_reader :team
|
|
5778
6121
|
# @return [WorkflowApprovalsNamespace] `client.workflow_approvals`
|
|
5779
6122
|
attr_reader :workflow_approvals
|
|
6123
|
+
# @return [WorkflowsNamespace] `client.workflows`
|
|
6124
|
+
attr_reader :workflows
|
|
5780
6125
|
|
|
5781
6126
|
# @param options [Hash] Client configuration — `:base_url`, `:api_key`,
|
|
5782
6127
|
# `:org_id`, `:headers`, `:timeout`, `:open_timeout` and `:http_handler`.
|
|
@@ -5820,6 +6165,7 @@ module Infrawrench
|
|
|
5820
6165
|
@storage = StorageNamespace.new(@transport)
|
|
5821
6166
|
@team = TeamNamespace.new(@transport)
|
|
5822
6167
|
@workflow_approvals = WorkflowApprovalsNamespace.new(@transport)
|
|
6168
|
+
@workflows = WorkflowsNamespace.new(@transport)
|
|
5823
6169
|
end
|
|
5824
6170
|
end
|
|
5825
6171
|
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.28.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.28.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.28.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.28.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.28.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.28.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.28.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.28.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.28.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.28.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.28.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
|
|
|
@@ -925,14 +937,54 @@ module Infrawrench
|
|
|
925
937
|
# Spec schema: `DescribeResponse`.
|
|
926
938
|
type describe_response = { "text" => String }
|
|
927
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
|
+
|
|
928
949
|
# Spec schema: `DigestSendResult`.
|
|
929
|
-
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
|
+
}
|
|
930
958
|
|
|
931
959
|
# Spec schema: `DigestSettings`.
|
|
932
|
-
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
|
+
}
|
|
933
976
|
|
|
934
977
|
# Spec schema: `DigestSettingsUpdate`.
|
|
935
|
-
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 }
|
|
936
988
|
|
|
937
989
|
# Spec schema: `DockerCommandRequest`.
|
|
938
990
|
type docker_command_request = { "accountId" => String, "op" => String, ?"params" => json_object }
|
|
@@ -940,6 +992,27 @@ module Infrawrench
|
|
|
940
992
|
# Spec schema: `DockerCommandResponse`.
|
|
941
993
|
type docker_command_response = { ?"result" => json_object | untyped | nil }
|
|
942
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
|
+
|
|
943
1016
|
# Spec schema: `EditableField`.
|
|
944
1017
|
type editable_field = {
|
|
945
1018
|
"key" => String,
|
|
@@ -1118,6 +1191,7 @@ module Infrawrench
|
|
|
1118
1191
|
"syncIncidents" => bool,
|
|
1119
1192
|
"budgetAlerts" => bool,
|
|
1120
1193
|
"anomalyAlerts" => bool,
|
|
1194
|
+
"resourceDrift" => bool,
|
|
1121
1195
|
"workflowPages" => bool,
|
|
1122
1196
|
"weeklyDigest" => bool
|
|
1123
1197
|
}
|
|
@@ -1129,6 +1203,7 @@ module Infrawrench
|
|
|
1129
1203
|
?"syncIncidents" => bool,
|
|
1130
1204
|
?"budgetAlerts" => bool,
|
|
1131
1205
|
?"anomalyAlerts" => bool,
|
|
1206
|
+
?"resourceDrift" => bool,
|
|
1132
1207
|
?"workflowPages" => bool,
|
|
1133
1208
|
?"weeklyDigest" => bool
|
|
1134
1209
|
}
|
|
@@ -1139,6 +1214,7 @@ module Infrawrench
|
|
|
1139
1214
|
?"syncIncidents" => bool,
|
|
1140
1215
|
?"budgetAlerts" => bool,
|
|
1141
1216
|
?"anomalyAlerts" => bool,
|
|
1217
|
+
?"resourceDrift" => bool,
|
|
1142
1218
|
?"workflowPages" => bool,
|
|
1143
1219
|
?"weeklyDigest" => bool
|
|
1144
1220
|
}
|
|
@@ -1278,6 +1354,9 @@ module Infrawrench
|
|
|
1278
1354
|
| "storage:write"
|
|
1279
1355
|
| "dashboards:read"
|
|
1280
1356
|
| "dashboards:write"
|
|
1357
|
+
| "workflows:read"
|
|
1358
|
+
| "workflows:write"
|
|
1359
|
+
| "workflows:approve"
|
|
1281
1360
|
| "deployments:read"
|
|
1282
1361
|
| "deployments:plan"
|
|
1283
1362
|
| "deployments:write"
|
|
@@ -1891,6 +1970,7 @@ module Infrawrench
|
|
|
1891
1970
|
| "redirect-rule"
|
|
1892
1971
|
| "redis-instance"
|
|
1893
1972
|
| "redshift-cluster"
|
|
1973
|
+
| "reserved-ip"
|
|
1894
1974
|
| "route-table"
|
|
1895
1975
|
| "route53-health-check"
|
|
1896
1976
|
| "route53-hosted-zone"
|
|
@@ -2126,6 +2206,7 @@ module Infrawrench
|
|
|
2126
2206
|
"syncIncidents" => bool,
|
|
2127
2207
|
"budgetAlerts" => bool,
|
|
2128
2208
|
"anomalyAlerts" => bool,
|
|
2209
|
+
"resourceDrift" => bool,
|
|
2129
2210
|
"workflowPages" => bool,
|
|
2130
2211
|
"weeklyDigest" => bool
|
|
2131
2212
|
}
|
|
@@ -2139,6 +2220,7 @@ module Infrawrench
|
|
|
2139
2220
|
?"syncIncidents" => bool,
|
|
2140
2221
|
?"budgetAlerts" => bool,
|
|
2141
2222
|
?"anomalyAlerts" => bool,
|
|
2223
|
+
?"resourceDrift" => bool,
|
|
2142
2224
|
?"workflowPages" => bool,
|
|
2143
2225
|
?"weeklyDigest" => bool
|
|
2144
2226
|
}
|
|
@@ -2148,6 +2230,7 @@ module Infrawrench
|
|
|
2148
2230
|
?"syncIncidents" => bool,
|
|
2149
2231
|
?"budgetAlerts" => bool,
|
|
2150
2232
|
?"anomalyAlerts" => bool,
|
|
2233
|
+
?"resourceDrift" => bool,
|
|
2151
2234
|
?"workflowPages" => bool,
|
|
2152
2235
|
?"weeklyDigest" => bool
|
|
2153
2236
|
}
|
|
@@ -2387,6 +2470,22 @@ module Infrawrench
|
|
|
2387
2470
|
# Spec schema: `WorkflowPinRequest`.
|
|
2388
2471
|
type workflow_pin_request = { "dashboardId" => String, "workflowId" => String }
|
|
2389
2472
|
|
|
2473
|
+
# Spec schema: `WorkflowSchedule`.
|
|
2474
|
+
type workflow_schedule = {
|
|
2475
|
+
"expression" => String,
|
|
2476
|
+
"timezone" => String | nil,
|
|
2477
|
+
"enabled" => bool,
|
|
2478
|
+
"lastRunAt" => String | nil,
|
|
2479
|
+
"nextRunAt" => String | nil,
|
|
2480
|
+
"nextRuns" => Array[String]
|
|
2481
|
+
}
|
|
2482
|
+
|
|
2483
|
+
# Spec schema: `WorkflowScheduleInput`.
|
|
2484
|
+
type workflow_schedule_input = { "expression" => String, ?"timezone" => String | nil, ?"enabled" => bool }
|
|
2485
|
+
|
|
2486
|
+
# Spec schema: `WorkflowScheduleResponse`.
|
|
2487
|
+
type workflow_schedule_response = { "schedule" => workflow_schedule | nil | nil }
|
|
2488
|
+
|
|
2390
2489
|
class AccountsCredentialsNamespace
|
|
2391
2490
|
def initialize: (Transport) -> void
|
|
2392
2491
|
def get: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Hash[String, String]
|
|
@@ -2498,7 +2597,14 @@ module Infrawrench
|
|
|
2498
2597
|
def update: (id: String, body: change_freeze_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> change_freeze
|
|
2499
2598
|
end
|
|
2500
2599
|
|
|
2600
|
+
class ChangesAlertSettingsNamespace
|
|
2601
|
+
def initialize: (Transport) -> void
|
|
2602
|
+
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> drift_alert_settings
|
|
2603
|
+
def update: (?org_id: String?, ?body: drift_alert_settings_update?, ?request_options: Hash[Symbol, untyped]?) -> drift_alert_settings
|
|
2604
|
+
end
|
|
2605
|
+
|
|
2501
2606
|
class ChangesNamespace
|
|
2607
|
+
attr_reader alert_settings: ChangesAlertSettingsNamespace
|
|
2502
2608
|
def initialize: (Transport) -> void
|
|
2503
2609
|
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
|
|
2504
2610
|
def resource: (resource_id: String, ?org_id: String?, ?limit: Integer?, ?request_options: Hash[Symbol, untyped]?) -> resource_change_list_response
|
|
@@ -2511,7 +2617,14 @@ module Infrawrench
|
|
|
2511
2617
|
def templates: (body: connect_templates_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> connect_templates_response
|
|
2512
2618
|
end
|
|
2513
2619
|
|
|
2620
|
+
class CostsAnomalySettingsNamespace
|
|
2621
|
+
def initialize: (Transport) -> void
|
|
2622
|
+
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_anomaly_settings_view
|
|
2623
|
+
def update: (body: cost_anomaly_settings, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_anomaly_settings_view
|
|
2624
|
+
end
|
|
2625
|
+
|
|
2514
2626
|
class CostsNamespace
|
|
2627
|
+
attr_reader anomaly_settings: CostsAnomalySettingsNamespace
|
|
2515
2628
|
def initialize: (Transport) -> void
|
|
2516
2629
|
def anomalies: (?org_id: String?, ?days: String?, ?request_options: Hash[Symbol, untyped]?) -> { "anomalies" => Array[cost_anomaly] }
|
|
2517
2630
|
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
|
|
@@ -2599,7 +2712,15 @@ module Infrawrench
|
|
|
2599
2712
|
def repos: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[deploy_repo]
|
|
2600
2713
|
end
|
|
2601
2714
|
|
|
2715
|
+
class DigestRecipientsNamespace
|
|
2716
|
+
def initialize: (Transport) -> void
|
|
2717
|
+
def create: (?org_id: String?, ?body: digest_email_recipient_create?, ?request_options: Hash[Symbol, untyped]?) -> digest_email_recipient
|
|
2718
|
+
def delete: (recipient_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "ok" => bool }
|
|
2719
|
+
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> digest_email_recipient_list
|
|
2720
|
+
end
|
|
2721
|
+
|
|
2602
2722
|
class DigestNamespace
|
|
2723
|
+
attr_reader recipients: DigestRecipientsNamespace
|
|
2603
2724
|
def initialize: (Transport) -> void
|
|
2604
2725
|
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> digest_settings
|
|
2605
2726
|
def post_org_org_id_digest_send: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> digest_send_result
|
|
@@ -2837,6 +2958,18 @@ module Infrawrench
|
|
|
2837
2958
|
def list: (?org_id: String?, ?status: workflow_approval_status?, ?workflow_id: String?, ?run_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[workflow_approval]
|
|
2838
2959
|
end
|
|
2839
2960
|
|
|
2961
|
+
class WorkflowsScheduleNamespace
|
|
2962
|
+
def initialize: (Transport) -> void
|
|
2963
|
+
def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
2964
|
+
def get: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> workflow_schedule_response
|
|
2965
|
+
def update: (id: String, body: workflow_schedule_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> workflow_schedule_response
|
|
2966
|
+
end
|
|
2967
|
+
|
|
2968
|
+
class WorkflowsNamespace
|
|
2969
|
+
attr_reader schedule: WorkflowsScheduleNamespace
|
|
2970
|
+
def initialize: (Transport) -> void
|
|
2971
|
+
end
|
|
2972
|
+
|
|
2840
2973
|
class APIV1Client
|
|
2841
2974
|
attr_reader transport: Transport
|
|
2842
2975
|
attr_reader accounts: AccountsNamespace
|
|
@@ -2876,6 +3009,7 @@ module Infrawrench
|
|
|
2876
3009
|
attr_reader storage: StorageNamespace
|
|
2877
3010
|
attr_reader team: TeamNamespace
|
|
2878
3011
|
attr_reader workflow_approvals: WorkflowApprovalsNamespace
|
|
3012
|
+
attr_reader workflows: WorkflowsNamespace
|
|
2879
3013
|
def initialize: (**untyped) -> void
|
|
2880
3014
|
end
|
|
2881
3015
|
end
|
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.28.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-
|
|
12
|
+
date: 2026-08-03 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.28.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.28.0).
|
|
62
62
|
test_files: []
|