infrawrench-sdk 1.71.0 → 1.74.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: bc94257e74cd0c9ef10d24dce87c39018f4bbe86652683ed2314e430091348b0
4
- data.tar.gz: 75b878e22ce2e3f54836c9fe7ec31741ebb29540d19c9f412a8f8979c606a221
3
+ metadata.gz: 43844a8e3a0f8b45086586be9745ece008de74ccf20874e17b6332e663954476
4
+ data.tar.gz: 214828a5f5388cb6399fecc3b2b7044422d3452493a51a245cb85aa2fb745719
5
5
  SHA512:
6
- metadata.gz: bcc9f360f638857f2f8e87c4ab2ba826494475c83a7ad62e9b5b776c4493eed7c448eb5d192fd45195838ea627984c13d5359d0d4e8f92b9cd852995c85f96c8
7
- data.tar.gz: f05fcf6d900349cbbca3799e36e4fabf3376cf2b27fd0e20fb9ce3e79b467003618a507265332ce8ea37aa7382bee00d907730c98b2a0ffb378f6c7650e5c0ce
6
+ metadata.gz: 66f450a8b9413bdf43c94b9b8d738c24d023c28c55aa90c661cbccd9b039494d022f2b14c6d998d3535f33a9e23051dcd9414e7e2d41ccfbd8ca8c2e1d456615
7
+ data.tar.gz: e7464fc5b5e1c9ec9e40cc4f9dbc301fa59298e06320e3f4a11a99b47f8ed11093f0046cfdd48856792641f6cb16bb64f75031560be723ad58b544883bcde8c0
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.71.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `1.74.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
- 916 schemas, as RBS type aliases that steep and TypeProf can read.
44
+ 928 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.71.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.74.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.71.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.74.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.71.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v1.71.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.74.0)."
21
+ spec.description = "Generated Ruby client for the Infrawrench API (v1.74.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.71.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.74.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.71.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.74.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1758,6 +1758,131 @@ module Infrawrench
1758
1758
  end
1759
1759
  end
1760
1760
 
1761
+ # `client.alert_email.settings`
1762
+ class AlertEmailSettingsNamespace
1763
+ # @api private
1764
+ # @param transport [Transport]
1765
+ def initialize(transport)
1766
+ @transport = transport
1767
+ end
1768
+
1769
+ # Get the alert email policy and suppression list
1770
+ #
1771
+ # GET /api/org/{orgId}/alert-email/settings
1772
+ #
1773
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1774
+ # constructed with.
1775
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1776
+ # @return [Hash] Parsed JSON, shaped as `AlertEmailSettingsView` — see
1777
+ # `sig/infrawrench/sdk.rbs`.
1778
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1779
+ def get(org_id: nil, request_options: nil)
1780
+ @transport.request(
1781
+ http_method: "GET",
1782
+ path: "/api/org/{orgId}/alert-email/settings",
1783
+ path_params: { "orgId" => org_id },
1784
+ request_options: request_options
1785
+ )
1786
+ end
1787
+
1788
+ # Set the alert email external-address policy
1789
+ #
1790
+ # Whole object. Tightening the policy does not edit any stored recipient
1791
+ # list: an address that no longer passes is skipped at send time, and
1792
+ # loosening the policy again brings it back.
1793
+ #
1794
+ # PUT /api/org/{orgId}/alert-email/settings
1795
+ #
1796
+ # Raises on 400: Bad request
1797
+ #
1798
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1799
+ # constructed with.
1800
+ # @param body [Hash, nil] Request body, shaped as `AlertEmailSettings`.
1801
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1802
+ # @return [Hash] Parsed JSON, shaped as `AlertEmailSettingsView` — see
1803
+ # `sig/infrawrench/sdk.rbs`.
1804
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1805
+ def update(org_id: nil, body: nil, request_options: nil)
1806
+ @transport.request(
1807
+ http_method: "PUT",
1808
+ path: "/api/org/{orgId}/alert-email/settings",
1809
+ path_params: { "orgId" => org_id },
1810
+ body: body,
1811
+ request_options: request_options
1812
+ )
1813
+ end
1814
+ end
1815
+
1816
+ # `client.alert_email.suppressions`
1817
+ class AlertEmailSuppressionsNamespace
1818
+ # @api private
1819
+ # @param transport [Transport]
1820
+ def initialize(transport)
1821
+ @transport = transport
1822
+ end
1823
+
1824
+ # Resume alert email to an unsubscribed address
1825
+ #
1826
+ # DELETE /api/org/{orgId}/alert-email/suppressions/{id}
1827
+ #
1828
+ # Raises on 404: Not found
1829
+ #
1830
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1831
+ # constructed with.
1832
+ # @param id [String]
1833
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1834
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
1835
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1836
+ def delete(id:, org_id: nil, request_options: nil)
1837
+ @transport.request(
1838
+ http_method: "DELETE",
1839
+ path: "/api/org/{orgId}/alert-email/suppressions/{id}",
1840
+ path_params: { "orgId" => org_id, "id" => id },
1841
+ request_options: request_options
1842
+ )
1843
+ end
1844
+ end
1845
+
1846
+ # `client.alert_email`
1847
+ class AlertEmailNamespace
1848
+ # @return [AlertEmailSettingsNamespace] `client.alert_email.settings`
1849
+ attr_reader :settings
1850
+ # @return [AlertEmailSuppressionsNamespace] `client.alert_email.suppressions`
1851
+ attr_reader :suppressions
1852
+
1853
+ # @api private
1854
+ # @param transport [Transport]
1855
+ def initialize(transport)
1856
+ @transport = transport
1857
+ @settings = AlertEmailSettingsNamespace.new(@transport)
1858
+ @suppressions = AlertEmailSuppressionsNamespace.new(@transport)
1859
+ end
1860
+
1861
+ # Recipient picker options for alert email
1862
+ #
1863
+ # Current members (with their login address), the external-address policy
1864
+ # and whether email is available on this deployment: everything a client
1865
+ # needs to edit the `emailRecipients` on a budget, cost change alert,
1866
+ # anomaly settings or efficiency alert settings, or an email destination on
1867
+ # an alert routing rule. Requires `costs:read`.
1868
+ #
1869
+ # GET /api/org/{orgId}/alert-email
1870
+ #
1871
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1872
+ # constructed with.
1873
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1874
+ # @return [Hash] Parsed JSON, shaped as `AlertEmailOptions` — see `sig/infrawrench/sdk.rbs`.
1875
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1876
+ def get(org_id: nil, request_options: nil)
1877
+ @transport.request(
1878
+ http_method: "GET",
1879
+ path: "/api/org/{orgId}/alert-email",
1880
+ path_params: { "orgId" => org_id },
1881
+ request_options: request_options
1882
+ )
1883
+ end
1884
+ end
1885
+
1761
1886
  # `client.alert_rules.deliveries`
1762
1887
  class AlertRulesDeliveriesNamespace
1763
1888
  # @api private
@@ -7650,16 +7775,20 @@ module Infrawrench
7650
7775
  )
7651
7776
  end
7652
7777
 
7653
- # Download cost rows as a FOCUS 1.3 CSV
7778
+ # Download cost rows as a FOCUS CSV
7654
7779
  #
7655
7780
  # The rows a cost query selects, written as a CSV in the FinOps Open Cost
7656
- # and Usage Specification (FOCUS) v1.3 layout: one row per account, service,
7657
- # region, resource, tag set, charge type and commitment per day, with
7658
- # `BilledCost` (cash) and `EffectiveCost` (amortized) side by side,
7659
- # `ChargeCategory`, `ServiceCategory`/`ServiceSubcategory`, `Tags` as a JSON
7660
- # object and the commitment columns where the provider reports a commitment.
7661
- # Custom columns follow, prefixed `x_`. The same mapping a `focus-1.3`
7662
- # scheduled export writes (see /cost-exports).
7781
+ # and Usage Specification (FOCUS) layout of `version` (`1.4` or `1.3`;
7782
+ # omitted means `1.3`, so scripts written before 1.4 keep their header). One
7783
+ # row per account, service, region, resource, tag set, charge type and
7784
+ # commitment per day, with `BilledCost` (cash) and `EffectiveCost`
7785
+ # (amortized) side by side, `ChargeCategory`,
7786
+ # `ServiceCategory`/`ServiceSubcategory`, `Tags` as a JSON object and the
7787
+ # commitment columns where the provider reports a commitment. Custom columns
7788
+ # follow, prefixed `x_`. 1.4 drops the deprecated `ProviderName` and
7789
+ # `PublisherName` (`ServiceProviderName` and `HostProviderName` carry the
7790
+ # same value) and sets `EffectiveCost` to `BilledCost` on tax rows. The same
7791
+ # mapping a `focus-<version>` scheduled export writes (see /cost-exports).
7663
7792
  #
7664
7793
  # Takes the cost query's filter in either spelling (`filters` or `query`,
7665
7794
  # never both), an optional saved filter, and charge types. The range spans
@@ -10718,6 +10847,111 @@ module Infrawrench
10718
10847
  end
10719
10848
  end
10720
10849
 
10850
+ # `client.extended_support.settings`
10851
+ class ExtendedSupportSettingsNamespace
10852
+ # @api private
10853
+ # @param transport [Transport]
10854
+ def initialize(transport)
10855
+ @transport = transport
10856
+ end
10857
+
10858
+ # Get the organization's extended-support settings
10859
+ #
10860
+ # An organization that never saved reads the shipped defaults (enabled, 90
10861
+ # days).
10862
+ #
10863
+ # _Requires permission: `org:settings:write`._
10864
+ #
10865
+ # GET /api/org/{orgId}/extended-support/settings
10866
+ #
10867
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
10868
+ # constructed with.
10869
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
10870
+ # @return [Hash] Parsed JSON, shaped as `ExtendedSupportSettings` — see
10871
+ # `sig/infrawrench/sdk.rbs`.
10872
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
10873
+ def get(org_id: nil, request_options: nil)
10874
+ @transport.request(
10875
+ http_method: "GET",
10876
+ path: "/api/org/{orgId}/extended-support/settings",
10877
+ path_params: { "orgId" => org_id },
10878
+ request_options: request_options
10879
+ )
10880
+ end
10881
+
10882
+ # Update the extended-support settings
10883
+ #
10884
+ # Every field is optional. `leadDays` must be a whole number from 1 to 365.
10885
+ # Saving never resets the alert cooldown.
10886
+ #
10887
+ # _Requires permission: `org:settings:write`._
10888
+ #
10889
+ # PUT /api/org/{orgId}/extended-support/settings
10890
+ #
10891
+ # Raises on 400: Bad request
10892
+ #
10893
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
10894
+ # constructed with.
10895
+ # @param body [Hash, nil] Request body, shaped as `ExtendedSupportSettingsUpdate`.
10896
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
10897
+ # @return [Hash] Parsed JSON, shaped as `ExtendedSupportSettings` — see
10898
+ # `sig/infrawrench/sdk.rbs`.
10899
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
10900
+ def update(org_id: nil, body: nil, request_options: nil)
10901
+ @transport.request(
10902
+ http_method: "PUT",
10903
+ path: "/api/org/{orgId}/extended-support/settings",
10904
+ path_params: { "orgId" => org_id },
10905
+ body: body,
10906
+ request_options: request_options
10907
+ )
10908
+ end
10909
+ end
10910
+
10911
+ # `client.extended_support`
10912
+ class ExtendedSupportNamespace
10913
+ # @return [ExtendedSupportSettingsNamespace] `client.extended_support.settings`
10914
+ attr_reader :settings
10915
+
10916
+ # @api private
10917
+ # @param transport [Transport]
10918
+ def initialize(transport)
10919
+ @transport = transport
10920
+ @settings = ExtendedSupportSettingsNamespace.new(@transport)
10921
+ end
10922
+
10923
+ # List resources billed at extended-support or end-of-life rates
10924
+ #
10925
+ # Matches every synced resource's version against its provider's support
10926
+ # calendar (declared by the plugin): resources paying an extended-support
10927
+ # surcharge, past the end of support, or whose standard support ends within
10928
+ # the lead time. Each finding carries the monthly surcharge an upgrade
10929
+ # removes: the provider's billed amount where it can be attributed (AWS Cost
10930
+ # Explorer extended-support usage types), otherwise list price. Results are
10931
+ # cached for a few minutes; pass `refresh=true` to recompute.
10932
+ #
10933
+ # _Requires permission: `resources:read`._
10934
+ #
10935
+ # GET /api/org/{orgId}/extended-support
10936
+ #
10937
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
10938
+ # constructed with.
10939
+ # @param refresh [String, nil] Bypass the short server-side cache and recompute now.
10940
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
10941
+ # @return [Hash] Parsed JSON, shaped as `ExtendedSupportListResponse` — see
10942
+ # `sig/infrawrench/sdk.rbs`.
10943
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
10944
+ def get(org_id: nil, refresh: nil, request_options: nil)
10945
+ @transport.request(
10946
+ http_method: "GET",
10947
+ path: "/api/org/{orgId}/extended-support",
10948
+ path_params: { "orgId" => org_id },
10949
+ query: { "refresh" => refresh },
10950
+ request_options: request_options
10951
+ )
10952
+ end
10953
+ end
10954
+
10721
10955
  # `client.github_issues.pull_requests`
10722
10956
  class GithubIssuesPullRequestsNamespace
10723
10957
  # @api private
@@ -20585,6 +20819,8 @@ module Infrawrench
20585
20819
  attr_reader :agents
20586
20820
  # @return [AiAttributionNamespace] `client.ai_attribution`
20587
20821
  attr_reader :ai_attribution
20822
+ # @return [AlertEmailNamespace] `client.alert_email`
20823
+ attr_reader :alert_email
20588
20824
  # @return [AlertRulesNamespace] `client.alert_rules`
20589
20825
  attr_reader :alert_rules
20590
20826
  # @return [ApiKeysNamespace] `client.api_keys`
@@ -20681,6 +20917,8 @@ module Infrawrench
20681
20917
  attr_reader :environments
20682
20918
  # @return [ExpiringNamespace] `client.expiring`
20683
20919
  attr_reader :expiring
20920
+ # @return [ExtendedSupportNamespace] `client.extended_support`
20921
+ attr_reader :extended_support
20684
20922
  # @return [GithubIssuesNamespace] `client.github_issues`
20685
20923
  attr_reader :github_issues
20686
20924
  # @return [IacNamespace] `client.iac`
@@ -20802,6 +21040,7 @@ module Infrawrench
20802
21040
  @agent_registrations = AgentRegistrationsNamespace.new(@transport)
20803
21041
  @agents = AgentsNamespace.new(@transport)
20804
21042
  @ai_attribution = AiAttributionNamespace.new(@transport)
21043
+ @alert_email = AlertEmailNamespace.new(@transport)
20805
21044
  @alert_rules = AlertRulesNamespace.new(@transport)
20806
21045
  @api_keys = ApiKeysNamespace.new(@transport)
20807
21046
  @apps = AppsNamespace.new(@transport)
@@ -20850,6 +21089,7 @@ module Infrawrench
20850
21089
  @environment_diff = EnvironmentDiffNamespace.new(@transport)
20851
21090
  @environments = EnvironmentsNamespace.new(@transport)
20852
21091
  @expiring = ExpiringNamespace.new(@transport)
21092
+ @extended_support = ExtendedSupportNamespace.new(@transport)
20853
21093
  @github_issues = GithubIssuesNamespace.new(@transport)
20854
21094
  @iac = IacNamespace.new(@transport)
20855
21095
  @incidents = IncidentsNamespace.new(@transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.71.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.74.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.71.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.74.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.71.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.74.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.71.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.74.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.71.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.74.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.71.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.74.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.71.0"
18
+ VERSION = "1.74.0"
19
19
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.71.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.74.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.71.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.74.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.71.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v1.74.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.71.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.74.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -584,12 +584,52 @@ module Infrawrench
584
584
  # cost anomalies, idle commitments) can be filed; for other triggers this
585
585
  # destination is skipped.
586
586
  #
587
+ # `email-member` and `email-address` send an HTML and plain-text email with a
588
+ # link back into the app and a one-click unsubscribe link. Email carries no
589
+ # acknowledge button, so a rule routed only to email always escalates.
590
+ #
587
591
  # Spec schema: `AlertDestination`.
588
592
  type alert_destination = { "kind" => "push" }
589
593
  | { "kind" => "slack", "channelId" => String }
590
594
  | { "kind" => "msteams", "webhookId" => String }
591
595
  | { "kind" => "on-call", "scheduleId" => String }
592
596
  | { "kind" => "github-issues" }
597
+ | { "kind" => "email-member", "userId" => String }
598
+ | { "kind" => "email-address", "address" => String }
599
+
600
+ # Spec schema: `AlertEmailMember`.
601
+ type alert_email_member = { "userId" => String, "name" => String | nil, "email" => String }
602
+
603
+ # Spec schema: `AlertEmailOptions`.
604
+ type alert_email_options = {
605
+ "emailAvailable" => bool,
606
+ "members" => Array[alert_email_member],
607
+ "settings" => alert_email_settings,
608
+ "memberDomains" => Array[String]
609
+ }
610
+
611
+ # Who is emailed when this object fires, **in addition to** whatever the
612
+ # organization's alert routing rules decide. Delivered whether or not a rule
613
+ # matched and not held by quiet hours. On a write, omitting the field leaves
614
+ # the stored list unchanged; send empty arrays to clear it.
615
+ #
616
+ # Spec schema: `AlertEmailRecipients`.
617
+ type alert_email_recipients = { "userIds" => Array[String], "addresses" => Array[String] }
618
+
619
+ # Spec schema: `AlertEmailSettings`.
620
+ type alert_email_settings = { "externalPolicy" => "member-domains" | "any", "allowedDomains" => Array[String] }
621
+
622
+ # Spec schema: `AlertEmailSettingsView`.
623
+ type alert_email_settings_view = {
624
+ "externalPolicy" => "member-domains" | "any",
625
+ "allowedDomains" => Array[String],
626
+ "emailAvailable" => bool,
627
+ "memberDomains" => Array[String],
628
+ "suppressions" => Array[alert_email_suppression]
629
+ }
630
+
631
+ # Spec schema: `AlertEmailSuppression`.
632
+ type alert_email_suppression = { "id" => String, "email" => String, "createdAt" => String }
593
633
 
594
634
  # Spec schema: `AlertRule`.
595
635
  type alert_rule = {
@@ -623,7 +663,11 @@ module Infrawrench
623
663
  "slackChannels" => Array[{ "id" => String, "name" => String, "isPrivate" => bool }],
624
664
  "msTeamsWebhooks" => Array[{ "id" => String, "label" => String }],
625
665
  "accounts" => Array[{ "id" => String, "displayName" => String, "pluginId" => String }],
626
- "onCallSchedules" => Array[{ "id" => String, "name" => String }]
666
+ "onCallSchedules" => Array[{ "id" => String, "name" => String }],
667
+ "members" => Array[{ "userId" => String, "name" => String | nil, "email" => String }],
668
+ "emailAvailable" => bool,
669
+ "emailSettings" => { "externalPolicy" => "member-domains" | "any", "allowedDomains" => Array[String] },
670
+ "memberDomains" => Array[String]
627
671
  }
628
672
 
629
673
  # Alert severity, ordered info < warning < critical.
@@ -651,6 +695,7 @@ module Infrawrench
651
695
  | "postureAlerts"
652
696
  | "probeAlerts"
653
697
  | "quotaAlerts"
698
+ | "extendedSupportAlerts"
654
699
  | "incidentAlerts"
655
700
  | "weeklyDigest"
656
701
 
@@ -1142,6 +1187,7 @@ module Infrawrench
1142
1187
  "thresholds" => Array[budget_threshold],
1143
1188
  "costBasis" => budget_cost_basis & untyped,
1144
1189
  "useAdjustedSpend" => bool,
1190
+ "emailRecipients" => alert_email_recipients,
1145
1191
  "createdByUserId" => String | nil,
1146
1192
  "deletedAt" => String | nil,
1147
1193
  "createdAt" => String,
@@ -1175,7 +1221,8 @@ module Infrawrench
1175
1221
  ?"usageUnit" => String,
1176
1222
  ?"usageAmount" => Numeric,
1177
1223
  ?"period" => budget_period & (budget_recurring_period | budget_explicit_periods),
1178
- ?"parentBudgetId" => String
1224
+ ?"parentBudgetId" => String,
1225
+ ?"emailRecipients" => alert_email_recipients
1179
1226
  }
1180
1227
 
1181
1228
  # What the budget counts. `cost` (the default) is money in `currency`, against
@@ -1222,6 +1269,7 @@ module Infrawrench
1222
1269
  "scenarioModelId" => String | nil,
1223
1270
  "scenarioModelName" => String | nil,
1224
1271
  "useAdjustedSpend" => bool,
1272
+ "emailRecipients" => alert_email_recipients,
1225
1273
  "rawActualCents" => Integer | nil,
1226
1274
  "month" => String,
1227
1275
  "actualCents" => Integer,
@@ -2102,6 +2150,7 @@ module Infrawrench
2102
2150
  "enabled" => bool,
2103
2151
  "lastEvaluatedAt" => String | nil,
2104
2152
  "lastFiredAt" => String | nil,
2153
+ "emailRecipients" => alert_email_recipients,
2105
2154
  "createdAt" => String,
2106
2155
  "updatedAt" => String
2107
2156
  }
@@ -2161,7 +2210,8 @@ module Infrawrench
2161
2210
  ?"thresholdPercent" => Integer | nil,
2162
2211
  ?"thresholdAmountCents" => Integer | nil,
2163
2212
  "direction" => cost_change_direction,
2164
- ?"enabled" => bool
2213
+ ?"enabled" => bool,
2214
+ ?"emailRecipients" => alert_email_recipients
2165
2215
  }
2166
2216
 
2167
2217
  # Spec schema: `CostAnnotation`.
@@ -2301,7 +2351,8 @@ module Infrawrench
2301
2351
  "minDeltaCents" => Integer,
2302
2352
  "newSourceMinCents" => Integer,
2303
2353
  "smsAlerts" => "off" | "new_source" | "all",
2304
- ?"feedbackTuning" => bool
2354
+ ?"feedbackTuning" => bool,
2355
+ ?"emailRecipients" => alert_email_recipients
2305
2356
  }
2306
2357
 
2307
2358
  # Spec schema: `CostAnomalySettingsView`.
@@ -2584,7 +2635,8 @@ module Infrawrench
2584
2635
  "unitCostThresholdPercent" => Integer,
2585
2636
  "unitCostWindowDays" => Integer,
2586
2637
  "unitCostMinReportedDays" => Integer,
2587
- "unitCostMinSpendCents" => Integer
2638
+ "unitCostMinSpendCents" => Integer,
2639
+ ?"emailRecipients" => alert_email_recipients
2588
2640
  }
2589
2641
 
2590
2642
  # Spec schema: `CostEstimate`.
@@ -2745,14 +2797,16 @@ module Infrawrench
2745
2797
  }
2746
2798
 
2747
2799
  # Which columns an object carries. `native` is Infrawrench's own layout,
2748
- # shaped by `query.dimensions` and `query.tagKeys`. `focus-1.3` writes the
2749
- # FinOps Open Cost and Usage Specification v1.3 columns at the full row grain,
2750
- # with `BilledCost` (cash) and `EffectiveCost` (amortized) side by side;
2751
- # `query.dimensions`, `query.tagKeys` and `query.costBasis` do not apply to
2752
- # it, `query.filters` and `query.chargeTypes` still do.
2800
+ # shaped by `query.dimensions` and `query.tagKeys`. `focus-1.4` and
2801
+ # `focus-1.3` write the FinOps Open Cost and Usage Specification columns of
2802
+ # that version at the full row grain (1.4 drops the deprecated `ProviderName`
2803
+ # and `PublisherName`), with `BilledCost` (cash) and `EffectiveCost`
2804
+ # (amortized) side by side; `query.dimensions`, `query.tagKeys` and
2805
+ # `query.costBasis` do not apply to it, `query.filters` and
2806
+ # `query.chargeTypes` still do.
2753
2807
  #
2754
2808
  # Spec schema: `CostExportSchema`.
2755
- type cost_export_schema = "native" | "focus-1.3"
2809
+ type cost_export_schema = "native" | "focus-1.4" | "focus-1.3"
2756
2810
 
2757
2811
  # Spec schema: `CostExportWarehouseOption`.
2758
2812
  type cost_export_warehouse_option = { "id" => String, "label" => String, ?"description" => String }
@@ -4406,6 +4460,8 @@ module Infrawrench
4406
4460
  | "k8s-cert"
4407
4461
  | "ssh-key"
4408
4462
  | "secret-version"
4463
+ | "lease"
4464
+ | "extended-support"
4409
4465
  | "other",
4410
4466
  "label" => String,
4411
4467
  "basis" => "expiry" | "age",
@@ -4445,6 +4501,81 @@ module Infrawrench
4445
4501
  # Spec schema: `ExportTerraformRequest`.
4446
4502
  type export_terraform_request = { "resourceId" => resource_id, "accountId" => String }
4447
4503
 
4504
+ # Spec schema: `ExtendedSupportFinding`.
4505
+ type extended_support_finding = {
4506
+ "resourceId" => String,
4507
+ "pluginId" => plugin_id,
4508
+ "pluginName" => String,
4509
+ "resourceTypeId" => String,
4510
+ "resourceTypeName" => String,
4511
+ "accountId" => String,
4512
+ "accountName" => String,
4513
+ "displayName" => String,
4514
+ "externalId" => String | nil,
4515
+ "region" => String | nil,
4516
+ "releaseId" => String,
4517
+ "product" => String,
4518
+ "engine" => String | nil,
4519
+ "currentVersion" => String,
4520
+ "targetVersion" => String,
4521
+ "status" => "end-of-life" | "surcharged" | "unsupported" | "upcoming",
4522
+ "standardSupportEnds" => String,
4523
+ "surchargeStartsOn" => String,
4524
+ "daysUntilSurcharge" => Integer,
4525
+ "extendedSupportEnds" => String | nil,
4526
+ "daysUntilForcedUpgrade" => Integer | nil,
4527
+ "charged" => bool,
4528
+ "quantity" => Numeric | nil,
4529
+ "unit" => "cluster-hour" | "vcpu-hour" | "vcore-hour" | "node-hour" | "instance-hour" | "acu-hour"
4530
+ | nil,
4531
+ "currency" => String | nil,
4532
+ "tierLabel" => String | nil,
4533
+ "monthlySurcharge" => Numeric | nil,
4534
+ "listMonthlySurcharge" => Numeric | nil,
4535
+ "costBasis" => "billed" | "billed-share" | "list-price" | "unpriced",
4536
+ "billedLineItems" => Array[String],
4537
+ "nextTier" => { "from" => String, "label" => String, "monthlySurcharge" => Numeric | nil } | nil,
4538
+ "priceNote" => String | nil,
4539
+ "pricingUrl" => String | nil,
4540
+ "upgradeUrl" => String,
4541
+ "note" => String | nil
4542
+ }
4543
+
4544
+ # Spec schema: `ExtendedSupportListResponse`.
4545
+ type extended_support_list_response = {
4546
+ "findings" => Array[extended_support_finding],
4547
+ "totalCount" => Integer,
4548
+ "counts" => {
4549
+ "end-of-life" => Integer,
4550
+ "surcharged" => Integer,
4551
+ "unsupported" => Integer,
4552
+ "upcoming" => Integer
4553
+ },
4554
+ "currentMonthly" => Array[extended_support_total],
4555
+ "upcomingMonthly" => Array[extended_support_total],
4556
+ "leadDays" => Integer,
4557
+ ?"billing" => {
4558
+ "windowDays" => Integer,
4559
+ "accounts" => Array[{
4560
+ "accountId" => String,
4561
+ "accountName" => String,
4562
+ "status" => "read" | "failed",
4563
+ ?"error" => String
4564
+ }],
4565
+ "unattributed" => Array[unattributed_extended_support_charge]
4566
+ },
4567
+ "generatedAt" => String
4568
+ }
4569
+
4570
+ # Spec schema: `ExtendedSupportSettings`.
4571
+ type extended_support_settings = { "enabled" => bool, "leadDays" => Integer, "lastNotifiedAt" => String | nil }
4572
+
4573
+ # Spec schema: `ExtendedSupportSettingsUpdate`.
4574
+ type extended_support_settings_update = { ?"enabled" => bool, ?"leadDays" => Integer }
4575
+
4576
+ # Spec schema: `ExtendedSupportTotal`.
4577
+ type extended_support_total = { "currency" => String, "monthly" => Numeric }
4578
+
4448
4579
  # Spec schema: `FieldActionRequest`.
4449
4580
  type field_action_request = {
4450
4581
  "accountId" => String,
@@ -4503,7 +4634,8 @@ module Infrawrench
4503
4634
  ?"filters" => Array[cost_filter],
4504
4635
  ?"query" => String,
4505
4636
  ?"savedFilterId" => String,
4506
- ?"chargeTypes" => Array[cost_charge_type]
4637
+ ?"chargeTypes" => Array[cost_charge_type],
4638
+ ?"version" => "1.4" | "1.3"
4507
4639
  }
4508
4640
 
4509
4641
  # Spec schema: `FxFeedRates`.
@@ -4653,6 +4785,7 @@ module Infrawrench
4653
4785
  | "posture_finding"
4654
4786
  | "expiring"
4655
4787
  | "probe"
4788
+ | "extended_support"
4656
4789
  | "commitment_idle"
4657
4790
 
4658
4791
  # Spec schema: `GithubIssuesStatus`.
@@ -5246,7 +5379,13 @@ module Infrawrench
5246
5379
  # Which detector produced the finding the issue was filed from.
5247
5380
  #
5248
5381
  # Spec schema: `JiraSourceKind`.
5249
- type jira_source_kind = "cost_anomaly" | "orphan" | "oversized" | "posture_finding" | "expiring" | "probe"
5382
+ type jira_source_kind = "cost_anomaly"
5383
+ | "orphan"
5384
+ | "oversized"
5385
+ | "posture_finding"
5386
+ | "expiring"
5387
+ | "probe"
5388
+ | "extended_support"
5250
5389
 
5251
5390
  # Supply all three to test credentials that have not been saved yet; send an
5252
5391
  # empty object to re-test the stored ones.
@@ -5363,7 +5502,13 @@ module Infrawrench
5363
5502
  # Which detector produced the finding the issue was filed from.
5364
5503
  #
5365
5504
  # Spec schema: `LinearSourceKind`.
5366
- type linear_source_kind = "cost_anomaly" | "orphan" | "oversized" | "posture_finding" | "expiring" | "probe"
5505
+ type linear_source_kind = "cost_anomaly"
5506
+ | "orphan"
5507
+ | "oversized"
5508
+ | "posture_finding"
5509
+ | "expiring"
5510
+ | "probe"
5511
+ | "extended_support"
5367
5512
 
5368
5513
  # Spec schema: `LinearTeam`.
5369
5514
  type linear_team = { "id" => String, "key" => String, "name" => String }
@@ -9484,6 +9629,20 @@ module Infrawrench
9484
9629
  "uri" => String | nil
9485
9630
  }
9486
9631
 
9632
+ # Spec schema: `UnattributedExtendedSupportCharge`.
9633
+ type unattributed_extended_support_charge = {
9634
+ ?"resourceTypeId" => String,
9635
+ ?"releaseId" => String,
9636
+ ?"region" => String,
9637
+ ?"engine" => String,
9638
+ "lineItem" => String,
9639
+ "amount" => Numeric,
9640
+ "currency" => String,
9641
+ "accountId" => String,
9642
+ "accountName" => String,
9643
+ "monthlyAmount" => Numeric
9644
+ }
9645
+
9487
9646
  # Spec schema: `UnitCostLabelFilter`.
9488
9647
  type unit_cost_label_filter = { "key" => String, "op" => "in" | "not_in", "values" => Array[String] }
9489
9648
 
@@ -9959,6 +10118,24 @@ module Infrawrench
9959
10118
  def stats: (?org_id: String?, ?from: String?, ?to: String?, ?request_options: Hash[Symbol, untyped]?) -> ai_attribution_stats
9960
10119
  end
9961
10120
 
10121
+ class AlertEmailSettingsNamespace
10122
+ def initialize: (Transport) -> void
10123
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> alert_email_settings_view
10124
+ def update: (?org_id: String?, ?body: alert_email_settings?, ?request_options: Hash[Symbol, untyped]?) -> alert_email_settings_view
10125
+ end
10126
+
10127
+ class AlertEmailSuppressionsNamespace
10128
+ def initialize: (Transport) -> void
10129
+ def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "ok" => bool }
10130
+ end
10131
+
10132
+ class AlertEmailNamespace
10133
+ attr_reader settings: AlertEmailSettingsNamespace
10134
+ attr_reader suppressions: AlertEmailSuppressionsNamespace
10135
+ def initialize: (Transport) -> void
10136
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> alert_email_options
10137
+ end
10138
+
9962
10139
  class AlertRulesDeliveriesNamespace
9963
10140
  def initialize: (Transport) -> void
9964
10141
  def ack: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "acknowledged" => bool, ?"alreadyAcknowledgedBy" => String | nil, ?"reason" => "not_pending" | "already_escalated" | "already_acknowledged", ?"title" => String }
@@ -10618,6 +10795,18 @@ module Infrawrench
10618
10795
  def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> expiry_list_response
10619
10796
  end
10620
10797
 
10798
+ class ExtendedSupportSettingsNamespace
10799
+ def initialize: (Transport) -> void
10800
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> extended_support_settings
10801
+ def update: (?org_id: String?, ?body: extended_support_settings_update?, ?request_options: Hash[Symbol, untyped]?) -> extended_support_settings
10802
+ end
10803
+
10804
+ class ExtendedSupportNamespace
10805
+ attr_reader settings: ExtendedSupportSettingsNamespace
10806
+ def initialize: (Transport) -> void
10807
+ def get: (?org_id: String?, ?refresh: "true" | "false"?, ?request_options: Hash[Symbol, untyped]?) -> extended_support_list_response
10808
+ end
10809
+
10621
10810
  class GithubIssuesPullRequestsNamespace
10622
10811
  def initialize: (Transport) -> void
10623
10812
  def create: (body: github_pull_request_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> github_pull_request_result
@@ -11353,6 +11542,7 @@ module Infrawrench
11353
11542
  attr_reader agent_registrations: AgentRegistrationsNamespace
11354
11543
  attr_reader agents: AgentsNamespace
11355
11544
  attr_reader ai_attribution: AiAttributionNamespace
11545
+ attr_reader alert_email: AlertEmailNamespace
11356
11546
  attr_reader alert_rules: AlertRulesNamespace
11357
11547
  attr_reader api_keys: ApiKeysNamespace
11358
11548
  attr_reader apps: AppsNamespace
@@ -11401,6 +11591,7 @@ module Infrawrench
11401
11591
  attr_reader environment_diff: EnvironmentDiffNamespace
11402
11592
  attr_reader environments: EnvironmentsNamespace
11403
11593
  attr_reader expiring: ExpiringNamespace
11594
+ attr_reader extended_support: ExtendedSupportNamespace
11404
11595
  attr_reader github_issues: GithubIssuesNamespace
11405
11596
  attr_reader iac: IacNamespace
11406
11597
  attr_reader incidents: IncidentsNamespace
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.71.0
4
+ version: 1.74.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-10-05 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: Generated Ruby client for the Infrawrench API (v1.71.0). Covers the published
14
+ description: Generated Ruby client for the Infrawrench API (v1.74.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.71.0).
61
+ summary: Generated Ruby client for the Infrawrench API (v1.74.0).
62
62
  test_files: []