infrawrench-sdk 0.28.0 → 0.30.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.
@@ -1,7 +1,7 @@
1
- # infrawrench-sdk v0.28.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v0.30.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.28.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.30.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -118,6 +118,17 @@ module Infrawrench
118
118
  "pluginLogoSvg" => String
119
119
  }
120
120
 
121
+ # Spec schema: `AccountTagCompliance`.
122
+ type account_tag_compliance = {
123
+ "accountId" => String,
124
+ "pluginId" => String,
125
+ "displayName" => String,
126
+ "totalResources" => Integer,
127
+ "evaluated" => Integer,
128
+ "compliant" => Integer,
129
+ "score" => Integer | nil
130
+ }
131
+
121
132
  # Spec schema: `ActiveTunnel`.
122
133
  type active_tunnel = { "localPort" => Integer, "sshHost" => String, "remotePort" => Integer }
123
134
 
@@ -165,6 +176,31 @@ module Infrawrench
165
176
  "hiddenFieldKeys" => Array[String]
166
177
  }
167
178
 
179
+ # Spec schema: `AllocationRule`.
180
+ type allocation_rule = {
181
+ "id" => String,
182
+ "costCentreId" => String,
183
+ "priority" => Integer,
184
+ "match" => allocation_rule_match,
185
+ "createdAt" => String,
186
+ "updatedAt" => String
187
+ }
188
+
189
+ # Spec schema: `AllocationRuleInput`.
190
+ type allocation_rule_input = { "costCentreId" => String, "priority" => Integer, "match" => allocation_rule_match }
191
+
192
+ # All set fields must match (AND). A rule with no fields is a catch-all that
193
+ # claims everything reaching it.
194
+ #
195
+ # Spec schema: `AllocationRuleMatch`.
196
+ type allocation_rule_match = {
197
+ ?"tagKey" => String,
198
+ ?"tagValue" => String,
199
+ ?"accountId" => String,
200
+ ?"pluginId" => String,
201
+ ?"service" => String
202
+ }
203
+
168
204
  # Spec schema: `ApiKey`.
169
205
  type api_key = {
170
206
  "id" => String,
@@ -460,7 +496,8 @@ module Infrawrench
460
496
  "baselineCents" => Integer,
461
497
  "thresholdCents" => Integer,
462
498
  "detectedAt" => String,
463
- "notifiedAt" => String | nil
499
+ "notifiedAt" => String | nil,
500
+ "hints" => Array[String]
464
501
  }
465
502
 
466
503
  # Spec schema: `CostAnomalySettings`.
@@ -474,6 +511,18 @@ module Infrawrench
474
511
  # Spec schema: `CostAnomalySettingsView`.
475
512
  type cost_anomaly_settings_view = cost_anomaly_settings & { "smsConfigured" => bool }
476
513
 
514
+ # Spec schema: `CostCentre`.
515
+ type cost_centre = {
516
+ "id" => String,
517
+ "name" => String,
518
+ "description" => String | nil,
519
+ "createdAt" => String,
520
+ "updatedAt" => String
521
+ }
522
+
523
+ # Spec schema: `CostCentreInput`.
524
+ type cost_centre_input = { "name" => String, ?"description" => String }
525
+
477
526
  # Spec schema: `CostDimension`.
478
527
  type cost_dimension = "provider" | "account" | "service" | "region" | "resource" | "tag"
479
528
 
@@ -1026,6 +1075,59 @@ module Infrawrench
1026
1075
  # Spec schema: `Error`.
1027
1076
  type error = { "error" => String }
1028
1077
 
1078
+ # Spec schema: `ExpiryAlertSettings`.
1079
+ type expiry_alert_settings = { "enabled" => bool, "leadDays" => Integer, "lastNotifiedAt" => String | nil }
1080
+
1081
+ # Spec schema: `ExpiryAlertSettingsUpdate`.
1082
+ type expiry_alert_settings_update = { ?"enabled" => bool, ?"leadDays" => Integer }
1083
+
1084
+ # Spec schema: `ExpiryItem`.
1085
+ type expiry_item = {
1086
+ "resourceId" => String,
1087
+ "pluginId" => plugin_id,
1088
+ "pluginName" => String,
1089
+ "resourceTypeId" => String,
1090
+ "resourceTypeName" => String,
1091
+ "accountId" => String,
1092
+ "accountName" => String,
1093
+ "displayName" => String,
1094
+ "externalId" => String | nil,
1095
+ "fieldKey" => String,
1096
+ "kind" => "tls-cert"
1097
+ | "domain"
1098
+ | "api-token"
1099
+ | "access-key"
1100
+ | "k8s-cert"
1101
+ | "ssh-key"
1102
+ | "secret-version"
1103
+ | "other",
1104
+ "label" => String,
1105
+ "basis" => "expiry" | "age",
1106
+ "dueAt" => String,
1107
+ "daysRemaining" => Integer,
1108
+ "severity" => "expired" | "critical" | "warning" | "upcoming" | "ok"
1109
+ }
1110
+
1111
+ # Spec schema: `ExpiryListResponse`.
1112
+ type expiry_list_response = {
1113
+ "items" => Array[expiry_item],
1114
+ "totalCount" => Integer,
1115
+ "counts" => expiry_severity_counts,
1116
+ "leadDays" => Integer,
1117
+ "generatedAt" => String
1118
+ }
1119
+
1120
+ # Item count per severity; every bucket present, zeros included.
1121
+ #
1122
+ # Spec schema: `ExpirySeverityCounts`.
1123
+ type expiry_severity_counts = {
1124
+ "expired" => Integer,
1125
+ "critical" => Integer,
1126
+ "warning" => Integer,
1127
+ "upcoming" => Integer,
1128
+ "ok" => Integer
1129
+ }
1130
+
1029
1131
  # Spec schema: `ExportCredentialRequest`.
1030
1132
  type export_credential_request = {
1031
1133
  "resourceId" => resource_id,
@@ -1137,6 +1239,69 @@ module Infrawrench
1137
1239
  # Spec schema: `LiteralAssociationRequest`.
1138
1240
  type literal_association_request = { "resourceId" => resource_id, "fieldKey" => String, "plaintextValue" => String }
1139
1241
 
1242
+ # Spec schema: `LogCapableResource`.
1243
+ type log_capable_resource = {
1244
+ "resourceId" => String,
1245
+ "accountId" => String,
1246
+ "accountName" => String,
1247
+ "pluginId" => plugin_id,
1248
+ "resourceTypeId" => String,
1249
+ "displayName" => String
1250
+ }
1251
+
1252
+ # Spec schema: `LogCapableResourceList`.
1253
+ type log_capable_resource_list = { "resources" => Array[log_capable_resource] }
1254
+
1255
+ # Spec schema: `LogStreamSelector`.
1256
+ type log_stream_selector = {
1257
+ "resourceId" => String,
1258
+ "accountId" => String,
1259
+ "pluginId" => plugin_id,
1260
+ "resourceTypeId" => String,
1261
+ ?"container" => String
1262
+ }
1263
+
1264
+ # Spec schema: `LogWorkspaceQuery`.
1265
+ type log_workspace_query = {
1266
+ "id" => String,
1267
+ "name" => String,
1268
+ "resources" => Array[log_stream_selector],
1269
+ "search" => String,
1270
+ "alertEnabled" => bool,
1271
+ "lastEvalAt" => String | nil,
1272
+ "lastMatchAt" => String | nil,
1273
+ "lastAlertedAt" => String | nil,
1274
+ "lastEvalError" => String | nil,
1275
+ "lastMatchSample" => String | nil,
1276
+ "createdAt" => String,
1277
+ "updatedAt" => String
1278
+ }
1279
+
1280
+ # Spec schema: `LogWorkspaceQueryConflict`.
1281
+ type log_workspace_query_conflict = { "error" => String }
1282
+
1283
+ # Spec schema: `LogWorkspaceQueryCreate`.
1284
+ type log_workspace_query_create = {
1285
+ "name" => String,
1286
+ "resources" => Array[log_stream_selector],
1287
+ "search" => String,
1288
+ ?"alertEnabled" => bool
1289
+ }
1290
+
1291
+ # Spec schema: `LogWorkspaceQueryList`.
1292
+ type log_workspace_query_list = { "queries" => Array[log_workspace_query] }
1293
+
1294
+ # Spec schema: `LogWorkspaceQueryUpdate`.
1295
+ type log_workspace_query_update = {
1296
+ ?"name" => String,
1297
+ ?"resources" => Array[log_stream_selector],
1298
+ ?"search" => String,
1299
+ ?"alertEnabled" => bool
1300
+ }
1301
+
1302
+ # Spec schema: `LogWorkspaceQueryUpdateConflict`.
1303
+ type log_workspace_query_update_conflict = { "error" => String }
1304
+
1140
1305
  # Spec schema: `LogsRequest`.
1141
1306
  type logs_request = {
1142
1307
  "accountId" => String,
@@ -1161,6 +1326,83 @@ module Infrawrench
1161
1326
  "permissions" => Array[permission]
1162
1327
  }
1163
1328
 
1329
+ # Spec schema: `MetricAlertEvent`.
1330
+ type metric_alert_event = {
1331
+ "id" => String,
1332
+ "ruleId" => String,
1333
+ "ruleName" => String,
1334
+ "resourceId" => String,
1335
+ "resourceName" => String,
1336
+ "status" => "firing" | "resolved",
1337
+ "observedValue" => Numeric,
1338
+ "firedAt" => String,
1339
+ "resolvedAt" => String | nil
1340
+ }
1341
+
1342
+ # Spec schema: `MetricAlertRule`.
1343
+ type metric_alert_rule = {
1344
+ "name" => String,
1345
+ "pluginId" => String | nil,
1346
+ "resourceTypeId" => String | nil,
1347
+ "tagKey" => String | nil,
1348
+ "tagValue" => String | nil,
1349
+ "metricKey" => String,
1350
+ "comparator" => ">" | ">=" | "<" | "<=",
1351
+ "threshold" => Numeric,
1352
+ "forMinutes" => Integer,
1353
+ "cooldownMinutes" => Integer,
1354
+ "enabled" => bool,
1355
+ "id" => String,
1356
+ "lastEvalAt" => String | nil,
1357
+ "createdAt" => String,
1358
+ "updatedAt" => String
1359
+ }
1360
+
1361
+ # Spec schema: `MetricAlertRuleInput`.
1362
+ type metric_alert_rule_input = {
1363
+ "name" => String,
1364
+ "pluginId" => String | nil,
1365
+ "resourceTypeId" => String | nil,
1366
+ "tagKey" => String | nil,
1367
+ "tagValue" => String | nil,
1368
+ "metricKey" => String,
1369
+ "comparator" => ">" | ">=" | "<" | "<=",
1370
+ "threshold" => Numeric,
1371
+ "forMinutes" => Integer,
1372
+ "cooldownMinutes" => Integer,
1373
+ "enabled" => bool
1374
+ }
1375
+
1376
+ # Spec schema: `MetricAlertRuleWithStatus`.
1377
+ type metric_alert_rule_with_status = {
1378
+ "name" => String,
1379
+ "pluginId" => String | nil,
1380
+ "resourceTypeId" => String | nil,
1381
+ "tagKey" => String | nil,
1382
+ "tagValue" => String | nil,
1383
+ "metricKey" => String,
1384
+ "comparator" => ">" | ">=" | "<" | "<=",
1385
+ "threshold" => Numeric,
1386
+ "forMinutes" => Integer,
1387
+ "cooldownMinutes" => Integer,
1388
+ "enabled" => bool,
1389
+ "id" => String,
1390
+ "lastEvalAt" => String | nil,
1391
+ "createdAt" => String,
1392
+ "updatedAt" => String,
1393
+ "firingCount" => Integer,
1394
+ "matchingResourceCount" => Integer
1395
+ }
1396
+
1397
+ # Spec schema: `MetricAlertSelectorOptions`.
1398
+ type metric_alert_selector_options = {
1399
+ "plugins" => Array[{ "pluginId" => String, "resourceTypeIds" => Array[String] }],
1400
+ "tagKeys" => Array[String]
1401
+ }
1402
+
1403
+ # Spec schema: `MetricAlertSelectorPreview`.
1404
+ type metric_alert_selector_preview = { "matchingResourceCount" => Integer, "sampleResourceNames" => Array[String] }
1405
+
1164
1406
  # Spec schema: `MetricSeries`.
1165
1407
  type metric_series = {
1166
1408
  "label" => String,
@@ -1168,6 +1410,9 @@ module Infrawrench
1168
1410
  "points" => Array[{ "timestamp" => Numeric, "value" => Numeric }]
1169
1411
  }
1170
1412
 
1413
+ # Spec schema: `MetricSeriesKey`.
1414
+ type metric_series_key = { "label" => String, "unit" => String, "resourceCount" => Integer }
1415
+
1171
1416
  # Spec schema: `MetricsRequest`.
1172
1417
  type metrics_request = {
1173
1418
  "accountId" => String,
@@ -1180,6 +1425,93 @@ module Infrawrench
1180
1425
  # Spec schema: `MetricsResponse`.
1181
1426
  type metrics_response = { "series" => Array[metric_series] }
1182
1427
 
1428
+ # Spec schema: `MomentEvent`.
1429
+ type moment_event = {
1430
+ "id" => String,
1431
+ "feed" => moment_feed_id,
1432
+ "kind" => String,
1433
+ "timestamp" => String,
1434
+ "title" => String,
1435
+ ?"detail" => String | nil,
1436
+ "severity" => moment_severity,
1437
+ ?"pluginId" => String | nil,
1438
+ ?"accountId" => String | nil,
1439
+ ?"accountName" => String | nil,
1440
+ ?"resourceId" => String | nil,
1441
+ ?"resourceTypeId" => String | nil,
1442
+ ?"resourceName" => String | nil,
1443
+ ?"link" => moment_event_link
1444
+ }
1445
+
1446
+ # Spec schema: `MomentEventLink`.
1447
+ type moment_event_link = {
1448
+ "kind" => "resource"
1449
+ | "changes"
1450
+ | "incident"
1451
+ | "costs"
1452
+ | "workflow-run"
1453
+ | "deployment"
1454
+ | "audit"
1455
+ | "freeze"
1456
+ | "expiring",
1457
+ ?"id" => String | nil,
1458
+ ?"parentId" => String | nil,
1459
+ ?"url" => String | nil
1460
+ }
1461
+ | nil
1462
+
1463
+ # One of the indexed feeds the moment union draws from.
1464
+ #
1465
+ # Spec schema: `MomentFeedId`.
1466
+ type moment_feed_id = "changes"
1467
+ | "statusIncidents"
1468
+ | "costAnomalies"
1469
+ | "workflowRuns"
1470
+ | "deployments"
1471
+ | "audit"
1472
+ | "freezes"
1473
+ | "driftAlerts"
1474
+ | "expiryAlerts"
1475
+
1476
+ # Spec schema: `MomentFeedStatus`.
1477
+ type moment_feed_status = {
1478
+ "feed" => moment_feed_id,
1479
+ "status" => "ok" | "omitted" | "error",
1480
+ ?"error" => String | nil,
1481
+ ?"truncated" => bool
1482
+ }
1483
+
1484
+ # A provider incident whose span overlaps the window — returned alongside the
1485
+ # events so clients can badge events that fall inside it ("during DigitalOcean
1486
+ # incident").
1487
+ #
1488
+ # Spec schema: `MomentIncidentSpan`.
1489
+ type moment_incident_span = {
1490
+ "id" => String,
1491
+ "pluginId" => String,
1492
+ "pluginName" => String,
1493
+ "title" => String,
1494
+ "impact" => "maintenance" | "minor" | "major" | "critical",
1495
+ "startedAt" => String,
1496
+ ?"resolvedAt" => String | nil,
1497
+ ?"url" => String | nil
1498
+ }
1499
+
1500
+ # Spec schema: `MomentResponse`.
1501
+ type moment_response = {
1502
+ "at" => String,
1503
+ "from" => String,
1504
+ "to" => String,
1505
+ "windowMinutes" => Integer,
1506
+ "generatedAt" => String,
1507
+ "feeds" => Array[moment_feed_status],
1508
+ "events" => Array[moment_event],
1509
+ "incidents" => Array[moment_incident_span]
1510
+ }
1511
+
1512
+ # Spec schema: `MomentSeverity`.
1513
+ type moment_severity = "info" | "warning" | "critical"
1514
+
1183
1515
  # Spec schema: `MsTeamsStatus`.
1184
1516
  type ms_teams_status = { "webhooks" => Array[ms_teams_webhook] }
1185
1517
 
@@ -1191,8 +1523,12 @@ module Infrawrench
1191
1523
  "syncIncidents" => bool,
1192
1524
  "budgetAlerts" => bool,
1193
1525
  "anomalyAlerts" => bool,
1526
+ "metricAlerts" => bool,
1194
1527
  "resourceDrift" => bool,
1195
1528
  "workflowPages" => bool,
1529
+ "providerIncidents" => bool,
1530
+ "expiryAlerts" => bool,
1531
+ "logMatchAlerts" => bool,
1196
1532
  "weeklyDigest" => bool
1197
1533
  }
1198
1534
 
@@ -1203,8 +1539,12 @@ module Infrawrench
1203
1539
  ?"syncIncidents" => bool,
1204
1540
  ?"budgetAlerts" => bool,
1205
1541
  ?"anomalyAlerts" => bool,
1542
+ ?"metricAlerts" => bool,
1206
1543
  ?"resourceDrift" => bool,
1207
1544
  ?"workflowPages" => bool,
1545
+ ?"providerIncidents" => bool,
1546
+ ?"expiryAlerts" => bool,
1547
+ ?"logMatchAlerts" => bool,
1208
1548
  ?"weeklyDigest" => bool
1209
1549
  }
1210
1550
 
@@ -1214,8 +1554,12 @@ module Infrawrench
1214
1554
  ?"syncIncidents" => bool,
1215
1555
  ?"budgetAlerts" => bool,
1216
1556
  ?"anomalyAlerts" => bool,
1557
+ ?"metricAlerts" => bool,
1217
1558
  ?"resourceDrift" => bool,
1218
1559
  ?"workflowPages" => bool,
1560
+ ?"providerIncidents" => bool,
1561
+ ?"expiryAlerts" => bool,
1562
+ ?"logMatchAlerts" => bool,
1219
1563
  ?"weeklyDigest" => bool
1220
1564
  }
1221
1565
 
@@ -1248,6 +1592,31 @@ module Infrawrench
1248
1592
  # Spec schema: `OrgMembership`.
1249
1593
  type org_membership = { "id" => String, "displayName" => String, "role" => organization_role }
1250
1594
 
1595
+ # Spec schema: `OrgStatusIncident`.
1596
+ type org_status_incident = {
1597
+ "id" => String,
1598
+ "pluginId" => String,
1599
+ "pluginName" => String,
1600
+ "title" => String,
1601
+ "state" => provider_incident_state,
1602
+ "impact" => provider_incident_impact,
1603
+ "url" => String | nil,
1604
+ "startedAt" => String,
1605
+ "resolvedAt" => String | nil,
1606
+ "lastUpdateAt" => String | nil,
1607
+ "lastUpdateText" => String | nil,
1608
+ "regions" => Array[String],
1609
+ "services" => Array[String],
1610
+ "providerWide" => bool,
1611
+ "affectedResourceCount" => Integer,
1612
+ "affectedRegions" => Array[String],
1613
+ "sampleResources" => Array[provider_incident_resource_sample],
1614
+ "overlappingChangeCount" => Integer
1615
+ }
1616
+
1617
+ # Spec schema: `OrgStatusIncidentsResponse`.
1618
+ type org_status_incidents_response = { "incidents" => Array[org_status_incident] }
1619
+
1251
1620
  # Spec schema: `Organization`.
1252
1621
  type organization = { "id" => String, "displayName" => String }
1253
1622
 
@@ -1294,6 +1663,46 @@ module Infrawrench
1294
1663
  "lastSyncedAt" => String | nil
1295
1664
  }
1296
1665
 
1666
+ # Spec schema: `OversizedAccountGroup`.
1667
+ type oversized_account_group = {
1668
+ "accountId" => String,
1669
+ "accountName" => String,
1670
+ "pluginId" => plugin_id,
1671
+ "pluginName" => String,
1672
+ "resources" => Array[oversized_resource]
1673
+ }
1674
+
1675
+ # Spec schema: `OversizedResource`.
1676
+ type oversized_resource = {
1677
+ "id" => String,
1678
+ "pluginId" => plugin_id,
1679
+ "resourceTypeId" => String,
1680
+ "resourceTypeName" => String,
1681
+ "displayName" => String,
1682
+ "externalId" => String | nil,
1683
+ "sizeFieldKey" => String,
1684
+ "region" => String | nil,
1685
+ "currentSize" => oversized_size_summary,
1686
+ "recommendedSize" => oversized_size_summary,
1687
+ "cpuP95" => Numeric,
1688
+ "memoryP95" => Numeric | nil,
1689
+ "memoryMeasured" => bool,
1690
+ "projectedCpuP95" => Numeric,
1691
+ "currency" => String,
1692
+ "monthlySaving" => Numeric | nil,
1693
+ "resizeNote" => String | nil,
1694
+ "lastSyncedAt" => String | nil
1695
+ }
1696
+
1697
+ # Spec schema: `OversizedSizeSummary`.
1698
+ type oversized_size_summary = {
1699
+ "id" => String,
1700
+ "label" => String,
1701
+ "vcpus" => Integer,
1702
+ "memoryMb" => Integer,
1703
+ "priceMonthly" => Numeric | nil
1704
+ }
1705
+
1297
1706
  # Spec schema: `OwnershipBlocker`.
1298
1707
  type ownership_blocker = { "id" => String, "name" => String, "memberCount" => Integer }
1299
1708
 
@@ -1364,9 +1773,12 @@ module Infrawrench
1364
1773
  | "costs:write"
1365
1774
  | "budgets:read"
1366
1775
  | "budgets:write"
1776
+ | "metric-alerts:read"
1777
+ | "metric-alerts:write"
1367
1778
  | "freezes:read"
1368
1779
  | "freezes:write"
1369
1780
  | "freezes:override"
1781
+ | "tag-policy:override"
1370
1782
  | "audit:read"
1371
1783
  | "team:read"
1372
1784
  | "team:invite"
@@ -1500,9 +1912,64 @@ module Infrawrench
1500
1912
  "id" => String,
1501
1913
  "displayName" => String,
1502
1914
  "logoSvg" => String,
1503
- "credentialFields" => Array[credential_field]
1915
+ "credentialFields" => Array[credential_field],
1916
+ "preflight" => preflight_declaration
1917
+ }
1918
+
1919
+ # Spec schema: `PolicyTemplate`.
1920
+ type policy_template = {
1921
+ "formatLabel" => String,
1922
+ "language" => "json" | "yaml" | "text",
1923
+ "document" => String,
1924
+ ?"instructions" => String,
1925
+ ?"helpLink" => { "label" => String, "url" => String }
1926
+ }
1927
+
1928
+ # Spec schema: `PolicyTemplateResponse`.
1929
+ type policy_template_response = { "template" => policy_template }
1930
+
1931
+ # Spec schema: `PreflightCapability`.
1932
+ type preflight_capability = {
1933
+ "id" => String,
1934
+ "label" => String,
1935
+ ?"description" => String,
1936
+ "requiredPermissions" => Array[preflight_permission],
1937
+ ?"essential" => bool
1504
1938
  }
1505
1939
 
1940
+ # Spec schema: `PreflightCheck`.
1941
+ type preflight_check = {
1942
+ "capabilityId" => String,
1943
+ "status" => "ok" | "missing" | "unknown",
1944
+ "missingPermissions" => Array[preflight_permission],
1945
+ "message" => String | nil,
1946
+ "helpLink" => { "label" => String, "url" => String } | nil
1947
+ }
1948
+
1949
+ # Declared when the plugin supports credential preflight (per-capability
1950
+ # permission checks). `null` for plugins without it.
1951
+ #
1952
+ # Spec schema: `PreflightDeclaration`.
1953
+ type preflight_declaration = {
1954
+ "capabilities" => Array[preflight_capability],
1955
+ ?"templateFormat" => { "label" => String, "language" => "json" | "yaml" | "text" }
1956
+ }
1957
+ | nil
1958
+
1959
+ # Spec schema: `PreflightPermission`.
1960
+ type preflight_permission = { "id" => String, "label" => String }
1961
+
1962
+ # Spec schema: `PreflightReport`.
1963
+ type preflight_report = {
1964
+ "pluginId" => String,
1965
+ "supported" => bool,
1966
+ "identity" => String | nil,
1967
+ "checks" => Array[preflight_check]
1968
+ }
1969
+
1970
+ # Spec schema: `PreflightRequest`.
1971
+ type preflight_request = { "pluginId" => String, "credentials" => Hash[String, String], ?"bastionId" => String | nil }
1972
+
1506
1973
  # Spec schema: `ProbeRequest`.
1507
1974
  type probe_request = {
1508
1975
  "items" => Array[{
@@ -1548,6 +2015,24 @@ module Infrawrench
1548
2015
  "createdAt" => String
1549
2016
  }
1550
2017
 
2018
+ # Normalized incident severity, least to most severe.
2019
+ #
2020
+ # Spec schema: `ProviderIncidentImpact`.
2021
+ type provider_incident_impact = "maintenance" | "minor" | "major" | "critical"
2022
+
2023
+ # Spec schema: `ProviderIncidentResourceSample`.
2024
+ type provider_incident_resource_sample = {
2025
+ "id" => String,
2026
+ "displayName" => String,
2027
+ "resourceTypeId" => String,
2028
+ ?"region" => String | nil
2029
+ }
2030
+
2031
+ # Normalized incident lifecycle state as the provider reports it.
2032
+ #
2033
+ # Spec schema: `ProviderIncidentState`.
2034
+ type provider_incident_state = "investigating" | "identified" | "monitoring" | "resolved"
2035
+
1551
2036
  # Spec schema: `PushedCostRow`.
1552
2037
  type pushed_cost_row = {
1553
2038
  "date" => String,
@@ -1571,6 +2056,9 @@ module Infrawrench
1571
2056
  ?"resourceIds" => Array[resource_id]
1572
2057
  }
1573
2058
 
2059
+ # Spec schema: `RequiredTag`.
2060
+ type required_tag = { "key" => String, ?"allowedValues" => Array[String] }
2061
+
1574
2062
  # Spec schema: `Resource`.
1575
2063
  type resource = {
1576
2064
  "id" => resource_id,
@@ -1594,6 +2082,7 @@ module Infrawrench
1594
2082
  "displayName" => String,
1595
2083
  "changeKind" => resource_change_kind,
1596
2084
  "diff" => Array[resource_field_change],
2085
+ ?"origin" => "schedule" | nil,
1597
2086
  "createdAt" => String
1598
2087
  }
1599
2088
 
@@ -1649,7 +2138,8 @@ module Infrawrench
1649
2138
  "containerId" => String,
1650
2139
  "databaseName" => String,
1651
2140
  "storageBucketName" => String,
1652
- "supportsMetrics" => bool
2141
+ "supportsMetrics" => bool,
2142
+ "schedulable" => bool
1653
2143
  }
1654
2144
 
1655
2145
  # Spec schema: `ResourceFieldChange`.
@@ -2051,7 +2541,16 @@ module Infrawrench
2051
2541
  ?"verb" => String
2052
2542
  }],
2053
2543
  ?"isSshHost" => bool,
2054
- ?"sshTunnelAttachSource" => bool
2544
+ ?"sshTunnelAttachSource" => bool,
2545
+ ?"schedulable" => bool
2546
+ }
2547
+
2548
+ # Spec schema: `RightsizingListResponse`.
2549
+ type rightsizing_list_response = {
2550
+ "accounts" => Array[oversized_account_group],
2551
+ "totalCount" => Integer,
2552
+ "windowDays" => Integer,
2553
+ "generatedAt" => String
2055
2554
  }
2056
2555
 
2057
2556
  # Spec schema: `Role`.
@@ -2076,6 +2575,12 @@ module Infrawrench
2076
2575
  # Spec schema: `RoleUpdateRequest`.
2077
2576
  type role_update_request = { ?"name" => String, ?"description" => String | nil, ?"permissions" => Array[permission] }
2078
2577
 
2578
+ # Spec schema: `ScheduleConflict`.
2579
+ type schedule_conflict = { "error" => String }
2580
+
2581
+ # Spec schema: `ScheduleTransition`.
2582
+ type schedule_transition = { "at" => String, "action" => "stop" | "start" }
2583
+
2079
2584
  # Spec schema: `SearchHit`.
2080
2585
  type search_hit = {
2081
2586
  "id" => resource_id,
@@ -2193,6 +2698,14 @@ module Infrawrench
2193
2698
  ?"sshUsername" => String
2194
2699
  }
2195
2700
 
2701
+ # Spec schema: `ShowbackReport`.
2702
+ type showback_report = {
2703
+ "from" => String,
2704
+ "to" => String,
2705
+ "currencies" => Array[String],
2706
+ "centres" => Array[{ "costCentreId" => String | nil, "name" => String, "totals" => Hash[String, Numeric] }]
2707
+ }
2708
+
2196
2709
  # Spec schema: `SlackAvailableChannel`.
2197
2710
  type slack_available_channel = { "id" => String, "name" => String, "isPrivate" => bool }
2198
2711
 
@@ -2206,8 +2719,12 @@ module Infrawrench
2206
2719
  "syncIncidents" => bool,
2207
2720
  "budgetAlerts" => bool,
2208
2721
  "anomalyAlerts" => bool,
2722
+ "metricAlerts" => bool,
2209
2723
  "resourceDrift" => bool,
2210
2724
  "workflowPages" => bool,
2725
+ "providerIncidents" => bool,
2726
+ "expiryAlerts" => bool,
2727
+ "logMatchAlerts" => bool,
2211
2728
  "weeklyDigest" => bool
2212
2729
  }
2213
2730
 
@@ -2220,8 +2737,12 @@ module Infrawrench
2220
2737
  ?"syncIncidents" => bool,
2221
2738
  ?"budgetAlerts" => bool,
2222
2739
  ?"anomalyAlerts" => bool,
2740
+ ?"metricAlerts" => bool,
2223
2741
  ?"resourceDrift" => bool,
2224
2742
  ?"workflowPages" => bool,
2743
+ ?"providerIncidents" => bool,
2744
+ ?"expiryAlerts" => bool,
2745
+ ?"logMatchAlerts" => bool,
2225
2746
  ?"weeklyDigest" => bool
2226
2747
  }
2227
2748
 
@@ -2230,8 +2751,12 @@ module Infrawrench
2230
2751
  ?"syncIncidents" => bool,
2231
2752
  ?"budgetAlerts" => bool,
2232
2753
  ?"anomalyAlerts" => bool,
2754
+ ?"metricAlerts" => bool,
2233
2755
  ?"resourceDrift" => bool,
2234
2756
  ?"workflowPages" => bool,
2757
+ ?"providerIncidents" => bool,
2758
+ ?"expiryAlerts" => bool,
2759
+ ?"logMatchAlerts" => bool,
2235
2760
  ?"weeklyDigest" => bool
2236
2761
  }
2237
2762
 
@@ -2245,6 +2770,74 @@ module Infrawrench
2245
2770
  "channels" => Array[slack_channel]
2246
2771
  }
2247
2772
 
2773
+ # Spec schema: `SleepSchedule`.
2774
+ type sleep_schedule = {
2775
+ "id" => String,
2776
+ "resourceId" => String,
2777
+ "accountId" => String,
2778
+ "pluginId" => plugin_id,
2779
+ "resourceTypeId" => String,
2780
+ "resourceName" => String,
2781
+ "accountName" => String,
2782
+ "daysOfWeek" => Array[Integer],
2783
+ "stopTime" => String,
2784
+ "startTime" => String,
2785
+ "timezone" => String,
2786
+ "paused" => bool,
2787
+ "nextTransitionAt" => String | nil,
2788
+ "nextTransitionAction" => "stop" | "start" | nil,
2789
+ "lastRunAt" => String | nil,
2790
+ "lastRunAction" => "stop" | "start" | nil,
2791
+ "lastRunStatus" => "ok" | "failed" | "skipped_freeze" | nil,
2792
+ "lastRunError" => String | nil,
2793
+ "projectedMonthlySaving" => Numeric | nil,
2794
+ "currency" => String | nil,
2795
+ "createdAt" => String,
2796
+ "updatedAt" => String
2797
+ }
2798
+
2799
+ # Spec schema: `SleepScheduleCreate`.
2800
+ type sleep_schedule_create = {
2801
+ "resourceId" => String,
2802
+ "accountId" => String,
2803
+ "daysOfWeek" => Array[Integer],
2804
+ "stopTime" => String,
2805
+ "startTime" => String,
2806
+ "timezone" => String
2807
+ }
2808
+
2809
+ # Spec schema: `SleepScheduleList`.
2810
+ type sleep_schedule_list = { "schedules" => Array[sleep_schedule] }
2811
+
2812
+ # Spec schema: `SleepSchedulePreview`.
2813
+ type sleep_schedule_preview = {
2814
+ "offFraction" => Numeric,
2815
+ "monthlyCost" => Numeric | nil,
2816
+ "projectedMonthlySaving" => Numeric | nil,
2817
+ "currency" => String | nil,
2818
+ "costWindowDays" => Integer,
2819
+ "nextTransitions" => Array[schedule_transition]
2820
+ }
2821
+
2822
+ # Spec schema: `SleepSchedulePreviewRequest`.
2823
+ type sleep_schedule_preview_request = {
2824
+ "resourceId" => String,
2825
+ "accountId" => String,
2826
+ "daysOfWeek" => Array[Integer],
2827
+ "stopTime" => String,
2828
+ "startTime" => String,
2829
+ "timezone" => String
2830
+ }
2831
+
2832
+ # Spec schema: `SleepScheduleUpdate`.
2833
+ type sleep_schedule_update = {
2834
+ ?"daysOfWeek" => Array[Integer],
2835
+ ?"stopTime" => String,
2836
+ ?"startTime" => String,
2837
+ ?"timezone" => String,
2838
+ ?"paused" => bool
2839
+ }
2840
+
2248
2841
  # Spec schema: `SqlEstimateRequest`.
2249
2842
  type sql_estimate_request = { "accountId" => String, "resourceId" => resource_id, "sql" => String }
2250
2843
 
@@ -2277,6 +2870,56 @@ module Infrawrench
2277
2870
  # Spec schema: `SshExecResponse`.
2278
2871
  type ssh_exec_response = { "stdout" => String, ?"stderr" => String, "code" => Integer }
2279
2872
 
2873
+ # Spec schema: `SshFanoutHostResult`.
2874
+ type ssh_fanout_host_result = {
2875
+ "kind" => "account" | "resource",
2876
+ "targetId" => String,
2877
+ "label" => String,
2878
+ "status" => "done" | "error" | "blocked",
2879
+ "exitCode" => Integer | nil,
2880
+ "stdout" => String,
2881
+ "stderr" => String,
2882
+ ?"error" => String,
2883
+ "durationMs" => Numeric,
2884
+ ?"hostKeyTrust" => {
2885
+ "kind" => "unknown" | "mismatch",
2886
+ "host" => String,
2887
+ "port" => Integer,
2888
+ "presentedFingerprint" => String,
2889
+ "storedFingerprint" => String | nil
2890
+ }
2891
+ }
2892
+
2893
+ # Spec schema: `SshFanoutRunRequest`.
2894
+ type ssh_fanout_run_request = {
2895
+ "command" => String,
2896
+ "targets" => Array[{ "kind" => "account" | "resource", "id" => String }],
2897
+ ?"sshKeyId" => String,
2898
+ ?"username" => String,
2899
+ ?"concurrency" => Integer
2900
+ }
2901
+
2902
+ # Spec schema: `SshFanoutRunResponse`.
2903
+ type ssh_fanout_run_response = { "results" => Array[ssh_fanout_host_result] }
2904
+
2905
+ # Spec schema: `SshFanoutTarget`.
2906
+ type ssh_fanout_target = {
2907
+ "kind" => "account" | "resource",
2908
+ "id" => String,
2909
+ "accountId" => String,
2910
+ "label" => String,
2911
+ "pluginId" => String,
2912
+ ?"resourceTypeId" => String,
2913
+ ?"host" => String,
2914
+ ?"defaultUsername" => String,
2915
+ "running" => bool,
2916
+ "needsKey" => bool,
2917
+ "tags" => Array[String]
2918
+ }
2919
+
2920
+ # Spec schema: `SshFanoutTargetsResponse`.
2921
+ type ssh_fanout_targets_response = { "targets" => Array[ssh_fanout_target] }
2922
+
2280
2923
  # Spec schema: `SshKey`.
2281
2924
  type ssh_key = {
2282
2925
  "id" => String,
@@ -2301,6 +2944,19 @@ module Infrawrench
2301
2944
  | "sk-ssh-ed25519@openssh.com"
2302
2945
  | "sk-ecdsa-sha2-nistp256@openssh.com"
2303
2946
 
2947
+ # Spec schema: `SshSnippet`.
2948
+ type ssh_snippet = {
2949
+ "id" => String,
2950
+ "name" => String,
2951
+ "command" => String,
2952
+ "description" => String | nil,
2953
+ "createdAt" => String,
2954
+ "updatedAt" => String
2955
+ }
2956
+
2957
+ # Spec schema: `SshSnippetInput`.
2958
+ type ssh_snippet_input = { "name" => String, "command" => String, ?"description" => String }
2959
+
2304
2960
  # Spec schema: `SshTunnelCreateAccountRequest`.
2305
2961
  type ssh_tunnel_create_account_request = {
2306
2962
  "sshHost" => String,
@@ -2356,6 +3012,11 @@ module Infrawrench
2356
3012
  }
2357
3013
  | nil
2358
3014
 
3015
+ # Two allocation rule ids in the same org whose priorities should be swapped.
3016
+ #
3017
+ # Spec schema: `SwapAllocationRulesBody`.
3018
+ type swap_allocation_rules_body = { "aId" => String, "bId" => String }
3019
+
2359
3020
  # Spec schema: `SyncResponse`.
2360
3021
  type sync_response = { "synced" => Integer }
2361
3022
 
@@ -2389,6 +3050,28 @@ module Infrawrench
2389
3050
  ?"conversationId" => String
2390
3051
  }
2391
3052
 
3053
+ # Spec schema: `TagComplianceReport`.
3054
+ type tag_compliance_report = { "policy" => tag_policy, "accounts" => Array[account_tag_compliance] }
3055
+
3056
+ # Spec schema: `TagPolicy`.
3057
+ type tag_policy = { "requiredTags" => Array[required_tag], "enforceOnCreate" => bool }
3058
+
3059
+ # Spec schema: `TagPolicyBlocked`.
3060
+ type tag_policy_blocked = {
3061
+ "error" => String,
3062
+ "code" => "tag_policy_unmet",
3063
+ "violations" => Array[tag_policy_violation],
3064
+ "requiredTags" => Array[required_tag]
3065
+ }
3066
+
3067
+ # Spec schema: `TagPolicyViolation`.
3068
+ type tag_policy_violation = {
3069
+ "key" => String,
3070
+ "reason" => "missing" | "value_not_allowed",
3071
+ ?"value" => String,
3072
+ ?"allowedValues" => Array[String]
3073
+ }
3074
+
2392
3075
  # Spec schema: `TotpEnrollment`.
2393
3076
  type totp_enrollment = {
2394
3077
  "factorId" => String,
@@ -2401,6 +3084,24 @@ module Infrawrench
2401
3084
  # Spec schema: `UnpinRequest`.
2402
3085
  type unpin_request = { "dashboardId" => String, "resourceId" => resource_id }
2403
3086
 
3087
+ # Spec schema: `UntaggedSpendReport`.
3088
+ type untagged_spend_report = {
3089
+ "from" => String,
3090
+ "to" => String,
3091
+ "requiredKeys" => Array[String],
3092
+ "currencies" => Array[String],
3093
+ "totals" => Hash[String, Numeric],
3094
+ "untaggedTotals" => Hash[String, Numeric],
3095
+ "byKey" => Array[{ "key" => String, "untagged" => Hash[String, Numeric] }],
3096
+ "topUntagged" => Array[{
3097
+ "accountId" => String,
3098
+ "accountLabel" => String,
3099
+ "service" => String,
3100
+ "currency" => String,
3101
+ "amount" => Numeric
3102
+ }]
3103
+ }
3104
+
2404
3105
  # Spec schema: `UpdateAccountRequest`.
2405
3106
  type update_account_request = { ?"displayName" => String, ?"bastionId" => String | nil }
2406
3107
 
@@ -2492,6 +3193,18 @@ module Infrawrench
2492
3193
  def update: (id: String, body: { "credentials" => Hash[String, String] }, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "ok" => bool }
2493
3194
  end
2494
3195
 
3196
+ class AccountsPluginsNamespace
3197
+ def initialize: (Transport) -> void
3198
+ def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[plugin_summary]
3199
+ def policy_template: (plugin_id: plugin_id, ?org_id: String?, ?capabilities: String?, ?request_options: Hash[Symbol, untyped]?) -> policy_template_response
3200
+ end
3201
+
3202
+ class AccountsPreflightNamespace
3203
+ def initialize: (Transport) -> void
3204
+ def create: (body: preflight_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> preflight_report
3205
+ def post_org_org_id_accounts_id_preflight: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> preflight_report
3206
+ end
3207
+
2495
3208
  class AccountsSyncTypeNamespace
2496
3209
  def initialize: (Transport) -> void
2497
3210
  def create: (id: String, type_id: resource_type_id, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[synced_resource]
@@ -2499,13 +3212,14 @@ module Infrawrench
2499
3212
 
2500
3213
  class AccountsNamespace
2501
3214
  attr_reader credentials: AccountsCredentialsNamespace
3215
+ attr_reader plugins: AccountsPluginsNamespace
3216
+ attr_reader preflight: AccountsPreflightNamespace
2502
3217
  attr_reader sync_type: AccountsSyncTypeNamespace
2503
3218
  def initialize: (Transport) -> void
2504
3219
  def create: (body: (create_account_request & { ?"pluginId" => plugin_id }), ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> create_account_response
2505
3220
  def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
2506
3221
  def detail: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> account_detail
2507
3222
  def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[account]
2508
- def plugins: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[plugin_summary]
2509
3223
  def resources: (id: String, ?org_id: String?, ?top_level_only: "true" | "false"?, ?request_options: Hash[Symbol, untyped]?) -> Array[resource]
2510
3224
  def sync: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> sync_response
2511
3225
  def update: (id: String, body: update_account_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> updated_account
@@ -2617,6 +3331,24 @@ module Infrawrench
2617
3331
  def templates: (body: connect_templates_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> connect_templates_response
2618
3332
  end
2619
3333
 
3334
+ class CostCentresRulesNamespace
3335
+ def initialize: (Transport) -> void
3336
+ def create: (body: allocation_rule_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> allocation_rule
3337
+ def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
3338
+ def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[allocation_rule]
3339
+ def swap: (body: swap_allocation_rules_body, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[allocation_rule]
3340
+ def update: (id: String, body: allocation_rule_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> allocation_rule
3341
+ end
3342
+
3343
+ class CostCentresNamespace
3344
+ attr_reader rules: CostCentresRulesNamespace
3345
+ def initialize: (Transport) -> void
3346
+ def create: (body: cost_centre_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_centre
3347
+ def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
3348
+ def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[cost_centre]
3349
+ def update: (id: String, body: cost_centre_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_centre
3350
+ end
3351
+
2620
3352
  class CostsAnomalySettingsNamespace
2621
3353
  def initialize: (Transport) -> void
2622
3354
  def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_anomaly_settings_view
@@ -2630,7 +3362,9 @@ module Infrawrench
2630
3362
  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
2631
3363
  def query: (body: cost_query_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_query_response
2632
3364
  def rows: (body: cost_push_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_push_response
3365
+ def showback: (?org_id: String?, ?from: String?, ?to: String?, ?request_options: Hash[Symbol, untyped]?) -> showback_report
2633
3366
  def status: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "accounts" => Array[cost_account_status] }
3367
+ def untagged: (?org_id: String?, ?from: String?, ?to: String?, ?request_options: Hash[Symbol, untyped]?) -> untagged_spend_report
2634
3368
  end
2635
3369
 
2636
3370
  class CustomGraphsNamespace
@@ -2732,6 +3466,18 @@ module Infrawrench
2732
3466
  def command: (body: docker_command_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> docker_command_response
2733
3467
  end
2734
3468
 
3469
+ class ExpiringSettingsNamespace
3470
+ def initialize: (Transport) -> void
3471
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> expiry_alert_settings
3472
+ def update: (?org_id: String?, ?body: expiry_alert_settings_update?, ?request_options: Hash[Symbol, untyped]?) -> expiry_alert_settings
3473
+ end
3474
+
3475
+ class ExpiringNamespace
3476
+ attr_reader settings: ExpiringSettingsNamespace
3477
+ def initialize: (Transport) -> void
3478
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> expiry_list_response
3479
+ end
3480
+
2735
3481
  class InvitationsByTokenNamespace
2736
3482
  def initialize: (Transport) -> void
2737
3483
  def get: (token: String, ?request_options: Hash[Symbol, untyped]?) -> invitation_detail
@@ -2748,6 +3494,33 @@ module Infrawrench
2748
3494
  def command: (body: kv_command_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> kv_command_response
2749
3495
  end
2750
3496
 
3497
+ class LogWorkspacesNamespace
3498
+ def initialize: (Transport) -> void
3499
+ def create: (body: log_workspace_query_create, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> log_workspace_query
3500
+ def delete: (query_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> nil
3501
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> log_workspace_query_list
3502
+ def resources: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> log_capable_resource_list
3503
+ def update: (query_id: String, body: log_workspace_query_update, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> log_workspace_query
3504
+ end
3505
+
3506
+ class MetricAlertsNamespace
3507
+ def initialize: (Transport) -> void
3508
+ def create: (body: metric_alert_rule_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> metric_alert_rule
3509
+ def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
3510
+ def events: (?org_id: String?, ?rule_id: String?, ?limit: Integer?, ?request_options: Hash[Symbol, untyped]?) -> Array[metric_alert_event]
3511
+ def get: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> metric_alert_rule
3512
+ def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[metric_alert_rule_with_status]
3513
+ def metric_keys: (?org_id: String?, ?plugin_id: String?, ?resource_type_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[metric_series_key]
3514
+ def selector_options: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> metric_alert_selector_options
3515
+ def selector_preview: (?org_id: String?, ?plugin_id: String?, ?resource_type_id: String?, ?tag_key: String?, ?tag_value: String?, ?request_options: Hash[Symbol, untyped]?) -> metric_alert_selector_preview
3516
+ def update: (id: String, body: metric_alert_rule_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> metric_alert_rule
3517
+ end
3518
+
3519
+ class MomentNamespace
3520
+ def initialize: (Transport) -> void
3521
+ def get: (?org_id: String?, ?at: String?, ?window: Integer?, ?request_options: Hash[Symbol, untyped]?) -> moment_response
3522
+ end
3523
+
2751
3524
  class MsteamsWebhooksNamespace
2752
3525
  def initialize: (Transport) -> void
2753
3526
  def create: (?org_id: String?, ?body: ms_teams_webhook_create?, ?request_options: Hash[Symbol, untyped]?) -> ms_teams_webhook
@@ -2851,6 +3624,20 @@ module Infrawrench
2851
3624
  def update: (body: update_resource_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> update_resource_response
2852
3625
  end
2853
3626
 
3627
+ class RightsizingNamespace
3628
+ def initialize: (Transport) -> void
3629
+ def get: (?org_id: String?, ?refresh: "true" | "false"?, ?request_options: Hash[Symbol, untyped]?) -> rightsizing_list_response
3630
+ end
3631
+
3632
+ class SchedulesNamespace
3633
+ def initialize: (Transport) -> void
3634
+ def create: (?org_id: String?, ?body: sleep_schedule_create?, ?request_options: Hash[Symbol, untyped]?) -> sleep_schedule
3635
+ def delete: (schedule_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> nil
3636
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> sleep_schedule_list
3637
+ def preview: (?org_id: String?, ?body: sleep_schedule_preview_request?, ?request_options: Hash[Symbol, untyped]?) -> sleep_schedule_preview
3638
+ def update: (schedule_id: String, ?org_id: String?, ?body: sleep_schedule_update?, ?request_options: Hash[Symbol, untyped]?) -> sleep_schedule
3639
+ end
3640
+
2854
3641
  class SearchNamespace
2855
3642
  def initialize: (Transport) -> void
2856
3643
  def list: (?org_id: String?, ?q: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[search_hit]
@@ -2894,6 +3681,21 @@ module Infrawrench
2894
3681
  def query: (body: sql_query_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> (sql_query_response | json_object)
2895
3682
  end
2896
3683
 
3684
+ class SshFanoutSnippetsNamespace
3685
+ def initialize: (Transport) -> void
3686
+ def create: (body: ssh_snippet_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "id" => String }
3687
+ def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
3688
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "snippets" => Array[ssh_snippet] }
3689
+ def update: (id: String, body: ssh_snippet_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
3690
+ end
3691
+
3692
+ class SshFanoutNamespace
3693
+ attr_reader snippets: SshFanoutSnippetsNamespace
3694
+ def initialize: (Transport) -> void
3695
+ def run: (body: ssh_fanout_run_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ssh_fanout_run_response
3696
+ def targets: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ssh_fanout_targets_response
3697
+ end
3698
+
2897
3699
  class SshKeysNamespace
2898
3700
  def initialize: (Transport) -> void
2899
3701
  def create: (body: generate_ssh_key_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> generated_ssh_key
@@ -2911,6 +3713,11 @@ module Infrawrench
2911
3713
  def open: (body: { "accountId" => String }, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "tunnelId" => String, "localPort" => Integer }
2912
3714
  end
2913
3715
 
3716
+ class StatusIncidentsNamespace
3717
+ def initialize: (Transport) -> void
3718
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> org_status_incidents_response
3719
+ end
3720
+
2914
3721
  class StorageNamespace
2915
3722
  def initialize: (Transport) -> void
2916
3723
  def delete: (body: storage_path_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
@@ -2920,6 +3727,13 @@ module Infrawrench
2920
3727
  def upload: (body: storage_upload_form, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
2921
3728
  end
2922
3729
 
3730
+ class TagPolicyNamespace
3731
+ def initialize: (Transport) -> void
3732
+ def compliance: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> tag_compliance_report
3733
+ def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> tag_policy
3734
+ def update: (body: tag_policy, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> tag_policy
3735
+ end
3736
+
2923
3737
  class TeamInvitationsNamespace
2924
3738
  def initialize: (Transport) -> void
2925
3739
  def create: (body: invite_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> invite_response
@@ -2985,6 +3799,7 @@ module Infrawrench
2985
3799
  attr_reader change_freezes: ChangeFreezesNamespace
2986
3800
  attr_reader changes: ChangesNamespace
2987
3801
  attr_reader connect: ConnectNamespace
3802
+ attr_reader cost_centres: CostCentresNamespace
2988
3803
  attr_reader costs: CostsNamespace
2989
3804
  attr_reader custom_graphs: CustomGraphsNamespace
2990
3805
  attr_reader dashboards: DashboardsNamespace
@@ -2992,21 +3807,30 @@ module Infrawrench
2992
3807
  attr_reader deployments: DeploymentsNamespace
2993
3808
  attr_reader digest: DigestNamespace
2994
3809
  attr_reader docker: DockerNamespace
3810
+ attr_reader expiring: ExpiringNamespace
2995
3811
  attr_reader invitations: InvitationsNamespace
2996
3812
  attr_reader kv: KvNamespace
3813
+ attr_reader log_workspaces: LogWorkspacesNamespace
3814
+ attr_reader metric_alerts: MetricAlertsNamespace
3815
+ attr_reader moment: MomentNamespace
2997
3816
  attr_reader msteams: MsteamsNamespace
2998
3817
  attr_reader orgs: OrgsNamespace
2999
3818
  attr_reader orphans: OrphansNamespace
3000
3819
  attr_reader pages: PagesNamespace
3001
3820
  attr_reader profile: ProfileNamespace
3002
3821
  attr_reader resources: ResourcesNamespace
3822
+ attr_reader rightsizing: RightsizingNamespace
3823
+ attr_reader schedules: SchedulesNamespace
3003
3824
  attr_reader search: SearchNamespace
3004
3825
  attr_reader sftp: SftpNamespace
3005
3826
  attr_reader slack: SlackNamespace
3006
3827
  attr_reader sql: SqlNamespace
3828
+ attr_reader ssh_fanout: SshFanoutNamespace
3007
3829
  attr_reader ssh_keys: SshKeysNamespace
3008
3830
  attr_reader ssh_tunnels: SshTunnelsNamespace
3831
+ attr_reader status_incidents: StatusIncidentsNamespace
3009
3832
  attr_reader storage: StorageNamespace
3833
+ attr_reader tag_policy: TagPolicyNamespace
3010
3834
  attr_reader team: TeamNamespace
3011
3835
  attr_reader workflow_approvals: WorkflowApprovalsNamespace
3012
3836
  attr_reader workflows: WorkflowsNamespace