infrawrench-sdk 1.4.0 → 1.7.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 +893 -13
- metadata +3 -3
data/sig/infrawrench/sdk.rbs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# infrawrench-sdk v1.
|
|
1
|
+
# infrawrench-sdk v1.7.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.7.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,50 @@ 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_covered_usage"
|
|
949
|
+
| "commitment_fee"
|
|
950
|
+
| "commitment_discount"
|
|
951
|
+
| "credit"
|
|
952
|
+
| "tax"
|
|
953
|
+
| "refund"
|
|
954
|
+
| "adjustment"
|
|
955
|
+
| "support"
|
|
956
|
+
| "other"
|
|
957
|
+
|
|
958
|
+
# A relative preset resolves against today every time the report runs, so a
|
|
959
|
+
# saved report keeps meaning 'the last 30 days'; an absolute range pins it to
|
|
960
|
+
# fixed dates.
|
|
961
|
+
#
|
|
962
|
+
# Spec schema: `CostDateRange`.
|
|
963
|
+
type cost_date_range = {
|
|
964
|
+
"kind" => "relative",
|
|
965
|
+
"preset" => "7d" | "30d" | "90d" | "mtd" | "last_month" | "qtd" | "ytd" | "12m"
|
|
966
|
+
}
|
|
967
|
+
| { "kind" => "absolute", "from" => String, "to" => String }
|
|
968
|
+
|
|
698
969
|
# Spec schema: `CostDimension`.
|
|
699
|
-
type cost_dimension = "provider"
|
|
970
|
+
type cost_dimension = "provider"
|
|
971
|
+
| "account"
|
|
972
|
+
| "service"
|
|
973
|
+
| "region"
|
|
974
|
+
| "resource"
|
|
975
|
+
| "tag"
|
|
976
|
+
| "charge_type"
|
|
977
|
+
| "commitment"
|
|
700
978
|
|
|
701
979
|
# Spec schema: `CostDimensionValues`.
|
|
702
980
|
type cost_dimension_values = { "values" => Array[String | { "value" => String, "label" => String }] }
|
|
@@ -730,6 +1008,123 @@ module Infrawrench
|
|
|
730
1008
|
?"parentResourceId" => resource_id
|
|
731
1009
|
}
|
|
732
1010
|
|
|
1011
|
+
# Spec schema: `CostExport`.
|
|
1012
|
+
type cost_export = {
|
|
1013
|
+
"id" => String,
|
|
1014
|
+
"name" => String,
|
|
1015
|
+
"format" => "csv" | "ndjson",
|
|
1016
|
+
"query" => cost_export_query,
|
|
1017
|
+
"cadence" => "daily" | "weekly" | "monthly",
|
|
1018
|
+
"hour" => Integer,
|
|
1019
|
+
"timezone" => String,
|
|
1020
|
+
"restatementDays" => Integer,
|
|
1021
|
+
"enabled" => bool,
|
|
1022
|
+
"destination" => cost_export_destination,
|
|
1023
|
+
"hasCredentials" => bool,
|
|
1024
|
+
"credentialHint" => String | nil,
|
|
1025
|
+
"lastRunAt" => String | nil,
|
|
1026
|
+
"lastStatus" => "pending" | "succeeded" | "failed",
|
|
1027
|
+
"lastError" => String | nil,
|
|
1028
|
+
"lastObjectCount" => Integer | nil,
|
|
1029
|
+
"lastRowCount" => Integer | nil,
|
|
1030
|
+
"nextRunAt" => String | nil,
|
|
1031
|
+
"createdByUserId" => String | nil,
|
|
1032
|
+
"createdAt" => String,
|
|
1033
|
+
"updatedAt" => String
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1036
|
+
# Spec schema: `CostExportDestination`.
|
|
1037
|
+
type cost_export_destination = {
|
|
1038
|
+
"kind" => "s3",
|
|
1039
|
+
"bucket" => String,
|
|
1040
|
+
"prefix" => String,
|
|
1041
|
+
"region" => String,
|
|
1042
|
+
"endpoint" => String,
|
|
1043
|
+
"forcePathStyle" => bool
|
|
1044
|
+
}
|
|
1045
|
+
| { "kind" => "http", "method" => "POST" | "PUT", "urlHint" => String }
|
|
1046
|
+
|
|
1047
|
+
# Spec schema: `CostExportFilter`.
|
|
1048
|
+
type cost_export_filter = {
|
|
1049
|
+
"dimension" => "provider"
|
|
1050
|
+
| "account"
|
|
1051
|
+
| "service"
|
|
1052
|
+
| "region"
|
|
1053
|
+
| "resource"
|
|
1054
|
+
| "tag"
|
|
1055
|
+
| "charge_type"
|
|
1056
|
+
| "commitment",
|
|
1057
|
+
"op" => "in" | "not_in",
|
|
1058
|
+
"values" => Array[String],
|
|
1059
|
+
?"tagKey" => String
|
|
1060
|
+
}
|
|
1061
|
+
|
|
1062
|
+
# Spec schema: `CostExportInput`.
|
|
1063
|
+
type cost_export_input = {
|
|
1064
|
+
"name" => String,
|
|
1065
|
+
"format" => "csv" | "ndjson",
|
|
1066
|
+
"query" => cost_export_query,
|
|
1067
|
+
"cadence" => "daily" | "weekly" | "monthly",
|
|
1068
|
+
"hour" => Integer,
|
|
1069
|
+
"timezone" => String,
|
|
1070
|
+
"restatementDays" => Integer,
|
|
1071
|
+
"enabled" => bool,
|
|
1072
|
+
"destination" => cost_export_destination,
|
|
1073
|
+
?"accessKeyId" => String,
|
|
1074
|
+
?"secretAccessKey" => String,
|
|
1075
|
+
?"url" => String
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
# Spec schema: `CostExportObject`.
|
|
1079
|
+
type cost_export_object = {
|
|
1080
|
+
"periodStart" => String,
|
|
1081
|
+
"from" => String,
|
|
1082
|
+
"to" => String,
|
|
1083
|
+
"key" => String,
|
|
1084
|
+
"rowCount" => Integer,
|
|
1085
|
+
"byteCount" => Integer
|
|
1086
|
+
}
|
|
1087
|
+
|
|
1088
|
+
# The rows a run selects. Reuses the same `CostFilter` and dimension
|
|
1089
|
+
# vocabulary the dashboards, budgets and cost reports store, so a filter means
|
|
1090
|
+
# the same thing everywhere.
|
|
1091
|
+
#
|
|
1092
|
+
# Spec schema: `CostExportQuery`.
|
|
1093
|
+
type cost_export_query = {
|
|
1094
|
+
"version" => Numeric,
|
|
1095
|
+
"dimensions" => Array["provider"
|
|
1096
|
+
| "account"
|
|
1097
|
+
| "service"
|
|
1098
|
+
| "region"
|
|
1099
|
+
| "resource"
|
|
1100
|
+
| "tag"
|
|
1101
|
+
| "charge_type"
|
|
1102
|
+
| "commitment"],
|
|
1103
|
+
"tagKeys" => Array[String],
|
|
1104
|
+
"filters" => Array[cost_export_filter],
|
|
1105
|
+
?"chargeTypes" => Array["usage"
|
|
1106
|
+
| "commitment_covered_usage"
|
|
1107
|
+
| "commitment_fee"
|
|
1108
|
+
| "commitment_discount"
|
|
1109
|
+
| "credit"
|
|
1110
|
+
| "tax"
|
|
1111
|
+
| "refund"
|
|
1112
|
+
| "adjustment"
|
|
1113
|
+
| "support"
|
|
1114
|
+
| "other"],
|
|
1115
|
+
?"costBasis" => "cash" | "amortized"
|
|
1116
|
+
}
|
|
1117
|
+
|
|
1118
|
+
# Spec schema: `CostExportRunResult`.
|
|
1119
|
+
type cost_export_run_result = {
|
|
1120
|
+
"exportId" => String,
|
|
1121
|
+
"status" => "pending" | "succeeded" | "failed",
|
|
1122
|
+
"objects" => Array[cost_export_object],
|
|
1123
|
+
"rowCount" => Integer,
|
|
1124
|
+
"collectionWatermark" => String | nil,
|
|
1125
|
+
"error" => String | nil
|
|
1126
|
+
}
|
|
1127
|
+
|
|
733
1128
|
# Spec schema: `CostFilter`.
|
|
734
1129
|
type cost_filter = {
|
|
735
1130
|
"dimension" => cost_dimension,
|
|
@@ -738,6 +1133,33 @@ module Infrawrench
|
|
|
738
1133
|
?"tagKey" => String
|
|
739
1134
|
}
|
|
740
1135
|
|
|
1136
|
+
# The saved graph. Identical to the config an ad-hoc `cost_graph` dashboard
|
|
1137
|
+
# widget stores inline — a report is that config given a name and an id.
|
|
1138
|
+
#
|
|
1139
|
+
# Spec schema: `CostGraphConfig`.
|
|
1140
|
+
type cost_graph_config = {
|
|
1141
|
+
"version" => Numeric,
|
|
1142
|
+
"chartType" => "stacked_bar" | "multi_bar" | "line" | "area" | "pie",
|
|
1143
|
+
"binning" => "daily" | "weekly" | "monthly" | "cumulative",
|
|
1144
|
+
"dateRange" => cost_date_range,
|
|
1145
|
+
"groupBy" => "none"
|
|
1146
|
+
| "provider"
|
|
1147
|
+
| "account"
|
|
1148
|
+
| "service"
|
|
1149
|
+
| "region"
|
|
1150
|
+
| "resource"
|
|
1151
|
+
| "tag"
|
|
1152
|
+
| "charge_type"
|
|
1153
|
+
| "commitment",
|
|
1154
|
+
?"groupByTagKey" => String,
|
|
1155
|
+
?"filters" => Array[cost_report_filter],
|
|
1156
|
+
?"savedFilterId" => String,
|
|
1157
|
+
?"topN" => Integer,
|
|
1158
|
+
?"comparePreviousPeriod" => bool,
|
|
1159
|
+
?"showForecast" => bool,
|
|
1160
|
+
?"costBasis" => "cash" | "amortized"
|
|
1161
|
+
}
|
|
1162
|
+
|
|
741
1163
|
# Spec schema: `CostPushRequest`.
|
|
742
1164
|
type cost_push_request = { "source" => String, "rows" => Array[pushed_cost_row] }
|
|
743
1165
|
|
|
@@ -749,12 +1171,24 @@ module Infrawrench
|
|
|
749
1171
|
"from" => String,
|
|
750
1172
|
"to" => String,
|
|
751
1173
|
"binning" => "daily" | "weekly" | "monthly" | "cumulative",
|
|
752
|
-
"groupBy" => "none"
|
|
1174
|
+
"groupBy" => "none"
|
|
1175
|
+
| "provider"
|
|
1176
|
+
| "account"
|
|
1177
|
+
| "service"
|
|
1178
|
+
| "region"
|
|
1179
|
+
| "resource"
|
|
1180
|
+
| "tag"
|
|
1181
|
+
| "charge_type"
|
|
1182
|
+
| "commitment",
|
|
753
1183
|
?"groupByTagKey" => String,
|
|
754
1184
|
?"filters" => Array[cost_filter],
|
|
1185
|
+
?"query" => String,
|
|
1186
|
+
?"savedFilterId" => String,
|
|
755
1187
|
?"topN" => Integer,
|
|
756
1188
|
?"comparePreviousPeriod" => bool,
|
|
757
|
-
?"forecast" => bool
|
|
1189
|
+
?"forecast" => bool,
|
|
1190
|
+
?"costBasis" => cost_basis,
|
|
1191
|
+
?"chargeTypes" => Array[cost_charge_type]
|
|
758
1192
|
}
|
|
759
1193
|
|
|
760
1194
|
# Spec schema: `CostQueryResponse`.
|
|
@@ -775,6 +1209,66 @@ module Infrawrench
|
|
|
775
1209
|
"points" => Array[cost_series_point]
|
|
776
1210
|
}
|
|
777
1211
|
|
|
1212
|
+
# Spec schema: `CostReport`.
|
|
1213
|
+
type cost_report = {
|
|
1214
|
+
"id" => String,
|
|
1215
|
+
"name" => String,
|
|
1216
|
+
"description" => String | nil,
|
|
1217
|
+
"config" => cost_graph_config,
|
|
1218
|
+
"folderId" => String | nil,
|
|
1219
|
+
"createdByUserId" => String | nil,
|
|
1220
|
+
"createdAt" => String,
|
|
1221
|
+
"updatedAt" => String,
|
|
1222
|
+
"placements" => Array[cost_report_placement]
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
# Spec schema: `CostReportFilter`.
|
|
1226
|
+
type cost_report_filter = {
|
|
1227
|
+
"dimension" => "provider"
|
|
1228
|
+
| "account"
|
|
1229
|
+
| "service"
|
|
1230
|
+
| "region"
|
|
1231
|
+
| "resource"
|
|
1232
|
+
| "tag"
|
|
1233
|
+
| "charge_type"
|
|
1234
|
+
| "commitment",
|
|
1235
|
+
"op" => "in" | "not_in",
|
|
1236
|
+
"values" => Array[String],
|
|
1237
|
+
?"tagKey" => String
|
|
1238
|
+
}
|
|
1239
|
+
|
|
1240
|
+
# Spec schema: `CostReportFolder`.
|
|
1241
|
+
type cost_report_folder = {
|
|
1242
|
+
"id" => String,
|
|
1243
|
+
"name" => String,
|
|
1244
|
+
"parentFolderId" => String | nil,
|
|
1245
|
+
"createdAt" => String,
|
|
1246
|
+
"updatedAt" => String
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
# Spec schema: `CostReportFolderInput`.
|
|
1250
|
+
type cost_report_folder_input = { "name" => String, ?"parentFolderId" => String | nil }
|
|
1251
|
+
|
|
1252
|
+
# Spec schema: `CostReportInput`.
|
|
1253
|
+
type cost_report_input = {
|
|
1254
|
+
"name" => String,
|
|
1255
|
+
?"description" => String,
|
|
1256
|
+
"config" => cost_graph_config,
|
|
1257
|
+
?"folderId" => String | nil
|
|
1258
|
+
}
|
|
1259
|
+
|
|
1260
|
+
# Spec schema: `CostReportPlacement`.
|
|
1261
|
+
type cost_report_placement = { "widgetId" => String, "dashboardId" => String, "dashboardName" => String }
|
|
1262
|
+
|
|
1263
|
+
# Spec schema: `CostReportRunResult`.
|
|
1264
|
+
type cost_report_run_result = {
|
|
1265
|
+
"reportId" => String,
|
|
1266
|
+
"name" => String,
|
|
1267
|
+
"from" => String,
|
|
1268
|
+
"to" => String,
|
|
1269
|
+
"result" => cost_query_response
|
|
1270
|
+
}
|
|
1271
|
+
|
|
778
1272
|
# Spec schema: `CostSeriesPoint`.
|
|
779
1273
|
type cost_series_point = { "bucket" => String, "amount" => Numeric }
|
|
780
1274
|
|
|
@@ -814,6 +1308,37 @@ module Infrawrench
|
|
|
814
1308
|
?"parentResourceId" => resource_id
|
|
815
1309
|
}
|
|
816
1310
|
|
|
1311
|
+
# Spec schema: `CreateJiraIssueInput`.
|
|
1312
|
+
type create_jira_issue_input = {
|
|
1313
|
+
"sourceKind" => jira_source_kind,
|
|
1314
|
+
"sourceId" => String,
|
|
1315
|
+
"projectKey" => String,
|
|
1316
|
+
"issueTypeId" => String,
|
|
1317
|
+
"summary" => String,
|
|
1318
|
+
?"description" => String,
|
|
1319
|
+
?"labels" => Array[String]
|
|
1320
|
+
}
|
|
1321
|
+
|
|
1322
|
+
# Spec schema: `CreateJiraIssueResult`.
|
|
1323
|
+
type create_jira_issue_result = { "issue" => { "id" => String, "key" => String, "url" => String }, "link" => jira_issue_link }
|
|
1324
|
+
|
|
1325
|
+
# Spec schema: `CreateLinearIssueInput`.
|
|
1326
|
+
type create_linear_issue_input = {
|
|
1327
|
+
"sourceKind" => linear_source_kind,
|
|
1328
|
+
"sourceId" => String,
|
|
1329
|
+
"teamId" => String,
|
|
1330
|
+
"title" => String,
|
|
1331
|
+
?"description" => String,
|
|
1332
|
+
?"labelIds" => Array[String],
|
|
1333
|
+
?"projectId" => String
|
|
1334
|
+
}
|
|
1335
|
+
|
|
1336
|
+
# Spec schema: `CreateLinearIssueResult`.
|
|
1337
|
+
type create_linear_issue_result = {
|
|
1338
|
+
"issue" => { "id" => String, "identifier" => String, "url" => String },
|
|
1339
|
+
"link" => linear_issue_link
|
|
1340
|
+
}
|
|
1341
|
+
|
|
817
1342
|
# Spec schema: `CreateOrgRequest`.
|
|
818
1343
|
type create_org_request = { "displayName" => String }
|
|
819
1344
|
|
|
@@ -928,6 +1453,12 @@ module Infrawrench
|
|
|
928
1453
|
"urgency" => "critical" | "warning" | "ok" | "unknown"
|
|
929
1454
|
}
|
|
930
1455
|
|
|
1456
|
+
# Spec schema: `CurrencyConfig`.
|
|
1457
|
+
type currency_config = { "displayCurrency" => String | nil, "rates" => Array[exchange_rate] }
|
|
1458
|
+
|
|
1459
|
+
# Spec schema: `CurrencySettings`.
|
|
1460
|
+
type currency_settings = { "displayCurrency" => String | nil }
|
|
1461
|
+
|
|
931
1462
|
# Spec schema: `CustomGraphCheckRequest`.
|
|
932
1463
|
type custom_graph_check_request = { "source" => String }
|
|
933
1464
|
|
|
@@ -1046,8 +1577,12 @@ module Infrawrench
|
|
|
1046
1577
|
"updatedAt" => String
|
|
1047
1578
|
}
|
|
1048
1579
|
|
|
1580
|
+
# `cost_graph` stores its whole config inline — a one-off card. `cost_report`
|
|
1581
|
+
# points at a saved cost report by id, so editing the report updates every
|
|
1582
|
+
# dashboard showing it.
|
|
1583
|
+
#
|
|
1049
1584
|
# Spec schema: `DashboardWidgetKind`.
|
|
1050
|
-
type dashboard_widget_kind = "cost_graph" | "budget" | "custom_graph"
|
|
1585
|
+
type dashboard_widget_kind = "cost_graph" | "cost_report" | "budget" | "custom_graph"
|
|
1051
1586
|
|
|
1052
1587
|
# Spec schema: `DashboardWithPins`.
|
|
1053
1588
|
type dashboard_with_pins = {
|
|
@@ -1505,6 +2040,26 @@ module Infrawrench
|
|
|
1505
2040
|
# Spec schema: `EscalationPolicy`.
|
|
1506
2041
|
type escalation_policy = { "afterMinutes" => Integer, "destinations" => Array[alert_destination] } | nil
|
|
1507
2042
|
|
|
2043
|
+
# Spec schema: `ExchangeRate`.
|
|
2044
|
+
type exchange_rate = {
|
|
2045
|
+
"id" => String,
|
|
2046
|
+
"fromCurrency" => String,
|
|
2047
|
+
"toCurrency" => String,
|
|
2048
|
+
"rate" => String,
|
|
2049
|
+
"effectiveFrom" => String,
|
|
2050
|
+
"createdBy" => String | nil,
|
|
2051
|
+
"createdAt" => String,
|
|
2052
|
+
"updatedAt" => String
|
|
2053
|
+
}
|
|
2054
|
+
|
|
2055
|
+
# Spec schema: `ExchangeRateInput`.
|
|
2056
|
+
type exchange_rate_input = {
|
|
2057
|
+
"fromCurrency" => String,
|
|
2058
|
+
"toCurrency" => String,
|
|
2059
|
+
"rate" => String,
|
|
2060
|
+
"effectiveFrom" => String
|
|
2061
|
+
}
|
|
2062
|
+
|
|
1508
2063
|
# Spec schema: `ExpiryAlertSettings`.
|
|
1509
2064
|
type expiry_alert_settings = { "enabled" => bool, "leadDays" => Integer, "lastNotifiedAt" => String | nil }
|
|
1510
2065
|
|
|
@@ -1683,6 +2238,62 @@ module Infrawrench
|
|
|
1683
2238
|
?"parentResourceId" => resource_id
|
|
1684
2239
|
}
|
|
1685
2240
|
|
|
2241
|
+
# Spec schema: `JiraIntegration`.
|
|
2242
|
+
type jira_integration = {
|
|
2243
|
+
"siteUrl" => String,
|
|
2244
|
+
"accountEmail" => String,
|
|
2245
|
+
"tokenHint" => String,
|
|
2246
|
+
"defaultProjectKey" => String | nil,
|
|
2247
|
+
"defaultIssueTypeId" => String | nil,
|
|
2248
|
+
"updatedAt" => String
|
|
2249
|
+
}
|
|
2250
|
+
| nil
|
|
2251
|
+
|
|
2252
|
+
# Spec schema: `JiraIntegrationInput`.
|
|
2253
|
+
type jira_integration_input = {
|
|
2254
|
+
"siteUrl" => String,
|
|
2255
|
+
"accountEmail" => String,
|
|
2256
|
+
?"apiToken" => String,
|
|
2257
|
+
?"defaultProjectKey" => String | nil,
|
|
2258
|
+
?"defaultIssueTypeId" => String | nil
|
|
2259
|
+
}
|
|
2260
|
+
|
|
2261
|
+
# Spec schema: `JiraIssueLink`.
|
|
2262
|
+
type jira_issue_link = {
|
|
2263
|
+
"id" => String,
|
|
2264
|
+
"sourceKind" => jira_source_kind,
|
|
2265
|
+
"sourceId" => String,
|
|
2266
|
+
"issueKey" => String,
|
|
2267
|
+
"issueUrl" => String,
|
|
2268
|
+
"createdByUserId" => String | nil,
|
|
2269
|
+
"createdAt" => String
|
|
2270
|
+
}
|
|
2271
|
+
|
|
2272
|
+
# Spec schema: `JiraIssueType`.
|
|
2273
|
+
type jira_issue_type = { "id" => String, "name" => String, "subtask" => bool, "description" => String | nil }
|
|
2274
|
+
|
|
2275
|
+
# Spec schema: `JiraProject`.
|
|
2276
|
+
type jira_project = { "id" => String, "key" => String, "name" => String }
|
|
2277
|
+
|
|
2278
|
+
# Which detector produced the finding the issue was filed from.
|
|
2279
|
+
#
|
|
2280
|
+
# Spec schema: `JiraSourceKind`.
|
|
2281
|
+
type jira_source_kind = "cost_anomaly" | "orphan" | "oversized" | "posture_finding" | "expiring" | "probe"
|
|
2282
|
+
|
|
2283
|
+
# Supply all three to test credentials that have not been saved yet; send an
|
|
2284
|
+
# empty object to re-test the stored ones.
|
|
2285
|
+
#
|
|
2286
|
+
# Spec schema: `JiraVerifyInput`.
|
|
2287
|
+
type jira_verify_input = { ?"siteUrl" => String, ?"accountEmail" => String, ?"apiToken" => String }
|
|
2288
|
+
|
|
2289
|
+
# Spec schema: `JiraVerifyResult`.
|
|
2290
|
+
type jira_verify_result = {
|
|
2291
|
+
"ok" => bool,
|
|
2292
|
+
"accountId" => String,
|
|
2293
|
+
"displayName" => String,
|
|
2294
|
+
"emailAddress" => String | nil
|
|
2295
|
+
}
|
|
2296
|
+
|
|
1686
2297
|
# Free-form JSON object whose shape depends on the plugin.
|
|
1687
2298
|
#
|
|
1688
2299
|
# Spec schema: `JsonObject`.
|
|
@@ -1703,6 +2314,42 @@ module Infrawrench
|
|
|
1703
2314
|
# Spec schema: `LeaseConflict`.
|
|
1704
2315
|
type lease_conflict = { "error" => String }
|
|
1705
2316
|
|
|
2317
|
+
# Spec schema: `LinearIntegration`.
|
|
2318
|
+
type linear_integration = { "keyHint" => String, "defaultTeamId" => String | nil, "updatedAt" => String } | nil
|
|
2319
|
+
|
|
2320
|
+
# Spec schema: `LinearIntegrationInput`.
|
|
2321
|
+
type linear_integration_input = { ?"apiKey" => String, ?"defaultTeamId" => String | nil }
|
|
2322
|
+
|
|
2323
|
+
# Spec schema: `LinearIssueLink`.
|
|
2324
|
+
type linear_issue_link = {
|
|
2325
|
+
"id" => String,
|
|
2326
|
+
"sourceKind" => linear_source_kind,
|
|
2327
|
+
"sourceId" => String,
|
|
2328
|
+
"issueIdentifier" => String,
|
|
2329
|
+
"issueUrl" => String,
|
|
2330
|
+
"createdByUserId" => String | nil,
|
|
2331
|
+
"createdAt" => String
|
|
2332
|
+
}
|
|
2333
|
+
|
|
2334
|
+
# Which detector produced the finding the issue was filed from.
|
|
2335
|
+
#
|
|
2336
|
+
# Spec schema: `LinearSourceKind`.
|
|
2337
|
+
type linear_source_kind = "cost_anomaly" | "orphan" | "oversized" | "posture_finding" | "expiring" | "probe"
|
|
2338
|
+
|
|
2339
|
+
# Spec schema: `LinearTeam`.
|
|
2340
|
+
type linear_team = { "id" => String, "key" => String, "name" => String }
|
|
2341
|
+
|
|
2342
|
+
# Supply a key to test one that has not been saved yet; send an empty object
|
|
2343
|
+
# to re-test the stored one.
|
|
2344
|
+
#
|
|
2345
|
+
# Spec schema: `LinearVerifyInput`.
|
|
2346
|
+
type linear_verify_input = { ?"apiKey" => String }
|
|
2347
|
+
|
|
2348
|
+
# The Linear user behind the API key, from the `viewer` query.
|
|
2349
|
+
#
|
|
2350
|
+
# Spec schema: `LinearVerifyResult`.
|
|
2351
|
+
type linear_verify_result = { "ok" => bool, "id" => String, "name" => String, "email" => String | nil }
|
|
2352
|
+
|
|
1706
2353
|
# Spec schema: `LiteralAssociationRequest`.
|
|
1707
2354
|
type literal_association_request = { "resourceId" => resource_id, "fieldKey" => String, "plaintextValue" => String }
|
|
1708
2355
|
|
|
@@ -2105,7 +2752,7 @@ module Infrawrench
|
|
|
2105
2752
|
# Spec schema: `OrgConfigDashboardCard`.
|
|
2106
2753
|
type org_config_dashboard_card = {
|
|
2107
2754
|
"kind" => "widget",
|
|
2108
|
-
"widgetKind" => "cost_graph" | "budget" | "custom_graph",
|
|
2755
|
+
"widgetKind" => "cost_graph" | "cost_report" | "budget" | "custom_graph",
|
|
2109
2756
|
?"title" => String,
|
|
2110
2757
|
?"config" => json_object,
|
|
2111
2758
|
?"budgetKey" => String,
|
|
@@ -2468,6 +3115,10 @@ module Infrawrench
|
|
|
2468
3115
|
| "bastions:write"
|
|
2469
3116
|
| "chat:read"
|
|
2470
3117
|
| "chat:write"
|
|
3118
|
+
| "jira:read"
|
|
3119
|
+
| "jira:write"
|
|
3120
|
+
| "linear:read"
|
|
3121
|
+
| "linear:write"
|
|
2471
3122
|
| "pages:write"
|
|
2472
3123
|
| "org:settings:write"
|
|
2473
3124
|
|
|
@@ -2844,6 +3495,64 @@ module Infrawrench
|
|
|
2844
3495
|
?"resourceIds" => Array[resource_id]
|
|
2845
3496
|
}
|
|
2846
3497
|
|
|
3498
|
+
# Spec schema: `ReportDeliveryTargetOption`.
|
|
3499
|
+
type report_delivery_target_option = { "id" => String, "label" => String }
|
|
3500
|
+
|
|
3501
|
+
# Spec schema: `ReportDeliveryTargets`.
|
|
3502
|
+
type report_delivery_targets = {
|
|
3503
|
+
"slackChannels" => Array[report_delivery_target_option],
|
|
3504
|
+
"teamsWebhooks" => Array[report_delivery_target_option],
|
|
3505
|
+
"emailAvailable" => bool
|
|
3506
|
+
}
|
|
3507
|
+
|
|
3508
|
+
# Spec schema: `ReportNotification`.
|
|
3509
|
+
type report_notification = {
|
|
3510
|
+
"id" => String,
|
|
3511
|
+
"costReportId" => String,
|
|
3512
|
+
"cadence" => "daily" | "weekly" | "monthly",
|
|
3513
|
+
"sendDay" => Integer,
|
|
3514
|
+
"sendDayOfMonth" => Integer,
|
|
3515
|
+
"hour" => Integer,
|
|
3516
|
+
"timezone" => String,
|
|
3517
|
+
"slackChannelIds" => Array[String],
|
|
3518
|
+
"teamsWebhookIds" => Array[String],
|
|
3519
|
+
"emailRecipients" => Array[String],
|
|
3520
|
+
"enabled" => bool,
|
|
3521
|
+
"nextSendAt" => String | nil,
|
|
3522
|
+
"lastSentAt" => String | nil,
|
|
3523
|
+
"lastStatus" => "pending" | "succeeded" | "partial" | "failed" | "no_targets" | nil,
|
|
3524
|
+
"lastError" => String | nil,
|
|
3525
|
+
"createdByUserId" => String | nil,
|
|
3526
|
+
"createdAt" => String,
|
|
3527
|
+
"updatedAt" => String
|
|
3528
|
+
}
|
|
3529
|
+
|
|
3530
|
+
# A full replace, like a report's own PUT. At least one destination is
|
|
3531
|
+
# required — a schedule with nowhere to deliver would only ever record
|
|
3532
|
+
# failures.
|
|
3533
|
+
#
|
|
3534
|
+
# Spec schema: `ReportNotificationInput`.
|
|
3535
|
+
type report_notification_input = {
|
|
3536
|
+
"cadence" => "daily" | "weekly" | "monthly",
|
|
3537
|
+
?"sendDay" => Integer,
|
|
3538
|
+
?"sendDayOfMonth" => Integer,
|
|
3539
|
+
"hour" => Integer,
|
|
3540
|
+
"timezone" => String,
|
|
3541
|
+
"slackChannelIds" => Array[String],
|
|
3542
|
+
"teamsWebhookIds" => Array[String],
|
|
3543
|
+
"emailRecipients" => Array[String],
|
|
3544
|
+
"enabled" => bool
|
|
3545
|
+
}
|
|
3546
|
+
|
|
3547
|
+
# Spec schema: `ReportNotificationSendResult`.
|
|
3548
|
+
type report_notification_send_result = {
|
|
3549
|
+
"attempted" => Integer,
|
|
3550
|
+
"succeeded" => Integer,
|
|
3551
|
+
"slack" => { "attempted" => Integer, "succeeded" => Integer },
|
|
3552
|
+
"teams" => { "attempted" => Integer, "succeeded" => Integer },
|
|
3553
|
+
"email" => { "attempted" => Integer, "succeeded" => Integer }
|
|
3554
|
+
}
|
|
3555
|
+
|
|
2847
3556
|
# Spec schema: `RequiredTag`.
|
|
2848
3557
|
type required_tag = { "key" => String, ?"allowedValues" => Array[String] }
|
|
2849
3558
|
|
|
@@ -3465,6 +4174,50 @@ module Infrawrench
|
|
|
3465
4174
|
# Spec schema: `RoleUpdateRequest`.
|
|
3466
4175
|
type role_update_request = { ?"name" => String, ?"description" => String | nil, ?"permissions" => Array[permission] }
|
|
3467
4176
|
|
|
4177
|
+
# Spec schema: `SavedCostFilter`.
|
|
4178
|
+
type saved_cost_filter = {
|
|
4179
|
+
"id" => String,
|
|
4180
|
+
"name" => String,
|
|
4181
|
+
"description" => String | nil,
|
|
4182
|
+
"filters" => Array[saved_cost_filter_term],
|
|
4183
|
+
"query" => String,
|
|
4184
|
+
"createdByUserId" => String | nil,
|
|
4185
|
+
"createdAt" => String,
|
|
4186
|
+
"updatedAt" => String
|
|
4187
|
+
}
|
|
4188
|
+
|
|
4189
|
+
# Spec schema: `SavedCostFilterInput`.
|
|
4190
|
+
type saved_cost_filter_input = {
|
|
4191
|
+
"name" => String,
|
|
4192
|
+
?"description" => String,
|
|
4193
|
+
?"filters" => Array[saved_cost_filter_term],
|
|
4194
|
+
?"query" => String
|
|
4195
|
+
}
|
|
4196
|
+
|
|
4197
|
+
# Spec schema: `SavedCostFilterReferent`.
|
|
4198
|
+
type saved_cost_filter_referent = {
|
|
4199
|
+
"kind" => "budget" | "cost_report" | "cost_graph_widget",
|
|
4200
|
+
"id" => String,
|
|
4201
|
+
"name" => String,
|
|
4202
|
+
?"dashboardId" => String,
|
|
4203
|
+
?"dashboardName" => String
|
|
4204
|
+
}
|
|
4205
|
+
|
|
4206
|
+
# Spec schema: `SavedCostFilterTerm`.
|
|
4207
|
+
type saved_cost_filter_term = {
|
|
4208
|
+
"dimension" => "provider"
|
|
4209
|
+
| "account"
|
|
4210
|
+
| "service"
|
|
4211
|
+
| "region"
|
|
4212
|
+
| "resource"
|
|
4213
|
+
| "tag"
|
|
4214
|
+
| "charge_type"
|
|
4215
|
+
| "commitment",
|
|
4216
|
+
"op" => "in" | "not_in",
|
|
4217
|
+
"values" => Array[String],
|
|
4218
|
+
?"tagKey" => String
|
|
4219
|
+
}
|
|
4220
|
+
|
|
3468
4221
|
# Spec schema: `ScheduleConflict`.
|
|
3469
4222
|
type schedule_conflict = { "error" => String }
|
|
3470
4223
|
|
|
@@ -4053,6 +4806,7 @@ module Infrawrench
|
|
|
4053
4806
|
| "agents"
|
|
4054
4807
|
| "costs"
|
|
4055
4808
|
| "savings"
|
|
4809
|
+
| "cost-reports"
|
|
4056
4810
|
| "graph"
|
|
4057
4811
|
| "logs"
|
|
4058
4812
|
| "changes"
|
|
@@ -4070,7 +4824,8 @@ module Infrawrench
|
|
|
4070
4824
|
?"dashboardId" => String,
|
|
4071
4825
|
?"accountId" => String,
|
|
4072
4826
|
?"resourceId" => resource_id,
|
|
4073
|
-
?"conversationId" => String
|
|
4827
|
+
?"conversationId" => String,
|
|
4828
|
+
?"reportId" => String
|
|
4074
4829
|
}
|
|
4075
4830
|
|
|
4076
4831
|
# Spec schema: `TagComplianceReport`.
|
|
@@ -4400,6 +5155,11 @@ module Infrawrench
|
|
|
4400
5155
|
def resource: (resource_id: String, ?org_id: String?, ?limit: Integer?, ?request_options: Hash[Symbol, untyped]?) -> resource_change_list_response
|
|
4401
5156
|
end
|
|
4402
5157
|
|
|
5158
|
+
class CommitmentsNamespace
|
|
5159
|
+
def initialize: (Transport) -> void
|
|
5160
|
+
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> commitments_feed
|
|
5161
|
+
end
|
|
5162
|
+
|
|
4403
5163
|
class ConfigNamespace
|
|
4404
5164
|
def initialize: (Transport) -> void
|
|
4405
5165
|
def apply: (body: org_config_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> org_config_apply_result
|
|
@@ -4414,6 +5174,21 @@ module Infrawrench
|
|
|
4414
5174
|
def templates: (body: connect_templates_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> connect_templates_response
|
|
4415
5175
|
end
|
|
4416
5176
|
|
|
5177
|
+
class CostAlertsGetNamespace
|
|
5178
|
+
def initialize: (Transport) -> void
|
|
5179
|
+
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "alerts" => Array[cost_alert] }
|
|
5180
|
+
def get_org_org_id_cost_alerts_id: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_alert
|
|
5181
|
+
end
|
|
5182
|
+
|
|
5183
|
+
class CostAlertsNamespace
|
|
5184
|
+
attr_reader get: CostAlertsGetNamespace
|
|
5185
|
+
def initialize: (Transport) -> void
|
|
5186
|
+
def create: (body: cost_alert_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_alert
|
|
5187
|
+
def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
5188
|
+
def events: (?org_id: String?, ?alert_id: String?, ?limit: Integer?, ?request_options: Hash[Symbol, untyped]?) -> { "events" => Array[cost_alert_event] }
|
|
5189
|
+
def update: (id: String, body: cost_alert_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_alert
|
|
5190
|
+
end
|
|
5191
|
+
|
|
4417
5192
|
class CostCentresRulesNamespace
|
|
4418
5193
|
def initialize: (Transport) -> void
|
|
4419
5194
|
def create: (body: allocation_rule_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> allocation_rule
|
|
@@ -4432,6 +5207,50 @@ module Infrawrench
|
|
|
4432
5207
|
def update: (id: String, body: cost_centre_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_centre
|
|
4433
5208
|
end
|
|
4434
5209
|
|
|
5210
|
+
class CostExportsNamespace
|
|
5211
|
+
def initialize: (Transport) -> void
|
|
5212
|
+
def create: (body: cost_export_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_export
|
|
5213
|
+
def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
5214
|
+
def get: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_export
|
|
5215
|
+
def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[cost_export]
|
|
5216
|
+
def run: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_export_run_result
|
|
5217
|
+
def update: (id: String, body: cost_export_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_export
|
|
5218
|
+
end
|
|
5219
|
+
|
|
5220
|
+
class CostReportFoldersNamespace
|
|
5221
|
+
def initialize: (Transport) -> void
|
|
5222
|
+
def create: (body: cost_report_folder_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_report_folder
|
|
5223
|
+
def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
5224
|
+
def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[cost_report_folder]
|
|
5225
|
+
def update: (id: String, body: cost_report_folder_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_report_folder
|
|
5226
|
+
end
|
|
5227
|
+
|
|
5228
|
+
class CostReportNotificationsNamespace
|
|
5229
|
+
def initialize: (Transport) -> void
|
|
5230
|
+
def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[report_notification]
|
|
5231
|
+
end
|
|
5232
|
+
|
|
5233
|
+
class CostReportsNotificationsNamespace
|
|
5234
|
+
def initialize: (Transport) -> void
|
|
5235
|
+
def create: (id: String, body: report_notification_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> report_notification
|
|
5236
|
+
def delete: (id: String, notification_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
5237
|
+
def list: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[report_notification]
|
|
5238
|
+
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
|
|
5239
|
+
def targets: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> report_delivery_targets
|
|
5240
|
+
def update: (id: String, notification_id: String, body: report_notification_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> report_notification
|
|
5241
|
+
end
|
|
5242
|
+
|
|
5243
|
+
class CostReportsNamespace
|
|
5244
|
+
attr_reader notifications: CostReportsNotificationsNamespace
|
|
5245
|
+
def initialize: (Transport) -> void
|
|
5246
|
+
def create: (body: cost_report_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_report
|
|
5247
|
+
def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
5248
|
+
def get: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_report
|
|
5249
|
+
def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[cost_report]
|
|
5250
|
+
def run: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_report_run_result
|
|
5251
|
+
def update: (id: String, body: cost_report_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_report
|
|
5252
|
+
end
|
|
5253
|
+
|
|
4435
5254
|
class CostsAnomalySettingsNamespace
|
|
4436
5255
|
def initialize: (Transport) -> void
|
|
4437
5256
|
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_anomaly_settings_view
|
|
@@ -4442,12 +5261,12 @@ module Infrawrench
|
|
|
4442
5261
|
attr_reader anomaly_settings: CostsAnomalySettingsNamespace
|
|
4443
5262
|
def initialize: (Transport) -> void
|
|
4444
5263
|
def anomalies: (?org_id: String?, ?days: String?, ?request_options: Hash[Symbol, untyped]?) -> { "anomalies" => Array[cost_anomaly] }
|
|
4445
|
-
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
|
|
5264
|
+
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
|
|
4446
5265
|
def query: (body: cost_query_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_query_response
|
|
4447
5266
|
def rows: (body: cost_push_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> cost_push_response
|
|
4448
|
-
def showback: (?org_id: String?, ?from: String?, ?to: String?, ?request_options: Hash[Symbol, untyped]?) -> showback_report
|
|
5267
|
+
def showback: (?org_id: String?, ?from: String?, ?to: String?, ?basis: "cash" | "amortized"?, ?request_options: Hash[Symbol, untyped]?) -> showback_report
|
|
4449
5268
|
def status: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "accounts" => Array[cost_account_status] }
|
|
4450
|
-
def untagged: (?org_id: String?, ?from: String?, ?to: String?, ?request_options: Hash[Symbol, untyped]?) -> untagged_spend_report
|
|
5269
|
+
def untagged: (?org_id: String?, ?from: String?, ?to: String?, ?basis: "cash" | "amortized"?, ?request_options: Hash[Symbol, untyped]?) -> untagged_spend_report
|
|
4451
5270
|
end
|
|
4452
5271
|
|
|
4453
5272
|
class CredentialHygieneNamespace
|
|
@@ -4460,6 +5279,19 @@ module Infrawrench
|
|
|
4460
5279
|
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> credit_burndown
|
|
4461
5280
|
end
|
|
4462
5281
|
|
|
5282
|
+
class CurrencyRatesNamespace
|
|
5283
|
+
def initialize: (Transport) -> void
|
|
5284
|
+
def delete: (rate_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "ok" => bool }
|
|
5285
|
+
def update: (body: exchange_rate_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> exchange_rate
|
|
5286
|
+
end
|
|
5287
|
+
|
|
5288
|
+
class CurrencyNamespace
|
|
5289
|
+
attr_reader rates: CurrencyRatesNamespace
|
|
5290
|
+
def initialize: (Transport) -> void
|
|
5291
|
+
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> currency_config
|
|
5292
|
+
def update: (body: currency_settings, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> currency_settings
|
|
5293
|
+
end
|
|
5294
|
+
|
|
4463
5295
|
class CustomGraphsNamespace
|
|
4464
5296
|
def initialize: (Transport) -> void
|
|
4465
5297
|
def check: (body: custom_graph_check_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> custom_graph_check_result
|
|
@@ -4592,6 +5424,23 @@ module Infrawrench
|
|
|
4592
5424
|
def accept: (body: accept_invitation_request, ?request_options: Hash[Symbol, untyped]?) -> accept_invitation_response
|
|
4593
5425
|
end
|
|
4594
5426
|
|
|
5427
|
+
class JiraProjectsNamespace
|
|
5428
|
+
def initialize: (Transport) -> void
|
|
5429
|
+
def issue_types: (key: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[jira_issue_type]
|
|
5430
|
+
def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[jira_project]
|
|
5431
|
+
end
|
|
5432
|
+
|
|
5433
|
+
class JiraNamespace
|
|
5434
|
+
attr_reader projects: JiraProjectsNamespace
|
|
5435
|
+
def initialize: (Transport) -> void
|
|
5436
|
+
def delete: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
5437
|
+
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "integration" => jira_integration }
|
|
5438
|
+
def issues: (body: create_jira_issue_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> create_jira_issue_result
|
|
5439
|
+
def links: (?org_id: String?, ?source_kind: jira_source_kind?, ?source_id: Array[String]?, ?request_options: Hash[Symbol, untyped]?) -> Array[jira_issue_link]
|
|
5440
|
+
def update: (body: jira_integration_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> (jira_integration & Hash[String, untyped])
|
|
5441
|
+
def verify: (?org_id: String?, ?body: jira_verify_input?, ?request_options: Hash[Symbol, untyped]?) -> jira_verify_result
|
|
5442
|
+
end
|
|
5443
|
+
|
|
4595
5444
|
class KvNamespace
|
|
4596
5445
|
def initialize: (Transport) -> void
|
|
4597
5446
|
def command: (body: kv_command_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> kv_command_response
|
|
@@ -4607,6 +5456,17 @@ module Infrawrench
|
|
|
4607
5456
|
def update: (lease_id: String, ?org_id: String?, ?body: resource_lease_update?, ?request_options: Hash[Symbol, untyped]?) -> resource_lease
|
|
4608
5457
|
end
|
|
4609
5458
|
|
|
5459
|
+
class LinearNamespace
|
|
5460
|
+
def initialize: (Transport) -> void
|
|
5461
|
+
def delete: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
5462
|
+
def get: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "integration" => linear_integration }
|
|
5463
|
+
def issues: (body: create_linear_issue_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> create_linear_issue_result
|
|
5464
|
+
def links: (?org_id: String?, ?source_kind: linear_source_kind?, ?source_id: Array[String]?, ?request_options: Hash[Symbol, untyped]?) -> Array[linear_issue_link]
|
|
5465
|
+
def teams: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[linear_team]
|
|
5466
|
+
def update: (body: linear_integration_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> (linear_integration & Hash[String, untyped])
|
|
5467
|
+
def verify: (?org_id: String?, ?body: linear_verify_input?, ?request_options: Hash[Symbol, untyped]?) -> linear_verify_result
|
|
5468
|
+
end
|
|
5469
|
+
|
|
4610
5470
|
class LogWorkspacesNamespace
|
|
4611
5471
|
def initialize: (Transport) -> void
|
|
4612
5472
|
def create: (body: log_workspace_query_create, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> log_workspace_query
|
|
@@ -4781,6 +5641,16 @@ module Infrawrench
|
|
|
4781
5641
|
def get: (?org_id: String?, ?refresh: "true" | "false"?, ?request_options: Hash[Symbol, untyped]?) -> rightsizing_list_response
|
|
4782
5642
|
end
|
|
4783
5643
|
|
|
5644
|
+
class SavedCostFiltersNamespace
|
|
5645
|
+
def initialize: (Transport) -> void
|
|
5646
|
+
def create: (body: saved_cost_filter_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> saved_cost_filter
|
|
5647
|
+
def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
5648
|
+
def get: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> saved_cost_filter
|
|
5649
|
+
def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[saved_cost_filter]
|
|
5650
|
+
def referents: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "referents" => Array[saved_cost_filter_referent] }
|
|
5651
|
+
def update: (id: String, body: saved_cost_filter_input, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> saved_cost_filter
|
|
5652
|
+
end
|
|
5653
|
+
|
|
4784
5654
|
class SchedulesNamespace
|
|
4785
5655
|
def initialize: (Transport) -> void
|
|
4786
5656
|
def create: (?org_id: String?, ?body: sleep_schedule_create?, ?request_options: Hash[Symbol, untyped]?) -> sleep_schedule
|
|
@@ -4981,12 +5851,19 @@ module Infrawrench
|
|
|
4981
5851
|
attr_reader budgets: BudgetsNamespace
|
|
4982
5852
|
attr_reader change_freezes: ChangeFreezesNamespace
|
|
4983
5853
|
attr_reader changes: ChangesNamespace
|
|
5854
|
+
attr_reader commitments: CommitmentsNamespace
|
|
4984
5855
|
attr_reader config: ConfigNamespace
|
|
4985
5856
|
attr_reader connect: ConnectNamespace
|
|
5857
|
+
attr_reader cost_alerts: CostAlertsNamespace
|
|
4986
5858
|
attr_reader cost_centres: CostCentresNamespace
|
|
5859
|
+
attr_reader cost_exports: CostExportsNamespace
|
|
5860
|
+
attr_reader cost_report_folders: CostReportFoldersNamespace
|
|
5861
|
+
attr_reader cost_report_notifications: CostReportNotificationsNamespace
|
|
5862
|
+
attr_reader cost_reports: CostReportsNamespace
|
|
4987
5863
|
attr_reader costs: CostsNamespace
|
|
4988
5864
|
attr_reader credential_hygiene: CredentialHygieneNamespace
|
|
4989
5865
|
attr_reader credits: CreditsNamespace
|
|
5866
|
+
attr_reader currency: CurrencyNamespace
|
|
4990
5867
|
attr_reader custom_graphs: CustomGraphsNamespace
|
|
4991
5868
|
attr_reader dashboards: DashboardsNamespace
|
|
4992
5869
|
attr_reader dependency_graph: DependencyGraphNamespace
|
|
@@ -4997,8 +5874,10 @@ module Infrawrench
|
|
|
4997
5874
|
attr_reader environment_diff: EnvironmentDiffNamespace
|
|
4998
5875
|
attr_reader expiring: ExpiringNamespace
|
|
4999
5876
|
attr_reader invitations: InvitationsNamespace
|
|
5877
|
+
attr_reader jira: JiraNamespace
|
|
5000
5878
|
attr_reader kv: KvNamespace
|
|
5001
5879
|
attr_reader leases: LeasesNamespace
|
|
5880
|
+
attr_reader linear: LinearNamespace
|
|
5002
5881
|
attr_reader log_workspaces: LogWorkspacesNamespace
|
|
5003
5882
|
attr_reader metric_alerts: MetricAlertsNamespace
|
|
5004
5883
|
attr_reader moment: MomentNamespace
|
|
@@ -5012,6 +5891,7 @@ module Infrawrench
|
|
|
5012
5891
|
attr_reader profile: ProfileNamespace
|
|
5013
5892
|
attr_reader resources: ResourcesNamespace
|
|
5014
5893
|
attr_reader rightsizing: RightsizingNamespace
|
|
5894
|
+
attr_reader saved_cost_filters: SavedCostFiltersNamespace
|
|
5015
5895
|
attr_reader schedules: SchedulesNamespace
|
|
5016
5896
|
attr_reader search: SearchNamespace
|
|
5017
5897
|
attr_reader session_recordings: SessionRecordingsNamespace
|