infrawrench-sdk 1.52.0 → 1.54.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: d35adcdc4eca80c83fa1cf3e3656700d8081d672d86d2ee986ce6075a7df8247
4
- data.tar.gz: 521fd468ba1c5c3d0889c8a465d4bb2c6cba14629f2d138ca38b4cdaefad15ea
3
+ metadata.gz: 463e94dc51095c54a6662ad50cb3087ced6c2db018add5bb39336b8999f9768b
4
+ data.tar.gz: 7b047ad353bcdde716b235c88174cd268fd15a765126c1fafa3e67977110bb6a
5
5
  SHA512:
6
- metadata.gz: 3e5647ba003ebcd6c47b70e4b5da3cb641a88b115fac2059e0bba92c3521244648e12803368d3ef9c6b6e275afaef824cfcffbf263f3fe41e1758b018e9cc668
7
- data.tar.gz: 382ea9059ded328bcc3d02e0b8d9e9d5d196724c611eadb5c6e59ae0a8541f830e16bbc73afa22f1415b296db386e7088a3795e9a8af6625af1794afef13e307
6
+ metadata.gz: c386b384a041000683d50fe9afd269693d350a5ed51a22694d56f95befe05e4e13fda12e12e0918712407abf6ceb0bd74cc4006d0daa02777a5889af5f902198
7
+ data.tar.gz: 646702db4dfc50a3ea83928cb3aa0f16ee2fde6e3aadcc913db382f41c2f21e30011cf1ea999216685c4fe103fdd1d06f8d2e30c327c552336c3f63ff60cbca6
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.52.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `1.54.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
- 782 schemas, as RBS type aliases that steep and TypeProf can read.
44
+ 813 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.52.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.54.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.52.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.54.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.52.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v1.52.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.54.0)."
21
+ spec.description = "Generated Ruby client for the Infrawrench API (v1.54.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.52.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.54.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.52.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.54.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -2502,6 +2502,68 @@ module Infrawrench
2502
2502
  )
2503
2503
  end
2504
2504
 
2505
+ # Preview a rule or customer pricing against a month of spend
2506
+ #
2507
+ # Prices one calendar month (last month by default) twice: with the saved
2508
+ # rules and settings, and with the candidate rule or customer settings
2509
+ # swapped in. Nothing is written. Returns both totals, every effect,
2510
+ # re-rating coverage, any expression failures and the lines that moved most.
2511
+ #
2512
+ # Requires `costs:read`, and `invoices:read` as well when a customer is
2513
+ # named.
2514
+ #
2515
+ # _Requires permission: `costs:read`._
2516
+ #
2517
+ # POST /api/org/{orgId}/billing-rules/preview
2518
+ #
2519
+ # Raises on 400: Bad request
2520
+ #
2521
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
2522
+ # constructed with.
2523
+ # @param body [Hash] Request body, shaped as `PricingPreviewRequest`.
2524
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
2525
+ # @return [Hash] Parsed JSON, shaped as `PricingPreviewResult` — see
2526
+ # `sig/infrawrench/sdk.rbs`.
2527
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
2528
+ def preview(body:, org_id: nil, request_options: nil)
2529
+ @transport.request(
2530
+ http_method: "POST",
2531
+ path: "/api/org/{orgId}/billing-rules/preview",
2532
+ path_params: { "orgId" => org_id },
2533
+ body: body,
2534
+ request_options: request_options
2535
+ )
2536
+ end
2537
+
2538
+ # Reorder billing rules
2539
+ #
2540
+ # Rewrites every rule's priority to match the given order (10, 20, 30…) in
2541
+ # one transaction and one audit entry. The list must name every rule exactly
2542
+ # once.
2543
+ #
2544
+ # _Requires permission: `org:settings:write`._
2545
+ #
2546
+ # POST /api/org/{orgId}/billing-rules/reorder
2547
+ #
2548
+ # Raises on 400: Bad request
2549
+ #
2550
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
2551
+ # constructed with.
2552
+ # @param body [Hash] Request body, shaped as `BillingRuleOrder`.
2553
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
2554
+ # @return [Array<Hash>] Parsed JSON, shaped as `Array<BillingRule>` — see
2555
+ # `sig/infrawrench/sdk.rbs`.
2556
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
2557
+ def reorder(body:, org_id: nil, request_options: nil)
2558
+ @transport.request(
2559
+ http_method: "POST",
2560
+ path: "/api/org/{orgId}/billing-rules/reorder",
2561
+ path_params: { "orgId" => org_id },
2562
+ body: body,
2563
+ request_options: request_options
2564
+ )
2565
+ end
2566
+
2505
2567
  # Update a billing rule
2506
2568
  #
2507
2569
  # A full replace, `enabled` included — switching a markup off is an edit of
@@ -8758,6 +8820,326 @@ module Infrawrench
8758
8820
  end
8759
8821
  end
8760
8822
 
8823
+ # `client.github_issues.pull_requests`
8824
+ class GithubIssuesPullRequestsNamespace
8825
+ # @api private
8826
+ # @param transport [Transport]
8827
+ def initialize(transport)
8828
+ @transport = transport
8829
+ end
8830
+
8831
+ # Open an IaC pull request for a finding
8832
+ #
8833
+ # Creates a branch, commits the one-file change and opens a pull request
8834
+ # against the mapped base branch. Never merged automatically.
8835
+ #
8836
+ # _Requires permission: `github-issues:write`._
8837
+ #
8838
+ # POST /api/org/{orgId}/github-issues/pull-requests
8839
+ #
8840
+ # Raises on 400: Bad request
8841
+ #
8842
+ # Raises on 409: The GitHub App installation needs a permission an owner has
8843
+ # not approved yet
8844
+ #
8845
+ # Raises on 502: GitHub refused the request or was unreachable
8846
+ #
8847
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
8848
+ # constructed with.
8849
+ # @param body [Hash] Request body, shaped as `GithubPullRequestInput`.
8850
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
8851
+ # @return [Hash] Parsed JSON, shaped as `GithubPullRequestResult` — see
8852
+ # `sig/infrawrench/sdk.rbs`.
8853
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
8854
+ def create(body:, org_id: nil, request_options: nil)
8855
+ @transport.request(
8856
+ http_method: "POST",
8857
+ path: "/api/org/{orgId}/github-issues/pull-requests",
8858
+ path_params: { "orgId" => org_id },
8859
+ body: body,
8860
+ request_options: request_options
8861
+ )
8862
+ end
8863
+
8864
+ # Preview an IaC pull request for a finding
8865
+ #
8866
+ # Reads only. Says what the pull request would change (one file, as a diff),
8867
+ # or why the change is not mechanical.
8868
+ #
8869
+ # _Requires permission: `github-issues:write`._
8870
+ #
8871
+ # POST /api/org/{orgId}/github-issues/pull-requests/preview
8872
+ #
8873
+ # Raises on 400: Bad request
8874
+ #
8875
+ # Raises on 409: The GitHub App installation needs a permission an owner has
8876
+ # not approved yet
8877
+ #
8878
+ # Raises on 502: GitHub refused the request or was unreachable
8879
+ #
8880
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
8881
+ # constructed with.
8882
+ # @param body [Hash] Request body, shaped as `GithubPullRequestInput`.
8883
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
8884
+ # @return [Hash] Parsed JSON, shaped as `GithubPullRequestPreview` — see
8885
+ # `sig/infrawrench/sdk.rbs`.
8886
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
8887
+ def preview(body:, org_id: nil, request_options: nil)
8888
+ @transport.request(
8889
+ http_method: "POST",
8890
+ path: "/api/org/{orgId}/github-issues/pull-requests/preview",
8891
+ path_params: { "orgId" => org_id },
8892
+ body: body,
8893
+ request_options: request_options
8894
+ )
8895
+ end
8896
+ end
8897
+
8898
+ # `client.github_issues`
8899
+ class GithubIssuesNamespace
8900
+ # @return [GithubIssuesPullRequestsNamespace] `client.github_issues.pull_requests`
8901
+ attr_reader :pull_requests
8902
+
8903
+ # @api private
8904
+ # @param transport [Transport]
8905
+ def initialize(transport)
8906
+ @transport = transport
8907
+ @pull_requests = GithubIssuesPullRequestsNamespace.new(@transport)
8908
+ end
8909
+
8910
+ # List a repository's assignable users
8911
+ #
8912
+ # Backs the assignee picker.
8913
+ #
8914
+ # _Requires permission: `github-issues:read`._
8915
+ #
8916
+ # GET /api/org/{orgId}/github-issues/assignees
8917
+ #
8918
+ # Raises on 400: Bad request
8919
+ #
8920
+ # Raises on 409: The GitHub App installation needs a permission an owner has
8921
+ # not approved yet
8922
+ #
8923
+ # Raises on 502: GitHub refused the request or was unreachable
8924
+ #
8925
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
8926
+ # constructed with.
8927
+ # @param installation_id [Integer]
8928
+ # @param repo [String]
8929
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
8930
+ # @return [Array<Hash>] Parsed JSON, shaped as `Array<GithubAssignee>` — see
8931
+ # `sig/infrawrench/sdk.rbs`.
8932
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
8933
+ def assignees(installation_id:, repo:, org_id: nil, request_options: nil)
8934
+ @transport.request(
8935
+ http_method: "GET",
8936
+ path: "/api/org/{orgId}/github-issues/assignees",
8937
+ path_params: { "orgId" => org_id },
8938
+ query: { "installationId" => installation_id, "repo" => repo },
8939
+ request_options: request_options
8940
+ )
8941
+ end
8942
+
8943
+ # List a repository's branches
8944
+ #
8945
+ # Backs the base-branch picker for Terraform sources.
8946
+ #
8947
+ # _Requires permission: `github-issues:read`._
8948
+ #
8949
+ # GET /api/org/{orgId}/github-issues/branches
8950
+ #
8951
+ # Raises on 400: Bad request
8952
+ #
8953
+ # Raises on 409: The GitHub App installation needs a permission an owner has
8954
+ # not approved yet
8955
+ #
8956
+ # Raises on 502: GitHub refused the request or was unreachable
8957
+ #
8958
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
8959
+ # constructed with.
8960
+ # @param installation_id [Integer]
8961
+ # @param repo [String]
8962
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
8963
+ # @return [Array<String>] Parsed JSON, shaped as `Array<String>` — see
8964
+ # `sig/infrawrench/sdk.rbs`.
8965
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
8966
+ def branches(installation_id:, repo:, org_id: nil, request_options: nil)
8967
+ @transport.request(
8968
+ http_method: "GET",
8969
+ path: "/api/org/{orgId}/github-issues/branches",
8970
+ path_params: { "orgId" => org_id },
8971
+ query: { "installationId" => installation_id, "repo" => repo },
8972
+ request_options: request_options
8973
+ )
8974
+ end
8975
+
8976
+ # Get GitHub issue settings and installation access
8977
+ #
8978
+ # _Requires permission: `github-issues:read`._
8979
+ #
8980
+ # GET /api/org/{orgId}/github-issues
8981
+ #
8982
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
8983
+ # constructed with.
8984
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
8985
+ # @return [Hash] Parsed JSON, shaped as `GithubIssuesStatus` — see
8986
+ # `sig/infrawrench/sdk.rbs`.
8987
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
8988
+ def get(org_id: nil, request_options: nil)
8989
+ @transport.request(
8990
+ http_method: "GET",
8991
+ path: "/api/org/{orgId}/github-issues",
8992
+ path_params: { "orgId" => org_id },
8993
+ request_options: request_options
8994
+ )
8995
+ end
8996
+
8997
+ # File a finding as a GitHub issue
8998
+ #
8999
+ # Opens an issue in the routed repository, or comments on the open issue
9000
+ # already filed for the same finding (matched by fingerprint, including a
9001
+ # hidden marker in issue bodies).
9002
+ #
9003
+ # _Requires permission: `github-issues:write`._
9004
+ #
9005
+ # POST /api/org/{orgId}/github-issues/issues
9006
+ #
9007
+ # Raises on 400: Bad request
9008
+ #
9009
+ # Raises on 409: The GitHub App installation needs a permission an owner has
9010
+ # not approved yet
9011
+ #
9012
+ # Raises on 502: GitHub refused the request or was unreachable
9013
+ #
9014
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
9015
+ # constructed with.
9016
+ # @param body [Hash] Request body, shaped as `FileGithubIssueInput`.
9017
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
9018
+ # @return [Hash] Parsed JSON, shaped as `FileGithubIssueResult` — see
9019
+ # `sig/infrawrench/sdk.rbs`.
9020
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
9021
+ def issues(body:, org_id: nil, request_options: nil)
9022
+ @transport.request(
9023
+ http_method: "POST",
9024
+ path: "/api/org/{orgId}/github-issues/issues",
9025
+ path_params: { "orgId" => org_id },
9026
+ body: body,
9027
+ request_options: request_options
9028
+ )
9029
+ end
9030
+
9031
+ # List a repository's labels
9032
+ #
9033
+ # Backs the label picker.
9034
+ #
9035
+ # _Requires permission: `github-issues:read`._
9036
+ #
9037
+ # GET /api/org/{orgId}/github-issues/labels
9038
+ #
9039
+ # Raises on 400: Bad request
9040
+ #
9041
+ # Raises on 409: The GitHub App installation needs a permission an owner has
9042
+ # not approved yet
9043
+ #
9044
+ # Raises on 502: GitHub refused the request or was unreachable
9045
+ #
9046
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
9047
+ # constructed with.
9048
+ # @param installation_id [Integer]
9049
+ # @param repo [String]
9050
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
9051
+ # @return [Array<Hash>] Parsed JSON, shaped as `Array<GithubLabel>` — see
9052
+ # `sig/infrawrench/sdk.rbs`.
9053
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
9054
+ def labels(installation_id:, repo:, org_id: nil, request_options: nil)
9055
+ @transport.request(
9056
+ http_method: "GET",
9057
+ path: "/api/org/{orgId}/github-issues/labels",
9058
+ path_params: { "orgId" => org_id },
9059
+ query: { "installationId" => installation_id, "repo" => repo },
9060
+ request_options: request_options
9061
+ )
9062
+ end
9063
+
9064
+ # Look up filed GitHub issues for a set of findings
9065
+ #
9066
+ # _Requires permission: `github-issues:read`._
9067
+ #
9068
+ # GET /api/org/{orgId}/github-issues/links
9069
+ #
9070
+ # Raises on 400: Bad request
9071
+ #
9072
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
9073
+ # constructed with.
9074
+ # @param source_kind [String, nil]
9075
+ # @param state [String, nil]
9076
+ # @param source_id [Array<String>, nil]
9077
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
9078
+ # @return [Array<Hash>] Parsed JSON, shaped as `Array<GithubIssueLink>` — see
9079
+ # `sig/infrawrench/sdk.rbs`.
9080
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
9081
+ def links(org_id: nil, source_kind: nil, state: nil, source_id: nil, request_options: nil)
9082
+ @transport.request(
9083
+ http_method: "GET",
9084
+ path: "/api/org/{orgId}/github-issues/links",
9085
+ path_params: { "orgId" => org_id },
9086
+ query: { "sourceKind" => source_kind, "state" => state, "sourceId" => source_id },
9087
+ request_options: request_options
9088
+ )
9089
+ end
9090
+
9091
+ # Resolve where a finding would be filed
9092
+ #
9093
+ # _Requires permission: `github-issues:read`._
9094
+ #
9095
+ # GET /api/org/{orgId}/github-issues/route
9096
+ #
9097
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
9098
+ # constructed with.
9099
+ # @param resource_id [String, nil]
9100
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
9101
+ # @return [Hash] Parsed JSON, shaped as `GithubIssueRouteResolution` — see
9102
+ # `sig/infrawrench/sdk.rbs`.
9103
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
9104
+ def route(org_id: nil, resource_id: nil, request_options: nil)
9105
+ @transport.request(
9106
+ http_method: "GET",
9107
+ path: "/api/org/{orgId}/github-issues/route",
9108
+ path_params: { "orgId" => org_id },
9109
+ query: { "resourceId" => resource_id },
9110
+ request_options: request_options
9111
+ )
9112
+ end
9113
+
9114
+ # Replace the GitHub issue settings
9115
+ #
9116
+ # Whole-document replace: route order is part of the meaning. Route and
9117
+ # source ids are kept when supplied.
9118
+ #
9119
+ # _Requires permission: `org:settings:write`._
9120
+ #
9121
+ # PUT /api/org/{orgId}/github-issues/settings
9122
+ #
9123
+ # Raises on 400: Bad request
9124
+ #
9125
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
9126
+ # constructed with.
9127
+ # @param body [Hash] Request body, shaped as `GithubIssueSettingsInput`.
9128
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
9129
+ # @return [Hash] Parsed JSON, shaped as `GithubIssueSettings` — see
9130
+ # `sig/infrawrench/sdk.rbs`.
9131
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
9132
+ def settings(body:, org_id: nil, request_options: nil)
9133
+ @transport.request(
9134
+ http_method: "PUT",
9135
+ path: "/api/org/{orgId}/github-issues/settings",
9136
+ path_params: { "orgId" => org_id },
9137
+ body: body,
9138
+ request_options: request_options
9139
+ )
9140
+ end
9141
+ end
9142
+
8761
9143
  # `client.iac.states`
8762
9144
  class IacStatesNamespace
8763
9145
  # @api private
@@ -17745,6 +18127,8 @@ module Infrawrench
17745
18127
  attr_reader :environments
17746
18128
  # @return [ExpiringNamespace] `client.expiring`
17747
18129
  attr_reader :expiring
18130
+ # @return [GithubIssuesNamespace] `client.github_issues`
18131
+ attr_reader :github_issues
17748
18132
  # @return [IacNamespace] `client.iac`
17749
18133
  attr_reader :iac
17750
18134
  # @return [IncidentsNamespace] `client.incidents`
@@ -17903,6 +18287,7 @@ module Infrawrench
17903
18287
  @environment_diff = EnvironmentDiffNamespace.new(@transport)
17904
18288
  @environments = EnvironmentsNamespace.new(@transport)
17905
18289
  @expiring = ExpiringNamespace.new(@transport)
18290
+ @github_issues = GithubIssuesNamespace.new(@transport)
17906
18291
  @iac = IacNamespace.new(@transport)
17907
18292
  @incidents = IncidentsNamespace.new(@transport)
17908
18293
  @invitations = InvitationsNamespace.new(@transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.52.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.54.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.52.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.54.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.52.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.54.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.52.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.54.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.52.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.54.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.52.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.54.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.52.0"
18
+ VERSION = "1.54.0"
19
19
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.52.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.54.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.52.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.54.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.52.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v1.54.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.52.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.54.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -455,11 +455,19 @@ module Infrawrench
455
455
  # nobody and the rule's **other** destinations still deliver: an alert lost to
456
456
  # a misconfigured rotation would be the worst outcome the feature could have.
457
457
  #
458
+ # `github-issues` files the alert's finding as a GitHub issue in the
459
+ # repository the organization's GitHub issue settings route it to
460
+ # (`/github-issues`), commenting on the open issue instead when one already
461
+ # exists for that finding. Only alerts that carry a finding (savings findings,
462
+ # cost anomalies, idle commitments) can be filed; for other triggers this
463
+ # destination is skipped.
464
+ #
458
465
  # Spec schema: `AlertDestination`.
459
466
  type alert_destination = { "kind" => "push" }
460
467
  | { "kind" => "slack", "channelId" => String }
461
468
  | { "kind" => "msteams", "webhookId" => String }
462
469
  | { "kind" => "on-call", "scheduleId" => String }
470
+ | { "kind" => "github-issues" }
463
471
 
464
472
  # Spec schema: `AlertRule`.
465
473
  type alert_rule = {
@@ -511,6 +519,7 @@ module Infrawrench
511
519
  | "commitmentExpiryAlerts"
512
520
  | "commitmentIdleAlerts"
513
521
  | "unitCostRegressionAlerts"
522
+ | "savingsFindings"
514
523
  | "metricAlerts"
515
524
  | "resourceDrift"
516
525
  | "workflowPages"
@@ -789,19 +798,24 @@ module Infrawrench
789
798
  "priority" => Integer,
790
799
  "match" => billing_rule_match,
791
800
  "adjustment" => billing_rule_adjustment,
801
+ "managedAccountIds" => Array[String],
792
802
  "createdAt" => String,
793
803
  "updatedAt" => String
794
804
  }
795
805
 
796
806
  # Spec schema: `BillingRuleAdjustment`.
797
807
  type billing_rule_adjustment = {
798
- "kind" => "percentage" | "fixed" | "reallocation",
808
+ "kind" => "percentage" | "fixed" | "reallocation" | "tiered" | "expression",
799
809
  ?"percent" => Numeric | nil,
800
810
  ?"amount" => Numeric | nil,
801
811
  ?"currency" => String | nil,
802
812
  ?"period" => "daily" | "monthly" | nil,
803
813
  ?"targetKind" => "cost_centre" | "account" | nil,
804
- ?"targetId" => String | nil
814
+ ?"targetId" => String | nil,
815
+ ?"tiers" => Array[billing_rule_tier] | nil,
816
+ ?"tierMode" => "marginal" | "volume" | nil,
817
+ ?"tierScope" => "overall" | "per_service" | nil,
818
+ ?"expression" => String | nil
805
819
  }
806
820
 
807
821
  # Spec schema: `BillingRuleInput`.
@@ -811,7 +825,8 @@ module Infrawrench
811
825
  ?"enabled" => bool,
812
826
  "priority" => Integer,
813
827
  "match" => billing_rule_match,
814
- "adjustment" => billing_rule_adjustment
828
+ "adjustment" => billing_rule_adjustment,
829
+ ?"managedAccountIds" => Array[String]
815
830
  }
816
831
 
817
832
  # All set fields must match (AND); a rule with no fields matches all spend.
@@ -836,6 +851,12 @@ module Infrawrench
836
851
  | "other"
837
852
  }
838
853
 
854
+ # Spec schema: `BillingRuleOrder`.
855
+ type billing_rule_order = { "ids" => Array[String] }
856
+
857
+ # Spec schema: `BillingRuleTier`.
858
+ type billing_rule_tier = { "upTo" => Numeric | nil, "percent" => Numeric }
859
+
839
860
  # Spec schema: `BillingStatus`.
840
861
  type billing_status = { "complimentary" => bool, "subscription" => subscription, "capacity" => capacity_status }
841
862
 
@@ -1617,7 +1638,7 @@ module Infrawrench
1617
1638
  "rules" => Array[{
1618
1639
  "id" => String,
1619
1640
  "name" => String,
1620
- "kind" => "percentage" | "fixed" | "reallocation",
1641
+ "kind" => "percentage" | "fixed" | "reallocation" | "tiered" | "expression",
1621
1642
  "summary" => String
1622
1643
  }],
1623
1644
  "rawTotals" => Hash[String, Numeric],
@@ -2944,6 +2965,13 @@ module Infrawrench
2944
2965
  # Spec schema: `DigestTransportResult`.
2945
2966
  type digest_transport_result = { "attempted" => Integer, "succeeded" => Integer }
2946
2967
 
2968
+ # Provider discounts: `commitment_discount` lines and negative
2969
+ # `other`/`adjustment` lines (enterprise agreements, private pricing, Savings
2970
+ # Plan negation).
2971
+ #
2972
+ # Spec schema: `DiscountTreatment`.
2973
+ type discount_treatment = { "mode" => "pass_through" | "partial" | "retain", ?"passThroughPercent" => Numeric | nil }
2974
+
2947
2975
  # Spec schema: `DismissedAccessFinding`.
2948
2976
  type dismissed_access_finding = {
2949
2977
  "resourceId" => String,
@@ -3504,6 +3532,25 @@ module Infrawrench
3504
3532
  # Spec schema: `FieldActionResponse`.
3505
3533
  type field_action_response = { "value" => String, ?"option" => { "id" => String, "label" => String } }
3506
3534
 
3535
+ # Spec schema: `FileGithubIssueInput`.
3536
+ type file_github_issue_input = {
3537
+ "sourceKind" => github_issue_source_kind,
3538
+ "sourceId" => String,
3539
+ "title" => String,
3540
+ ?"details" => Array[{ "label" => String, ?"value" => String | Numeric | nil | nil }],
3541
+ ?"note" => String,
3542
+ ?"resourceId" => String,
3543
+ ?"monthlyCost" => { "amount" => Numeric, "currency" => String },
3544
+ ?"remediation" => Array[String],
3545
+ ?"repo" => github_repo_ref & Hash[String, untyped],
3546
+ ?"labels" => Array[String],
3547
+ ?"assignees" => Array[String],
3548
+ ?"appUrl" => String
3549
+ }
3550
+
3551
+ # Spec schema: `FileGithubIssueResult`.
3552
+ type file_github_issue_result = { "action" => "created" | "commented", "link" => github_issue_link }
3553
+
3507
3554
  # Spec schema: `FocusExportRequest`.
3508
3555
  type focus_export_request = {
3509
3556
  "from" => String,
@@ -3527,6 +3574,180 @@ module Infrawrench
3527
3574
  "privateKey" => String
3528
3575
  }
3529
3576
 
3577
+ # Spec schema: `GithubAssignee`.
3578
+ type github_assignee = { "login" => String, "avatarUrl" => String | nil }
3579
+
3580
+ # Spec schema: `GithubIacSource`.
3581
+ type github_iac_source = github_iac_source_input & { "id" => String }
3582
+
3583
+ # Spec schema: `GithubIacSourceInput`.
3584
+ type github_iac_source_input = {
3585
+ ?"id" => String,
3586
+ "iacAccountId" => String | nil,
3587
+ "repo" => github_repo_ref & Hash[String, untyped],
3588
+ "baseBranch" => String | nil,
3589
+ "directory" => String
3590
+ }
3591
+
3592
+ # What an installation has **accepted**. An installation made before issue
3593
+ # filing existed shows `issues: none` until an owner of the GitHub account
3594
+ # approves the app's updated permissions.
3595
+ #
3596
+ # Spec schema: `GithubInstallationAccess`.
3597
+ type github_installation_access = {
3598
+ "installationId" => Integer,
3599
+ "accountLogin" => String | nil,
3600
+ "issues" => "none" | "read" | "write" | "admin",
3601
+ "pullRequests" => "none" | "read" | "write" | "admin",
3602
+ "contents" => "none" | "read" | "write" | "admin",
3603
+ "suspended" => bool,
3604
+ "manageUrl" => String | nil,
3605
+ "checked" => bool
3606
+ }
3607
+
3608
+ # Spec schema: `GithubIssueLink`.
3609
+ type github_issue_link = {
3610
+ "id" => String,
3611
+ "sourceKind" => github_issue_source_kind,
3612
+ "sourceId" => String,
3613
+ "fingerprint" => String,
3614
+ "repo" => String,
3615
+ "installationId" => Integer,
3616
+ "issueNumber" => Integer,
3617
+ "issueUrl" => String,
3618
+ "state" => "open" | "closed",
3619
+ "autoFiled" => bool,
3620
+ "pullRequestNumber" => Integer | nil,
3621
+ "pullRequestUrl" => String | nil,
3622
+ "createdByUserId" => String | nil,
3623
+ "createdAt" => String,
3624
+ "resolvedAt" => String | nil
3625
+ }
3626
+
3627
+ # Spec schema: `GithubIssueRoute`.
3628
+ type github_issue_route = github_issue_route_input & { "id" => String }
3629
+
3630
+ # Spec schema: `GithubIssueRouteInput`.
3631
+ type github_issue_route_input = {
3632
+ ?"id" => String,
3633
+ "match" => github_issue_route_match,
3634
+ "repo" => github_repo_ref & Hash[String, untyped],
3635
+ "labels" => Array[String],
3636
+ "assignees" => Array[String]
3637
+ }
3638
+
3639
+ # What sends a finding to this route's repository: the cost centre the
3640
+ # organization's allocation rules place its resource in, or a tag on the
3641
+ # resource. Allocation rules that match on `service` cannot be judged from a
3642
+ # resource and never match here.
3643
+ #
3644
+ # Spec schema: `GithubIssueRouteMatch`.
3645
+ type github_issue_route_match = { "kind" => "cost_centre", "costCentreId" => String }
3646
+ | { "kind" => "tag", "tagKey" => String, "tagValue" => String | nil }
3647
+
3648
+ # Spec schema: `GithubIssueRouteResolution`.
3649
+ type github_issue_route_resolution = {
3650
+ "repo" => github_repo_ref,
3651
+ "labels" => Array[String],
3652
+ "assignees" => Array[String],
3653
+ "routeId" => String | nil
3654
+ }
3655
+
3656
+ # Spec schema: `GithubIssueSettings`.
3657
+ type github_issue_settings = {
3658
+ "enabled" => bool,
3659
+ "defaultRepo" => github_repo_ref,
3660
+ "labels" => Array[String],
3661
+ "assignees" => Array[String],
3662
+ "routes" => Array[github_issue_route],
3663
+ "resolveAction" => github_resolve_action,
3664
+ "pullRequestsEnabled" => bool,
3665
+ "iacSources" => Array[github_iac_source],
3666
+ "updatedAt" => String | nil
3667
+ }
3668
+
3669
+ # Spec schema: `GithubIssueSettingsInput`.
3670
+ type github_issue_settings_input = {
3671
+ "enabled" => bool,
3672
+ "defaultRepo" => github_repo_ref,
3673
+ "labels" => Array[String],
3674
+ "assignees" => Array[String],
3675
+ "routes" => Array[github_issue_route_input],
3676
+ "resolveAction" => github_resolve_action,
3677
+ "pullRequestsEnabled" => bool,
3678
+ "iacSources" => Array[github_iac_source_input]
3679
+ }
3680
+
3681
+ # Which detector produced the finding the issue was filed from.
3682
+ #
3683
+ # Spec schema: `GithubIssueSourceKind`.
3684
+ type github_issue_source_kind = "cost_anomaly"
3685
+ | "orphan"
3686
+ | "oversized"
3687
+ | "posture_finding"
3688
+ | "expiring"
3689
+ | "probe"
3690
+ | "commitment_idle"
3691
+
3692
+ # Spec schema: `GithubIssuesStatus`.
3693
+ type github_issues_status = {
3694
+ "appConfigured" => bool,
3695
+ "installations" => Array[github_installation_access],
3696
+ "settings" => github_issue_settings
3697
+ }
3698
+
3699
+ # Spec schema: `GithubLabel`.
3700
+ type github_label = { "name" => String, "color" => String, "description" => String | nil }
3701
+
3702
+ # The installation has not accepted the permission this needs. An owner of the
3703
+ # GitHub account approves it from `manageUrl`.
3704
+ #
3705
+ # Spec schema: `GithubPermissionRequired`.
3706
+ type github_permission_required = {
3707
+ "error" => String,
3708
+ "code" => "github_permission_required",
3709
+ "permissions" => Array[String],
3710
+ "installationId" => Integer,
3711
+ "accountLogin" => String | nil,
3712
+ "manageUrl" => String | nil
3713
+ }
3714
+
3715
+ # Spec schema: `GithubPullRequestInput`.
3716
+ type github_pull_request_input = {
3717
+ "sourceKind" => github_issue_source_kind,
3718
+ "sourceId" => String,
3719
+ "resourceId" => String,
3720
+ "change" => { "kind" => "resize", "recommendedSizeId" => String } | { "kind" => "remove" }
3721
+ }
3722
+
3723
+ # Spec schema: `GithubPullRequestPreview`.
3724
+ type github_pull_request_preview = {
3725
+ "eligible" => bool,
3726
+ "repo" => github_repo_ref & Hash[String, untyped],
3727
+ "baseBranch" => String,
3728
+ "path" => String,
3729
+ "terraformAddress" => String,
3730
+ "title" => String,
3731
+ "body" => String,
3732
+ "diff" => String
3733
+ }
3734
+ | { "eligible" => bool, "reason" => String }
3735
+
3736
+ # Spec schema: `GithubPullRequestResult`.
3737
+ type github_pull_request_result = {
3738
+ "pullRequest" => { "number" => Integer, "url" => String },
3739
+ "link" => github_issue_link & (Hash[String, untyped] | nil)
3740
+ }
3741
+
3742
+ # Spec schema: `GithubRepoRef`.
3743
+ type github_repo_ref = { "installationId" => Integer, "fullName" => String } | nil
3744
+
3745
+ # What happens to an open issue when its finding goes away: close it with a
3746
+ # comment, only comment, or leave it alone.
3747
+ #
3748
+ # Spec schema: `GithubResolveAction`.
3749
+ type github_resolve_action = "close" | "comment" | "none"
3750
+
3530
3751
  # Spec schema: `HygieneFinding`.
3531
3752
  type hygiene_finding = {
3532
3753
  "id" => String,
@@ -3883,14 +4104,19 @@ module Infrawrench
3883
4104
  "rules" => Array[{
3884
4105
  "id" => String,
3885
4106
  "name" => String,
3886
- "kind" => "percentage" | "fixed" | "reallocation",
4107
+ "kind" => "percentage" | "fixed" | "reallocation" | "tiered" | "expression",
3887
4108
  "summary" => String
3888
4109
  }],
3889
4110
  "scope" => {
3890
4111
  "costCentres" => Array[{ "id" => String, "name" => String }],
3891
4112
  "accounts" => Array[{ "id" => String, "label" => String }]
3892
4113
  },
3893
- "missingScope" => Array[String]
4114
+ "missingScope" => Array[String],
4115
+ ?"pricing" => managed_account_pricing & Hash[String, untyped],
4116
+ ?"effects" => Array[pricing_effect],
4117
+ ?"rerateCoverage" => rerate_coverage & untyped,
4118
+ ?"warnings" => Array[String],
4119
+ ?"expressionFailures" => Array[pricing_expression_failure]
3894
4120
  }
3895
4121
 
3896
4122
  # A new invoice is always a draft. There is no status field and no scope
@@ -3920,7 +4146,8 @@ module Infrawrench
3920
4146
  "adjustment" => Numeric,
3921
4147
  "adjusted" => Numeric,
3922
4148
  "rate" => Numeric | nil,
3923
- "billed" => Numeric | nil
4149
+ "billed" => Numeric | nil,
4150
+ ?"effects" => Array[{ "key" => String, "amount" => Numeric }]
3924
4151
  }
3925
4152
 
3926
4153
  # Spec schema: `InvoiceSendRequest`.
@@ -4284,6 +4511,7 @@ module Infrawrench
4284
4511
  "billingCurrency" => String,
4285
4512
  "costBasis" => "cash" | "amortized",
4286
4513
  "applyBillingRules" => bool,
4514
+ "pricing" => managed_account_pricing & Hash[String, untyped],
4287
4515
  "notes" => String | nil,
4288
4516
  "costCentreIds" => Array[String],
4289
4517
  "accountIds" => Array[String],
@@ -4302,11 +4530,28 @@ module Infrawrench
4302
4530
  "billingCurrency" => String,
4303
4531
  ?"costBasis" => "cash" | "amortized",
4304
4532
  ?"applyBillingRules" => bool,
4533
+ ?"pricing" => managed_account_pricing & Hash[String, untyped],
4305
4534
  ?"notes" => String | nil,
4306
4535
  ?"costCentreIds" => Array[String],
4307
4536
  ?"accountIds" => Array[String]
4308
4537
  }
4309
4538
 
4539
+ # Customer settings to try instead of the saved ones.
4540
+ #
4541
+ # Spec schema: `ManagedAccountPricing`.
4542
+ type managed_account_pricing = {
4543
+ "rerate" => {
4544
+ "enabled" => bool,
4545
+ "scope" => Array[{ "pluginId" => String, ?"service" => String | nil }],
4546
+ "fallbackUpliftPercent" => Numeric,
4547
+ "uplifts" => Array[{ "pluginId" => String, ?"service" => String | nil, "percent" => Numeric }]
4548
+ },
4549
+ "discounts" => discount_treatment,
4550
+ "credits" => discount_treatment & untyped,
4551
+ "commitmentBenefits" => discount_treatment & untyped
4552
+ }
4553
+ | nil
4554
+
4310
4555
  # Spec schema: `Manifest`.
4311
4556
  type manifest = { "manifest" => String }
4312
4557
 
@@ -5256,6 +5501,8 @@ module Infrawrench
5256
5501
  | "jira:write"
5257
5502
  | "linear:read"
5258
5503
  | "linear:write"
5504
+ | "github-issues:read"
5505
+ | "github-issues:write"
5259
5506
  | "invoices:read"
5260
5507
  | "invoices:write"
5261
5508
  | "invoices:issue"
@@ -5657,6 +5904,68 @@ module Infrawrench
5657
5904
  # Spec schema: `PriceRateType`.
5658
5905
  type price_rate_type = "on-demand" | "spot" | "reserved" | "savings-plan"
5659
5906
 
5907
+ # One rule or setting that moved money, in pipeline order.
5908
+ #
5909
+ # Spec schema: `PricingEffect`.
5910
+ type pricing_effect = {
5911
+ "key" => String,
5912
+ "ruleId" => String | nil,
5913
+ "label" => String,
5914
+ "kind" => "rerate_list"
5915
+ | "rerate_fallback"
5916
+ | "discounts"
5917
+ | "credits"
5918
+ | "commitment_benefits"
5919
+ | "percentage"
5920
+ | "fixed"
5921
+ | "reallocation"
5922
+ | "tiered"
5923
+ | "expression",
5924
+ "totals" => Hash[String, Numeric]
5925
+ }
5926
+
5927
+ # An expression rule that could not price some lines (division by zero, a
5928
+ # non-finite result). Those lines kept their previous cost rather than
5929
+ # becoming zero.
5930
+ #
5931
+ # Spec schema: `PricingExpressionFailure`.
5932
+ type pricing_expression_failure = { "ruleId" => String, "name" => String, "lines" => Integer, "message" => String }
5933
+
5934
+ # Spec schema: `PricingPreviewRequest`.
5935
+ type pricing_preview_request = {
5936
+ ?"rule" => billing_rule_input & (Hash[String, untyped] | nil),
5937
+ ?"ruleId" => String | nil,
5938
+ ?"managedAccountId" => String | nil,
5939
+ ?"pricing" => managed_account_pricing,
5940
+ ?"month" => String | nil
5941
+ }
5942
+
5943
+ # Spec schema: `PricingPreviewResult`.
5944
+ type pricing_preview_result = {
5945
+ "month" => String,
5946
+ "from" => String,
5947
+ "to" => String,
5948
+ "managedAccountId" => String | nil,
5949
+ "collected" => Hash[String, Numeric],
5950
+ "before" => Hash[String, Numeric],
5951
+ "after" => Hash[String, Numeric],
5952
+ "effects" => Array[pricing_effect],
5953
+ "coverage" => rerate_coverage,
5954
+ "warnings" => Array[String],
5955
+ "expressionFailures" => Array[pricing_expression_failure],
5956
+ "changes" => Array[{
5957
+ "pluginId" => String,
5958
+ "service" => String,
5959
+ "accountName" => String,
5960
+ "chargeType" => String,
5961
+ "currency" => String,
5962
+ "collected" => Numeric,
5963
+ "before" => Numeric,
5964
+ "after" => Numeric
5965
+ }],
5966
+ "lineCount" => Integer
5967
+ }
5968
+
5660
5969
  # Spec schema: `ProbeMetricSeries`.
5661
5970
  type probe_metric_series = {
5662
5971
  "label" => String,
@@ -6011,6 +6320,19 @@ module Infrawrench
6011
6320
  # Spec schema: `RequiredTag`.
6012
6321
  type required_tag = { "key" => String, ?"allowedValues" => Array[String] }
6013
6322
 
6323
+ # Spec schema: `RerateCoverage`.
6324
+ type rerate_coverage = {
6325
+ "byCurrency" => Hash[String, { "listPriced" => Numeric, "listTotal" => Numeric, "fallback" => Numeric }],
6326
+ "services" => Array[{
6327
+ "pluginId" => String,
6328
+ "service" => String,
6329
+ "currency" => String,
6330
+ "listPriced" => Numeric,
6331
+ "fallback" => Numeric
6332
+ }]
6333
+ }
6334
+ | nil
6335
+
6014
6336
  # Spec schema: `Resource`.
6015
6337
  type resource = {
6016
6338
  "id" => resource_id,
@@ -8383,6 +8705,8 @@ module Infrawrench
8383
8705
  def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
8384
8706
  def get: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> billing_rule
8385
8707
  def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[billing_rule]
8708
+ def preview: (body: pricing_preview_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> pricing_preview_result
8709
+ def reorder: (body: billing_rule_order, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[billing_rule]
8386
8710
  def update: (id: String, body: billing_rule_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> billing_rule
8387
8711
  end
8388
8712
 
@@ -8852,6 +9176,25 @@ module Infrawrench
8852
9176
  def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> expiry_list_response
8853
9177
  end
8854
9178
 
9179
+ class GithubIssuesPullRequestsNamespace
9180
+ def initialize: (Transport) -> void
9181
+ def create: (body: github_pull_request_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> github_pull_request_result
9182
+ def preview: (body: github_pull_request_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> github_pull_request_preview
9183
+ end
9184
+
9185
+ class GithubIssuesNamespace
9186
+ attr_reader pull_requests: GithubIssuesPullRequestsNamespace
9187
+ def initialize: (Transport) -> void
9188
+ def assignees: (installation_id: Integer, repo: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[github_assignee]
9189
+ def branches: (installation_id: Integer, repo: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[String]
9190
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> github_issues_status
9191
+ def issues: (body: file_github_issue_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> file_github_issue_result
9192
+ def labels: (installation_id: Integer, repo: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[github_label]
9193
+ def links: (?org_id: String?, ?source_kind: github_issue_source_kind?, ?state: "open" | "closed"?, ?source_id: Array[String]?, ?request_options: Hash[Symbol, untyped]?) -> Array[github_issue_link]
9194
+ def route: (?org_id: String?, ?resource_id: String?, ?request_options: Hash[Symbol, untyped]?) -> github_issue_route_resolution
9195
+ def settings: (body: github_issue_settings_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> github_issue_settings
9196
+ end
9197
+
8855
9198
  class IacStatesNamespace
8856
9199
  def initialize: (Transport) -> void
8857
9200
  def create: (?org_id: String?, ?body: iac_state_upload_request?, ?request_options: Hash[Symbol, untyped]?) -> { "state" => iac_state }
@@ -9551,6 +9894,7 @@ module Infrawrench
9551
9894
  attr_reader environment_diff: EnvironmentDiffNamespace
9552
9895
  attr_reader environments: EnvironmentsNamespace
9553
9896
  attr_reader expiring: ExpiringNamespace
9897
+ attr_reader github_issues: GithubIssuesNamespace
9554
9898
  attr_reader iac: IacNamespace
9555
9899
  attr_reader incidents: IncidentsNamespace
9556
9900
  attr_reader invitations: InvitationsNamespace
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.52.0
4
+ version: 1.54.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.52.0). Covers the published
14
+ description: Generated Ruby client for the Infrawrench API (v1.54.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.52.0).
61
+ summary: Generated Ruby client for the Infrawrench API (v1.54.0).
62
62
  test_files: []