infrawrench-sdk 1.3.0 → 1.6.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 +4 -4
- data/README.md +2 -2
- data/infrawrench-sdk.gemspec +4 -4
- data/lib/infrawrench/client.rb +2787 -1096
- data/lib/infrawrench/sdk.rb +2 -2
- data/lib/infrawrench/transport.rb +2 -2
- data/lib/infrawrench/version.rb +3 -3
- data/lib/infrawrench-sdk.rb +2 -2
- data/sig/infrawrench/sdk.rbs +895 -12
- metadata +3 -3
data/sig/infrawrench/sdk.rbs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# infrawrench-sdk v1.
|
|
1
|
+
# infrawrench-sdk v1.6.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.
|
|
4
|
+
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.6.0).
|
|
5
5
|
#
|
|
6
6
|
# DO NOT EDIT. Regenerate with:
|
|
7
7
|
# pnpm --filter @infrawrench/web generate:sdk
|
|
@@ -315,6 +315,7 @@ module Infrawrench
|
|
|
315
315
|
type alert_trigger = "syncIncidents"
|
|
316
316
|
| "budgetAlerts"
|
|
317
317
|
| "anomalyAlerts"
|
|
318
|
+
| "costChangeAlerts"
|
|
318
319
|
| "metricAlerts"
|
|
319
320
|
| "resourceDrift"
|
|
320
321
|
| "workflowPages"
|
|
@@ -462,9 +463,21 @@ module Infrawrench
|
|
|
462
463
|
"triggeredAt" => String
|
|
463
464
|
}
|
|
464
465
|
|
|
466
|
+
# The basis `actualCents` and `forecastCents` were measured on.
|
|
467
|
+
#
|
|
468
|
+
# Spec schema: `BudgetCostBasis`.
|
|
469
|
+
type budget_cost_basis = "cash" | "amortized"
|
|
470
|
+
|
|
465
471
|
# Spec schema: `BudgetCostFilter`.
|
|
466
472
|
type budget_cost_filter = {
|
|
467
|
-
"dimension" => "provider"
|
|
473
|
+
"dimension" => "provider"
|
|
474
|
+
| "account"
|
|
475
|
+
| "service"
|
|
476
|
+
| "region"
|
|
477
|
+
| "resource"
|
|
478
|
+
| "tag"
|
|
479
|
+
| "charge_type"
|
|
480
|
+
| "commitment",
|
|
468
481
|
"op" => "in" | "not_in",
|
|
469
482
|
"values" => Array[String],
|
|
470
483
|
?"tagKey" => String
|
|
@@ -478,7 +491,9 @@ module Infrawrench
|
|
|
478
491
|
"amountCents" => Integer,
|
|
479
492
|
"currency" => String,
|
|
480
493
|
"filters" => Array[budget_cost_filter],
|
|
494
|
+
"savedFilterId" => String | nil,
|
|
481
495
|
"thresholds" => Array[budget_threshold],
|
|
496
|
+
"costBasis" => budget_cost_basis & untyped,
|
|
482
497
|
"createdByUserId" => String | nil,
|
|
483
498
|
"deletedAt" => String | nil,
|
|
484
499
|
"createdAt" => String,
|
|
@@ -491,7 +506,9 @@ module Infrawrench
|
|
|
491
506
|
"amountCents" => Integer,
|
|
492
507
|
?"currency" => String,
|
|
493
508
|
?"filters" => Array[budget_cost_filter],
|
|
494
|
-
"
|
|
509
|
+
?"savedFilterId" => String,
|
|
510
|
+
"thresholds" => Array[budget_threshold],
|
|
511
|
+
?"costBasis" => budget_cost_basis & untyped
|
|
495
512
|
}
|
|
496
513
|
|
|
497
514
|
# Spec schema: `BudgetThreshold`.
|
|
@@ -505,6 +522,8 @@ module Infrawrench
|
|
|
505
522
|
"currency" => String,
|
|
506
523
|
"filters" => Array[budget_cost_filter],
|
|
507
524
|
"thresholds" => Array[budget_threshold],
|
|
525
|
+
"costBasis" => budget_cost_basis,
|
|
526
|
+
"savedFilterId" => String | nil,
|
|
508
527
|
"month" => String,
|
|
509
528
|
"actualCents" => Integer,
|
|
510
529
|
"forecastCents" => Integer | nil,
|
|
@@ -593,6 +612,123 @@ module Infrawrench
|
|
|
593
612
|
?"fields" => Array[json_object]
|
|
594
613
|
}
|
|
595
614
|
|
|
615
|
+
# Spec schema: `CommitmentCoverage`.
|
|
616
|
+
type commitment_coverage = {
|
|
617
|
+
"available" => bool,
|
|
618
|
+
"currencies" => Array[commitment_coverage_currency],
|
|
619
|
+
"excludedAccountIds" => Array[String]
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
# Spec schema: `CommitmentCoverageCurrency`.
|
|
623
|
+
type commitment_coverage_currency = {
|
|
624
|
+
"currency" => String,
|
|
625
|
+
"coveredAmount" => Numeric,
|
|
626
|
+
"uncoveredAmount" => Numeric,
|
|
627
|
+
"uncoveredEligibleAmount" => Numeric,
|
|
628
|
+
"broadRatio" => Numeric | nil,
|
|
629
|
+
"narrowRatio" => Numeric | nil
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
# Spec schema: `CommitmentHolding`.
|
|
633
|
+
type commitment_holding = {
|
|
634
|
+
"accountId" => String,
|
|
635
|
+
"accountName" => String,
|
|
636
|
+
"pluginId" => plugin_id,
|
|
637
|
+
"commitmentId" => String,
|
|
638
|
+
"kind" => "reservation" | "savings_plan" | "committed_use",
|
|
639
|
+
"description" => String,
|
|
640
|
+
"scope" => String | nil,
|
|
641
|
+
"region" => String | nil,
|
|
642
|
+
"startDate" => String | nil,
|
|
643
|
+
"endDate" => String | nil,
|
|
644
|
+
"termDays" => Integer | nil,
|
|
645
|
+
"paymentOption" => "all_upfront" | "partial_upfront" | "no_upfront" | "monthly" | nil,
|
|
646
|
+
"currency" => String | nil,
|
|
647
|
+
"upfrontAmount" => Numeric | nil,
|
|
648
|
+
"recurringAmount" => Numeric | nil,
|
|
649
|
+
"recurringPeriod" => "hour" | "month" | nil,
|
|
650
|
+
"hourlyCommitmentAmount" => Numeric | nil,
|
|
651
|
+
"unitCommitments" => Array[commitment_unit_amount] | nil,
|
|
652
|
+
"state" => "active" | "expired" | "queued",
|
|
653
|
+
"providerUtilization" => Array[commitment_provider_utilization] | nil,
|
|
654
|
+
"lastSeenAt" => String,
|
|
655
|
+
"utilization" => commitment_utilization
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
# Spec schema: `CommitmentPlanner`.
|
|
659
|
+
type commitment_planner = {
|
|
660
|
+
"available" => bool,
|
|
661
|
+
"windowDayCount" => Integer,
|
|
662
|
+
"recommendations" => Array[commitment_recommendation],
|
|
663
|
+
"rejected" => Array[commitment_rejected_cell]
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
# Spec schema: `CommitmentPollFailure`.
|
|
667
|
+
type commitment_poll_failure = {
|
|
668
|
+
"accountId" => String,
|
|
669
|
+
"accountName" => String,
|
|
670
|
+
"pluginId" => plugin_id,
|
|
671
|
+
"message" => String,
|
|
672
|
+
"failureCount" => Integer
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
# Spec schema: `CommitmentProviderUtilization`.
|
|
676
|
+
type commitment_provider_utilization = { "grainDays" => Integer, "percentage" => Numeric }
|
|
677
|
+
|
|
678
|
+
# Spec schema: `CommitmentRecommendation`.
|
|
679
|
+
type commitment_recommendation = {
|
|
680
|
+
"pluginId" => plugin_id,
|
|
681
|
+
"service" => String,
|
|
682
|
+
"region" => String,
|
|
683
|
+
"currency" => String,
|
|
684
|
+
"recommendedDailyCommitment" => Numeric,
|
|
685
|
+
"recommendedHourlyCommitment" => Numeric,
|
|
686
|
+
"annualCommitment" => Numeric,
|
|
687
|
+
"p50DailySpend" => Numeric,
|
|
688
|
+
"savingBasis" => "range" | "upper_bound",
|
|
689
|
+
?"discountRateMin" => Numeric,
|
|
690
|
+
"discountRateMax" => Numeric,
|
|
691
|
+
?"estimatedAnnualSavingMin" => Numeric,
|
|
692
|
+
"estimatedAnnualSavingMax" => Numeric,
|
|
693
|
+
"breakEvenUtilization" => Numeric,
|
|
694
|
+
"annualLossIfUsageHalves" => Numeric
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
# Spec schema: `CommitmentRejectedCell`.
|
|
698
|
+
type commitment_rejected_cell = {
|
|
699
|
+
"pluginId" => plugin_id,
|
|
700
|
+
"service" => String,
|
|
701
|
+
"region" => String,
|
|
702
|
+
"currency" => String,
|
|
703
|
+
"gate" => "presence" | "not_in_decline" | "floor" | "materiality"
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
# Spec schema: `CommitmentUnitAmount`.
|
|
707
|
+
type commitment_unit_amount = { "unit" => String, "amount" => Numeric }
|
|
708
|
+
|
|
709
|
+
# Spec schema: `CommitmentUtilization`.
|
|
710
|
+
type commitment_utilization = {
|
|
711
|
+
"utilization" => Numeric | nil,
|
|
712
|
+
?"reason" => "unit_denominated" | "no_active_days" | "no_data_days" | "unattributed_rows",
|
|
713
|
+
"obligationAmount" => Numeric | nil,
|
|
714
|
+
"deliveredAmount" => Numeric,
|
|
715
|
+
"activeDays" => Integer,
|
|
716
|
+
"measuredDays" => Integer,
|
|
717
|
+
"missingDays" => Integer,
|
|
718
|
+
"windowDays" => Integer
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
# Spec schema: `CommitmentsFeed`.
|
|
722
|
+
type commitments_feed = {
|
|
723
|
+
"holdings" => Array[commitment_holding],
|
|
724
|
+
"coverage" => commitment_coverage,
|
|
725
|
+
"planner" => commitment_planner,
|
|
726
|
+
"failures" => Array[commitment_poll_failure],
|
|
727
|
+
"pendingAccountIds" => Array[String],
|
|
728
|
+
"utilizationWindowDays" => Integer,
|
|
729
|
+
"plannerWindowDays" => Integer
|
|
730
|
+
}
|
|
731
|
+
|
|
596
732
|
# Spec schema: `ConnectEnvDeployRequest`.
|
|
597
733
|
type connect_env_deploy_request = {
|
|
598
734
|
"sourceAccountId" => String,
|
|
@@ -649,6 +785,9 @@ module Infrawrench
|
|
|
649
785
|
"supportsCosts" => bool,
|
|
650
786
|
"periodNative" => bool,
|
|
651
787
|
"dimensions" => Array["service" | "region" | "resource" | "tag"],
|
|
788
|
+
"chargeTypes" => bool,
|
|
789
|
+
"amortization" => bool,
|
|
790
|
+
"estimated" => bool,
|
|
652
791
|
"costLastPolledAt" => String | nil,
|
|
653
792
|
"costBackfilledAt" => String | nil,
|
|
654
793
|
"costPollFailureCount" => Integer,
|
|
@@ -656,6 +795,93 @@ module Infrawrench
|
|
|
656
795
|
"coverage" => { "firstDay" => String, "lastDay" => String } | nil
|
|
657
796
|
}
|
|
658
797
|
|
|
798
|
+
# A change-based cost alert: fires when spend on its scope moves more than the
|
|
799
|
+
# configured threshold versus the prior period. The third alert family
|
|
800
|
+
# alongside budgets (absolute monthly total) and anomaly detection
|
|
801
|
+
# (statistical outliers against a learned baseline).
|
|
802
|
+
#
|
|
803
|
+
# Spec schema: `CostAlert`.
|
|
804
|
+
type cost_alert = {
|
|
805
|
+
"id" => String,
|
|
806
|
+
"name" => String,
|
|
807
|
+
"filters" => Array[cost_alert_filter],
|
|
808
|
+
"groupBy" => "provider"
|
|
809
|
+
| "account"
|
|
810
|
+
| "service"
|
|
811
|
+
| "region"
|
|
812
|
+
| "resource"
|
|
813
|
+
| "tag"
|
|
814
|
+
| "charge_type"
|
|
815
|
+
| "commitment"
|
|
816
|
+
| nil,
|
|
817
|
+
"groupByTagKey" => String | nil,
|
|
818
|
+
"cadence" => cost_change_cadence,
|
|
819
|
+
"thresholdPercent" => Integer | nil,
|
|
820
|
+
"thresholdAmountCents" => Integer | nil,
|
|
821
|
+
"direction" => cost_change_direction,
|
|
822
|
+
"enabled" => bool,
|
|
823
|
+
"lastEvaluatedAt" => String | nil,
|
|
824
|
+
"lastFiredAt" => String | nil,
|
|
825
|
+
"createdAt" => String,
|
|
826
|
+
"updatedAt" => String
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
# Spec schema: `CostAlertEvent`.
|
|
830
|
+
type cost_alert_event = {
|
|
831
|
+
"id" => String,
|
|
832
|
+
"alertId" => String,
|
|
833
|
+
"alertName" => String,
|
|
834
|
+
"periodKey" => String,
|
|
835
|
+
"windowFrom" => String,
|
|
836
|
+
"windowTo" => String,
|
|
837
|
+
"previousFrom" => String,
|
|
838
|
+
"previousTo" => String,
|
|
839
|
+
"groupKey" => String,
|
|
840
|
+
"currency" => String,
|
|
841
|
+
"previousAmountCents" => Integer,
|
|
842
|
+
"currentAmountCents" => Integer,
|
|
843
|
+
"changePercent" => Integer | nil,
|
|
844
|
+
"direction" => "increase" | "decrease",
|
|
845
|
+
"firedAt" => String,
|
|
846
|
+
"notifiedAt" => String | nil
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
# Spec schema: `CostAlertFilter`.
|
|
850
|
+
type cost_alert_filter = {
|
|
851
|
+
"dimension" => "provider"
|
|
852
|
+
| "account"
|
|
853
|
+
| "service"
|
|
854
|
+
| "region"
|
|
855
|
+
| "resource"
|
|
856
|
+
| "tag"
|
|
857
|
+
| "charge_type"
|
|
858
|
+
| "commitment",
|
|
859
|
+
"op" => "in" | "not_in",
|
|
860
|
+
"values" => Array[String],
|
|
861
|
+
?"tagKey" => String
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
# Spec schema: `CostAlertInput`.
|
|
865
|
+
type cost_alert_input = {
|
|
866
|
+
"name" => String,
|
|
867
|
+
?"filters" => Array[cost_alert_filter],
|
|
868
|
+
?"groupBy" => "provider"
|
|
869
|
+
| "account"
|
|
870
|
+
| "service"
|
|
871
|
+
| "region"
|
|
872
|
+
| "resource"
|
|
873
|
+
| "tag"
|
|
874
|
+
| "charge_type"
|
|
875
|
+
| "commitment"
|
|
876
|
+
| nil,
|
|
877
|
+
?"groupByTagKey" => String,
|
|
878
|
+
"cadence" => cost_change_cadence,
|
|
879
|
+
?"thresholdPercent" => Integer | nil,
|
|
880
|
+
?"thresholdAmountCents" => Integer | nil,
|
|
881
|
+
"direction" => cost_change_direction,
|
|
882
|
+
?"enabled" => bool
|
|
883
|
+
}
|
|
884
|
+
|
|
659
885
|
# Spec schema: `CostAnomaly`.
|
|
660
886
|
type cost_anomaly = {
|
|
661
887
|
"id" => String,
|
|
@@ -683,6 +909,16 @@ module Infrawrench
|
|
|
683
909
|
# Spec schema: `CostAnomalySettingsView`.
|
|
684
910
|
type cost_anomaly_settings_view = cost_anomaly_settings & { "smsConfigured" => bool }
|
|
685
911
|
|
|
912
|
+
# Which number to sum. `cash` is what the provider charged on the day it
|
|
913
|
+
# charged it — the default, and what every query returned before this existed.
|
|
914
|
+
# `amortized` spreads a commitment's up-front fee across the term it buys, so
|
|
915
|
+
# a year of capacity bought on one day is counted on the days it covers.
|
|
916
|
+
# Providers that report no amortized amount fall back to their cash amount, so
|
|
917
|
+
# an amortized query over a mixed estate never drops their spend.
|
|
918
|
+
#
|
|
919
|
+
# Spec schema: `CostBasis`.
|
|
920
|
+
type cost_basis = "cash" | "amortized"
|
|
921
|
+
|
|
686
922
|
# Spec schema: `CostCentre`.
|
|
687
923
|
type cost_centre = {
|
|
688
924
|
"id" => String,
|
|
@@ -695,8 +931,49 @@ module Infrawrench
|
|
|
695
931
|
# Spec schema: `CostCentreInput`.
|
|
696
932
|
type cost_centre_input = { "name" => String, ?"description" => String }
|
|
697
933
|
|
|
934
|
+
# Which window is compared to which, in complete UTC days (the accruing
|
|
935
|
+
# current day never counts). daily: one complete day vs the same weekday one
|
|
936
|
+
# week earlier. weekly: the last 7 complete days vs the 7 before them.
|
|
937
|
+
# monthly: month-to-date vs the same number of days at the start of the prior
|
|
938
|
+
# month — never MTD vs the full prior month.
|
|
939
|
+
#
|
|
940
|
+
# Spec schema: `CostChangeCadence`.
|
|
941
|
+
type cost_change_cadence = "daily" | "weekly" | "monthly"
|
|
942
|
+
|
|
943
|
+
# Spec schema: `CostChangeDirection`.
|
|
944
|
+
type cost_change_direction = "increase" | "decrease" | "both"
|
|
945
|
+
|
|
946
|
+
# Spec schema: `CostChargeType`.
|
|
947
|
+
type cost_charge_type = "usage"
|
|
948
|
+
| "commitment_fee"
|
|
949
|
+
| "commitment_discount"
|
|
950
|
+
| "credit"
|
|
951
|
+
| "tax"
|
|
952
|
+
| "refund"
|
|
953
|
+
| "adjustment"
|
|
954
|
+
| "support"
|
|
955
|
+
| "other"
|
|
956
|
+
|
|
957
|
+
# A relative preset resolves against today every time the report runs, so a
|
|
958
|
+
# saved report keeps meaning 'the last 30 days'; an absolute range pins it to
|
|
959
|
+
# fixed dates.
|
|
960
|
+
#
|
|
961
|
+
# Spec schema: `CostDateRange`.
|
|
962
|
+
type cost_date_range = {
|
|
963
|
+
"kind" => "relative",
|
|
964
|
+
"preset" => "7d" | "30d" | "90d" | "mtd" | "last_month" | "qtd" | "ytd" | "12m"
|
|
965
|
+
}
|
|
966
|
+
| { "kind" => "absolute", "from" => String, "to" => String }
|
|
967
|
+
|
|
698
968
|
# Spec schema: `CostDimension`.
|
|
699
|
-
type cost_dimension = "provider"
|
|
969
|
+
type cost_dimension = "provider"
|
|
970
|
+
| "account"
|
|
971
|
+
| "service"
|
|
972
|
+
| "region"
|
|
973
|
+
| "resource"
|
|
974
|
+
| "tag"
|
|
975
|
+
| "charge_type"
|
|
976
|
+
| "commitment"
|
|
700
977
|
|
|
701
978
|
# Spec schema: `CostDimensionValues`.
|
|
702
979
|
type cost_dimension_values = { "values" => Array[String | { "value" => String, "label" => String }] }
|
|
@@ -730,6 +1007,122 @@ module Infrawrench
|
|
|
730
1007
|
?"parentResourceId" => resource_id
|
|
731
1008
|
}
|
|
732
1009
|
|
|
1010
|
+
# Spec schema: `CostExport`.
|
|
1011
|
+
type cost_export = {
|
|
1012
|
+
"id" => String,
|
|
1013
|
+
"name" => String,
|
|
1014
|
+
"format" => "csv" | "ndjson",
|
|
1015
|
+
"query" => cost_export_query,
|
|
1016
|
+
"cadence" => "daily" | "weekly" | "monthly",
|
|
1017
|
+
"hour" => Integer,
|
|
1018
|
+
"timezone" => String,
|
|
1019
|
+
"restatementDays" => Integer,
|
|
1020
|
+
"enabled" => bool,
|
|
1021
|
+
"destination" => cost_export_destination,
|
|
1022
|
+
"hasCredentials" => bool,
|
|
1023
|
+
"credentialHint" => String | nil,
|
|
1024
|
+
"lastRunAt" => String | nil,
|
|
1025
|
+
"lastStatus" => "pending" | "succeeded" | "failed",
|
|
1026
|
+
"lastError" => String | nil,
|
|
1027
|
+
"lastObjectCount" => Integer | nil,
|
|
1028
|
+
"lastRowCount" => Integer | nil,
|
|
1029
|
+
"nextRunAt" => String | nil,
|
|
1030
|
+
"createdByUserId" => String | nil,
|
|
1031
|
+
"createdAt" => String,
|
|
1032
|
+
"updatedAt" => String
|
|
1033
|
+
}
|
|
1034
|
+
|
|
1035
|
+
# Spec schema: `CostExportDestination`.
|
|
1036
|
+
type cost_export_destination = {
|
|
1037
|
+
"kind" => "s3",
|
|
1038
|
+
"bucket" => String,
|
|
1039
|
+
"prefix" => String,
|
|
1040
|
+
"region" => String,
|
|
1041
|
+
"endpoint" => String,
|
|
1042
|
+
"forcePathStyle" => bool
|
|
1043
|
+
}
|
|
1044
|
+
| { "kind" => "http", "method" => "POST" | "PUT", "urlHint" => String }
|
|
1045
|
+
|
|
1046
|
+
# Spec schema: `CostExportFilter`.
|
|
1047
|
+
type cost_export_filter = {
|
|
1048
|
+
"dimension" => "provider"
|
|
1049
|
+
| "account"
|
|
1050
|
+
| "service"
|
|
1051
|
+
| "region"
|
|
1052
|
+
| "resource"
|
|
1053
|
+
| "tag"
|
|
1054
|
+
| "charge_type"
|
|
1055
|
+
| "commitment",
|
|
1056
|
+
"op" => "in" | "not_in",
|
|
1057
|
+
"values" => Array[String],
|
|
1058
|
+
?"tagKey" => String
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
# Spec schema: `CostExportInput`.
|
|
1062
|
+
type cost_export_input = {
|
|
1063
|
+
"name" => String,
|
|
1064
|
+
"format" => "csv" | "ndjson",
|
|
1065
|
+
"query" => cost_export_query,
|
|
1066
|
+
"cadence" => "daily" | "weekly" | "monthly",
|
|
1067
|
+
"hour" => Integer,
|
|
1068
|
+
"timezone" => String,
|
|
1069
|
+
"restatementDays" => Integer,
|
|
1070
|
+
"enabled" => bool,
|
|
1071
|
+
"destination" => cost_export_destination,
|
|
1072
|
+
?"accessKeyId" => String,
|
|
1073
|
+
?"secretAccessKey" => String,
|
|
1074
|
+
?"url" => String
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1077
|
+
# Spec schema: `CostExportObject`.
|
|
1078
|
+
type cost_export_object = {
|
|
1079
|
+
"periodStart" => String,
|
|
1080
|
+
"from" => String,
|
|
1081
|
+
"to" => String,
|
|
1082
|
+
"key" => String,
|
|
1083
|
+
"rowCount" => Integer,
|
|
1084
|
+
"byteCount" => Integer
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1087
|
+
# The rows a run selects. Reuses the same `CostFilter` and dimension
|
|
1088
|
+
# vocabulary the dashboards, budgets and cost reports store, so a filter means
|
|
1089
|
+
# the same thing everywhere.
|
|
1090
|
+
#
|
|
1091
|
+
# Spec schema: `CostExportQuery`.
|
|
1092
|
+
type cost_export_query = {
|
|
1093
|
+
"version" => Numeric,
|
|
1094
|
+
"dimensions" => Array["provider"
|
|
1095
|
+
| "account"
|
|
1096
|
+
| "service"
|
|
1097
|
+
| "region"
|
|
1098
|
+
| "resource"
|
|
1099
|
+
| "tag"
|
|
1100
|
+
| "charge_type"
|
|
1101
|
+
| "commitment"],
|
|
1102
|
+
"tagKeys" => Array[String],
|
|
1103
|
+
"filters" => Array[cost_export_filter],
|
|
1104
|
+
?"chargeTypes" => Array["usage"
|
|
1105
|
+
| "commitment_fee"
|
|
1106
|
+
| "commitment_discount"
|
|
1107
|
+
| "credit"
|
|
1108
|
+
| "tax"
|
|
1109
|
+
| "refund"
|
|
1110
|
+
| "adjustment"
|
|
1111
|
+
| "support"
|
|
1112
|
+
| "other"],
|
|
1113
|
+
?"costBasis" => "cash" | "amortized"
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
# Spec schema: `CostExportRunResult`.
|
|
1117
|
+
type cost_export_run_result = {
|
|
1118
|
+
"exportId" => String,
|
|
1119
|
+
"status" => "pending" | "succeeded" | "failed",
|
|
1120
|
+
"objects" => Array[cost_export_object],
|
|
1121
|
+
"rowCount" => Integer,
|
|
1122
|
+
"collectionWatermark" => String | nil,
|
|
1123
|
+
"error" => String | nil
|
|
1124
|
+
}
|
|
1125
|
+
|
|
733
1126
|
# Spec schema: `CostFilter`.
|
|
734
1127
|
type cost_filter = {
|
|
735
1128
|
"dimension" => cost_dimension,
|
|
@@ -738,6 +1131,33 @@ module Infrawrench
|
|
|
738
1131
|
?"tagKey" => String
|
|
739
1132
|
}
|
|
740
1133
|
|
|
1134
|
+
# The saved graph. Identical to the config an ad-hoc `cost_graph` dashboard
|
|
1135
|
+
# widget stores inline — a report is that config given a name and an id.
|
|
1136
|
+
#
|
|
1137
|
+
# Spec schema: `CostGraphConfig`.
|
|
1138
|
+
type cost_graph_config = {
|
|
1139
|
+
"version" => Numeric,
|
|
1140
|
+
"chartType" => "stacked_bar" | "multi_bar" | "line" | "area" | "pie",
|
|
1141
|
+
"binning" => "daily" | "weekly" | "monthly" | "cumulative",
|
|
1142
|
+
"dateRange" => cost_date_range,
|
|
1143
|
+
"groupBy" => "none"
|
|
1144
|
+
| "provider"
|
|
1145
|
+
| "account"
|
|
1146
|
+
| "service"
|
|
1147
|
+
| "region"
|
|
1148
|
+
| "resource"
|
|
1149
|
+
| "tag"
|
|
1150
|
+
| "charge_type"
|
|
1151
|
+
| "commitment",
|
|
1152
|
+
?"groupByTagKey" => String,
|
|
1153
|
+
?"filters" => Array[cost_report_filter],
|
|
1154
|
+
?"savedFilterId" => String,
|
|
1155
|
+
?"topN" => Integer,
|
|
1156
|
+
?"comparePreviousPeriod" => bool,
|
|
1157
|
+
?"showForecast" => bool,
|
|
1158
|
+
?"costBasis" => "cash" | "amortized"
|
|
1159
|
+
}
|
|
1160
|
+
|
|
741
1161
|
# Spec schema: `CostPushRequest`.
|
|
742
1162
|
type cost_push_request = { "source" => String, "rows" => Array[pushed_cost_row] }
|
|
743
1163
|
|
|
@@ -749,12 +1169,24 @@ module Infrawrench
|
|
|
749
1169
|
"from" => String,
|
|
750
1170
|
"to" => String,
|
|
751
1171
|
"binning" => "daily" | "weekly" | "monthly" | "cumulative",
|
|
752
|
-
"groupBy" => "none"
|
|
1172
|
+
"groupBy" => "none"
|
|
1173
|
+
| "provider"
|
|
1174
|
+
| "account"
|
|
1175
|
+
| "service"
|
|
1176
|
+
| "region"
|
|
1177
|
+
| "resource"
|
|
1178
|
+
| "tag"
|
|
1179
|
+
| "charge_type"
|
|
1180
|
+
| "commitment",
|
|
753
1181
|
?"groupByTagKey" => String,
|
|
754
1182
|
?"filters" => Array[cost_filter],
|
|
1183
|
+
?"query" => String,
|
|
1184
|
+
?"savedFilterId" => String,
|
|
755
1185
|
?"topN" => Integer,
|
|
756
1186
|
?"comparePreviousPeriod" => bool,
|
|
757
|
-
?"forecast" => bool
|
|
1187
|
+
?"forecast" => bool,
|
|
1188
|
+
?"costBasis" => cost_basis,
|
|
1189
|
+
?"chargeTypes" => Array[cost_charge_type]
|
|
758
1190
|
}
|
|
759
1191
|
|
|
760
1192
|
# Spec schema: `CostQueryResponse`.
|
|
@@ -775,6 +1207,66 @@ module Infrawrench
|
|
|
775
1207
|
"points" => Array[cost_series_point]
|
|
776
1208
|
}
|
|
777
1209
|
|
|
1210
|
+
# Spec schema: `CostReport`.
|
|
1211
|
+
type cost_report = {
|
|
1212
|
+
"id" => String,
|
|
1213
|
+
"name" => String,
|
|
1214
|
+
"description" => String | nil,
|
|
1215
|
+
"config" => cost_graph_config,
|
|
1216
|
+
"folderId" => String | nil,
|
|
1217
|
+
"createdByUserId" => String | nil,
|
|
1218
|
+
"createdAt" => String,
|
|
1219
|
+
"updatedAt" => String,
|
|
1220
|
+
"placements" => Array[cost_report_placement]
|
|
1221
|
+
}
|
|
1222
|
+
|
|
1223
|
+
# Spec schema: `CostReportFilter`.
|
|
1224
|
+
type cost_report_filter = {
|
|
1225
|
+
"dimension" => "provider"
|
|
1226
|
+
| "account"
|
|
1227
|
+
| "service"
|
|
1228
|
+
| "region"
|
|
1229
|
+
| "resource"
|
|
1230
|
+
| "tag"
|
|
1231
|
+
| "charge_type"
|
|
1232
|
+
| "commitment",
|
|
1233
|
+
"op" => "in" | "not_in",
|
|
1234
|
+
"values" => Array[String],
|
|
1235
|
+
?"tagKey" => String
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1238
|
+
# Spec schema: `CostReportFolder`.
|
|
1239
|
+
type cost_report_folder = {
|
|
1240
|
+
"id" => String,
|
|
1241
|
+
"name" => String,
|
|
1242
|
+
"parentFolderId" => String | nil,
|
|
1243
|
+
"createdAt" => String,
|
|
1244
|
+
"updatedAt" => String
|
|
1245
|
+
}
|
|
1246
|
+
|
|
1247
|
+
# Spec schema: `CostReportFolderInput`.
|
|
1248
|
+
type cost_report_folder_input = { "name" => String, ?"parentFolderId" => String | nil }
|
|
1249
|
+
|
|
1250
|
+
# Spec schema: `CostReportInput`.
|
|
1251
|
+
type cost_report_input = {
|
|
1252
|
+
"name" => String,
|
|
1253
|
+
?"description" => String,
|
|
1254
|
+
"config" => cost_graph_config,
|
|
1255
|
+
?"folderId" => String | nil
|
|
1256
|
+
}
|
|
1257
|
+
|
|
1258
|
+
# Spec schema: `CostReportPlacement`.
|
|
1259
|
+
type cost_report_placement = { "widgetId" => String, "dashboardId" => String, "dashboardName" => String }
|
|
1260
|
+
|
|
1261
|
+
# Spec schema: `CostReportRunResult`.
|
|
1262
|
+
type cost_report_run_result = {
|
|
1263
|
+
"reportId" => String,
|
|
1264
|
+
"name" => String,
|
|
1265
|
+
"from" => String,
|
|
1266
|
+
"to" => String,
|
|
1267
|
+
"result" => cost_query_response
|
|
1268
|
+
}
|
|
1269
|
+
|
|
778
1270
|
# Spec schema: `CostSeriesPoint`.
|
|
779
1271
|
type cost_series_point = { "bucket" => String, "amount" => Numeric }
|
|
780
1272
|
|
|
@@ -814,6 +1306,37 @@ module Infrawrench
|
|
|
814
1306
|
?"parentResourceId" => resource_id
|
|
815
1307
|
}
|
|
816
1308
|
|
|
1309
|
+
# Spec schema: `CreateJiraIssueInput`.
|
|
1310
|
+
type create_jira_issue_input = {
|
|
1311
|
+
"sourceKind" => jira_source_kind,
|
|
1312
|
+
"sourceId" => String,
|
|
1313
|
+
"projectKey" => String,
|
|
1314
|
+
"issueTypeId" => String,
|
|
1315
|
+
"summary" => String,
|
|
1316
|
+
?"description" => String,
|
|
1317
|
+
?"labels" => Array[String]
|
|
1318
|
+
}
|
|
1319
|
+
|
|
1320
|
+
# Spec schema: `CreateJiraIssueResult`.
|
|
1321
|
+
type create_jira_issue_result = { "issue" => { "id" => String, "key" => String, "url" => String }, "link" => jira_issue_link }
|
|
1322
|
+
|
|
1323
|
+
# Spec schema: `CreateLinearIssueInput`.
|
|
1324
|
+
type create_linear_issue_input = {
|
|
1325
|
+
"sourceKind" => linear_source_kind,
|
|
1326
|
+
"sourceId" => String,
|
|
1327
|
+
"teamId" => String,
|
|
1328
|
+
"title" => String,
|
|
1329
|
+
?"description" => String,
|
|
1330
|
+
?"labelIds" => Array[String],
|
|
1331
|
+
?"projectId" => String
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1334
|
+
# Spec schema: `CreateLinearIssueResult`.
|
|
1335
|
+
type create_linear_issue_result = {
|
|
1336
|
+
"issue" => { "id" => String, "identifier" => String, "url" => String },
|
|
1337
|
+
"link" => linear_issue_link
|
|
1338
|
+
}
|
|
1339
|
+
|
|
817
1340
|
# Spec schema: `CreateOrgRequest`.
|
|
818
1341
|
type create_org_request = { "displayName" => String }
|
|
819
1342
|
|
|
@@ -928,6 +1451,12 @@ module Infrawrench
|
|
|
928
1451
|
"urgency" => "critical" | "warning" | "ok" | "unknown"
|
|
929
1452
|
}
|
|
930
1453
|
|
|
1454
|
+
# Spec schema: `CurrencyConfig`.
|
|
1455
|
+
type currency_config = { "displayCurrency" => String | nil, "rates" => Array[exchange_rate] }
|
|
1456
|
+
|
|
1457
|
+
# Spec schema: `CurrencySettings`.
|
|
1458
|
+
type currency_settings = { "displayCurrency" => String | nil }
|
|
1459
|
+
|
|
931
1460
|
# Spec schema: `CustomGraphCheckRequest`.
|
|
932
1461
|
type custom_graph_check_request = { "source" => String }
|
|
933
1462
|
|
|
@@ -1046,8 +1575,12 @@ module Infrawrench
|
|
|
1046
1575
|
"updatedAt" => String
|
|
1047
1576
|
}
|
|
1048
1577
|
|
|
1578
|
+
# `cost_graph` stores its whole config inline — a one-off card. `cost_report`
|
|
1579
|
+
# points at a saved cost report by id, so editing the report updates every
|
|
1580
|
+
# dashboard showing it.
|
|
1581
|
+
#
|
|
1049
1582
|
# Spec schema: `DashboardWidgetKind`.
|
|
1050
|
-
type dashboard_widget_kind = "cost_graph" | "budget" | "custom_graph"
|
|
1583
|
+
type dashboard_widget_kind = "cost_graph" | "cost_report" | "budget" | "custom_graph"
|
|
1051
1584
|
|
|
1052
1585
|
# Spec schema: `DashboardWithPins`.
|
|
1053
1586
|
type dashboard_with_pins = {
|
|
@@ -1505,6 +2038,26 @@ module Infrawrench
|
|
|
1505
2038
|
# Spec schema: `EscalationPolicy`.
|
|
1506
2039
|
type escalation_policy = { "afterMinutes" => Integer, "destinations" => Array[alert_destination] } | nil
|
|
1507
2040
|
|
|
2041
|
+
# Spec schema: `ExchangeRate`.
|
|
2042
|
+
type exchange_rate = {
|
|
2043
|
+
"id" => String,
|
|
2044
|
+
"fromCurrency" => String,
|
|
2045
|
+
"toCurrency" => String,
|
|
2046
|
+
"rate" => String,
|
|
2047
|
+
"effectiveFrom" => String,
|
|
2048
|
+
"createdBy" => String | nil,
|
|
2049
|
+
"createdAt" => String,
|
|
2050
|
+
"updatedAt" => String
|
|
2051
|
+
}
|
|
2052
|
+
|
|
2053
|
+
# Spec schema: `ExchangeRateInput`.
|
|
2054
|
+
type exchange_rate_input = {
|
|
2055
|
+
"fromCurrency" => String,
|
|
2056
|
+
"toCurrency" => String,
|
|
2057
|
+
"rate" => String,
|
|
2058
|
+
"effectiveFrom" => String
|
|
2059
|
+
}
|
|
2060
|
+
|
|
1508
2061
|
# Spec schema: `ExpiryAlertSettings`.
|
|
1509
2062
|
type expiry_alert_settings = { "enabled" => bool, "leadDays" => Integer, "lastNotifiedAt" => String | nil }
|
|
1510
2063
|
|
|
@@ -1683,6 +2236,62 @@ module Infrawrench
|
|
|
1683
2236
|
?"parentResourceId" => resource_id
|
|
1684
2237
|
}
|
|
1685
2238
|
|
|
2239
|
+
# Spec schema: `JiraIntegration`.
|
|
2240
|
+
type jira_integration = {
|
|
2241
|
+
"siteUrl" => String,
|
|
2242
|
+
"accountEmail" => String,
|
|
2243
|
+
"tokenHint" => String,
|
|
2244
|
+
"defaultProjectKey" => String | nil,
|
|
2245
|
+
"defaultIssueTypeId" => String | nil,
|
|
2246
|
+
"updatedAt" => String
|
|
2247
|
+
}
|
|
2248
|
+
| nil
|
|
2249
|
+
|
|
2250
|
+
# Spec schema: `JiraIntegrationInput`.
|
|
2251
|
+
type jira_integration_input = {
|
|
2252
|
+
"siteUrl" => String,
|
|
2253
|
+
"accountEmail" => String,
|
|
2254
|
+
?"apiToken" => String,
|
|
2255
|
+
?"defaultProjectKey" => String | nil,
|
|
2256
|
+
?"defaultIssueTypeId" => String | nil
|
|
2257
|
+
}
|
|
2258
|
+
|
|
2259
|
+
# Spec schema: `JiraIssueLink`.
|
|
2260
|
+
type jira_issue_link = {
|
|
2261
|
+
"id" => String,
|
|
2262
|
+
"sourceKind" => jira_source_kind,
|
|
2263
|
+
"sourceId" => String,
|
|
2264
|
+
"issueKey" => String,
|
|
2265
|
+
"issueUrl" => String,
|
|
2266
|
+
"createdByUserId" => String | nil,
|
|
2267
|
+
"createdAt" => String
|
|
2268
|
+
}
|
|
2269
|
+
|
|
2270
|
+
# Spec schema: `JiraIssueType`.
|
|
2271
|
+
type jira_issue_type = { "id" => String, "name" => String, "subtask" => bool, "description" => String | nil }
|
|
2272
|
+
|
|
2273
|
+
# Spec schema: `JiraProject`.
|
|
2274
|
+
type jira_project = { "id" => String, "key" => String, "name" => String }
|
|
2275
|
+
|
|
2276
|
+
# Which detector produced the finding the issue was filed from.
|
|
2277
|
+
#
|
|
2278
|
+
# Spec schema: `JiraSourceKind`.
|
|
2279
|
+
type jira_source_kind = "cost_anomaly" | "orphan" | "oversized" | "posture_finding" | "expiring" | "probe"
|
|
2280
|
+
|
|
2281
|
+
# Supply all three to test credentials that have not been saved yet; send an
|
|
2282
|
+
# empty object to re-test the stored ones.
|
|
2283
|
+
#
|
|
2284
|
+
# Spec schema: `JiraVerifyInput`.
|
|
2285
|
+
type jira_verify_input = { ?"siteUrl" => String, ?"accountEmail" => String, ?"apiToken" => String }
|
|
2286
|
+
|
|
2287
|
+
# Spec schema: `JiraVerifyResult`.
|
|
2288
|
+
type jira_verify_result = {
|
|
2289
|
+
"ok" => bool,
|
|
2290
|
+
"accountId" => String,
|
|
2291
|
+
"displayName" => String,
|
|
2292
|
+
"emailAddress" => String | nil
|
|
2293
|
+
}
|
|
2294
|
+
|
|
1686
2295
|
# Free-form JSON object whose shape depends on the plugin.
|
|
1687
2296
|
#
|
|
1688
2297
|
# Spec schema: `JsonObject`.
|
|
@@ -1703,6 +2312,42 @@ module Infrawrench
|
|
|
1703
2312
|
# Spec schema: `LeaseConflict`.
|
|
1704
2313
|
type lease_conflict = { "error" => String }
|
|
1705
2314
|
|
|
2315
|
+
# Spec schema: `LinearIntegration`.
|
|
2316
|
+
type linear_integration = { "keyHint" => String, "defaultTeamId" => String | nil, "updatedAt" => String } | nil
|
|
2317
|
+
|
|
2318
|
+
# Spec schema: `LinearIntegrationInput`.
|
|
2319
|
+
type linear_integration_input = { ?"apiKey" => String, ?"defaultTeamId" => String | nil }
|
|
2320
|
+
|
|
2321
|
+
# Spec schema: `LinearIssueLink`.
|
|
2322
|
+
type linear_issue_link = {
|
|
2323
|
+
"id" => String,
|
|
2324
|
+
"sourceKind" => linear_source_kind,
|
|
2325
|
+
"sourceId" => String,
|
|
2326
|
+
"issueIdentifier" => String,
|
|
2327
|
+
"issueUrl" => String,
|
|
2328
|
+
"createdByUserId" => String | nil,
|
|
2329
|
+
"createdAt" => String
|
|
2330
|
+
}
|
|
2331
|
+
|
|
2332
|
+
# Which detector produced the finding the issue was filed from.
|
|
2333
|
+
#
|
|
2334
|
+
# Spec schema: `LinearSourceKind`.
|
|
2335
|
+
type linear_source_kind = "cost_anomaly" | "orphan" | "oversized" | "posture_finding" | "expiring" | "probe"
|
|
2336
|
+
|
|
2337
|
+
# Spec schema: `LinearTeam`.
|
|
2338
|
+
type linear_team = { "id" => String, "key" => String, "name" => String }
|
|
2339
|
+
|
|
2340
|
+
# Supply a key to test one that has not been saved yet; send an empty object
|
|
2341
|
+
# to re-test the stored one.
|
|
2342
|
+
#
|
|
2343
|
+
# Spec schema: `LinearVerifyInput`.
|
|
2344
|
+
type linear_verify_input = { ?"apiKey" => String }
|
|
2345
|
+
|
|
2346
|
+
# The Linear user behind the API key, from the `viewer` query.
|
|
2347
|
+
#
|
|
2348
|
+
# Spec schema: `LinearVerifyResult`.
|
|
2349
|
+
type linear_verify_result = { "ok" => bool, "id" => String, "name" => String, "email" => String | nil }
|
|
2350
|
+
|
|
1706
2351
|
# Spec schema: `LiteralAssociationRequest`.
|
|
1707
2352
|
type literal_association_request = { "resourceId" => resource_id, "fieldKey" => String, "plaintextValue" => String }
|
|
1708
2353
|
|
|
@@ -2468,6 +3113,10 @@ module Infrawrench
|
|
|
2468
3113
|
| "bastions:write"
|
|
2469
3114
|
| "chat:read"
|
|
2470
3115
|
| "chat:write"
|
|
3116
|
+
| "jira:read"
|
|
3117
|
+
| "jira:write"
|
|
3118
|
+
| "linear:read"
|
|
3119
|
+
| "linear:write"
|
|
2471
3120
|
| "pages:write"
|
|
2472
3121
|
| "org:settings:write"
|
|
2473
3122
|
|
|
@@ -2578,6 +3227,7 @@ module Infrawrench
|
|
|
2578
3227
|
| "ssh"
|
|
2579
3228
|
| "together"
|
|
2580
3229
|
| "turso"
|
|
3230
|
+
| "uploadthing"
|
|
2581
3231
|
| "vercel"
|
|
2582
3232
|
| "workos"
|
|
2583
3233
|
| "xai"
|
|
@@ -2843,6 +3493,64 @@ module Infrawrench
|
|
|
2843
3493
|
?"resourceIds" => Array[resource_id]
|
|
2844
3494
|
}
|
|
2845
3495
|
|
|
3496
|
+
# Spec schema: `ReportDeliveryTargetOption`.
|
|
3497
|
+
type report_delivery_target_option = { "id" => String, "label" => String }
|
|
3498
|
+
|
|
3499
|
+
# Spec schema: `ReportDeliveryTargets`.
|
|
3500
|
+
type report_delivery_targets = {
|
|
3501
|
+
"slackChannels" => Array[report_delivery_target_option],
|
|
3502
|
+
"teamsWebhooks" => Array[report_delivery_target_option],
|
|
3503
|
+
"emailAvailable" => bool
|
|
3504
|
+
}
|
|
3505
|
+
|
|
3506
|
+
# Spec schema: `ReportNotification`.
|
|
3507
|
+
type report_notification = {
|
|
3508
|
+
"id" => String,
|
|
3509
|
+
"costReportId" => String,
|
|
3510
|
+
"cadence" => "daily" | "weekly" | "monthly",
|
|
3511
|
+
"sendDay" => Integer,
|
|
3512
|
+
"sendDayOfMonth" => Integer,
|
|
3513
|
+
"hour" => Integer,
|
|
3514
|
+
"timezone" => String,
|
|
3515
|
+
"slackChannelIds" => Array[String],
|
|
3516
|
+
"teamsWebhookIds" => Array[String],
|
|
3517
|
+
"emailRecipients" => Array[String],
|
|
3518
|
+
"enabled" => bool,
|
|
3519
|
+
"nextSendAt" => String | nil,
|
|
3520
|
+
"lastSentAt" => String | nil,
|
|
3521
|
+
"lastStatus" => "pending" | "succeeded" | "partial" | "failed" | "no_targets" | nil,
|
|
3522
|
+
"lastError" => String | nil,
|
|
3523
|
+
"createdByUserId" => String | nil,
|
|
3524
|
+
"createdAt" => String,
|
|
3525
|
+
"updatedAt" => String
|
|
3526
|
+
}
|
|
3527
|
+
|
|
3528
|
+
# A full replace, like a report's own PUT. At least one destination is
|
|
3529
|
+
# required — a schedule with nowhere to deliver would only ever record
|
|
3530
|
+
# failures.
|
|
3531
|
+
#
|
|
3532
|
+
# Spec schema: `ReportNotificationInput`.
|
|
3533
|
+
type report_notification_input = {
|
|
3534
|
+
"cadence" => "daily" | "weekly" | "monthly",
|
|
3535
|
+
?"sendDay" => Integer,
|
|
3536
|
+
?"sendDayOfMonth" => Integer,
|
|
3537
|
+
"hour" => Integer,
|
|
3538
|
+
"timezone" => String,
|
|
3539
|
+
"slackChannelIds" => Array[String],
|
|
3540
|
+
"teamsWebhookIds" => Array[String],
|
|
3541
|
+
"emailRecipients" => Array[String],
|
|
3542
|
+
"enabled" => bool
|
|
3543
|
+
}
|
|
3544
|
+
|
|
3545
|
+
# Spec schema: `ReportNotificationSendResult`.
|
|
3546
|
+
type report_notification_send_result = {
|
|
3547
|
+
"attempted" => Integer,
|
|
3548
|
+
"succeeded" => Integer,
|
|
3549
|
+
"slack" => { "attempted" => Integer, "succeeded" => Integer },
|
|
3550
|
+
"teams" => { "attempted" => Integer, "succeeded" => Integer },
|
|
3551
|
+
"email" => { "attempted" => Integer, "succeeded" => Integer }
|
|
3552
|
+
}
|
|
3553
|
+
|
|
2846
3554
|
# Spec schema: `RequiredTag`.
|
|
2847
3555
|
type required_tag = { "key" => String, ?"allowedValues" => Array[String] }
|
|
2848
3556
|
|
|
@@ -3388,6 +4096,8 @@ module Infrawrench
|
|
|
3388
4096
|
| "turso-organization-member"
|
|
3389
4097
|
| "upload-preset"
|
|
3390
4098
|
| "user"
|
|
4099
|
+
| "ut-app"
|
|
4100
|
+
| "ut-file"
|
|
3391
4101
|
| "vector-store"
|
|
3392
4102
|
| "vectorize-index"
|
|
3393
4103
|
| "vercel-deployment"
|
|
@@ -3427,6 +4137,8 @@ module Infrawrench
|
|
|
3427
4137
|
}],
|
|
3428
4138
|
?"isSshHost" => bool,
|
|
3429
4139
|
?"sshTunnelAttachSource" => bool,
|
|
4140
|
+
?"showInSidebar" => bool,
|
|
4141
|
+
?"accountRoot" => bool,
|
|
3430
4142
|
?"schedulable" => bool
|
|
3431
4143
|
}
|
|
3432
4144
|
|
|
@@ -3460,6 +4172,50 @@ module Infrawrench
|
|
|
3460
4172
|
# Spec schema: `RoleUpdateRequest`.
|
|
3461
4173
|
type role_update_request = { ?"name" => String, ?"description" => String | nil, ?"permissions" => Array[permission] }
|
|
3462
4174
|
|
|
4175
|
+
# Spec schema: `SavedCostFilter`.
|
|
4176
|
+
type saved_cost_filter = {
|
|
4177
|
+
"id" => String,
|
|
4178
|
+
"name" => String,
|
|
4179
|
+
"description" => String | nil,
|
|
4180
|
+
"filters" => Array[saved_cost_filter_term],
|
|
4181
|
+
"query" => String,
|
|
4182
|
+
"createdByUserId" => String | nil,
|
|
4183
|
+
"createdAt" => String,
|
|
4184
|
+
"updatedAt" => String
|
|
4185
|
+
}
|
|
4186
|
+
|
|
4187
|
+
# Spec schema: `SavedCostFilterInput`.
|
|
4188
|
+
type saved_cost_filter_input = {
|
|
4189
|
+
"name" => String,
|
|
4190
|
+
?"description" => String,
|
|
4191
|
+
?"filters" => Array[saved_cost_filter_term],
|
|
4192
|
+
?"query" => String
|
|
4193
|
+
}
|
|
4194
|
+
|
|
4195
|
+
# Spec schema: `SavedCostFilterReferent`.
|
|
4196
|
+
type saved_cost_filter_referent = {
|
|
4197
|
+
"kind" => "budget" | "cost_report" | "cost_graph_widget",
|
|
4198
|
+
"id" => String,
|
|
4199
|
+
"name" => String,
|
|
4200
|
+
?"dashboardId" => String,
|
|
4201
|
+
?"dashboardName" => String
|
|
4202
|
+
}
|
|
4203
|
+
|
|
4204
|
+
# Spec schema: `SavedCostFilterTerm`.
|
|
4205
|
+
type saved_cost_filter_term = {
|
|
4206
|
+
"dimension" => "provider"
|
|
4207
|
+
| "account"
|
|
4208
|
+
| "service"
|
|
4209
|
+
| "region"
|
|
4210
|
+
| "resource"
|
|
4211
|
+
| "tag"
|
|
4212
|
+
| "charge_type"
|
|
4213
|
+
| "commitment",
|
|
4214
|
+
"op" => "in" | "not_in",
|
|
4215
|
+
"values" => Array[String],
|
|
4216
|
+
?"tagKey" => String
|
|
4217
|
+
}
|
|
4218
|
+
|
|
3463
4219
|
# Spec schema: `ScheduleConflict`.
|
|
3464
4220
|
type schedule_conflict = { "error" => String }
|
|
3465
4221
|
|
|
@@ -4048,6 +4804,7 @@ module Infrawrench
|
|
|
4048
4804
|
| "agents"
|
|
4049
4805
|
| "costs"
|
|
4050
4806
|
| "savings"
|
|
4807
|
+
| "cost-reports"
|
|
4051
4808
|
| "graph"
|
|
4052
4809
|
| "logs"
|
|
4053
4810
|
| "changes"
|
|
@@ -4065,7 +4822,8 @@ module Infrawrench
|
|
|
4065
4822
|
?"dashboardId" => String,
|
|
4066
4823
|
?"accountId" => String,
|
|
4067
4824
|
?"resourceId" => resource_id,
|
|
4068
|
-
?"conversationId" => String
|
|
4825
|
+
?"conversationId" => String,
|
|
4826
|
+
?"reportId" => String
|
|
4069
4827
|
}
|
|
4070
4828
|
|
|
4071
4829
|
# Spec schema: `TagComplianceReport`.
|
|
@@ -4395,6 +5153,11 @@ module Infrawrench
|
|
|
4395
5153
|
def resource: (resource_id: String, ?org_id: String?, ?limit: Integer?, ?request_options: Hash[Symbol, untyped]?) -> resource_change_list_response
|
|
4396
5154
|
end
|
|
4397
5155
|
|
|
5156
|
+
class CommitmentsNamespace
|
|
5157
|
+
def initialize: (Transport) -> void
|
|
5158
|
+
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> commitments_feed
|
|
5159
|
+
end
|
|
5160
|
+
|
|
4398
5161
|
class ConfigNamespace
|
|
4399
5162
|
def initialize: (Transport) -> void
|
|
4400
5163
|
def apply: (body: org_config_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> org_config_apply_result
|
|
@@ -4409,6 +5172,21 @@ module Infrawrench
|
|
|
4409
5172
|
def templates: (body: connect_templates_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> connect_templates_response
|
|
4410
5173
|
end
|
|
4411
5174
|
|
|
5175
|
+
class CostAlertsGetNamespace
|
|
5176
|
+
def initialize: (Transport) -> void
|
|
5177
|
+
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "alerts" => Array[cost_alert] }
|
|
5178
|
+
def get_org_org_id_cost_alerts_id: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_alert
|
|
5179
|
+
end
|
|
5180
|
+
|
|
5181
|
+
class CostAlertsNamespace
|
|
5182
|
+
attr_reader get: CostAlertsGetNamespace
|
|
5183
|
+
def initialize: (Transport) -> void
|
|
5184
|
+
def create: (body: cost_alert_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_alert
|
|
5185
|
+
def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
5186
|
+
def events: (?org_id: String?, ?alert_id: String?, ?limit: Integer?, ?request_options: Hash[Symbol, untyped]?) -> { "events" => Array[cost_alert_event] }
|
|
5187
|
+
def update: (id: String, body: cost_alert_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_alert
|
|
5188
|
+
end
|
|
5189
|
+
|
|
4412
5190
|
class CostCentresRulesNamespace
|
|
4413
5191
|
def initialize: (Transport) -> void
|
|
4414
5192
|
def create: (body: allocation_rule_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> allocation_rule
|
|
@@ -4427,6 +5205,50 @@ module Infrawrench
|
|
|
4427
5205
|
def update: (id: String, body: cost_centre_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_centre
|
|
4428
5206
|
end
|
|
4429
5207
|
|
|
5208
|
+
class CostExportsNamespace
|
|
5209
|
+
def initialize: (Transport) -> void
|
|
5210
|
+
def create: (body: cost_export_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_export
|
|
5211
|
+
def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
5212
|
+
def get: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_export
|
|
5213
|
+
def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[cost_export]
|
|
5214
|
+
def run: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_export_run_result
|
|
5215
|
+
def update: (id: String, body: cost_export_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_export
|
|
5216
|
+
end
|
|
5217
|
+
|
|
5218
|
+
class CostReportFoldersNamespace
|
|
5219
|
+
def initialize: (Transport) -> void
|
|
5220
|
+
def create: (body: cost_report_folder_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_report_folder
|
|
5221
|
+
def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
5222
|
+
def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[cost_report_folder]
|
|
5223
|
+
def update: (id: String, body: cost_report_folder_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_report_folder
|
|
5224
|
+
end
|
|
5225
|
+
|
|
5226
|
+
class CostReportNotificationsNamespace
|
|
5227
|
+
def initialize: (Transport) -> void
|
|
5228
|
+
def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[report_notification]
|
|
5229
|
+
end
|
|
5230
|
+
|
|
5231
|
+
class CostReportsNotificationsNamespace
|
|
5232
|
+
def initialize: (Transport) -> void
|
|
5233
|
+
def create: (id: String, body: report_notification_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> report_notification
|
|
5234
|
+
def delete: (id: String, notification_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
5235
|
+
def list: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[report_notification]
|
|
5236
|
+
def post_org_org_id_cost_reports_id_notifications_notification_id_send: (id: String, notification_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> report_notification_send_result
|
|
5237
|
+
def targets: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> report_delivery_targets
|
|
5238
|
+
def update: (id: String, notification_id: String, body: report_notification_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> report_notification
|
|
5239
|
+
end
|
|
5240
|
+
|
|
5241
|
+
class CostReportsNamespace
|
|
5242
|
+
attr_reader notifications: CostReportsNotificationsNamespace
|
|
5243
|
+
def initialize: (Transport) -> void
|
|
5244
|
+
def create: (body: cost_report_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_report
|
|
5245
|
+
def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
5246
|
+
def get: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_report
|
|
5247
|
+
def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[cost_report]
|
|
5248
|
+
def run: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_report_run_result
|
|
5249
|
+
def update: (id: String, body: cost_report_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_report
|
|
5250
|
+
end
|
|
5251
|
+
|
|
4430
5252
|
class CostsAnomalySettingsNamespace
|
|
4431
5253
|
def initialize: (Transport) -> void
|
|
4432
5254
|
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_anomaly_settings_view
|
|
@@ -4437,12 +5259,12 @@ module Infrawrench
|
|
|
4437
5259
|
attr_reader anomaly_settings: CostsAnomalySettingsNamespace
|
|
4438
5260
|
def initialize: (Transport) -> void
|
|
4439
5261
|
def anomalies: (?org_id: String?, ?days: String?, ?request_options: Hash[Symbol, untyped]?) -> { "anomalies" => Array[cost_anomaly] }
|
|
4440
|
-
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
|
|
5262
|
+
def dimensions: (dimension: "provider" | "account" | "service" | "region" | "resource" | "tag" | "charge_type" | "commitment" | "tag-keys", ?org_id: String?, ?tag_key: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_dimension_values
|
|
4441
5263
|
def query: (body: cost_query_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_query_response
|
|
4442
5264
|
def rows: (body: cost_push_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_push_response
|
|
4443
|
-
def showback: (?org_id: String?, ?from: String?, ?to: String?, ?request_options: Hash[Symbol, untyped]?) -> showback_report
|
|
5265
|
+
def showback: (?org_id: String?, ?from: String?, ?to: String?, ?basis: "cash" | "amortized"?, ?request_options: Hash[Symbol, untyped]?) -> showback_report
|
|
4444
5266
|
def status: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "accounts" => Array[cost_account_status] }
|
|
4445
|
-
def untagged: (?org_id: String?, ?from: String?, ?to: String?, ?request_options: Hash[Symbol, untyped]?) -> untagged_spend_report
|
|
5267
|
+
def untagged: (?org_id: String?, ?from: String?, ?to: String?, ?basis: "cash" | "amortized"?, ?request_options: Hash[Symbol, untyped]?) -> untagged_spend_report
|
|
4446
5268
|
end
|
|
4447
5269
|
|
|
4448
5270
|
class CredentialHygieneNamespace
|
|
@@ -4455,6 +5277,19 @@ module Infrawrench
|
|
|
4455
5277
|
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> credit_burndown
|
|
4456
5278
|
end
|
|
4457
5279
|
|
|
5280
|
+
class CurrencyRatesNamespace
|
|
5281
|
+
def initialize: (Transport) -> void
|
|
5282
|
+
def delete: (rate_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "ok" => bool }
|
|
5283
|
+
def update: (body: exchange_rate_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> exchange_rate
|
|
5284
|
+
end
|
|
5285
|
+
|
|
5286
|
+
class CurrencyNamespace
|
|
5287
|
+
attr_reader rates: CurrencyRatesNamespace
|
|
5288
|
+
def initialize: (Transport) -> void
|
|
5289
|
+
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> currency_config
|
|
5290
|
+
def update: (body: currency_settings, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> currency_settings
|
|
5291
|
+
end
|
|
5292
|
+
|
|
4458
5293
|
class CustomGraphsNamespace
|
|
4459
5294
|
def initialize: (Transport) -> void
|
|
4460
5295
|
def check: (body: custom_graph_check_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> custom_graph_check_result
|
|
@@ -4587,6 +5422,23 @@ module Infrawrench
|
|
|
4587
5422
|
def accept: (body: accept_invitation_request, ?request_options: Hash[Symbol, untyped]?) -> accept_invitation_response
|
|
4588
5423
|
end
|
|
4589
5424
|
|
|
5425
|
+
class JiraProjectsNamespace
|
|
5426
|
+
def initialize: (Transport) -> void
|
|
5427
|
+
def issue_types: (key: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[jira_issue_type]
|
|
5428
|
+
def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[jira_project]
|
|
5429
|
+
end
|
|
5430
|
+
|
|
5431
|
+
class JiraNamespace
|
|
5432
|
+
attr_reader projects: JiraProjectsNamespace
|
|
5433
|
+
def initialize: (Transport) -> void
|
|
5434
|
+
def delete: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
5435
|
+
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "integration" => jira_integration }
|
|
5436
|
+
def issues: (body: create_jira_issue_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> create_jira_issue_result
|
|
5437
|
+
def links: (?org_id: String?, ?source_kind: jira_source_kind?, ?source_id: Array[String]?, ?request_options: Hash[Symbol, untyped]?) -> Array[jira_issue_link]
|
|
5438
|
+
def update: (body: jira_integration_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> (jira_integration & Hash[String, untyped])
|
|
5439
|
+
def verify: (?org_id: String?, ?body: jira_verify_input?, ?request_options: Hash[Symbol, untyped]?) -> jira_verify_result
|
|
5440
|
+
end
|
|
5441
|
+
|
|
4590
5442
|
class KvNamespace
|
|
4591
5443
|
def initialize: (Transport) -> void
|
|
4592
5444
|
def command: (body: kv_command_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> kv_command_response
|
|
@@ -4602,6 +5454,17 @@ module Infrawrench
|
|
|
4602
5454
|
def update: (lease_id: String, ?org_id: String?, ?body: resource_lease_update?, ?request_options: Hash[Symbol, untyped]?) -> resource_lease
|
|
4603
5455
|
end
|
|
4604
5456
|
|
|
5457
|
+
class LinearNamespace
|
|
5458
|
+
def initialize: (Transport) -> void
|
|
5459
|
+
def delete: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
5460
|
+
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "integration" => linear_integration }
|
|
5461
|
+
def issues: (body: create_linear_issue_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> create_linear_issue_result
|
|
5462
|
+
def links: (?org_id: String?, ?source_kind: linear_source_kind?, ?source_id: Array[String]?, ?request_options: Hash[Symbol, untyped]?) -> Array[linear_issue_link]
|
|
5463
|
+
def teams: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[linear_team]
|
|
5464
|
+
def update: (body: linear_integration_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> (linear_integration & Hash[String, untyped])
|
|
5465
|
+
def verify: (?org_id: String?, ?body: linear_verify_input?, ?request_options: Hash[Symbol, untyped]?) -> linear_verify_result
|
|
5466
|
+
end
|
|
5467
|
+
|
|
4605
5468
|
class LogWorkspacesNamespace
|
|
4606
5469
|
def initialize: (Transport) -> void
|
|
4607
5470
|
def create: (body: log_workspace_query_create, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> log_workspace_query
|
|
@@ -4776,6 +5639,16 @@ module Infrawrench
|
|
|
4776
5639
|
def get: (?org_id: String?, ?refresh: "true" | "false"?, ?request_options: Hash[Symbol, untyped]?) -> rightsizing_list_response
|
|
4777
5640
|
end
|
|
4778
5641
|
|
|
5642
|
+
class SavedCostFiltersNamespace
|
|
5643
|
+
def initialize: (Transport) -> void
|
|
5644
|
+
def create: (body: saved_cost_filter_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> saved_cost_filter
|
|
5645
|
+
def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
5646
|
+
def get: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> saved_cost_filter
|
|
5647
|
+
def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[saved_cost_filter]
|
|
5648
|
+
def referents: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "referents" => Array[saved_cost_filter_referent] }
|
|
5649
|
+
def update: (id: String, body: saved_cost_filter_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> saved_cost_filter
|
|
5650
|
+
end
|
|
5651
|
+
|
|
4779
5652
|
class SchedulesNamespace
|
|
4780
5653
|
def initialize: (Transport) -> void
|
|
4781
5654
|
def create: (?org_id: String?, ?body: sleep_schedule_create?, ?request_options: Hash[Symbol, untyped]?) -> sleep_schedule
|
|
@@ -4976,12 +5849,19 @@ module Infrawrench
|
|
|
4976
5849
|
attr_reader budgets: BudgetsNamespace
|
|
4977
5850
|
attr_reader change_freezes: ChangeFreezesNamespace
|
|
4978
5851
|
attr_reader changes: ChangesNamespace
|
|
5852
|
+
attr_reader commitments: CommitmentsNamespace
|
|
4979
5853
|
attr_reader config: ConfigNamespace
|
|
4980
5854
|
attr_reader connect: ConnectNamespace
|
|
5855
|
+
attr_reader cost_alerts: CostAlertsNamespace
|
|
4981
5856
|
attr_reader cost_centres: CostCentresNamespace
|
|
5857
|
+
attr_reader cost_exports: CostExportsNamespace
|
|
5858
|
+
attr_reader cost_report_folders: CostReportFoldersNamespace
|
|
5859
|
+
attr_reader cost_report_notifications: CostReportNotificationsNamespace
|
|
5860
|
+
attr_reader cost_reports: CostReportsNamespace
|
|
4982
5861
|
attr_reader costs: CostsNamespace
|
|
4983
5862
|
attr_reader credential_hygiene: CredentialHygieneNamespace
|
|
4984
5863
|
attr_reader credits: CreditsNamespace
|
|
5864
|
+
attr_reader currency: CurrencyNamespace
|
|
4985
5865
|
attr_reader custom_graphs: CustomGraphsNamespace
|
|
4986
5866
|
attr_reader dashboards: DashboardsNamespace
|
|
4987
5867
|
attr_reader dependency_graph: DependencyGraphNamespace
|
|
@@ -4992,8 +5872,10 @@ module Infrawrench
|
|
|
4992
5872
|
attr_reader environment_diff: EnvironmentDiffNamespace
|
|
4993
5873
|
attr_reader expiring: ExpiringNamespace
|
|
4994
5874
|
attr_reader invitations: InvitationsNamespace
|
|
5875
|
+
attr_reader jira: JiraNamespace
|
|
4995
5876
|
attr_reader kv: KvNamespace
|
|
4996
5877
|
attr_reader leases: LeasesNamespace
|
|
5878
|
+
attr_reader linear: LinearNamespace
|
|
4997
5879
|
attr_reader log_workspaces: LogWorkspacesNamespace
|
|
4998
5880
|
attr_reader metric_alerts: MetricAlertsNamespace
|
|
4999
5881
|
attr_reader moment: MomentNamespace
|
|
@@ -5007,6 +5889,7 @@ module Infrawrench
|
|
|
5007
5889
|
attr_reader profile: ProfileNamespace
|
|
5008
5890
|
attr_reader resources: ResourcesNamespace
|
|
5009
5891
|
attr_reader rightsizing: RightsizingNamespace
|
|
5892
|
+
attr_reader saved_cost_filters: SavedCostFiltersNamespace
|
|
5010
5893
|
attr_reader schedules: SchedulesNamespace
|
|
5011
5894
|
attr_reader search: SearchNamespace
|
|
5012
5895
|
attr_reader session_recordings: SessionRecordingsNamespace
|