@spottoai/types-package 1.0.2-beta.18 → 1.0.2-beta.180
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.
- package/LICENSE +18 -40
- package/README.md +4 -11
- package/dist/accounts/accounts.d.ts +37 -3
- package/dist/accounts/accounts.d.ts.map +1 -1
- package/dist/accounts/index.d.ts +2 -0
- package/dist/accounts/index.d.ts.map +1 -1
- package/dist/accounts/index.js +2 -0
- package/dist/accounts/index.js.map +1 -1
- package/dist/accounts/readPermissions.d.ts +45 -0
- package/dist/accounts/readPermissions.d.ts.map +1 -0
- package/dist/accounts/readPermissions.js +70 -0
- package/dist/accounts/readPermissions.js.map +1 -0
- package/dist/accounts/writePermissions.d.ts +34 -0
- package/dist/accounts/writePermissions.d.ts.map +1 -0
- package/dist/accounts/writePermissions.js +37 -0
- package/dist/accounts/writePermissions.js.map +1 -0
- package/dist/ai/index.d.ts +944 -9
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +1 -1
- package/dist/ai/index.js.map +1 -1
- package/dist/azure/benefits.d.ts +137 -0
- package/dist/azure/benefits.d.ts.map +1 -0
- package/dist/azure/benefits.js +3 -0
- package/dist/azure/benefits.js.map +1 -0
- package/dist/azure/billingPlots.d.ts +108 -0
- package/dist/azure/billingPlots.d.ts.map +1 -0
- package/dist/azure/billingPlots.js +6 -0
- package/dist/azure/billingPlots.js.map +1 -0
- package/dist/azure/budgets.d.ts +4 -0
- package/dist/azure/budgets.d.ts.map +1 -1
- package/dist/azure/commitmentsPlanning.d.ts +159 -0
- package/dist/azure/commitmentsPlanning.d.ts.map +1 -0
- package/dist/azure/commitmentsPlanning.js +3 -0
- package/dist/azure/commitmentsPlanning.js.map +1 -0
- package/dist/azure/common.d.ts +34 -0
- package/dist/azure/common.d.ts.map +1 -1
- package/dist/azure/configs.d.ts +12 -0
- package/dist/azure/configs.d.ts.map +1 -1
- package/dist/azure/costEstimation.d.ts +78 -0
- package/dist/azure/costEstimation.d.ts.map +1 -0
- package/dist/azure/costEstimation.js +3 -0
- package/dist/azure/costEstimation.js.map +1 -0
- package/dist/azure/metrics.d.ts +40 -0
- package/dist/azure/metrics.d.ts.map +1 -1
- package/dist/azure/payloads.d.ts +10 -1
- package/dist/azure/payloads.d.ts.map +1 -1
- package/dist/azure/prices.d.ts +179 -0
- package/dist/azure/prices.d.ts.map +1 -1
- package/dist/azure/recommendationAudit.d.ts +113 -0
- package/dist/azure/recommendationAudit.d.ts.map +1 -0
- package/dist/azure/recommendationAudit.js +10 -0
- package/dist/azure/recommendationAudit.js.map +1 -0
- package/dist/azure/recommendationState.d.ts +91 -2
- package/dist/azure/recommendationState.d.ts.map +1 -1
- package/dist/azure/recommendations.d.ts +289 -5
- package/dist/azure/recommendations.d.ts.map +1 -1
- package/dist/azure/recommendations.js.map +1 -1
- package/dist/azure/relationships.d.ts +77 -0
- package/dist/azure/relationships.d.ts.map +1 -0
- package/dist/azure/relationships.js +3 -0
- package/dist/azure/relationships.js.map +1 -0
- package/dist/azure/reports.d.ts +248 -0
- package/dist/azure/reports.d.ts.map +1 -1
- package/dist/azure/reports.js +13 -0
- package/dist/azure/reports.js.map +1 -1
- package/dist/azure/resources.d.ts +39 -0
- package/dist/azure/resources.d.ts.map +1 -1
- package/dist/azure/reviewChecklist.d.ts +139 -0
- package/dist/azure/reviewChecklist.d.ts.map +1 -0
- package/dist/azure/reviewChecklist.js +3 -0
- package/dist/azure/reviewChecklist.js.map +1 -0
- package/dist/azure/security.d.ts +15 -1
- package/dist/azure/security.d.ts.map +1 -1
- package/dist/azure/serviceRetirement.d.ts +28 -0
- package/dist/azure/serviceRetirement.d.ts.map +1 -0
- package/dist/azure/serviceRetirement.js +3 -0
- package/dist/azure/serviceRetirement.js.map +1 -0
- package/dist/azure/serviceRetirementState.d.ts +22 -0
- package/dist/azure/serviceRetirementState.d.ts.map +1 -0
- package/dist/azure/serviceRetirementState.js +3 -0
- package/dist/azure/serviceRetirementState.js.map +1 -0
- package/dist/azure/storage-inventory.d.ts +241 -0
- package/dist/azure/storage-inventory.d.ts.map +1 -0
- package/dist/azure/storage-inventory.js +3 -0
- package/dist/azure/storage-inventory.js.map +1 -0
- package/dist/azure/subscriptions.d.ts +34 -13
- package/dist/azure/subscriptions.d.ts.map +1 -1
- package/dist/azure/views.d.ts +147 -2
- package/dist/azure/views.d.ts.map +1 -1
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +1 -0
- package/dist/common/index.js.map +1 -1
- package/dist/common/pagination.d.ts +3 -0
- package/dist/common/pagination.d.ts.map +1 -1
- package/dist/common/provider.d.ts +9 -0
- package/dist/common/provider.d.ts.map +1 -0
- package/dist/common/provider.js +9 -0
- package/dist/common/provider.js.map +1 -0
- package/dist/company/billingAccount.d.ts +30 -0
- package/dist/company/billingAccount.d.ts.map +1 -0
- package/dist/company/billingAccount.js +3 -0
- package/dist/company/billingAccount.js.map +1 -0
- package/dist/company/company.d.ts +26 -1
- package/dist/company/company.d.ts.map +1 -1
- package/dist/company/index.d.ts +1 -0
- package/dist/company/index.d.ts.map +1 -1
- package/dist/company/index.js +1 -0
- package/dist/company/index.js.map +1 -1
- package/dist/company/notification.d.ts +31 -1
- package/dist/company/notification.d.ts.map +1 -1
- package/dist/company/notification.js +24 -12
- package/dist/company/notification.js.map +1 -1
- package/dist/company/survey.d.ts +3 -0
- package/dist/company/survey.d.ts.map +1 -1
- package/dist/events/alertDefinitionRun.d.ts +23 -0
- package/dist/events/alertDefinitionRun.d.ts.map +1 -0
- package/dist/events/alertDefinitionRun.js +3 -0
- package/dist/events/alertDefinitionRun.js.map +1 -0
- package/dist/events/baseAlert.d.ts +130 -0
- package/dist/events/baseAlert.d.ts.map +1 -0
- package/dist/events/baseAlert.js +3 -0
- package/dist/events/baseAlert.js.map +1 -0
- package/dist/events/cost.d.ts +361 -0
- package/dist/events/cost.d.ts.map +1 -0
- package/dist/events/cost.js +3 -0
- package/dist/events/cost.js.map +1 -0
- package/dist/events/costAnomalies.d.ts +47 -0
- package/dist/events/costAnomalies.d.ts.map +1 -0
- package/dist/events/costAnomalies.js +3 -0
- package/dist/events/costAnomalies.js.map +1 -0
- package/dist/events/costViews.d.ts +23 -0
- package/dist/events/costViews.d.ts.map +1 -0
- package/dist/events/costViews.js +3 -0
- package/dist/events/costViews.js.map +1 -0
- package/dist/events/eventStatus.d.ts +67 -0
- package/dist/events/eventStatus.d.ts.map +1 -0
- package/dist/events/eventStatus.js +3 -0
- package/dist/events/eventStatus.js.map +1 -0
- package/dist/events/index.d.ts +7 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +23 -0
- package/dist/events/index.js.map +1 -0
- package/dist/feedbacks/feedback.d.ts +9 -0
- package/dist/feedbacks/feedback.d.ts.map +1 -1
- package/dist/identity/apikey.d.ts +67 -0
- package/dist/identity/apikey.d.ts.map +1 -0
- package/dist/identity/apikey.js +3 -0
- package/dist/identity/apikey.js.map +1 -0
- package/dist/identity/index.d.ts +2 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +18 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/halo.d.ts +76 -0
- package/dist/integrations/halo.d.ts.map +1 -0
- package/dist/integrations/halo.js +3 -0
- package/dist/integrations/halo.js.map +1 -0
- package/dist/integrations/index.d.ts +3 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +19 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/integrationTickets.d.ts +67 -0
- package/dist/integrations/integrationTickets.d.ts.map +1 -0
- package/dist/integrations/integrationTickets.js +3 -0
- package/dist/integrations/integrationTickets.js.map +1 -0
- package/dist/tags/index.d.ts +2 -0
- package/dist/tags/index.d.ts.map +1 -0
- package/dist/tags/index.js +18 -0
- package/dist/tags/index.js.map +1 -0
- package/dist/tags/tags.d.ts +26 -0
- package/dist/tags/tags.d.ts.map +1 -0
- package/dist/tags/tags.js +10 -0
- package/dist/tags/tags.js.map +1 -0
- package/dist/unknown/services.d.ts +12 -0
- package/dist/unknown/services.d.ts.map +1 -0
- package/dist/unknown/services.js +3 -0
- package/dist/unknown/services.js.map +1 -0
- package/package.json +2 -2
package/dist/azure/configs.d.ts
CHANGED
|
@@ -14,26 +14,38 @@ export interface ResourceConfigItem {
|
|
|
14
14
|
overrideSourceProperty?: string;
|
|
15
15
|
isArray?: boolean;
|
|
16
16
|
mandatory?: boolean;
|
|
17
|
+
/** if true, then the resource is supported by the platform (e.g. activity logs, scaling plans, billing) */
|
|
17
18
|
supporting?: boolean;
|
|
18
19
|
displayServiceName?: string;
|
|
20
|
+
/** an expression to determine the display service name */
|
|
19
21
|
displayServiceNameExpression?: string;
|
|
20
22
|
icon?: string;
|
|
23
|
+
/** an expression to determine the icon */
|
|
21
24
|
iconExpression?: string;
|
|
25
|
+
/** a description of the service */
|
|
22
26
|
description?: string;
|
|
27
|
+
/** an expression to determine the description */
|
|
23
28
|
descriptionExpression?: string;
|
|
29
|
+
/** a link to the product page */
|
|
24
30
|
product?: string;
|
|
31
|
+
/** an expression to determine the product */
|
|
25
32
|
productExpression?: string;
|
|
33
|
+
/** jsonata expression evaluated against parent resource to decide if a child should run */
|
|
34
|
+
when?: string;
|
|
35
|
+
ttlHours?: number;
|
|
26
36
|
references: {
|
|
27
37
|
[key: string]: ResourceTypeReference;
|
|
28
38
|
};
|
|
29
39
|
metrics?: AzureResourceMetric[];
|
|
30
40
|
metricsDescription?: MetricDescription[];
|
|
31
41
|
metricsDisplay?: MetricsDisplay[];
|
|
42
|
+
/** Loaded during processing */
|
|
32
43
|
name: string;
|
|
33
44
|
type: string;
|
|
34
45
|
parameters: object;
|
|
35
46
|
alias: AliasConfig;
|
|
36
47
|
resources: ResourceConfigItem[];
|
|
48
|
+
/** e.g. "Virtual Network" used for bill / price matching */
|
|
37
49
|
serviceName?: string;
|
|
38
50
|
label1?: string;
|
|
39
51
|
label2?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../src/azure/configs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,kBAAkB,CAAC;IACnC,YAAY,EAAE,kBAAkB,CAAC;IACjC,SAAS,EAAE,kBAAkB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAE,CAAC;IACrD,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAChC,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../src/azure/configs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,kBAAkB,CAAC;IACnC,YAAY,EAAE,kBAAkB,CAAC;IACjC,SAAS,EAAE,kBAAkB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2GAA2G;IAC3G,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,2FAA2F;IAC3F,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAE,CAAC;IACrD,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAChC,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;IAElC,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
export interface ResourceCostEstimationSegmentMeter {
|
|
2
|
+
meterName: string;
|
|
3
|
+
productName: string;
|
|
4
|
+
skuName: string;
|
|
5
|
+
meterId?: string | null;
|
|
6
|
+
quantity: number;
|
|
7
|
+
unitListPrice: number | null;
|
|
8
|
+
discount: number | null;
|
|
9
|
+
unitEffectivePrice: number | null;
|
|
10
|
+
cost: number | null;
|
|
11
|
+
unitOfMeasure?: string;
|
|
12
|
+
notes?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ResourceCostEstimationSegment {
|
|
15
|
+
name: string;
|
|
16
|
+
description: string | null;
|
|
17
|
+
usage: Record<string, number>;
|
|
18
|
+
usageMetadata?: Record<string, {
|
|
19
|
+
label: string;
|
|
20
|
+
unit?: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
}>;
|
|
23
|
+
meters: Record<string, ResourceCostEstimationSegmentMeter>;
|
|
24
|
+
subtotal: number;
|
|
25
|
+
}
|
|
26
|
+
export interface ResourceCostEstimationPlan {
|
|
27
|
+
tierKey: string;
|
|
28
|
+
label: string;
|
|
29
|
+
recommendationIds: string[];
|
|
30
|
+
parameters: Record<string, number>;
|
|
31
|
+
segments: ResourceCostEstimationSegment[];
|
|
32
|
+
summaryTotals: Record<string, number>;
|
|
33
|
+
projectedMonthlyCost: number;
|
|
34
|
+
savingsAmount: number;
|
|
35
|
+
savingsPercent: number;
|
|
36
|
+
}
|
|
37
|
+
export interface ResourceCostEstimationSummary {
|
|
38
|
+
sourceProfile?: string;
|
|
39
|
+
currency: string;
|
|
40
|
+
currentMonthlyCost: number;
|
|
41
|
+
currentObservedDiscounts?: Record<string, DiscountObservation>;
|
|
42
|
+
plans: ResourceCostEstimationPlan[];
|
|
43
|
+
currentCost?: number;
|
|
44
|
+
sourceMeta?: CostEstimationSourceMeta;
|
|
45
|
+
}
|
|
46
|
+
export type CostEstimationSourceType = 'rolling-30-days' | 'calendar-month';
|
|
47
|
+
export interface CostEstimationSourceMeta {
|
|
48
|
+
type: CostEstimationSourceType;
|
|
49
|
+
startDate: string;
|
|
50
|
+
endDate: string;
|
|
51
|
+
excludedRecentDays?: number;
|
|
52
|
+
sourcePath?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface ResourceSimpleCostEstimationPlan {
|
|
55
|
+
label: string;
|
|
56
|
+
recommendationIds: string[];
|
|
57
|
+
projectedMonthlyCost: number;
|
|
58
|
+
savingsAmount: number;
|
|
59
|
+
}
|
|
60
|
+
export interface ResourceSimpleCostEstimationSummary {
|
|
61
|
+
currency: string;
|
|
62
|
+
currentMonthlyCost: number;
|
|
63
|
+
currentObservedDiscounts?: Record<string, DiscountObservation>;
|
|
64
|
+
plans: ResourceSimpleCostEstimationPlan[];
|
|
65
|
+
savingsRange?: {
|
|
66
|
+
min: number;
|
|
67
|
+
max: number;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export interface DiscountObservation {
|
|
71
|
+
meter: string;
|
|
72
|
+
retailPrice: number;
|
|
73
|
+
unitActual: number;
|
|
74
|
+
discount: number;
|
|
75
|
+
quantity: number;
|
|
76
|
+
cost: number;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=costEstimation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"costEstimation.d.ts","sourceRoot":"","sources":["../../src/azure/costEstimation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"costEstimation.js","sourceRoot":"","sources":["../../src/azure/costEstimation.ts"],"names":[],"mappings":""}
|
package/dist/azure/metrics.d.ts
CHANGED
|
@@ -5,10 +5,14 @@ export interface DisplayMetric {
|
|
|
5
5
|
children?: DisplayMetric[];
|
|
6
6
|
}
|
|
7
7
|
export interface DailyMetrics {
|
|
8
|
+
/** YYYYMMDD */
|
|
8
9
|
date: number;
|
|
10
|
+
/** number spend on the resource that day */
|
|
9
11
|
spend: number;
|
|
12
|
+
/** number amortized spend on the resource that day */
|
|
10
13
|
costAmortized: number;
|
|
11
14
|
summary: MetricSummary[];
|
|
15
|
+
/** optional for drill-down scenarios */
|
|
12
16
|
hourlyData?: HourlyMetrics[];
|
|
13
17
|
}
|
|
14
18
|
export interface MetricSummary {
|
|
@@ -16,21 +20,31 @@ export interface MetricSummary {
|
|
|
16
20
|
average: number;
|
|
17
21
|
peak: number;
|
|
18
22
|
percentile95: number;
|
|
23
|
+
percentile99: number;
|
|
24
|
+
/** e.g. percent, GB, request/sec etc */
|
|
19
25
|
unit?: string;
|
|
26
|
+
/** Additional context for the metric */
|
|
20
27
|
context?: MetricContext;
|
|
21
28
|
}
|
|
22
29
|
export interface MetricContext {
|
|
30
|
+
/** e.g., total RAM available for memory metrics */
|
|
23
31
|
capacity?: number;
|
|
32
|
+
/** e.g., "GB" for capacity */
|
|
24
33
|
unit?: string;
|
|
34
|
+
/** e.g., warning threshold */
|
|
25
35
|
threshold?: number;
|
|
26
36
|
}
|
|
27
37
|
export interface HourlyMetrics {
|
|
38
|
+
/** [0, 1, 2, 3, ..., 23] - define once */
|
|
28
39
|
hours: number[];
|
|
29
40
|
metrics: HourlyMetricData[];
|
|
30
41
|
}
|
|
31
42
|
export interface HourlyMetricData {
|
|
43
|
+
/** e.g. "CPU" */
|
|
32
44
|
name: string;
|
|
45
|
+
/** 24 values corresponding to hours array */
|
|
33
46
|
values: number[];
|
|
47
|
+
/** e.g. percent, GB, request/sec etc */
|
|
34
48
|
unit?: string;
|
|
35
49
|
}
|
|
36
50
|
export interface MetricUsageSummary {
|
|
@@ -92,6 +106,7 @@ export interface MetricStats {
|
|
|
92
106
|
trend: number;
|
|
93
107
|
variance: number;
|
|
94
108
|
count: number;
|
|
109
|
+
/** for availability metrics */
|
|
95
110
|
uptime?: number;
|
|
96
111
|
peakHours?: number;
|
|
97
112
|
offPeakHours?: number;
|
|
@@ -106,22 +121,40 @@ export interface MetricStats {
|
|
|
106
121
|
}
|
|
107
122
|
export interface AlertCondition {
|
|
108
123
|
severity: 'info' | 'warning' | 'critical' | 'underutilized';
|
|
124
|
+
/** JSONata expression */
|
|
109
125
|
expression: string;
|
|
110
126
|
description: string;
|
|
111
127
|
}
|
|
128
|
+
export interface MetricThreshold {
|
|
129
|
+
value: number;
|
|
130
|
+
unit?: string;
|
|
131
|
+
reasoning?: string;
|
|
132
|
+
}
|
|
112
133
|
export interface MetricPlot {
|
|
134
|
+
/** e.g. "CPU and Memory Utilization" */
|
|
113
135
|
title: string;
|
|
136
|
+
/** name of the metric plot filename such as cpupercentage_memorypercentage */
|
|
114
137
|
name: string;
|
|
138
|
+
/** order of the metric plot */
|
|
115
139
|
priority: number;
|
|
140
|
+
/** reasoning of the metric plot */
|
|
116
141
|
reasoning: string;
|
|
142
|
+
yAxisTitle?: string;
|
|
143
|
+
yAxisSuffix?: string;
|
|
117
144
|
metrics: MetricPlotMetric[];
|
|
118
145
|
}
|
|
119
146
|
export interface MetricPlotMetric {
|
|
147
|
+
/** e.g. CPU Utilization */
|
|
120
148
|
name: string;
|
|
149
|
+
/** e.g. "CPU Utilization is the percentage of CPU time used by the resource." */
|
|
121
150
|
description: string;
|
|
151
|
+
/** e.g. "CPU Utilization is the percentage of CPU time used by the resource." */
|
|
122
152
|
details: string;
|
|
123
153
|
alerts: MetricAlert[];
|
|
124
154
|
stats: MetricStats;
|
|
155
|
+
unit?: string;
|
|
156
|
+
displayUnit?: string;
|
|
157
|
+
threshold?: MetricThreshold;
|
|
125
158
|
}
|
|
126
159
|
export interface MetricsDefinition {
|
|
127
160
|
name: string;
|
|
@@ -131,6 +164,9 @@ export interface MetricsDefinition {
|
|
|
131
164
|
stats: MetricStats;
|
|
132
165
|
display?: MetricsDisplay;
|
|
133
166
|
alerts?: MetricAlert[];
|
|
167
|
+
unit?: string;
|
|
168
|
+
displayUnit?: string;
|
|
169
|
+
threshold?: MetricThreshold;
|
|
134
170
|
}
|
|
135
171
|
export interface MetricAlert {
|
|
136
172
|
severity: 'info' | 'warning' | 'critical' | 'underutilized';
|
|
@@ -191,11 +227,15 @@ export interface AzureTimeSeries {
|
|
|
191
227
|
data: AzureTimeSeriesData[];
|
|
192
228
|
}
|
|
193
229
|
export interface AzureTimeSeriesMetadata {
|
|
230
|
+
/** name such "Instance" or "Model" or "API Name" or "Tier" */
|
|
194
231
|
name: string;
|
|
232
|
+
/** value such as "WN0SDWK00030D" or "gpt-5" or "GetBlobServiceProperties" or "Hot" */
|
|
195
233
|
value: string;
|
|
196
234
|
}
|
|
197
235
|
export interface AzureTimeSeriesData {
|
|
236
|
+
/** Value */
|
|
198
237
|
v?: number;
|
|
238
|
+
/** Timestamp */
|
|
199
239
|
t: number;
|
|
200
240
|
}
|
|
201
241
|
export interface AzureResourceMetric {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/azure/metrics.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/azure/metrics.ts"],"names":[],"mappings":"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"}
|
package/dist/azure/payloads.d.ts
CHANGED
|
@@ -10,12 +10,14 @@ export interface ProcessPayload {
|
|
|
10
10
|
}
|
|
11
11
|
export interface RequestMessage {
|
|
12
12
|
entity: string;
|
|
13
|
+
/** create, delete */
|
|
13
14
|
action: string;
|
|
14
15
|
companyId: string;
|
|
15
16
|
cloudAccountId: string;
|
|
16
17
|
tenantId: string;
|
|
17
18
|
clientId: string;
|
|
18
19
|
subscriptionId?: string;
|
|
20
|
+
refreshComponents?: string[];
|
|
19
21
|
}
|
|
20
22
|
export interface SubscriptionMessage {
|
|
21
23
|
authToken?: string;
|
|
@@ -23,7 +25,14 @@ export interface SubscriptionMessage {
|
|
|
23
25
|
authClientSecret?: string;
|
|
24
26
|
authTenantId?: string;
|
|
25
27
|
subscription: Subscription;
|
|
26
|
-
companyId
|
|
28
|
+
companyId: string;
|
|
29
|
+
cloudAccountId?: string;
|
|
30
|
+
tenantId?: string;
|
|
31
|
+
clientId?: string;
|
|
32
|
+
/** Provide a list of components to refresh. Leave empty to refresh all components. */
|
|
33
|
+
refreshComponents?: string[];
|
|
34
|
+
sagaRunId?: string;
|
|
35
|
+
eventId?: string;
|
|
27
36
|
}
|
|
28
37
|
export interface SubscriptionResponse {
|
|
29
38
|
displayName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payloads.d.ts","sourceRoot":"","sources":["../../src/azure/payloads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAExE,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"payloads.d.ts","sourceRoot":"","sources":["../../src/azure/payloads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAExE,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB"}
|
package/dist/azure/prices.d.ts
CHANGED
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
import { ActiveDates, SpecItem } from './common.js';
|
|
2
2
|
import { DailyMetrics, DisplayMetric } from './metrics.js';
|
|
3
|
+
import type { SpendDataSource } from './subscriptions.js';
|
|
4
|
+
export type ResourceCostSource = SpendDataSource;
|
|
5
|
+
export type CostSourceConfidence = 'high' | 'unknown';
|
|
6
|
+
export interface CostDateRangeMetadata {
|
|
7
|
+
startDate: number;
|
|
8
|
+
endDate: number;
|
|
9
|
+
}
|
|
3
10
|
export interface CostDetails {
|
|
11
|
+
/** the amount spend on the resource over the last 30 days */
|
|
4
12
|
dailySpend?: ResourceSpend[];
|
|
13
|
+
/** the spend items aggregated for the last 30 days */
|
|
5
14
|
spendSummary?: ResourceSpend[];
|
|
15
|
+
/** the spend items aggregated for the previous 30 days */
|
|
6
16
|
spendSummaryPrevious?: ResourceSpend[];
|
|
17
|
+
/** the total amount spend on the resource over the last 30 days */
|
|
7
18
|
totalSpend30Days?: number;
|
|
19
|
+
/** the total amount spend on the resource over the previous 30 days */
|
|
8
20
|
totalSpend30DaysPrevious?: number;
|
|
21
|
+
/** the total amount spend on the resource over the last 30 days, taking into account reserved instances and savings plans */
|
|
9
22
|
totalSpend30DaysAmortized?: number;
|
|
23
|
+
/** the total amount spend on the resource over the previous 30 days, taking into account reserved instances and savings plans */
|
|
10
24
|
totalSpend30DaysAmortizedPrevious?: number;
|
|
11
25
|
retailPrices?: AzurePrice[];
|
|
12
26
|
}
|
|
@@ -18,6 +32,7 @@ export interface AzurePrice {
|
|
|
18
32
|
unitPrice: number;
|
|
19
33
|
armRegionName: string;
|
|
20
34
|
location: string;
|
|
35
|
+
/** ISO 8601 date string */
|
|
21
36
|
effectiveStartDate: string;
|
|
22
37
|
meterId: string;
|
|
23
38
|
meterName: string;
|
|
@@ -30,15 +45,22 @@ export interface AzurePrice {
|
|
|
30
45
|
serviceId: string;
|
|
31
46
|
serviceFamily: string;
|
|
32
47
|
unitOfMeasure: string;
|
|
48
|
+
/** Consumption, Reservation */
|
|
33
49
|
type: string;
|
|
34
50
|
isPrimaryMeterRegion: boolean;
|
|
35
51
|
armSkuName: string;
|
|
36
52
|
savingsPlan: SavingsPlan[];
|
|
37
53
|
monthlyPrice?: number;
|
|
54
|
+
/** Use this property to set alternative Azure pricing SKU */
|
|
38
55
|
targetAzurePrices?: AzurePrice[];
|
|
56
|
+
/** Reserved instances for this price level */
|
|
39
57
|
reservedInstances?: SavingsCostSummary[];
|
|
58
|
+
savingsPlanSummary?: SavingsCostSummary[];
|
|
59
|
+
/** Amount of money saved compared to the parent */
|
|
40
60
|
targetMonthlySavings?: number;
|
|
61
|
+
/** Percentage of money saved compared to the parent */
|
|
41
62
|
targetSavingsPercent?: number;
|
|
63
|
+
/** Show the display percent such as -10% */
|
|
42
64
|
targetSavingsPercentDisplay?: string;
|
|
43
65
|
targetSavings?: number;
|
|
44
66
|
targetSavingsDisplay?: string;
|
|
@@ -50,86 +72,239 @@ export interface AzurePrice {
|
|
|
50
72
|
displayUnitPrice?: string;
|
|
51
73
|
displayTotalPrice?: number;
|
|
52
74
|
displayQuantity?: number;
|
|
75
|
+
/** Reference to the recommendation that this target cost is associated with */
|
|
53
76
|
recommendationId?: string;
|
|
54
77
|
}
|
|
55
78
|
export interface SavingsPlan {
|
|
56
79
|
unitPrice: number;
|
|
57
80
|
retailPrice: number;
|
|
81
|
+
/** e.g., "1 Year", "3 Years" */
|
|
58
82
|
term: string;
|
|
59
83
|
}
|
|
60
84
|
export interface CostSummaryDetails {
|
|
85
|
+
/** Last 30 days */
|
|
61
86
|
total?: number;
|
|
87
|
+
/** Total cost in the previous 30 days */
|
|
62
88
|
totalPrevious?: number;
|
|
89
|
+
/** Last 30 days, taking into account reserved instances and savings plans */
|
|
63
90
|
amortizedTotal?: number;
|
|
91
|
+
/** Total cost in the previous 30 days, taking into account reserved instances and savings plans */
|
|
64
92
|
amortizedTotalPrevious?: number;
|
|
93
|
+
/** Optional active-day coverage for the 30-day spend window (e.g. 18 means 18/30 active days). */
|
|
94
|
+
coverageDays?: number;
|
|
65
95
|
items?: ResourceCostSummary[];
|
|
96
|
+
savingsRange?: SavingsRange;
|
|
66
97
|
}
|
|
67
98
|
export interface ResourceCostSummary {
|
|
99
|
+
/** e.g. "Basic Plan (B2 App)" */
|
|
68
100
|
label1: string;
|
|
101
|
+
/** e.g. "Azure App Service" */
|
|
69
102
|
label2: string;
|
|
70
103
|
label3?: string;
|
|
71
104
|
label4?: string;
|
|
105
|
+
/** e.g. "Bandwidth", "Defender for Cloud" */
|
|
72
106
|
category?: string;
|
|
107
|
+
/** e.g. Cores: 2 | RAM: 3.5GB | Storage: 10GB */
|
|
73
108
|
specs: SpecItem[];
|
|
109
|
+
/** name of the reservation if it's a reserved instance */
|
|
74
110
|
reservation?: string;
|
|
111
|
+
/** e.g. true means the resource is active, false means the resource was active (old SKU) */
|
|
75
112
|
active: boolean;
|
|
113
|
+
/** e.g. true means the resource is an addon such as Defender for Cloud, Backups, Disks, IP address, ASR */
|
|
76
114
|
addon: boolean;
|
|
115
|
+
/** e.g. 66.09 (rounded to 2 decimal places) - the amount of money spent on the resource based on the date range */
|
|
77
116
|
spend: number;
|
|
117
|
+
/** e.g. 66.09 (rounded to 2 decimal places) - the amount of money spent on the resource based on the date range, taking into account reserved instances and savings plans */
|
|
78
118
|
spendAmortized: number;
|
|
119
|
+
/** e.g. 217.21 (rounded to 2 decimal places) */
|
|
79
120
|
quantity: number;
|
|
121
|
+
/** e.g. [ { startDate: 20250601, endDate: 20250610 } ] */
|
|
80
122
|
dates?: ActiveDates[];
|
|
123
|
+
/** e.g. 0.304140 1/Hour */
|
|
81
124
|
unitPrice: string;
|
|
125
|
+
/** e.g. 0.304140 1/Hour */
|
|
82
126
|
unitPriceAmortized: string;
|
|
127
|
+
/** e.g. 730.00 (rounded to 2 decimal places) */
|
|
83
128
|
monthlyPrice?: number;
|
|
129
|
+
/** e.g. -4% */
|
|
84
130
|
retailDiscount: string;
|
|
85
131
|
retailCost?: RetailCostSummary;
|
|
86
132
|
dailyMetrics?: DailyMetrics[];
|
|
87
133
|
summaryMetrics?: DisplayMetric[];
|
|
134
|
+
/** Reference to the actual Azure resource */
|
|
88
135
|
resourceId?: string;
|
|
136
|
+
/** Human-readable resource name */
|
|
89
137
|
resourceName?: string;
|
|
138
|
+
/** Azure resource type */
|
|
90
139
|
resourceType?: string;
|
|
140
|
+
savingsRange?: SavingsRange;
|
|
141
|
+
/** Reference to the recommendation that this target cost is associated with */
|
|
142
|
+
recommendationId?: string;
|
|
143
|
+
/** Billing and estimated split metadata */
|
|
144
|
+
costSource?: ResourceCostSource;
|
|
145
|
+
costSourceConfidence?: CostSourceConfidence;
|
|
146
|
+
costSourceDetail?: string;
|
|
147
|
+
spendActual?: number;
|
|
148
|
+
spendEstimated?: number;
|
|
149
|
+
spendAmortizedActual?: number;
|
|
150
|
+
spendAmortizedEstimated?: number;
|
|
151
|
+
/** Explainability metadata for estimated/blended rows */
|
|
152
|
+
estimationMethod?: string;
|
|
153
|
+
estimatedDaysSource?: 'metrics' | 'ma7' | 'ma14' | 'ma' | string;
|
|
154
|
+
pricingSource?: 'billing' | 'retail' | 'manual' | string;
|
|
155
|
+
estimationFormula?: string;
|
|
156
|
+
estimationInputs?: Record<string, unknown>;
|
|
157
|
+
estimationRates?: Record<string, number>;
|
|
158
|
+
estimationDetails?: Record<string, unknown>;
|
|
159
|
+
/** Per-source date ranges derived from daily records */
|
|
160
|
+
billingDateRange?: CostDateRangeMetadata;
|
|
161
|
+
estimatedDateRange?: CostDateRangeMetadata;
|
|
162
|
+
/** Optional resource-level cutoff markers (when attached at item level) */
|
|
163
|
+
billingActualThroughDate?: number;
|
|
164
|
+
estimationCutoffStartDate?: number;
|
|
165
|
+
/** Unit normalization/debug metadata */
|
|
166
|
+
quantityRaw?: number;
|
|
167
|
+
unitOfMeasureRaw?: string;
|
|
168
|
+
unitPriceRaw?: string;
|
|
169
|
+
unitPriceAmortizedRaw?: string;
|
|
170
|
+
quantityNormalized?: number;
|
|
171
|
+
unitOfMeasureNormalized?: string;
|
|
172
|
+
unitNormalizationFactor?: number;
|
|
173
|
+
}
|
|
174
|
+
export interface SavingsRange {
|
|
175
|
+
min: SavingsDetail;
|
|
176
|
+
max: SavingsDetail;
|
|
177
|
+
currentMonthly: number;
|
|
178
|
+
lowestPossibleMonthly: number;
|
|
179
|
+
/** Optional breakdown of savings scenarios (e.g. SKU changes, reservations, savings plans). */
|
|
180
|
+
metadata?: SavingsRangeOption[];
|
|
181
|
+
}
|
|
182
|
+
export interface SavingsDetail {
|
|
183
|
+
monthly: number;
|
|
184
|
+
percent: number;
|
|
185
|
+
}
|
|
186
|
+
export interface SavingsRangeOption {
|
|
187
|
+
/** Unique key for the scenario, stable within the savings response. */
|
|
188
|
+
key: string;
|
|
189
|
+
/** Human-readable description of the savings option. */
|
|
190
|
+
label: string;
|
|
191
|
+
/** Category of the savings source (target-cost, reserved-instance, savings-plan). */
|
|
192
|
+
sourceType?: 'target-cost' | 'reserved-instance' | 'savings-plan';
|
|
193
|
+
/** Commitment term if applicable (e.g. "1 Year"). */
|
|
194
|
+
term?: string;
|
|
195
|
+
/** Indicates whether pricing/savings were normalized across recommended commitments. */
|
|
196
|
+
normalized?: boolean;
|
|
197
|
+
/** Total monthly price for this option after normalization. */
|
|
198
|
+
targetMonthlyPrice: number;
|
|
199
|
+
/** Monthly savings relative to the observed spend. */
|
|
200
|
+
monthlySavings: number;
|
|
201
|
+
/** Savings percent relative to the observed spend. */
|
|
202
|
+
savingsPercent: number;
|
|
203
|
+
/** Baseline commitments inferred from current usage (reserved instances or savings plans). */
|
|
204
|
+
baselineCommitmentCount?: number;
|
|
205
|
+
/** Total commitments recommended to cover the workload. */
|
|
206
|
+
recommendedCommitmentCount?: number;
|
|
207
|
+
/** Hours that remain on PAYG after applying commitments. */
|
|
208
|
+
paygRemainderHours?: number;
|
|
91
209
|
}
|
|
92
210
|
export interface RetailCostSummary {
|
|
211
|
+
/** e.g. 0.304140 1/Hour */
|
|
93
212
|
unitPrice: string;
|
|
213
|
+
/** e.g. 730.00 (rounded to 2 decimal places) */
|
|
94
214
|
monthlyPrice: number;
|
|
215
|
+
/** e.g. 66.09 (rounded to 2 decimal places) */
|
|
95
216
|
cost: number;
|
|
96
217
|
savingsPlans?: SavingsCostSummary[];
|
|
97
218
|
reservedInstances?: SavingsCostSummary[];
|
|
219
|
+
/** This is for a multi-level target (e.g. From Windows To Linux from P2 SKU to P1 SKU) */
|
|
98
220
|
targetCost?: TargetCostSummary[];
|
|
99
221
|
}
|
|
100
222
|
export interface SavingsCostSummary {
|
|
223
|
+
/** e.g. 0.304140 1/Hour */
|
|
101
224
|
unitPrice: string;
|
|
225
|
+
/** e.g. "1 Year", "3 Years" */
|
|
102
226
|
term: string;
|
|
227
|
+
/** e.g. 730.00 (rounded to 2 decimal places) */
|
|
103
228
|
monthlyPrice: number;
|
|
229
|
+
/** e.g. 10% */
|
|
104
230
|
savingsPercent: string;
|
|
231
|
+
/** e.g. 100.00 (rounded to 2 decimal places) */
|
|
105
232
|
monthlySavings: number;
|
|
233
|
+
/**
|
|
234
|
+
* Hours covered per commitment (for example 730 hours per month for hourly commitments).
|
|
235
|
+
* Provided so callers can scale savings for multiple concurrently running instances.
|
|
236
|
+
*/
|
|
237
|
+
commitmentHoursPerInstance?: number;
|
|
238
|
+
/**
|
|
239
|
+
* Recommended number of commitments to cover the observed usage (ceil(billedHours / commitmentHoursPerInstance)).
|
|
240
|
+
*/
|
|
241
|
+
recommendedCommitmentCount?: number;
|
|
242
|
+
/** Monthly price normalized for the recommended commitment count. */
|
|
243
|
+
normalizedMonthlyPrice?: number;
|
|
244
|
+
/** Monthly savings normalized for the recommended commitment count. */
|
|
245
|
+
normalizedMonthlySavings?: number;
|
|
246
|
+
/** Savings percent normalized for the recommended commitment count. */
|
|
247
|
+
normalizedSavingsPercent?: number;
|
|
248
|
+
/** Baseline commitments derived from observed usage (before new recommendations). */
|
|
249
|
+
baselineCommitmentCount?: number;
|
|
250
|
+
/** Number of hours left on PAYG after commitments are applied. */
|
|
251
|
+
paygRemainderHours?: number;
|
|
106
252
|
}
|
|
107
253
|
export interface TargetCostSummary {
|
|
254
|
+
/** e.g. Windows to Linux migration */
|
|
108
255
|
targetLabel?: string;
|
|
256
|
+
/** e.g. Windows to Linux migration */
|
|
109
257
|
targetLabel2?: string;
|
|
258
|
+
/** e.g. "Basic Plan (B2 App)" */
|
|
110
259
|
label1: string;
|
|
260
|
+
/** e.g. "Azure App Service" */
|
|
111
261
|
label2: string;
|
|
112
262
|
label3?: string;
|
|
113
263
|
label4?: string;
|
|
264
|
+
/** e.g. Cores: 2 | RAM: 3.5GB | Storage: 10GB */
|
|
114
265
|
specs: SpecItem[];
|
|
266
|
+
/** e.g. 66.09 (rounded to 2 decimal places) */
|
|
115
267
|
cost: number;
|
|
268
|
+
/** e.g. 100.00 (rounded to 2 decimal places) */
|
|
116
269
|
savings: number;
|
|
270
|
+
/** e.g. 0.304140 1/Hour */
|
|
117
271
|
unitPrice: string;
|
|
272
|
+
/** e.g. 730.00 (rounded to 2 decimal places) */
|
|
118
273
|
monthlyPrice: number;
|
|
274
|
+
/** e.g. 100.00 (rounded to 2 decimal places) */
|
|
119
275
|
monthlySavings: number;
|
|
276
|
+
/** e.g. 10% */
|
|
120
277
|
monthlySavingsPercent: string;
|
|
278
|
+
/** Retail unit price before tenant discounts are applied */
|
|
279
|
+
unitPriceRetail?: string;
|
|
280
|
+
/** Retail monthly price before tenant discounts are applied */
|
|
281
|
+
monthlyPriceRetail?: number;
|
|
282
|
+
/** Retail cost before tenant discounts are applied */
|
|
283
|
+
costRetail?: number;
|
|
284
|
+
/** This is for a multi-level target (e.g. From Windows To Linux from P2 SKU to P1 SKU) */
|
|
121
285
|
targetCost?: TargetCostSummary[];
|
|
286
|
+
/** This is for reserved intances if it's available */
|
|
122
287
|
reservedInstances?: SavingsCostSummary[];
|
|
288
|
+
/** This is for savings plans if it's available */
|
|
289
|
+
savingsPlans?: SavingsCostSummary[];
|
|
290
|
+
/** Reference to the recommendation that this target cost is associated with */
|
|
123
291
|
recommendationId?: string;
|
|
292
|
+
/** Resource Type */
|
|
293
|
+
resourceType?: string;
|
|
124
294
|
}
|
|
125
295
|
export interface ResourceSpend {
|
|
296
|
+
/** the actual cost spent on the resource. We can't rename this to spend because it comes from the cost API */
|
|
126
297
|
cost: number;
|
|
298
|
+
/** the amount spent on the resource based on the amortized cost (this takes reserved instances and savings plans into account) */
|
|
127
299
|
costAmortized?: number;
|
|
128
300
|
quantity: number;
|
|
129
301
|
date?: number;
|
|
130
302
|
activeDates?: ActiveDates[];
|
|
303
|
+
/** e.g. true means the resource is active, false means the resource was active (old SKU) */
|
|
131
304
|
active?: boolean;
|
|
305
|
+
/** e.g. true means the resource is an addon such as Defender for Cloud, Backups, Disks, IP address, ASR */
|
|
132
306
|
addon?: boolean;
|
|
307
|
+
/** e.g. Backup, Data Storage, Log Storage, Advanced Threat Protection, Vulnerability Assessment, Long-term Retention Backups */
|
|
133
308
|
referenceName?: string;
|
|
134
309
|
resourceId?: string;
|
|
135
310
|
meterCategory: string;
|
|
@@ -142,6 +317,7 @@ export interface ResourceSpend {
|
|
|
142
317
|
reservationName?: string;
|
|
143
318
|
label?: string;
|
|
144
319
|
label2?: string;
|
|
320
|
+
/** e.g. Cores: 2 | RAM: 3.5GB | Storage: 10GB | IOPS: 1000 | Throughput: 100MB/s */
|
|
145
321
|
specs?: SpecItem[];
|
|
146
322
|
displayCost?: number;
|
|
147
323
|
displayQuantity?: number;
|
|
@@ -151,6 +327,9 @@ export interface ResourceSpend {
|
|
|
151
327
|
retailDiscountPercentDisplay?: string;
|
|
152
328
|
dailyMetrics?: DailyMetrics[];
|
|
153
329
|
summaryMetrics?: DisplayMetric[];
|
|
330
|
+
benefitId?: string;
|
|
331
|
+
benefitName?: string;
|
|
332
|
+
reservationId?: string;
|
|
154
333
|
}
|
|
155
334
|
export interface PricingResponse {
|
|
156
335
|
Items: AzurePrice[];
|