infrawrench-sdk 0.22.0 → 0.24.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: 97429595e6e2da66c5e85eb15c0c61865b85da8db972b10d56d30bf861d672cb
4
- data.tar.gz: 97e98d3f145425009e32f2f8fc757187ff9a702e06e017269e2d8b0d96eba5ba
3
+ metadata.gz: 2f3c7d4c3ca8aec3a7c72da6125f69114fcc6c7883caff63ab6243ad8fe78be6
4
+ data.tar.gz: 7462964dfad09e885314cf44a44de18918e8a1d917337ea29c4bd194283d9874
5
5
  SHA512:
6
- metadata.gz: d536e7d79123f4c16c7548a13ae081184c42b2f1cb1907cf9bf0fecdea8e0f074d7df0db4cc36d09614971565b6936c520a7b92b69fb1438a6d5c0163e0887f0
7
- data.tar.gz: ef68ff4e013d77135b55ee6d191d21389bccc7028766ca220648544687e2b62f86fe282457d5b919fc781e865ed919443bc872efc97f7d6bf807cf167a9a5287
6
+ metadata.gz: 0771d27c7c0aa99e4fccc1766cb84321e51cdf7847578e1de04a02bb85f0e838d5d2fa0a7526891cf30d6858962a85c29ef728c019a8b2387534fd52ad5acfe1
7
+ data.tar.gz: 0145aca866c89bc321c346867174a154f76ba9049cb949e4e514241b992a192933eab7d7894387b8dc988f3a341c554215b5306aebd2b85aba1f8ee8f0c0e6f3
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.22.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `0.24.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
- 238 schemas, as RBS type aliases that steep and TypeProf can read.
44
+ 243 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 v0.22.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.24.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.22.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.24.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.22.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v0.22.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 (v0.24.0)."
21
+ spec.description = "Generated Ruby client for the Infrawrench API (v0.24.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 v0.22.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.24.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.22.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.24.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1112,6 +1112,163 @@ module Infrawrench
1112
1112
  end
1113
1113
  end
1114
1114
 
1115
+ # `client.change_freezes`
1116
+ class ChangeFreezesNamespace
1117
+ # @api private
1118
+ # @param transport [Transport]
1119
+ def initialize(transport)
1120
+ @transport = transport
1121
+ end
1122
+
1123
+ # Declare a change freeze window
1124
+ #
1125
+ # While the freeze is in effect, destructive actions (resource deletion,
1126
+ # destructive plugin actions, secret-version destroys, deployment rollbacks)
1127
+ # return `423` unless explicitly overridden by a caller with
1128
+ # `freezes:override`.
1129
+ #
1130
+ # _Requires permission: `freezes:write`._
1131
+ #
1132
+ # POST /api/org/{orgId}/change-freezes
1133
+ #
1134
+ # Raises on 400: Bad request
1135
+ #
1136
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1137
+ # constructed with.
1138
+ # @param body [Hash] Request body, shaped as `ChangeFreezeInput`.
1139
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1140
+ # @return [Hash] Parsed JSON, shaped as `ChangeFreeze` — see `sig/infrawrench/sdk.rbs`.
1141
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1142
+ def create(body:, org_id: nil, request_options: nil)
1143
+ @transport.request(
1144
+ http_method: "POST",
1145
+ path: "/api/org/{orgId}/change-freezes",
1146
+ path_params: { "orgId" => org_id },
1147
+ body: body,
1148
+ request_options: request_options
1149
+ )
1150
+ end
1151
+
1152
+ # Delete a change freeze window
1153
+ #
1154
+ # _Requires permission: `freezes:write`._
1155
+ #
1156
+ # DELETE /api/org/{orgId}/change-freezes/{id}
1157
+ #
1158
+ # Raises on 404: Not found
1159
+ #
1160
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1161
+ # constructed with.
1162
+ # @param id [String]
1163
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1164
+ # @return [Hash] Parsed JSON, shaped as `Ok` — see `sig/infrawrench/sdk.rbs`.
1165
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1166
+ def delete(id:, org_id: nil, request_options: nil)
1167
+ @transport.request(
1168
+ http_method: "DELETE",
1169
+ path: "/api/org/{orgId}/change-freezes/{id}",
1170
+ path_params: { "orgId" => org_id, "id" => id },
1171
+ request_options: request_options
1172
+ )
1173
+ end
1174
+
1175
+ # End a change freeze now
1176
+ #
1177
+ # _Requires permission: `freezes:write`._
1178
+ #
1179
+ # POST /api/org/{orgId}/change-freezes/{id}/end
1180
+ #
1181
+ # Raises on 404: Not found
1182
+ #
1183
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1184
+ # constructed with.
1185
+ # @param id [String]
1186
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1187
+ # @return [Hash] Parsed JSON, shaped as `ChangeFreeze` — see `sig/infrawrench/sdk.rbs`.
1188
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1189
+ def post_org_org_id_change_freezes_id_end(id:, org_id: nil, request_options: nil)
1190
+ @transport.request(
1191
+ http_method: "POST",
1192
+ path: "/api/org/{orgId}/change-freezes/{id}/end",
1193
+ path_params: { "orgId" => org_id, "id" => id },
1194
+ request_options: request_options
1195
+ )
1196
+ end
1197
+
1198
+ # List change freeze windows, newest first
1199
+ #
1200
+ # _Requires permission: `freezes:read`._
1201
+ #
1202
+ # GET /api/org/{orgId}/change-freezes
1203
+ #
1204
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1205
+ # constructed with.
1206
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1207
+ # @return [Array<Hash>] Parsed JSON, shaped as `Array<ChangeFreeze>` — see
1208
+ # `sig/infrawrench/sdk.rbs`.
1209
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1210
+ def list(org_id: nil, request_options: nil)
1211
+ @transport.request(
1212
+ http_method: "GET",
1213
+ path: "/api/org/{orgId}/change-freezes",
1214
+ path_params: { "orgId" => org_id },
1215
+ request_options: request_options
1216
+ )
1217
+ end
1218
+
1219
+ # The freeze currently in effect, if any
1220
+ #
1221
+ # Returns the active freeze window (active, started, not yet past its end
1222
+ # time) or `freeze: null`. Clients poll this to show the freeze banner and
1223
+ # pre-warn before destructive actions.
1224
+ #
1225
+ # _Requires permission: `freezes:read`._
1226
+ #
1227
+ # GET /api/org/{orgId}/change-freezes/status
1228
+ #
1229
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1230
+ # constructed with.
1231
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1232
+ # @return [Hash] Parsed JSON, shaped as `ChangeFreezeStatus` — see
1233
+ # `sig/infrawrench/sdk.rbs`.
1234
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1235
+ def status(org_id: nil, request_options: nil)
1236
+ @transport.request(
1237
+ http_method: "GET",
1238
+ path: "/api/org/{orgId}/change-freezes/status",
1239
+ path_params: { "orgId" => org_id },
1240
+ request_options: request_options
1241
+ )
1242
+ end
1243
+
1244
+ # Update a change freeze window
1245
+ #
1246
+ # _Requires permission: `freezes:write`._
1247
+ #
1248
+ # PUT /api/org/{orgId}/change-freezes/{id}
1249
+ #
1250
+ # Raises on 400: Bad request
1251
+ #
1252
+ # Raises on 404: Not found
1253
+ #
1254
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1255
+ # constructed with.
1256
+ # @param id [String]
1257
+ # @param body [Hash] Request body, shaped as `ChangeFreezeInput`.
1258
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1259
+ # @return [Hash] Parsed JSON, shaped as `ChangeFreeze` — see `sig/infrawrench/sdk.rbs`.
1260
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1261
+ def update(id:, body:, org_id: nil, request_options: nil)
1262
+ @transport.request(
1263
+ http_method: "PUT",
1264
+ path: "/api/org/{orgId}/change-freezes/{id}",
1265
+ path_params: { "orgId" => org_id, "id" => id },
1266
+ body: body,
1267
+ request_options: request_options
1268
+ )
1269
+ end
1270
+ end
1271
+
1115
1272
  # `client.changes`
1116
1273
  class ChangesNamespace
1117
1274
  # @api private
@@ -1300,6 +1457,33 @@ module Infrawrench
1300
1457
  @transport = transport
1301
1458
  end
1302
1459
 
1460
+ # List recently detected cost anomalies
1461
+ #
1462
+ # Spend anomalies detected by the daily background pass: days where a
1463
+ # provider's or service's spend exceeded its trailing 28-day baseline by a
1464
+ # statistical threshold (mean + N·stddev, with an absolute floor to ignore
1465
+ # penny-scale noise). Newest day first, capped at 200 rows.
1466
+ #
1467
+ # GET /api/org/{orgId}/costs/anomalies
1468
+ #
1469
+ # Raises on 400: Bad request
1470
+ #
1471
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1472
+ # constructed with.
1473
+ # @param days [String, nil] Window in days over anomalous days, 1-90. Defaults to 30.
1474
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1475
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
1476
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1477
+ def anomalies(org_id: nil, days: nil, request_options: nil)
1478
+ @transport.request(
1479
+ http_method: "GET",
1480
+ path: "/api/org/{orgId}/costs/anomalies",
1481
+ path_params: { "orgId" => org_id },
1482
+ query: { "days" => days },
1483
+ request_options: request_options
1484
+ )
1485
+ end
1486
+
1303
1487
  # List distinct values for a cost dimension
1304
1488
  #
1305
1489
  # Feeds the filter and group-by pickers. Pass dimension=tag-keys for tag
@@ -2225,6 +2409,10 @@ module Infrawrench
2225
2409
  #
2226
2410
  # Raises on 409: Conflict
2227
2411
  #
2412
+ # Raises on 423: Blocked by an active change freeze. Retry with the
2413
+ # `x-change-freeze-override: true` header if you hold `freezes:override`;
2414
+ # both blocks and overrides are audit-logged.
2415
+ #
2228
2416
  # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
2229
2417
  # constructed with.
2230
2418
  # @param id [String]
@@ -3595,6 +3783,10 @@ module Infrawrench
3595
3783
  #
3596
3784
  # Raises on 404: Not found
3597
3785
  #
3786
+ # Raises on 423: Blocked by an active change freeze. Retry with the
3787
+ # `x-change-freeze-override: true` header if you hold `freezes:override`;
3788
+ # both blocks and overrides are audit-logged.
3789
+ #
3598
3790
  # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
3599
3791
  # constructed with.
3600
3792
  # @param plugin_id [String]
@@ -3766,6 +3958,10 @@ module Infrawrench
3766
3958
  #
3767
3959
  # Raises on 404: Not found
3768
3960
  #
3961
+ # Raises on 423: Blocked by an active change freeze. Retry with the
3962
+ # `x-change-freeze-override: true` header if you hold `freezes:override`;
3963
+ # both blocks and overrides are audit-logged.
3964
+ #
3769
3965
  # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
3770
3966
  # constructed with.
3771
3967
  # @param plugin_id [String]
@@ -3962,6 +4158,9 @@ module Infrawrench
3962
4158
 
3963
4159
  # Invoke a plugin-defined action on a resource
3964
4160
  #
4161
+ # Actions the plugin marks `destructive: true` in its detail schema are
4162
+ # blocked with `423` while an org change freeze is in effect.
4163
+ #
3965
4164
  # _Requires permission: `resources:write`._
3966
4165
  #
3967
4166
  # POST /api/org/{orgId}/resources/invoke-action
@@ -3970,6 +4169,10 @@ module Infrawrench
3970
4169
  #
3971
4170
  # Raises on 404: Not found
3972
4171
  #
4172
+ # Raises on 423: Blocked by an active change freeze. Retry with the
4173
+ # `x-change-freeze-override: true` header if you hold `freezes:override`;
4174
+ # both blocks and overrides are audit-logged.
4175
+ #
3973
4176
  # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
3974
4177
  # constructed with.
3975
4178
  # @param body [Hash] Request body, shaped as `InvokeActionRequest`.
@@ -5487,6 +5690,8 @@ module Infrawrench
5487
5690
  attr_reader :billing
5488
5691
  # @return [BudgetsNamespace] `client.budgets`
5489
5692
  attr_reader :budgets
5693
+ # @return [ChangeFreezesNamespace] `client.change_freezes`
5694
+ attr_reader :change_freezes
5490
5695
  # @return [ChangesNamespace] `client.changes`
5491
5696
  attr_reader :changes
5492
5697
  # @return [ConnectNamespace] `client.connect`
@@ -5553,6 +5758,7 @@ module Infrawrench
5553
5758
  @bastions = BastionsNamespace.new(@transport)
5554
5759
  @billing = BillingNamespace.new(@transport)
5555
5760
  @budgets = BudgetsNamespace.new(@transport)
5761
+ @change_freezes = ChangeFreezesNamespace.new(@transport)
5556
5762
  @changes = ChangesNamespace.new(@transport)
5557
5763
  @connect = ConnectNamespace.new(@transport)
5558
5764
  @costs = CostsNamespace.new(@transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v0.22.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.24.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.22.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.24.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.22.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.24.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.22.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.24.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.22.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.24.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.22.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.24.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.22.0"
18
+ VERSION = "0.24.0"
19
19
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v0.22.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.24.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.22.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.24.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 v0.22.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v0.24.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.22.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.24.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -332,6 +332,39 @@ module Infrawrench
332
332
  "placements" => Array[{ "widgetId" => String, "dashboardId" => String, "dashboardName" => String }]
333
333
  }
334
334
 
335
+ # Spec schema: `ChangeFreeze`.
336
+ type change_freeze = {
337
+ "id" => String,
338
+ "name" => String,
339
+ "reason" => String | nil,
340
+ "startsAt" => String,
341
+ "endsAt" => String | nil,
342
+ "active" => bool,
343
+ "createdByUserId" => String | nil,
344
+ "endedByUserId" => String | nil,
345
+ "createdAt" => String,
346
+ "updatedAt" => String
347
+ }
348
+
349
+ # Spec schema: `ChangeFreezeBlocked`.
350
+ type change_freeze_blocked = {
351
+ "error" => String,
352
+ "code" => "change_freeze_active",
353
+ "freeze" => {
354
+ "id" => String,
355
+ "name" => String,
356
+ "reason" => String | nil,
357
+ "startsAt" => String,
358
+ "endsAt" => String | nil
359
+ }
360
+ }
361
+
362
+ # Spec schema: `ChangeFreezeInput`.
363
+ type change_freeze_input = { "name" => String, ?"reason" => String, ?"startsAt" => String, ?"endsAt" => String }
364
+
365
+ # Spec schema: `ChangeFreezeStatus`.
366
+ type change_freeze_status = { "freeze" => change_freeze & (Hash[String, untyped] | nil) }
367
+
335
368
  # Spec schema: `ChildResourceRef`.
336
369
  type child_resource_ref = {
337
370
  "id" => resource_id,
@@ -415,6 +448,20 @@ module Infrawrench
415
448
  "coverage" => { "firstDay" => String, "lastDay" => String } | nil
416
449
  }
417
450
 
451
+ # Spec schema: `CostAnomaly`.
452
+ type cost_anomaly = {
453
+ "id" => String,
454
+ "day" => String,
455
+ "dimension" => "provider" | "service",
456
+ "dimensionKey" => String,
457
+ "currency" => String,
458
+ "actualCents" => Integer,
459
+ "baselineCents" => Integer,
460
+ "thresholdCents" => Integer,
461
+ "detectedAt" => String,
462
+ "notifiedAt" => String | nil
463
+ }
464
+
418
465
  # Spec schema: `CostDimension`.
419
466
  type cost_dimension = "provider" | "account" | "service" | "region" | "resource" | "tag"
420
467
 
@@ -1040,6 +1087,7 @@ module Infrawrench
1040
1087
  "urlHint" => String,
1041
1088
  "syncIncidents" => bool,
1042
1089
  "budgetAlerts" => bool,
1090
+ "anomalyAlerts" => bool,
1043
1091
  "workflowPages" => bool,
1044
1092
  "weeklyDigest" => bool
1045
1093
  }
@@ -1050,6 +1098,7 @@ module Infrawrench
1050
1098
  "url" => String,
1051
1099
  ?"syncIncidents" => bool,
1052
1100
  ?"budgetAlerts" => bool,
1101
+ ?"anomalyAlerts" => bool,
1053
1102
  ?"workflowPages" => bool,
1054
1103
  ?"weeklyDigest" => bool
1055
1104
  }
@@ -1059,6 +1108,7 @@ module Infrawrench
1059
1108
  ?"label" => String,
1060
1109
  ?"syncIncidents" => bool,
1061
1110
  ?"budgetAlerts" => bool,
1111
+ ?"anomalyAlerts" => bool,
1062
1112
  ?"workflowPages" => bool,
1063
1113
  ?"weeklyDigest" => bool
1064
1114
  }
@@ -1205,6 +1255,9 @@ module Infrawrench
1205
1255
  | "costs:write"
1206
1256
  | "budgets:read"
1207
1257
  | "budgets:write"
1258
+ | "freezes:read"
1259
+ | "freezes:write"
1260
+ | "freezes:override"
1208
1261
  | "audit:read"
1209
1262
  | "team:read"
1210
1263
  | "team:invite"
@@ -2040,6 +2093,7 @@ module Infrawrench
2040
2093
  "isPrivate" => bool,
2041
2094
  "syncIncidents" => bool,
2042
2095
  "budgetAlerts" => bool,
2096
+ "anomalyAlerts" => bool,
2043
2097
  "workflowPages" => bool,
2044
2098
  "weeklyDigest" => bool
2045
2099
  }
@@ -2052,6 +2106,7 @@ module Infrawrench
2052
2106
  ?"isPrivate" => bool,
2053
2107
  ?"syncIncidents" => bool,
2054
2108
  ?"budgetAlerts" => bool,
2109
+ ?"anomalyAlerts" => bool,
2055
2110
  ?"workflowPages" => bool,
2056
2111
  ?"weeklyDigest" => bool
2057
2112
  }
@@ -2060,6 +2115,7 @@ module Infrawrench
2060
2115
  type slack_channel_update = {
2061
2116
  ?"syncIncidents" => bool,
2062
2117
  ?"budgetAlerts" => bool,
2118
+ ?"anomalyAlerts" => bool,
2063
2119
  ?"workflowPages" => bool,
2064
2120
  ?"weeklyDigest" => bool
2065
2121
  }
@@ -2399,6 +2455,16 @@ module Infrawrench
2399
2455
  def update: (id: String, body: budget_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> budget_full
2400
2456
  end
2401
2457
 
2458
+ class ChangeFreezesNamespace
2459
+ def initialize: (Transport) -> void
2460
+ def create: (body: change_freeze_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> change_freeze
2461
+ def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
2462
+ def post_org_org_id_change_freezes_id_end: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> change_freeze
2463
+ def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[change_freeze]
2464
+ def status: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> change_freeze_status
2465
+ def update: (id: String, body: change_freeze_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> change_freeze
2466
+ end
2467
+
2402
2468
  class ChangesNamespace
2403
2469
  def initialize: (Transport) -> void
2404
2470
  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
@@ -2414,6 +2480,7 @@ module Infrawrench
2414
2480
 
2415
2481
  class CostsNamespace
2416
2482
  def initialize: (Transport) -> void
2483
+ def anomalies: (?org_id: String?, ?days: String?, ?request_options: Hash[Symbol, untyped]?) -> { "anomalies" => Array[cost_anomaly] }
2417
2484
  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
2418
2485
  def query: (body: cost_query_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_query_response
2419
2486
  def rows: (body: cost_push_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_push_response
@@ -2744,6 +2811,7 @@ module Infrawrench
2744
2811
  attr_reader bastions: BastionsNamespace
2745
2812
  attr_reader billing: BillingNamespace
2746
2813
  attr_reader budgets: BudgetsNamespace
2814
+ attr_reader change_freezes: ChangeFreezesNamespace
2747
2815
  attr_reader changes: ChangesNamespace
2748
2816
  attr_reader connect: ConnectNamespace
2749
2817
  attr_reader costs: CostsNamespace
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.22.0
4
+ version: 0.24.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.22.0). Covers the published
14
+ description: Generated Ruby client for the Infrawrench API (v0.24.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.22.0).
61
+ summary: Generated Ruby client for the Infrawrench API (v0.24.0).
62
62
  test_files: []