infrawrench-sdk 1.43.0 → 1.45.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: 1ce785a112c380423e94e554eaaf26856f82d2bd07b83f36597309df8400c517
4
- data.tar.gz: 9e56e8c92684ec47e121b9115adea199388035d5d01d6f6b01c214759d60db69
3
+ metadata.gz: b9acf07ccf92112baa7afdbfb817dda783f587277c0abf08d06b8fcaea6ce1dc
4
+ data.tar.gz: '081a6b212f96603c4ea64a0cee0de51d4a6c85e2f5359f854b075750f7f1cb35'
5
5
  SHA512:
6
- metadata.gz: 95245e4a99034c05450e34db0c5fc110077e6ce87bdc5fcaf56c50bfdf554227aa39bbaf97cd8e122d66f87f99f4547d0373de66f9e634e5f413c4deeac02679
7
- data.tar.gz: 81d8bb202486f5139911509c9e62fa517dcf6e68948c8071ebb17d1110817d018a05e51c66c8e0a725e9dd9b8fce82a9ee6e70232bb9838f8fce7e56f6e3503d
6
+ metadata.gz: caa307c1db0c200ada3738e70a776a8c5841b49cd1d53037d212359416931c0993cb57b0de9638312a126386b79dc8f9fe60c1f7db022189c50ea8b9671dd9b6
7
+ data.tar.gz: aff041c155a34d61ab43cd30d1750daed40d3c75c9348a6117d1f0efd21be26d68ec3fbdc092018194aae4401621b58da367025947633d390ed35c6468ce2613
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.43.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `1.45.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
- 746 schemas, as RBS type aliases that steep and TypeProf can read.
44
+ 763 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.43.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.45.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.43.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.45.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.43.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v1.43.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.45.0)."
21
+ spec.description = "Generated Ruby client for the Infrawrench API (v1.45.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.43.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.45.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.43.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.45.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -695,6 +695,38 @@ module Infrawrench
695
695
  )
696
696
  end
697
697
 
698
+ # List the provider's choices for a credential field
699
+ #
700
+ # For credential fields that declare `providerOptions` (an account picker
701
+ # filled from the API key, say): asks the provider for the choices the
702
+ # submitted credentials can see. Nothing is stored. A 400 carries the
703
+ # provider's reason, and clients fall back to a text input.
704
+ #
705
+ # _Requires permission: `accounts:write`._
706
+ #
707
+ # POST /api/org/{orgId}/accounts/credential-options
708
+ #
709
+ # Raises on 400: Bad request
710
+ #
711
+ # Raises on 404: Not found
712
+ #
713
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
714
+ # constructed with.
715
+ # @param body [Hash] Request body, shaped as `CredentialOptionsRequest`.
716
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
717
+ # @return [Hash] Parsed JSON, shaped as `CredentialOptionsResponse` — see
718
+ # `sig/infrawrench/sdk.rbs`.
719
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
720
+ def credential_options(body:, org_id: nil, request_options: nil)
721
+ @transport.request(
722
+ http_method: "POST",
723
+ path: "/api/org/{orgId}/accounts/credential-options",
724
+ path_params: { "orgId" => org_id },
725
+ body: body,
726
+ request_options: request_options
727
+ )
728
+ end
729
+
698
730
  # Delete an account
699
731
  #
700
732
  # _Requires permission: `accounts:delete`._
@@ -5242,6 +5274,36 @@ module Infrawrench
5242
5274
  )
5243
5275
  end
5244
5276
 
5277
+ # Export a saved cost report as a PDF
5278
+ #
5279
+ # The report's chart and totals table for its saved window, rendered
5280
+ # server-side and converted to the org's display currency where configured.
5281
+ #
5282
+ # _Requires permission: `costs:read`._
5283
+ #
5284
+ # GET /api/org/{orgId}/cost-reports/{id}/pdf
5285
+ #
5286
+ # Raises on 404: Not found
5287
+ #
5288
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
5289
+ # constructed with.
5290
+ # @param id [String]
5291
+ # @param tz [String, nil] IANA zone the document's generated-at line is written in, e.g.
5292
+ # `Europe/Berlin`. UTC when absent or unknown.
5293
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
5294
+ # @return [String] Raw response bytes.
5295
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
5296
+ def pdf(id:, org_id: nil, tz: nil, request_options: nil)
5297
+ @transport.request(
5298
+ http_method: "GET",
5299
+ path: "/api/org/{orgId}/cost-reports/{id}/pdf",
5300
+ path_params: { "orgId" => org_id, "id" => id },
5301
+ query: { "tz" => tz },
5302
+ accept: :binary,
5303
+ request_options: request_options
5304
+ )
5305
+ end
5306
+
5245
5307
  # Run a cost report
5246
5308
  #
5247
5309
  # Executes the report's saved config and returns the series, along with the
@@ -5502,6 +5564,104 @@ module Infrawrench
5502
5564
  end
5503
5565
  end
5504
5566
 
5567
+ # `client.cost_visibility`
5568
+ class CostVisibilityNamespace
5569
+ # @api private
5570
+ # @param transport [Transport]
5571
+ def initialize(transport)
5572
+ @transport = transport
5573
+ end
5574
+
5575
+ # Remove a cost visibility scope
5576
+ #
5577
+ # _Requires permission: `team:role:write`._
5578
+ #
5579
+ # DELETE /api/org/{orgId}/cost-visibility/{principalKind}/{principalId}
5580
+ #
5581
+ # Raises on 403: Forbidden
5582
+ #
5583
+ # Raises on 404: Not found
5584
+ #
5585
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
5586
+ # constructed with.
5587
+ # @param principal_kind [String]
5588
+ # @param principal_id [String]
5589
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
5590
+ # @return [Hash] Parsed JSON, shaped as `Ok` — see `sig/infrawrench/sdk.rbs`.
5591
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
5592
+ def delete(principal_kind:, principal_id:, org_id: nil, request_options: nil)
5593
+ @transport.request(
5594
+ http_method: "DELETE",
5595
+ path: "/api/org/{orgId}/cost-visibility/{principalKind}/{principalId}",
5596
+ path_params: {
5597
+ "orgId" => org_id,
5598
+ "principalKind" => principal_kind,
5599
+ "principalId" => principal_id
5600
+ },
5601
+ request_options: request_options
5602
+ )
5603
+ end
5604
+
5605
+ # List cost visibility scopes
5606
+ #
5607
+ # Every scope narrowing which cost rows a role, member or API key can see.
5608
+ # Scopes that apply to one caller are intersected.
5609
+ #
5610
+ # _Requires permission: `team:read`._
5611
+ #
5612
+ # GET /api/org/{orgId}/cost-visibility
5613
+ #
5614
+ # Raises on 403: Forbidden
5615
+ #
5616
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
5617
+ # constructed with.
5618
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
5619
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
5620
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
5621
+ def get(org_id: nil, request_options: nil)
5622
+ @transport.request(
5623
+ http_method: "GET",
5624
+ path: "/api/org/{orgId}/cost-visibility",
5625
+ path_params: { "orgId" => org_id },
5626
+ request_options: request_options
5627
+ )
5628
+ end
5629
+
5630
+ # Create or replace a cost visibility scope
5631
+ #
5632
+ # Upserts the scope of one principal. Roles and members need
5633
+ # `team:role:write`; an API key's owner may also scope their own key with
5634
+ # `apikeys:write`. Owners cannot be scoped, and cost-scoped callers cannot
5635
+ # change scopes.
5636
+ #
5637
+ # _Requires permission: `team:role:write`._
5638
+ #
5639
+ # PUT /api/org/{orgId}/cost-visibility
5640
+ #
5641
+ # Raises on 400: Bad request
5642
+ #
5643
+ # Raises on 403: Forbidden
5644
+ #
5645
+ # Raises on 404: Not found
5646
+ #
5647
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
5648
+ # constructed with.
5649
+ # @param body [Hash, nil] Request body, shaped as `CostVisibilityScopeInput`.
5650
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
5651
+ # @return [Hash] Parsed JSON, shaped as `CostVisibilityScope` — see
5652
+ # `sig/infrawrench/sdk.rbs`.
5653
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
5654
+ def update(org_id: nil, body: nil, request_options: nil)
5655
+ @transport.request(
5656
+ http_method: "PUT",
5657
+ path: "/api/org/{orgId}/cost-visibility",
5658
+ path_params: { "orgId" => org_id },
5659
+ body: body,
5660
+ request_options: request_options
5661
+ )
5662
+ end
5663
+ end
5664
+
5505
5665
  # `client.costs.anomalies`
5506
5666
  class CostsAnomaliesNamespace
5507
5667
  # @api private
@@ -6419,6 +6579,36 @@ module Infrawrench
6419
6579
  end
6420
6580
  end
6421
6581
 
6582
+ # `client.dashboard_notifications`
6583
+ class DashboardNotificationsNamespace
6584
+ # @api private
6585
+ # @param transport [Transport]
6586
+ def initialize(transport)
6587
+ @transport = transport
6588
+ end
6589
+
6590
+ # List every dashboard delivery schedule in the organization
6591
+ #
6592
+ # _Requires permission: `dashboards:read`._
6593
+ #
6594
+ # GET /api/org/{orgId}/dashboard-notifications
6595
+ #
6596
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
6597
+ # constructed with.
6598
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
6599
+ # @return [Array<Hash>] Parsed JSON, shaped as `Array<DashboardNotification>` — see
6600
+ # `sig/infrawrench/sdk.rbs`.
6601
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
6602
+ def list(org_id: nil, request_options: nil)
6603
+ @transport.request(
6604
+ http_method: "GET",
6605
+ path: "/api/org/{orgId}/dashboard-notifications",
6606
+ path_params: { "orgId" => org_id },
6607
+ request_options: request_options
6608
+ )
6609
+ end
6610
+ end
6611
+
6422
6612
  # `client.dashboards.default`
6423
6613
  class DashboardsDefaultNamespace
6424
6614
  # @api private
@@ -6448,6 +6638,184 @@ module Infrawrench
6448
6638
  end
6449
6639
  end
6450
6640
 
6641
+ # `client.dashboards.notifications`
6642
+ class DashboardsNotificationsNamespace
6643
+ # @api private
6644
+ # @param transport [Transport]
6645
+ def initialize(transport)
6646
+ @transport = transport
6647
+ end
6648
+
6649
+ # Create a dashboard delivery schedule
6650
+ #
6651
+ # On its cadence the server renders the dashboard as a PDF and sends a short
6652
+ # summary (one line per card with a figure to quote) and a deep link to the
6653
+ # schedule's destinations, with the PDF attached to emails and uploaded to
6654
+ # Slack when `attachPdf` is on.
6655
+ #
6656
+ # _Requires permission: `org:settings:write`._
6657
+ #
6658
+ # POST /api/org/{orgId}/dashboards/{id}/notifications
6659
+ #
6660
+ # Raises on 400: Bad request
6661
+ #
6662
+ # Raises on 404: Not found
6663
+ #
6664
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
6665
+ # constructed with.
6666
+ # @param id [String]
6667
+ # @param body [Hash] Request body, shaped as `DashboardNotificationInput`.
6668
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
6669
+ # @return [Hash] Parsed JSON, shaped as `DashboardNotification` — see
6670
+ # `sig/infrawrench/sdk.rbs`.
6671
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
6672
+ def create(id:, body:, org_id: nil, request_options: nil)
6673
+ @transport.request(
6674
+ http_method: "POST",
6675
+ path: "/api/org/{orgId}/dashboards/{id}/notifications",
6676
+ path_params: { "orgId" => org_id, "id" => id },
6677
+ body: body,
6678
+ request_options: request_options
6679
+ )
6680
+ end
6681
+
6682
+ # Delete a dashboard delivery schedule
6683
+ #
6684
+ # _Requires permission: `org:settings:write`._
6685
+ #
6686
+ # DELETE /api/org/{orgId}/dashboards/{id}/notifications/{notificationId}
6687
+ #
6688
+ # Raises on 404: Not found
6689
+ #
6690
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
6691
+ # constructed with.
6692
+ # @param id [String]
6693
+ # @param notification_id [String]
6694
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
6695
+ # @return [Hash] Parsed JSON, shaped as `Ok` — see `sig/infrawrench/sdk.rbs`.
6696
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
6697
+ def delete(id:, notification_id:, org_id: nil, request_options: nil)
6698
+ @transport.request(
6699
+ http_method: "DELETE",
6700
+ path: "/api/org/{orgId}/dashboards/{id}/notifications/{notificationId}",
6701
+ path_params: { "orgId" => org_id, "id" => id, "notificationId" => notification_id },
6702
+ request_options: request_options
6703
+ )
6704
+ end
6705
+
6706
+ # List a dashboard's delivery schedules
6707
+ #
6708
+ # _Requires permission: `dashboards:read`._
6709
+ #
6710
+ # GET /api/org/{orgId}/dashboards/{id}/notifications
6711
+ #
6712
+ # Raises on 404: Not found
6713
+ #
6714
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
6715
+ # constructed with.
6716
+ # @param id [String]
6717
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
6718
+ # @return [Array<Hash>] Parsed JSON, shaped as `Array<DashboardNotification>` — see
6719
+ # `sig/infrawrench/sdk.rbs`.
6720
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
6721
+ def list(id:, org_id: nil, request_options: nil)
6722
+ @transport.request(
6723
+ http_method: "GET",
6724
+ path: "/api/org/{orgId}/dashboards/{id}/notifications",
6725
+ path_params: { "orgId" => org_id, "id" => id },
6726
+ request_options: request_options
6727
+ )
6728
+ end
6729
+
6730
+ # Send a dashboard schedule now
6731
+ #
6732
+ # Renders and delivers immediately, ignoring the schedule and its enabled
6733
+ # flag. Fails with a 400 naming the reason when nothing could be delivered.
6734
+ #
6735
+ # _Requires permission: `org:settings:write`._
6736
+ #
6737
+ # POST /api/org/{orgId}/dashboards/{id}/notifications/{notificationId}/send
6738
+ #
6739
+ # Raises on 400: Bad request
6740
+ #
6741
+ # Raises on 404: Not found
6742
+ #
6743
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
6744
+ # constructed with.
6745
+ # @param id [String]
6746
+ # @param notification_id [String]
6747
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
6748
+ # @return [Hash] Parsed JSON, shaped as `DashboardNotificationSendResult` — see
6749
+ # `sig/infrawrench/sdk.rbs`.
6750
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
6751
+ def post_org_org_id_dashboards_id_notifications_notification_id_send(
6752
+ id:,
6753
+ notification_id:,
6754
+ org_id: nil,
6755
+ request_options: nil
6756
+ )
6757
+ @transport.request(
6758
+ http_method: "POST",
6759
+ path: "/api/org/{orgId}/dashboards/{id}/notifications/{notificationId}/send",
6760
+ path_params: { "orgId" => org_id, "id" => id, "notificationId" => notification_id },
6761
+ request_options: request_options
6762
+ )
6763
+ end
6764
+
6765
+ # List the destinations a dashboard schedule can deliver to
6766
+ #
6767
+ # _Requires permission: `org:settings:write`._
6768
+ #
6769
+ # GET /api/org/{orgId}/dashboards/{id}/notifications/targets
6770
+ #
6771
+ # Raises on 404: Not found
6772
+ #
6773
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
6774
+ # constructed with.
6775
+ # @param id [String]
6776
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
6777
+ # @return [Hash] Parsed JSON, shaped as `ReportDeliveryTargets` — see
6778
+ # `sig/infrawrench/sdk.rbs`.
6779
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
6780
+ def targets(id:, org_id: nil, request_options: nil)
6781
+ @transport.request(
6782
+ http_method: "GET",
6783
+ path: "/api/org/{orgId}/dashboards/{id}/notifications/targets",
6784
+ path_params: { "orgId" => org_id, "id" => id },
6785
+ request_options: request_options
6786
+ )
6787
+ end
6788
+
6789
+ # Update a dashboard delivery schedule
6790
+ #
6791
+ # _Requires permission: `org:settings:write`._
6792
+ #
6793
+ # PUT /api/org/{orgId}/dashboards/{id}/notifications/{notificationId}
6794
+ #
6795
+ # Raises on 400: Bad request
6796
+ #
6797
+ # Raises on 404: Not found
6798
+ #
6799
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
6800
+ # constructed with.
6801
+ # @param id [String]
6802
+ # @param notification_id [String]
6803
+ # @param body [Hash] Request body, shaped as `DashboardNotificationInput`.
6804
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
6805
+ # @return [Hash] Parsed JSON, shaped as `DashboardNotification` — see
6806
+ # `sig/infrawrench/sdk.rbs`.
6807
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
6808
+ def update(id:, notification_id:, body:, org_id: nil, request_options: nil)
6809
+ @transport.request(
6810
+ http_method: "PUT",
6811
+ path: "/api/org/{orgId}/dashboards/{id}/notifications/{notificationId}",
6812
+ path_params: { "orgId" => org_id, "id" => id, "notificationId" => notification_id },
6813
+ body: body,
6814
+ request_options: request_options
6815
+ )
6816
+ end
6817
+ end
6818
+
6451
6819
  # `client.dashboards.pin`
6452
6820
  class DashboardsPinNamespace
6453
6821
  # @api private
@@ -6619,6 +6987,8 @@ module Infrawrench
6619
6987
  class DashboardsNamespace
6620
6988
  # @return [DashboardsDefaultNamespace] `client.dashboards.default`
6621
6989
  attr_reader :default
6990
+ # @return [DashboardsNotificationsNamespace] `client.dashboards.notifications`
6991
+ attr_reader :notifications
6622
6992
  # @return [DashboardsPinNamespace] `client.dashboards.pin`
6623
6993
  attr_reader :pin
6624
6994
  # @return [DashboardsWidgetsNamespace] `client.dashboards.widgets`
@@ -6629,6 +6999,7 @@ module Infrawrench
6629
6999
  def initialize(transport)
6630
7000
  @transport = transport
6631
7001
  @default = DashboardsDefaultNamespace.new(@transport)
7002
+ @notifications = DashboardsNotificationsNamespace.new(@transport)
6632
7003
  @pin = DashboardsPinNamespace.new(@transport)
6633
7004
  @widgets = DashboardsWidgetsNamespace.new(@transport)
6634
7005
  end
@@ -6726,6 +7097,40 @@ module Infrawrench
6726
7097
  )
6727
7098
  end
6728
7099
 
7100
+ # Export a dashboard as a PDF
7101
+ #
7102
+ # Renders every card server-side: cost graphs and saved reports (chart plus
7103
+ # a totals table, converted to the org's display currency where configured),
7104
+ # budgets (spend against the amount, forecast and thresholds), custom graphs
7105
+ # (including their KPI and table forms) and pinned resources and workflows.
7106
+ # Cost cards need `costs:read` as well and are replaced by a note without
7107
+ # it. A card that fails renders its error in place.
7108
+ #
7109
+ # _Requires permission: `dashboards:read`._
7110
+ #
7111
+ # GET /api/org/{orgId}/dashboards/{id}/pdf
7112
+ #
7113
+ # Raises on 404: Not found
7114
+ #
7115
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
7116
+ # constructed with.
7117
+ # @param id [String]
7118
+ # @param tz [String, nil] IANA zone the document's generated-at line is written in, e.g.
7119
+ # `Europe/Berlin`. UTC when absent or unknown.
7120
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
7121
+ # @return [String] Raw response bytes.
7122
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
7123
+ def pdf(id:, org_id: nil, tz: nil, request_options: nil)
7124
+ @transport.request(
7125
+ http_method: "GET",
7126
+ path: "/api/org/{orgId}/dashboards/{id}/pdf",
7127
+ path_params: { "orgId" => org_id, "id" => id },
7128
+ query: { "tz" => tz },
7129
+ accept: :binary,
7130
+ request_options: request_options
7131
+ )
7132
+ end
7133
+
6729
7134
  # Read cached stats/metrics for dashboard cards
6730
7135
  #
6731
7136
  # _Requires permission: `dashboards:read`._
@@ -14729,6 +15134,100 @@ module Infrawrench
14729
15134
  end
14730
15135
  end
14731
15136
 
15137
+ # `client.sharing`
15138
+ class SharingNamespace
15139
+ # @api private
15140
+ # @param transport [Transport]
15141
+ def initialize(transport)
15142
+ @transport = transport
15143
+ end
15144
+
15145
+ # Reset an object's sharing to the default
15146
+ #
15147
+ # Removes every grant and the org-wide setting, so everyone in the
15148
+ # organization can edit again. Owner only. A report's creator remains its
15149
+ # owner.
15150
+ #
15151
+ # DELETE /api/org/{orgId}/sharing/{objectType}/{objectId}
15152
+ #
15153
+ # Raises on 403: Forbidden
15154
+ #
15155
+ # Raises on 404: Not found
15156
+ #
15157
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
15158
+ # constructed with.
15159
+ # @param object_type [String]
15160
+ # @param object_id [String]
15161
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
15162
+ # @return [Hash] Parsed JSON, shaped as `Ok` — see `sig/infrawrench/sdk.rbs`.
15163
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
15164
+ def delete(object_type:, object_id:, org_id: nil, request_options: nil)
15165
+ @transport.request(
15166
+ http_method: "DELETE",
15167
+ path: "/api/org/{orgId}/sharing/{objectType}/{objectId}",
15168
+ path_params: { "orgId" => org_id, "objectType" => object_type, "objectId" => object_id },
15169
+ request_options: request_options
15170
+ )
15171
+ end
15172
+
15173
+ # Get an object's sharing
15174
+ #
15175
+ # Who can open or edit a cost report, report folder or dashboard. Needs
15176
+ # viewer on the object and the family's read permission (`costs:read` /
15177
+ # `dashboards:read`).
15178
+ #
15179
+ # GET /api/org/{orgId}/sharing/{objectType}/{objectId}
15180
+ #
15181
+ # Raises on 404: Not found
15182
+ #
15183
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
15184
+ # constructed with.
15185
+ # @param object_type [String]
15186
+ # @param object_id [String]
15187
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
15188
+ # @return [Hash] Parsed JSON, shaped as `ObjectSharing` — see `sig/infrawrench/sdk.rbs`.
15189
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
15190
+ def get(object_type:, object_id:, org_id: nil, request_options: nil)
15191
+ @transport.request(
15192
+ http_method: "GET",
15193
+ path: "/api/org/{orgId}/sharing/{objectType}/{objectId}",
15194
+ path_params: { "orgId" => org_id, "objectType" => object_type, "objectId" => object_id },
15195
+ request_options: request_options
15196
+ )
15197
+ end
15198
+
15199
+ # Replace an object's sharing
15200
+ #
15201
+ # Replaces the org-wide default and every grant. Owner on the object plus
15202
+ # the family's write permission. At least one owner must remain.
15203
+ #
15204
+ # PUT /api/org/{orgId}/sharing/{objectType}/{objectId}
15205
+ #
15206
+ # Raises on 400: Bad request
15207
+ #
15208
+ # Raises on 403: Forbidden
15209
+ #
15210
+ # Raises on 404: Not found
15211
+ #
15212
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
15213
+ # constructed with.
15214
+ # @param object_type [String]
15215
+ # @param object_id [String]
15216
+ # @param body [Hash, nil] Request body, shaped as `ObjectSharingInput`.
15217
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
15218
+ # @return [Hash] Parsed JSON, shaped as `ObjectSharing` — see `sig/infrawrench/sdk.rbs`.
15219
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
15220
+ def update(object_type:, object_id:, org_id: nil, body: nil, request_options: nil)
15221
+ @transport.request(
15222
+ http_method: "PUT",
15223
+ path: "/api/org/{orgId}/sharing/{objectType}/{objectId}",
15224
+ path_params: { "orgId" => org_id, "objectType" => object_type, "objectId" => object_id },
15225
+ body: body,
15226
+ request_options: request_options
15227
+ )
15228
+ end
15229
+ end
15230
+
14732
15231
  # `client.slack.channels`
14733
15232
  class SlackChannelsNamespace
14734
15233
  # @api private
@@ -16848,6 +17347,8 @@ module Infrawrench
16848
17347
  attr_reader :cost_reports
16849
17348
  # @return [CostScenariosNamespace] `client.cost_scenarios`
16850
17349
  attr_reader :cost_scenarios
17350
+ # @return [CostVisibilityNamespace] `client.cost_visibility`
17351
+ attr_reader :cost_visibility
16851
17352
  # @return [CostsNamespace] `client.costs`
16852
17353
  attr_reader :costs
16853
17354
  # @return [CredentialHygieneNamespace] `client.credential_hygiene`
@@ -16858,6 +17359,8 @@ module Infrawrench
16858
17359
  attr_reader :currency
16859
17360
  # @return [CustomGraphsNamespace] `client.custom_graphs`
16860
17361
  attr_reader :custom_graphs
17362
+ # @return [DashboardNotificationsNamespace] `client.dashboard_notifications`
17363
+ attr_reader :dashboard_notifications
16861
17364
  # @return [DashboardsNamespace] `client.dashboards`
16862
17365
  attr_reader :dashboards
16863
17366
  # @return [DependencyGraphNamespace] `client.dependency_graph`
@@ -16942,6 +17445,8 @@ module Infrawrench
16942
17445
  attr_reader :sftp
16943
17446
  # @return [SharedConsolesNamespace] `client.shared_consoles`
16944
17447
  attr_reader :shared_consoles
17448
+ # @return [SharingNamespace] `client.sharing`
17449
+ attr_reader :sharing
16945
17450
  # @return [SlackNamespace] `client.slack`
16946
17451
  attr_reader :slack
16947
17452
  # @return [SqlNamespace] `client.sql`
@@ -17014,11 +17519,13 @@ module Infrawrench
17014
17519
  @cost_report_notifications = CostReportNotificationsNamespace.new(@transport)
17015
17520
  @cost_reports = CostReportsNamespace.new(@transport)
17016
17521
  @cost_scenarios = CostScenariosNamespace.new(@transport)
17522
+ @cost_visibility = CostVisibilityNamespace.new(@transport)
17017
17523
  @costs = CostsNamespace.new(@transport)
17018
17524
  @credential_hygiene = CredentialHygieneNamespace.new(@transport)
17019
17525
  @credits = CreditsNamespace.new(@transport)
17020
17526
  @currency = CurrencyNamespace.new(@transport)
17021
17527
  @custom_graphs = CustomGraphsNamespace.new(@transport)
17528
+ @dashboard_notifications = DashboardNotificationsNamespace.new(@transport)
17022
17529
  @dashboards = DashboardsNamespace.new(@transport)
17023
17530
  @dependency_graph = DependencyGraphNamespace.new(@transport)
17024
17531
  @deployments = DeploymentsNamespace.new(@transport)
@@ -17061,6 +17568,7 @@ module Infrawrench
17061
17568
  @session_recordings = SessionRecordingsNamespace.new(@transport)
17062
17569
  @sftp = SftpNamespace.new(@transport)
17063
17570
  @shared_consoles = SharedConsolesNamespace.new(@transport)
17571
+ @sharing = SharingNamespace.new(@transport)
17064
17572
  @slack = SlackNamespace.new(@transport)
17065
17573
  @sql = SqlNamespace.new(@transport)
17066
17574
  @ssh_fanout = SshFanoutNamespace.new(@transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.43.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.45.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.43.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.45.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk