@spottoai/types-package 1.0.2-beta.27 → 1.0.2-beta.271

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 (261) hide show
  1. package/LICENSE +18 -40
  2. package/README.md +4 -13
  3. package/dist/accounts/accounts.d.ts +426 -2
  4. package/dist/accounts/accounts.d.ts.map +1 -1
  5. package/dist/accounts/accounts.js +123 -0
  6. package/dist/accounts/accounts.js.map +1 -1
  7. package/dist/accounts/azureSpSetup.d.ts +297 -0
  8. package/dist/accounts/azureSpSetup.d.ts.map +1 -0
  9. package/dist/accounts/azureSpSetup.js +3 -0
  10. package/dist/accounts/azureSpSetup.js.map +1 -0
  11. package/dist/accounts/index.d.ts +3 -0
  12. package/dist/accounts/index.d.ts.map +1 -1
  13. package/dist/accounts/index.js +3 -0
  14. package/dist/accounts/index.js.map +1 -1
  15. package/dist/accounts/readPermissions.d.ts +64 -0
  16. package/dist/accounts/readPermissions.d.ts.map +1 -0
  17. package/dist/accounts/readPermissions.js +148 -0
  18. package/dist/accounts/readPermissions.js.map +1 -0
  19. package/dist/accounts/validation.d.ts +91 -0
  20. package/dist/accounts/validation.d.ts.map +1 -0
  21. package/dist/accounts/validation.js +3 -0
  22. package/dist/accounts/validation.js.map +1 -0
  23. package/dist/accounts/writePermissions.d.ts +34 -0
  24. package/dist/accounts/writePermissions.d.ts.map +1 -0
  25. package/dist/accounts/writePermissions.js +37 -0
  26. package/dist/accounts/writePermissions.js.map +1 -0
  27. package/dist/ai/index.d.ts +994 -9
  28. package/dist/ai/index.d.ts.map +1 -1
  29. package/dist/ai/index.js +1 -1
  30. package/dist/ai/index.js.map +1 -1
  31. package/dist/azure/activityLogs.d.ts +65 -0
  32. package/dist/azure/activityLogs.d.ts.map +1 -0
  33. package/dist/azure/activityLogs.js +6 -0
  34. package/dist/azure/activityLogs.js.map +1 -0
  35. package/dist/azure/advisorScore.d.ts +39 -0
  36. package/dist/azure/advisorScore.d.ts.map +1 -0
  37. package/dist/azure/advisorScore.js +3 -0
  38. package/dist/azure/advisorScore.js.map +1 -0
  39. package/dist/azure/benefits.d.ts +137 -0
  40. package/dist/azure/benefits.d.ts.map +1 -0
  41. package/dist/azure/benefits.js +3 -0
  42. package/dist/azure/benefits.js.map +1 -0
  43. package/dist/azure/billingPlots.d.ts +249 -0
  44. package/dist/azure/billingPlots.d.ts.map +1 -0
  45. package/dist/azure/billingPlots.js +6 -0
  46. package/dist/azure/billingPlots.js.map +1 -0
  47. package/dist/azure/budgets.d.ts +4 -0
  48. package/dist/azure/budgets.d.ts.map +1 -1
  49. package/dist/azure/commitmentsPlanning.d.ts +586 -0
  50. package/dist/azure/commitmentsPlanning.d.ts.map +1 -0
  51. package/dist/azure/commitmentsPlanning.js +3 -0
  52. package/dist/azure/commitmentsPlanning.js.map +1 -0
  53. package/dist/azure/common.d.ts +44 -0
  54. package/dist/azure/common.d.ts.map +1 -1
  55. package/dist/azure/configs.d.ts +75 -2
  56. package/dist/azure/configs.d.ts.map +1 -1
  57. package/dist/azure/costEstimation.d.ts +78 -0
  58. package/dist/azure/costEstimation.d.ts.map +1 -0
  59. package/dist/azure/costEstimation.js +3 -0
  60. package/dist/azure/costEstimation.js.map +1 -0
  61. package/dist/azure/governance.d.ts +826 -0
  62. package/dist/azure/governance.d.ts.map +1 -0
  63. package/dist/azure/governance.js +14 -0
  64. package/dist/azure/governance.js.map +1 -0
  65. package/dist/azure/metrics.d.ts +81 -4
  66. package/dist/azure/metrics.d.ts.map +1 -1
  67. package/dist/azure/payloads.d.ts +292 -1
  68. package/dist/azure/payloads.d.ts.map +1 -1
  69. package/dist/azure/portalArtifacts.d.ts +6 -0
  70. package/dist/azure/portalArtifacts.d.ts.map +1 -0
  71. package/dist/azure/portalArtifacts.js +5 -0
  72. package/dist/azure/portalArtifacts.js.map +1 -0
  73. package/dist/azure/prices.d.ts +177 -0
  74. package/dist/azure/prices.d.ts.map +1 -1
  75. package/dist/azure/publicIpAddresses.d.ts +171 -0
  76. package/dist/azure/publicIpAddresses.d.ts.map +1 -0
  77. package/dist/azure/publicIpAddresses.js +6 -0
  78. package/dist/azure/publicIpAddresses.js.map +1 -0
  79. package/dist/azure/recommendationAudit.d.ts +113 -0
  80. package/dist/azure/recommendationAudit.d.ts.map +1 -0
  81. package/dist/azure/recommendationAudit.js +10 -0
  82. package/dist/azure/recommendationAudit.js.map +1 -0
  83. package/dist/azure/recommendationState.d.ts +93 -4
  84. package/dist/azure/recommendationState.d.ts.map +1 -1
  85. package/dist/azure/recommendationWorkflow.d.ts +124 -0
  86. package/dist/azure/recommendationWorkflow.d.ts.map +1 -0
  87. package/dist/azure/recommendationWorkflow.js +15 -0
  88. package/dist/azure/recommendationWorkflow.js.map +1 -0
  89. package/dist/azure/recommendations.d.ts +539 -7
  90. package/dist/azure/recommendations.d.ts.map +1 -1
  91. package/dist/azure/recommendations.js.map +1 -1
  92. package/dist/azure/relationships.d.ts +193 -0
  93. package/dist/azure/relationships.d.ts.map +1 -0
  94. package/dist/azure/relationships.js +6 -0
  95. package/dist/azure/relationships.js.map +1 -0
  96. package/dist/azure/reports.d.ts +279 -1
  97. package/dist/azure/reports.d.ts.map +1 -1
  98. package/dist/azure/reports.js +13 -0
  99. package/dist/azure/reports.js.map +1 -1
  100. package/dist/azure/resourceHealth.d.ts +264 -0
  101. package/dist/azure/resourceHealth.d.ts.map +1 -0
  102. package/dist/azure/resourceHealth.js +16 -0
  103. package/dist/azure/resourceHealth.js.map +1 -0
  104. package/dist/azure/resources.d.ts +80 -0
  105. package/dist/azure/resources.d.ts.map +1 -1
  106. package/dist/azure/reviewChecklist.d.ts +139 -0
  107. package/dist/azure/reviewChecklist.d.ts.map +1 -0
  108. package/dist/azure/reviewChecklist.js +3 -0
  109. package/dist/azure/reviewChecklist.js.map +1 -0
  110. package/dist/azure/security.d.ts +15 -1
  111. package/dist/azure/security.d.ts.map +1 -1
  112. package/dist/azure/serviceRetirement.d.ts +28 -0
  113. package/dist/azure/serviceRetirement.d.ts.map +1 -0
  114. package/dist/azure/serviceRetirement.js +3 -0
  115. package/dist/azure/serviceRetirement.js.map +1 -0
  116. package/dist/azure/serviceRetirementState.d.ts +22 -0
  117. package/dist/azure/serviceRetirementState.d.ts.map +1 -0
  118. package/dist/azure/serviceRetirementState.js +3 -0
  119. package/dist/azure/serviceRetirementState.js.map +1 -0
  120. package/dist/azure/storage-inventory.d.ts +241 -0
  121. package/dist/azure/storage-inventory.d.ts.map +1 -0
  122. package/dist/azure/storage-inventory.js +3 -0
  123. package/dist/azure/storage-inventory.js.map +1 -0
  124. package/dist/azure/subscriptions.d.ts +46 -15
  125. package/dist/azure/subscriptions.d.ts.map +1 -1
  126. package/dist/azure/views.d.ts +543 -6
  127. package/dist/azure/views.d.ts.map +1 -1
  128. package/dist/common/index.d.ts +1 -0
  129. package/dist/common/index.d.ts.map +1 -1
  130. package/dist/common/index.js +1 -0
  131. package/dist/common/index.js.map +1 -1
  132. package/dist/common/pagination.d.ts +3 -0
  133. package/dist/common/pagination.d.ts.map +1 -1
  134. package/dist/common/provider.d.ts +9 -0
  135. package/dist/common/provider.d.ts.map +1 -0
  136. package/dist/common/provider.js +9 -0
  137. package/dist/common/provider.js.map +1 -0
  138. package/dist/company/billingAccount.d.ts +30 -0
  139. package/dist/company/billingAccount.d.ts.map +1 -0
  140. package/dist/company/billingAccount.js +3 -0
  141. package/dist/company/billingAccount.js.map +1 -0
  142. package/dist/company/company.d.ts +60 -1
  143. package/dist/company/company.d.ts.map +1 -1
  144. package/dist/company/companyHierarchy.d.ts +53 -0
  145. package/dist/company/companyHierarchy.d.ts.map +1 -0
  146. package/dist/company/companyHierarchy.js +3 -0
  147. package/dist/company/companyHierarchy.js.map +1 -0
  148. package/dist/company/index.d.ts +2 -0
  149. package/dist/company/index.d.ts.map +1 -1
  150. package/dist/company/index.js +2 -0
  151. package/dist/company/index.js.map +1 -1
  152. package/dist/company/notification.d.ts +34 -1
  153. package/dist/company/notification.d.ts.map +1 -1
  154. package/dist/company/notification.js +27 -12
  155. package/dist/company/notification.js.map +1 -1
  156. package/dist/company/survey.d.ts +3 -0
  157. package/dist/company/survey.d.ts.map +1 -1
  158. package/dist/events/alertDefinitionRun.d.ts +23 -0
  159. package/dist/events/alertDefinitionRun.d.ts.map +1 -0
  160. package/dist/events/alertDefinitionRun.js +3 -0
  161. package/dist/events/alertDefinitionRun.js.map +1 -0
  162. package/dist/events/baseAlert.d.ts +130 -0
  163. package/dist/events/baseAlert.d.ts.map +1 -0
  164. package/dist/events/baseAlert.js +3 -0
  165. package/dist/events/baseAlert.js.map +1 -0
  166. package/dist/events/cost.d.ts +361 -0
  167. package/dist/events/cost.d.ts.map +1 -0
  168. package/dist/events/cost.js +3 -0
  169. package/dist/events/cost.js.map +1 -0
  170. package/dist/events/costAnomalies.d.ts +47 -0
  171. package/dist/events/costAnomalies.d.ts.map +1 -0
  172. package/dist/events/costAnomalies.js +3 -0
  173. package/dist/events/costAnomalies.js.map +1 -0
  174. package/dist/events/costViews.d.ts +23 -0
  175. package/dist/events/costViews.d.ts.map +1 -0
  176. package/dist/events/costViews.js +3 -0
  177. package/dist/events/costViews.js.map +1 -0
  178. package/dist/events/eventStatus.d.ts +67 -0
  179. package/dist/events/eventStatus.d.ts.map +1 -0
  180. package/dist/events/eventStatus.js +3 -0
  181. package/dist/events/eventStatus.js.map +1 -0
  182. package/dist/events/index.d.ts +7 -0
  183. package/dist/events/index.d.ts.map +1 -0
  184. package/dist/events/index.js +23 -0
  185. package/dist/events/index.js.map +1 -0
  186. package/dist/features-and-permissions/access.d.ts +137 -0
  187. package/dist/features-and-permissions/access.d.ts.map +1 -0
  188. package/dist/features-and-permissions/access.js +3 -0
  189. package/dist/features-and-permissions/access.js.map +1 -0
  190. package/dist/features-and-permissions/index.d.ts +2 -0
  191. package/dist/features-and-permissions/index.d.ts.map +1 -0
  192. package/dist/features-and-permissions/index.js +18 -0
  193. package/dist/features-and-permissions/index.js.map +1 -0
  194. package/dist/feedbacks/feedback.d.ts +9 -0
  195. package/dist/feedbacks/feedback.d.ts.map +1 -1
  196. package/dist/identity/apikey.d.ts +84 -0
  197. package/dist/identity/apikey.d.ts.map +1 -0
  198. package/dist/identity/apikey.js +3 -0
  199. package/dist/identity/apikey.js.map +1 -0
  200. package/dist/identity/index.d.ts +2 -0
  201. package/dist/identity/index.d.ts.map +1 -0
  202. package/dist/identity/index.js +18 -0
  203. package/dist/identity/index.js.map +1 -0
  204. package/dist/index.d.ts +24 -0
  205. package/dist/index.d.ts.map +1 -1
  206. package/dist/index.js +24 -1
  207. package/dist/index.js.map +1 -1
  208. package/dist/index.vite.d.ts +44 -0
  209. package/dist/index.vite.d.ts.map +1 -0
  210. package/dist/index.vite.js +60 -0
  211. package/dist/index.vite.js.map +1 -0
  212. package/dist/integrations/autotask.d.ts +90 -0
  213. package/dist/integrations/autotask.d.ts.map +1 -0
  214. package/dist/integrations/autotask.js +3 -0
  215. package/dist/integrations/autotask.js.map +1 -0
  216. package/dist/integrations/azureDevOps.d.ts +130 -0
  217. package/dist/integrations/azureDevOps.d.ts.map +1 -0
  218. package/dist/integrations/azureDevOps.js +3 -0
  219. package/dist/integrations/azureDevOps.js.map +1 -0
  220. package/dist/integrations/github.d.ts +96 -0
  221. package/dist/integrations/github.d.ts.map +1 -0
  222. package/dist/integrations/github.js +3 -0
  223. package/dist/integrations/github.js.map +1 -0
  224. package/dist/integrations/halo.d.ts +76 -0
  225. package/dist/integrations/halo.d.ts.map +1 -0
  226. package/dist/integrations/halo.js +3 -0
  227. package/dist/integrations/halo.js.map +1 -0
  228. package/dist/integrations/index.d.ts +6 -0
  229. package/dist/integrations/index.d.ts.map +1 -0
  230. package/dist/integrations/index.js +22 -0
  231. package/dist/integrations/index.js.map +1 -0
  232. package/dist/integrations/integrationTickets.d.ts +67 -0
  233. package/dist/integrations/integrationTickets.d.ts.map +1 -0
  234. package/dist/integrations/integrationTickets.js +3 -0
  235. package/dist/integrations/integrationTickets.js.map +1 -0
  236. package/dist/scheduler/index.d.ts +2 -0
  237. package/dist/scheduler/index.d.ts.map +1 -0
  238. package/dist/scheduler/index.js +18 -0
  239. package/dist/scheduler/index.js.map +1 -0
  240. package/dist/scheduler/scheduler.d.ts +257 -0
  241. package/dist/scheduler/scheduler.d.ts.map +1 -0
  242. package/dist/scheduler/scheduler.js +3 -0
  243. package/dist/scheduler/scheduler.js.map +1 -0
  244. package/dist/tags/index.d.ts +2 -0
  245. package/dist/tags/index.d.ts.map +1 -0
  246. package/dist/tags/index.js +18 -0
  247. package/dist/tags/index.js.map +1 -0
  248. package/dist/tags/tags.d.ts +37 -0
  249. package/dist/tags/tags.d.ts.map +1 -0
  250. package/dist/tags/tags.js +10 -0
  251. package/dist/tags/tags.js.map +1 -0
  252. package/dist/unknown/services.d.ts +12 -0
  253. package/dist/unknown/services.d.ts.map +1 -0
  254. package/dist/unknown/services.js +3 -0
  255. package/dist/unknown/services.js.map +1 -0
  256. package/dist/users/companyUser.d.ts +6 -0
  257. package/dist/users/companyUser.d.ts.map +1 -1
  258. package/dist/users/companyUser.js.map +1 -1
  259. package/dist/users/user.d.ts +16 -1
  260. package/dist/users/user.d.ts.map +1 -1
  261. package/package.json +3 -3
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CLOUD_ACCOUNT_READ_PERMISSIONS_METADATA = exports.SUBSCRIPTION_READ_PERMISSIONS_METADATA = exports.CloudAccountReadPermission = exports.SubscriptionReadPermission = void 0;
4
+ /**
5
+ * Subscription-scoped read capability bitmask enum.
6
+ * Each capability maps to a single bit.
7
+ */
8
+ var SubscriptionReadPermission;
9
+ (function (SubscriptionReadPermission) {
10
+ /** Permission to read Azure Monitor metrics. */
11
+ SubscriptionReadPermission[SubscriptionReadPermission["MonitoringReader"] = 1] = "MonitoringReader";
12
+ /** Permission to run Log Analytics / App Insights data queries. */
13
+ SubscriptionReadPermission[SubscriptionReadPermission["LogAnalyticsDataReader"] = 2] = "LogAnalyticsDataReader";
14
+ /** Permission to read subscription resource groups. */
15
+ SubscriptionReadPermission[SubscriptionReadPermission["ResourceGroupsReader"] = 4] = "ResourceGroupsReader";
16
+ /** Permission to read subscription resource inventory. */
17
+ SubscriptionReadPermission[SubscriptionReadPermission["ResourceInventoryReader"] = 8] = "ResourceInventoryReader";
18
+ /** Permission to read Azure Activity Log events. */
19
+ SubscriptionReadPermission[SubscriptionReadPermission["ActivityLogReader"] = 16] = "ActivityLogReader";
20
+ /** Permission to run Azure Resource Graph queries. */
21
+ SubscriptionReadPermission[SubscriptionReadPermission["ResourceGraphReader"] = 32] = "ResourceGraphReader";
22
+ /** Permission to read Azure Cost Management query results. */
23
+ SubscriptionReadPermission[SubscriptionReadPermission["CostManagementReader"] = 64] = "CostManagementReader";
24
+ /** Permission to read Azure Consumption usage details. */
25
+ SubscriptionReadPermission[SubscriptionReadPermission["ConsumptionUsageReader"] = 128] = "ConsumptionUsageReader";
26
+ /** Permission to read Azure Advisor recommendations and Advisor score. */
27
+ SubscriptionReadPermission[SubscriptionReadPermission["AdvisorRecommendationsReader"] = 256] = "AdvisorRecommendationsReader";
28
+ /** Permission to read Defender for Cloud security posture data. */
29
+ SubscriptionReadPermission[SubscriptionReadPermission["SecurityReader"] = 512] = "SecurityReader";
30
+ })(SubscriptionReadPermission || (exports.SubscriptionReadPermission = SubscriptionReadPermission = {}));
31
+ /**
32
+ * Cloud-account-scoped read capability bitmask enum.
33
+ * Each capability maps to a single bit.
34
+ */
35
+ var CloudAccountReadPermission;
36
+ (function (CloudAccountReadPermission) {
37
+ /** Permission to read management group entities. */
38
+ CloudAccountReadPermission[CloudAccountReadPermission["ManagementGroupReader"] = 1] = "ManagementGroupReader";
39
+ /** Permission to read reservation resources and related consumption artifacts. */
40
+ CloudAccountReadPermission[CloudAccountReadPermission["ReservationsReader"] = 2] = "ReservationsReader";
41
+ /** Permission to read savings plan resources. */
42
+ CloudAccountReadPermission[CloudAccountReadPermission["SavingsPlanReader"] = 4] = "SavingsPlanReader";
43
+ /** Permission to read Microsoft Graph applications/service principals. */
44
+ CloudAccountReadPermission[CloudAccountReadPermission["GraphApplicationReadAll"] = 8] = "GraphApplicationReadAll";
45
+ })(CloudAccountReadPermission || (exports.CloudAccountReadPermission = CloudAccountReadPermission = {}));
46
+ exports.SUBSCRIPTION_READ_PERMISSIONS_METADATA = [
47
+ {
48
+ id: SubscriptionReadPermission.MonitoringReader,
49
+ displayName: 'Monitoring Reader',
50
+ description: 'Allows Spotto to read Azure Monitor metrics for subscription resources.',
51
+ requiredRoles: ['Monitoring Reader'],
52
+ documentationUrl: 'https://learn.microsoft.com/en-us/azure/azure-monitor/roles-permissions-security',
53
+ },
54
+ {
55
+ id: SubscriptionReadPermission.LogAnalyticsDataReader,
56
+ displayName: 'Log Analytics Data Reader',
57
+ description: 'Allows Spotto to run Log Analytics and App Insights data queries.',
58
+ requiredRoles: ['Log Analytics Reader'],
59
+ documentationUrl: 'https://learn.microsoft.com/en-us/azure/azure-monitor/logs/manage-access',
60
+ },
61
+ {
62
+ id: SubscriptionReadPermission.ResourceGroupsReader,
63
+ displayName: 'Resource Groups Reader',
64
+ description: 'Allows Spotto to read resource groups for subscription inventory and grouping.',
65
+ requiredRoles: ['Reader'],
66
+ documentationUrl: 'https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles/general#reader',
67
+ },
68
+ {
69
+ id: SubscriptionReadPermission.ResourceInventoryReader,
70
+ displayName: 'Resource Inventory Reader',
71
+ description: 'Allows Spotto to read subscription resources for inventory, recommendations, relationship graph, and portal/plugin views.',
72
+ requiredRoles: ['Reader'],
73
+ documentationUrl: 'https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles/general#reader',
74
+ },
75
+ {
76
+ id: SubscriptionReadPermission.ActivityLogReader,
77
+ displayName: 'Activity Log Reader',
78
+ description: 'Allows Spotto to read Azure Activity Log events for operational context and refresh decisions.',
79
+ requiredRoles: ['Reader'],
80
+ documentationUrl: 'https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/activity-log',
81
+ },
82
+ {
83
+ id: SubscriptionReadPermission.ResourceGraphReader,
84
+ displayName: 'Resource Graph Reader',
85
+ description: 'Allows Spotto to run Azure Resource Graph queries used by inventory, governance, reliability, and security checks.',
86
+ requiredRoles: ['Reader'],
87
+ documentationUrl: 'https://learn.microsoft.com/en-us/azure/governance/resource-graph/overview',
88
+ },
89
+ {
90
+ id: SubscriptionReadPermission.CostManagementReader,
91
+ displayName: 'Cost Management Reader',
92
+ description: 'Allows Spotto to read scoped Azure Cost Management data for costs, budgets, and savings calculations.',
93
+ requiredRoles: ['Cost Management Reader', 'Reader'],
94
+ documentationUrl: 'https://learn.microsoft.com/en-us/azure/cost-management-billing/costs/assign-access-acm-data',
95
+ },
96
+ {
97
+ id: SubscriptionReadPermission.ConsumptionUsageReader,
98
+ displayName: 'Consumption Usage Reader',
99
+ description: 'Allows Spotto to read Azure usage detail rows for usage attribution and commitment analysis.',
100
+ requiredRoles: ['Cost Management Reader', 'Reader'],
101
+ documentationUrl: 'https://learn.microsoft.com/en-us/rest/api/consumption/usage-details/list',
102
+ },
103
+ {
104
+ id: SubscriptionReadPermission.AdvisorRecommendationsReader,
105
+ displayName: 'Advisor Reader',
106
+ description: 'Allows Spotto to read Azure Advisor recommendations and Advisor score for recommendation import and optimization workflows.',
107
+ requiredRoles: ['Reader'],
108
+ documentationUrl: 'https://learn.microsoft.com/en-us/azure/advisor/advisor-overview',
109
+ },
110
+ {
111
+ id: SubscriptionReadPermission.SecurityReader,
112
+ displayName: 'Security Reader',
113
+ description: 'Allows Spotto to read Defender for Cloud assessments, secure score, and security posture data.',
114
+ requiredRoles: ['Security Reader', 'Reader'],
115
+ documentationUrl: 'https://learn.microsoft.com/en-us/azure/defender-for-cloud/permissions',
116
+ },
117
+ ];
118
+ exports.CLOUD_ACCOUNT_READ_PERMISSIONS_METADATA = [
119
+ {
120
+ id: CloudAccountReadPermission.ManagementGroupReader,
121
+ displayName: 'Management Group Reader',
122
+ description: 'Allows Spotto to read tenant management group entities.',
123
+ requiredRoles: ['Management Group Reader'],
124
+ documentationUrl: 'https://learn.microsoft.com/en-us/azure/governance/management-groups/how-to/protect-resource-hierarchy',
125
+ },
126
+ {
127
+ id: CloudAccountReadPermission.ReservationsReader,
128
+ displayName: 'Reservations Reader',
129
+ description: 'Allows Spotto to read reservation resources and reservation usage artifacts.',
130
+ requiredRoles: ['Reservations Reader'],
131
+ documentationUrl: 'https://learn.microsoft.com/en-us/azure/cost-management-billing/reservations/view-reservations',
132
+ },
133
+ {
134
+ id: CloudAccountReadPermission.SavingsPlanReader,
135
+ displayName: 'Savings Plan Reader',
136
+ description: 'Allows Spotto to read savings plan resources.',
137
+ requiredRoles: ['Savings plan Reader'],
138
+ documentationUrl: 'https://learn.microsoft.com/en-us/azure/cost-management-billing/savings-plan/view-utilization',
139
+ },
140
+ {
141
+ id: CloudAccountReadPermission.GraphApplicationReadAll,
142
+ displayName: 'Graph Application Read.All',
143
+ description: 'Allows Spotto to read Microsoft Graph applications and service principals.',
144
+ requiredRoles: ['Application.Read.All'],
145
+ documentationUrl: 'https://learn.microsoft.com/en-us/graph/permissions-reference#applicationreadall',
146
+ },
147
+ ];
148
+ //# sourceMappingURL=readPermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readPermissions.js","sourceRoot":"","sources":["../../src/accounts/readPermissions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import type { SubscriptionAccount } from './accounts';
2
+ export type SubscriptionValidationStatus = 'confirmed' | 'forbidden' | 'unauthorized' | 'throttled' | 'unavailable';
3
+ export interface SubscriptionReadValidationResult {
4
+ subscription: SubscriptionAccount;
5
+ valid: boolean;
6
+ status: SubscriptionValidationStatus;
7
+ statusCode: number;
8
+ message?: string;
9
+ }
10
+ export interface CloudAccountReadAccessValidation {
11
+ valid: boolean;
12
+ subscriptions: SubscriptionAccount[];
13
+ subscriptionResults: SubscriptionReadValidationResult[];
14
+ }
15
+ export interface CloudAccountWriteAccessValidation {
16
+ valid: boolean;
17
+ subscriptions: SubscriptionAccount[];
18
+ }
19
+ export type CloudAccountCapabilityValidationStatus = 'confirmed' | 'missing' | 'notApplicable' | 'notTested' | 'warning' | 'unknown';
20
+ export type CloudAccountCapabilityValidationScope = 'tenant' | 'subscription' | 'resource' | 'write';
21
+ export interface CloudAccountCapabilityValidationResult {
22
+ key: string;
23
+ section: string;
24
+ scope: CloudAccountCapabilityValidationScope;
25
+ status: CloudAccountCapabilityValidationStatus;
26
+ severity: 'required' | 'recommended' | 'optional';
27
+ displayName: string;
28
+ description: string;
29
+ requiredRoles: string[];
30
+ affectedFeatures: string[];
31
+ documentationUrl?: string;
32
+ testedBy: string;
33
+ subscriptionId?: string;
34
+ statusCode?: number;
35
+ message?: string;
36
+ }
37
+ export interface CloudAccountValidationResult {
38
+ valid: boolean;
39
+ readAccess: CloudAccountReadAccessValidation;
40
+ writeAccess?: CloudAccountWriteAccessValidation;
41
+ capabilityChecks?: CloudAccountCapabilityValidationResult[];
42
+ }
43
+ export interface CloudAccountCapabilityValidationProgress {
44
+ result: CloudAccountCapabilityValidationResult;
45
+ completed: number;
46
+ total: number;
47
+ }
48
+ export interface CloudAccountCapabilityValidationPlan {
49
+ tenantCheckCount: number;
50
+ subscriptionCheckCount: number;
51
+ subscriptionCount: number;
52
+ totalCheckCount: number;
53
+ }
54
+ export type CloudAccountValidationStreamEvent = {
55
+ event: 'started';
56
+ message: string;
57
+ } | {
58
+ event: 'readAccessStarted';
59
+ message: string;
60
+ } | {
61
+ event: 'subscriptionsDiscovered';
62
+ message: string;
63
+ readAccess: CloudAccountReadAccessValidation;
64
+ visibleSubscriptionCount: number;
65
+ readableSubscriptionCount: number;
66
+ } | {
67
+ event: 'capabilityStarted';
68
+ message: string;
69
+ plan: CloudAccountCapabilityValidationPlan;
70
+ } | {
71
+ event: 'capabilityResult';
72
+ message: string;
73
+ result: CloudAccountCapabilityValidationResult;
74
+ completed: number;
75
+ total: number;
76
+ } | {
77
+ event: 'writeAccessStarted';
78
+ message: string;
79
+ } | {
80
+ event: 'writeAccessCompleted';
81
+ message: string;
82
+ writeAccess: CloudAccountWriteAccessValidation;
83
+ } | {
84
+ event: 'completed';
85
+ message: string;
86
+ result: CloudAccountValidationResult;
87
+ } | {
88
+ event: 'error';
89
+ message: string;
90
+ };
91
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/accounts/validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/accounts/validation.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Write Permission Bitmask Enum
3
+ * Each permission gets a unique bit position for efficient storage
4
+ */
5
+ export declare enum WritePermission {
6
+ /** Permission to dismiss Azure Advisor recommendations */
7
+ DismissRecommendations = 1,// 1
8
+ /** Permission to enable storage inventory reports on storage accounts */
9
+ StorageInventory = 2
10
+ }
11
+ /**
12
+ * Metadata for a write permission
13
+ * Contains display information, required roles, and documentation links
14
+ */
15
+ export interface WritePermissionMetadata {
16
+ /** Unique identifier matching the WritePermission enum */
17
+ id: WritePermission;
18
+ /** Human-readable display name */
19
+ displayName: string;
20
+ /** Description of what this permission allows */
21
+ description: string;
22
+ /** Required Azure RBAC role(s) for this permission */
23
+ requiredRoles: string[];
24
+ /** URL to documentation about this permission */
25
+ documentationUrl?: string;
26
+ /** URL to script generator for creating custom roles */
27
+ scriptGeneratorUrl?: string;
28
+ }
29
+ /**
30
+ * Permission metadata array
31
+ * Define all available write permissions with their metadata
32
+ */
33
+ export declare const WRITE_PERMISSIONS_METADATA: WritePermissionMetadata[];
34
+ //# sourceMappingURL=writePermissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writePermissions.d.ts","sourceRoot":"","sources":["../../src/accounts/writePermissions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,eAAe;IACzB,0DAA0D;IAC1D,sBAAsB,IAAS,CAAE,IAAI;IACrC,yEAAyE;IACzE,gBAAgB,IAAS;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,0DAA0D;IAC1D,EAAE,EAAE,eAAe,CAAC;IACpB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,uBAAuB,EAiB/D,CAAC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WRITE_PERMISSIONS_METADATA = exports.WritePermission = void 0;
4
+ /**
5
+ * Write Permission Bitmask Enum
6
+ * Each permission gets a unique bit position for efficient storage
7
+ */
8
+ var WritePermission;
9
+ (function (WritePermission) {
10
+ /** Permission to dismiss Azure Advisor recommendations */
11
+ WritePermission[WritePermission["DismissRecommendations"] = 1] = "DismissRecommendations";
12
+ /** Permission to enable storage inventory reports on storage accounts */
13
+ WritePermission[WritePermission["StorageInventory"] = 2] = "StorageInventory";
14
+ })(WritePermission || (exports.WritePermission = WritePermission = {}));
15
+ /**
16
+ * Permission metadata array
17
+ * Define all available write permissions with their metadata
18
+ */
19
+ exports.WRITE_PERMISSIONS_METADATA = [
20
+ {
21
+ id: WritePermission.DismissRecommendations,
22
+ displayName: 'Dismiss Azure Advisor Recommendations',
23
+ description: 'Allows Spotto to dismiss recommendations in Azure when dismissed here.',
24
+ requiredRoles: ['Advisor Recommendations Contributor'],
25
+ documentationUrl: 'https://learn.microsoft.com/en-us/azure/advisor/permissions',
26
+ scriptGeneratorUrl: '/scripts/advisor-role',
27
+ },
28
+ {
29
+ id: WritePermission.StorageInventory,
30
+ displayName: 'Enable Storage Inventory Reports',
31
+ description: 'Allows Spotto to enable blob inventory on storage accounts you select.',
32
+ requiredRoles: ['Storage Account Contributor'],
33
+ documentationUrl: 'https://learn.microsoft.com/en-us/azure/storage/blobs/blob-inventory',
34
+ scriptGeneratorUrl: '/scripts/storage-role',
35
+ },
36
+ ];
37
+ //# sourceMappingURL=writePermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writePermissions.js","sourceRoot":"","sources":["../../src/accounts/writePermissions.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,0DAA0D;IAC1D,yFAA+B,CAAA;IAC/B,yEAAyE;IACzE,6EAAyB,CAAA;AAC3B,CAAC,EALW,eAAe,+BAAf,eAAe,QAK1B;AAqBD;;;GAGG;AACU,QAAA,0BAA0B,GAA8B;IACnE;QACE,EAAE,EAAE,eAAe,CAAC,sBAAsB;QAC1C,WAAW,EAAE,uCAAuC;QACpD,WAAW,EAAE,wEAAwE;QACrF,aAAa,EAAE,CAAC,qCAAqC,CAAC;QACtD,gBAAgB,EAAE,6DAA6D;QAC/E,kBAAkB,EAAE,uBAAuB;KAC5C;IACD;QACE,EAAE,EAAE,eAAe,CAAC,gBAAgB;QACpC,WAAW,EAAE,kCAAkC;QAC/C,WAAW,EAAE,wEAAwE;QACrF,aAAa,EAAE,CAAC,6BAA6B,CAAC;QAC9C,gBAAgB,EAAE,sEAAsE;QACxF,kBAAkB,EAAE,uBAAuB;KAC5C;CACF,CAAC"}