infrawrench-sdk 0.5.0 → 0.7.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: 2258ffa4110b2524dc4c2b02052189bd1617c1d2573b862cacb72fa0f50b6752
4
- data.tar.gz: '0059288397c24af7511302bb7c06ab78e0db66b48a31ce3249ebc3a42fc6e62b'
3
+ metadata.gz: 841b80b462e7fe64f59847149bbfb263bec1433564f7867e19d021c5328c569b
4
+ data.tar.gz: 01abef2509287b704641063578ff793faa9a4f2b63b179a5326107e652cbcb36
5
5
  SHA512:
6
- metadata.gz: 83e291e641d46a6694c143b2f88d77e99d75c9dd2809bc7a21e4cc506ee1d1a3bec52631f8c5763182c3593ee5e2a055a6b9ebab71a4341daf66b171ce7b1610
7
- data.tar.gz: '099ea408924a465b7370a68b9f1a76d2022a1b508ff291e0497bf65735d32a53db36d4d1ded0065e074bbec827291118325622c3f103eb7840400c14a7f7fcf7'
6
+ metadata.gz: 80aa321d91f01802ee431a175bab1a7658b9a2d9659373459ed47c944d27ae55fd19d46f93a146bda12e51ae865e36968e503215d409000f0c86490a2cf85d23
7
+ data.tar.gz: 8d70273720ea8348e4b7e3a21f82265734f56ab0d159c24eb244e43e8510e08fa2741fa5791eb52e6fc5853bfc6f7922da1f795e7cad5dd1c40320aeca70b8f2
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # infrawrench-sdk
2
2
 
3
- Generated Ruby client for the Infrawrench API (API version `0.5.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `0.7.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
- 187 schemas, as RBS type aliases that steep and TypeProf can read.
44
+ 194 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 v0.5.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.7.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 0.5.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.7.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 (v0.5.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v0.5.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 (v0.7.0)."
21
+ spec.description = "Generated Ruby client for the Infrawrench API (v0.7.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 v0.5.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.7.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 0.5.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.7.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -102,7 +102,7 @@ module Infrawrench
102
102
  # @param id [String]
103
103
  # @param type_id [String]
104
104
  # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
105
- # @return [Array<Hash>] Parsed JSON, shaped as `Array<Resource>` — see
105
+ # @return [Array<Hash>] Parsed JSON, shaped as `Array<SyncedResource>` — see
106
106
  # `sig/infrawrench/sdk.rbs`.
107
107
  # @raise [Infrawrench::ApiError] On any non-2xx response.
108
108
  def create(id:, type_id:, org_id: nil, request_options: nil)
@@ -1208,6 +1208,8 @@ module Infrawrench
1208
1208
  # Feeds the filter and group-by pickers. Pass dimension=tag-keys for tag
1209
1209
  # keys; dimension=tag requires tagKey.
1210
1210
  #
1211
+ # _Requires permission: `costs:read`._
1212
+ #
1211
1213
  # GET /api/org/{orgId}/costs/dimensions
1212
1214
  #
1213
1215
  # Raises on 400: Bad request
@@ -1237,6 +1239,8 @@ module Infrawrench
1237
1239
  # series per currency. Optionally returns a previous-period comparison and a
1238
1240
  # trend forecast.
1239
1241
  #
1242
+ # _Requires permission: `costs:read`._
1243
+ #
1240
1244
  # POST /api/org/{orgId}/costs/query
1241
1245
  #
1242
1246
  # Raises on 400: Bad request
@@ -1257,11 +1261,51 @@ module Infrawrench
1257
1261
  )
1258
1262
  end
1259
1263
 
1264
+ # Push cost rows from your own systems
1265
+ #
1266
+ # Reports spend Infrawrench has no provider plugin for — a parsed SaaS
1267
+ # invoice, an internal chargeback, a colo bill — into the same store the
1268
+ # provider collectors write to, so it appears in cost graphs, dimension
1269
+ # filters, and budgets alongside everything else.
1270
+ #
1271
+ # Rows are grouped under a caller-chosen `source`. Writes are idempotent per
1272
+ # `(source, day, service, region, resourceId, tags, currency)`: pushing the
1273
+ # same day again restates that day rather than adding to it, so a nightly
1274
+ # job can safely re-push a trailing window. Rows pushed under a source can
1275
+ # never overwrite rows a provider collector wrote.
1276
+ #
1277
+ # The whole batch is validated before anything is stored, so a 400 means
1278
+ # nothing was written.
1279
+ #
1280
+ # _Requires permission: `costs:write`._
1281
+ #
1282
+ # POST /api/org/{orgId}/costs/rows
1283
+ #
1284
+ # Raises on 400: Bad request
1285
+ #
1286
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1287
+ # constructed with.
1288
+ # @param body [Hash] Request body, shaped as `CostPushRequest`.
1289
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1290
+ # @return [Hash] Parsed JSON, shaped as `CostPushResponse` — see `sig/infrawrench/sdk.rbs`.
1291
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1292
+ def rows(body:, org_id: nil, request_options: nil)
1293
+ @transport.request(
1294
+ http_method: "POST",
1295
+ path: "/api/org/{orgId}/costs/rows",
1296
+ path_params: { "orgId" => org_id },
1297
+ body: body,
1298
+ request_options: request_options
1299
+ )
1300
+ end
1301
+
1260
1302
  # Per-account cost collection status
1261
1303
  #
1262
1304
  # Which accounts support cost collection, whether their history backfill has
1263
1305
  # completed, and the ingested date coverage.
1264
1306
  #
1307
+ # _Requires permission: `costs:read`._
1308
+ #
1265
1309
  # GET /api/org/{orgId}/costs/status
1266
1310
  #
1267
1311
  # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
@@ -2060,6 +2104,86 @@ module Infrawrench
2060
2104
  end
2061
2105
  end
2062
2106
 
2107
+ # `client.pages`
2108
+ class PagesNamespace
2109
+ # @api private
2110
+ # @param transport [Transport]
2111
+ def initialize(transport)
2112
+ @transport = transport
2113
+ end
2114
+
2115
+ # Raise an alert to the organization's on-call transports
2116
+ #
2117
+ # Fans an alert out over whatever the org has configured — Twilio SMS (and
2118
+ # voice on request), mobile push, Slack channels, and Microsoft Teams
2119
+ # webhooks — honouring each recipient's opt-ins. This is the same alert a
2120
+ # workflow raises with `infra.page(...)`, for code that runs somewhere
2121
+ # Infrawrench does not: a health check, a deploy script, a cron on a box.
2122
+ #
2123
+ # Repeat pages under the same `(source, key)` are **suppressed, not
2124
+ # rejected**: a monitor that fires every minute pages once and then gets
2125
+ # `200` with `suppressed: true` and the `retryAt` at which the key can page
2126
+ # again. A page that reached nobody does not start a cooldown, so the next
2127
+ # call tries again.
2128
+ #
2129
+ # Recipients opt in per channel under the same setting that covers workflow
2130
+ # pages.
2131
+ #
2132
+ # _Requires permission: `pages:write`._
2133
+ #
2134
+ # POST /api/org/{orgId}/pages
2135
+ #
2136
+ # Raises on 400: Bad request
2137
+ #
2138
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
2139
+ # constructed with.
2140
+ # @param body [Hash] Request body, shaped as `PageRequest`.
2141
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
2142
+ # @return [Hash] Parsed JSON, shaped as `PageResponse` — see `sig/infrawrench/sdk.rbs`.
2143
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
2144
+ def create(body:, org_id: nil, request_options: nil)
2145
+ @transport.request(
2146
+ http_method: "POST",
2147
+ path: "/api/org/{orgId}/pages",
2148
+ path_params: { "orgId" => org_id },
2149
+ body: body,
2150
+ request_options: request_options
2151
+ )
2152
+ end
2153
+
2154
+ # Clear a page key's cooldown
2155
+ #
2156
+ # Drops the cooldown for one `(source, key)` so the next page under it
2157
+ # delivers immediately. Call it when the condition you alerted on recovers —
2158
+ # the workflow equivalent is `infra.page.clear(key)`. Clearing a key that
2159
+ # was never paged is not an error.
2160
+ #
2161
+ # _Requires permission: `pages:write`._
2162
+ #
2163
+ # DELETE /api/org/{orgId}/pages
2164
+ #
2165
+ # Raises on 400: Bad request
2166
+ #
2167
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
2168
+ # constructed with.
2169
+ # @param source [String] Stable name for the system raising the page: letters, digits, `.`,
2170
+ # `_` and `-`. It is the notification's sender, and it scopes the cooldown — two services
2171
+ # paging under the same key never throttle each other.
2172
+ # @param key [String, nil] Defaults to `default`.
2173
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
2174
+ # @return [Hash] Parsed JSON, shaped as `PageClearResponse` — see `sig/infrawrench/sdk.rbs`.
2175
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
2176
+ def delete(source:, org_id: nil, key: nil, request_options: nil)
2177
+ @transport.request(
2178
+ http_method: "DELETE",
2179
+ path: "/api/org/{orgId}/pages",
2180
+ path_params: { "orgId" => org_id },
2181
+ query: { "source" => source, "key" => key },
2182
+ request_options: request_options
2183
+ )
2184
+ end
2185
+ end
2186
+
2063
2187
  # `client.profile.email_change`
2064
2188
  class ProfileEmailChangeNamespace
2065
2189
  # @api private
@@ -4424,6 +4548,8 @@ module Infrawrench
4424
4548
  attr_reader :msteams
4425
4549
  # @return [OrgsNamespace] `client.orgs`
4426
4550
  attr_reader :orgs
4551
+ # @return [PagesNamespace] `client.pages`
4552
+ attr_reader :pages
4427
4553
  # @return [ProfileNamespace] `client.profile`
4428
4554
  attr_reader :profile
4429
4555
  # @return [ResourcesNamespace] `client.resources`
@@ -4468,6 +4594,7 @@ module Infrawrench
4468
4594
  @kv = KvNamespace.new(@transport)
4469
4595
  @msteams = MsteamsNamespace.new(@transport)
4470
4596
  @orgs = OrgsNamespace.new(@transport)
4597
+ @pages = PagesNamespace.new(@transport)
4471
4598
  @profile = ProfileNamespace.new(@transport)
4472
4599
  @resources = ResourcesNamespace.new(@transport)
4473
4600
  @search = SearchNamespace.new(@transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v0.5.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.7.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 0.5.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.7.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 v0.5.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.7.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 0.5.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.7.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 v0.5.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.7.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 0.5.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.7.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 = "0.5.0"
18
+ VERSION = "0.7.0"
19
19
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v0.5.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.7.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 0.5.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.7.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 v0.5.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v0.7.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 0.5.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.7.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -329,7 +329,8 @@ module Infrawrench
329
329
  "resourceTypeId" => String,
330
330
  "pluginId" => String,
331
331
  "accountId" => String,
332
- ?"status" => status_dot
332
+ ?"status" => status_dot,
333
+ ?"fields" => json_object
333
334
  }
334
335
 
335
336
  # Spec schema: `ChildTypeRef`.
@@ -337,7 +338,8 @@ module Infrawrench
337
338
  "id" => String,
338
339
  "displayName" => String,
339
340
  ?"pluralDisplayName" => String,
340
- "supportsCreate" => bool
341
+ "supportsCreate" => bool,
342
+ ?"fields" => Array[json_object]
341
343
  }
342
344
 
343
345
  # Spec schema: `ConnectEnvDeployRequest`.
@@ -417,6 +419,12 @@ module Infrawrench
417
419
  ?"tagKey" => String
418
420
  }
419
421
 
422
+ # Spec schema: `CostPushRequest`.
423
+ type cost_push_request = { "source" => String, "rows" => Array[pushed_cost_row] }
424
+
425
+ # Spec schema: `CostPushResponse`.
426
+ type cost_push_response = { "written" => Integer }
427
+
420
428
  # Spec schema: `CostQueryRequest`.
421
429
  type cost_query_request = {
422
430
  "from" => String,
@@ -537,7 +545,7 @@ module Infrawrench
537
545
  "content" => String,
538
546
  "filename" => String,
539
547
  "mimeType" => String,
540
- ?"fields" => Hash[String, String],
548
+ ?"fields" => Array[{ "label" => String, "value" => String, ?"sensitive" => bool, ?"hint" => String }],
541
549
  ?"warning" => String
542
550
  }
543
551
 
@@ -562,8 +570,8 @@ module Infrawrench
562
570
  "id" => String,
563
571
  "label" => String,
564
572
  ?"description" => String,
565
- ?"fileExtension" => String,
566
- ?"mimeType" => String
573
+ "mediaType" => "json" | "text" | "ini" | "binary-base64",
574
+ ?"filenameTemplate" => String
567
575
  }
568
576
 
569
577
  # Spec schema: `Dashboard`.
@@ -791,7 +799,7 @@ module Infrawrench
791
799
  }
792
800
 
793
801
  # Spec schema: `LogsResponse`.
794
- type logs_response = { "lines" => Array[String], ?"nextPageToken" => String, ?"truncated" => bool }
802
+ type logs_response = { "text" => String, "containers" => Array[String], "activeContainer" => String }
795
803
 
796
804
  # Spec schema: `Manifest`.
797
805
  type manifest = { "manifest" => String }
@@ -808,7 +816,7 @@ module Infrawrench
808
816
  type metric_series = {
809
817
  "label" => String,
810
818
  ?"unit" => String,
811
- "points" => Array[{ "ts" => Numeric, "value" => Numeric }]
819
+ "points" => Array[{ "timestamp" => Numeric, "value" => Numeric }]
812
820
  }
813
821
 
814
822
  # Spec schema: `MetricsRequest`.
@@ -888,6 +896,30 @@ module Infrawrench
888
896
  # Spec schema: `OrganizationRole`.
889
897
  type organization_role = "owner" | "admin" | "member"
890
898
 
899
+ # Spec schema: `PageClearResponse`.
900
+ type page_clear_response = { "cleared" => bool }
901
+
902
+ # Spec schema: `PageRequest`.
903
+ type page_request = {
904
+ "source" => String,
905
+ "message" => String,
906
+ ?"title" => String,
907
+ ?"key" => String,
908
+ ?"cooldownMinutes" => Integer,
909
+ ?"voice" => bool
910
+ }
911
+
912
+ # Spec schema: `PageResponse`.
913
+ type page_response = {
914
+ "delivered" => bool,
915
+ "suppressed" => bool,
916
+ "sms" => Integer,
917
+ "push" => Integer,
918
+ "slack" => Integer,
919
+ "msTeams" => Integer,
920
+ ?"retryAt" => String
921
+ }
922
+
891
923
  # Spec schema: `PeerPane`.
892
924
  type peer_pane = peer_pane_stub & { "schema" => json_object }
893
925
 
@@ -915,6 +947,7 @@ module Infrawrench
915
947
  | "dashboards:read"
916
948
  | "dashboards:write"
917
949
  | "costs:read"
950
+ | "costs:write"
918
951
  | "budgets:read"
919
952
  | "budgets:write"
920
953
  | "audit:read"
@@ -932,6 +965,7 @@ module Infrawrench
932
965
  | "bastions:write"
933
966
  | "chat:read"
934
967
  | "chat:write"
968
+ | "pages:write"
935
969
  | "org:settings:write"
936
970
 
937
971
  # Spec schema: `PermissionCatalog`.
@@ -952,7 +986,8 @@ module Infrawrench
952
986
  type picker_resources_request = {
953
987
  "sources" => Array[{ "pluginId" => String, "resourceTypeId" => String, "outputKey" => String }],
954
988
  "accountId" => String,
955
- ?"regionHint" => String
989
+ ?"regionHint" => String,
990
+ ?"crossAccount" => bool
956
991
  }
957
992
 
958
993
  # Spec schema: `PinFull`.
@@ -1044,12 +1079,12 @@ module Infrawrench
1044
1079
 
1045
1080
  # Spec schema: `ProbeStatus`.
1046
1081
  type probe_status = {
1047
- "phase" => "ok" | "loading" | "error",
1082
+ "phase" => "ok" | "error",
1048
1083
  ?"error" => String,
1049
1084
  ?"stats" => Array[json_object],
1050
- ?"sparkline" => Array[{ "ts" => Numeric, "value" => Numeric }],
1085
+ ?"sparkline" => Array[{ "timestamp" => Numeric, "value" => Numeric }],
1051
1086
  ?"sparklineLabel" => String,
1052
- ?"resourceCounts" => Array[{ "typeId" => String, "count" => Integer }]
1087
+ ?"resourceCounts" => Array[{ "typeLabel" => String, "count" => Integer }]
1053
1088
  }
1054
1089
 
1055
1090
  # Spec schema: `Profile`.
@@ -1077,6 +1112,20 @@ module Infrawrench
1077
1112
  "createdAt" => String
1078
1113
  }
1079
1114
 
1115
+ # Spec schema: `PushedCostRow`.
1116
+ type pushed_cost_row = {
1117
+ "date" => String,
1118
+ "currency" => String,
1119
+ "amount" => Numeric,
1120
+ ?"service" => String,
1121
+ ?"region" => String,
1122
+ ?"resourceId" => String,
1123
+ ?"tags" => Hash[String, String],
1124
+ ?"usageAmount" => Numeric,
1125
+ ?"usageUnit" => String,
1126
+ ?"accountId" => String
1127
+ }
1128
+
1080
1129
  # Spec schema: `ReauthenticationRequired`.
1081
1130
  type reauthentication_required = { "error" => String, "code" => "reauthentication_required" }
1082
1131
 
@@ -1147,7 +1196,7 @@ module Infrawrench
1147
1196
  # Normalized status reported by a plugin's renderSidebarItem/renderDetail.
1148
1197
  #
1149
1198
  # Spec schema: `ResourceStatus`.
1150
- type resource_status = "healthy" | "warning" | "error" | "unknown" | "pending" | "stopped"
1199
+ type resource_status = "healthy" | "degraded" | "error" | "unknown" | "provisioning" | "info"
1151
1200
 
1152
1201
  # Resource type id. Note: not every plugin exposes every type — see the
1153
1202
  # plugin's `resourceTypes` for the valid (pluginId, typeId) pairs.
@@ -1546,7 +1595,13 @@ module Infrawrench
1546
1595
  }
1547
1596
 
1548
1597
  # Spec schema: `SecretVersion`.
1549
- type secret_version = { "id" => String, "state" => "ENABLED" | "DISABLED" | "DESTROYED", "createdAt" => String }
1598
+ type secret_version = {
1599
+ "id" => String,
1600
+ "state" => "enabled" | "disabled" | "destroyed",
1601
+ "createdAt" => String,
1602
+ ?"destroyedAt" => String,
1603
+ ?"isLatest" => bool
1604
+ }
1550
1605
 
1551
1606
  # Spec schema: `SecretVersionResponse`.
1552
1607
  type secret_version_response = { "version" => secret_version }
@@ -1561,7 +1616,14 @@ module Infrawrench
1561
1616
  type sftp_delete_request = sftp_list_request & { "isDir" => bool }
1562
1617
 
1563
1618
  # Spec schema: `SftpEntry`.
1564
- type sftp_entry = { "name" => String, "isDir" => bool, ?"size" => Integer, ?"modifiedAt" => String }
1619
+ type sftp_entry = {
1620
+ "key" => String,
1621
+ "name" => String,
1622
+ "size" => Numeric,
1623
+ "lastModified" => String,
1624
+ "isDirectory" => bool,
1625
+ ?"contentType" => String
1626
+ }
1565
1627
 
1566
1628
  # Spec schema: `SftpListRequest`.
1567
1629
  type sftp_list_request = {
@@ -1709,7 +1771,14 @@ module Infrawrench
1709
1771
  type storage_list_request = { "accountId" => String, "bucket" => String, "prefix" => String }
1710
1772
 
1711
1773
  # Spec schema: `StorageObject`.
1712
- type storage_object = { "key" => String, ?"size" => Integer, ?"isFolder" => bool, ?"lastModified" => String }
1774
+ type storage_object = {
1775
+ "key" => String,
1776
+ "name" => String,
1777
+ "size" => Numeric,
1778
+ "lastModified" => String,
1779
+ "isDirectory" => bool,
1780
+ ?"contentType" => String
1781
+ }
1713
1782
 
1714
1783
  # Spec schema: `StoragePathRequest`.
1715
1784
  type storage_path_request = { "accountId" => String, "bucket" => String, "key" => String }
@@ -1737,6 +1806,18 @@ module Infrawrench
1737
1806
  # Spec schema: `SyncResponse`.
1738
1807
  type sync_response = { "synced" => Integer }
1739
1808
 
1809
+ # Spec schema: `SyncedResource`.
1810
+ type synced_resource = {
1811
+ "id" => resource_id,
1812
+ "pluginId" => String,
1813
+ "resourceTypeId" => String,
1814
+ "displayName" => String,
1815
+ "externalId" => String | nil,
1816
+ "fieldsJson" => json_object,
1817
+ "outputsJson" => json_object,
1818
+ "parentResourceId" => resource_id & (String | nil)
1819
+ }
1820
+
1740
1821
  # Spec schema: `TabTarget`.
1741
1822
  type tab_target = {
1742
1823
  "kind" => "dashboard" | "account" | "resource" | "agents" | "costs" | "workflows" | "chat",
@@ -1817,7 +1898,7 @@ module Infrawrench
1817
1898
 
1818
1899
  class AccountsSyncTypeNamespace
1819
1900
  def initialize: (Transport) -> void
1820
- def create: (id: String, type_id: resource_type_id, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[resource]
1901
+ def create: (id: String, type_id: resource_type_id, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[synced_resource]
1821
1902
  end
1822
1903
 
1823
1904
  class AccountsNamespace
@@ -1921,6 +2002,7 @@ module Infrawrench
1921
2002
  def initialize: (Transport) -> void
1922
2003
  def dimensions: (dimension: "provider" | "account" | "service" | "region" | "resource" | "tag" | "tag-keys", ?org_id: String?, ?tag_key: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_dimension_values
1923
2004
  def query: (body: cost_query_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_query_response
2005
+ def rows: (body: cost_push_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_push_response
1924
2006
  def status: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "accounts" => Array[cost_account_status] }
1925
2007
  end
1926
2008
 
@@ -2001,6 +2083,12 @@ module Infrawrench
2001
2083
  def create: (body: create_org_request, ?request_options: Hash[Symbol, untyped]?) -> organization
2002
2084
  end
2003
2085
 
2086
+ class PagesNamespace
2087
+ def initialize: (Transport) -> void
2088
+ def create: (body: page_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> page_response
2089
+ def delete: (source: String, ?org_id: String?, ?key: String?, ?request_options: Hash[Symbol, untyped]?) -> page_clear_response
2090
+ end
2091
+
2004
2092
  class ProfileEmailChangeNamespace
2005
2093
  def initialize: (Transport) -> void
2006
2094
  def confirm: (?body: { "code" => String }?, ?request_options: Hash[Symbol, untyped]?) -> { "email" => String }
@@ -2192,6 +2280,7 @@ module Infrawrench
2192
2280
  attr_reader kv: KvNamespace
2193
2281
  attr_reader msteams: MsteamsNamespace
2194
2282
  attr_reader orgs: OrgsNamespace
2283
+ attr_reader pages: PagesNamespace
2195
2284
  attr_reader profile: ProfileNamespace
2196
2285
  attr_reader resources: ResourcesNamespace
2197
2286
  attr_reader search: SearchNamespace
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: 0.5.0
4
+ version: 0.7.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-07-27 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: Generated Ruby client for the Infrawrench API (v0.5.0). Covers the published
14
+ description: Generated Ruby client for the Infrawrench API (v0.7.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 (v0.5.0).
61
+ summary: Generated Ruby client for the Infrawrench API (v0.7.0).
62
62
  test_files: []