infrawrench-sdk 1.30.0 → 1.33.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: 1fea7bb06c3006769b2b4e677cdc1c258e941c2d43b0c0884691b72bc8a46afd
4
- data.tar.gz: 7f45fb1dcf6324a973fa00f78712367234f4f9b3028cc8a2d1a24939bf242c26
3
+ metadata.gz: 8709c380a94a27f59e18bad60260b8e4da5728319d8155305c5aa6ac258f66ce
4
+ data.tar.gz: 4aa58816cbcd2c706589f64ec518f0a4f34f8c1b3edd0ee22217ca6a9190d459
5
5
  SHA512:
6
- metadata.gz: d1cd4a850642b81afdfa0eb3ba3f7797e95eb35314d5f062f3108e805366df6bbcc75a007cb3e26ed0dfcbe069b04ad67a87575d49879cf5ed86c9ed319955df
7
- data.tar.gz: 91fb4571a51a4c71231cf2bc15a3464fd53ffa18685fb41de005ab17cac4a00f97de3d4f023eaa1d57586f33681ef4692ec960e943eefcd8be19934d533d2a23
6
+ metadata.gz: a2fd4c6ccacd9d967c71a4290a2caf3a896181899494f724d9cbc1c65c6c0522afa37f1d8e6ba00c8271fd90627ad9e851ef298b9f75dec35a4e24be2c3f4988
7
+ data.tar.gz: 56c14922c5abb90b47045a3dd8d0e05bfae7492b66c2b48b00a06fe9d4359a2dce1909029586c4a201a82ce99f7e779b041ef688d6e1c599c549e96e3e6677c5
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.30.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `1.33.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
- 689 schemas, as RBS type aliases that steep and TypeProf can read.
44
+ 710 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.30.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.33.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.30.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.33.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.30.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v1.30.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.33.0)."
21
+ spec.description = "Generated Ruby client for the Infrawrench API (v1.33.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.30.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.33.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.30.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.33.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1594,6 +1594,87 @@ module Infrawrench
1594
1594
  end
1595
1595
  end
1596
1596
 
1597
+ # `client.apps`
1598
+ class AppsNamespace
1599
+ # @api private
1600
+ # @param transport [Transport]
1601
+ def initialize(transport)
1602
+ @transport = transport
1603
+ end
1604
+
1605
+ # Check whether a host can run Linux applications
1606
+ #
1607
+ # Runs a read-only shell probe over SSH and reports what the host is
1608
+ # missing, plus the packages and commands that would fix it. A POST because
1609
+ # it opens a connection to the named host and must never be cached — its
1610
+ # whole value is saying what the host is now.
1611
+ #
1612
+ # POST /api/org/{orgId}/apps/check
1613
+ #
1614
+ # Raises on 400: Bad request
1615
+ #
1616
+ # Raises on 404: Not found
1617
+ #
1618
+ # Raises on 409: The host key is new or has changed; trust it and retry
1619
+ #
1620
+ # Raises on 502: The host could not be reached or probed
1621
+ #
1622
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1623
+ # constructed with.
1624
+ # @param body [Hash] Request body, shaped as `LinuxAppHostTarget`.
1625
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1626
+ # @return [Hash] Parsed JSON, shaped as `LinuxAppHostCheck` — see `sig/infrawrench/sdk.rbs`.
1627
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1628
+ def check(body:, org_id: nil, request_options: nil)
1629
+ @transport.request(
1630
+ http_method: "POST",
1631
+ path: "/api/org/{orgId}/apps/check",
1632
+ path_params: { "orgId" => org_id },
1633
+ body: body,
1634
+ request_options: request_options
1635
+ )
1636
+ end
1637
+
1638
+ # Install what a host needs to run Linux applications
1639
+ #
1640
+ # Installs the named requirements using the host's own package manager, then
1641
+ # re-probes and reports what the host now is. Takes requirement ids, never
1642
+ # commands — the commands are derived server-side from a fresh probe. Needs
1643
+ # root or passwordless sudo on the host, respects change freezes, and is
1644
+ # audited as `linux_app.host_setup`.
1645
+ #
1646
+ # Responds with `application/x-ndjson`: one `{"line":"…"}` per line of
1647
+ # package-manager output, then a final `{"outcome":{…}}`. A failure arrives
1648
+ # as `{"error":"…"}` inside the stream, because the status line has already
1649
+ # been sent by then.
1650
+ #
1651
+ # POST /api/org/{orgId}/apps/setup
1652
+ #
1653
+ # Raises on 400: Bad request
1654
+ #
1655
+ # Raises on 404: Not found
1656
+ #
1657
+ # Raises on 409: A change freeze is in effect, or the host key needs
1658
+ # trusting
1659
+ #
1660
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1661
+ # constructed with.
1662
+ # @param body [Hash] Request body, shaped as `LinuxAppSetupRequest`.
1663
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1664
+ # @return [Hash] Parsed JSON, shaped as `LinuxAppSetupEvent` — see
1665
+ # `sig/infrawrench/sdk.rbs`.
1666
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1667
+ def setup(body:, org_id: nil, request_options: nil)
1668
+ @transport.request(
1669
+ http_method: "POST",
1670
+ path: "/api/org/{orgId}/apps/setup",
1671
+ path_params: { "orgId" => org_id },
1672
+ body: body,
1673
+ request_options: request_options
1674
+ )
1675
+ end
1676
+ end
1677
+
1597
1678
  # `client.artifacts`
1598
1679
  class ArtifactsNamespace
1599
1680
  # @api private
@@ -12411,6 +12492,329 @@ module Infrawrench
12411
12492
  end
12412
12493
  end
12413
12494
 
12495
+ # `client.runbooks.get`
12496
+ class RunbooksGetNamespace
12497
+ # @api private
12498
+ # @param transport [Transport]
12499
+ def initialize(transport)
12500
+ @transport = transport
12501
+ end
12502
+
12503
+ # List the organization's runbooks
12504
+ #
12505
+ # Every runbook, with how many times each has been run and when it was last
12506
+ # used. Reading takes `resources:read`: the person who can see the
12507
+ # infrastructure is the person who will be woken up about it.
12508
+ #
12509
+ # GET /api/org/{orgId}/runbooks
12510
+ #
12511
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
12512
+ # constructed with.
12513
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
12514
+ # @return [Hash] Parsed JSON, shaped as `RunbookList` — see `sig/infrawrench/sdk.rbs`.
12515
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
12516
+ def get(org_id: nil, request_options: nil)
12517
+ @transport.request(
12518
+ http_method: "GET",
12519
+ path: "/api/org/{orgId}/runbooks",
12520
+ path_params: { "orgId" => org_id },
12521
+ request_options: request_options
12522
+ )
12523
+ end
12524
+
12525
+ # Get one runbook
12526
+ #
12527
+ # GET /api/org/{orgId}/runbooks/{runbookId}
12528
+ #
12529
+ # Raises on 404: Not found
12530
+ #
12531
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
12532
+ # constructed with.
12533
+ # @param runbook_id [String]
12534
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
12535
+ # @return [Hash] Parsed JSON, shaped as `Runbook` — see `sig/infrawrench/sdk.rbs`.
12536
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
12537
+ def get_org_org_id_runbooks_runbook_id(runbook_id:, org_id: nil, request_options: nil)
12538
+ @transport.request(
12539
+ http_method: "GET",
12540
+ path: "/api/org/{orgId}/runbooks/{runbookId}",
12541
+ path_params: { "orgId" => org_id, "runbookId" => runbook_id },
12542
+ request_options: request_options
12543
+ )
12544
+ end
12545
+ end
12546
+
12547
+ # `client.runbooks.runs.steps`
12548
+ class RunbooksRunsStepsNamespace
12549
+ # @api private
12550
+ # @param transport [Transport]
12551
+ def initialize(transport)
12552
+ @transport = transport
12553
+ end
12554
+
12555
+ # Tick a step
12556
+ #
12557
+ # One targeted update on one row, so two responders working the same
12558
+ # incident can tick different steps at the same moment without either losing
12559
+ # the other's work.
12560
+ #
12561
+ # A closed run refuses updates, and reopening is not offered: a run is a
12562
+ # record of what happened. Start another run to record another attempt.
12563
+ #
12564
+ # PATCH /api/org/{orgId}/runbooks/runs/{runId}/steps/{stepId}
12565
+ #
12566
+ # Raises on 400: Bad request
12567
+ #
12568
+ # Raises on 404: Not found
12569
+ #
12570
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
12571
+ # constructed with.
12572
+ # @param run_id [String]
12573
+ # @param step_id [String]
12574
+ # @param body [Hash, nil] Request body, shaped as `RunbookStepUpdate`.
12575
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
12576
+ # @return [Hash] Parsed JSON, shaped as `RunbookRun` — see `sig/infrawrench/sdk.rbs`.
12577
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
12578
+ def update(run_id:, step_id:, org_id: nil, body: nil, request_options: nil)
12579
+ @transport.request(
12580
+ http_method: "PATCH",
12581
+ path: "/api/org/{orgId}/runbooks/runs/{runId}/steps/{stepId}",
12582
+ path_params: { "orgId" => org_id, "runId" => run_id, "stepId" => step_id },
12583
+ body: body,
12584
+ request_options: request_options
12585
+ )
12586
+ end
12587
+ end
12588
+
12589
+ # `client.runbooks.runs`
12590
+ class RunbooksRunsNamespace
12591
+ # @return [RunbooksRunsStepsNamespace] `client.runbooks.runs.steps`
12592
+ attr_reader :steps
12593
+
12594
+ # @api private
12595
+ # @param transport [Transport]
12596
+ def initialize(transport)
12597
+ @transport = transport
12598
+ @steps = RunbooksRunsStepsNamespace.new(@transport)
12599
+ end
12600
+
12601
+ # Close a run out
12602
+ #
12603
+ # Closing does **not** settle outstanding steps. A run completed with three
12604
+ # steps still pending is a true and useful record — it says the incident
12605
+ # ended before the checklist did — and quietly marking them done would erase
12606
+ # the one thing a postmortem wants to know.
12607
+ #
12608
+ # POST /api/org/{orgId}/runbooks/runs/{runId}/close
12609
+ #
12610
+ # Raises on 400: Bad request
12611
+ #
12612
+ # Raises on 404: Not found
12613
+ #
12614
+ # Raises on 409: Conflict
12615
+ #
12616
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
12617
+ # constructed with.
12618
+ # @param run_id [String]
12619
+ # @param body [Hash, nil] Request body, shaped as `RunbookRunClose`.
12620
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
12621
+ # @return [Hash] Parsed JSON, shaped as `RunbookRun` — see `sig/infrawrench/sdk.rbs`.
12622
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
12623
+ def close(run_id:, org_id: nil, body: nil, request_options: nil)
12624
+ @transport.request(
12625
+ http_method: "POST",
12626
+ path: "/api/org/{orgId}/runbooks/runs/{runId}/close",
12627
+ path_params: { "orgId" => org_id, "runId" => run_id },
12628
+ body: body,
12629
+ request_options: request_options
12630
+ )
12631
+ end
12632
+
12633
+ # Start performing a runbook
12634
+ #
12635
+ # Copies every step's title and kind into the run, so the record of what
12636
+ # somebody was asked to do survives the runbook being rewritten next week.
12637
+ #
12638
+ # Takes `resources:read`, like ticking a step: performing a checklist is not
12639
+ # an act of configuration, and requiring an admin mid-incident is how a team
12640
+ # stops using it. Deliberately not deduplicated against a run already in
12641
+ # progress — performing the failover twice in one incident is a real thing,
12642
+ # and refusing the second would mean it goes unrecorded rather than not
12643
+ # happening.
12644
+ #
12645
+ # POST /api/org/{orgId}/runbooks/{runbookId}/runs
12646
+ #
12647
+ # Raises on 400: Bad request
12648
+ #
12649
+ # Raises on 404: Not found
12650
+ #
12651
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
12652
+ # constructed with.
12653
+ # @param runbook_id [String]
12654
+ # @param body [Hash, nil] Request body, shaped as `RunbookRunStart`.
12655
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
12656
+ # @return [Hash] Parsed JSON, shaped as `RunbookRun` — see `sig/infrawrench/sdk.rbs`.
12657
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
12658
+ def create(runbook_id:, org_id: nil, body: nil, request_options: nil)
12659
+ @transport.request(
12660
+ http_method: "POST",
12661
+ path: "/api/org/{orgId}/runbooks/{runbookId}/runs",
12662
+ path_params: { "orgId" => org_id, "runbookId" => runbook_id },
12663
+ body: body,
12664
+ request_options: request_options
12665
+ )
12666
+ end
12667
+
12668
+ # List runbook runs
12669
+ #
12670
+ # Newest first, optionally narrowed to one runbook or one incident.
12671
+ #
12672
+ # GET /api/org/{orgId}/runbooks/runs
12673
+ #
12674
+ # Raises on 400: Bad request
12675
+ #
12676
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
12677
+ # constructed with.
12678
+ # @param runbook_id [String, nil]
12679
+ # @param incident_id [String, nil]
12680
+ # @param limit [Integer, nil]
12681
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
12682
+ # @return [Hash] Parsed JSON, shaped as `RunbookRunList` — see `sig/infrawrench/sdk.rbs`.
12683
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
12684
+ def get(org_id: nil, runbook_id: nil, incident_id: nil, limit: nil, request_options: nil)
12685
+ @transport.request(
12686
+ http_method: "GET",
12687
+ path: "/api/org/{orgId}/runbooks/runs",
12688
+ path_params: { "orgId" => org_id },
12689
+ query: { "runbookId" => runbook_id, "incidentId" => incident_id, "limit" => limit },
12690
+ request_options: request_options
12691
+ )
12692
+ end
12693
+
12694
+ # Get one runbook run
12695
+ #
12696
+ # GET /api/org/{orgId}/runbooks/runs/{runId}
12697
+ #
12698
+ # Raises on 404: Not found
12699
+ #
12700
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
12701
+ # constructed with.
12702
+ # @param run_id [String]
12703
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
12704
+ # @return [Hash] Parsed JSON, shaped as `RunbookRun` — see `sig/infrawrench/sdk.rbs`.
12705
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
12706
+ def get_org_org_id_runbooks_runs_run_id(run_id:, org_id: nil, request_options: nil)
12707
+ @transport.request(
12708
+ http_method: "GET",
12709
+ path: "/api/org/{orgId}/runbooks/runs/{runId}",
12710
+ path_params: { "orgId" => org_id, "runId" => run_id },
12711
+ request_options: request_options
12712
+ )
12713
+ end
12714
+ end
12715
+
12716
+ # `client.runbooks`
12717
+ class RunbooksNamespace
12718
+ # @return [RunbooksGetNamespace] `client.runbooks.get`
12719
+ attr_reader :get
12720
+ # @return [RunbooksRunsNamespace] `client.runbooks.runs`
12721
+ attr_reader :runs
12722
+
12723
+ # @api private
12724
+ # @param transport [Transport]
12725
+ def initialize(transport)
12726
+ @transport = transport
12727
+ @get = RunbooksGetNamespace.new(@transport)
12728
+ @runs = RunbooksRunsNamespace.new(@transport)
12729
+ end
12730
+
12731
+ # Write a runbook
12732
+ #
12733
+ # Editing takes `org:settings:write` — a procedure is an org-wide statement
12734
+ # about how something is done, and it is read by strangers under pressure.
12735
+ # Names are unique within an organization: two runbooks called "Failover" is
12736
+ # how the wrong one gets run.
12737
+ #
12738
+ # POST /api/org/{orgId}/runbooks
12739
+ #
12740
+ # Raises on 400: Bad request
12741
+ #
12742
+ # Raises on 409: Conflict
12743
+ #
12744
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
12745
+ # constructed with.
12746
+ # @param body [Hash, nil] Request body, shaped as `RunbookCreate`.
12747
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
12748
+ # @return [Hash] Parsed JSON, shaped as `Runbook` — see `sig/infrawrench/sdk.rbs`.
12749
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
12750
+ def create(org_id: nil, body: nil, request_options: nil)
12751
+ @transport.request(
12752
+ http_method: "POST",
12753
+ path: "/api/org/{orgId}/runbooks",
12754
+ path_params: { "orgId" => org_id },
12755
+ body: body,
12756
+ request_options: request_options
12757
+ )
12758
+ end
12759
+
12760
+ # Delete a runbook
12761
+ #
12762
+ # Takes its run history with it. To retire a procedure without losing the
12763
+ # record of the runs performed against it, set `enabled` to false instead.
12764
+ #
12765
+ # DELETE /api/org/{orgId}/runbooks/{runbookId}
12766
+ #
12767
+ # Raises on 404: Not found
12768
+ #
12769
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
12770
+ # constructed with.
12771
+ # @param runbook_id [String]
12772
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
12773
+ # @return [nil] This endpoint returns no content.
12774
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
12775
+ def delete(runbook_id:, org_id: nil, request_options: nil)
12776
+ @transport.request(
12777
+ http_method: "DELETE",
12778
+ path: "/api/org/{orgId}/runbooks/{runbookId}",
12779
+ path_params: { "orgId" => org_id, "runbookId" => runbook_id },
12780
+ accept: :empty,
12781
+ request_options: request_options
12782
+ )
12783
+ end
12784
+
12785
+ # Edit a runbook
12786
+ #
12787
+ # Omitted fields are left alone. The result is validated **after** merging,
12788
+ # so a patch that only changes the steps still has to produce a runbook that
12789
+ # is valid as a whole. A step sent with its `id` keeps its identity, so a
12790
+ # run in progress still matches it.
12791
+ #
12792
+ # PATCH /api/org/{orgId}/runbooks/{runbookId}
12793
+ #
12794
+ # Raises on 400: Bad request
12795
+ #
12796
+ # Raises on 404: Not found
12797
+ #
12798
+ # Raises on 409: Conflict
12799
+ #
12800
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
12801
+ # constructed with.
12802
+ # @param runbook_id [String]
12803
+ # @param body [Hash, nil] Request body, shaped as `RunbookUpdate`.
12804
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
12805
+ # @return [Hash] Parsed JSON, shaped as `Runbook` — see `sig/infrawrench/sdk.rbs`.
12806
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
12807
+ def update(runbook_id:, org_id: nil, body: nil, request_options: nil)
12808
+ @transport.request(
12809
+ http_method: "PATCH",
12810
+ path: "/api/org/{orgId}/runbooks/{runbookId}",
12811
+ path_params: { "orgId" => org_id, "runbookId" => runbook_id },
12812
+ body: body,
12813
+ request_options: request_options
12814
+ )
12815
+ end
12816
+ end
12817
+
12414
12818
  # `client.saved_cost_filters`
12415
12819
  class SavedCostFiltersNamespace
12416
12820
  # @api private
@@ -15646,6 +16050,8 @@ module Infrawrench
15646
16050
  attr_reader :alert_rules
15647
16051
  # @return [ApiKeysNamespace] `client.api_keys`
15648
16052
  attr_reader :api_keys
16053
+ # @return [AppsNamespace] `client.apps`
16054
+ attr_reader :apps
15649
16055
  # @return [ArtifactsNamespace] `client.artifacts`
15650
16056
  attr_reader :artifacts
15651
16057
  # @return [AssociationsNamespace] `client.associations`
@@ -15774,6 +16180,8 @@ module Infrawrench
15774
16180
  attr_reader :resources
15775
16181
  # @return [RightsizingNamespace] `client.rightsizing`
15776
16182
  attr_reader :rightsizing
16183
+ # @return [RunbooksNamespace] `client.runbooks`
16184
+ attr_reader :runbooks
15777
16185
  # @return [SavedCostFiltersNamespace] `client.saved_cost_filters`
15778
16186
  attr_reader :saved_cost_filters
15779
16187
  # @return [SchedulesNamespace] `client.schedules`
@@ -15830,6 +16238,7 @@ module Infrawrench
15830
16238
  @agents = AgentsNamespace.new(@transport)
15831
16239
  @alert_rules = AlertRulesNamespace.new(@transport)
15832
16240
  @api_keys = ApiKeysNamespace.new(@transport)
16241
+ @apps = AppsNamespace.new(@transport)
15833
16242
  @artifacts = ArtifactsNamespace.new(@transport)
15834
16243
  @associations = AssociationsNamespace.new(@transport)
15835
16244
  @audit_logs = AuditLogsNamespace.new(@transport)
@@ -15894,6 +16303,7 @@ module Infrawrench
15894
16303
  @quotas = QuotasNamespace.new(@transport)
15895
16304
  @resources = ResourcesNamespace.new(@transport)
15896
16305
  @rightsizing = RightsizingNamespace.new(@transport)
16306
+ @runbooks = RunbooksNamespace.new(@transport)
15897
16307
  @saved_cost_filters = SavedCostFiltersNamespace.new(@transport)
15898
16308
  @schedules = SchedulesNamespace.new(@transport)
15899
16309
  @search = SearchNamespace.new(@transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.30.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.33.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.30.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.33.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.30.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.33.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.30.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.33.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.30.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.33.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.30.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.33.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.30.0"
18
+ VERSION = "1.33.0"
19
19
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.30.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.33.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.30.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.33.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.30.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v1.33.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.30.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.33.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -3822,6 +3822,69 @@ module Infrawrench
3822
3822
  # Spec schema: `LinearVerifyResult`.
3823
3823
  type linear_verify_result = { "ok" => bool, "id" => String, "name" => String, "email" => String | nil }
3824
3824
 
3825
+ # Spec schema: `LinuxAppHostCheck`.
3826
+ type linux_app_host_check = { "preflight" => linux_app_host_preflight, "plan" => linux_app_install_plan }
3827
+
3828
+ # Spec schema: `LinuxAppHostPreflight`.
3829
+ type linux_app_host_preflight = {
3830
+ "arch" => String,
3831
+ "osId" => String,
3832
+ "osName" => String,
3833
+ "packageManager" => "apt-get" | "dnf" | "yum" | "apk" | "pacman" | "zypper" | nil,
3834
+ "privilege" => "root" | "sudo" | "sudo-password" | "none",
3835
+ "requirements" => Array[linux_app_requirement],
3836
+ "staging" => bool,
3837
+ "appCount" => Integer,
3838
+ "ready" => bool
3839
+ }
3840
+
3841
+ # Spec schema: `LinuxAppHostTarget`.
3842
+ type linux_app_host_target = {
3843
+ "accountId" => String,
3844
+ "resourceId" => String,
3845
+ "sshKeyId" => String,
3846
+ "host" => String,
3847
+ "username" => String,
3848
+ ?"port" => Integer
3849
+ }
3850
+
3851
+ # Spec schema: `LinuxAppInstallOutcome`.
3852
+ type linux_app_install_outcome = { "log" => Array[String], "failed" => Array[String], "preflight" => linux_app_host_preflight }
3853
+
3854
+ # Spec schema: `LinuxAppInstallPlan`.
3855
+ type linux_app_install_plan = {
3856
+ "packageManager" => "apt-get" | "dnf" | "yum" | "apk" | "pacman" | "zypper",
3857
+ "privilege" => "root" | "sudo" | "sudo-password" | "none",
3858
+ "requirements" => Array[linux_app_requirement_id],
3859
+ "packages" => Array[String],
3860
+ "commands" => Array[String],
3861
+ "canInstall" => bool,
3862
+ ?"blockedReason" => String
3863
+ }
3864
+ | nil
3865
+
3866
+ # Spec schema: `LinuxAppRequirement`.
3867
+ type linux_app_requirement = {
3868
+ "id" => linux_app_requirement_id,
3869
+ "severity" => "required" | "recommended",
3870
+ "title" => String,
3871
+ "summary" => String,
3872
+ "ok" => bool
3873
+ }
3874
+
3875
+ # gzip unpacks the uploaded app server; xkb is the keyboard layout data
3876
+ # xkbcommon compiles a keymap from; dbus is the session bus GTK applications
3877
+ # wait for; fonts, mesa and icons decide what an application then looks like.
3878
+ #
3879
+ # Spec schema: `LinuxAppRequirementId`.
3880
+ type linux_app_requirement_id = "gzip" | "xkb" | "dbus" | "fonts" | "mesa" | "icons"
3881
+
3882
+ # Spec schema: `LinuxAppSetupEvent`.
3883
+ type linux_app_setup_event = { ?"line" => String, ?"outcome" => linux_app_install_outcome, ?"error" => String }
3884
+
3885
+ # Spec schema: `LinuxAppSetupRequest`.
3886
+ type linux_app_setup_request = linux_app_host_target & { ?"requirements" => Array[linux_app_requirement_id] }
3887
+
3825
3888
  # Spec schema: `LiteralAssociationRequest`.
3826
3889
  type literal_association_request = { "resourceId" => resource_id, "fieldKey" => String, "plaintextValue" => String }
3827
3890
 
@@ -5917,6 +5980,113 @@ module Infrawrench
5917
5980
  # Spec schema: `RoleUpdateRequest`.
5918
5981
  type role_update_request = { ?"name" => String, ?"description" => String | nil, ?"permissions" => Array[permission] }
5919
5982
 
5983
+ # Spec schema: `Runbook`.
5984
+ type runbook = {
5985
+ "id" => String,
5986
+ "name" => String,
5987
+ "description" => String | nil,
5988
+ "steps" => Array[runbook_step],
5989
+ "resourceTypeIds" => Array[String],
5990
+ "tagKey" => String | nil,
5991
+ "tagValue" => String | nil,
5992
+ "enabled" => bool,
5993
+ "createdByUserId" => String | nil,
5994
+ "createdByName" => String | nil,
5995
+ "createdAt" => String,
5996
+ "updatedAt" => String,
5997
+ "runCount" => Integer,
5998
+ "lastRunAt" => String | nil
5999
+ }
6000
+
6001
+ # Spec schema: `RunbookCreate`.
6002
+ type runbook_create = {
6003
+ "name" => String,
6004
+ ?"description" => String | nil,
6005
+ ?"steps" => Array[runbook_step_input],
6006
+ ?"resourceTypeIds" => Array[String],
6007
+ ?"tagKey" => String | nil,
6008
+ ?"tagValue" => String | nil,
6009
+ ?"enabled" => bool
6010
+ }
6011
+
6012
+ # Spec schema: `RunbookList`.
6013
+ type runbook_list = { "runbooks" => Array[runbook] }
6014
+
6015
+ # Spec schema: `RunbookRun`.
6016
+ type runbook_run = {
6017
+ "id" => String,
6018
+ "runbookId" => String,
6019
+ "runbookName" => String,
6020
+ "status" => "running" | "completed" | "abandoned",
6021
+ "incidentId" => String | nil,
6022
+ "startedByUserId" => String | nil,
6023
+ "startedByName" => String | nil,
6024
+ "startedAt" => String,
6025
+ "completedAt" => String | nil,
6026
+ "summary" => String | nil,
6027
+ "steps" => Array[runbook_run_step]
6028
+ }
6029
+
6030
+ # Spec schema: `RunbookRunClose`.
6031
+ type runbook_run_close = { "status" => "completed" | "abandoned", ?"summary" => String | nil }
6032
+
6033
+ # Spec schema: `RunbookRunList`.
6034
+ type runbook_run_list = { "runs" => Array[runbook_run] }
6035
+
6036
+ # Spec schema: `RunbookRunStart`.
6037
+ type runbook_run_start = { ?"incidentId" => String | nil }
6038
+
6039
+ # Spec schema: `RunbookRunStep`.
6040
+ type runbook_run_step = {
6041
+ "stepId" => String,
6042
+ "title" => String,
6043
+ "kind" => "manual" | "workflow" | "link",
6044
+ "status" => "pending" | "done" | "skipped" | "failed",
6045
+ "note" => String | nil,
6046
+ "workflowRunId" => String | nil,
6047
+ "actorUserId" => String | nil,
6048
+ "actorName" => String | nil,
6049
+ "updatedAt" => String | nil
6050
+ }
6051
+
6052
+ # Spec schema: `RunbookStep`.
6053
+ type runbook_step = {
6054
+ "id" => String,
6055
+ "kind" => "manual" | "workflow" | "link",
6056
+ "title" => String,
6057
+ "body" => String,
6058
+ ?"workflowId" => String,
6059
+ ?"url" => String
6060
+ }
6061
+
6062
+ # Spec schema: `RunbookStepInput`.
6063
+ type runbook_step_input = {
6064
+ ?"id" => String,
6065
+ "kind" => "manual" | "workflow" | "link",
6066
+ "title" => String,
6067
+ ?"body" => String,
6068
+ ?"workflowId" => String | nil,
6069
+ ?"url" => String | nil
6070
+ }
6071
+
6072
+ # Spec schema: `RunbookStepUpdate`.
6073
+ type runbook_step_update = {
6074
+ "status" => "pending" | "done" | "skipped" | "failed",
6075
+ ?"note" => String | nil,
6076
+ ?"workflowRunId" => String | nil
6077
+ }
6078
+
6079
+ # Spec schema: `RunbookUpdate`.
6080
+ type runbook_update = {
6081
+ ?"name" => String,
6082
+ ?"description" => String | nil,
6083
+ ?"steps" => Array[runbook_step_input],
6084
+ ?"resourceTypeIds" => Array[String],
6085
+ ?"tagKey" => String | nil,
6086
+ ?"tagValue" => String | nil,
6087
+ ?"enabled" => bool
6088
+ }
6089
+
5920
6090
  # Spec schema: `SavedCostFilter`.
5921
6091
  type saved_cost_filter = {
5922
6092
  "id" => String,
@@ -6659,6 +6829,7 @@ module Infrawrench
6659
6829
  | "backups"
6660
6830
  | "wallboard"
6661
6831
  | "calendar"
6832
+ | "runbooks"
6662
6833
  | "dns"
6663
6834
  | "iac"
6664
6835
  | "environment-diff"
@@ -7093,6 +7264,12 @@ module Infrawrench
7093
7264
  def rotate: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> created_api_key
7094
7265
  end
7095
7266
 
7267
+ class AppsNamespace
7268
+ def initialize: (Transport) -> void
7269
+ def check: (body: linux_app_host_target, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> linux_app_host_check
7270
+ def setup: (body: linux_app_setup_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> linux_app_setup_event
7271
+ end
7272
+
7096
7273
  class ArtifactsNamespace
7097
7274
  def initialize: (Transport) -> void
7098
7275
  def list: (body: artifacts_list_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> json_object
@@ -7903,6 +8080,35 @@ module Infrawrench
7903
8080
  def get: (?org_id: String?, ?refresh: "true" | "false"?, ?request_options: Hash[Symbol, untyped]?) -> rightsizing_list_response
7904
8081
  end
7905
8082
 
8083
+ class RunbooksGetNamespace
8084
+ def initialize: (Transport) -> void
8085
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> runbook_list
8086
+ def get_org_org_id_runbooks_runbook_id: (runbook_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> runbook
8087
+ end
8088
+
8089
+ class RunbooksRunsStepsNamespace
8090
+ def initialize: (Transport) -> void
8091
+ def update: (run_id: String, step_id: String, ?org_id: String?, ?body: runbook_step_update?, ?request_options: Hash[Symbol, untyped]?) -> runbook_run
8092
+ end
8093
+
8094
+ class RunbooksRunsNamespace
8095
+ attr_reader steps: RunbooksRunsStepsNamespace
8096
+ def initialize: (Transport) -> void
8097
+ def close: (run_id: String, ?org_id: String?, ?body: runbook_run_close?, ?request_options: Hash[Symbol, untyped]?) -> runbook_run
8098
+ def create: (runbook_id: String, ?org_id: String?, ?body: runbook_run_start?, ?request_options: Hash[Symbol, untyped]?) -> runbook_run
8099
+ def get: (?org_id: String?, ?runbook_id: String?, ?incident_id: String?, ?limit: Integer?, ?request_options: Hash[Symbol, untyped]?) -> runbook_run_list
8100
+ def get_org_org_id_runbooks_runs_run_id: (run_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> runbook_run
8101
+ end
8102
+
8103
+ class RunbooksNamespace
8104
+ attr_reader get: RunbooksGetNamespace
8105
+ attr_reader runs: RunbooksRunsNamespace
8106
+ def initialize: (Transport) -> void
8107
+ def create: (?org_id: String?, ?body: runbook_create?, ?request_options: Hash[Symbol, untyped]?) -> runbook
8108
+ def delete: (runbook_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> nil
8109
+ def update: (runbook_id: String, ?org_id: String?, ?body: runbook_update?, ?request_options: Hash[Symbol, untyped]?) -> runbook
8110
+ end
8111
+
7906
8112
  class SavedCostFiltersNamespace
7907
8113
  def initialize: (Transport) -> void
7908
8114
  def create: (body: saved_cost_filter_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> saved_cost_filter
@@ -8156,6 +8362,7 @@ module Infrawrench
8156
8362
  attr_reader agents: AgentsNamespace
8157
8363
  attr_reader alert_rules: AlertRulesNamespace
8158
8364
  attr_reader api_keys: ApiKeysNamespace
8365
+ attr_reader apps: AppsNamespace
8159
8366
  attr_reader artifacts: ArtifactsNamespace
8160
8367
  attr_reader associations: AssociationsNamespace
8161
8368
  attr_reader audit_logs: AuditLogsNamespace
@@ -8220,6 +8427,7 @@ module Infrawrench
8220
8427
  attr_reader quotas: QuotasNamespace
8221
8428
  attr_reader resources: ResourcesNamespace
8222
8429
  attr_reader rightsizing: RightsizingNamespace
8430
+ attr_reader runbooks: RunbooksNamespace
8223
8431
  attr_reader saved_cost_filters: SavedCostFiltersNamespace
8224
8432
  attr_reader schedules: SchedulesNamespace
8225
8433
  attr_reader search: SearchNamespace
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.30.0
4
+ version: 1.33.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-08-18 00:00:00.000000000 Z
12
+ date: 2026-08-20 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: Generated Ruby client for the Infrawrench API (v1.30.0). Covers the published
14
+ description: Generated Ruby client for the Infrawrench API (v1.33.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.30.0).
61
+ summary: Generated Ruby client for the Infrawrench API (v1.33.0).
62
62
  test_files: []