infrawrench-sdk 1.35.0 → 1.36.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: 21301af50899b2c30d5076532d9a6be413e675f4afb0a6a7fe02d3b95ecb5872
4
- data.tar.gz: 1961c2a7ae9ad910d12006e9f3195b1d312ec2d85f842021c615437ad90806b2
3
+ metadata.gz: b5b90361dde3de471113536200e43a0ea37d883fbcc9e372fd804e52811b9f07
4
+ data.tar.gz: 46277171e24394e846c276fd1f02fa726c068671eb15b4991dd7657329d15f16
5
5
  SHA512:
6
- metadata.gz: 4cbe76a752bb89558ad82455f76d4a230108c3c66bb6c7b34ae48bfeb5584f62dc9cca931a3a8f20d7445b3803e01fc2c6d93ee0b78488edc19e26a3c91b7f0d
7
- data.tar.gz: c0ba333ab61770f2750a7c87843f4b5a7792f76888456576d1d5e9e92b5f95621009c7fb11a6933d7095de610ab4b13c9254864b9e76cdd0b21f679d5dbb6cf7
6
+ metadata.gz: 484c1e481582a7942fd16413fa2482094495a38435bb1825e33eccd336bc543e4002130889a79aac6238806a054ece8be41e9a56998ca4d3fe822253703f8920
7
+ data.tar.gz: 9efc6b5c019ad379ca4b58f325549752c59a21084879447e26427219e79250ad9dac9ac9857781eadba0be96fe707f5ac48e28e1605712acd8cced7b03c3f631
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.35.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `1.36.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
- 724 schemas, as RBS type aliases that steep and TypeProf can read.
44
+ 729 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.35.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.36.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.35.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.36.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.35.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v1.35.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.36.0)."
21
+ spec.description = "Generated Ruby client for the Infrawrench API (v1.36.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.35.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.36.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.35.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.36.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1871,6 +1871,125 @@ module Infrawrench
1871
1871
  end
1872
1872
  end
1873
1873
 
1874
+ # `client.backups.drills`
1875
+ class BackupsDrillsNamespace
1876
+ # @api private
1877
+ # @param transport [Transport]
1878
+ def initialize(transport)
1879
+ @transport = transport
1880
+ end
1881
+
1882
+ # Record a restore drill
1883
+ #
1884
+ # A `verified` drill **must** carry the measured time: an RPO comes from the
1885
+ # backup, and an RTO can only come from somebody with a stopwatch — that
1886
+ # number is the entire point of the exercise. A `blocked` drill must not
1887
+ # carry one, because it never started.
1888
+ #
1889
+ # Takes `resources:write`, not a settings permission: recording a drill is
1890
+ # reporting what you did, and the person who spent Saturday restoring a
1891
+ # database is rarely the person who set the recovery objective.
1892
+ #
1893
+ # POST /api/org/{orgId}/backups/drills
1894
+ #
1895
+ # Raises on 400: Bad request
1896
+ #
1897
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1898
+ # constructed with.
1899
+ # @param body [Hash, nil] Request body, shaped as `RestoreDrillCreate`.
1900
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1901
+ # @return [Hash] Parsed JSON, shaped as `RestoreDrill` — see `sig/infrawrench/sdk.rbs`.
1902
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1903
+ def create(org_id: nil, body: nil, request_options: nil)
1904
+ @transport.request(
1905
+ http_method: "POST",
1906
+ path: "/api/org/{orgId}/backups/drills",
1907
+ path_params: { "orgId" => org_id },
1908
+ body: body,
1909
+ request_options: request_options
1910
+ )
1911
+ end
1912
+
1913
+ # Delete a recorded drill
1914
+ #
1915
+ # For one recorded against the wrong resource or the wrong date. Audited —
1916
+ # deleting evidence that a restore failed is exactly the edit a reviewer
1917
+ # would want to know about.
1918
+ #
1919
+ # DELETE /api/org/{orgId}/backups/drills/{drillId}
1920
+ #
1921
+ # Raises on 404: Not found
1922
+ #
1923
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1924
+ # constructed with.
1925
+ # @param drill_id [String]
1926
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1927
+ # @return [nil] This endpoint returns no content.
1928
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1929
+ def delete(drill_id:, org_id: nil, request_options: nil)
1930
+ @transport.request(
1931
+ http_method: "DELETE",
1932
+ path: "/api/org/{orgId}/backups/drills/{drillId}",
1933
+ path_params: { "orgId" => org_id, "drillId" => drill_id },
1934
+ accept: :empty,
1935
+ request_options: request_options
1936
+ )
1937
+ end
1938
+
1939
+ # Where every protected resource stands on restore
1940
+ #
1941
+ # Backup coverage answers 'is there a backup'. This answers 'does it
1942
+ # restore, and how long does it take' — a different question, and the one
1943
+ # routinely answered wrongly on the day.
1944
+ #
1945
+ # A drill is a **record that somebody tried**, not an automated restore:
1946
+ # restoring a customer's database unattended costs real money, can collide
1947
+ # with production, and cannot be generically verified. What the product can
1948
+ # do is make the exercise scheduled, recorded and visible when it lapses.
1949
+ #
1950
+ # GET /api/org/{orgId}/backups/drills
1951
+ #
1952
+ # Raises on 400: Bad request
1953
+ #
1954
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1955
+ # constructed with.
1956
+ # @param valid_days [Integer, nil] How long a verified drill counts for. Defaults to 180
1957
+ # days.
1958
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1959
+ # @return [Hash] Parsed JSON, shaped as `DrillCoverageResponse` — see
1960
+ # `sig/infrawrench/sdk.rbs`.
1961
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1962
+ def get(org_id: nil, valid_days: nil, request_options: nil)
1963
+ @transport.request(
1964
+ http_method: "GET",
1965
+ path: "/api/org/{orgId}/backups/drills",
1966
+ path_params: { "orgId" => org_id },
1967
+ query: { "validDays" => valid_days },
1968
+ request_options: request_options
1969
+ )
1970
+ end
1971
+
1972
+ # List recorded restore drills
1973
+ #
1974
+ # GET /api/org/{orgId}/backups/drills/log
1975
+ #
1976
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1977
+ # constructed with.
1978
+ # @param resource_id [String, nil]
1979
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1980
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
1981
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1982
+ def log(org_id: nil, resource_id: nil, request_options: nil)
1983
+ @transport.request(
1984
+ http_method: "GET",
1985
+ path: "/api/org/{orgId}/backups/drills/log",
1986
+ path_params: { "orgId" => org_id },
1987
+ query: { "resourceId" => resource_id },
1988
+ request_options: request_options
1989
+ )
1990
+ end
1991
+ end
1992
+
1874
1993
  # `client.backups.policies`
1875
1994
  class BackupsPoliciesNamespace
1876
1995
  # @api private
@@ -1988,6 +2107,8 @@ module Infrawrench
1988
2107
 
1989
2108
  # `client.backups`
1990
2109
  class BackupsNamespace
2110
+ # @return [BackupsDrillsNamespace] `client.backups.drills`
2111
+ attr_reader :drills
1991
2112
  # @return [BackupsPoliciesNamespace] `client.backups.policies`
1992
2113
  attr_reader :policies
1993
2114
 
@@ -1995,6 +2116,7 @@ module Infrawrench
1995
2116
  # @param transport [Transport]
1996
2117
  def initialize(transport)
1997
2118
  @transport = transport
2119
+ @drills = BackupsDrillsNamespace.new(@transport)
1998
2120
  @policies = BackupsPoliciesNamespace.new(@transport)
1999
2121
  end
2000
2122
 
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.35.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.36.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.35.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.36.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.35.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.36.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.35.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.36.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.35.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.36.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.35.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.36.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.35.0"
18
+ VERSION = "1.36.0"
19
19
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.35.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.36.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.35.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.36.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.35.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v1.36.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.35.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.36.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -2855,6 +2855,41 @@ module Infrawrench
2855
2855
  ?"accountIds" => Array[String]
2856
2856
  }
2857
2857
 
2858
+ # Spec schema: `DrillCoverageResponse`.
2859
+ type drill_coverage_response = {
2860
+ "rows" => Array[drill_coverage_row],
2861
+ "summary" => drill_summary,
2862
+ "validDays" => Integer,
2863
+ "orphanedDrills" => Array[restore_drill],
2864
+ "generatedAt" => String
2865
+ }
2866
+
2867
+ # Spec schema: `DrillCoverageRow`.
2868
+ type drill_coverage_row = {
2869
+ "resourceId" => String,
2870
+ "resourceName" => String | nil,
2871
+ "accountId" => String | nil,
2872
+ "accountName" => String | nil,
2873
+ "resourceTypeId" => String | nil,
2874
+ "standing" => "verified" | "stale" | "failed" | "never",
2875
+ "lastDrillAt" => String | nil,
2876
+ "lastOutcome" => "verified" | "restored-unverified" | "failed" | "blocked" | nil,
2877
+ "lastVerifiedAt" => String | nil,
2878
+ "verifiedRtoMinutes" => Integer | nil,
2879
+ "daysUntilStale" => Integer | nil
2880
+ }
2881
+
2882
+ # Spec schema: `DrillSummary`.
2883
+ type drill_summary = {
2884
+ "eligibleCount" => Integer,
2885
+ "verifiedCount" => Integer,
2886
+ "staleCount" => Integer,
2887
+ "failedCount" => Integer,
2888
+ "neverCount" => Integer,
2889
+ "worstRtoMinutes" => Integer | nil,
2890
+ "medianRtoMinutes" => Integer | nil
2891
+ }
2892
+
2858
2893
  # Spec schema: `EditableField`.
2859
2894
  type editable_field = {
2860
2895
  "key" => String,
@@ -6004,6 +6039,33 @@ module Infrawrench
6004
6039
  ?"schedulable" => bool
6005
6040
  }
6006
6041
 
6042
+ # Spec schema: `RestoreDrill`.
6043
+ type restore_drill = {
6044
+ "id" => String,
6045
+ "resourceId" => String,
6046
+ "resourceName" => String | nil,
6047
+ "accountId" => String | nil,
6048
+ "accountName" => String | nil,
6049
+ "performedAt" => String,
6050
+ "outcome" => "verified" | "restored-unverified" | "failed" | "blocked",
6051
+ "rtoMinutes" => Integer | nil,
6052
+ "restoredFrom" => String | nil,
6053
+ "notes" => String | nil,
6054
+ "performedByUserId" => String | nil,
6055
+ "performedByName" => String | nil,
6056
+ "createdAt" => String
6057
+ }
6058
+
6059
+ # Spec schema: `RestoreDrillCreate`.
6060
+ type restore_drill_create = {
6061
+ "resourceId" => String,
6062
+ "performedAt" => String,
6063
+ "outcome" => "verified" | "restored-unverified" | "failed" | "blocked",
6064
+ ?"rtoMinutes" => Integer | nil,
6065
+ ?"restoredFrom" => String | nil,
6066
+ ?"notes" => String | nil
6067
+ }
6068
+
6007
6069
  # Spec schema: `RevertApplyResponse`.
6008
6070
  type revert_apply_response = {
6009
6071
  "changeId" => String,
@@ -7411,6 +7473,14 @@ module Infrawrench
7411
7473
  def orgs: (?request_options: Hash[Symbol, untyped]?) -> Array[org_membership]
7412
7474
  end
7413
7475
 
7476
+ class BackupsDrillsNamespace
7477
+ def initialize: (Transport) -> void
7478
+ def create: (?org_id: String?, ?body: restore_drill_create?, ?request_options: Hash[Symbol, untyped]?) -> restore_drill
7479
+ def delete: (drill_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> nil
7480
+ def get: (?org_id: String?, ?valid_days: Integer?, ?request_options: Hash[Symbol, untyped]?) -> drill_coverage_response
7481
+ def log: (?org_id: String?, ?resource_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "drills" => Array[restore_drill] }
7482
+ end
7483
+
7414
7484
  class BackupsPoliciesNamespace
7415
7485
  def initialize: (Transport) -> void
7416
7486
  def create: (?org_id: String?, ?body: backup_policy_create?, ?request_options: Hash[Symbol, untyped]?) -> backup_policy
@@ -7420,6 +7490,7 @@ module Infrawrench
7420
7490
  end
7421
7491
 
7422
7492
  class BackupsNamespace
7493
+ attr_reader drills: BackupsDrillsNamespace
7423
7494
  attr_reader policies: BackupsPoliciesNamespace
7424
7495
  def initialize: (Transport) -> void
7425
7496
  def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> backup_coverage_response
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.35.0
4
+ version: 1.36.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-25 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: Generated Ruby client for the Infrawrench API (v1.35.0). Covers the published
14
+ description: Generated Ruby client for the Infrawrench API (v1.36.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.35.0).
61
+ summary: Generated Ruby client for the Infrawrench API (v1.36.0).
62
62
  test_files: []