infrawrench-sdk 1.18.0 → 1.20.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: 88e054d8ab5e5f760e83695779f5d6fb4fd8630779b87d76c7268df6458a4368
4
- data.tar.gz: 05cf568abc46f27c6488f536dba00e43f6b2905df806ac012a2bb1b8db33112c
3
+ metadata.gz: 2aade9009a4966cfaa9e82b4699079a6fd8d6905851025aae181ff1b7fbcbb81
4
+ data.tar.gz: 9a5246069b56720d98491a61586fc3e5974a6c9275c773bc5cc03fe155011794
5
5
  SHA512:
6
- metadata.gz: 3a594eda98b0d94712d89d36a7898bb521d1efd0d68edc137841ee3bf237aa787fa10a15463b01f2a80386ec275671270d33936c00eae59b23803099426a7f95
7
- data.tar.gz: 90bf6a53e80839579db54dff18b4f9ea3e2c8e7ee1685ba1041d8346ba33e31e8c112f6b223fea188ffc5703b6d3de40690401bf2687a1b1d983edbabddbd819
6
+ metadata.gz: 6e70ca3fc61a7f2e1ca9f4a2566bc0c304485d72d0753839c8754688f11cfcd482b260a30374c3b36cdf35d78c48d3b9c731950715ea6809b3d417d846f62456
7
+ data.tar.gz: b5837bebf73eda20028285801425c5c89a42271701ed783839a316b3119bba973baf32033db5f0bc945c967f0fbf3feca93aebc4a47af941a744a8862e65dabe
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.18.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `1.20.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
- 615 schemas, as RBS type aliases that steep and TypeProf can read.
44
+ 635 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.18.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.20.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.18.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.20.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.18.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v1.18.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.20.0)."
21
+ spec.description = "Generated Ruby client for the Infrawrench API (v1.20.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.18.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.20.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.18.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.20.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1535,6 +1535,161 @@ module Infrawrench
1535
1535
  end
1536
1536
  end
1537
1537
 
1538
+ # `client.backups.policies`
1539
+ class BackupsPoliciesNamespace
1540
+ # @api private
1541
+ # @param transport [Transport]
1542
+ def initialize(transport)
1543
+ @transport = transport
1544
+ end
1545
+
1546
+ # Create a backup policy
1547
+ #
1548
+ # A policy must demand at least one of `maxRpoHours` and `minRetentionDays`
1549
+ # — one that demands nothing could never produce a finding and would read as
1550
+ # protection while providing none. An empty `resourceTypeIds` selects every
1551
+ # stateful resource type.
1552
+ #
1553
+ # POST /api/org/{orgId}/backups/policies
1554
+ #
1555
+ # Raises on 400: Bad request
1556
+ #
1557
+ # Raises on 409: Conflict
1558
+ #
1559
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1560
+ # constructed with.
1561
+ # @param body [Hash, nil] Request body, shaped as `BackupPolicyCreate`.
1562
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1563
+ # @return [Hash] Parsed JSON, shaped as `BackupPolicy` — see `sig/infrawrench/sdk.rbs`.
1564
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1565
+ def create(org_id: nil, body: nil, request_options: nil)
1566
+ @transport.request(
1567
+ http_method: "POST",
1568
+ path: "/api/org/{orgId}/backups/policies",
1569
+ path_params: { "orgId" => org_id },
1570
+ body: body,
1571
+ request_options: request_options
1572
+ )
1573
+ end
1574
+
1575
+ # Delete a backup policy
1576
+ #
1577
+ # Removes the objective. To stop a policy judging without losing it, set
1578
+ # `enabled` to false instead.
1579
+ #
1580
+ # DELETE /api/org/{orgId}/backups/policies/{policyId}
1581
+ #
1582
+ # Raises on 404: Not found
1583
+ #
1584
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1585
+ # constructed with.
1586
+ # @param policy_id [String]
1587
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1588
+ # @return [nil] This endpoint returns no content.
1589
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1590
+ def delete(policy_id:, org_id: nil, request_options: nil)
1591
+ @transport.request(
1592
+ http_method: "DELETE",
1593
+ path: "/api/org/{orgId}/backups/policies/{policyId}",
1594
+ path_params: { "orgId" => org_id, "policyId" => policy_id },
1595
+ accept: :empty,
1596
+ request_options: request_options
1597
+ )
1598
+ end
1599
+
1600
+ # List the organization's backup policies
1601
+ #
1602
+ # The recovery objectives coverage is judged against. A policy selects
1603
+ # resources by type and/or tag and demands a maximum RPO, a minimum
1604
+ # retention, or both.
1605
+ #
1606
+ # GET /api/org/{orgId}/backups/policies
1607
+ #
1608
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1609
+ # constructed with.
1610
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1611
+ # @return [Hash] Parsed JSON, shaped as `BackupPolicyList` — see `sig/infrawrench/sdk.rbs`.
1612
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1613
+ def get(org_id: nil, request_options: nil)
1614
+ @transport.request(
1615
+ http_method: "GET",
1616
+ path: "/api/org/{orgId}/backups/policies",
1617
+ path_params: { "orgId" => org_id },
1618
+ request_options: request_options
1619
+ )
1620
+ end
1621
+
1622
+ # Update a backup policy
1623
+ #
1624
+ # Omitted fields are left alone; an explicit `null` clears `tagKey`,
1625
+ # `tagValue`, `maxRpoHours` or `minRetentionDays`. The result is validated
1626
+ # after merging, so a patch that would leave the policy demanding nothing is
1627
+ # rejected.
1628
+ #
1629
+ # PATCH /api/org/{orgId}/backups/policies/{policyId}
1630
+ #
1631
+ # Raises on 400: Bad request
1632
+ #
1633
+ # Raises on 404: Not found
1634
+ #
1635
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1636
+ # constructed with.
1637
+ # @param policy_id [String]
1638
+ # @param body [Hash, nil] Request body, shaped as `BackupPolicyUpdate`.
1639
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1640
+ # @return [Hash] Parsed JSON, shaped as `BackupPolicy` — see `sig/infrawrench/sdk.rbs`.
1641
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1642
+ def update(policy_id:, org_id: nil, body: nil, request_options: nil)
1643
+ @transport.request(
1644
+ http_method: "PATCH",
1645
+ path: "/api/org/{orgId}/backups/policies/{policyId}",
1646
+ path_params: { "orgId" => org_id, "policyId" => policy_id },
1647
+ body: body,
1648
+ request_options: request_options
1649
+ )
1650
+ end
1651
+ end
1652
+
1653
+ # `client.backups`
1654
+ class BackupsNamespace
1655
+ # @return [BackupsPoliciesNamespace] `client.backups.policies`
1656
+ attr_reader :policies
1657
+
1658
+ # @api private
1659
+ # @param transport [Transport]
1660
+ def initialize(transport)
1661
+ @transport = transport
1662
+ @policies = BackupsPoliciesNamespace.new(@transport)
1663
+ end
1664
+
1665
+ # List backup coverage across synced resources
1666
+ #
1667
+ # What protects the organization's stateful resources, what does not, and
1668
+ # which backups protect nothing. Derived from already-synced inventory using
1669
+ # the `backupRole` and `backupPolicy` declarations plugins carry on their
1670
+ # resource types — no provider API calls are made and results reflect the
1671
+ # last sync. Findings are recomputed on every read rather than stored.
1672
+ # Orphaned backups carry a trailing-30-day spend quote when billing data is
1673
+ # available.
1674
+ #
1675
+ # GET /api/org/{orgId}/backups
1676
+ #
1677
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1678
+ # constructed with.
1679
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1680
+ # @return [Hash] Parsed JSON, shaped as `BackupCoverageResponse` — see
1681
+ # `sig/infrawrench/sdk.rbs`.
1682
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1683
+ def get(org_id: nil, request_options: nil)
1684
+ @transport.request(
1685
+ http_method: "GET",
1686
+ path: "/api/org/{orgId}/backups",
1687
+ path_params: { "orgId" => org_id },
1688
+ request_options: request_options
1689
+ )
1690
+ end
1691
+ end
1692
+
1538
1693
  # `client.bastions`
1539
1694
  class BastionsNamespace
1540
1695
  # @api private
@@ -6823,6 +6978,192 @@ module Infrawrench
6823
6978
  end
6824
6979
  end
6825
6980
 
6981
+ # `client.iac.states`
6982
+ class IacStatesNamespace
6983
+ # @api private
6984
+ # @param transport [Transport]
6985
+ def initialize(transport)
6986
+ @transport = transport
6987
+ end
6988
+
6989
+ # Upload a Terraform state document
6990
+ #
6991
+ # Parses a `.tfstate` (format version 4) or `terraform show -json` output
6992
+ # (format_version 1.x) and records the resource instances it contains.
6993
+ # Attributes the state marks sensitive are dropped before anything is
6994
+ # written. The format version is checked, not assumed: an unsupported
6995
+ # version is a 400 rather than a partial read.
6996
+ #
6997
+ # POST /api/org/{orgId}/iac/states
6998
+ #
6999
+ # Raises on 400: Bad request
7000
+ #
7001
+ # Raises on 404: Not found
7002
+ #
7003
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7004
+ # constructed with.
7005
+ # @param body [Hash, nil] Request body, shaped as `IacStateUploadRequest`.
7006
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7007
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
7008
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7009
+ def create(org_id: nil, body: nil, request_options: nil)
7010
+ @transport.request(
7011
+ http_method: "POST",
7012
+ path: "/api/org/{orgId}/iac/states",
7013
+ path_params: { "orgId" => org_id },
7014
+ body: body,
7015
+ request_options: request_options
7016
+ )
7017
+ end
7018
+
7019
+ # Delete an uploaded state document
7020
+ #
7021
+ # DELETE /api/org/{orgId}/iac/states/{stateId}
7022
+ #
7023
+ # Raises on 404: Not found
7024
+ #
7025
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7026
+ # constructed with.
7027
+ # @param state_id [String]
7028
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7029
+ # @return [nil] This endpoint returns no content.
7030
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7031
+ def delete(state_id:, org_id: nil, request_options: nil)
7032
+ @transport.request(
7033
+ http_method: "DELETE",
7034
+ path: "/api/org/{orgId}/iac/states/{stateId}",
7035
+ path_params: { "orgId" => org_id, "stateId" => state_id },
7036
+ accept: :empty,
7037
+ request_options: request_options
7038
+ )
7039
+ end
7040
+
7041
+ # List uploaded Terraform state documents
7042
+ #
7043
+ # Every state document the organization has uploaded, newest first. The
7044
+ # documents themselves are never stored — only the parsed, redacted
7045
+ # projection.
7046
+ #
7047
+ # GET /api/org/{orgId}/iac/states
7048
+ #
7049
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7050
+ # constructed with.
7051
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7052
+ # @return [Hash] Parsed JSON, shaped as `IacStateListResponse` — see
7053
+ # `sig/infrawrench/sdk.rbs`.
7054
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7055
+ def get(org_id: nil, request_options: nil)
7056
+ @transport.request(
7057
+ http_method: "GET",
7058
+ path: "/api/org/{orgId}/iac/states",
7059
+ path_params: { "orgId" => org_id },
7060
+ request_options: request_options
7061
+ )
7062
+ end
7063
+ end
7064
+
7065
+ # `client.iac`
7066
+ class IacNamespace
7067
+ # @return [IacStatesNamespace] `client.iac.states`
7068
+ attr_reader :states
7069
+
7070
+ # @api private
7071
+ # @param transport [Transport]
7072
+ def initialize(transport)
7073
+ @transport = transport
7074
+ @states = IacStatesNamespace.new(@transport)
7075
+ end
7076
+
7077
+ # Generate Terraform import blocks for unmanaged resources
7078
+ #
7079
+ # Terraform 1.5+ `import` blocks plus the matching resource stanzas,
7080
+ # generated by the same plugin export mappers and HCL serializer that back
7081
+ # "Export to Terraform…". Resources no plugin can express are returned in
7082
+ # `unsupported` with a reason, never dropped.
7083
+ #
7084
+ # POST /api/org/{orgId}/iac/import-plan
7085
+ #
7086
+ # Raises on 400: Bad request
7087
+ #
7088
+ # Raises on 404: Not found
7089
+ #
7090
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7091
+ # constructed with.
7092
+ # @param body [Hash, nil] Request body, shaped as `IacImportPlanRequest`.
7093
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7094
+ # @return [Hash] Parsed JSON, shaped as `IacImportPlanResponse` — see
7095
+ # `sig/infrawrench/sdk.rbs`.
7096
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7097
+ def import_plan(org_id: nil, body: nil, request_options: nil)
7098
+ @transport.request(
7099
+ http_method: "POST",
7100
+ path: "/api/org/{orgId}/iac/import-plan",
7101
+ path_params: { "orgId" => org_id },
7102
+ body: body,
7103
+ request_options: request_options
7104
+ )
7105
+ end
7106
+
7107
+ # Classify inventory against a state document
7108
+ #
7109
+ # Every synced resource classified as managed, drifted or unmanaged against
7110
+ # one uploaded state, plus state entries with no inventory match. Unmanaged
7111
+ # resources carry the ownership and first-seen join that answers "who made
7112
+ # this by hand, and when".
7113
+ #
7114
+ # GET /api/org/{orgId}/iac/reconciliation
7115
+ #
7116
+ # Raises on 400: Bad request
7117
+ #
7118
+ # Raises on 404: Not found
7119
+ #
7120
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7121
+ # constructed with.
7122
+ # @param state_id [String]
7123
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7124
+ # @return [Hash] Parsed JSON, shaped as `IacReconciliationResponse` — see
7125
+ # `sig/infrawrench/sdk.rbs`.
7126
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7127
+ def reconciliation(state_id:, org_id: nil, request_options: nil)
7128
+ @transport.request(
7129
+ http_method: "GET",
7130
+ path: "/api/org/{orgId}/iac/reconciliation",
7131
+ path_params: { "orgId" => org_id },
7132
+ query: { "stateId" => state_id },
7133
+ request_options: request_options
7134
+ )
7135
+ end
7136
+
7137
+ # IaC status for one resource
7138
+ #
7139
+ # The managed/unmanaged badge for a resource detail page, computed against
7140
+ # the newest state document. `status` is null when the organization has
7141
+ # uploaded none — absence of a state is not evidence of ClickOps. A query
7142
+ # parameter rather than a path segment because composite resource ids
7143
+ # contain slashes.
7144
+ #
7145
+ # GET /api/org/{orgId}/iac/resource
7146
+ #
7147
+ # Raises on 400: Bad request
7148
+ #
7149
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7150
+ # constructed with.
7151
+ # @param resource_id [String]
7152
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7153
+ # @return [Hash] Parsed JSON, shaped as `IacResourceStatusResponse` — see
7154
+ # `sig/infrawrench/sdk.rbs`.
7155
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7156
+ def resource(resource_id:, org_id: nil, request_options: nil)
7157
+ @transport.request(
7158
+ http_method: "GET",
7159
+ path: "/api/org/{orgId}/iac/resource",
7160
+ path_params: { "orgId" => org_id },
7161
+ query: { "resourceId" => resource_id },
7162
+ request_options: request_options
7163
+ )
7164
+ end
7165
+ end
7166
+
6826
7167
  # `client.incidents.get`
6827
7168
  class IncidentsGetNamespace
6828
7169
  # @api private
@@ -13998,6 +14339,8 @@ module Infrawrench
13998
14339
  attr_reader :audit_logs
13999
14340
  # @return [AuthNamespace] `client.auth`
14000
14341
  attr_reader :auth
14342
+ # @return [BackupsNamespace] `client.backups`
14343
+ attr_reader :backups
14001
14344
  # @return [BastionsNamespace] `client.bastions`
14002
14345
  attr_reader :bastions
14003
14346
  # @return [BillingNamespace] `client.billing`
@@ -14062,6 +14405,8 @@ module Infrawrench
14062
14405
  attr_reader :environment_diff
14063
14406
  # @return [ExpiringNamespace] `client.expiring`
14064
14407
  attr_reader :expiring
14408
+ # @return [IacNamespace] `client.iac`
14409
+ attr_reader :iac
14065
14410
  # @return [IncidentsNamespace] `client.incidents`
14066
14411
  attr_reader :incidents
14067
14412
  # @return [InvitationsNamespace] `client.invitations`
@@ -14162,6 +14507,7 @@ module Infrawrench
14162
14507
  @associations = AssociationsNamespace.new(@transport)
14163
14508
  @audit_logs = AuditLogsNamespace.new(@transport)
14164
14509
  @auth = AuthNamespace.new(@transport)
14510
+ @backups = BackupsNamespace.new(@transport)
14165
14511
  @bastions = BastionsNamespace.new(@transport)
14166
14512
  @billing = BillingNamespace.new(@transport)
14167
14513
  @billing_rules = BillingRulesNamespace.new(@transport)
@@ -14194,6 +14540,7 @@ module Infrawrench
14194
14540
  @docker = DockerNamespace.new(@transport)
14195
14541
  @environment_diff = EnvironmentDiffNamespace.new(@transport)
14196
14542
  @expiring = ExpiringNamespace.new(@transport)
14543
+ @iac = IacNamespace.new(@transport)
14197
14544
  @incidents = IncidentsNamespace.new(@transport)
14198
14545
  @invitations = InvitationsNamespace.new(@transport)
14199
14546
  @invoices = InvoicesNamespace.new(@transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.18.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.20.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.18.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.20.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.18.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.20.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.18.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.20.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.18.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.20.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.18.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.20.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.18.0"
18
+ VERSION = "1.20.0"
19
19
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.18.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.20.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.18.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.20.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.18.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v1.20.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.18.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.20.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -546,6 +546,138 @@ module Infrawrench
546
546
  "totpUser" => String | nil
547
547
  }
548
548
 
549
+ # Spec schema: `BackupCoverageResponse`.
550
+ type backup_coverage_response = {
551
+ "findings" => Array[backup_finding],
552
+ "counts" => backup_severity_counts,
553
+ "kindCounts" => backup_kind_counts,
554
+ "totalCount" => Integer,
555
+ "resources" => Array[backup_coverage_row],
556
+ "summary" => backup_coverage_summary,
557
+ "generatedAt" => String
558
+ }
559
+
560
+ # Spec schema: `BackupCoverageRow`.
561
+ type backup_coverage_row = {
562
+ "resourceId" => String,
563
+ "pluginId" => plugin_id,
564
+ "pluginName" => String,
565
+ "resourceTypeId" => String,
566
+ "resourceTypeName" => String,
567
+ "accountId" => String,
568
+ "accountName" => String,
569
+ "displayName" => String,
570
+ "externalId" => String | nil,
571
+ "state" => "protected" | "automated" | "stale" | "unknown" | "unprotected",
572
+ "backupCount" => Integer,
573
+ "latestBackupId" => String | nil,
574
+ "latestBackupName" => String | nil,
575
+ "latestBackupAt" => String | nil,
576
+ "rpoHours" => Numeric | nil,
577
+ "automatedBackups" => bool | nil,
578
+ "retentionDays" => Numeric | nil,
579
+ "rpoPolicyId" => String | nil,
580
+ "rpoPolicyName" => String | nil,
581
+ "retentionPolicyId" => String | nil,
582
+ "retentionPolicyName" => String | nil,
583
+ "maxRpoHours" => Integer | nil,
584
+ "minRetentionDays" => Integer | nil
585
+ }
586
+
587
+ # Spec schema: `BackupCoverageSummary`.
588
+ type backup_coverage_summary = {
589
+ "statefulCount" => Integer,
590
+ "protectedCount" => Integer,
591
+ "unprotectedCount" => Integer,
592
+ "unknownCount" => Integer,
593
+ "backupCount" => Integer,
594
+ "orphanedBackupCount" => Integer,
595
+ "unattributableBackupCount" => Integer,
596
+ "orphanedGb" => Numeric | nil,
597
+ "orphanedMonthlyCost" => Numeric | nil,
598
+ "currency" => String | nil,
599
+ "worstRpoHours" => Numeric | nil
600
+ }
601
+
602
+ # Spec schema: `BackupFinding`.
603
+ type backup_finding = {
604
+ "resourceId" => String,
605
+ "pluginId" => plugin_id,
606
+ "pluginName" => String,
607
+ "resourceTypeId" => String,
608
+ "resourceTypeName" => String,
609
+ "accountId" => String,
610
+ "accountName" => String,
611
+ "displayName" => String,
612
+ "externalId" => String | nil,
613
+ "kind" => "unprotected" | "rpo-breach" | "retention-below-policy" | "orphaned-snapshot",
614
+ "severity" => "critical" | "high" | "medium" | "low",
615
+ "title" => String,
616
+ "detail" => String,
617
+ "policyId" => String | nil,
618
+ "policyName" => String | nil,
619
+ "rpoHours" => Numeric | nil,
620
+ "maxRpoHours" => Integer | nil,
621
+ "retentionDays" => Numeric | nil,
622
+ "minRetentionDays" => Integer | nil,
623
+ "latestBackupId" => String | nil,
624
+ "latestBackupName" => String | nil,
625
+ "latestBackupAt" => String | nil,
626
+ "sizeGb" => Numeric | nil,
627
+ "monthlyCost" => Numeric | nil,
628
+ "currency" => String | nil
629
+ }
630
+
631
+ # Spec schema: `BackupKindCounts`.
632
+ type backup_kind_counts = {
633
+ "unprotected" => Integer,
634
+ "rpo-breach" => Integer,
635
+ "retention-below-policy" => Integer,
636
+ "orphaned-snapshot" => Integer
637
+ }
638
+
639
+ # Spec schema: `BackupPolicy`.
640
+ type backup_policy = {
641
+ "id" => String,
642
+ "name" => String,
643
+ "resourceTypeIds" => Array[String],
644
+ "tagKey" => String | nil,
645
+ "tagValue" => String | nil,
646
+ "maxRpoHours" => Integer | nil,
647
+ "minRetentionDays" => Integer | nil,
648
+ "enabled" => bool,
649
+ "createdAt" => String,
650
+ "updatedAt" => String
651
+ }
652
+
653
+ # Spec schema: `BackupPolicyCreate`.
654
+ type backup_policy_create = {
655
+ "name" => String,
656
+ ?"resourceTypeIds" => Array[String],
657
+ ?"tagKey" => String | nil,
658
+ ?"tagValue" => String | nil,
659
+ ?"maxRpoHours" => Integer | nil,
660
+ ?"minRetentionDays" => Integer | nil,
661
+ ?"enabled" => bool
662
+ }
663
+
664
+ # Spec schema: `BackupPolicyList`.
665
+ type backup_policy_list = { "policies" => Array[backup_policy] }
666
+
667
+ # Spec schema: `BackupPolicyUpdate`.
668
+ type backup_policy_update = {
669
+ ?"name" => String,
670
+ ?"resourceTypeIds" => Array[String],
671
+ ?"tagKey" => String | nil,
672
+ ?"tagValue" => String | nil,
673
+ ?"maxRpoHours" => Integer | nil,
674
+ ?"minRetentionDays" => Integer | nil,
675
+ ?"enabled" => bool
676
+ }
677
+
678
+ # Spec schema: `BackupSeverityCounts`.
679
+ type backup_severity_counts = { "critical" => Integer, "high" => Integer, "medium" => Integer, "low" => Integer }
680
+
549
681
  # Spec schema: `Bastion`.
550
682
  type bastion = {
551
683
  "id" => String,
@@ -2803,6 +2935,99 @@ module Infrawrench
2803
2935
  "counts" => { "high" => Integer, "medium" => Integer, "low" => Integer, "total" => Integer }
2804
2936
  }
2805
2937
 
2938
+ # Spec schema: `IacFieldChange`.
2939
+ type iac_field_change = { "field" => String, ?"from" => untyped, ?"to" => untyped }
2940
+
2941
+ # Spec schema: `IacImportPlanRequest`.
2942
+ type iac_import_plan_request = { "resourceIds" => Array[String] }
2943
+
2944
+ # Spec schema: `IacImportPlanResponse`.
2945
+ type iac_import_plan_response = {
2946
+ "hcl" => String,
2947
+ "exported" => Array[{ "resourceId" => String, "address" => String, "importId" => String | nil }],
2948
+ "unsupported" => Array[{ "resourceId" => String, "displayName" => String, "reason" => String }]
2949
+ }
2950
+
2951
+ # Spec schema: `IacReconciledResource`.
2952
+ type iac_reconciled_resource = {
2953
+ "resourceId" => String,
2954
+ "pluginId" => plugin_id,
2955
+ "resourceTypeId" => String,
2956
+ "accountId" => String,
2957
+ "displayName" => String,
2958
+ "externalId" => String | nil,
2959
+ "status" => "managed" | "drifted" | "unmanaged",
2960
+ "terraformType" => String | nil,
2961
+ "terraformAddress" => String | nil,
2962
+ "matchedBy" => "import-id" | "external-id" | "identifier" | nil,
2963
+ "drift" => Array[iac_field_change],
2964
+ "unmappableReason" => String | nil,
2965
+ "owner" => Hash[String, untyped] | nil,
2966
+ "firstSeenAt" => String | nil
2967
+ }
2968
+
2969
+ # Spec schema: `IacReconciliationResponse`.
2970
+ type iac_reconciliation_response = {
2971
+ "state" => iac_state,
2972
+ "resources" => Array[iac_reconciled_resource],
2973
+ "stateOnly" => Array[iac_state_only_resource],
2974
+ "summary" => {
2975
+ "inventoryTotal" => Integer,
2976
+ "managed" => Integer,
2977
+ "drifted" => Integer,
2978
+ "unmanaged" => Integer,
2979
+ "stateOnly" => Integer,
2980
+ "undiffable" => Integer,
2981
+ "stateResources" => Integer,
2982
+ "dataSourcesIgnored" => Integer
2983
+ },
2984
+ "underivable" => Array[{ "pluginId" => plugin_id, "resourceTypeId" => String, "reason" => String }]
2985
+ }
2986
+
2987
+ # Spec schema: `IacResourceStatusResponse`.
2988
+ type iac_resource_status_response = {
2989
+ "status" => "managed" | "drifted" | "unmanaged" | nil,
2990
+ "stateId" => String | nil,
2991
+ "stateLabel" => String | nil,
2992
+ "terraformAddress" => String | nil,
2993
+ "driftFieldCount" => Integer
2994
+ }
2995
+
2996
+ # Spec schema: `IacState`.
2997
+ type iac_state = {
2998
+ "id" => String,
2999
+ "label" => String,
3000
+ "accountId" => String | nil,
3001
+ "accountName" => String | nil,
3002
+ "format" => "tfstate" | "show-json",
3003
+ "formatVersion" => String,
3004
+ "terraformVersion" => String | nil,
3005
+ "serial" => Integer | nil,
3006
+ "lineage" => String | nil,
3007
+ "resourceCount" => Integer,
3008
+ "dataSourceCount" => Integer,
3009
+ "redactedAttributeCount" => Integer,
3010
+ "parseWarnings" => Array[String],
3011
+ "uploadedByUserId" => String | nil,
3012
+ "uploadedByName" => String | nil,
3013
+ "createdAt" => String
3014
+ }
3015
+
3016
+ # Spec schema: `IacStateListResponse`.
3017
+ type iac_state_list_response = { "states" => Array[iac_state] }
3018
+
3019
+ # Spec schema: `IacStateOnlyResource`.
3020
+ type iac_state_only_resource = {
3021
+ "address" => String,
3022
+ "terraformType" => String,
3023
+ "identifiers" => Array[String],
3024
+ "candidates" => Array[{ "pluginId" => plugin_id, "resourceTypeId" => String }],
3025
+ "reason" => "no-inventory-match" | "unknown-terraform-type"
3026
+ }
3027
+
3028
+ # Spec schema: `IacStateUploadRequest`.
3029
+ type iac_state_upload_request = { "label" => String, ?"accountId" => String | nil, "document" => String }
3030
+
2806
3031
  # Spec schema: `ImportSshKeyRequest`.
2807
3032
  type import_ssh_key_request = { "name" => String, "publicKey" => String }
2808
3033
 
@@ -4175,6 +4400,8 @@ module Infrawrench
4175
4400
  | "tag-policy:override"
4176
4401
  | "config:read"
4177
4402
  | "config:write"
4403
+ | "iac:read"
4404
+ | "iac:write"
4178
4405
  | "audit:read"
4179
4406
  | "access:read"
4180
4407
  | "access:request"
@@ -6080,7 +6307,9 @@ module Infrawrench
6080
6307
  | "expiring"
6081
6308
  | "posture"
6082
6309
  | "access-review"
6310
+ | "backups"
6083
6311
  | "dns"
6312
+ | "iac"
6084
6313
  | "environment-diff"
6085
6314
  | "ssh-fanout"
6086
6315
  | "metric-alerts"
@@ -6445,6 +6674,20 @@ module Infrawrench
6445
6674
  def orgs: (?request_options: Hash[Symbol, untyped]?) -> Array[org_membership]
6446
6675
  end
6447
6676
 
6677
+ class BackupsPoliciesNamespace
6678
+ def initialize: (Transport) -> void
6679
+ def create: (?org_id: String?, ?body: backup_policy_create?, ?request_options: Hash[Symbol, untyped]?) -> backup_policy
6680
+ def delete: (policy_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> nil
6681
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> backup_policy_list
6682
+ def update: (policy_id: String, ?org_id: String?, ?body: backup_policy_update?, ?request_options: Hash[Symbol, untyped]?) -> backup_policy
6683
+ end
6684
+
6685
+ class BackupsNamespace
6686
+ attr_reader policies: BackupsPoliciesNamespace
6687
+ def initialize: (Transport) -> void
6688
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> backup_coverage_response
6689
+ end
6690
+
6448
6691
  class BastionsNamespace
6449
6692
  def initialize: (Transport) -> void
6450
6693
  def create: (body: create_bastion_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> create_bastion_response
@@ -6839,6 +7082,21 @@ module Infrawrench
6839
7082
  def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> expiry_list_response
6840
7083
  end
6841
7084
 
7085
+ class IacStatesNamespace
7086
+ def initialize: (Transport) -> void
7087
+ def create: (?org_id: String?, ?body: iac_state_upload_request?, ?request_options: Hash[Symbol, untyped]?) -> { "state" => iac_state }
7088
+ def delete: (state_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> nil
7089
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> iac_state_list_response
7090
+ end
7091
+
7092
+ class IacNamespace
7093
+ attr_reader states: IacStatesNamespace
7094
+ def initialize: (Transport) -> void
7095
+ def import_plan: (?org_id: String?, ?body: iac_import_plan_request?, ?request_options: Hash[Symbol, untyped]?) -> iac_import_plan_response
7096
+ def reconciliation: (state_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> iac_reconciliation_response
7097
+ def resource: (resource_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> iac_resource_status_response
7098
+ end
7099
+
6842
7100
  class IncidentsGetNamespace
6843
7101
  def initialize: (Transport) -> void
6844
7102
  def get: (?org_id: String?, ?status: String?, ?request_options: Hash[Symbol, untyped]?) -> incident_list
@@ -7369,6 +7627,7 @@ module Infrawrench
7369
7627
  attr_reader associations: AssociationsNamespace
7370
7628
  attr_reader audit_logs: AuditLogsNamespace
7371
7629
  attr_reader auth: AuthNamespace
7630
+ attr_reader backups: BackupsNamespace
7372
7631
  attr_reader bastions: BastionsNamespace
7373
7632
  attr_reader billing: BillingNamespace
7374
7633
  attr_reader billing_rules: BillingRulesNamespace
@@ -7401,6 +7660,7 @@ module Infrawrench
7401
7660
  attr_reader docker: DockerNamespace
7402
7661
  attr_reader environment_diff: EnvironmentDiffNamespace
7403
7662
  attr_reader expiring: ExpiringNamespace
7663
+ attr_reader iac: IacNamespace
7404
7664
  attr_reader incidents: IncidentsNamespace
7405
7665
  attr_reader invitations: InvitationsNamespace
7406
7666
  attr_reader invoices: InvoicesNamespace
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.18.0
4
+ version: 1.20.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.18.0). Covers the published
14
+ description: Generated Ruby client for the Infrawrench API (v1.20.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.18.0).
61
+ summary: Generated Ruby client for the Infrawrench API (v1.20.0).
62
62
  test_files: []