infrawrench-sdk 1.27.0 → 1.29.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: 96a06b86e4743e30126e43b7f566fa8381f1950a49f55625c197b33ddc4104c7
4
- data.tar.gz: 9187fdbd03e7a409feaba84e05e57ec8c44c7d93f068e8b71aec820d8cf8c883
3
+ metadata.gz: 5c362846225df8931e2bd779cc2f9dcce4145e43951c34bfe62a61711939cb91
4
+ data.tar.gz: 9bb8c9b3cf1cf4faf6464a00519ef4f5e8572920d9c90226e46aef5890bf7545
5
5
  SHA512:
6
- metadata.gz: 33cb2cee6d47c4b257e200232dcd4d24b55fbae0b3e77a8f1e1e018e8a71476946d08ce72daacb8b8d489ed040a2e90bcd985c408f65f32fd097d181472969c0
7
- data.tar.gz: f0e0a4e4ad6793a4846cde9db28027090692d6faa412061b9e5c75386332a8ab667e9298ed86e2680bd751373425de8c1346e9f439d12a6300ca1b4b6bf98131
6
+ metadata.gz: cde1ebf5a67b74bdc9f529ed386abbd581e3bec55c04bc36c80313eb8935f37c8ae30cfcd20af960d04e2b26a388b319699f3e1b4a83df6dd57c9925f31fd74d
7
+ data.tar.gz: fc6dbab1201c0794c74ecefa9d5f72d43f9404dfd76558587eb190d4a05f2ffe2f0e8ccc6a0710dbdf16cc31991894eb8bc85b2de258d6b28830a2db24a8491a
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.27.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `1.29.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
- 676 schemas, as RBS type aliases that steep and TypeProf can read.
44
+ 686 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.27.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.29.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.27.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.29.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.27.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v1.27.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.29.0)."
21
+ spec.description = "Generated Ruby client for the Infrawrench API (v1.29.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.27.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.29.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.27.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.29.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -2762,6 +2762,142 @@ module Infrawrench
2762
2762
  end
2763
2763
  end
2764
2764
 
2765
+ # `client.calendar.subscriptions`
2766
+ class CalendarSubscriptionsNamespace
2767
+ # @api private
2768
+ # @param transport [Transport]
2769
+ def initialize(transport)
2770
+ @transport = transport
2771
+ end
2772
+
2773
+ # Mint an iCalendar subscription URL
2774
+ #
2775
+ # Returns the only copy of the feed URL. The token in it is 32 random bytes,
2776
+ # stored as a SHA-256 hash, and is the sole credential on a route that runs
2777
+ # outside every auth layer — treat the URL as a secret. The URL deliberately
2778
+ # contains no organization id.
2779
+ #
2780
+ # An organization may hold 25 live subscriptions; revoking makes room.
2781
+ #
2782
+ # POST /api/org/{orgId}/calendar/subscriptions
2783
+ #
2784
+ # Raises on 400: Bad request
2785
+ #
2786
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
2787
+ # constructed with.
2788
+ # @param body [Hash, nil] Request body, shaped as `CalendarSubscriptionCreate`.
2789
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
2790
+ # @return [Hash] Parsed JSON, shaped as `CalendarSubscription` — see
2791
+ # `sig/infrawrench/sdk.rbs`.
2792
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
2793
+ def create(org_id: nil, body: nil, request_options: nil)
2794
+ @transport.request(
2795
+ http_method: "POST",
2796
+ path: "/api/org/{orgId}/calendar/subscriptions",
2797
+ path_params: { "orgId" => org_id },
2798
+ body: body,
2799
+ request_options: request_options
2800
+ )
2801
+ end
2802
+
2803
+ # Revoke an iCalendar subscription
2804
+ #
2805
+ # The URL stops working immediately. The row is kept, and revoking twice is
2806
+ # not an error.
2807
+ #
2808
+ # DELETE /api/org/{orgId}/calendar/subscriptions/{subscriptionId}
2809
+ #
2810
+ # Raises on 404: Not found
2811
+ #
2812
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
2813
+ # constructed with.
2814
+ # @param subscription_id [String]
2815
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
2816
+ # @return [Hash] Parsed JSON, shaped as `CalendarSubscription` — see
2817
+ # `sig/infrawrench/sdk.rbs`.
2818
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
2819
+ def delete(subscription_id:, org_id: nil, request_options: nil)
2820
+ @transport.request(
2821
+ http_method: "DELETE",
2822
+ path: "/api/org/{orgId}/calendar/subscriptions/{subscriptionId}",
2823
+ path_params: { "orgId" => org_id, "subscriptionId" => subscription_id },
2824
+ request_options: request_options
2825
+ )
2826
+ end
2827
+
2828
+ # List the organization's iCalendar subscriptions
2829
+ #
2830
+ # Feed URLs that have been minted, including revoked ones — a revoked row is
2831
+ # kept so the audit trail still resolves. The token itself is never
2832
+ # returned.
2833
+ #
2834
+ # GET /api/org/{orgId}/calendar/subscriptions
2835
+ #
2836
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
2837
+ # constructed with.
2838
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
2839
+ # @return [Hash] Parsed JSON, shaped as `CalendarSubscriptionList` — see
2840
+ # `sig/infrawrench/sdk.rbs`.
2841
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
2842
+ def get(org_id: nil, request_options: nil)
2843
+ @transport.request(
2844
+ http_method: "GET",
2845
+ path: "/api/org/{orgId}/calendar/subscriptions",
2846
+ path_params: { "orgId" => org_id },
2847
+ request_options: request_options
2848
+ )
2849
+ end
2850
+ end
2851
+
2852
+ # `client.calendar`
2853
+ class CalendarNamespace
2854
+ # @return [CalendarSubscriptionsNamespace] `client.calendar.subscriptions`
2855
+ attr_reader :subscriptions
2856
+
2857
+ # @api private
2858
+ # @param transport [Transport]
2859
+ def initialize(transport)
2860
+ @transport = transport
2861
+ @subscriptions = CalendarSubscriptionsNamespace.new(@transport)
2862
+ end
2863
+
2864
+ # List dated operational events in a window
2865
+ #
2866
+ # One time axis over six things the organization already stores: change
2867
+ # freezes, sleep/wake schedules, declared deadlines (certificates, domains,
2868
+ # keys and resource leases), commitment term ends, cron-triggered workflow
2869
+ # runs, and declared incidents. Nothing here is a new record — the calendar
2870
+ # is recomputed on every read, exactly as posture findings and backup
2871
+ # coverage are.
2872
+ #
2873
+ # The window defaults to the last 7 and next 35 days and may span at most
2874
+ # 400. Recurring sources are expanded to at most 400 occurrences each, so
2875
+ # one nightly schedule cannot flood a year-long query.
2876
+ #
2877
+ # GET /api/org/{orgId}/calendar
2878
+ #
2879
+ # Raises on 400: Bad request
2880
+ #
2881
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
2882
+ # constructed with.
2883
+ # @param from [String, nil] Inclusive lower bound. Defaults to 7 days ago.
2884
+ # @param to [String, nil] Exclusive upper bound. Defaults to 35 days ahead.
2885
+ # @param kinds [String, nil] Comma-separated `CalendarEventKind`s. Unknown members are
2886
+ # ignored rather than rejected; omitting the parameter returns every kind.
2887
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
2888
+ # @return [Hash] Parsed JSON, shaped as `CalendarResponse` — see `sig/infrawrench/sdk.rbs`.
2889
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
2890
+ def get(org_id: nil, from: nil, to: nil, kinds: nil, request_options: nil)
2891
+ @transport.request(
2892
+ http_method: "GET",
2893
+ path: "/api/org/{orgId}/calendar",
2894
+ path_params: { "orgId" => org_id },
2895
+ query: { "from" => from, "to" => to, "kinds" => kinds },
2896
+ request_options: request_options
2897
+ )
2898
+ end
2899
+ end
2900
+
2765
2901
  # `client.change_freezes`
2766
2902
  class ChangeFreezesNamespace
2767
2903
  # @api private
@@ -14958,6 +15094,49 @@ module Infrawrench
14958
15094
  end
14959
15095
  end
14960
15096
 
15097
+ # `client.wallboard`
15098
+ class WallboardNamespace
15099
+ # @api private
15100
+ # @param transport [Transport]
15101
+ def initialize(transport)
15102
+ @transport = transport
15103
+ end
15104
+
15105
+ # Everything that is wrong right now, for a screen on a wall
15106
+ #
15107
+ # A different reading of data the product already holds, built on one rule:
15108
+ # a wallboard may only show things that are true **right now** and that
15109
+ # somebody would cross a room to look at. There is deliberately no history,
15110
+ # no trend and no breakdown — those belong on the page you open when you do
15111
+ # walk over.
15112
+ #
15113
+ # Four sources — declared incidents, synthetic probes, query monitors and
15114
+ # account sync health — each guarded independently, because a television
15115
+ # that goes blank because one query threw is showing nothing to a room that
15116
+ # was relying on it.
15117
+ #
15118
+ # Session-authenticated on purpose: unlike the calendar feed or a public
15119
+ # status page, this carries incident titles, probe names and account names,
15120
+ # and a screen in an office is exactly what a visitor photographs. The
15121
+ # machine driving the wall signs in once.
15122
+ #
15123
+ # GET /api/org/{orgId}/wallboard
15124
+ #
15125
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
15126
+ # constructed with.
15127
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
15128
+ # @return [Hash] Parsed JSON, shaped as `WallboardResponse` — see `sig/infrawrench/sdk.rbs`.
15129
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
15130
+ def get(org_id: nil, request_options: nil)
15131
+ @transport.request(
15132
+ http_method: "GET",
15133
+ path: "/api/org/{orgId}/wallboard",
15134
+ path_params: { "orgId" => org_id },
15135
+ request_options: request_options
15136
+ )
15137
+ end
15138
+ end
15139
+
14961
15140
  # `client.workflow_approvals`
14962
15141
  class WorkflowApprovalsNamespace
14963
15142
  # @api private
@@ -15456,6 +15635,8 @@ module Infrawrench
15456
15635
  attr_reader :budgets
15457
15636
  # @return [BusinessMetricsNamespace] `client.business_metrics`
15458
15637
  attr_reader :business_metrics
15638
+ # @return [CalendarNamespace] `client.calendar`
15639
+ attr_reader :calendar
15459
15640
  # @return [ChangeFreezesNamespace] `client.change_freezes`
15460
15641
  attr_reader :change_freezes
15461
15642
  # @return [ChangesNamespace] `client.changes`
@@ -15594,6 +15775,8 @@ module Infrawrench
15594
15775
  attr_reader :tag_policy
15595
15776
  # @return [TeamNamespace] `client.team`
15596
15777
  attr_reader :team
15778
+ # @return [WallboardNamespace] `client.wallboard`
15779
+ attr_reader :wallboard
15597
15780
  # @return [WorkflowApprovalsNamespace] `client.workflow_approvals`
15598
15781
  attr_reader :workflow_approvals
15599
15782
  # @return [WorkflowSecretsNamespace] `client.workflow_secrets`
@@ -15625,6 +15808,7 @@ module Infrawrench
15625
15808
  @blast_radius = BlastRadiusNamespace.new(@transport)
15626
15809
  @budgets = BudgetsNamespace.new(@transport)
15627
15810
  @business_metrics = BusinessMetricsNamespace.new(@transport)
15811
+ @calendar = CalendarNamespace.new(@transport)
15628
15812
  @change_freezes = ChangeFreezesNamespace.new(@transport)
15629
15813
  @changes = ChangesNamespace.new(@transport)
15630
15814
  @chat = ChatNamespace.new(@transport)
@@ -15694,6 +15878,7 @@ module Infrawrench
15694
15878
  @storage = StorageNamespace.new(@transport)
15695
15879
  @tag_policy = TagPolicyNamespace.new(@transport)
15696
15880
  @team = TeamNamespace.new(@transport)
15881
+ @wallboard = WallboardNamespace.new(@transport)
15697
15882
  @workflow_approvals = WorkflowApprovalsNamespace.new(@transport)
15698
15883
  @workflow_secrets = WorkflowSecretsNamespace.new(@transport)
15699
15884
  @workflows = WorkflowsNamespace.new(@transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.27.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.29.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.27.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.29.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.27.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.29.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.27.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.29.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.27.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.29.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.27.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.29.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.27.0"
18
+ VERSION = "1.29.0"
19
19
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v1.27.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v1.29.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.27.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.29.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.27.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v1.29.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.27.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.29.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1065,6 +1065,86 @@ module Infrawrench
1065
1065
  # Spec schema: `BusinessMetricValuesInput`.
1066
1066
  type business_metric_values_input = { "values" => Array[{ "date" => String, "value" => Numeric }] }
1067
1067
 
1068
+ # Spec schema: `CalendarEvent`.
1069
+ type calendar_event = {
1070
+ "id" => String,
1071
+ "kind" => "change-freeze"
1072
+ | "sleep-schedule"
1073
+ | "expiry"
1074
+ | "commitment-expiry"
1075
+ | "workflow-schedule"
1076
+ | "incident",
1077
+ "title" => String,
1078
+ "detail" => String | nil,
1079
+ "startsAt" => String,
1080
+ "endsAt" => String | nil,
1081
+ "openEnded" => bool,
1082
+ "allDay" => bool,
1083
+ "severity" => "critical" | "warning" | "info",
1084
+ "link" => calendar_event_link
1085
+ }
1086
+
1087
+ # Where opening the event should go — a hint rather than a URL, because each
1088
+ # surface addresses its own pages differently.
1089
+ #
1090
+ # Spec schema: `CalendarEventLink`.
1091
+ type calendar_event_link = { "target" => "resource", "accountId" => String, "resourceId" => String }
1092
+ | {
1093
+ "target" => "tab",
1094
+ "tab" => "expiring" | "incidents" | "workflows" | "costs" | "settings"
1095
+ }
1096
+ | nil
1097
+
1098
+ # Spec schema: `CalendarResponse`.
1099
+ type calendar_response = {
1100
+ "events" => Array[calendar_event],
1101
+ "from" => String,
1102
+ "to" => String,
1103
+ "emptyKinds" => Array["change-freeze"
1104
+ | "sleep-schedule"
1105
+ | "expiry"
1106
+ | "commitment-expiry"
1107
+ | "workflow-schedule"
1108
+ | "incident"],
1109
+ "failedKinds" => Array["change-freeze"
1110
+ | "sleep-schedule"
1111
+ | "expiry"
1112
+ | "commitment-expiry"
1113
+ | "workflow-schedule"
1114
+ | "incident"],
1115
+ "generatedAt" => String
1116
+ }
1117
+
1118
+ # Spec schema: `CalendarSubscription`.
1119
+ type calendar_subscription = {
1120
+ "id" => String,
1121
+ "name" => String,
1122
+ "kinds" => Array["change-freeze"
1123
+ | "sleep-schedule"
1124
+ | "expiry"
1125
+ | "commitment-expiry"
1126
+ | "workflow-schedule"
1127
+ | "incident"],
1128
+ ?"url" => String,
1129
+ "createdAt" => String,
1130
+ "lastAccessedAt" => String | nil,
1131
+ "revokedAt" => String | nil
1132
+ }
1133
+
1134
+ # Spec schema: `CalendarSubscriptionCreate`.
1135
+ type calendar_subscription_create = {
1136
+ "name" => String,
1137
+ ?"kinds" => Array["change-freeze"
1138
+ | "sleep-schedule"
1139
+ | "expiry"
1140
+ | "commitment-expiry"
1141
+ | "workflow-schedule"
1142
+ | "incident"]
1143
+ }
1144
+
1145
+ # Spec schema: `CalendarSubscriptionList`.
1146
+ type calendar_subscription_list = { "subscriptions" => Array[calendar_subscription] }
1147
+
1068
1148
  # Spec schema: `CapacityCheckoutRequest`.
1069
1149
  type capacity_checkout_request = { ?"quantity" => Integer }
1070
1150
 
@@ -6558,6 +6638,8 @@ module Infrawrench
6558
6638
  | "posture"
6559
6639
  | "access-review"
6560
6640
  | "backups"
6641
+ | "wallboard"
6642
+ | "calendar"
6561
6643
  | "dns"
6562
6644
  | "iac"
6563
6645
  | "environment-diff"
@@ -6763,6 +6845,37 @@ module Infrawrench
6763
6845
  # Spec schema: `ValidateTabsResponse`.
6764
6846
  type validate_tabs_response = { "validTabIds" => Array[String] }
6765
6847
 
6848
+ # Spec schema: `WallboardFailureLine`.
6849
+ type wallboard_failure_line = { "id" => String, "label" => String, "detail" => String, "since" => String | nil }
6850
+
6851
+ # Spec schema: `WallboardIncidentLine`.
6852
+ type wallboard_incident_line = {
6853
+ "id" => String,
6854
+ "title" => String,
6855
+ "severity" => String,
6856
+ "startedAt" => String,
6857
+ "status" => String
6858
+ }
6859
+
6860
+ # Spec schema: `WallboardResponse`.
6861
+ type wallboard_response = {
6862
+ "status" => "ok" | "degraded" | "down",
6863
+ "tiles" => Array[wallboard_tile],
6864
+ "incidents" => Array[wallboard_incident_line],
6865
+ "failures" => Array[wallboard_failure_line],
6866
+ "failedSources" => Array[String],
6867
+ "generatedAt" => String
6868
+ }
6869
+
6870
+ # Spec schema: `WallboardTile`.
6871
+ type wallboard_tile = {
6872
+ "id" => String,
6873
+ "label" => String,
6874
+ "value" => String,
6875
+ "detail" => String | nil,
6876
+ "status" => "ok" | "degraded" | "down"
6877
+ }
6878
+
6766
6879
  # Spec schema: `WorkflowApproval`.
6767
6880
  type workflow_approval = {
6768
6881
  "id" => String,
@@ -7063,6 +7176,19 @@ module Infrawrench
7063
7176
  def update: (id: String, body: business_metric_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> business_metric
7064
7177
  end
7065
7178
 
7179
+ class CalendarSubscriptionsNamespace
7180
+ def initialize: (Transport) -> void
7181
+ def create: (?org_id: String?, ?body: calendar_subscription_create?, ?request_options: Hash[Symbol, untyped]?) -> calendar_subscription
7182
+ def delete: (subscription_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> calendar_subscription
7183
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> calendar_subscription_list
7184
+ end
7185
+
7186
+ class CalendarNamespace
7187
+ attr_reader subscriptions: CalendarSubscriptionsNamespace
7188
+ def initialize: (Transport) -> void
7189
+ def get: (?org_id: String?, ?from: String?, ?to: String?, ?kinds: String?, ?request_options: Hash[Symbol, untyped]?) -> calendar_response
7190
+ end
7191
+
7066
7192
  class ChangeFreezesNamespace
7067
7193
  def initialize: (Transport) -> void
7068
7194
  def create: (body: change_freeze_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> change_freeze
@@ -7959,6 +8085,11 @@ module Infrawrench
7959
8085
  def permissions: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> permission_catalog
7960
8086
  end
7961
8087
 
8088
+ class WallboardNamespace
8089
+ def initialize: (Transport) -> void
8090
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> wallboard_response
8091
+ end
8092
+
7962
8093
  class WorkflowApprovalsNamespace
7963
8094
  def initialize: (Transport) -> void
7964
8095
  def approve: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> workflow_approval
@@ -8016,6 +8147,7 @@ module Infrawrench
8016
8147
  attr_reader blast_radius: BlastRadiusNamespace
8017
8148
  attr_reader budgets: BudgetsNamespace
8018
8149
  attr_reader business_metrics: BusinessMetricsNamespace
8150
+ attr_reader calendar: CalendarNamespace
8019
8151
  attr_reader change_freezes: ChangeFreezesNamespace
8020
8152
  attr_reader changes: ChangesNamespace
8021
8153
  attr_reader chat: ChatNamespace
@@ -8085,6 +8217,7 @@ module Infrawrench
8085
8217
  attr_reader storage: StorageNamespace
8086
8218
  attr_reader tag_policy: TagPolicyNamespace
8087
8219
  attr_reader team: TeamNamespace
8220
+ attr_reader wallboard: WallboardNamespace
8088
8221
  attr_reader workflow_approvals: WorkflowApprovalsNamespace
8089
8222
  attr_reader workflow_secrets: WorkflowSecretsNamespace
8090
8223
  attr_reader workflows: WorkflowsNamespace
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.27.0
4
+ version: 1.29.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Infrawrench LLC
@@ -9,9 +9,9 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2026-08-16 00:00:00.000000000 Z
12
+ date: 2026-08-18 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: Generated Ruby client for the Infrawrench API (v1.27.0). Covers the published
14
+ description: Generated Ruby client for the Infrawrench API (v1.29.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.27.0).
61
+ summary: Generated Ruby client for the Infrawrench API (v1.29.0).
62
62
  test_files: []