infrawrench-sdk 1.60.0 → 1.62.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: 556a352a9021aed9e685ed978754c3ff101ae2e612d0078d89dd739caec08a1a
4
- data.tar.gz: 3fcaae344285b5a84663210dbae2029c0b6eaa6e7b4e4affd465ff603311da51
3
+ metadata.gz: b6d3f0257a114595211cf176906366997598e9d06c8b54ce6de7aa6d408ab0a4
4
+ data.tar.gz: c2a2ed23d72b11ca28681aa3c5c339a47a3bcef33db48b97e141c3391fd25dae
5
5
  SHA512:
6
- metadata.gz: f95293d9e2352821f5c9d351e47972e2356c81226870e4a6de503f4dbf654fff4fb68a4f05b3576ef8e0e7cc5037a93be7b3f6dcfe5cfe4f739f789ad5aadf47
7
- data.tar.gz: 5e4cb57cdc55f36ff778c7f338e47ad85f70bcba11d8617ecf5768e8f2983a82b0d0fb7f511707706dedc38d8fc40caca954ed51ac5a14fe28448bd789e3497e
6
+ metadata.gz: 5e91dcefd0cbf55894b809029a87ef3899328521a8978171d34256828c8d7e478a10fd6c48222a21eee4ab9fe08ba9488340d54d72546026d93bbc0597a2d3e2
7
+ data.tar.gz: 75475f3d824638ebdedf7efd4cb9869b28928afa81b8c8986192fd37e009838fcb17c785067abf94d561fbcaa49a91c4de8b506035c6442c40ef04406ac5e85d
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.60.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `1.62.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
- 858 schemas, as RBS type aliases that steep and TypeProf can read.
44
+ 868 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.60.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.62.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.60.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.62.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.60.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v1.60.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.62.0)."
21
+ spec.description = "Generated Ruby client for the Infrawrench API (v1.62.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.60.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.62.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.60.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.62.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -7128,12 +7128,15 @@ module Infrawrench
7128
7128
  # List distinct values for a cost dimension
7129
7129
  #
7130
7130
  # Feeds the filter and group-by pickers. Pass dimension=tag-keys for tag
7131
- # keys, or dimension=usage-units for the usage units providers report (a
7132
- # usage budget's unit); dimension=tag requires tagKey. `charge_type` answers
7133
- # from the fixed set of charge types rather than from the stored data, so
7134
- # the picker is populated before any provider has reported one.
7135
- # `usage-units` lists the usage units present in the cost data, most common
7136
- # first, for the `usage` measure's unit picker.
7131
+ # keys, which follow the org's tag key settings (preferred keys first and
7132
+ # flagged, hidden keys omitted unless includeHidden=true),
7133
+ # dimension=virtual-tag-keys for the organization's virtual tag keys
7134
+ # (labelled by name), or dimension=usage-units for the usage units providers
7135
+ # report (a usage budget's unit); dimension=tag and dimension=virtual_tag
7136
+ # require tagKey. `charge_type` answers from the fixed set of charge types
7137
+ # rather than from the stored data, so the picker is populated before any
7138
+ # provider has reported one. `usage-units` lists the usage units present in
7139
+ # the cost data, most common first, for the `usage` measure's unit picker.
7137
7140
  #
7138
7141
  # _Requires permission: `costs:read`._
7139
7142
  #
@@ -7145,16 +7148,18 @@ module Infrawrench
7145
7148
  # constructed with.
7146
7149
  # @param dimension [String]
7147
7150
  # @param tag_key [String, nil]
7151
+ # @param include_hidden [String, nil] dimension=tag-keys only: also list keys the org hides,
7152
+ # flagged `hidden`.
7148
7153
  # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7149
7154
  # @return [Hash] Parsed JSON, shaped as `CostDimensionValues` — see
7150
7155
  # `sig/infrawrench/sdk.rbs`.
7151
7156
  # @raise [Infrawrench::ApiError] On any non-2xx response.
7152
- def dimensions(dimension:, org_id: nil, tag_key: nil, request_options: nil)
7157
+ def dimensions(dimension:, org_id: nil, tag_key: nil, include_hidden: nil, request_options: nil)
7153
7158
  @transport.request(
7154
7159
  http_method: "GET",
7155
7160
  path: "/api/org/{orgId}/costs/dimensions",
7156
7161
  path_params: { "orgId" => org_id },
7157
- query: { "dimension" => dimension, "tagKey" => tag_key },
7162
+ query: { "dimension" => dimension, "tagKey" => tag_key, "includeHidden" => include_hidden },
7158
7163
  request_options: request_options
7159
7164
  )
7160
7165
  end
@@ -18486,6 +18491,103 @@ module Infrawrench
18486
18491
  end
18487
18492
  end
18488
18493
 
18494
+ # `client.tag_keys.settings`
18495
+ class TagKeysSettingsNamespace
18496
+ # @api private
18497
+ # @param transport [Transport]
18498
+ def initialize(transport)
18499
+ @transport = transport
18500
+ end
18501
+
18502
+ # The org's hidden and preferred tag keys
18503
+ #
18504
+ # _Requires permission: `resources:read`._
18505
+ #
18506
+ # GET /api/org/{orgId}/tag-keys/settings
18507
+ #
18508
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
18509
+ # constructed with.
18510
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
18511
+ # @return [Hash] Parsed JSON, shaped as `TagKeySettings` — see `sig/infrawrench/sdk.rbs`.
18512
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
18513
+ def get(org_id: nil, request_options: nil)
18514
+ @transport.request(
18515
+ http_method: "GET",
18516
+ path: "/api/org/{orgId}/tag-keys/settings",
18517
+ path_params: { "orgId" => org_id },
18518
+ request_options: request_options
18519
+ )
18520
+ end
18521
+
18522
+ # Replace the org's hidden and preferred tag keys
18523
+ #
18524
+ # Applied to every tag-key listing the API serves (`GET
18525
+ # /costs/dimensions?dimension=tag-keys`, the metric alert selector options,
18526
+ # the MCP tools): preferred keys first, hidden keys omitted. A display
18527
+ # preference only; no stored data changes.
18528
+ #
18529
+ # _Requires permission: `org:settings:write`._
18530
+ #
18531
+ # PUT /api/org/{orgId}/tag-keys/settings
18532
+ #
18533
+ # Raises on 400: Bad request
18534
+ #
18535
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
18536
+ # constructed with.
18537
+ # @param body [Hash] Request body, shaped as `TagKeySettings`.
18538
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
18539
+ # @return [Hash] Parsed JSON, shaped as `TagKeySettings` — see `sig/infrawrench/sdk.rbs`.
18540
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
18541
+ def update(body:, org_id: nil, request_options: nil)
18542
+ @transport.request(
18543
+ http_method: "PUT",
18544
+ path: "/api/org/{orgId}/tag-keys/settings",
18545
+ path_params: { "orgId" => org_id },
18546
+ body: body,
18547
+ request_options: request_options
18548
+ )
18549
+ end
18550
+ end
18551
+
18552
+ # `client.tag_keys`
18553
+ class TagKeysNamespace
18554
+ # @return [TagKeysSettingsNamespace] `client.tag_keys.settings`
18555
+ attr_reader :settings
18556
+
18557
+ # @api private
18558
+ # @param transport [Transport]
18559
+ def initialize(transport)
18560
+ @transport = transport
18561
+ @settings = TagKeysSettingsNamespace.new(@transport)
18562
+ end
18563
+
18564
+ # Discovered tag keys with usage
18565
+ #
18566
+ # Every tag key the org's cost data (trailing 90 days) and resource
18567
+ # inventory carry, with the providers using it, row and resource counts, and
18568
+ # whether the tag key settings hide or pin it. Preferred keys first, then by
18569
+ # usage. Cost counts are included only when the caller also holds
18570
+ # `costs:read`.
18571
+ #
18572
+ # _Requires permission: `resources:read`._
18573
+ #
18574
+ # GET /api/org/{orgId}/tag-keys
18575
+ #
18576
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
18577
+ # constructed with.
18578
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
18579
+ # @return [Hash] Parsed JSON, shaped as `DiscoveredTagKeys` — see `sig/infrawrench/sdk.rbs`.
18580
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
18581
+ def get(org_id: nil, request_options: nil)
18582
+ @transport.request(
18583
+ http_method: "GET",
18584
+ path: "/api/org/{orgId}/tag-keys",
18585
+ path_params: { "orgId" => org_id },
18586
+ request_options: request_options
18587
+ )
18588
+ end
18589
+ end
18590
+
18489
18591
  # `client.tag_policy`
18490
18592
  class TagPolicyNamespace
18491
18593
  # @api private
@@ -18891,6 +18993,208 @@ module Infrawrench
18891
18993
  end
18892
18994
  end
18893
18995
 
18996
+ # `client.virtual_tags`
18997
+ class VirtualTagsNamespace
18998
+ # @api private
18999
+ # @param transport [Transport]
19000
+ def initialize(transport)
19001
+ @transport = transport
19002
+ end
19003
+
19004
+ # Create a virtual tag
19005
+ #
19006
+ # Queues the background evaluation over stored history at once.
19007
+ #
19008
+ # _Requires permission: `costs:write`._
19009
+ #
19010
+ # POST /api/org/{orgId}/virtual-tags
19011
+ #
19012
+ # Raises on 400: Bad request
19013
+ #
19014
+ # Raises on 409: Conflict
19015
+ #
19016
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
19017
+ # constructed with.
19018
+ # @param body [Hash] Request body, shaped as `VirtualTagInput`.
19019
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
19020
+ # @return [Hash] Parsed JSON, shaped as `VirtualTag` — see `sig/infrawrench/sdk.rbs`.
19021
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
19022
+ def create(body:, org_id: nil, request_options: nil)
19023
+ @transport.request(
19024
+ http_method: "POST",
19025
+ path: "/api/org/{orgId}/virtual-tags",
19026
+ path_params: { "orgId" => org_id },
19027
+ body: body,
19028
+ request_options: request_options
19029
+ )
19030
+ end
19031
+
19032
+ # Delete a virtual tag
19033
+ #
19034
+ # Refused with a 409 that names every saved filter, budget, report,
19035
+ # dashboard card, change alert, allocation rule, cost export or business
19036
+ # metric still referencing the key: deleting it would make those fail rather
19037
+ # than quietly widen to all spend.
19038
+ #
19039
+ # _Requires permission: `costs:write`._
19040
+ #
19041
+ # DELETE /api/org/{orgId}/virtual-tags/{id}
19042
+ #
19043
+ # Raises on 404: Not found
19044
+ #
19045
+ # Raises on 409: Conflict
19046
+ #
19047
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
19048
+ # constructed with.
19049
+ # @param id [String]
19050
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
19051
+ # @return [Hash] Parsed JSON, shaped as `Ok` — see `sig/infrawrench/sdk.rbs`.
19052
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
19053
+ def delete(id:, org_id: nil, request_options: nil)
19054
+ @transport.request(
19055
+ http_method: "DELETE",
19056
+ path: "/api/org/{orgId}/virtual-tags/{id}",
19057
+ path_params: { "orgId" => org_id, "id" => id },
19058
+ request_options: request_options
19059
+ )
19060
+ end
19061
+
19062
+ # Get a virtual tag
19063
+ #
19064
+ # _Requires permission: `costs:read`._
19065
+ #
19066
+ # GET /api/org/{orgId}/virtual-tags/{id}
19067
+ #
19068
+ # Raises on 404: Not found
19069
+ #
19070
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
19071
+ # constructed with.
19072
+ # @param id [String]
19073
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
19074
+ # @return [Hash] Parsed JSON, shaped as `VirtualTag` — see `sig/infrawrench/sdk.rbs`.
19075
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
19076
+ def get(id:, org_id: nil, request_options: nil)
19077
+ @transport.request(
19078
+ http_method: "GET",
19079
+ path: "/api/org/{orgId}/virtual-tags/{id}",
19080
+ path_params: { "orgId" => org_id, "id" => id },
19081
+ request_options: request_options
19082
+ )
19083
+ end
19084
+
19085
+ # List virtual tags
19086
+ #
19087
+ # Virtual tags are tags the organisation computes from its own ordered
19088
+ # rules: merge `env`/`Environment`/`ENV` into one key, assign values by any
19089
+ # cost filter, split shared spend by percentage or by a business metric,
19090
+ # with optional start and end dates per rule. They work as the `virtual_tag`
19091
+ # cost dimension everywhere a tag does.
19092
+ #
19093
+ # **They are computed at query time and never written into stored cost
19094
+ # data**, and splits are weighted so a total never changes.
19095
+ #
19096
+ # _Requires permission: `costs:read`._
19097
+ #
19098
+ # GET /api/org/{orgId}/virtual-tags
19099
+ #
19100
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
19101
+ # constructed with.
19102
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
19103
+ # @return [Array<Hash>] Parsed JSON, shaped as `Array<VirtualTag>` — see
19104
+ # `sig/infrawrench/sdk.rbs`.
19105
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
19106
+ def list(org_id: nil, request_options: nil)
19107
+ @transport.request(
19108
+ http_method: "GET",
19109
+ path: "/api/org/{orgId}/virtual-tags",
19110
+ path_params: { "orgId" => org_id },
19111
+ request_options: request_options
19112
+ )
19113
+ end
19114
+
19115
+ # Preview an unsaved virtual tag
19116
+ #
19117
+ # Evaluates a definition over the trailing 30 days without storing it: spend
19118
+ # per rule, unmatched spend and the top values. Validates exactly as a save
19119
+ # would.
19120
+ #
19121
+ # _Requires permission: `costs:read`._
19122
+ #
19123
+ # POST /api/org/{orgId}/virtual-tags/preview
19124
+ #
19125
+ # Raises on 400: Bad request
19126
+ #
19127
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
19128
+ # constructed with.
19129
+ # @param body [Hash] Request body, shaped as `VirtualTagInput`.
19130
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
19131
+ # @return [Hash] Parsed JSON, shaped as `VirtualTagStats & Hash` — see
19132
+ # `sig/infrawrench/sdk.rbs`.
19133
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
19134
+ def preview(body:, org_id: nil, request_options: nil)
19135
+ @transport.request(
19136
+ http_method: "POST",
19137
+ path: "/api/org/{orgId}/virtual-tags/preview",
19138
+ path_params: { "orgId" => org_id },
19139
+ body: body,
19140
+ request_options: request_options
19141
+ )
19142
+ end
19143
+
19144
+ # Re-run a virtual tag's evaluation
19145
+ #
19146
+ # _Requires permission: `costs:write`._
19147
+ #
19148
+ # POST /api/org/{orgId}/virtual-tags/{id}/reprocess
19149
+ #
19150
+ # Raises on 404: Not found
19151
+ #
19152
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
19153
+ # constructed with.
19154
+ # @param id [String]
19155
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
19156
+ # @return [Hash] Parsed JSON, shaped as `VirtualTag` — see `sig/infrawrench/sdk.rbs`.
19157
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
19158
+ def reprocess(id:, org_id: nil, request_options: nil)
19159
+ @transport.request(
19160
+ http_method: "POST",
19161
+ path: "/api/org/{orgId}/virtual-tags/{id}/reprocess",
19162
+ path_params: { "orgId" => org_id, "id" => id },
19163
+ request_options: request_options
19164
+ )
19165
+ end
19166
+
19167
+ # Update a virtual tag
19168
+ #
19169
+ # A full replace, rule order included. The key cannot change (400). Saving
19170
+ # re-queues the background evaluation.
19171
+ #
19172
+ # _Requires permission: `costs:write`._
19173
+ #
19174
+ # PUT /api/org/{orgId}/virtual-tags/{id}
19175
+ #
19176
+ # Raises on 400: Bad request
19177
+ #
19178
+ # Raises on 404: Not found
19179
+ #
19180
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
19181
+ # constructed with.
19182
+ # @param id [String]
19183
+ # @param body [Hash] Request body, shaped as `VirtualTagInput`.
19184
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
19185
+ # @return [Hash] Parsed JSON, shaped as `VirtualTag` — see `sig/infrawrench/sdk.rbs`.
19186
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
19187
+ def update(id:, body:, org_id: nil, request_options: nil)
19188
+ @transport.request(
19189
+ http_method: "PUT",
19190
+ path: "/api/org/{orgId}/virtual-tags/{id}",
19191
+ path_params: { "orgId" => org_id, "id" => id },
19192
+ body: body,
19193
+ request_options: request_options
19194
+ )
19195
+ end
19196
+ end
19197
+
18894
19198
  # `client.wallboard`
18895
19199
  class WallboardNamespace
18896
19200
  # @api private
@@ -19598,10 +19902,14 @@ module Infrawrench
19598
19902
  attr_reader :status_pages
19599
19903
  # @return [StorageNamespace] `client.storage`
19600
19904
  attr_reader :storage
19905
+ # @return [TagKeysNamespace] `client.tag_keys`
19906
+ attr_reader :tag_keys
19601
19907
  # @return [TagPolicyNamespace] `client.tag_policy`
19602
19908
  attr_reader :tag_policy
19603
19909
  # @return [TeamNamespace] `client.team`
19604
19910
  attr_reader :team
19911
+ # @return [VirtualTagsNamespace] `client.virtual_tags`
19912
+ attr_reader :virtual_tags
19605
19913
  # @return [WallboardNamespace] `client.wallboard`
19606
19914
  attr_reader :wallboard
19607
19915
  # @return [WorkflowApprovalsNamespace] `client.workflow_approvals`
@@ -19716,8 +20024,10 @@ module Infrawrench
19716
20024
  @status_incidents = StatusIncidentsNamespace.new(@transport)
19717
20025
  @status_pages = StatusPagesNamespace.new(@transport)
19718
20026
  @storage = StorageNamespace.new(@transport)
20027
+ @tag_keys = TagKeysNamespace.new(@transport)
19719
20028
  @tag_policy = TagPolicyNamespace.new(@transport)
19720
20029
  @team = TeamNamespace.new(@transport)
20030
+ @virtual_tags = VirtualTagsNamespace.new(@transport)
19721
20031
  @wallboard = WallboardNamespace.new(@transport)
19722
20032
  @workflow_approvals = WorkflowApprovalsNamespace.new(@transport)
19723
20033
  @workflow_secrets = WorkflowSecretsNamespace.new(@transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.60.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.62.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.60.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.62.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.60.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.62.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.60.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.62.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.60.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.62.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.60.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.62.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.60.0"
18
+ VERSION = "1.62.0"
19
19
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.60.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.62.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.60.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.62.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.60.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v1.62.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.60.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.62.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -676,7 +676,9 @@ module Infrawrench
676
676
  ?"tagValue" => String,
677
677
  ?"accountId" => String,
678
678
  ?"pluginId" => String,
679
- ?"service" => String
679
+ ?"service" => String,
680
+ ?"virtualTagKey" => String,
681
+ ?"virtualTagValue" => String
680
682
  }
681
683
 
682
684
  # Spec schema: `ApiKey`.
@@ -1095,7 +1097,8 @@ module Infrawrench
1095
1097
  | "resource"
1096
1098
  | "tag"
1097
1099
  | "charge_type"
1098
- | "commitment",
1100
+ | "commitment"
1101
+ | "virtual_tag",
1099
1102
  "op" => "in" | "not_in",
1100
1103
  "values" => Array[String],
1101
1104
  ?"tagKey" => String
@@ -1383,7 +1386,8 @@ module Infrawrench
1383
1386
  | "resource"
1384
1387
  | "tag"
1385
1388
  | "charge_type"
1386
- | "commitment",
1389
+ | "commitment"
1390
+ | "virtual_tag",
1387
1391
  "op" => "in" | "not_in",
1388
1392
  "values" => Array[String],
1389
1393
  ?"tagKey" => String
@@ -1994,6 +1998,7 @@ module Infrawrench
1994
1998
  | "tag"
1995
1999
  | "charge_type"
1996
2000
  | "commitment"
2001
+ | "virtual_tag"
1997
2002
  | nil,
1998
2003
  "groupByTagKey" => String | nil,
1999
2004
  "cadence" => cost_change_cadence,
@@ -2036,7 +2041,8 @@ module Infrawrench
2036
2041
  | "resource"
2037
2042
  | "tag"
2038
2043
  | "charge_type"
2039
- | "commitment",
2044
+ | "commitment"
2045
+ | "virtual_tag",
2040
2046
  "op" => "in" | "not_in",
2041
2047
  "values" => Array[String],
2042
2048
  ?"tagKey" => String
@@ -2054,6 +2060,7 @@ module Infrawrench
2054
2060
  | "tag"
2055
2061
  | "charge_type"
2056
2062
  | "commitment"
2063
+ | "virtual_tag"
2057
2064
  | nil,
2058
2065
  ?"groupByTagKey" => String,
2059
2066
  "cadence" => cost_change_cadence,
@@ -2324,9 +2331,12 @@ module Infrawrench
2324
2331
  | "tag"
2325
2332
  | "charge_type"
2326
2333
  | "commitment"
2334
+ | "virtual_tag"
2327
2335
 
2328
2336
  # Spec schema: `CostDimensionValues`.
2329
- type cost_dimension_values = { "values" => Array[String | { "value" => String, "label" => String }] }
2337
+ type cost_dimension_values = {
2338
+ "values" => Array[String | { "value" => String, "label" => String, ?"preferred" => bool, ?"hidden" => bool }]
2339
+ }
2330
2340
 
2331
2341
  # Spec schema: `CostEfficiencySettings`.
2332
2342
  type cost_efficiency_settings = {
@@ -2426,7 +2436,8 @@ module Infrawrench
2426
2436
  | "resource"
2427
2437
  | "tag"
2428
2438
  | "charge_type"
2429
- | "commitment",
2439
+ | "commitment"
2440
+ | "virtual_tag",
2430
2441
  "op" => "in" | "not_in",
2431
2442
  "values" => Array[String],
2432
2443
  ?"tagKey" => String
@@ -2473,8 +2484,10 @@ module Infrawrench
2473
2484
  | "resource"
2474
2485
  | "tag"
2475
2486
  | "charge_type"
2476
- | "commitment"],
2487
+ | "commitment"
2488
+ | "virtual_tag"],
2477
2489
  "tagKeys" => Array[String],
2490
+ ?"virtualTagKeys" => Array[String],
2478
2491
  "filters" => Array[cost_export_filter],
2479
2492
  ?"chargeTypes" => Array["usage"
2480
2493
  | "commitment_covered_usage"
@@ -2562,7 +2575,8 @@ module Infrawrench
2562
2575
  | "resource"
2563
2576
  | "tag"
2564
2577
  | "charge_type"
2565
- | "commitment",
2578
+ | "commitment"
2579
+ | "virtual_tag",
2566
2580
  ?"groupByTagKey" => String,
2567
2581
  ?"filters" => Array[cost_report_filter],
2568
2582
  ?"savedFilterId" => String,
@@ -2607,7 +2621,8 @@ module Infrawrench
2607
2621
  | "resource"
2608
2622
  | "tag"
2609
2623
  | "charge_type"
2610
- | "commitment",
2624
+ | "commitment"
2625
+ | "virtual_tag",
2611
2626
  ?"groupByTagKey" => String,
2612
2627
  ?"filters" => Array[cost_filter],
2613
2628
  ?"query" => String,
@@ -2668,7 +2683,8 @@ module Infrawrench
2668
2683
  | "resource"
2669
2684
  | "tag"
2670
2685
  | "charge_type"
2671
- | "commitment",
2686
+ | "commitment"
2687
+ | "virtual_tag",
2672
2688
  "op" => "in" | "not_in",
2673
2689
  "values" => Array[String],
2674
2690
  ?"tagKey" => String
@@ -2783,7 +2799,8 @@ module Infrawrench
2783
2799
  | "resource"
2784
2800
  | "tag"
2785
2801
  | "charge_type"
2786
- | "commitment",
2802
+ | "commitment"
2803
+ | "virtual_tag",
2787
2804
  "op" => "in" | "not_in",
2788
2805
  "values" => Array[String],
2789
2806
  ?"tagKey" => String
@@ -3551,6 +3568,28 @@ module Infrawrench
3551
3568
  # Spec schema: `DiscountTreatment`.
3552
3569
  type discount_treatment = { "mode" => "pass_through" | "partial" | "retain", ?"passThroughPercent" => Numeric | nil }
3553
3570
 
3571
+ # Spec schema: `DiscoveredTagKey`.
3572
+ type discovered_tag_key = {
3573
+ "key" => String,
3574
+ "providers" => Array[String],
3575
+ "sources" => Array["costs" | "resources"],
3576
+ "costRowCount" => Integer,
3577
+ "costResourceCount" => Integer,
3578
+ "inventoryCount" => Integer,
3579
+ "lastSeen" => String | nil,
3580
+ "hidden" => bool,
3581
+ "hiddenBy" => String | nil,
3582
+ "preferred" => bool
3583
+ }
3584
+
3585
+ # Spec schema: `DiscoveredTagKeys`.
3586
+ type discovered_tag_keys = {
3587
+ "keys" => Array[discovered_tag_key],
3588
+ "settings" => tag_key_settings,
3589
+ "lookbackDays" => Integer,
3590
+ "truncated" => bool
3591
+ }
3592
+
3554
3593
  # Spec schema: `DismissedAccessFinding`.
3555
3594
  type dismissed_access_finding = {
3556
3595
  "resourceId" => String,
@@ -5214,7 +5253,8 @@ module Infrawrench
5214
5253
  # Spec schema: `MetricAlertSelectorOptions`.
5215
5254
  type metric_alert_selector_options = {
5216
5255
  "plugins" => Array[{ "pluginId" => String, "resourceTypeIds" => Array[String] }],
5217
- "tagKeys" => Array[String]
5256
+ "tagKeys" => Array[String],
5257
+ "preferredTagKeys" => Array[String]
5218
5258
  }
5219
5259
 
5220
5260
  # Spec schema: `MetricAlertSelectorPreview`.
@@ -8032,7 +8072,8 @@ module Infrawrench
8032
8072
  | "resource"
8033
8073
  | "tag"
8034
8074
  | "charge_type"
8035
- | "commitment",
8075
+ | "commitment"
8076
+ | "virtual_tag",
8036
8077
  "op" => "in" | "not_in",
8037
8078
  "values" => Array[String],
8038
8079
  ?"tagKey" => String
@@ -8806,6 +8847,9 @@ module Infrawrench
8806
8847
  # Spec schema: `TagComplianceReport`.
8807
8848
  type tag_compliance_report = { "policy" => tag_policy, "accounts" => Array[account_tag_compliance] }
8808
8849
 
8850
+ # Spec schema: `TagKeySettings`.
8851
+ type tag_key_settings = { "hidden" => Array[String], "preferred" => Array[String] }
8852
+
8809
8853
  # Spec schema: `TagPolicy`.
8810
8854
  type tag_policy = { "requiredTags" => Array[required_tag], "enforceOnCreate" => bool }
8811
8855
 
@@ -8982,6 +9026,72 @@ module Infrawrench
8982
9026
  # Spec schema: `ValidateTabsResponse`.
8983
9027
  type validate_tabs_response = { "validTabIds" => Array[String] }
8984
9028
 
9029
+ # Spec schema: `VirtualTag`.
9030
+ type virtual_tag = {
9031
+ "id" => String,
9032
+ "key" => String,
9033
+ "name" => String,
9034
+ "description" => String | nil,
9035
+ "defaultValue" => String | nil,
9036
+ "rules" => Array[virtual_tag_rule],
9037
+ "status" => {
9038
+ "state" => "pending" | "processing" | "ready" | "failed",
9039
+ "processedAt" => String | nil,
9040
+ "error" => String | nil,
9041
+ "stats" => virtual_tag_stats
9042
+ },
9043
+ "createdByUserId" => String | nil,
9044
+ "createdAt" => String,
9045
+ "updatedAt" => String
9046
+ }
9047
+
9048
+ # Spec schema: `VirtualTagAllocation`.
9049
+ type virtual_tag_allocation = { "value" => String, ?"percent" => Numeric | nil, ?"metricId" => String | nil }
9050
+
9051
+ # Spec schema: `VirtualTagCurrencyStats`.
9052
+ type virtual_tag_currency_stats = {
9053
+ "currency" => String,
9054
+ "total" => Numeric,
9055
+ "unmatched" => Numeric,
9056
+ "byRule" => Array[Numeric],
9057
+ "topValues" => Array[{ "value" => String, "amount" => Numeric }]
9058
+ }
9059
+
9060
+ # Spec schema: `VirtualTagInput`.
9061
+ type virtual_tag_input = {
9062
+ "key" => String,
9063
+ "name" => String,
9064
+ ?"description" => String | nil,
9065
+ ?"defaultValue" => String | nil,
9066
+ "rules" => Array[virtual_tag_rule]
9067
+ }
9068
+
9069
+ # Spec schema: `VirtualTagRule`.
9070
+ type virtual_tag_rule = {
9071
+ ?"query" => String,
9072
+ ?"description" => String | nil,
9073
+ ?"startsOn" => String | nil,
9074
+ ?"endsOn" => String | nil,
9075
+ "kind" => "value" | "tag" | "split" | "metric_split",
9076
+ ?"value" => String | nil,
9077
+ ?"sources" => Array[virtual_tag_source],
9078
+ ?"valueTransform" => "none" | "lower" | "upper",
9079
+ ?"allocations" => Array[virtual_tag_allocation]
9080
+ }
9081
+
9082
+ # Spec schema: `VirtualTagSource`.
9083
+ type virtual_tag_source = { "tagKey" => String, ?"valuePrefix" => String | nil, ?"query" => String | nil }
9084
+
9085
+ # Spec schema: `VirtualTagStats`.
9086
+ type virtual_tag_stats = {
9087
+ "from" => String | nil,
9088
+ "to" => String | nil,
9089
+ "currencies" => Array[virtual_tag_currency_stats],
9090
+ "metricFallbackDays" => Integer,
9091
+ "distinctValues" => Integer
9092
+ }
9093
+ | nil
9094
+
8985
9095
  # Spec schema: `WallboardFailureLine`.
8986
9096
  type wallboard_failure_line = { "id" => String, "label" => String, "detail" => String, "since" => String | nil }
8987
9097
 
@@ -9622,7 +9732,7 @@ module Infrawrench
9622
9732
  attr_reader anomaly_settings: CostsAnomalySettingsNamespace
9623
9733
  attr_reader efficiency_alert_settings: CostsEfficiencyAlertSettingsNamespace
9624
9734
  def initialize: (Transport) -> void
9625
- def dimensions: (dimension: "provider" | "account" | "service" | "region" | "resource" | "tag" | "charge_type" | "commitment" | "tag-keys" | "usage-units", ?org_id: String?, ?tag_key: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_dimension_values
9735
+ def dimensions: (dimension: "provider" | "account" | "service" | "region" | "resource" | "tag" | "charge_type" | "commitment" | "virtual_tag" | "tag-keys" | "usage-units" | "virtual-tag-keys", ?org_id: String?, ?tag_key: String?, ?include_hidden: "true" | "false"?, ?request_options: Hash[Symbol, untyped]?) -> cost_dimension_values
9626
9736
  def efficiency_alerts: (?org_id: String?, ?kind: "commitment_expiry" | "commitment_idle" | "unit_cost_regression"?, ?limit: Integer?, ?request_options: Hash[Symbol, untyped]?) -> { "events" => Array[efficiency_alert_event] }
9627
9737
  def focus_export: (body: focus_export_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> String
9628
9738
  def query: (body: cost_query_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_query_response
@@ -10431,6 +10541,18 @@ module Infrawrench
10431
10541
  def upload: (body: storage_upload_form, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
10432
10542
  end
10433
10543
 
10544
+ class TagKeysSettingsNamespace
10545
+ def initialize: (Transport) -> void
10546
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> tag_key_settings
10547
+ def update: (body: tag_key_settings, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> tag_key_settings
10548
+ end
10549
+
10550
+ class TagKeysNamespace
10551
+ attr_reader settings: TagKeysSettingsNamespace
10552
+ def initialize: (Transport) -> void
10553
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> discovered_tag_keys
10554
+ end
10555
+
10434
10556
  class TagPolicyNamespace
10435
10557
  def initialize: (Transport) -> void
10436
10558
  def compliance: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> tag_compliance_report
@@ -10469,6 +10591,17 @@ module Infrawrench
10469
10591
  def permissions: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> permission_catalog
10470
10592
  end
10471
10593
 
10594
+ class VirtualTagsNamespace
10595
+ def initialize: (Transport) -> void
10596
+ def create: (body: virtual_tag_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> virtual_tag
10597
+ def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
10598
+ def get: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> virtual_tag
10599
+ def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[virtual_tag]
10600
+ def preview: (body: virtual_tag_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> (virtual_tag_stats & Hash[String, untyped])
10601
+ def reprocess: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> virtual_tag
10602
+ def update: (id: String, body: virtual_tag_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> virtual_tag
10603
+ end
10604
+
10472
10605
  class WallboardNamespace
10473
10606
  def initialize: (Transport) -> void
10474
10607
  def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> wallboard_response
@@ -10612,8 +10745,10 @@ module Infrawrench
10612
10745
  attr_reader status_incidents: StatusIncidentsNamespace
10613
10746
  attr_reader status_pages: StatusPagesNamespace
10614
10747
  attr_reader storage: StorageNamespace
10748
+ attr_reader tag_keys: TagKeysNamespace
10615
10749
  attr_reader tag_policy: TagPolicyNamespace
10616
10750
  attr_reader team: TeamNamespace
10751
+ attr_reader virtual_tags: VirtualTagsNamespace
10617
10752
  attr_reader wallboard: WallboardNamespace
10618
10753
  attr_reader workflow_approvals: WorkflowApprovalsNamespace
10619
10754
  attr_reader workflow_secrets: WorkflowSecretsNamespace
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.60.0
4
+ version: 1.62.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.60.0). Covers the published
14
+ description: Generated Ruby client for the Infrawrench API (v1.62.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.60.0).
61
+ summary: Generated Ruby client for the Infrawrench API (v1.62.0).
62
62
  test_files: []