infrawrench-sdk 1.50.0 → 1.52.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: 24e080a6b32c29cd657d8331bf948ff78682dd0209e343970a0173ad0c33cb61
4
- data.tar.gz: 0c5d06baf9b0c270a924b54ff27505c7ee00f8b9735f0ee671e811bdf6a406aa
3
+ metadata.gz: d35adcdc4eca80c83fa1cf3e3656700d8081d672d86d2ee986ce6075a7df8247
4
+ data.tar.gz: 521fd468ba1c5c3d0889c8a465d4bb2c6cba14629f2d138ca38b4cdaefad15ea
5
5
  SHA512:
6
- metadata.gz: 197ab3c08425d43d17ba8365569589a4bf2917e544f6d82466fab6b9998169039f1b9c1e0637158016bf0228feffeaf5c95d5d2aa59ded37264493e90ec4b8a8
7
- data.tar.gz: 04d94b93503e008453488b36f5046351f943ccadbadcb4eb8b564809d363b4ab514bc13705773b7cb543d796add9d0641bd1982d5d77d44f527bc52f6107c804
6
+ metadata.gz: 3e5647ba003ebcd6c47b70e4b5da3cb641a88b115fac2059e0bba92c3521244648e12803368d3ef9c6b6e275afaef824cfcffbf263f3fe41e1758b018e9cc668
7
+ data.tar.gz: 382ea9059ded328bcc3d02e0b8d9e9d5d196724c611eadb5c6e59ae0a8541f830e16bbc73afa22f1415b296db386e7088a3795e9a8af6625af1794afef13e307
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.50.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `1.52.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
- 765 schemas, as RBS type aliases that steep and TypeProf can read.
44
+ 782 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.50.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.52.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.50.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.52.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.50.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v1.50.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.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."
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.50.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.52.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.50.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.52.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -4675,9 +4675,10 @@ module Infrawrench
4675
4675
 
4676
4676
  # Create a cost export
4677
4677
  #
4678
- # Credentials are required on create. They are encrypted at rest and no
4679
- # route ever returns them; responses carry a redacted `credentialHint`
4680
- # instead.
4678
+ # Credentials are required on create for S3 and HTTPS destinations. They are
4679
+ # encrypted at rest and no route ever returns them; responses carry a
4680
+ # redacted `credentialHint` instead. A warehouse destination takes none: it
4681
+ # loads with the connected account's credentials.
4681
4682
  #
4682
4683
  # _Requires permission: `org:settings:write`._
4683
4684
  #
@@ -4831,6 +4832,86 @@ module Infrawrench
4831
4832
  request_options: request_options
4832
4833
  )
4833
4834
  end
4835
+
4836
+ # List options for a warehouse target field
4837
+ #
4838
+ # Reads the provider live with the account's credentials (warehouses,
4839
+ # databases or catalogs, schemas, tables). A provider refusal is a 400
4840
+ # carrying its message.
4841
+ #
4842
+ # _Requires permission: `org:settings:write`._
4843
+ #
4844
+ # POST /api/org/{orgId}/cost-exports/warehouse-options
4845
+ #
4846
+ # Raises on 400: Bad request
4847
+ #
4848
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
4849
+ # constructed with.
4850
+ # @param body [Hash] Request body, shaped as `Hash`.
4851
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
4852
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
4853
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
4854
+ def warehouse_options(body:, org_id: nil, request_options: nil)
4855
+ @transport.request(
4856
+ http_method: "POST",
4857
+ path: "/api/org/{orgId}/cost-exports/warehouse-options",
4858
+ path_params: { "orgId" => org_id },
4859
+ body: body,
4860
+ request_options: request_options
4861
+ )
4862
+ end
4863
+
4864
+ # Least-privilege setup for a warehouse target
4865
+ #
4866
+ # The GRANT statements the connected role or principal needs for a target,
4867
+ # plus any non-SQL steps (for Databricks, CAN USE on the SQL warehouse).
4868
+ #
4869
+ # _Requires permission: `org:settings:write`._
4870
+ #
4871
+ # POST /api/org/{orgId}/cost-exports/warehouse-setup
4872
+ #
4873
+ # Raises on 400: Bad request
4874
+ #
4875
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
4876
+ # constructed with.
4877
+ # @param body [Hash] Request body, shaped as `Hash`.
4878
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
4879
+ # @return [Hash] Parsed JSON, shaped as `CostExportWarehouseSetup` — see
4880
+ # `sig/infrawrench/sdk.rbs`.
4881
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
4882
+ def warehouse_setup(body:, org_id: nil, request_options: nil)
4883
+ @transport.request(
4884
+ http_method: "POST",
4885
+ path: "/api/org/{orgId}/cost-exports/warehouse-setup",
4886
+ path_params: { "orgId" => org_id },
4887
+ body: body,
4888
+ request_options: request_options
4889
+ )
4890
+ end
4891
+
4892
+ # List warehouse destination types
4893
+ #
4894
+ # Plugins that can load an export into a table in their own warehouse
4895
+ # (Snowflake, Databricks), each with the organization's connected accounts
4896
+ # and the target fields to fill.
4897
+ #
4898
+ # _Requires permission: `org:settings:write`._
4899
+ #
4900
+ # GET /api/org/{orgId}/cost-exports/warehouse-sinks
4901
+ #
4902
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
4903
+ # constructed with.
4904
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
4905
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
4906
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
4907
+ def warehouse_sinks(org_id: nil, request_options: nil)
4908
+ @transport.request(
4909
+ http_method: "GET",
4910
+ path: "/api/org/{orgId}/cost-exports/warehouse-sinks",
4911
+ path_params: { "orgId" => org_id },
4912
+ request_options: request_options
4913
+ )
4914
+ end
4834
4915
  end
4835
4916
 
4836
4917
  # `client.cost_report_folders`
@@ -11825,6 +11906,251 @@ module Infrawrench
11825
11906
  end
11826
11907
  end
11827
11908
 
11909
+ # `client.price_catalog`
11910
+ class PriceCatalogNamespace
11911
+ # @api private
11912
+ # @param transport [Transport]
11913
+ def initialize(transport)
11914
+ @transport = transport
11915
+ end
11916
+
11917
+ # Compare equivalent instances across providers
11918
+ #
11919
+ # The cheapest product per provider that meets every stated spec (at least
11920
+ # the vCPUs, memory and GPUs asked for), in each provider's region for the
11921
+ # area. Give the target as specs, or name a reference product and its specs
11922
+ # are used.
11923
+ #
11924
+ # _Requires permission: `resources:read`._
11925
+ #
11926
+ # GET /api/org/{orgId}/price-catalog/compare
11927
+ #
11928
+ # Raises on 400: Bad request
11929
+ #
11930
+ # Raises on 401: Unauthenticated
11931
+ #
11932
+ # Raises on 402: Payment required — the organization's plan does not include
11933
+ # this
11934
+ #
11935
+ # Raises on 403: Forbidden
11936
+ #
11937
+ # Raises on 404: Not found
11938
+ #
11939
+ # Raises on 409: Conflict
11940
+ #
11941
+ # Raises on 500: Server error
11942
+ #
11943
+ # Raises on 503: A backing service this endpoint depends on is not available
11944
+ #
11945
+ # Raises on reauth: Recent sign-in required. Send the user through sign-in
11946
+ # again and retry; the request itself was well-formed.
11947
+ #
11948
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
11949
+ # constructed with.
11950
+ # @param vcpus [String, nil] Minimum vCPUs.
11951
+ # @param memory_gb [String, nil] Minimum memory, GB.
11952
+ # @param gpu_count [String, nil] Minimum GPUs.
11953
+ # @param gpu_model [String, nil]
11954
+ # @param reference_plugin_id [String, nil]
11955
+ # @param reference_sku [String, nil]
11956
+ # @param area [String, nil]
11957
+ # @param rate_type [String, nil]
11958
+ # @param plugin_ids [String, nil] Comma-separated plugin ids.
11959
+ # @param alternatives [String, nil] Runners-up per provider, 0 to 10. Default 2.
11960
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
11961
+ # @return [Hash] Parsed JSON, shaped as `PriceCatalogCompareResponse` — see
11962
+ # `sig/infrawrench/sdk.rbs`.
11963
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
11964
+ def compare(
11965
+ org_id: nil,
11966
+ vcpus: nil,
11967
+ memory_gb: nil,
11968
+ gpu_count: nil,
11969
+ gpu_model: nil,
11970
+ reference_plugin_id: nil,
11971
+ reference_sku: nil,
11972
+ area: nil,
11973
+ rate_type: nil,
11974
+ plugin_ids: nil,
11975
+ alternatives: nil,
11976
+ request_options: nil
11977
+ )
11978
+ @transport.request(
11979
+ http_method: "GET",
11980
+ path: "/api/org/{orgId}/price-catalog/compare",
11981
+ path_params: { "orgId" => org_id },
11982
+ query: {
11983
+ "vcpus" => vcpus,
11984
+ "memoryGb" => memory_gb,
11985
+ "gpuCount" => gpu_count,
11986
+ "gpuModel" => gpu_model,
11987
+ "referencePluginId" => reference_plugin_id,
11988
+ "referenceSku" => reference_sku,
11989
+ "area" => area,
11990
+ "rateType" => rate_type,
11991
+ "pluginIds" => plugin_ids,
11992
+ "alternatives" => alternatives
11993
+ },
11994
+ request_options: request_options
11995
+ )
11996
+ end
11997
+
11998
+ # List the providers that publish a price catalog
11999
+ #
12000
+ # Every plugin that declares a price catalog, with its source, refresh
12001
+ # cadence, services, regions and whether its price API needs credentials. A
12002
+ # credentialed provider the org has no account on reports `no-account`.
12003
+ #
12004
+ # _Requires permission: `resources:read`._
12005
+ #
12006
+ # GET /api/org/{orgId}/price-catalog/providers
12007
+ #
12008
+ # Raises on 400: Bad request
12009
+ #
12010
+ # Raises on 401: Unauthenticated
12011
+ #
12012
+ # Raises on 402: Payment required — the organization's plan does not include
12013
+ # this
12014
+ #
12015
+ # Raises on 403: Forbidden
12016
+ #
12017
+ # Raises on 404: Not found
12018
+ #
12019
+ # Raises on 409: Conflict
12020
+ #
12021
+ # Raises on 500: Server error
12022
+ #
12023
+ # Raises on 503: A backing service this endpoint depends on is not available
12024
+ #
12025
+ # Raises on reauth: Recent sign-in required. Send the user through sign-in
12026
+ # again and retry; the request itself was well-formed.
12027
+ #
12028
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
12029
+ # constructed with.
12030
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
12031
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
12032
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
12033
+ def providers(org_id: nil, request_options: nil)
12034
+ @transport.request(
12035
+ http_method: "GET",
12036
+ path: "/api/org/{orgId}/price-catalog/providers",
12037
+ path_params: { "orgId" => org_id },
12038
+ request_options: request_options
12039
+ )
12040
+ end
12041
+
12042
+ # Search provider list prices
12043
+ #
12044
+ # Search instance types across every catalog provider: one row per product
12045
+ # priced at the requested rate type in the region chosen for each provider.
12046
+ # Filters narrow by provider, service, specs, GPU and price; rows sort by
12047
+ # monthly price by default.
12048
+ #
12049
+ # _Requires permission: `resources:read`._
12050
+ #
12051
+ # GET /api/org/{orgId}/price-catalog/search
12052
+ #
12053
+ # Raises on 400: Bad request
12054
+ #
12055
+ # Raises on 401: Unauthenticated
12056
+ #
12057
+ # Raises on 402: Payment required — the organization's plan does not include
12058
+ # this
12059
+ #
12060
+ # Raises on 403: Forbidden
12061
+ #
12062
+ # Raises on 404: Not found
12063
+ #
12064
+ # Raises on 409: Conflict
12065
+ #
12066
+ # Raises on 500: Server error
12067
+ #
12068
+ # Raises on 503: A backing service this endpoint depends on is not available
12069
+ #
12070
+ # Raises on reauth: Recent sign-in required. Send the user through sign-in
12071
+ # again and retry; the request itself was well-formed.
12072
+ #
12073
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
12074
+ # constructed with.
12075
+ # @param q [String, nil] Free text over SKU, name, series and GPU model.
12076
+ # @param plugin_ids [String, nil] Comma-separated plugin ids.
12077
+ # @param service_ids [String, nil] Comma-separated service ids (from the providers list).
12078
+ # @param families [String, nil] Comma-separated product families.
12079
+ # @param region [String, nil] Exact provider region, for providers that declare it.
12080
+ # @param area [String, nil]
12081
+ # @param min_vcpus [String, nil] Minimum vCPUs.
12082
+ # @param max_vcpus [String, nil] Maximum vCPUs.
12083
+ # @param min_memory_gb [String, nil] Minimum memory, GB.
12084
+ # @param max_memory_gb [String, nil] Maximum memory, GB.
12085
+ # @param gpu [String, nil]
12086
+ # @param gpu_model [String, nil] Case-insensitive substring, e.g. `H100`.
12087
+ # @param min_gpus [String, nil] Minimum GPU count.
12088
+ # @param max_monthly_price [String, nil] Upper bound on the comparable monthly price.
12089
+ # @param rate_type [String, nil]
12090
+ # @param term [String, nil] `1yr` or `3yr` for commitments.
12091
+ # @param sort [String, nil]
12092
+ # @param order [String, nil]
12093
+ # @param limit [String, nil] Rows per page, 1 to 500. Default 100.
12094
+ # @param offset [String, nil] Rows to skip.
12095
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
12096
+ # @return [Hash] Parsed JSON, shaped as `PriceCatalogSearchResponse` — see
12097
+ # `sig/infrawrench/sdk.rbs`.
12098
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
12099
+ def search(
12100
+ org_id: nil,
12101
+ q: nil,
12102
+ plugin_ids: nil,
12103
+ service_ids: nil,
12104
+ families: nil,
12105
+ region: nil,
12106
+ area: nil,
12107
+ min_vcpus: nil,
12108
+ max_vcpus: nil,
12109
+ min_memory_gb: nil,
12110
+ max_memory_gb: nil,
12111
+ gpu: nil,
12112
+ gpu_model: nil,
12113
+ min_gpus: nil,
12114
+ max_monthly_price: nil,
12115
+ rate_type: nil,
12116
+ term: nil,
12117
+ sort: nil,
12118
+ order: nil,
12119
+ limit: nil,
12120
+ offset: nil,
12121
+ request_options: nil
12122
+ )
12123
+ @transport.request(
12124
+ http_method: "GET",
12125
+ path: "/api/org/{orgId}/price-catalog/search",
12126
+ path_params: { "orgId" => org_id },
12127
+ query: {
12128
+ "q" => q,
12129
+ "pluginIds" => plugin_ids,
12130
+ "serviceIds" => service_ids,
12131
+ "families" => families,
12132
+ "region" => region,
12133
+ "area" => area,
12134
+ "minVcpus" => min_vcpus,
12135
+ "maxVcpus" => max_vcpus,
12136
+ "minMemoryGb" => min_memory_gb,
12137
+ "maxMemoryGb" => max_memory_gb,
12138
+ "gpu" => gpu,
12139
+ "gpuModel" => gpu_model,
12140
+ "minGpus" => min_gpus,
12141
+ "maxMonthlyPrice" => max_monthly_price,
12142
+ "rateType" => rate_type,
12143
+ "term" => term,
12144
+ "sort" => sort,
12145
+ "order" => order,
12146
+ "limit" => limit,
12147
+ "offset" => offset
12148
+ },
12149
+ request_options: request_options
12150
+ )
12151
+ end
12152
+ end
12153
+
11828
12154
  # `client.probes`
11829
12155
  class ProbesNamespace
11830
12156
  # @api private
@@ -17459,6 +17785,8 @@ module Infrawrench
17459
17785
  attr_reader :pages
17460
17786
  # @return [PostureNamespace] `client.posture`
17461
17787
  attr_reader :posture
17788
+ # @return [PriceCatalogNamespace] `client.price_catalog`
17789
+ attr_reader :price_catalog
17462
17790
  # @return [ProbesNamespace] `client.probes`
17463
17791
  attr_reader :probes
17464
17792
  # @return [ProfileNamespace] `client.profile`
@@ -17595,6 +17923,7 @@ module Infrawrench
17595
17923
  @ownership = OwnershipNamespace.new(@transport)
17596
17924
  @pages = PagesNamespace.new(@transport)
17597
17925
  @posture = PostureNamespace.new(@transport)
17926
+ @price_catalog = PriceCatalogNamespace.new(@transport)
17598
17927
  @probes = ProbesNamespace.new(@transport)
17599
17928
  @profile = ProfileNamespace.new(@transport)
17600
17929
  @query_monitors = QueryMonitorsNamespace.new(@transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.50.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.52.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.50.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.52.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.50.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.52.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.50.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.52.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.50.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.52.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.50.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.52.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.50.0"
18
+ VERSION = "1.52.0"
19
19
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.50.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.52.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.50.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.52.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.50.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v1.52.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.50.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.52.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1919,6 +1919,12 @@ module Infrawrench
1919
1919
  "forcePathStyle" => bool
1920
1920
  }
1921
1921
  | { "kind" => "http", "method" => "POST" | "PUT", "urlHint" => String }
1922
+ | {
1923
+ "kind" => "warehouse",
1924
+ "pluginId" => String,
1925
+ "accountId" => String,
1926
+ "target" => Hash[String, String]
1927
+ }
1922
1928
 
1923
1929
  # Spec schema: `CostExportFilter`.
1924
1930
  type cost_export_filter = {
@@ -2012,6 +2018,34 @@ module Infrawrench
2012
2018
  # Spec schema: `CostExportSchema`.
2013
2019
  type cost_export_schema = "native" | "focus-1.3"
2014
2020
 
2021
+ # Spec schema: `CostExportWarehouseOption`.
2022
+ type cost_export_warehouse_option = { "id" => String, "label" => String, ?"description" => String }
2023
+
2024
+ # Spec schema: `CostExportWarehouseSetup`.
2025
+ type cost_export_warehouse_setup = { "sql" => String, "notes" => Array[String] }
2026
+
2027
+ # Spec schema: `CostExportWarehouseSink`.
2028
+ type cost_export_warehouse_sink = {
2029
+ "pluginId" => String,
2030
+ "displayName" => String,
2031
+ "label" => String,
2032
+ "description" => String | nil,
2033
+ "targetFields" => Array[cost_export_warehouse_target_field],
2034
+ "accounts" => Array[{ "id" => String, "name" => String }]
2035
+ }
2036
+
2037
+ # Spec schema: `CostExportWarehouseTargetField`.
2038
+ type cost_export_warehouse_target_field = {
2039
+ "key" => String,
2040
+ "label" => String,
2041
+ "description" => String | nil,
2042
+ "dependsOn" => Array[String],
2043
+ "optional" => bool,
2044
+ "allowCustom" => bool,
2045
+ "placeholder" => String | nil,
2046
+ "emptyLabel" => String | nil
2047
+ }
2048
+
2015
2049
  # Spec schema: `CostFilter`.
2016
2050
  type cost_filter = {
2017
2051
  "dimension" => cost_dimension,
@@ -5481,6 +5515,148 @@ module Infrawrench
5481
5515
  # Spec schema: `PreflightRequest`.
5482
5516
  type preflight_request = { "pluginId" => String, "credentials" => Hash[String, String], ?"bastionId" => String | nil }
5483
5517
 
5518
+ # Coarse geography. A provider without the requested region is priced in its
5519
+ # first declared region in this area.
5520
+ #
5521
+ # Spec schema: `PriceCatalogArea`.
5522
+ type price_catalog_area = "north-america"
5523
+ | "south-america"
5524
+ | "europe"
5525
+ | "asia-pacific"
5526
+ | "middle-east"
5527
+ | "africa"
5528
+ | "oceania"
5529
+
5530
+ # Monthly amount in the org's display currency (converted at the org's stated
5531
+ # rate), or in the native currency when no display currency is configured;
5532
+ # null when there is no rate. Sorting and `maxMonthlyPrice` use it.
5533
+ #
5534
+ # Spec schema: `PriceCatalogComparable`.
5535
+ type price_catalog_comparable = { "amount" => Numeric, "currency" => String } | nil
5536
+
5537
+ # Spec schema: `PriceCatalogCompareProvider`.
5538
+ type price_catalog_compare_provider = {
5539
+ "pluginId" => plugin_id,
5540
+ "pluginName" => String,
5541
+ "region" => String | nil,
5542
+ "regionLabel" => String | nil,
5543
+ "state" => price_catalog_provider_state,
5544
+ "error" => String | nil,
5545
+ "best" => price_catalog_row & (Hash[String, untyped] | nil),
5546
+ "alternatives" => Array[price_catalog_row]
5547
+ }
5548
+
5549
+ # Spec schema: `PriceCatalogCompareResponse`.
5550
+ type price_catalog_compare_response = {
5551
+ "target" => price_catalog_compare_target,
5552
+ "reference" => price_catalog_row & (Hash[String, untyped] | nil),
5553
+ "area" => price_catalog_area,
5554
+ "rateType" => price_rate_type,
5555
+ "providers" => Array[price_catalog_compare_provider],
5556
+ "displayCurrency" => String | nil,
5557
+ "mixedCurrencies" => bool,
5558
+ "generatedAt" => String
5559
+ }
5560
+
5561
+ # Spec schema: `PriceCatalogCompareTarget`.
5562
+ type price_catalog_compare_target = {
5563
+ "vcpus" => Numeric | nil,
5564
+ "memoryGb" => Numeric | nil,
5565
+ "gpuCount" => Numeric | nil,
5566
+ "gpuModel" => String | nil
5567
+ }
5568
+
5569
+ # Spec schema: `PriceCatalogPrice`.
5570
+ type price_catalog_price = {
5571
+ "region" => String,
5572
+ "rateType" => price_rate_type,
5573
+ "unit" => "hour" | "month" | "gb-month",
5574
+ "amount" => Numeric,
5575
+ "currency" => String,
5576
+ ?"term" => String,
5577
+ ?"paymentOption" => String,
5578
+ ?"effectiveDate" => String
5579
+ }
5580
+
5581
+ # Spec schema: `PriceCatalogProductFamily`.
5582
+ type price_catalog_product_family = "compute" | "gpu" | "database" | "kubernetes-node" | "storage"
5583
+
5584
+ # `no-account`: the provider's price API needs credentials and the org has no
5585
+ # account on it. `loading`: the first fetch is still running, ask again
5586
+ # shortly.
5587
+ #
5588
+ # Spec schema: `PriceCatalogProviderState`.
5589
+ type price_catalog_provider_state = "ready" | "no-account" | "no-region" | "loading" | "error"
5590
+
5591
+ # Spec schema: `PriceCatalogProviderStatus`.
5592
+ type price_catalog_provider_status = {
5593
+ "pluginId" => plugin_id,
5594
+ "pluginName" => String,
5595
+ "requiresCredentials" => bool,
5596
+ "permission" => String | nil,
5597
+ "source" => { "name" => String, "url" => String },
5598
+ "refreshHours" => Numeric,
5599
+ "services" => Array[{ "id" => String, "label" => String, "family" => price_catalog_product_family }],
5600
+ "regions" => Array[{ "id" => String, "label" => String, "area" => price_catalog_area }],
5601
+ "state" => price_catalog_provider_state,
5602
+ "region" => String | nil,
5603
+ "error" => String | nil,
5604
+ "fetchedAt" => String | nil,
5605
+ "truncated" => bool
5606
+ }
5607
+
5608
+ # Spec schema: `PriceCatalogRow`.
5609
+ type price_catalog_row = {
5610
+ "pluginId" => plugin_id,
5611
+ "pluginName" => String,
5612
+ "serviceId" => String,
5613
+ "serviceLabel" => String,
5614
+ "sku" => String,
5615
+ "name" => String,
5616
+ "family" => price_catalog_product_family,
5617
+ "series" => String | nil,
5618
+ "specs" => price_catalog_specs,
5619
+ "region" => String,
5620
+ "regionLabel" => String,
5621
+ "price" => price_catalog_price,
5622
+ "monthlyAmount" => Numeric | nil,
5623
+ "comparable" => price_catalog_comparable,
5624
+ "otherPrices" => Array[price_catalog_price],
5625
+ "estimate" => { "resourceTypeId" => String, "fields" => Hash[String, String] } | nil
5626
+ }
5627
+
5628
+ # Spec schema: `PriceCatalogSearchResponse`.
5629
+ type price_catalog_search_response = {
5630
+ "rows" => Array[price_catalog_row],
5631
+ "total" => Integer,
5632
+ "offset" => Integer,
5633
+ "limit" => Integer,
5634
+ "area" => price_catalog_area,
5635
+ "rateType" => price_rate_type,
5636
+ "providers" => Array[price_catalog_provider_status],
5637
+ "displayCurrency" => String | nil,
5638
+ "currencies" => Array[String],
5639
+ "mixedCurrencies" => bool,
5640
+ "gpuModels" => Array[String],
5641
+ "generatedAt" => String
5642
+ }
5643
+
5644
+ # Spec schema: `PriceCatalogSpecs`.
5645
+ type price_catalog_specs = {
5646
+ ?"vcpus" => Numeric,
5647
+ ?"memoryGb" => Numeric,
5648
+ ?"gpuCount" => Numeric,
5649
+ ?"gpuModel" => String,
5650
+ ?"gpuMemoryGb" => Numeric,
5651
+ ?"storageGb" => Numeric,
5652
+ ?"storageType" => String,
5653
+ ?"architecture" => String,
5654
+ ?"network" => String
5655
+ }
5656
+
5657
+ # Spec schema: `PriceRateType`.
5658
+ type price_rate_type = "on-demand" | "spot" | "reserved" | "savings-plan"
5659
+
5484
5660
  # Spec schema: `ProbeMetricSeries`.
5485
5661
  type probe_metric_series = {
5486
5662
  "label" => String,
@@ -7703,6 +7879,7 @@ module Infrawrench
7703
7879
  | "probes"
7704
7880
  | "status-pages"
7705
7881
  | "quotas"
7882
+ | "price-catalog"
7706
7883
  | "incidents"
7707
7884
  | "workflows"
7708
7885
  | "deployments"
@@ -8385,6 +8562,9 @@ module Infrawrench
8385
8562
  def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[cost_export]
8386
8563
  def run: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_export_run_result
8387
8564
  def update: (id: String, body: cost_export_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_export
8565
+ def warehouse_options: (body: { "accountId" => String, "field" => String, ?"target" => Hash[String, String] }, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "options" => Array[cost_export_warehouse_option] }
8566
+ def warehouse_setup: (body: { "accountId" => String, ?"target" => Hash[String, String] }, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_export_warehouse_setup
8567
+ def warehouse_sinks: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "sinks" => Array[cost_export_warehouse_sink] }
8388
8568
  end
8389
8569
 
8390
8570
  class CostReportFoldersNamespace
@@ -8907,6 +9087,13 @@ module Infrawrench
8907
9087
  def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> posture_list_response
8908
9088
  end
8909
9089
 
9090
+ class PriceCatalogNamespace
9091
+ def initialize: (Transport) -> void
9092
+ def compare: (?org_id: String?, ?vcpus: String?, ?memory_gb: String?, ?gpu_count: String?, ?gpu_model: String?, ?reference_plugin_id: String?, ?reference_sku: String?, ?area: price_catalog_area?, ?rate_type: price_rate_type?, ?plugin_ids: String?, ?alternatives: String?, ?request_options: Hash[Symbol, untyped]?) -> price_catalog_compare_response
9093
+ def providers: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "providers" => Array[price_catalog_provider_status] }
9094
+ def search: (?org_id: String?, ?q: String?, ?plugin_ids: String?, ?service_ids: String?, ?families: String?, ?region: String?, ?area: price_catalog_area?, ?min_vcpus: String?, ?max_vcpus: String?, ?min_memory_gb: String?, ?max_memory_gb: String?, ?gpu: "any" | "required" | "none"?, ?gpu_model: String?, ?min_gpus: String?, ?max_monthly_price: String?, ?rate_type: price_rate_type?, ?term: String?, ?sort: "price" | "vcpus" | "memory" | "gpus" | "name"?, ?order: "asc" | "desc"?, ?limit: String?, ?offset: String?, ?request_options: Hash[Symbol, untyped]?) -> price_catalog_search_response
9095
+ end
9096
+
8910
9097
  class ProbesNamespace
8911
9098
  def initialize: (Transport) -> void
8912
9099
  def create: (?org_id: String?, ?body: synthetic_probe_create?, ?request_options: Hash[Symbol, untyped]?) -> synthetic_probe
@@ -9384,6 +9571,7 @@ module Infrawrench
9384
9571
  attr_reader ownership: OwnershipNamespace
9385
9572
  attr_reader pages: PagesNamespace
9386
9573
  attr_reader posture: PostureNamespace
9574
+ attr_reader price_catalog: PriceCatalogNamespace
9387
9575
  attr_reader probes: ProbesNamespace
9388
9576
  attr_reader profile: ProfileNamespace
9389
9577
  attr_reader query_monitors: QueryMonitorsNamespace
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.50.0
4
+ version: 1.52.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.50.0). Covers the published
14
+ description: Generated Ruby client for the Infrawrench API (v1.52.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.50.0).
61
+ summary: Generated Ruby client for the Infrawrench API (v1.52.0).
62
62
  test_files: []