infrawrench-sdk 1.57.0 → 1.59.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: fc2d8358586c5a9a7c2377bf754a59ce738b29ebb2d98addd4a447d6de6158b9
4
- data.tar.gz: 5111a97d76595cc9ecca3b86c0ce30107d6dc0b8f78d4afde485eaa9fc2130ec
3
+ metadata.gz: d824fc0e3c0eae4b687339a75c16c71fa2922ad4e594fae5934a3be54da5d020
4
+ data.tar.gz: 632f687c16d8885da2b2b1a8c5dafa29222c1b005a6ceb9f42174465d2143ba6
5
5
  SHA512:
6
- metadata.gz: 528e83b6dda5845775556617c3c63595a60274bc184889158ff10fb2ebf07d0a14438f21ea97098b7b566c47b078c352be786f48161271c2c16caf13c81c6476
7
- data.tar.gz: 07e3cd8fa1a5fca5eca1bf5318b09181286ea3e5e2d63212ffa4bae050251d091f6f71c702a398ac7b7604cac9f7936bcf2f02251426a2d5f0903aecbcc565d2
6
+ metadata.gz: d09092f4be228f2cde776daa288e66971e261bb9dbe58df7ecedeea36bd456f81d855286045435770bbab730835acc1615bc10433d2451303ca4e512aef2b9d2
7
+ data.tar.gz: d7bc4df83fef6a8f07861176c4747174d49c5cf9f90b24de86b7e72b3fcec0aa74061e12823e2e1da187f79b057da3b14cf5393490c6eefa3f031eec78769364
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.57.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `1.59.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
- 838 schemas, as RBS type aliases that steep and TypeProf can read.
44
+ 848 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.57.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.59.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.57.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.59.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.57.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v1.57.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.59.0)."
21
+ spec.description = "Generated Ruby client for the Infrawrench API (v1.59.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.57.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.59.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.57.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.59.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -6287,9 +6287,12 @@ module Infrawrench
6287
6287
  # Run a cost report
6288
6288
  #
6289
6289
  # Executes the report's saved config and returns the series, along with the
6290
- # inclusive window a relative preset resolved to. Takes no body: the report
6291
- # *is* the query, so a caller never has to reassemble its config to get the
6292
- # numbers.
6290
+ # inclusive window a relative preset resolved to. The body is optional: the
6291
+ # report *is* the query, so a caller never has to reassemble its config to
6292
+ # get the numbers. It may carry one-off display overrides (`measure`,
6293
+ # `usageUnit`, `binning`, `cumulative`) that apply to this run only and are
6294
+ # never saved; switching a run to `usage` or `count` drops the saved
6295
+ # forecast, scenario and billing rules, which only apply to money.
6293
6296
  #
6294
6297
  # _Requires permission: `costs:read`._
6295
6298
  #
@@ -6302,15 +6305,17 @@ module Infrawrench
6302
6305
  # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
6303
6306
  # constructed with.
6304
6307
  # @param id [String]
6308
+ # @param body [Hash, nil] Request body, shaped as `CostReportRunOverrides`.
6305
6309
  # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
6306
6310
  # @return [Hash] Parsed JSON, shaped as `CostReportRunResult` — see
6307
6311
  # `sig/infrawrench/sdk.rbs`.
6308
6312
  # @raise [Infrawrench::ApiError] On any non-2xx response.
6309
- def run(id:, org_id: nil, request_options: nil)
6313
+ def run(id:, org_id: nil, body: nil, request_options: nil)
6310
6314
  @transport.request(
6311
6315
  http_method: "POST",
6312
6316
  path: "/api/org/{orgId}/cost-reports/{id}/run",
6313
6317
  path_params: { "orgId" => org_id, "id" => id },
6318
+ body: body,
6314
6319
  request_options: request_options
6315
6320
  )
6316
6321
  end
@@ -6884,6 +6889,8 @@ module Infrawrench
6884
6889
  # usage budget's unit); dimension=tag requires tagKey. `charge_type` answers
6885
6890
  # from the fixed set of charge types rather than from the stored data, so
6886
6891
  # the picker is populated before any provider has reported one.
6892
+ # `usage-units` lists the usage units present in the cost data, most common
6893
+ # first, for the `usage` measure's unit picker.
6887
6894
  #
6888
6895
  # _Requires permission: `costs:read`._
6889
6896
  #
@@ -7390,6 +7397,293 @@ module Infrawrench
7390
7397
  end
7391
7398
  end
7392
7399
 
7400
+ # `client.custom_cost_sources.uploads`
7401
+ class CustomCostSourcesUploadsNamespace
7402
+ # @api private
7403
+ # @param transport [Transport]
7404
+ def initialize(transport)
7405
+ @transport = transport
7406
+ end
7407
+
7408
+ # Finish an upload
7409
+ #
7410
+ # Applies `replace` (zeroing this source's rows from other uploads in the
7411
+ # range) and records what the upload holds.
7412
+ #
7413
+ # _Requires permission: `costs:write`._
7414
+ #
7415
+ # POST /api/org/{orgId}/custom-cost-sources/{id}/uploads/{uploadId}/complete
7416
+ #
7417
+ # Raises on 400: Already complete
7418
+ #
7419
+ # Raises on 404: Not found
7420
+ #
7421
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7422
+ # constructed with.
7423
+ # @param id [String]
7424
+ # @param upload_id [String]
7425
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7426
+ # @return [Hash] Parsed JSON, shaped as `CustomCostUpload` — see `sig/infrawrench/sdk.rbs`.
7427
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7428
+ def complete(id:, upload_id:, org_id: nil, request_options: nil)
7429
+ @transport.request(
7430
+ http_method: "POST",
7431
+ path: "/api/org/{orgId}/custom-cost-sources/{id}/uploads/{uploadId}/complete",
7432
+ path_params: { "orgId" => org_id, "id" => id, "uploadId" => upload_id },
7433
+ request_options: request_options
7434
+ )
7435
+ end
7436
+
7437
+ # Start an upload
7438
+ #
7439
+ # Declares the upload's date range and what happens to spend already held in
7440
+ # it. Then send rows with `…/rows` (up to 5,000 per call) and finish with
7441
+ # `…/complete`.
7442
+ #
7443
+ # _Requires permission: `costs:write`._
7444
+ #
7445
+ # POST /api/org/{orgId}/custom-cost-sources/{id}/uploads
7446
+ #
7447
+ # Raises on 400: Bad request
7448
+ #
7449
+ # Raises on 404: Not found
7450
+ #
7451
+ # Raises on 409: The range overlaps earlier uploads and no `mode` was given
7452
+ #
7453
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7454
+ # constructed with.
7455
+ # @param id [String]
7456
+ # @param body [Hash] Request body, shaped as `CustomCostUploadCreate`.
7457
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7458
+ # @return [Hash] Parsed JSON, shaped as `CustomCostUpload` — see `sig/infrawrench/sdk.rbs`.
7459
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7460
+ def create(id:, body:, org_id: nil, request_options: nil)
7461
+ @transport.request(
7462
+ http_method: "POST",
7463
+ path: "/api/org/{orgId}/custom-cost-sources/{id}/uploads",
7464
+ path_params: { "orgId" => org_id, "id" => id },
7465
+ body: body,
7466
+ request_options: request_options
7467
+ )
7468
+ end
7469
+
7470
+ # Delete an upload and the rows it wrote
7471
+ #
7472
+ # _Requires permission: `costs:write`._
7473
+ #
7474
+ # DELETE /api/org/{orgId}/custom-cost-sources/{id}/uploads/{uploadId}
7475
+ #
7476
+ # Raises on 404: Not found
7477
+ #
7478
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7479
+ # constructed with.
7480
+ # @param id [String]
7481
+ # @param upload_id [String]
7482
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7483
+ # @return [Hash] Parsed JSON, shaped as `CustomCostDeleted` — see `sig/infrawrench/sdk.rbs`.
7484
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7485
+ def delete(id:, upload_id:, org_id: nil, request_options: nil)
7486
+ @transport.request(
7487
+ http_method: "DELETE",
7488
+ path: "/api/org/{orgId}/custom-cost-sources/{id}/uploads/{uploadId}",
7489
+ path_params: { "orgId" => org_id, "id" => id, "uploadId" => upload_id },
7490
+ request_options: request_options
7491
+ )
7492
+ end
7493
+
7494
+ # List a source's uploads
7495
+ #
7496
+ # _Requires permission: `costs:read`._
7497
+ #
7498
+ # GET /api/org/{orgId}/custom-cost-sources/{id}/uploads
7499
+ #
7500
+ # Raises on 404: Not found
7501
+ #
7502
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7503
+ # constructed with.
7504
+ # @param id [String]
7505
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7506
+ # @return [Array<Hash>] Parsed JSON, shaped as `Array<CustomCostUpload>` — see
7507
+ # `sig/infrawrench/sdk.rbs`.
7508
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7509
+ def list(id:, org_id: nil, request_options: nil)
7510
+ @transport.request(
7511
+ http_method: "GET",
7512
+ path: "/api/org/{orgId}/custom-cost-sources/{id}/uploads",
7513
+ path_params: { "orgId" => org_id, "id" => id },
7514
+ request_options: request_options
7515
+ )
7516
+ end
7517
+
7518
+ # Send a chunk of rows to an open upload
7519
+ #
7520
+ # The chunk is validated whole: a 400 means none of it was written.
7521
+ #
7522
+ # _Requires permission: `costs:write`._
7523
+ #
7524
+ # POST /api/org/{orgId}/custom-cost-sources/{id}/uploads/{uploadId}/rows
7525
+ #
7526
+ # Raises on 400: Bad request
7527
+ #
7528
+ # Raises on 404: Not found
7529
+ #
7530
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7531
+ # constructed with.
7532
+ # @param id [String]
7533
+ # @param upload_id [String]
7534
+ # @param body [Hash] Request body, shaped as `Hash`.
7535
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7536
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
7537
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7538
+ def rows(id:, upload_id:, body:, org_id: nil, request_options: nil)
7539
+ @transport.request(
7540
+ http_method: "POST",
7541
+ path: "/api/org/{orgId}/custom-cost-sources/{id}/uploads/{uploadId}/rows",
7542
+ path_params: { "orgId" => org_id, "id" => id, "uploadId" => upload_id },
7543
+ body: body,
7544
+ request_options: request_options
7545
+ )
7546
+ end
7547
+ end
7548
+
7549
+ # `client.custom_cost_sources`
7550
+ class CustomCostSourcesNamespace
7551
+ # @return [CustomCostSourcesUploadsNamespace] `client.custom_cost_sources.uploads`
7552
+ attr_reader :uploads
7553
+
7554
+ # @api private
7555
+ # @param transport [Transport]
7556
+ def initialize(transport)
7557
+ @transport = transport
7558
+ @uploads = CustomCostSourcesUploadsNamespace.new(@transport)
7559
+ end
7560
+
7561
+ # Create a custom cost source
7562
+ #
7563
+ # A named provider for spend Infrawrench has no plugin for. Fill it by
7564
+ # uploading files (CSV or FOCUS) from Settings, `infrawrench costs push
7565
+ # --format csv|focus`, or the upload endpoints below.
7566
+ #
7567
+ # _Requires permission: `costs:write`._
7568
+ #
7569
+ # POST /api/org/{orgId}/custom-cost-sources
7570
+ #
7571
+ # Raises on 400: Bad request
7572
+ #
7573
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7574
+ # constructed with.
7575
+ # @param body [Hash] Request body, shaped as `CustomCostSourceInput`.
7576
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7577
+ # @return [Hash] Parsed JSON, shaped as `CustomCostSource` — see `sig/infrawrench/sdk.rbs`.
7578
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7579
+ def create(body:, org_id: nil, request_options: nil)
7580
+ @transport.request(
7581
+ http_method: "POST",
7582
+ path: "/api/org/{orgId}/custom-cost-sources",
7583
+ path_params: { "orgId" => org_id },
7584
+ body: body,
7585
+ request_options: request_options
7586
+ )
7587
+ end
7588
+
7589
+ # Delete a custom cost source and all of its spend
7590
+ #
7591
+ # Zeroes every cost row the source holds, then deletes it with its upload
7592
+ # history. The spend disappears from every report, budget and export.
7593
+ #
7594
+ # _Requires permission: `costs:write`._
7595
+ #
7596
+ # DELETE /api/org/{orgId}/custom-cost-sources/{id}
7597
+ #
7598
+ # Raises on 404: Not found
7599
+ #
7600
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7601
+ # constructed with.
7602
+ # @param id [String]
7603
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7604
+ # @return [Hash] Parsed JSON, shaped as `CustomCostDeleted` — see `sig/infrawrench/sdk.rbs`.
7605
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7606
+ def delete(id:, org_id: nil, request_options: nil)
7607
+ @transport.request(
7608
+ http_method: "DELETE",
7609
+ path: "/api/org/{orgId}/custom-cost-sources/{id}",
7610
+ path_params: { "orgId" => org_id, "id" => id },
7611
+ request_options: request_options
7612
+ )
7613
+ end
7614
+
7615
+ # Get a custom cost source
7616
+ #
7617
+ # _Requires permission: `costs:read`._
7618
+ #
7619
+ # GET /api/org/{orgId}/custom-cost-sources/{id}
7620
+ #
7621
+ # Raises on 404: Not found
7622
+ #
7623
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7624
+ # constructed with.
7625
+ # @param id [String]
7626
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7627
+ # @return [Hash] Parsed JSON, shaped as `CustomCostSource` — see `sig/infrawrench/sdk.rbs`.
7628
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7629
+ def get(id:, org_id: nil, request_options: nil)
7630
+ @transport.request(
7631
+ http_method: "GET",
7632
+ path: "/api/org/{orgId}/custom-cost-sources/{id}",
7633
+ path_params: { "orgId" => org_id, "id" => id },
7634
+ request_options: request_options
7635
+ )
7636
+ end
7637
+
7638
+ # List custom cost sources
7639
+ #
7640
+ # _Requires permission: `costs:read`._
7641
+ #
7642
+ # GET /api/org/{orgId}/custom-cost-sources
7643
+ #
7644
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7645
+ # constructed with.
7646
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7647
+ # @return [Array<Hash>] Parsed JSON, shaped as `Array<CustomCostSource>` — see
7648
+ # `sig/infrawrench/sdk.rbs`.
7649
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7650
+ def list(org_id: nil, request_options: nil)
7651
+ @transport.request(
7652
+ http_method: "GET",
7653
+ path: "/api/org/{orgId}/custom-cost-sources",
7654
+ path_params: { "orgId" => org_id },
7655
+ request_options: request_options
7656
+ )
7657
+ end
7658
+
7659
+ # Update a custom cost source
7660
+ #
7661
+ # _Requires permission: `costs:write`._
7662
+ #
7663
+ # PUT /api/org/{orgId}/custom-cost-sources/{id}
7664
+ #
7665
+ # Raises on 400: Bad request
7666
+ #
7667
+ # Raises on 404: Not found
7668
+ #
7669
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7670
+ # constructed with.
7671
+ # @param id [String]
7672
+ # @param body [Hash] Request body, shaped as `CustomCostSourceInput`.
7673
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7674
+ # @return [Hash] Parsed JSON, shaped as `CustomCostSource` — see `sig/infrawrench/sdk.rbs`.
7675
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7676
+ def update(id:, body:, org_id: nil, request_options: nil)
7677
+ @transport.request(
7678
+ http_method: "PUT",
7679
+ path: "/api/org/{orgId}/custom-cost-sources/{id}",
7680
+ path_params: { "orgId" => org_id, "id" => id },
7681
+ body: body,
7682
+ request_options: request_options
7683
+ )
7684
+ end
7685
+ end
7686
+
7393
7687
  # `client.custom_graphs`
7394
7688
  class CustomGraphsNamespace
7395
7689
  # @api private
@@ -18947,6 +19241,8 @@ module Infrawrench
18947
19241
  attr_reader :credits
18948
19242
  # @return [CurrencyNamespace] `client.currency`
18949
19243
  attr_reader :currency
19244
+ # @return [CustomCostSourcesNamespace] `client.custom_cost_sources`
19245
+ attr_reader :custom_cost_sources
18950
19246
  # @return [CustomGraphsNamespace] `client.custom_graphs`
18951
19247
  attr_reader :custom_graphs
18952
19248
  # @return [DashboardNotificationsNamespace] `client.dashboard_notifications`
@@ -19120,6 +19416,7 @@ module Infrawrench
19120
19416
  @credential_hygiene = CredentialHygieneNamespace.new(@transport)
19121
19417
  @credits = CreditsNamespace.new(@transport)
19122
19418
  @currency = CurrencyNamespace.new(@transport)
19419
+ @custom_cost_sources = CustomCostSourcesNamespace.new(@transport)
19123
19420
  @custom_graphs = CustomGraphsNamespace.new(@transport)
19124
19421
  @dashboard_notifications = DashboardNotificationsNamespace.new(@transport)
19125
19422
  @dashboards = DashboardsNamespace.new(@transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.57.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.59.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.57.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.59.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.57.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.59.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.57.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.59.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.57.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.59.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.57.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.59.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.57.0"
18
+ VERSION = "1.59.0"
19
19
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.57.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.59.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.57.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.59.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.57.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v1.59.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.57.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.59.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1811,6 +1811,7 @@ module Infrawrench
1811
1811
  "chargeTypes" => bool,
1812
1812
  "amortization" => bool,
1813
1813
  "estimated" => bool,
1814
+ "granularity" => "daily" | "hourly",
1814
1815
  "costLastPolledAt" => String | nil,
1815
1816
  "costBackfilledAt" => String | nil,
1816
1817
  "costPollFailureCount" => Integer,
@@ -1987,6 +1988,16 @@ module Infrawrench
1987
1988
  # Spec schema: `CostBasis`.
1988
1989
  type cost_basis = "cash" | "amortized"
1989
1990
 
1991
+ # Time bucket of the x axis. Weeks start on Monday and quarters on the first
1992
+ # of January, April, July and October (UTC). `cumulative` is the older
1993
+ # spelling of daily bins with `cumulative: true`, kept so stored configs and
1994
+ # existing clients keep working. `hourly` is refused with a 400 while no
1995
+ # connected account stores hourly cost rows: every provider's spend is
1996
+ # collected per UTC day today (see `granularity` on /costs/status).
1997
+ #
1998
+ # Spec schema: `CostBinning`.
1999
+ type cost_binning = "hourly" | "daily" | "weekly" | "monthly" | "quarterly" | "cumulative"
2000
+
1990
2001
  # Spec schema: `CostCanvas`.
1991
2002
  type cost_canvas = {
1992
2003
  "id" => String,
@@ -2400,8 +2411,8 @@ module Infrawrench
2400
2411
  # Spec schema: `CostGraphConfig`.
2401
2412
  type cost_graph_config = {
2402
2413
  "version" => Numeric,
2403
- "chartType" => "stacked_bar" | "multi_bar" | "line" | "area" | "pie",
2404
- "binning" => "daily" | "weekly" | "monthly" | "cumulative",
2414
+ "chartType" => "stacked_bar" | "multi_bar" | "line" | "area" | "pie" | "donut" | "table",
2415
+ "binning" => cost_binning,
2405
2416
  "dateRange" => cost_date_range,
2406
2417
  "groupBy" => "none"
2407
2418
  | "provider"
@@ -2419,9 +2430,24 @@ module Infrawrench
2419
2430
  ?"comparePreviousPeriod" => bool,
2420
2431
  ?"showForecast" => bool,
2421
2432
  ?"scenarioModelId" => String,
2422
- ?"costBasis" => "cash" | "amortized"
2433
+ ?"costBasis" => "cash" | "amortized",
2434
+ ?"measure" => cost_measure,
2435
+ ?"usageUnit" => String,
2436
+ ?"cumulative" => bool
2423
2437
  }
2424
2438
 
2439
+ # What the Y axis sums. `cost` (the default) is money per currency. `usage`
2440
+ # sums the usage quantity providers report beside the money and requires
2441
+ # `usageUnit`, because quantities in different units cannot be added. `count`
2442
+ # is how many distinct values of the `groupBy` dimension had nonzero cost in
2443
+ # each bin (how many services were billed each day) and requires a `groupBy`;
2444
+ # its range total is a distinct count, not a sum of the bins. `usage` and
2445
+ # `count` cannot carry a forecast, a scenario or billing rules (a 400),
2446
+ # `count` cannot be cumulative, and a display currency is ignored for both.
2447
+ #
2448
+ # Spec schema: `CostMeasure`.
2449
+ type cost_measure = "cost" | "usage" | "count"
2450
+
2425
2451
  # Spec schema: `CostPushRequest`.
2426
2452
  type cost_push_request = { "source" => String, "rows" => Array[pushed_cost_row] }
2427
2453
 
@@ -2432,7 +2458,7 @@ module Infrawrench
2432
2458
  type cost_query_request = {
2433
2459
  "from" => String,
2434
2460
  "to" => String,
2435
- "binning" => "daily" | "weekly" | "monthly" | "cumulative",
2461
+ "binning" => cost_binning,
2436
2462
  "groupBy" => "none"
2437
2463
  | "provider"
2438
2464
  | "account"
@@ -2452,7 +2478,10 @@ module Infrawrench
2452
2478
  ?"scenarioModelId" => String,
2453
2479
  ?"costBasis" => cost_basis,
2454
2480
  ?"chargeTypes" => Array[cost_charge_type],
2455
- ?"adjusted" => bool
2481
+ ?"adjusted" => bool,
2482
+ ?"measure" => cost_measure,
2483
+ ?"usageUnit" => String,
2484
+ ?"cumulative" => bool
2456
2485
  }
2457
2486
 
2458
2487
  # Spec schema: `CostQueryResponse`.
@@ -2464,7 +2493,9 @@ module Infrawrench
2464
2493
  "currencies" => Array[String],
2465
2494
  "totals" => Hash[String, Numeric],
2466
2495
  ?"previousTotals" => Hash[String, Numeric],
2467
- ?"adjustment" => cost_adjustment_summary
2496
+ ?"adjustment" => cost_adjustment_summary,
2497
+ ?"measure" => "usage" | "count",
2498
+ ?"usageUnit" => String
2468
2499
  }
2469
2500
 
2470
2501
  # Spec schema: `CostQuerySeries`.
@@ -2526,6 +2557,14 @@ module Infrawrench
2526
2557
  # Spec schema: `CostReportPlacement`.
2527
2558
  type cost_report_placement = { "widgetId" => String, "dashboardId" => String, "dashboardName" => String }
2528
2559
 
2560
+ # Spec schema: `CostReportRunOverrides`.
2561
+ type cost_report_run_overrides = {
2562
+ ?"measure" => cost_measure,
2563
+ ?"usageUnit" => String,
2564
+ ?"binning" => cost_binning,
2565
+ ?"cumulative" => bool
2566
+ }
2567
+
2529
2568
  # Spec schema: `CostReportRunResult`.
2530
2569
  type cost_report_run_result = {
2531
2570
  "reportId" => String,
@@ -2865,6 +2904,86 @@ module Infrawrench
2865
2904
  # Spec schema: `CurrencySettings`.
2866
2905
  type currency_settings = { "displayCurrency" => String | nil }
2867
2906
 
2907
+ # Spec schema: `CustomCostDeleted`.
2908
+ type custom_cost_deleted = { "ok" => bool, "zeroedRows" => Integer }
2909
+
2910
+ # Spec schema: `CustomCostOverlap`.
2911
+ type custom_cost_overlap = { "error" => String, "code" => "overlap", "overlapping" => Array[custom_cost_upload] }
2912
+
2913
+ # One day of spend for one dimension combination. Clients aggregate file lines
2914
+ # to this grain before sending: two rows with the same date, dimensions, tags
2915
+ # and currency in one upload replace each other rather than adding.
2916
+ #
2917
+ # Spec schema: `CustomCostRow`.
2918
+ type custom_cost_row = {
2919
+ "date" => String,
2920
+ "currency" => String,
2921
+ "amount" => Numeric,
2922
+ ?"service" => String,
2923
+ ?"region" => String,
2924
+ ?"resourceId" => String,
2925
+ ?"subAccount" => String,
2926
+ ?"tags" => Hash[String, String],
2927
+ ?"usageAmount" => Numeric,
2928
+ ?"usageUnit" => String,
2929
+ ?"chargeType" => "usage"
2930
+ | "commitment_covered_usage"
2931
+ | "commitment_fee"
2932
+ | "commitment_discount"
2933
+ | "credit"
2934
+ | "tax"
2935
+ | "refund"
2936
+ | "adjustment"
2937
+ | "support"
2938
+ | "other",
2939
+ ?"amortizedAmount" => Numeric,
2940
+ ?"commitmentId" => String
2941
+ }
2942
+
2943
+ # Spec schema: `CustomCostSource`.
2944
+ type custom_cost_source = {
2945
+ "id" => String,
2946
+ "name" => String,
2947
+ "description" => String | nil,
2948
+ "defaultCurrency" => String | nil,
2949
+ "pluginId" => String,
2950
+ "uploadCount" => Integer,
2951
+ "lastUploadAt" => String | nil,
2952
+ "createdAt" => String,
2953
+ "updatedAt" => String
2954
+ }
2955
+
2956
+ # Spec schema: `CustomCostSourceInput`.
2957
+ type custom_cost_source_input = { "name" => String, ?"description" => String | nil, ?"defaultCurrency" => String | nil }
2958
+
2959
+ # Spec schema: `CustomCostUpload`.
2960
+ type custom_cost_upload = {
2961
+ "id" => String,
2962
+ "sourceId" => String,
2963
+ "fileName" => String | nil,
2964
+ "format" => "csv" | "focus" | "rows",
2965
+ "mode" => "append" | "replace",
2966
+ "status" => "uploading" | "complete" | "replaced",
2967
+ "fromDate" => String,
2968
+ "toDate" => String,
2969
+ "rowCount" => Integer,
2970
+ "totals" => Hash[String, Numeric],
2971
+ "uploadedBy" => { "id" => String, "name" => String | nil, "email" => String | nil } | nil,
2972
+ "via" => "web" | "desktop" | "cli" | "api",
2973
+ "createdAt" => String,
2974
+ "completedAt" => String | nil
2975
+ }
2976
+
2977
+ # Spec schema: `CustomCostUploadCreate`.
2978
+ type custom_cost_upload_create = {
2979
+ ?"fileName" => String | nil,
2980
+ "format" => "csv" | "focus" | "rows",
2981
+ ?"mode" => "append" | "replace",
2982
+ ?"via" => "web" | "desktop" | "cli" | "api",
2983
+ "fromDate" => String,
2984
+ "toDate" => String
2985
+ }
2986
+
2868
2987
  # Spec schema: `CustomGraphCheckRequest`.
2869
2988
  type custom_graph_check_request = { "source" => String }
2870
2989
 
@@ -8607,7 +8726,7 @@ module Infrawrench
8607
8726
  type unit_cost_query_request = {
8608
8727
  "from" => String,
8609
8728
  "to" => String,
8610
- "binning" => "daily" | "weekly" | "monthly" | "cumulative",
8729
+ "binning" => "hourly" | "daily" | "weekly" | "monthly" | "quarterly" | "cumulative",
8611
8730
  ?"mode" => "unit_cost" | "margin",
8612
8731
  ?"filters" => Array[business_metric_scope_term],
8613
8732
  ?"query" => String,
@@ -8628,7 +8747,7 @@ module Infrawrench
8628
8747
  "currency" => String | nil
8629
8748
  },
8630
8749
  "mode" => "unit_cost" | "margin",
8631
- "binning" => "daily" | "weekly" | "monthly" | "cumulative",
8750
+ "binning" => "hourly" | "daily" | "weekly" | "monthly" | "quarterly" | "cumulative",
8632
8751
  "series" => Array[unit_cost_series],
8633
8752
  ?"conversion" => {
8634
8753
  "displayCurrency" => String,
@@ -9298,7 +9417,7 @@ module Infrawrench
9298
9417
  def get: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_report
9299
9418
  def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[cost_report]
9300
9419
  def pdf: (id: String, ?org_id: String?, ?tz: String?, ?request_options: Hash[Symbol, untyped]?) -> String
9301
- def run: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_report_run_result
9420
+ def run: (id: String, ?org_id: String?, ?body: cost_report_run_overrides?, ?request_options: Hash[Symbol, untyped]?) -> cost_report_run_result
9302
9421
  def update: (id: String, body: cost_report_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_report
9303
9422
  end
9304
9423
 
@@ -9380,6 +9499,25 @@ module Infrawrench
9380
9499
  def update: (body: currency_settings, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> currency_settings
9381
9500
  end
9382
9501
 
9502
+ class CustomCostSourcesUploadsNamespace
9503
+ def initialize: (Transport) -> void
9504
+ def complete: (id: String, upload_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> custom_cost_upload
9505
+ def create: (id: String, body: custom_cost_upload_create, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> custom_cost_upload
9506
+ def delete: (id: String, upload_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> custom_cost_deleted
9507
+ def list: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[custom_cost_upload]
9508
+ def rows: (id: String, upload_id: String, body: { "rows" => Array[custom_cost_row] }, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "written" => Integer }
9509
+ end
9510
+
9511
+ class CustomCostSourcesNamespace
9512
+ attr_reader uploads: CustomCostSourcesUploadsNamespace
9513
+ def initialize: (Transport) -> void
9514
+ def create: (body: custom_cost_source_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> custom_cost_source
9515
+ def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> custom_cost_deleted
9516
+ def get: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> custom_cost_source
9517
+ def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[custom_cost_source]
9518
+ def update: (id: String, body: custom_cost_source_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> custom_cost_source
9519
+ end
9520
+
9383
9521
  class CustomGraphsNamespace
9384
9522
  def initialize: (Transport) -> void
9385
9523
  def check: (body: custom_graph_check_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> custom_graph_check_result
@@ -10261,6 +10399,7 @@ module Infrawrench
10261
10399
  attr_reader credential_hygiene: CredentialHygieneNamespace
10262
10400
  attr_reader credits: CreditsNamespace
10263
10401
  attr_reader currency: CurrencyNamespace
10402
+ attr_reader custom_cost_sources: CustomCostSourcesNamespace
10264
10403
  attr_reader custom_graphs: CustomGraphsNamespace
10265
10404
  attr_reader dashboard_notifications: DashboardNotificationsNamespace
10266
10405
  attr_reader dashboards: DashboardsNamespace
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.57.0
4
+ version: 1.59.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.57.0). Covers the published
14
+ description: Generated Ruby client for the Infrawrench API (v1.59.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.57.0).
61
+ summary: Generated Ruby client for the Infrawrench API (v1.59.0).
62
62
  test_files: []