infrawrench-sdk 1.15.0 → 1.16.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: 9e38a098383f11fdb35de83cb2014267146a3689c00f7b84da86b2c994a01ce1
4
- data.tar.gz: aaba5e6be92f922ca34f0436611e30ec26cebb13687d0d454e3f1e987f3fe4f4
3
+ metadata.gz: ed2bbb041647f781da0b26a0d376c2cedcf6a4904aa085405ee8c7bd5d477de9
4
+ data.tar.gz: fc6adc2c9b7edd3188848c118b52f322ce2e54bd1d613fc927cc718401759df8
5
5
  SHA512:
6
- metadata.gz: e9371a9e34e0adac31a39ea733dd10c50ffea1b4704726ae163bde10ca694e9cb666412fa48824501a32256098f165c3ada273fcccf0b90fc91851ef32211110
7
- data.tar.gz: 65dd789443a52e1bb9368eec4dc7e92db2117850ad45e17645ed0e82f7d1a3367610eff61e92e05aa5c223fb62b493bc15cd2f6b08197a2bd5259a9d018799ec
6
+ metadata.gz: cfa7d9ba7d12d044aca5221751c60b316d4ac51133f6c17967417deaea411f688dafbce45af8c18836fd421cf9f1469b1972eb068c5fb085501efb3f7d14ff62
7
+ data.tar.gz: 1eb649eb2e24e58172ec86e6b84a4d90c2c8739bb7d01804defc426845bc566261a69f241f9b6af1cc7db1ea4ee888274ff2415a645c50efcc441d068962cc9d
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # infrawrench-sdk
2
2
 
3
- Generated Ruby client for the Infrawrench API (API version `1.15.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `1.16.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
- 586 schemas, as RBS type aliases that steep and TypeProf can read.
44
+ 596 schemas, as RBS type aliases that steep and TypeProf can read.
45
45
 
46
46
  Non-2xx responses raise `Infrawrench::ApiError`, which carries `#status`,
47
47
  the parsed `#body`, and the machine-readable `#code` when the API sends one —
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.15.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.16.0 | MIT | Copyright (c) 2026 Infrawrench LLC
4
4
  # https://github.com/Infrawrench/Infrawrench
5
5
  #
6
- # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.15.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.16.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -17,8 +17,8 @@ require_relative "lib/infrawrench/version"
17
17
  Gem::Specification.new do |spec|
18
18
  spec.name = "infrawrench-sdk"
19
19
  spec.version = Infrawrench::VERSION
20
- spec.summary = "Generated Ruby client for the Infrawrench API (v1.15.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v1.15.0). Covers the published API surface only — operations marked x-internal in the spec are not generated. No runtime dependencies."
20
+ spec.summary = "Generated Ruby client for the Infrawrench API (v1.16.0)."
21
+ spec.description = "Generated Ruby client for the Infrawrench API (v1.16.0). Covers the published API surface only — operations marked x-internal in the spec are not generated. No runtime dependencies."
22
22
  spec.authors = ["Infrawrench LLC", "Astrid Gealer"]
23
23
  spec.email = ["astrid@infrawrench.com"]
24
24
  spec.homepage = "https://infrawrench.com/docs/team-and-billing/client-sdks"
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.15.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.16.0 | MIT | Copyright (c) 2026 Infrawrench LLC
4
4
  # https://github.com/Infrawrench/Infrawrench
5
5
  #
6
- # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.15.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.16.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -246,6 +246,173 @@ module Infrawrench
246
246
  end
247
247
  end
248
248
 
249
+ # `client.access_review.dismissals`
250
+ class AccessReviewDismissalsNamespace
251
+ # @api private
252
+ # @param transport [Transport]
253
+ def initialize(transport)
254
+ @transport = transport
255
+ end
256
+
257
+ # Dismiss an access review finding
258
+ #
259
+ # Accept a finding — that break-glass role really is meant to be admin, that
260
+ # shared key really is rotated out of band. The finding leaves `findings`
261
+ # and stops feeding the security alerts, but the rule keeps being evaluated
262
+ # and the finding is reported back under `dismissed` for as long as it still
263
+ # matches. The principal itself stays in `principals` either way.
264
+ # Idempotent: dismissing an already-dismissed finding rewrites the note and
265
+ # the author.
266
+ #
267
+ # _Requires permission: `resources:write`._
268
+ #
269
+ # POST /api/org/{orgId}/access-review/dismissals
270
+ #
271
+ # Raises on 400: Bad request
272
+ #
273
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
274
+ # constructed with.
275
+ # @param body [Hash, nil] Request body, shaped as `AccessReviewDismissalCreate`.
276
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
277
+ # @return [Hash] Parsed JSON, shaped as `AccessReviewDismissal` — see
278
+ # `sig/infrawrench/sdk.rbs`.
279
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
280
+ def create(org_id: nil, body: nil, request_options: nil)
281
+ @transport.request(
282
+ http_method: "POST",
283
+ path: "/api/org/{orgId}/access-review/dismissals",
284
+ path_params: { "orgId" => org_id },
285
+ body: body,
286
+ request_options: request_options
287
+ )
288
+ end
289
+
290
+ # Restore a dismissed access review finding
291
+ #
292
+ # Undo a dismissal, putting the finding back on the list and back into the
293
+ # security alerts. The finding is identified by query parameters rather than
294
+ # path segments because resource ids are provider-native and routinely
295
+ # contain slashes.
296
+ #
297
+ # _Requires permission: `resources:write`._
298
+ #
299
+ # DELETE /api/org/{orgId}/access-review/dismissals
300
+ #
301
+ # Raises on 400: Bad request
302
+ #
303
+ # Raises on 404: Not found
304
+ #
305
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
306
+ # constructed with.
307
+ # @param resource_id [String] Infrawrench resource id the finding is on.
308
+ # @param rule_id [String] Which rule was raised. Half of a dismissal's key, alongside the
309
+ # resource id. The `access-review:` prefix is reserved so these can share the posture
310
+ # dismissal store without colliding with plugin-declared posture rule ids.
311
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
312
+ # @return [nil] This endpoint returns no content.
313
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
314
+ def delete(resource_id:, rule_id:, org_id: nil, request_options: nil)
315
+ @transport.request(
316
+ http_method: "DELETE",
317
+ path: "/api/org/{orgId}/access-review/dismissals",
318
+ path_params: { "orgId" => org_id },
319
+ query: { "resourceId" => resource_id, "ruleId" => rule_id },
320
+ accept: :empty,
321
+ request_options: request_options
322
+ )
323
+ end
324
+ end
325
+
326
+ # `client.access_review`
327
+ class AccessReviewNamespace
328
+ # @return [AccessReviewDismissalsNamespace] `client.access_review.dismissals`
329
+ attr_reader :dismissals
330
+
331
+ # @api private
332
+ # @param transport [Transport]
333
+ def initialize(transport)
334
+ @transport = transport
335
+ @dismissals = AccessReviewDismissalsNamespace.new(@transport)
336
+ end
337
+
338
+ # Export the access review as compliance evidence
339
+ #
340
+ # The same review as a downloadable file, one row per finding. `format=csv`
341
+ # (the default) returns RFC 4180 CSV with every cell quoted and spreadsheet
342
+ # formulas neutralised; `format=json` returns the full response body
343
+ # pretty-printed.
344
+ #
345
+ # Dismissed findings are included and labelled in both formats, with the
346
+ # note and the person who accepted them: an evidence pack answers what you
347
+ # found *and* what you decided. Exports are recorded in the audit log.
348
+ #
349
+ # _Requires permission: `resources:read`._
350
+ #
351
+ # GET /api/org/{orgId}/access-review/export
352
+ #
353
+ # Raises on 400: Bad request
354
+ #
355
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
356
+ # constructed with.
357
+ # @param format [String, nil] Defaults to "csv".
358
+ # @param stale_days [Integer, nil] Staleness window in days. Defaults to 90.
359
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
360
+ # @return [Hash] Parsed JSON, shaped as `AccessReviewResponse` — see
361
+ # `sig/infrawrench/sdk.rbs`.
362
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
363
+ def export(org_id: nil, format: nil, stale_days: nil, request_options: nil)
364
+ @transport.request(
365
+ http_method: "GET",
366
+ path: "/api/org/{orgId}/access-review/export",
367
+ path_params: { "orgId" => org_id },
368
+ query: { "format" => format, "staleDays" => stale_days },
369
+ request_options: request_options
370
+ )
371
+ end
372
+
373
+ # Review the principals inside your connected clouds
374
+ #
375
+ # Every IAM user and role, service account, app registration, group, role
376
+ # binding and long-lived API key your connected accounts have synced, with
377
+ # the findings that have evidence against them: unused beyond the staleness
378
+ # window, holding administrative or wildcard permissions, past the rotation
379
+ # budget their plugin declares, carrying no recorded owner, or signing in
380
+ # without a second factor.
381
+ #
382
+ # This is about principals in **your** clouds — it is neither your
383
+ # Infrawrench team's roles (`/team`) nor the credentials Infrawrench stores
384
+ # for you (`/credential-hygiene`).
385
+ #
386
+ # No provider API calls are made: everything is computed from already-synced
387
+ # fields, so a principal whose provider does not report last use is reported
388
+ # with `activity: "unknown"` and is never called stale. Findings the
389
+ # organization has dismissed are reported separately under `dismissed` and
390
+ # are excluded from `findings`, `counts`, `byRule` and the security alerts.
391
+ #
392
+ # _Requires permission: `resources:read`._
393
+ #
394
+ # GET /api/org/{orgId}/access-review
395
+ #
396
+ # Raises on 400: Bad request
397
+ #
398
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
399
+ # constructed with.
400
+ # @param stale_days [Integer, nil] Staleness window in days. Defaults to 90.
401
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
402
+ # @return [Hash] Parsed JSON, shaped as `AccessReviewResponse` — see
403
+ # `sig/infrawrench/sdk.rbs`.
404
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
405
+ def get(org_id: nil, stale_days: nil, request_options: nil)
406
+ @transport.request(
407
+ http_method: "GET",
408
+ path: "/api/org/{orgId}/access-review",
409
+ path_params: { "orgId" => org_id },
410
+ query: { "staleDays" => stale_days },
411
+ request_options: request_options
412
+ )
413
+ end
414
+ end
415
+
249
416
  # `client.accounts.credentials`
250
417
  class AccountsCredentialsNamespace
251
418
  # @api private
@@ -13552,6 +13719,8 @@ module Infrawrench
13552
13719
  attr_reader :transport
13553
13720
  # @return [AccessRequestsNamespace] `client.access_requests`
13554
13721
  attr_reader :access_requests
13722
+ # @return [AccessReviewNamespace] `client.access_review`
13723
+ attr_reader :access_review
13555
13724
  # @return [AccountsNamespace] `client.accounts`
13556
13725
  attr_reader :accounts
13557
13726
  # @return [AgentsNamespace] `client.agents`
@@ -13723,6 +13892,7 @@ module Infrawrench
13723
13892
  def initialize(**options)
13724
13893
  @transport = Transport.new(**options)
13725
13894
  @access_requests = AccessRequestsNamespace.new(@transport)
13895
+ @access_review = AccessReviewNamespace.new(@transport)
13726
13896
  @accounts = AccountsNamespace.new(@transport)
13727
13897
  @agents = AgentsNamespace.new(@transport)
13728
13898
  @alert_rules = AlertRulesNamespace.new(@transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.15.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.16.0 | MIT | Copyright (c) 2026 Infrawrench LLC
4
4
  # https://github.com/Infrawrench/Infrawrench
5
5
  #
6
- # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.15.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.16.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.15.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.16.0 | MIT | Copyright (c) 2026 Infrawrench LLC
4
4
  # https://github.com/Infrawrench/Infrawrench
5
5
  #
6
- # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.15.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.16.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.15.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.16.0 | MIT | Copyright (c) 2026 Infrawrench LLC
4
4
  # https://github.com/Infrawrench/Infrawrench
5
5
  #
6
- # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.15.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.16.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -15,5 +15,5 @@
15
15
  # Kept in its own file so the gemspec can read the version without loading the
16
16
  # client — a gemspec that pulls in net/http is a gemspec that can fail to parse.
17
17
  module Infrawrench
18
- VERSION = "1.15.0"
18
+ VERSION = "1.16.0"
19
19
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.15.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.16.0 | MIT | Copyright (c) 2026 Infrawrench LLC
4
4
  # https://github.com/Infrawrench/Infrawrench
5
5
  #
6
- # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.15.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.16.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1,7 +1,7 @@
1
- # infrawrench-sdk v1.15.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v1.16.0 | MIT | Copyright (c) 2026 Infrawrench LLC
2
2
  # https://github.com/Infrawrench/Infrawrench
3
3
  #
4
- # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.15.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.16.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -104,6 +104,57 @@ module Infrawrench
104
104
  ?"missing" => Array[String]
105
105
  }
106
106
 
107
+ # Spec schema: `AccessFinding`.
108
+ type access_finding = {
109
+ "resourceId" => String,
110
+ "ruleId" => "access-review:stale-principal"
111
+ | "access-review:admin-principal"
112
+ | "access-review:key-past-rotation"
113
+ | "access-review:no-recorded-owner"
114
+ | "access-review:no-mfa",
115
+ "title" => String,
116
+ "severity" => "critical" | "high" | "medium" | "low",
117
+ "reason" => String,
118
+ "principal" => access_principal
119
+ }
120
+
121
+ # Spec schema: `AccessPrincipal`.
122
+ type access_principal = {
123
+ "resourceId" => String,
124
+ "pluginId" => plugin_id,
125
+ "pluginName" => String,
126
+ "resourceTypeId" => String,
127
+ "resourceTypeName" => String,
128
+ "accountId" => String,
129
+ "accountName" => String,
130
+ "displayName" => String,
131
+ "externalId" => String | nil,
132
+ "role" => "user" | "group" | "role" | "service-account" | "key" | "binding",
133
+ "lastUsedAt" => String | nil,
134
+ "daysSinceLastUsed" => Integer | nil,
135
+ "activity" => "active" | "stale" | "unknown",
136
+ "createdAt" => String | nil,
137
+ "ageDays" => Integer | nil,
138
+ "admin" => bool | nil,
139
+ "mfa" => bool | nil,
140
+ "parent" => String | nil,
141
+ "owner" => access_principal_owner,
142
+ "revokeActionId" => String | nil
143
+ }
144
+
145
+ # Who owns the resource, from the resource-ownership record. Null when nobody
146
+ # is named.
147
+ #
148
+ # Spec schema: `AccessPrincipalOwner`.
149
+ type access_principal_owner = {
150
+ "userId" => String | nil,
151
+ "displayName" => String,
152
+ "isLabel" => bool,
153
+ "ticketUrl" => String | nil,
154
+ "purpose" => String | nil
155
+ }
156
+ | nil
157
+
107
158
  # Spec schema: `AccessRequest`.
108
159
  type access_request = {
109
160
  "id" => String,
@@ -137,6 +188,63 @@ module Infrawrench
137
188
  # Spec schema: `AccessRequestCreate`.
138
189
  type access_request_create = { "permissions" => Array[String], "reason" => String, "durationMinutes" => Integer }
139
190
 
191
+ # Spec schema: `AccessReviewDismissal`.
192
+ type access_review_dismissal = {
193
+ "resourceId" => String,
194
+ "ruleId" => String,
195
+ "dismissedAt" => String,
196
+ "dismissedBy" => String | nil,
197
+ "reason" => String | nil
198
+ }
199
+
200
+ # Spec schema: `AccessReviewDismissalCreate`.
201
+ type access_review_dismissal_create = {
202
+ "resourceId" => String,
203
+ "ruleId" => "access-review:stale-principal"
204
+ | "access-review:admin-principal"
205
+ | "access-review:key-past-rotation"
206
+ | "access-review:no-recorded-owner"
207
+ | "access-review:no-mfa",
208
+ ?"reason" => String | nil
209
+ }
210
+
211
+ # Spec schema: `AccessReviewResponse`.
212
+ type access_review_response = {
213
+ "principals" => Array[access_principal],
214
+ "findings" => Array[access_finding],
215
+ "totalCount" => Integer,
216
+ "counts" => access_review_severity_counts,
217
+ "byRule" => access_review_rule_counts,
218
+ "byRole" => access_review_role_counts,
219
+ "dismissed" => Array[dismissed_access_finding],
220
+ "dismissedCount" => Integer,
221
+ "unknownActivityCount" => Integer,
222
+ "staleDays" => Integer,
223
+ "generatedAt" => String
224
+ }
225
+
226
+ # Spec schema: `AccessReviewRoleCounts`.
227
+ type access_review_role_counts = {
228
+ "user" => Integer,
229
+ "group" => Integer,
230
+ "role" => Integer,
231
+ "service-account" => Integer,
232
+ "key" => Integer,
233
+ "binding" => Integer
234
+ }
235
+
236
+ # Spec schema: `AccessReviewRuleCounts`.
237
+ type access_review_rule_counts = {
238
+ "access-review:stale-principal" => Integer,
239
+ "access-review:admin-principal" => Integer,
240
+ "access-review:key-past-rotation" => Integer,
241
+ "access-review:no-recorded-owner" => Integer,
242
+ "access-review:no-mfa" => Integer
243
+ }
244
+
245
+ # Spec schema: `AccessReviewSeverityCounts`.
246
+ type access_review_severity_counts = { "critical" => Integer, "high" => Integer, "medium" => Integer, "low" => Integer }
247
+
140
248
  # Spec schema: `AccessRevokeConflict`.
141
249
  type access_revoke_conflict = { "error" => String }
142
250
 
@@ -2178,6 +2286,21 @@ module Infrawrench
2178
2286
  # Spec schema: `DigestTransportResult`.
2179
2287
  type digest_transport_result = { "attempted" => Integer, "succeeded" => Integer }
2180
2288
 
2289
+ # Spec schema: `DismissedAccessFinding`.
2290
+ type dismissed_access_finding = {
2291
+ "resourceId" => String,
2292
+ "ruleId" => "access-review:stale-principal"
2293
+ | "access-review:admin-principal"
2294
+ | "access-review:key-past-rotation"
2295
+ | "access-review:no-recorded-owner"
2296
+ | "access-review:no-mfa",
2297
+ "title" => String,
2298
+ "severity" => "critical" | "high" | "medium" | "low",
2299
+ "reason" => String,
2300
+ "principal" => access_principal,
2301
+ "dismissal" => access_review_dismissal
2302
+ }
2303
+
2181
2304
  # Spec schema: `DismissedPostureFinding`.
2182
2305
  type dismissed_posture_finding = {
2183
2306
  "resourceId" => String,
@@ -5792,6 +5915,7 @@ module Infrawrench
5792
5915
  | "changes"
5793
5916
  | "expiring"
5794
5917
  | "posture"
5918
+ | "access-review"
5795
5919
  | "dns"
5796
5920
  | "environment-diff"
5797
5921
  | "ssh-fanout"
@@ -6038,6 +6162,19 @@ module Infrawrench
6038
6162
  def withdraw: (request_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
6039
6163
  end
6040
6164
 
6165
+ class AccessReviewDismissalsNamespace
6166
+ def initialize: (Transport) -> void
6167
+ def create: (?org_id: String?, ?body: access_review_dismissal_create?, ?request_options: Hash[Symbol, untyped]?) -> access_review_dismissal
6168
+ def delete: (resource_id: String, rule_id: "access-review:stale-principal" | "access-review:admin-principal" | "access-review:key-past-rotation" | "access-review:no-recorded-owner" | "access-review:no-mfa", ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> nil
6169
+ end
6170
+
6171
+ class AccessReviewNamespace
6172
+ attr_reader dismissals: AccessReviewDismissalsNamespace
6173
+ def initialize: (Transport) -> void
6174
+ def export: (?org_id: String?, ?format: "csv" | "json"?, ?stale_days: Integer?, ?request_options: Hash[Symbol, untyped]?) -> access_review_response
6175
+ def get: (?org_id: String?, ?stale_days: Integer?, ?request_options: Hash[Symbol, untyped]?) -> access_review_response
6176
+ end
6177
+
6041
6178
  class AccountsCredentialsNamespace
6042
6179
  def initialize: (Transport) -> void
6043
6180
  def get: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Hash[String, String]
@@ -7049,6 +7186,7 @@ module Infrawrench
7049
7186
  class APIV1Client
7050
7187
  attr_reader transport: Transport
7051
7188
  attr_reader access_requests: AccessRequestsNamespace
7189
+ attr_reader access_review: AccessReviewNamespace
7052
7190
  attr_reader accounts: AccountsNamespace
7053
7191
  attr_reader agents: AgentsNamespace
7054
7192
  attr_reader alert_rules: AlertRulesNamespace
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: infrawrench-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.15.0
4
+ version: 1.16.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-08-12 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: Generated Ruby client for the Infrawrench API (v1.15.0). Covers the published
14
+ description: Generated Ruby client for the Infrawrench API (v1.16.0). Covers the published
15
15
  API surface only — operations marked x-internal in the spec are not generated. No
16
16
  runtime dependencies.
17
17
  email:
@@ -58,5 +58,5 @@ requirements: []
58
58
  rubygems_version: 3.5.22
59
59
  signing_key:
60
60
  specification_version: 4
61
- summary: Generated Ruby client for the Infrawrench API (v1.15.0).
61
+ summary: Generated Ruby client for the Infrawrench API (v1.16.0).
62
62
  test_files: []