@spottoai/types-package 1.0.2-beta.20 → 1.0.2-beta.201

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.
Files changed (202) hide show
  1. package/LICENSE +18 -40
  2. package/README.md +4 -11
  3. package/dist/accounts/accounts.d.ts +45 -3
  4. package/dist/accounts/accounts.d.ts.map +1 -1
  5. package/dist/accounts/index.d.ts +3 -0
  6. package/dist/accounts/index.d.ts.map +1 -1
  7. package/dist/accounts/index.js +3 -0
  8. package/dist/accounts/index.js.map +1 -1
  9. package/dist/accounts/readPermissions.d.ts +45 -0
  10. package/dist/accounts/readPermissions.d.ts.map +1 -0
  11. package/dist/accounts/readPermissions.js +70 -0
  12. package/dist/accounts/readPermissions.js.map +1 -0
  13. package/dist/accounts/validation.d.ts +24 -0
  14. package/dist/accounts/validation.d.ts.map +1 -0
  15. package/dist/accounts/validation.js +3 -0
  16. package/dist/accounts/validation.js.map +1 -0
  17. package/dist/accounts/writePermissions.d.ts +34 -0
  18. package/dist/accounts/writePermissions.d.ts.map +1 -0
  19. package/dist/accounts/writePermissions.js +37 -0
  20. package/dist/accounts/writePermissions.js.map +1 -0
  21. package/dist/ai/index.d.ts +975 -9
  22. package/dist/ai/index.d.ts.map +1 -1
  23. package/dist/ai/index.js +1 -1
  24. package/dist/ai/index.js.map +1 -1
  25. package/dist/azure/benefits.d.ts +137 -0
  26. package/dist/azure/benefits.d.ts.map +1 -0
  27. package/dist/azure/benefits.js +3 -0
  28. package/dist/azure/benefits.js.map +1 -0
  29. package/dist/azure/billingPlots.d.ts +249 -0
  30. package/dist/azure/billingPlots.d.ts.map +1 -0
  31. package/dist/azure/billingPlots.js +6 -0
  32. package/dist/azure/billingPlots.js.map +1 -0
  33. package/dist/azure/budgets.d.ts +4 -0
  34. package/dist/azure/budgets.d.ts.map +1 -1
  35. package/dist/azure/commitmentsPlanning.d.ts +159 -0
  36. package/dist/azure/commitmentsPlanning.d.ts.map +1 -0
  37. package/dist/azure/commitmentsPlanning.js +3 -0
  38. package/dist/azure/commitmentsPlanning.js.map +1 -0
  39. package/dist/azure/common.d.ts +34 -0
  40. package/dist/azure/common.d.ts.map +1 -1
  41. package/dist/azure/configs.d.ts +75 -2
  42. package/dist/azure/configs.d.ts.map +1 -1
  43. package/dist/azure/costEstimation.d.ts +78 -0
  44. package/dist/azure/costEstimation.d.ts.map +1 -0
  45. package/dist/azure/costEstimation.js +3 -0
  46. package/dist/azure/costEstimation.js.map +1 -0
  47. package/dist/azure/governance.d.ts +370 -0
  48. package/dist/azure/governance.d.ts.map +1 -0
  49. package/dist/azure/governance.js +8 -0
  50. package/dist/azure/governance.js.map +1 -0
  51. package/dist/azure/metrics.d.ts +75 -4
  52. package/dist/azure/metrics.d.ts.map +1 -1
  53. package/dist/azure/payloads.d.ts +20 -1
  54. package/dist/azure/payloads.d.ts.map +1 -1
  55. package/dist/azure/prices.d.ts +179 -1
  56. package/dist/azure/prices.d.ts.map +1 -1
  57. package/dist/azure/publicIpAddresses.d.ts +96 -0
  58. package/dist/azure/publicIpAddresses.d.ts.map +1 -0
  59. package/dist/azure/publicIpAddresses.js +6 -0
  60. package/dist/azure/publicIpAddresses.js.map +1 -0
  61. package/dist/azure/recommendationAudit.d.ts +113 -0
  62. package/dist/azure/recommendationAudit.d.ts.map +1 -0
  63. package/dist/azure/recommendationAudit.js +10 -0
  64. package/dist/azure/recommendationAudit.js.map +1 -0
  65. package/dist/azure/recommendationState.d.ts +91 -2
  66. package/dist/azure/recommendationState.d.ts.map +1 -1
  67. package/dist/azure/recommendations.d.ts +362 -5
  68. package/dist/azure/recommendations.d.ts.map +1 -1
  69. package/dist/azure/recommendations.js.map +1 -1
  70. package/dist/azure/relationships.d.ts +77 -0
  71. package/dist/azure/relationships.d.ts.map +1 -0
  72. package/dist/azure/relationships.js +3 -0
  73. package/dist/azure/relationships.js.map +1 -0
  74. package/dist/azure/reports.d.ts +248 -0
  75. package/dist/azure/reports.d.ts.map +1 -1
  76. package/dist/azure/reports.js +13 -0
  77. package/dist/azure/reports.js.map +1 -1
  78. package/dist/azure/resources.d.ts +39 -0
  79. package/dist/azure/resources.d.ts.map +1 -1
  80. package/dist/azure/reviewChecklist.d.ts +139 -0
  81. package/dist/azure/reviewChecklist.d.ts.map +1 -0
  82. package/dist/azure/reviewChecklist.js +3 -0
  83. package/dist/azure/reviewChecklist.js.map +1 -0
  84. package/dist/azure/security.d.ts +15 -1
  85. package/dist/azure/security.d.ts.map +1 -1
  86. package/dist/azure/serviceRetirement.d.ts +28 -0
  87. package/dist/azure/serviceRetirement.d.ts.map +1 -0
  88. package/dist/azure/serviceRetirement.js +3 -0
  89. package/dist/azure/serviceRetirement.js.map +1 -0
  90. package/dist/azure/serviceRetirementState.d.ts +22 -0
  91. package/dist/azure/serviceRetirementState.d.ts.map +1 -0
  92. package/dist/azure/serviceRetirementState.js +3 -0
  93. package/dist/azure/serviceRetirementState.js.map +1 -0
  94. package/dist/azure/storage-inventory.d.ts +241 -0
  95. package/dist/azure/storage-inventory.d.ts.map +1 -0
  96. package/dist/azure/storage-inventory.js +3 -0
  97. package/dist/azure/storage-inventory.js.map +1 -0
  98. package/dist/azure/subscriptions.d.ts +34 -13
  99. package/dist/azure/subscriptions.d.ts.map +1 -1
  100. package/dist/azure/views.d.ts +149 -3
  101. package/dist/azure/views.d.ts.map +1 -1
  102. package/dist/common/index.d.ts +1 -0
  103. package/dist/common/index.d.ts.map +1 -1
  104. package/dist/common/index.js +1 -0
  105. package/dist/common/index.js.map +1 -1
  106. package/dist/common/pagination.d.ts +3 -0
  107. package/dist/common/pagination.d.ts.map +1 -1
  108. package/dist/common/provider.d.ts +9 -0
  109. package/dist/common/provider.d.ts.map +1 -0
  110. package/dist/common/provider.js +9 -0
  111. package/dist/common/provider.js.map +1 -0
  112. package/dist/company/billingAccount.d.ts +30 -0
  113. package/dist/company/billingAccount.d.ts.map +1 -0
  114. package/dist/company/billingAccount.js +3 -0
  115. package/dist/company/billingAccount.js.map +1 -0
  116. package/dist/company/company.d.ts +28 -1
  117. package/dist/company/company.d.ts.map +1 -1
  118. package/dist/company/index.d.ts +1 -0
  119. package/dist/company/index.d.ts.map +1 -1
  120. package/dist/company/index.js +1 -0
  121. package/dist/company/index.js.map +1 -1
  122. package/dist/company/notification.d.ts +31 -1
  123. package/dist/company/notification.d.ts.map +1 -1
  124. package/dist/company/notification.js +24 -12
  125. package/dist/company/notification.js.map +1 -1
  126. package/dist/company/survey.d.ts +3 -0
  127. package/dist/company/survey.d.ts.map +1 -1
  128. package/dist/events/alertDefinitionRun.d.ts +23 -0
  129. package/dist/events/alertDefinitionRun.d.ts.map +1 -0
  130. package/dist/events/alertDefinitionRun.js +3 -0
  131. package/dist/events/alertDefinitionRun.js.map +1 -0
  132. package/dist/events/baseAlert.d.ts +130 -0
  133. package/dist/events/baseAlert.d.ts.map +1 -0
  134. package/dist/events/baseAlert.js +3 -0
  135. package/dist/events/baseAlert.js.map +1 -0
  136. package/dist/events/cost.d.ts +361 -0
  137. package/dist/events/cost.d.ts.map +1 -0
  138. package/dist/events/cost.js +3 -0
  139. package/dist/events/cost.js.map +1 -0
  140. package/dist/events/costAnomalies.d.ts +47 -0
  141. package/dist/events/costAnomalies.d.ts.map +1 -0
  142. package/dist/events/costAnomalies.js +3 -0
  143. package/dist/events/costAnomalies.js.map +1 -0
  144. package/dist/events/costViews.d.ts +23 -0
  145. package/dist/events/costViews.d.ts.map +1 -0
  146. package/dist/events/costViews.js +3 -0
  147. package/dist/events/costViews.js.map +1 -0
  148. package/dist/events/eventStatus.d.ts +67 -0
  149. package/dist/events/eventStatus.d.ts.map +1 -0
  150. package/dist/events/eventStatus.js +3 -0
  151. package/dist/events/eventStatus.js.map +1 -0
  152. package/dist/events/index.d.ts +7 -0
  153. package/dist/events/index.d.ts.map +1 -0
  154. package/dist/events/index.js +23 -0
  155. package/dist/events/index.js.map +1 -0
  156. package/dist/feedbacks/feedback.d.ts +9 -0
  157. package/dist/feedbacks/feedback.d.ts.map +1 -1
  158. package/dist/identity/apikey.d.ts +67 -0
  159. package/dist/identity/apikey.d.ts.map +1 -0
  160. package/dist/identity/apikey.js +3 -0
  161. package/dist/identity/apikey.js.map +1 -0
  162. package/dist/identity/index.d.ts +2 -0
  163. package/dist/identity/index.d.ts.map +1 -0
  164. package/dist/identity/index.js +18 -0
  165. package/dist/identity/index.js.map +1 -0
  166. package/dist/index.d.ts +18 -0
  167. package/dist/index.d.ts.map +1 -1
  168. package/dist/index.js +18 -1
  169. package/dist/index.js.map +1 -1
  170. package/dist/integrations/halo.d.ts +76 -0
  171. package/dist/integrations/halo.d.ts.map +1 -0
  172. package/dist/integrations/halo.js +3 -0
  173. package/dist/integrations/halo.js.map +1 -0
  174. package/dist/integrations/index.d.ts +3 -0
  175. package/dist/integrations/index.d.ts.map +1 -0
  176. package/dist/integrations/index.js +19 -0
  177. package/dist/integrations/index.js.map +1 -0
  178. package/dist/integrations/integrationTickets.d.ts +67 -0
  179. package/dist/integrations/integrationTickets.d.ts.map +1 -0
  180. package/dist/integrations/integrationTickets.js +3 -0
  181. package/dist/integrations/integrationTickets.js.map +1 -0
  182. package/dist/scheduler/index.d.ts +2 -0
  183. package/dist/scheduler/index.d.ts.map +1 -0
  184. package/dist/scheduler/index.js +18 -0
  185. package/dist/scheduler/index.js.map +1 -0
  186. package/dist/scheduler/scheduler.d.ts +110 -0
  187. package/dist/scheduler/scheduler.d.ts.map +1 -0
  188. package/dist/scheduler/scheduler.js +3 -0
  189. package/dist/scheduler/scheduler.js.map +1 -0
  190. package/dist/tags/index.d.ts +2 -0
  191. package/dist/tags/index.d.ts.map +1 -0
  192. package/dist/tags/index.js +18 -0
  193. package/dist/tags/index.js.map +1 -0
  194. package/dist/tags/tags.d.ts +26 -0
  195. package/dist/tags/tags.d.ts.map +1 -0
  196. package/dist/tags/tags.js +10 -0
  197. package/dist/tags/tags.js.map +1 -0
  198. package/dist/unknown/services.d.ts +12 -0
  199. package/dist/unknown/services.d.ts.map +1 -0
  200. package/dist/unknown/services.js +3 -0
  201. package/dist/unknown/services.js.map +1 -0
  202. package/package.json +2 -2
@@ -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;CACzB;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,CAAC,EAAE,MAAM,CAAC;CACpB;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"}
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;AACxE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAE5E,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;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;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,oCAAqC,SAAQ,cAAc;IAC1E,MAAM,EAAE,cAAc,GAAG,eAAe,CAAC;IACzC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,4BAA4B,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;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"}
@@ -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,87 +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[];
123
- savingsPlan?: 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 */
124
291
  recommendationId?: string;
292
+ /** Resource Type */
293
+ resourceType?: string;
125
294
  }
126
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 */
127
297
  cost: number;
298
+ /** the amount spent on the resource based on the amortized cost (this takes reserved instances and savings plans into account) */
128
299
  costAmortized?: number;
129
300
  quantity: number;
130
301
  date?: number;
131
302
  activeDates?: ActiveDates[];
303
+ /** e.g. true means the resource is active, false means the resource was active (old SKU) */
132
304
  active?: boolean;
305
+ /** e.g. true means the resource is an addon such as Defender for Cloud, Backups, Disks, IP address, ASR */
133
306
  addon?: boolean;
307
+ /** e.g. Backup, Data Storage, Log Storage, Advanced Threat Protection, Vulnerability Assessment, Long-term Retention Backups */
134
308
  referenceName?: string;
135
309
  resourceId?: string;
136
310
  meterCategory: string;
@@ -143,6 +317,7 @@ export interface ResourceSpend {
143
317
  reservationName?: string;
144
318
  label?: string;
145
319
  label2?: string;
320
+ /** e.g. Cores: 2 | RAM: 3.5GB | Storage: 10GB | IOPS: 1000 | Throughput: 100MB/s */
146
321
  specs?: SpecItem[];
147
322
  displayCost?: number;
148
323
  displayQuantity?: number;
@@ -152,6 +327,9 @@ export interface ResourceSpend {
152
327
  retailDiscountPercentDisplay?: string;
153
328
  dailyMetrics?: DailyMetrics[];
154
329
  summaryMetrics?: DisplayMetric[];
330
+ benefitId?: string;
331
+ benefitName?: string;
332
+ reservationId?: string;
155
333
  }
156
334
  export interface PricingResponse {
157
335
  Items: AzurePrice[];
@@ -1 +1 @@
1
- {"version":3,"file":"prices.d.ts","sourceRoot":"","sources":["../../src/azure/prices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prices.d.ts","sourceRoot":"","sources":["../../src/azure/prices.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ export declare const PUBLIC_IP_ADDRESSES_SCHEMA_VERSION: "2026-05-02.public-ip-addresses-v1";
2
+ export declare const PUBLIC_IP_ADDRESSES_PORTAL_FILE: "public-ip-addresses.json";
3
+ export type PublicIpAddressesJsonPrimitive = string | number | boolean | null;
4
+ export type PublicIpAddressesJsonValue = PublicIpAddressesJsonPrimitive | PublicIpAddressesJsonValue[] | {
5
+ [key: string]: PublicIpAddressesJsonValue;
6
+ };
7
+ export type PublicIpAddressesUseClassification = 'assigned' | 'unassigned' | 'unresolved';
8
+ export type PublicIpAddressesExposureKind = 'rdp' | 'ssh' | 'https';
9
+ export type PublicIpAddressesExposureEvidenceSource = 'nsg_rule' | 'lb_rule' | 'appgw_listener' | 'direct_rule' | 'derived';
10
+ export type PublicIpAddressesExposureConfidence = 'high' | 'medium' | 'low';
11
+ export type PublicIpAddressesAssignmentVia = 'relationship_graph' | 'direct_ip_configuration' | 'reverse_consumer_lookup' | 'nat_gateway_reference' | 'prefix_membership' | 'unassigned' | 'unresolved';
12
+ export type PublicIpAddressesAssociatedService = 'bastion' | 'azure_firewall' | 'application_gateway' | 'load_balancer' | 'network_interface' | 'nat_gateway' | 'unknown_network_consumer' | 'unknown' | 'unassigned';
13
+ export type PublicIpAddressesConcern = 'unused_public_ip' | 'dynamic_unassigned' | 'basic_sku_retiring' | 'missing_assignment_resolution' | 'attached_to_direct_nic' | 'attached_to_bastion' | 'attached_to_azure_firewall' | 'attached_to_app_gateway' | 'attached_to_load_balancer' | 'attached_to_nat_gateway' | 'orphaned_graph_reference' | 'rdp_exposed' | 'ssh_exposed' | 'https_exposed';
14
+ export interface PublicIpAddressesSubscriptionProperties {
15
+ secureScore?: number;
16
+ currency?: string;
17
+ currencySymbol?: string;
18
+ foundCurrency?: boolean;
19
+ showAmortizedCosts?: boolean;
20
+ [key: string]: PublicIpAddressesJsonValue | undefined;
21
+ }
22
+ export interface PublicIpAddressesSubscription {
23
+ companyId?: string;
24
+ tenantId?: string;
25
+ subscriptionId: string;
26
+ displayName: string;
27
+ properties?: PublicIpAddressesSubscriptionProperties;
28
+ }
29
+ export interface PublicIpAddressesSummary {
30
+ total: number;
31
+ assigned: number;
32
+ unassigned: number;
33
+ dynamicUnassigned: number;
34
+ basicSku: number;
35
+ exposedRdp: number;
36
+ exposedSsh: number;
37
+ exposedHttps: number;
38
+ byService: Record<string, number>;
39
+ byConcern: Record<string, number>;
40
+ byLocation: Record<string, number>;
41
+ byPrefix: Record<string, number>;
42
+ }
43
+ export interface PublicIpAddressesSku {
44
+ name: string | null;
45
+ tier: string | null;
46
+ }
47
+ export interface PublicIpAddressesAssignment {
48
+ via: PublicIpAddressesAssignmentVia;
49
+ resourceId: string | null;
50
+ resourceName: string | null;
51
+ resourceType: string | null;
52
+ parentResourceId: string | null;
53
+ parentResourceName: string | null;
54
+ parentResourceType: string | null;
55
+ evidence: string[];
56
+ }
57
+ export interface PublicIpAddressesPrefix {
58
+ id: string;
59
+ name: string | null;
60
+ ipPrefix: string | null;
61
+ }
62
+ export interface PublicIpAddressesExposure {
63
+ kind: PublicIpAddressesExposureKind;
64
+ evidenceSource: PublicIpAddressesExposureEvidenceSource;
65
+ evidence: string;
66
+ confidence: PublicIpAddressesExposureConfidence;
67
+ }
68
+ export interface PublicIpAddressesItem {
69
+ id: string;
70
+ name: string;
71
+ resourceGroup: string | null;
72
+ location: string;
73
+ sku: PublicIpAddressesSku;
74
+ zones: string[];
75
+ allocationMethod: string | null;
76
+ ipVersion: string | null;
77
+ ipAddress: string | null;
78
+ fqdn: string | null;
79
+ use: PublicIpAddressesUseClassification;
80
+ assignment: PublicIpAddressesAssignment;
81
+ associatedResource: string | null;
82
+ associatedResourceType: string | null;
83
+ associatedService: PublicIpAddressesAssociatedService;
84
+ prefix: PublicIpAddressesPrefix | null;
85
+ exposures: PublicIpAddressesExposure[];
86
+ concerns: PublicIpAddressesConcern[];
87
+ tags: Record<string, string>;
88
+ }
89
+ export interface PublicIpAddressesReport {
90
+ schemaVersion?: typeof PUBLIC_IP_ADDRESSES_SCHEMA_VERSION;
91
+ subscription: PublicIpAddressesSubscription;
92
+ timestamp: string;
93
+ summary: PublicIpAddressesSummary;
94
+ items: PublicIpAddressesItem[];
95
+ }
96
+ //# sourceMappingURL=publicIpAddresses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publicIpAddresses.d.ts","sourceRoot":"","sources":["../../src/azure/publicIpAddresses.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PUBLIC_IP_ADDRESSES_PORTAL_FILE = exports.PUBLIC_IP_ADDRESSES_SCHEMA_VERSION = void 0;
4
+ exports.PUBLIC_IP_ADDRESSES_SCHEMA_VERSION = '2026-05-02.public-ip-addresses-v1';
5
+ exports.PUBLIC_IP_ADDRESSES_PORTAL_FILE = 'public-ip-addresses.json';
6
+ //# sourceMappingURL=publicIpAddresses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publicIpAddresses.js","sourceRoot":"","sources":["../../src/azure/publicIpAddresses.ts"],"names":[],"mappings":";;;AAAa,QAAA,kCAAkC,GAAG,mCAA4C,CAAC;AAElF,QAAA,+BAA+B,GAAG,0BAAmC,CAAC"}
@@ -0,0 +1,113 @@
1
+ import type { ProviderName, ProviderScope } from '../common/provider';
2
+ export declare const RecommendationAuditRowKinds: {
3
+ readonly resourceTarget: "resource-view:target";
4
+ readonly subscriptionTarget: "scope-view:target";
5
+ readonly resourceProviderScopeFeed: "resource-view:providerScope-feed";
6
+ readonly subscriptionProviderScopeFeed: "scope-view:providerScope-feed";
7
+ };
8
+ export type RecommendationAuditRowKind = (typeof RecommendationAuditRowKinds)[keyof typeof RecommendationAuditRowKinds];
9
+ export type RecommendationAuditScope = 'resource' | 'subscription';
10
+ export type RecommendationAuditView = 'target' | 'providerScope-feed';
11
+ export interface RecommendationAuditQueryBase extends ProviderScope {
12
+ /**
13
+ * ISO timestamp lower bound (inclusive).
14
+ * Omit to let consumers default to the contract-defined lookback window.
15
+ */
16
+ from?: string;
17
+ /**
18
+ * ISO timestamp upper bound (exclusive).
19
+ * Omit to let consumers default to "now".
20
+ */
21
+ to?: string;
22
+ /** Optional max rows to return (service-level cap still applies). */
23
+ limit?: number;
24
+ /**
25
+ * Read-time request hint to append a `Viewed` audit event.
26
+ * Services must suppress `Viewed` persistence for global `reader` and `admin`
27
+ * actors, even when `trackView` is `true`.
28
+ */
29
+ trackView?: boolean;
30
+ }
31
+ export type ResourceTargetRecommendationAuditQuery = RecommendationAuditQueryBase & {
32
+ scope: 'resource';
33
+ view: 'target';
34
+ recommendationId: string;
35
+ resourceId: string;
36
+ };
37
+ export type SubscriptionTargetRecommendationAuditQuery = RecommendationAuditQueryBase & {
38
+ scope: 'subscription';
39
+ view: 'target';
40
+ recommendationId: string;
41
+ resourceId?: never;
42
+ };
43
+ export type ResourceProviderScopeFeedRecommendationAuditQuery = RecommendationAuditQueryBase & {
44
+ scope: 'resource';
45
+ view: 'providerScope-feed';
46
+ recommendationId: string;
47
+ resourceId?: never;
48
+ };
49
+ export type SubscriptionProviderScopeFeedRecommendationAuditQuery = RecommendationAuditQueryBase & {
50
+ scope: 'subscription';
51
+ view: 'providerScope-feed';
52
+ recommendationId: string;
53
+ resourceId?: never;
54
+ };
55
+ export type GetRecommendationAuditQueryCanonical = ResourceTargetRecommendationAuditQuery | SubscriptionTargetRecommendationAuditQuery | ResourceProviderScopeFeedRecommendationAuditQuery | SubscriptionProviderScopeFeedRecommendationAuditQuery;
56
+ export type GetRecommendationAuditQuery = GetRecommendationAuditQueryCanonical;
57
+ export type RecommendationAuditEventType = 'Viewed' | 'Added' | 'Archived' | 'CommentAdded' | 'CommentUpdated' | 'CommentDeleted' | 'CommentPinned' | 'CommentUnpinned' | 'Shared' | 'Dismissed' | 'Restored' | 'Prioritized' | 'Unprioritized' | 'Implemented';
58
+ /** Flat recommendation audit row columns as persisted in `recommendationsevents`. */
59
+ export interface RecommendationAuditEventRowColumns {
60
+ CompanyId: string;
61
+ ProviderName: ProviderName;
62
+ ProviderScopeId: string;
63
+ /** For Azure providers, mirrors `ProviderScopeId` (subscription id). */
64
+ SubscriptionId: string;
65
+ /** Storage row discriminator derived from query scope + view contract. */
66
+ RowKind: RecommendationAuditRowKind;
67
+ ResourceId?: string | null;
68
+ RecommendationId: string;
69
+ EventType: RecommendationAuditEventType;
70
+ /** Stringified compact action metadata payload. */
71
+ EventDetails?: string;
72
+ UserId: string;
73
+ /**
74
+ * Optional actor display name.
75
+ * May be missing/null for legacy rows or when identity enrichment is unavailable.
76
+ */
77
+ UserDisplayName?: string | null;
78
+ Source: string;
79
+ /** ISO timestamp for event creation. */
80
+ Date: string;
81
+ EventId: string;
82
+ }
83
+ export interface RecommendationAuditEventRow extends RecommendationAuditEventRowColumns {
84
+ PartitionKey: string;
85
+ RowKey: string;
86
+ }
87
+ /** Timeline-friendly response event DTO. */
88
+ export interface RecommendationAuditTimelineEvent {
89
+ eventId: string;
90
+ eventType: RecommendationAuditEventType;
91
+ date: string;
92
+ companyId: string;
93
+ providerName: ProviderName;
94
+ providerScopeId: string;
95
+ subscriptionId: string;
96
+ resourceId?: string | null;
97
+ recommendationId: string;
98
+ eventDetails?: string;
99
+ userId: string;
100
+ /**
101
+ * Optional actor display name.
102
+ * API may omit this when upstream rows do not contain `UserDisplayName`.
103
+ */
104
+ userDisplayName?: string | null;
105
+ source: string;
106
+ rowKind: RecommendationAuditRowKind;
107
+ }
108
+ /**
109
+ * Canonical API response contract for recommendation audit reads.
110
+ * The service returns a raw event array.
111
+ */
112
+ export type RecommendationAuditQueryResponse = RecommendationAuditTimelineEvent[];
113
+ //# sourceMappingURL=recommendationAudit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recommendationAudit.d.ts","sourceRoot":"","sources":["../../src/azure/recommendationAudit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RecommendationAuditRowKinds = void 0;
4
+ exports.RecommendationAuditRowKinds = {
5
+ resourceTarget: 'resource-view:target',
6
+ subscriptionTarget: 'scope-view:target',
7
+ resourceProviderScopeFeed: 'resource-view:providerScope-feed',
8
+ subscriptionProviderScopeFeed: 'scope-view:providerScope-feed',
9
+ };
10
+ //# sourceMappingURL=recommendationAudit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recommendationAudit.js","sourceRoot":"","sources":["../../src/azure/recommendationAudit.ts"],"names":[],"mappings":";;;AAEa,QAAA,2BAA2B,GAAG;IACzC,cAAc,EAAE,sBAAsB;IACtC,kBAAkB,EAAE,mBAAmB;IACvC,yBAAyB,EAAE,kCAAkC;IAC7D,6BAA6B,EAAE,+BAA+B;CACtD,CAAC"}