@spottoai/types-package 1.0.2-beta.18 → 1.0.2-beta.181

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 (186) hide show
  1. package/LICENSE +18 -40
  2. package/README.md +4 -11
  3. package/dist/accounts/accounts.d.ts +37 -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 +944 -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 +108 -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 +12 -0
  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/metrics.d.ts +40 -0
  48. package/dist/azure/metrics.d.ts.map +1 -1
  49. package/dist/azure/payloads.d.ts +10 -1
  50. package/dist/azure/payloads.d.ts.map +1 -1
  51. package/dist/azure/prices.d.ts +179 -0
  52. package/dist/azure/prices.d.ts.map +1 -1
  53. package/dist/azure/recommendationAudit.d.ts +113 -0
  54. package/dist/azure/recommendationAudit.d.ts.map +1 -0
  55. package/dist/azure/recommendationAudit.js +10 -0
  56. package/dist/azure/recommendationAudit.js.map +1 -0
  57. package/dist/azure/recommendationState.d.ts +91 -2
  58. package/dist/azure/recommendationState.d.ts.map +1 -1
  59. package/dist/azure/recommendations.d.ts +289 -5
  60. package/dist/azure/recommendations.d.ts.map +1 -1
  61. package/dist/azure/recommendations.js.map +1 -1
  62. package/dist/azure/relationships.d.ts +77 -0
  63. package/dist/azure/relationships.d.ts.map +1 -0
  64. package/dist/azure/relationships.js +3 -0
  65. package/dist/azure/relationships.js.map +1 -0
  66. package/dist/azure/reports.d.ts +248 -0
  67. package/dist/azure/reports.d.ts.map +1 -1
  68. package/dist/azure/reports.js +13 -0
  69. package/dist/azure/reports.js.map +1 -1
  70. package/dist/azure/resources.d.ts +39 -0
  71. package/dist/azure/resources.d.ts.map +1 -1
  72. package/dist/azure/reviewChecklist.d.ts +139 -0
  73. package/dist/azure/reviewChecklist.d.ts.map +1 -0
  74. package/dist/azure/reviewChecklist.js +3 -0
  75. package/dist/azure/reviewChecklist.js.map +1 -0
  76. package/dist/azure/security.d.ts +15 -1
  77. package/dist/azure/security.d.ts.map +1 -1
  78. package/dist/azure/serviceRetirement.d.ts +28 -0
  79. package/dist/azure/serviceRetirement.d.ts.map +1 -0
  80. package/dist/azure/serviceRetirement.js +3 -0
  81. package/dist/azure/serviceRetirement.js.map +1 -0
  82. package/dist/azure/serviceRetirementState.d.ts +22 -0
  83. package/dist/azure/serviceRetirementState.d.ts.map +1 -0
  84. package/dist/azure/serviceRetirementState.js +3 -0
  85. package/dist/azure/serviceRetirementState.js.map +1 -0
  86. package/dist/azure/storage-inventory.d.ts +241 -0
  87. package/dist/azure/storage-inventory.d.ts.map +1 -0
  88. package/dist/azure/storage-inventory.js +3 -0
  89. package/dist/azure/storage-inventory.js.map +1 -0
  90. package/dist/azure/subscriptions.d.ts +34 -13
  91. package/dist/azure/subscriptions.d.ts.map +1 -1
  92. package/dist/azure/views.d.ts +147 -2
  93. package/dist/azure/views.d.ts.map +1 -1
  94. package/dist/common/index.d.ts +1 -0
  95. package/dist/common/index.d.ts.map +1 -1
  96. package/dist/common/index.js +1 -0
  97. package/dist/common/index.js.map +1 -1
  98. package/dist/common/pagination.d.ts +3 -0
  99. package/dist/common/pagination.d.ts.map +1 -1
  100. package/dist/common/provider.d.ts +9 -0
  101. package/dist/common/provider.d.ts.map +1 -0
  102. package/dist/common/provider.js +9 -0
  103. package/dist/common/provider.js.map +1 -0
  104. package/dist/company/billingAccount.d.ts +30 -0
  105. package/dist/company/billingAccount.d.ts.map +1 -0
  106. package/dist/company/billingAccount.js +3 -0
  107. package/dist/company/billingAccount.js.map +1 -0
  108. package/dist/company/company.d.ts +26 -1
  109. package/dist/company/company.d.ts.map +1 -1
  110. package/dist/company/index.d.ts +1 -0
  111. package/dist/company/index.d.ts.map +1 -1
  112. package/dist/company/index.js +1 -0
  113. package/dist/company/index.js.map +1 -1
  114. package/dist/company/notification.d.ts +31 -1
  115. package/dist/company/notification.d.ts.map +1 -1
  116. package/dist/company/notification.js +24 -12
  117. package/dist/company/notification.js.map +1 -1
  118. package/dist/company/survey.d.ts +3 -0
  119. package/dist/company/survey.d.ts.map +1 -1
  120. package/dist/events/alertDefinitionRun.d.ts +23 -0
  121. package/dist/events/alertDefinitionRun.d.ts.map +1 -0
  122. package/dist/events/alertDefinitionRun.js +3 -0
  123. package/dist/events/alertDefinitionRun.js.map +1 -0
  124. package/dist/events/baseAlert.d.ts +130 -0
  125. package/dist/events/baseAlert.d.ts.map +1 -0
  126. package/dist/events/baseAlert.js +3 -0
  127. package/dist/events/baseAlert.js.map +1 -0
  128. package/dist/events/cost.d.ts +361 -0
  129. package/dist/events/cost.d.ts.map +1 -0
  130. package/dist/events/cost.js +3 -0
  131. package/dist/events/cost.js.map +1 -0
  132. package/dist/events/costAnomalies.d.ts +47 -0
  133. package/dist/events/costAnomalies.d.ts.map +1 -0
  134. package/dist/events/costAnomalies.js +3 -0
  135. package/dist/events/costAnomalies.js.map +1 -0
  136. package/dist/events/costViews.d.ts +23 -0
  137. package/dist/events/costViews.d.ts.map +1 -0
  138. package/dist/events/costViews.js +3 -0
  139. package/dist/events/costViews.js.map +1 -0
  140. package/dist/events/eventStatus.d.ts +67 -0
  141. package/dist/events/eventStatus.d.ts.map +1 -0
  142. package/dist/events/eventStatus.js +3 -0
  143. package/dist/events/eventStatus.js.map +1 -0
  144. package/dist/events/index.d.ts +7 -0
  145. package/dist/events/index.d.ts.map +1 -0
  146. package/dist/events/index.js +23 -0
  147. package/dist/events/index.js.map +1 -0
  148. package/dist/feedbacks/feedback.d.ts +9 -0
  149. package/dist/feedbacks/feedback.d.ts.map +1 -1
  150. package/dist/identity/apikey.d.ts +67 -0
  151. package/dist/identity/apikey.d.ts.map +1 -0
  152. package/dist/identity/apikey.js +3 -0
  153. package/dist/identity/apikey.js.map +1 -0
  154. package/dist/identity/index.d.ts +2 -0
  155. package/dist/identity/index.d.ts.map +1 -0
  156. package/dist/identity/index.js +18 -0
  157. package/dist/identity/index.js.map +1 -0
  158. package/dist/index.d.ts +15 -0
  159. package/dist/index.d.ts.map +1 -1
  160. package/dist/index.js +15 -1
  161. package/dist/index.js.map +1 -1
  162. package/dist/integrations/halo.d.ts +76 -0
  163. package/dist/integrations/halo.d.ts.map +1 -0
  164. package/dist/integrations/halo.js +3 -0
  165. package/dist/integrations/halo.js.map +1 -0
  166. package/dist/integrations/index.d.ts +3 -0
  167. package/dist/integrations/index.d.ts.map +1 -0
  168. package/dist/integrations/index.js +19 -0
  169. package/dist/integrations/index.js.map +1 -0
  170. package/dist/integrations/integrationTickets.d.ts +67 -0
  171. package/dist/integrations/integrationTickets.d.ts.map +1 -0
  172. package/dist/integrations/integrationTickets.js +3 -0
  173. package/dist/integrations/integrationTickets.js.map +1 -0
  174. package/dist/tags/index.d.ts +2 -0
  175. package/dist/tags/index.d.ts.map +1 -0
  176. package/dist/tags/index.js +18 -0
  177. package/dist/tags/index.js.map +1 -0
  178. package/dist/tags/tags.d.ts +26 -0
  179. package/dist/tags/tags.d.ts.map +1 -0
  180. package/dist/tags/tags.js +10 -0
  181. package/dist/tags/tags.js.map +1 -0
  182. package/dist/unknown/services.d.ts +12 -0
  183. package/dist/unknown/services.d.ts.map +1 -0
  184. package/dist/unknown/services.js +3 -0
  185. package/dist/unknown/services.js.map +1 -0
  186. package/package.json +2 -2
package/LICENSE CHANGED
@@ -1,43 +1,21 @@
1
- PROPRIETARY LICENSE AGREEMENT
1
+ MIT License
2
2
 
3
3
  Copyright (c) 2024 Spotto AI (www.spotto.ai)
4
4
 
5
- This software and associated documentation files (the "Software") are the proprietary
6
- and confidential information of Spotto AI. The Software is made available publicly
7
- solely for internal use by Spotto AI and its authorized projects.
8
-
9
- RESTRICTIONS:
10
-
11
- 1. NO PERMISSION TO USE: Except as expressly stated below, no person or entity is
12
- granted any right, title, or interest in or to the Software.
13
-
14
- 2. INTERNAL USE ONLY: The Software may only be used internally by Spotto AI and its
15
- authorized projects for development, testing, and deployment purposes.
16
-
17
- 3. NO REDISTRIBUTION: The Software may not be redistributed, sold, leased, or
18
- otherwise made available to third parties.
19
-
20
- 4. NO DERIVATIVE WORKS: No derivative works based on the Software may be created
21
- without explicit written permission from Spotto AI.
22
-
23
- 5. NO REVERSE ENGINEERING: Reverse engineering, disassembly, or decompilation of
24
- the Software is strictly prohibited.
25
-
26
- 6. NO COMMERCIAL USE: Commercial use of the Software by any entity other than
27
- Spotto AI is strictly prohibited.
28
-
29
- DISCLAIMER:
30
-
31
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
32
- INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
33
- PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
34
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
35
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
36
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
37
-
38
- VIOLATION:
39
-
40
- Any unauthorized use, distribution, or modification of this Software constitutes
41
- a violation of this license agreement and may result in legal action.
42
-
43
- For licensing inquiries, contact: contact@spotto.ai
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,23 +1,19 @@
1
1
  # Types Package
2
2
 
3
- A shared TypeScript interfaces package for private repositories. This package contains common interfaces that can be reused across your API, frontend, and backend projects.
4
- **⚠️ RESTRICTED USE - INTERNAL SPOTTO AI ONLY ⚠️**
3
+ A shared TypeScript interfaces package. This package contains common interfaces that can be reused across your API, frontend, and backend projects.
5
4
 
6
- This is a proprietary TypeScript interfaces package for internal use by Spotto AI (www.spotto.ai) only. This package contains common interfaces that can be reused across Spotto AI's API, frontend, and backend projects.
7
5
 
8
- **IMPORTANT**: This repository is made public solely for internal sharing between Spotto AI projects. External use, distribution, or modification is strictly prohibited. See LICENSE file for full terms.
9
6
 
10
7
  ## Features
11
8
 
12
9
  - **Shared Interfaces**: Common TypeScript interfaces for API requests/responses, database models, frontend components, and backend services
13
- - **Git Dependencies**: Designed to work with Git dependencies for private repositories
10
+ - **Git Dependencies**: Designed to work with Git dependencies
14
11
  - **TypeScript Declaration Files**: Built with declaration files for better IDE support
15
12
  - **Modular Structure**: Organized by domain (API, Database, Frontend, Backend)
16
13
 
17
14
  ## Installation
18
15
 
19
- Since this is a private repository, you'll need to use Git dependencies instead of npm. Add this to your consuming project's `package.json`:
20
- Since this is an internal Spotto AI package, you'll need to use Git dependencies. Add this to your consuming project's `package.json`:
16
+ Add this to your consuming project's `package.json`:
21
17
 
22
18
  ```json
23
19
  {
@@ -114,7 +110,4 @@ This package follows semantic versioning. When making changes:
114
110
 
115
111
  ## License
116
112
 
117
- MIT License - see LICENSE file for details
118
- **PROPRIETARY LICENSE** - This software is proprietary to Spotto AI and is made available publicly solely for internal use. External use, distribution, or modification is strictly prohibited. See LICENSE file for full terms and restrictions.
119
-
120
- For licensing inquiries, contact: legal@spotto.ai
113
+ MIT License - see LICENSE file for details
@@ -1,10 +1,18 @@
1
1
  import { SurveyResponse } from '../company';
2
+ import type { EffortEstimateProfileName } from '../azure/recommendations';
3
+ export type SubscriptionType = 'Production' | 'Non-Production' | 'Mixed';
2
4
  export interface CloudAccount {
5
+ /** Partition Key */
3
6
  companyId: string;
7
+ /** Row Key (Azure Client ID, AWS Access Key ID) */
4
8
  id: string;
5
9
  name: string;
6
10
  companyName: string;
11
+ /** AWS, Azure, GCP, etc. */
7
12
  provider: string;
13
+ /** Optional list of subscription group names for this cloud account */
14
+ groupNames?: string[];
15
+ /** Azure Tenant ID */
8
16
  tenantId?: string;
9
17
  secret?: string;
10
18
  secretExpiresAt?: Date;
@@ -13,14 +21,27 @@ export interface CloudAccount {
13
21
  createdBy: string;
14
22
  status: string;
15
23
  objectives?: SurveyResponse[];
24
+ /** Preferred recommendation effort-estimate profile for this cloud account. */
25
+ effortProfile?: EffortEstimateProfileName;
26
+ writeSecret?: string;
27
+ writeSecretExpiresAt?: Date;
28
+ writeClientId?: string;
29
+ writeBitmask?: number;
30
+ readBitmask?: number;
16
31
  }
17
- export interface SubscriptionAccount {
18
- id: string;
19
- companyId: string;
32
+ export interface SubscriptionInfoBase {
20
33
  name: string;
34
+ friendlyName?: string;
21
35
  cloudAccountId: string;
22
36
  cloudAccountName: string;
37
+ /** Optional group name for subscription-level grouping */
38
+ groupName?: string;
39
+ /** Optional emoji shortcode (Slack-style, e.g. "/face") */
40
+ icon?: string;
41
+ /** Optional subscription type (Production, Non-Production, Mixed) */
42
+ subscriptionType?: SubscriptionType;
23
43
  status?: string;
44
+ statusLabel?: string;
24
45
  error?: string;
25
46
  lastUpdated?: string;
26
47
  quotaId?: string;
@@ -29,5 +50,18 @@ export interface SubscriptionAccount {
29
50
  currencySymbol?: string;
30
51
  foundCurrency?: boolean;
31
52
  ready?: boolean;
53
+ secureScore?: number;
54
+ showAmortizedCosts?: boolean;
55
+ totalCost?: number;
56
+ billingItems?: number;
57
+ activityItems?: number;
58
+ eventId?: string;
59
+ readBitmask?: number;
60
+ }
61
+ export interface SubscriptionAccount extends SubscriptionInfoBase {
62
+ /** Partition Key (Azure Subscription ID) */
63
+ id: string;
64
+ /** Row Key */
65
+ companyId: string;
32
66
  }
33
67
  //# sourceMappingURL=accounts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/accounts/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB"}
1
+ {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/accounts/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAE1E,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,gBAAgB,GAAG,OAAO,CAAC;AAEzE,MAAM,WAAW,YAAY;IAC3B,oBAAoB;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,yBAAyB,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAC/D,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,cAAc;IACd,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -1,2 +1,5 @@
1
1
  export * from './accounts';
2
+ export * from './writePermissions';
3
+ export * from './readPermissions';
4
+ export * from './validation';
2
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/accounts/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/accounts/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC"}
@@ -15,4 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./accounts"), exports);
18
+ __exportStar(require("./writePermissions"), exports);
19
+ __exportStar(require("./readPermissions"), exports);
20
+ __exportStar(require("./validation"), exports);
18
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/accounts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/accounts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,qDAAmC;AACnC,oDAAkC;AAClC,+CAA6B"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Subscription-scoped read capability bitmask enum.
3
+ * Each capability maps to a single bit.
4
+ */
5
+ export declare enum SubscriptionReadPermission {
6
+ /** Permission to read Azure Monitor metrics. */
7
+ MonitoringReader = 1,// 1
8
+ /** Permission to run Log Analytics / App Insights data queries. */
9
+ LogAnalyticsDataReader = 2
10
+ }
11
+ /**
12
+ * Cloud-account-scoped read capability bitmask enum.
13
+ * Each capability maps to a single bit.
14
+ */
15
+ export declare enum CloudAccountReadPermission {
16
+ /** Permission to read management group entities. */
17
+ ManagementGroupReader = 1,// 1
18
+ /** Permission to read reservation resources and related consumption artifacts. */
19
+ ReservationsReader = 2,// 2
20
+ /** Permission to read savings plan resources. */
21
+ SavingsPlanReader = 4,// 4
22
+ /** Permission to read Microsoft Graph applications/service principals. */
23
+ GraphApplicationReadAll = 8
24
+ }
25
+ /**
26
+ * Metadata for a subscription-scoped read capability.
27
+ */
28
+ export interface SubscriptionReadPermissionMetadata {
29
+ id: SubscriptionReadPermission;
30
+ displayName: string;
31
+ description: string;
32
+ requiredRoles: string[];
33
+ }
34
+ /**
35
+ * Metadata for a cloud-account-scoped read capability.
36
+ */
37
+ export interface CloudAccountReadPermissionMetadata {
38
+ id: CloudAccountReadPermission;
39
+ displayName: string;
40
+ description: string;
41
+ requiredRoles: string[];
42
+ }
43
+ export declare const SUBSCRIPTION_READ_PERMISSIONS_METADATA: SubscriptionReadPermissionMetadata[];
44
+ export declare const CLOUD_ACCOUNT_READ_PERMISSIONS_METADATA: CloudAccountReadPermissionMetadata[];
45
+ //# sourceMappingURL=readPermissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readPermissions.d.ts","sourceRoot":"","sources":["../../src/accounts/readPermissions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,0BAA0B;IACpC,gDAAgD;IAChD,gBAAgB,IAAS,CAAE,IAAI;IAC/B,mEAAmE;IACnE,sBAAsB,IAAS;CAChC;AAED;;;GAGG;AACH,oBAAY,0BAA0B;IACpC,oDAAoD;IACpD,qBAAqB,IAAS,CAAE,IAAI;IACpC,kFAAkF;IAClF,kBAAkB,IAAS,CAAE,IAAI;IACjC,iDAAiD;IACjD,iBAAiB,IAAS,CAAE,IAAI;IAChC,0EAA0E;IAC1E,uBAAuB,IAAS;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,EAAE,EAAE,0BAA0B,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,EAAE,EAAE,0BAA0B,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,eAAO,MAAM,sCAAsC,EAAE,kCAAkC,EAatF,CAAC;AAEF,eAAO,MAAM,uCAAuC,EAAE,kCAAkC,EAyBvF,CAAC"}
@@ -0,0 +1,70 @@
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
+ })(SubscriptionReadPermission || (exports.SubscriptionReadPermission = SubscriptionReadPermission = {}));
15
+ /**
16
+ * Cloud-account-scoped read capability bitmask enum.
17
+ * Each capability maps to a single bit.
18
+ */
19
+ var CloudAccountReadPermission;
20
+ (function (CloudAccountReadPermission) {
21
+ /** Permission to read management group entities. */
22
+ CloudAccountReadPermission[CloudAccountReadPermission["ManagementGroupReader"] = 1] = "ManagementGroupReader";
23
+ /** Permission to read reservation resources and related consumption artifacts. */
24
+ CloudAccountReadPermission[CloudAccountReadPermission["ReservationsReader"] = 2] = "ReservationsReader";
25
+ /** Permission to read savings plan resources. */
26
+ CloudAccountReadPermission[CloudAccountReadPermission["SavingsPlanReader"] = 4] = "SavingsPlanReader";
27
+ /** Permission to read Microsoft Graph applications/service principals. */
28
+ CloudAccountReadPermission[CloudAccountReadPermission["GraphApplicationReadAll"] = 8] = "GraphApplicationReadAll";
29
+ })(CloudAccountReadPermission || (exports.CloudAccountReadPermission = CloudAccountReadPermission = {}));
30
+ exports.SUBSCRIPTION_READ_PERMISSIONS_METADATA = [
31
+ {
32
+ id: SubscriptionReadPermission.MonitoringReader,
33
+ displayName: 'Monitoring Reader',
34
+ description: 'Allows Spotto to read Azure Monitor metrics for subscription resources.',
35
+ requiredRoles: ['Monitoring Reader'],
36
+ },
37
+ {
38
+ id: SubscriptionReadPermission.LogAnalyticsDataReader,
39
+ displayName: 'Log Analytics Data Reader',
40
+ description: 'Allows Spotto to run Log Analytics and App Insights data queries.',
41
+ requiredRoles: ['Log Analytics Reader'],
42
+ },
43
+ ];
44
+ exports.CLOUD_ACCOUNT_READ_PERMISSIONS_METADATA = [
45
+ {
46
+ id: CloudAccountReadPermission.ManagementGroupReader,
47
+ displayName: 'Management Group Reader',
48
+ description: 'Allows Spotto to read tenant management group entities.',
49
+ requiredRoles: ['Management Group Reader'],
50
+ },
51
+ {
52
+ id: CloudAccountReadPermission.ReservationsReader,
53
+ displayName: 'Reservations Reader',
54
+ description: 'Allows Spotto to read reservation resources and reservation usage artifacts.',
55
+ requiredRoles: ['Reader'],
56
+ },
57
+ {
58
+ id: CloudAccountReadPermission.SavingsPlanReader,
59
+ displayName: 'Savings Plan Reader',
60
+ description: 'Allows Spotto to read savings plan resources.',
61
+ requiredRoles: ['Reader'],
62
+ },
63
+ {
64
+ id: CloudAccountReadPermission.GraphApplicationReadAll,
65
+ displayName: 'Graph Application Read.All',
66
+ description: 'Allows Spotto to read Microsoft Graph applications and service principals.',
67
+ requiredRoles: ['Application.Read.All'],
68
+ },
69
+ ];
70
+ //# sourceMappingURL=readPermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readPermissions.js","sourceRoot":"","sources":["../../src/accounts/readPermissions.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,0BAKX;AALD,WAAY,0BAA0B;IACpC,gDAAgD;IAChD,mGAAyB,CAAA;IACzB,mEAAmE;IACnE,+GAA+B,CAAA;AACjC,CAAC,EALW,0BAA0B,0CAA1B,0BAA0B,QAKrC;AAED;;;GAGG;AACH,IAAY,0BASX;AATD,WAAY,0BAA0B;IACpC,oDAAoD;IACpD,6GAA8B,CAAA;IAC9B,kFAAkF;IAClF,uGAA2B,CAAA;IAC3B,iDAAiD;IACjD,qGAA0B,CAAA;IAC1B,0EAA0E;IAC1E,iHAAgC,CAAA;AAClC,CAAC,EATW,0BAA0B,0CAA1B,0BAA0B,QASrC;AAsBY,QAAA,sCAAsC,GAAyC;IAC1F;QACE,EAAE,EAAE,0BAA0B,CAAC,gBAAgB;QAC/C,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE,yEAAyE;QACtF,aAAa,EAAE,CAAC,mBAAmB,CAAC;KACrC;IACD;QACE,EAAE,EAAE,0BAA0B,CAAC,sBAAsB;QACrD,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE,mEAAmE;QAChF,aAAa,EAAE,CAAC,sBAAsB,CAAC;KACxC;CACF,CAAC;AAEW,QAAA,uCAAuC,GAAyC;IAC3F;QACE,EAAE,EAAE,0BAA0B,CAAC,qBAAqB;QACpD,WAAW,EAAE,yBAAyB;QACtC,WAAW,EAAE,yDAAyD;QACtE,aAAa,EAAE,CAAC,yBAAyB,CAAC;KAC3C;IACD;QACE,EAAE,EAAE,0BAA0B,CAAC,kBAAkB;QACjD,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE,8EAA8E;QAC3F,aAAa,EAAE,CAAC,QAAQ,CAAC;KAC1B;IACD;QACE,EAAE,EAAE,0BAA0B,CAAC,iBAAiB;QAChD,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE,+CAA+C;QAC5D,aAAa,EAAE,CAAC,QAAQ,CAAC;KAC1B;IACD;QACE,EAAE,EAAE,0BAA0B,CAAC,uBAAuB;QACtD,WAAW,EAAE,4BAA4B;QACzC,WAAW,EAAE,4EAA4E;QACzF,aAAa,EAAE,CAAC,sBAAsB,CAAC;KACxC;CACF,CAAC"}
@@ -0,0 +1,24 @@
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 interface CloudAccountValidationResult {
20
+ valid: boolean;
21
+ readAccess: CloudAccountReadAccessValidation;
22
+ writeAccess?: CloudAccountWriteAccessValidation;
23
+ }
24
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/accounts/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,4BAA4B,GAAG,WAAW,GAAG,WAAW,GAAG,cAAc,GAAG,WAAW,GAAG,aAAa,CAAC;AAEpH,MAAM,WAAW,gCAAgC;IAC/C,YAAY,EAAE,mBAAmB,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,4BAA4B,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gCAAgC;IAC/C,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,mBAAmB,EAAE,gCAAgC,EAAE,CAAC;CACzD;AAED,MAAM,WAAW,iCAAiC;IAChD,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,mBAAmB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,gCAAgC,CAAC;IAC7C,WAAW,CAAC,EAAE,iCAAiC,CAAC;CACjD"}
@@ -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"}