infrawrench-sdk 1.87.0 → 1.89.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: 4100c2cc3d25e49015e4cf34903ba29eb44bc2cef006963788f229750aacf14e
4
- data.tar.gz: a8da964d28cf5fc6ce7d24e53f849e3422fef4591e2149d4c9558456453d8407
3
+ metadata.gz: 93f539fccce251de712d4097166cbe92c18f06f2c76a1b8244ff0bccce1ae1ce
4
+ data.tar.gz: 3b6f225d112fb550618e4fe1bd8ce8f6eb534fbd9d26cc3966c85b98c307bbcd
5
5
  SHA512:
6
- metadata.gz: a97621223e21a695f671b799caf39390674461f51b010a1c8aaba6729905f9353f8aa638d9be9a0e92ef3e6ab7d389f115b6a53a3357953e01830679ac7dadeb
7
- data.tar.gz: 55d9665772eab74166f5dc5eba737830b44b5ebf4e2667da5b62283f3b735b5968274c45463884b85b799af8d6d750dc027f217ea7e9729356896963eaf4b0f7
6
+ metadata.gz: 8a293883b04c14659973f39880fc53c521fc96a815440e768ffd81c8f57bfad98a91bf6b7c63382dabe32907082f89b28ad3f8dc07285da6d5615c26249af95a
7
+ data.tar.gz: efcf1262e4a89e83a13fefabe279cc8c26d8cab05e4be0af29af181d0666a1e00ad3d160d3c1c0e7e5da39143c39ac21e9ab6bfbdd4939d54a60eadd2c1b8ddd
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.87.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `1.89.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
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.87.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.89.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.87.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.89.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.87.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v1.87.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.89.0)."
21
+ spec.description = "Generated Ruby client for the Infrawrench API (v1.89.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.87.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.89.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.87.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.89.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -2917,44 +2917,16 @@ module Infrawrench
2917
2917
  @transport = transport
2918
2918
  end
2919
2919
 
2920
- # Run a read-only SQL query over AWS pricing data
2920
+ # Run a read-only SQL query over instance pricing data (deprecated path)
2921
2921
  #
2922
- # Runs one read-only ClickHouse statement against the AWS pricing warehouse:
2923
- # every instance type's specs and every price AWS has listed for it (on
2924
- # demand, reserved and EC2 spot), in every region, with history, for EC2,
2925
- # RDS, ElastiCache, OpenSearch, Redshift, DocumentDB, Neptune, MemoryDB,
2926
- # DAX, SageMaker, EMR and GameLift. It is the data behind
2927
- # instances.infrawrench.com. Needs no scope. Use `GET
2928
- # /api/v1/aws-pricing/schema` for the columns, or the tables below; filter
2929
- # `prices` on `platform` and `current`.
2930
- #
2931
- # - `prices`: Every price AWS has listed for an instance type, one row per
2932
- # period a price held. `current = true` (equivalently `valid_to IS NULL`) is
2933
- # the price on offer now; filter on it unless the question is about history.
2934
- # A product's price is identified by (platform, instance_type, region,
2935
- # pricing, lease, offering_class, purchase_option) plus its variant columns,
2936
- # so always fix the variant columns that matter for the platform (see the
2937
- # defaults in the notes) or you will mix e.g. Windows and Linux prices.
2938
- # - `instance_types`: One row per instance type per platform with its
2939
- # current specs. EC2 spot prices use the `ec2` rows. Specs AWS does not list
2940
- # are NULL or `''`; `attributes` has every attribute AWS publishes, as
2941
- # strings.
2942
- # - `attribute_changes`: History of instance attributes: the values each
2943
- # type was first listed with, then every change. Use it for questions like
2944
- # when a spec changed.
2945
- # - `regions`: Region codes and the names AWS gives them, per platform's
2946
- # price list. Use it to turn a city or country into a region code.
2947
- # - `sync_state`: When each bundle was loaded and which AWS price lists it
2948
- # covers; `max(price_list_to)` is how fresh the data is.
2949
- # - `service_events`: Every incident AWS posted on its public Health
2950
- # Dashboard (status page), 2008 to now: one row per event, with when it was
2951
- # posted, when AWS says the impact began and ended, and every update AWS
2952
- # wrote. Only events AWS chose to post publicly; account-specific issues
2953
- # never appear, so no event does not prove no impact. Use it for questions
2954
- # about outages, incidents and how reliable a service or region has been.
2922
+ # Deprecated alias of `POST /api/v1/instance-pricing/query`, its path before
2923
+ # the warehouse covered clouds other than AWS; it behaves identically. Use
2924
+ # the new path.
2955
2925
  #
2956
2926
  # POST /api/v1/aws-pricing/query
2957
2927
  #
2928
+ # Deprecated.
2929
+ #
2958
2930
  # Raises on 400: The query was refused: not read-only, more than one
2959
2931
  # statement, or ClickHouse's own error (unknown column, syntax), with its
2960
2932
  # message
@@ -2981,84 +2953,16 @@ module Infrawrench
2981
2953
  )
2982
2954
  end
2983
2955
 
2984
- # Describe the AWS pricing tables
2985
- #
2986
- # Every table and column of the AWS pricing warehouse with what it holds,
2987
- # the notes a correct query depends on, and how fresh each source is. Needs
2988
- # no scope.
2989
- #
2990
- # Tables:
2956
+ # Describe the instance pricing tables (deprecated path)
2991
2957
  #
2992
- # - `prices`: Every price AWS has listed for an instance type, one row per
2993
- # period a price held. `current = true` (equivalently `valid_to IS NULL`) is
2994
- # the price on offer now; filter on it unless the question is about history.
2995
- # A product's price is identified by (platform, instance_type, region,
2996
- # pricing, lease, offering_class, purchase_option) plus its variant columns,
2997
- # so always fix the variant columns that matter for the platform (see the
2998
- # defaults in the notes) or you will mix e.g. Windows and Linux prices.
2999
- # - `instance_types`: One row per instance type per platform with its
3000
- # current specs. EC2 spot prices use the `ec2` rows. Specs AWS does not list
3001
- # are NULL or `''`; `attributes` has every attribute AWS publishes, as
3002
- # strings.
3003
- # - `attribute_changes`: History of instance attributes: the values each
3004
- # type was first listed with, then every change. Use it for questions like
3005
- # when a spec changed.
3006
- # - `regions`: Region codes and the names AWS gives them, per platform's
3007
- # price list. Use it to turn a city or country into a region code.
3008
- # - `sync_state`: When each bundle was loaded and which AWS price lists it
3009
- # covers; `max(price_list_to)` is how fresh the data is.
3010
- # - `service_events`: Every incident AWS posted on its public Health
3011
- # Dashboard (status page), 2008 to now: one row per event, with when it was
3012
- # posted, when AWS says the impact began and ended, and every update AWS
3013
- # wrote. Only events AWS chose to post publicly; account-specific issues
3014
- # never appear, so no event does not prove no impact. Use it for questions
3015
- # about outages, incidents and how reliable a service or region has been.
3016
- #
3017
- # Notes:
3018
- #
3019
- # - All prices are USD. Timestamps are UTC DateTime.
3020
- # - Usual defaults when a question does not say otherwise: for ec2,
3021
- # operating_system = 'Linux', tenancy = 'Shared', pre_installed_sw = 'NA',
3022
- # capacity_status = 'Used', license_model = 'No License required' and
3023
- # pricing = 'on_demand'; for rds, deployment_option = 'Single-AZ', one
3024
- # database_engine (PostgreSQL if unsaid) and usage_type NOT LIKE '%Unused%'
3025
- # (those rows price unused capacity reservations); for elasticache and
3026
- # memorydb, cache_engine = 'Redis' (or 'Valkey') and usage_type =
3027
- # 'NodeUsage'; region us-east-1.
3028
- # - EC2 Windows: the price AWS quotes for Windows (license included) is
3029
- # license_model = 'No License required'. The `License Included -
3030
- # Infrastructure` and `Bring your own license` rows price only the compute,
3031
- # at the Linux rate, so never quote them as the Windows price unless the
3032
- # question is about bringing a license. Windows with SQL Server is
3033
- # pre_installed_sw = 'SQL Web', 'SQL Std' or 'SQL Ent'.
3034
- # - "Cheapest" means the lowest effective_hourly_usd among current rows.
3035
- # Hourly to monthly: x 730.
3036
- # - Spot rows (pricing = 'spot') only exist for ec2 with operating_system
3037
- # 'Linux' or 'Windows', and leave tenancy, license_model, pre_installed_sw
3038
- # and capacity_status as '': drop those ec2 defaults for spot (pricing =
3039
- # 'spot' OR (tenancy = 'Shared' AND ...)). A spot price is the lowest across
3040
- # the region's availability zones, as AWS's Spot pricing page shows it. Spot
3041
- # history starts 2026-08-03 with a price every hour (for the 17 main
3042
- # regions; the others and Local Zones start 2026-11-01), and has one every 6
3043
- # hours since 2026-11-01, so aggregate it (by day, say) rather than listing
3044
- # rows.
3045
- # - Reserved rows: an All Upfront term has hourly_usd = 0 and the whole cost
3046
- # in upfront_usd; compare reserved and on-demand on effective_hourly_usd.
3047
- # - Use instance_types for specs and to list types; join prices on
3048
- # (platform, instance_type) when you need specs it does not carry.
3049
- # - prices is large (millions of rows for ec2): always filter on platform
3050
- # and current (or a time range), and aggregate or LIMIT.
3051
- # - service_events is AWS's public status page history, not a measured
3052
- # uptime: AWS publishes no availability percentage. To estimate downtime,
3053
- # sum dateDiff('minute', impact_started_at, impact_ended_at) (fall back to
3054
- # posted_at and resolved_at when those are NULL) over events with severity
3055
- # 'degraded' or 'disrupted', and say that it covers only events AWS posted
3056
- # publicly. An event filed under `multipleservices` or another service can
3057
- # still have hit the one asked about: also match
3058
- # mapContains(impacted_services, '<service>-<region>').
2958
+ # Deprecated alias of `GET /api/v1/instance-pricing/schema`, its path before
2959
+ # the warehouse covered clouds other than AWS; it behaves identically. Use
2960
+ # the new path.
3059
2961
  #
3060
2962
  # GET /api/v1/aws-pricing/schema
3061
2963
  #
2964
+ # Deprecated.
2965
+ #
3062
2966
  # Raises on 401: Unauthenticated
3063
2967
  #
3064
2968
  # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
@@ -14752,6 +14656,245 @@ module Infrawrench
14752
14656
  end
14753
14657
  end
14754
14658
 
14659
+ # `client.instance_pricing`
14660
+ class InstancePricingNamespace
14661
+ # @api private
14662
+ # @param transport [Transport]
14663
+ def initialize(transport)
14664
+ @transport = transport
14665
+ end
14666
+
14667
+ # Run a read-only SQL query over instance pricing data
14668
+ #
14669
+ # Runs one read-only ClickHouse statement against the instance pricing
14670
+ # warehouse: every instance type's specs and every price its provider has
14671
+ # listed for it (on demand, committed terms and EC2 spot), in every region,
14672
+ # with history. It covers AWS EC2, RDS, ElastiCache, OpenSearch, Redshift,
14673
+ # DocumentDB, Neptune, MemoryDB, DAX, SageMaker, EMR and GameLift, RunPod
14674
+ # GPU types and CPU pods, Alibaba Cloud ECS, Azure virtual machines and
14675
+ # Google Cloud Compute Engine. It is the data behind
14676
+ # instances.infrawrench.com. Needs no scope. Use `GET
14677
+ # /api/v1/instance-pricing/schema` for the columns, or the tables below;
14678
+ # filter `prices` on `platform` and `current`.
14679
+ #
14680
+ # - `prices`: Every price the provider has listed for an instance type, one
14681
+ # row per period a price held. `current = true` (equivalently `valid_to IS
14682
+ # NULL`) is the price on offer now; filter on it unless the question is
14683
+ # about history. A product's price is identified by (platform,
14684
+ # instance_type, region, pricing, lease, offering_class, purchase_option)
14685
+ # plus its variant columns, so always fix the variant columns that matter
14686
+ # for the platform (see the defaults in the notes) or you will mix e.g.
14687
+ # Windows and Linux prices.
14688
+ # - `instance_types`: One row per instance type per platform with its
14689
+ # current specs. EC2 spot prices use the `ec2` rows. Specs the provider does
14690
+ # not list are NULL or `''`; `attributes` has every attribute it publishes,
14691
+ # as strings (AWS's price list keys, Alibaba's DescribeInstanceTypes fields
14692
+ # such as `CpuCoreCount` and `CpuOptions.ThreadsPerCore`, Azure's pricing
14693
+ # calculator fields such as `cores`, `ram` and `series`, Google Cloud's
14694
+ # Compute Engine machine type fields such as `guestCpus`, `memoryMb` and
14695
+ # `zones`, RunPod's GraphQL fields such as `maxGpuCountSecureCloud` and
14696
+ # `dataCenters`).
14697
+ # - `attribute_changes`: History of instance attributes: the values each
14698
+ # type was first listed with, then every change. Use it for questions like
14699
+ # when a spec changed.
14700
+ # - `regions`: Region codes and the names the provider gives them, per
14701
+ # source. Use it to turn a city or country into a region code. Codes repeat
14702
+ # across clouds (Alibaba also has `us-east-1`), so filter on source. Google
14703
+ # Cloud's names are the city, state or country from its regions page
14704
+ # (`Council Bluffs, Iowa` for us-central1).
14705
+ # - `sync_state`: When each bundle was loaded and which price lists it
14706
+ # covers; `max(price_list_to)` is how fresh the data is.
14707
+ # - `service_events`: Every incident AWS posted on its public Health
14708
+ # Dashboard (status page), 2008 to now: one row per event, with when it was
14709
+ # posted, when AWS says the impact began and ended, and every update AWS
14710
+ # wrote. Only events AWS chose to post publicly; account-specific issues
14711
+ # never appear, so no event does not prove no impact. Use it for questions
14712
+ # about outages, incidents and how reliable a service or region has been.
14713
+ #
14714
+ # POST /api/v1/instance-pricing/query
14715
+ #
14716
+ # Raises on 400: The query was refused: not read-only, more than one
14717
+ # statement, or ClickHouse's own error (unknown column, syntax), with its
14718
+ # message
14719
+ #
14720
+ # Raises on 401: Unauthenticated
14721
+ #
14722
+ # Raises on 502: The warehouse could not answer; try again shortly
14723
+ #
14724
+ # Raises on 503: A backing service this endpoint depends on is not available
14725
+ #
14726
+ # Raises on 504: The query ran longer than 30 seconds
14727
+ #
14728
+ # @param body [Hash] Request body, shaped as `AwsPricingQueryRequest`.
14729
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
14730
+ # @return [Hash] Parsed JSON, shaped as `AwsPricingQueryResult` — see
14731
+ # `sig/infrawrench/sdk.rbs`.
14732
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
14733
+ def query(body:, request_options: nil)
14734
+ @transport.request(
14735
+ http_method: "POST",
14736
+ path: "/api/v1/instance-pricing/query",
14737
+ body: body,
14738
+ request_options: request_options
14739
+ )
14740
+ end
14741
+
14742
+ # Describe the instance pricing tables
14743
+ #
14744
+ # Every table and column of the instance pricing warehouse with what it
14745
+ # holds, the notes a correct query depends on, and how fresh each source is.
14746
+ # Needs no scope.
14747
+ #
14748
+ # Tables:
14749
+ #
14750
+ # - `prices`: Every price the provider has listed for an instance type, one
14751
+ # row per period a price held. `current = true` (equivalently `valid_to IS
14752
+ # NULL`) is the price on offer now; filter on it unless the question is
14753
+ # about history. A product's price is identified by (platform,
14754
+ # instance_type, region, pricing, lease, offering_class, purchase_option)
14755
+ # plus its variant columns, so always fix the variant columns that matter
14756
+ # for the platform (see the defaults in the notes) or you will mix e.g.
14757
+ # Windows and Linux prices.
14758
+ # - `instance_types`: One row per instance type per platform with its
14759
+ # current specs. EC2 spot prices use the `ec2` rows. Specs the provider does
14760
+ # not list are NULL or `''`; `attributes` has every attribute it publishes,
14761
+ # as strings (AWS's price list keys, Alibaba's DescribeInstanceTypes fields
14762
+ # such as `CpuCoreCount` and `CpuOptions.ThreadsPerCore`, Azure's pricing
14763
+ # calculator fields such as `cores`, `ram` and `series`, Google Cloud's
14764
+ # Compute Engine machine type fields such as `guestCpus`, `memoryMb` and
14765
+ # `zones`, RunPod's GraphQL fields such as `maxGpuCountSecureCloud` and
14766
+ # `dataCenters`).
14767
+ # - `attribute_changes`: History of instance attributes: the values each
14768
+ # type was first listed with, then every change. Use it for questions like
14769
+ # when a spec changed.
14770
+ # - `regions`: Region codes and the names the provider gives them, per
14771
+ # source. Use it to turn a city or country into a region code. Codes repeat
14772
+ # across clouds (Alibaba also has `us-east-1`), so filter on source. Google
14773
+ # Cloud's names are the city, state or country from its regions page
14774
+ # (`Council Bluffs, Iowa` for us-central1).
14775
+ # - `sync_state`: When each bundle was loaded and which price lists it
14776
+ # covers; `max(price_list_to)` is how fresh the data is.
14777
+ # - `service_events`: Every incident AWS posted on its public Health
14778
+ # Dashboard (status page), 2008 to now: one row per event, with when it was
14779
+ # posted, when AWS says the impact began and ended, and every update AWS
14780
+ # wrote. Only events AWS chose to post publicly; account-specific issues
14781
+ # never appear, so no event does not prove no impact. Use it for questions
14782
+ # about outages, incidents and how reliable a service or region has been.
14783
+ #
14784
+ # Notes:
14785
+ #
14786
+ # - All prices are USD (Alibaba's from its international site). Timestamps
14787
+ # are UTC DateTime.
14788
+ # - Usual defaults when a question does not say otherwise: for ec2,
14789
+ # operating_system = 'Linux', tenancy = 'Shared', pre_installed_sw = 'NA',
14790
+ # capacity_status = 'Used', license_model = 'No License required' and
14791
+ # pricing = 'on_demand'; for rds, deployment_option = 'Single-AZ', one
14792
+ # database_engine (PostgreSQL if unsaid) and usage_type NOT LIKE '%Unused%'
14793
+ # (those rows price unused capacity reservations); for elasticache and
14794
+ # memorydb, cache_engine = 'Redis' (or 'Valkey') and usage_type =
14795
+ # 'NodeUsage'; region us-east-1.
14796
+ # - EC2 Windows: the price AWS quotes for Windows (license included) is
14797
+ # license_model = 'No License required'. The `License Included -
14798
+ # Infrastructure` and `Bring your own license` rows price only the compute,
14799
+ # at the Linux rate, so never quote them as the Windows price unless the
14800
+ # question is about bringing a license. Windows with SQL Server is
14801
+ # pre_installed_sw = 'SQL Web', 'SQL Std' or 'SQL Ent'.
14802
+ # - "Cheapest" means the lowest effective_hourly_usd among current rows.
14803
+ # Hourly to monthly: x 730.
14804
+ # - Spot rows (pricing = 'spot') only exist for ec2 with operating_system
14805
+ # 'Linux' or 'Windows', and leave tenancy, license_model, pre_installed_sw
14806
+ # and capacity_status as '': drop those ec2 defaults for spot (pricing =
14807
+ # 'spot' OR (tenancy = 'Shared' AND ...)). A spot price is the lowest across
14808
+ # the region's availability zones, as AWS's Spot pricing page shows it. Spot
14809
+ # history starts 2026-08-03 with a price every hour (for the 17 main
14810
+ # regions; the others and Local Zones start 2026-11-01), and has one every 6
14811
+ # hours since 2026-11-01, so aggregate it (by day, say) rather than listing
14812
+ # rows.
14813
+ # - Reserved rows: an All Upfront term has hourly_usd = 0 and the whole cost
14814
+ # in upfront_usd; compare reserved and on-demand on effective_hourly_usd.
14815
+ # - RunPod (platform = 'runpod'): GPU types are priced per GPU per hour
14816
+ # (size and family are '', gpus = 1, gpu_memory_gib is the GPU's memory) and
14817
+ # CPU pods per pod per hour; tell them apart with
14818
+ # attributes['productFamily'] ('GPU' or 'CPU') on instance_types. Every
14819
+ # price is region = 'global'; pick a cloud with variant['cloudType'] =
14820
+ # 'Secure Cloud' (the default) or 'Community Cloud' (cheaper, community
14821
+ # hosts). Savings plans are pricing = 'reserved', offering_class = 'Savings
14822
+ # Plan', lease '3mo' or '6mo', with hourly_usd the effective rate. Which
14823
+ # data centers stock a GPU is attributes['dataCenters'] (comma separated);
14824
+ # stock levels and spot prices are not included. History starts in November
14825
+ # 2026.
14826
+ # - Alibaba Cloud ECS (platform = 'alibaba'): default to operating_system =
14827
+ # 'Linux' and variant['networkType'] = 'VPC' (Classic is retired). on_demand
14828
+ # is pay-as-you-go. Subscriptions are offering_class = 'Subscription' (lease
14829
+ # '1mo' or '1yr' to '5yr', paid in full: hourly_usd = 0, upfront_usd the
14830
+ # price); reserved instances are offering_class = 'Reserved Instance' (lease
14831
+ # '1yr' or '3yr', with a purchase_option). Prices go back to May 2018; specs
14832
+ # (attributes) start in May 2023, so older retired types can have NULL vcpu
14833
+ # and memory_gib.
14834
+ # - Azure virtual machines (platform = 'azure'): default to operating_system
14835
+ # = 'Linux', variant['priority'] = 'Regular' and region 'eastus'. Spot and
14836
+ # Low Priority prices are on_demand rows with variant['priority'] = 'Spot'
14837
+ # or 'Low Priority', so always fix priority. Reservations are offering_class
14838
+ # = 'Reserved Instance', All Upfront (hourly_usd = 0, upfront_usd the whole
14839
+ # term), lease '1yr', '3yr' and for some sizes '5yr' or '10yr'; Azure lists
14840
+ # them under operating_system = 'Linux' only, since a Windows license is
14841
+ # billed on top. Savings plans are offering_class = 'Savings Plan', No
14842
+ # Upfront, '1yr' or '3yr', hourly_usd the plan's rate. Specs come from
14843
+ # Azure's pricing calculator (attributes 'cores', 'ram', 'diskSize', 'gpu',
14844
+ # 'series'); about a third of sizes, mostly the newest and retired series,
14845
+ # have none, so vcpu and memory_gib are NULL there: match on instance_type
14846
+ # or family (the series) for those. Dedicated hosts are not included.
14847
+ # valid_from is when Azure says a price took effect (back to 2017), but
14848
+ # changes are tracked from November 2026.
14849
+ # - Google Cloud Compute Engine (platform = 'gcp'): default to
14850
+ # variant['provisioningModel'] = 'Standard' and region 'us-central1'; Spot
14851
+ # prices are on_demand rows with provisioningModel = 'Spot'. Google bills
14852
+ # most machine types per vCPU and per GiB of memory at their series' rates,
14853
+ # plus their GPUs, so each price is worked out from those rates and the
14854
+ # machine type's shape. Prices leave out bundled Local SSD, OS licenses and
14855
+ # sustained use discounts, and TPU, X4, X5 and A4X machine types are not
14856
+ # included. Committed use discounts are offering_class = 'Committed Use', No
14857
+ # Upfront, '1yr' or '3yr', hourly_usd the commitment's rate. Which zones of
14858
+ # a region offer a machine type is attributes['zones'] (comma separated),
14859
+ # which differs by region: read it from attribute_changes for the region
14860
+ # (attribute = 'zones'), as instance_types holds one region's value. History
14861
+ # starts in November 2026.
14862
+ # - Comparing clouds: region codes are each provider's own, so join regions
14863
+ # on source as well as region and compare by location (Alibaba's us-east-1
14864
+ # is US (Virginia), the same area as AWS's us-east-1, Azure's eastus and
14865
+ # Google Cloud's us-east4). Compare on effective_hourly_usd for similar vcpu
14866
+ # and memory_gib, like for like (on demand against pay-as-you-go and
14867
+ # Standard; spot against Azure Spot and Google Spot), and say which cloud
14868
+ # each row is from.
14869
+ # - Use instance_types for specs and to list types; join prices on
14870
+ # (platform, instance_type) when you need specs it does not carry.
14871
+ # - prices is large (millions of rows for ec2): always filter on platform
14872
+ # and current (or a time range), and aggregate or LIMIT.
14873
+ # - service_events is AWS's public status page history, not a measured
14874
+ # uptime: AWS publishes no availability percentage. To estimate downtime,
14875
+ # sum dateDiff('minute', impact_started_at, impact_ended_at) (fall back to
14876
+ # posted_at and resolved_at when those are NULL) over events with severity
14877
+ # 'degraded' or 'disrupted', and say that it covers only events AWS posted
14878
+ # publicly. An event filed under `multipleservices` or another service can
14879
+ # still have hit the one asked about: also match
14880
+ # mapContains(impacted_services, '<service>-<region>').
14881
+ #
14882
+ # GET /api/v1/instance-pricing/schema
14883
+ #
14884
+ # Raises on 401: Unauthenticated
14885
+ #
14886
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
14887
+ # @return [Hash] Parsed JSON, shaped as `AwsPricingSchema` — see `sig/infrawrench/sdk.rbs`.
14888
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
14889
+ def schema(request_options: nil)
14890
+ @transport.request(
14891
+ http_method: "GET",
14892
+ path: "/api/v1/instance-pricing/schema",
14893
+ request_options: request_options
14894
+ )
14895
+ end
14896
+ end
14897
+
14755
14898
  # `client.invitations.by_token`
14756
14899
  class InvitationsByTokenNamespace
14757
14900
  # @api private
@@ -28250,6 +28393,8 @@ module Infrawrench
28250
28393
  attr_reader :idle_findings
28251
28394
  # @return [IncidentsNamespace] `client.incidents`
28252
28395
  attr_reader :incidents
28396
+ # @return [InstancePricingNamespace] `client.instance_pricing`
28397
+ attr_reader :instance_pricing
28253
28398
  # @return [InvitationsNamespace] `client.invitations`
28254
28399
  attr_reader :invitations
28255
28400
  # @return [InvoicesNamespace] `client.invoices`
@@ -28463,6 +28608,7 @@ module Infrawrench
28463
28608
  @iac = IacNamespace.new(@transport)
28464
28609
  @idle_findings = IdleFindingsNamespace.new(@transport)
28465
28610
  @incidents = IncidentsNamespace.new(@transport)
28611
+ @instance_pricing = InstancePricingNamespace.new(@transport)
28466
28612
  @invitations = InvitationsNamespace.new(@transport)
28467
28613
  @invoices = InvoicesNamespace.new(@transport)
28468
28614
  @issue_webhooks = IssueWebhooksNamespace.new(@transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.87.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.89.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.87.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.89.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.87.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.89.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.87.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.89.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.87.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.89.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.87.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.89.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.87.0"
18
+ VERSION = "1.89.0"
19
19
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.87.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.89.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.87.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.89.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.87.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v1.89.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.87.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.89.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -16026,6 +16026,12 @@ module Infrawrench
16026
16026
  def update: (incident_id: String, ?org_id: String?, ?body: incident_patch?, ?request_options: Hash[Symbol, untyped]?) -> incident
16027
16027
  end
16028
16028
 
16029
+ class InstancePricingNamespace
16030
+ def initialize: (Transport) -> void
16031
+ def query: (body: aws_pricing_query_request, ?request_options: Hash[Symbol, untyped]?) -> aws_pricing_query_result
16032
+ def schema: (?request_options: Hash[Symbol, untyped]?) -> aws_pricing_schema
16033
+ end
16034
+
16029
16035
  class InvitationsByTokenNamespace
16030
16036
  def initialize: (Transport) -> void
16031
16037
  def get: (token: String, ?request_options: Hash[Symbol, untyped]?) -> invitation_detail
@@ -17086,6 +17092,7 @@ module Infrawrench
17086
17092
  attr_reader iac: IacNamespace
17087
17093
  attr_reader idle_findings: IdleFindingsNamespace
17088
17094
  attr_reader incidents: IncidentsNamespace
17095
+ attr_reader instance_pricing: InstancePricingNamespace
17089
17096
  attr_reader invitations: InvitationsNamespace
17090
17097
  attr_reader invoices: InvoicesNamespace
17091
17098
  attr_reader issue_webhooks: IssueWebhooksNamespace
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.87.0
4
+ version: 1.89.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-11-02 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: Generated Ruby client for the Infrawrench API (v1.87.0). Covers the published
14
+ description: Generated Ruby client for the Infrawrench API (v1.89.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.87.0).
61
+ summary: Generated Ruby client for the Infrawrench API (v1.89.0).
62
62
  test_files: []