@spottoai/types-package 1.0.2-beta.22 → 1.0.2-beta.221

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 (215) hide show
  1. package/LICENSE +18 -40
  2. package/README.md +4 -13
  3. package/dist/accounts/accounts.d.ts +68 -3
  4. package/dist/accounts/accounts.d.ts.map +1 -1
  5. package/dist/accounts/azureSpSetup.d.ts +249 -0
  6. package/dist/accounts/azureSpSetup.d.ts.map +1 -0
  7. package/dist/accounts/azureSpSetup.js +3 -0
  8. package/dist/accounts/azureSpSetup.js.map +1 -0
  9. package/dist/accounts/index.d.ts +4 -0
  10. package/dist/accounts/index.d.ts.map +1 -1
  11. package/dist/accounts/index.js +4 -0
  12. package/dist/accounts/index.js.map +1 -1
  13. package/dist/accounts/readPermissions.d.ts +45 -0
  14. package/dist/accounts/readPermissions.d.ts.map +1 -0
  15. package/dist/accounts/readPermissions.js +70 -0
  16. package/dist/accounts/readPermissions.js.map +1 -0
  17. package/dist/accounts/validation.d.ts +24 -0
  18. package/dist/accounts/validation.d.ts.map +1 -0
  19. package/dist/accounts/validation.js +3 -0
  20. package/dist/accounts/validation.js.map +1 -0
  21. package/dist/accounts/writePermissions.d.ts +34 -0
  22. package/dist/accounts/writePermissions.d.ts.map +1 -0
  23. package/dist/accounts/writePermissions.js +37 -0
  24. package/dist/accounts/writePermissions.js.map +1 -0
  25. package/dist/ai/index.d.ts +975 -9
  26. package/dist/ai/index.d.ts.map +1 -1
  27. package/dist/ai/index.js +1 -1
  28. package/dist/ai/index.js.map +1 -1
  29. package/dist/azure/activityLogs.d.ts +65 -0
  30. package/dist/azure/activityLogs.d.ts.map +1 -0
  31. package/dist/azure/activityLogs.js +6 -0
  32. package/dist/azure/activityLogs.js.map +1 -0
  33. package/dist/azure/benefits.d.ts +137 -0
  34. package/dist/azure/benefits.d.ts.map +1 -0
  35. package/dist/azure/benefits.js +3 -0
  36. package/dist/azure/benefits.js.map +1 -0
  37. package/dist/azure/billingPlots.d.ts +249 -0
  38. package/dist/azure/billingPlots.d.ts.map +1 -0
  39. package/dist/azure/billingPlots.js +6 -0
  40. package/dist/azure/billingPlots.js.map +1 -0
  41. package/dist/azure/budgets.d.ts +4 -0
  42. package/dist/azure/budgets.d.ts.map +1 -1
  43. package/dist/azure/commitmentsPlanning.d.ts +159 -0
  44. package/dist/azure/commitmentsPlanning.d.ts.map +1 -0
  45. package/dist/azure/commitmentsPlanning.js +3 -0
  46. package/dist/azure/commitmentsPlanning.js.map +1 -0
  47. package/dist/azure/common.d.ts +34 -0
  48. package/dist/azure/common.d.ts.map +1 -1
  49. package/dist/azure/configs.d.ts +75 -2
  50. package/dist/azure/configs.d.ts.map +1 -1
  51. package/dist/azure/costEstimation.d.ts +78 -0
  52. package/dist/azure/costEstimation.d.ts.map +1 -0
  53. package/dist/azure/costEstimation.js +3 -0
  54. package/dist/azure/costEstimation.js.map +1 -0
  55. package/dist/azure/governance.d.ts +823 -0
  56. package/dist/azure/governance.d.ts.map +1 -0
  57. package/dist/azure/governance.js +14 -0
  58. package/dist/azure/governance.js.map +1 -0
  59. package/dist/azure/metrics.d.ts +75 -4
  60. package/dist/azure/metrics.d.ts.map +1 -1
  61. package/dist/azure/payloads.d.ts +116 -1
  62. package/dist/azure/payloads.d.ts.map +1 -1
  63. package/dist/azure/prices.d.ts +177 -0
  64. package/dist/azure/prices.d.ts.map +1 -1
  65. package/dist/azure/publicIpAddresses.d.ts +171 -0
  66. package/dist/azure/publicIpAddresses.d.ts.map +1 -0
  67. package/dist/azure/publicIpAddresses.js +6 -0
  68. package/dist/azure/publicIpAddresses.js.map +1 -0
  69. package/dist/azure/recommendationAudit.d.ts +113 -0
  70. package/dist/azure/recommendationAudit.d.ts.map +1 -0
  71. package/dist/azure/recommendationAudit.js +10 -0
  72. package/dist/azure/recommendationAudit.js.map +1 -0
  73. package/dist/azure/recommendationState.d.ts +92 -3
  74. package/dist/azure/recommendationState.d.ts.map +1 -1
  75. package/dist/azure/recommendations.d.ts +438 -6
  76. package/dist/azure/recommendations.d.ts.map +1 -1
  77. package/dist/azure/recommendations.js.map +1 -1
  78. package/dist/azure/relationships.d.ts +77 -0
  79. package/dist/azure/relationships.d.ts.map +1 -0
  80. package/dist/azure/relationships.js +3 -0
  81. package/dist/azure/relationships.js.map +1 -0
  82. package/dist/azure/reports.d.ts +248 -0
  83. package/dist/azure/reports.d.ts.map +1 -1
  84. package/dist/azure/reports.js +13 -0
  85. package/dist/azure/reports.js.map +1 -1
  86. package/dist/azure/resources.d.ts +80 -0
  87. package/dist/azure/resources.d.ts.map +1 -1
  88. package/dist/azure/reviewChecklist.d.ts +139 -0
  89. package/dist/azure/reviewChecklist.d.ts.map +1 -0
  90. package/dist/azure/reviewChecklist.js +3 -0
  91. package/dist/azure/reviewChecklist.js.map +1 -0
  92. package/dist/azure/security.d.ts +15 -1
  93. package/dist/azure/security.d.ts.map +1 -1
  94. package/dist/azure/serviceRetirement.d.ts +28 -0
  95. package/dist/azure/serviceRetirement.d.ts.map +1 -0
  96. package/dist/azure/serviceRetirement.js +3 -0
  97. package/dist/azure/serviceRetirement.js.map +1 -0
  98. package/dist/azure/serviceRetirementState.d.ts +22 -0
  99. package/dist/azure/serviceRetirementState.d.ts.map +1 -0
  100. package/dist/azure/serviceRetirementState.js +3 -0
  101. package/dist/azure/serviceRetirementState.js.map +1 -0
  102. package/dist/azure/storage-inventory.d.ts +241 -0
  103. package/dist/azure/storage-inventory.d.ts.map +1 -0
  104. package/dist/azure/storage-inventory.js +3 -0
  105. package/dist/azure/storage-inventory.js.map +1 -0
  106. package/dist/azure/subscriptions.d.ts +34 -13
  107. package/dist/azure/subscriptions.d.ts.map +1 -1
  108. package/dist/azure/views.d.ts +286 -3
  109. package/dist/azure/views.d.ts.map +1 -1
  110. package/dist/common/index.d.ts +1 -0
  111. package/dist/common/index.d.ts.map +1 -1
  112. package/dist/common/index.js +1 -0
  113. package/dist/common/index.js.map +1 -1
  114. package/dist/common/pagination.d.ts +3 -0
  115. package/dist/common/pagination.d.ts.map +1 -1
  116. package/dist/common/provider.d.ts +9 -0
  117. package/dist/common/provider.d.ts.map +1 -0
  118. package/dist/common/provider.js +9 -0
  119. package/dist/common/provider.js.map +1 -0
  120. package/dist/company/billingAccount.d.ts +30 -0
  121. package/dist/company/billingAccount.d.ts.map +1 -0
  122. package/dist/company/billingAccount.js +3 -0
  123. package/dist/company/billingAccount.js.map +1 -0
  124. package/dist/company/company.d.ts +44 -1
  125. package/dist/company/company.d.ts.map +1 -1
  126. package/dist/company/index.d.ts +1 -0
  127. package/dist/company/index.d.ts.map +1 -1
  128. package/dist/company/index.js +1 -0
  129. package/dist/company/index.js.map +1 -1
  130. package/dist/company/notification.d.ts +31 -1
  131. package/dist/company/notification.d.ts.map +1 -1
  132. package/dist/company/notification.js +24 -12
  133. package/dist/company/notification.js.map +1 -1
  134. package/dist/company/survey.d.ts +3 -0
  135. package/dist/company/survey.d.ts.map +1 -1
  136. package/dist/events/alertDefinitionRun.d.ts +23 -0
  137. package/dist/events/alertDefinitionRun.d.ts.map +1 -0
  138. package/dist/events/alertDefinitionRun.js +3 -0
  139. package/dist/events/alertDefinitionRun.js.map +1 -0
  140. package/dist/events/baseAlert.d.ts +130 -0
  141. package/dist/events/baseAlert.d.ts.map +1 -0
  142. package/dist/events/baseAlert.js +3 -0
  143. package/dist/events/baseAlert.js.map +1 -0
  144. package/dist/events/cost.d.ts +361 -0
  145. package/dist/events/cost.d.ts.map +1 -0
  146. package/dist/events/cost.js +3 -0
  147. package/dist/events/cost.js.map +1 -0
  148. package/dist/events/costAnomalies.d.ts +47 -0
  149. package/dist/events/costAnomalies.d.ts.map +1 -0
  150. package/dist/events/costAnomalies.js +3 -0
  151. package/dist/events/costAnomalies.js.map +1 -0
  152. package/dist/events/costViews.d.ts +23 -0
  153. package/dist/events/costViews.d.ts.map +1 -0
  154. package/dist/events/costViews.js +3 -0
  155. package/dist/events/costViews.js.map +1 -0
  156. package/dist/events/eventStatus.d.ts +67 -0
  157. package/dist/events/eventStatus.d.ts.map +1 -0
  158. package/dist/events/eventStatus.js +3 -0
  159. package/dist/events/eventStatus.js.map +1 -0
  160. package/dist/events/index.d.ts +7 -0
  161. package/dist/events/index.d.ts.map +1 -0
  162. package/dist/events/index.js +23 -0
  163. package/dist/events/index.js.map +1 -0
  164. package/dist/feedbacks/feedback.d.ts +9 -0
  165. package/dist/feedbacks/feedback.d.ts.map +1 -1
  166. package/dist/identity/apikey.d.ts +67 -0
  167. package/dist/identity/apikey.d.ts.map +1 -0
  168. package/dist/identity/apikey.js +3 -0
  169. package/dist/identity/apikey.js.map +1 -0
  170. package/dist/identity/index.d.ts +2 -0
  171. package/dist/identity/index.d.ts.map +1 -0
  172. package/dist/identity/index.js +18 -0
  173. package/dist/identity/index.js.map +1 -0
  174. package/dist/index.d.ts +19 -0
  175. package/dist/index.d.ts.map +1 -1
  176. package/dist/index.js +19 -1
  177. package/dist/index.js.map +1 -1
  178. package/dist/integrations/halo.d.ts +76 -0
  179. package/dist/integrations/halo.d.ts.map +1 -0
  180. package/dist/integrations/halo.js +3 -0
  181. package/dist/integrations/halo.js.map +1 -0
  182. package/dist/integrations/index.d.ts +3 -0
  183. package/dist/integrations/index.d.ts.map +1 -0
  184. package/dist/integrations/index.js +19 -0
  185. package/dist/integrations/index.js.map +1 -0
  186. package/dist/integrations/integrationTickets.d.ts +67 -0
  187. package/dist/integrations/integrationTickets.d.ts.map +1 -0
  188. package/dist/integrations/integrationTickets.js +3 -0
  189. package/dist/integrations/integrationTickets.js.map +1 -0
  190. package/dist/scheduler/index.d.ts +2 -0
  191. package/dist/scheduler/index.d.ts.map +1 -0
  192. package/dist/scheduler/index.js +18 -0
  193. package/dist/scheduler/index.js.map +1 -0
  194. package/dist/scheduler/scheduler.d.ts +110 -0
  195. package/dist/scheduler/scheduler.d.ts.map +1 -0
  196. package/dist/scheduler/scheduler.js +3 -0
  197. package/dist/scheduler/scheduler.js.map +1 -0
  198. package/dist/tags/index.d.ts +2 -0
  199. package/dist/tags/index.d.ts.map +1 -0
  200. package/dist/tags/index.js +18 -0
  201. package/dist/tags/index.js.map +1 -0
  202. package/dist/tags/tags.d.ts +26 -0
  203. package/dist/tags/tags.d.ts.map +1 -0
  204. package/dist/tags/tags.js +10 -0
  205. package/dist/tags/tags.js.map +1 -0
  206. package/dist/unknown/services.d.ts +12 -0
  207. package/dist/unknown/services.d.ts.map +1 -0
  208. package/dist/unknown/services.js +3 -0
  209. package/dist/unknown/services.js.map +1 -0
  210. package/dist/users/companyUser.d.ts +6 -0
  211. package/dist/users/companyUser.d.ts.map +1 -1
  212. package/dist/users/companyUser.js.map +1 -1
  213. package/dist/users/user.d.ts +15 -1
  214. package/dist/users/user.d.ts.map +1 -1
  215. package/package.json +2 -2
@@ -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"}
@@ -1,24 +1,113 @@
1
- export interface RecommendationState {
1
+ import type { ProviderName, ProviderScope } from '../common/provider';
2
+ export type CommentScope = 'resource' | 'providerScope';
3
+ export type ResourceRecommendationStatesQuery = {
4
+ providerName: ProviderName;
5
+ scope: 'resource';
2
6
  resourceId: string;
3
7
  recommendationId: string;
4
- subscriptionId: string;
8
+ providerScopeId?: never;
9
+ };
10
+ export type ProviderScopeRecommendationStatesQuery = {
11
+ providerName: ProviderName;
12
+ scope: 'providerScope';
13
+ providerScopeId: string;
14
+ recommendationId: string;
15
+ resourceId?: never;
16
+ };
17
+ /** @deprecated Use ProviderScopeRecommendationStatesQuery */
18
+ export type SubscriptionRecommendationStatesQuery = ProviderScopeRecommendationStatesQuery;
19
+ /** @deprecated Use GetRecommendationStatesQuery */
20
+ export type LegacyGetRecommendationStatesQuery = {
21
+ providerName: ProviderName;
22
+ resourceId: string;
23
+ recommendationId?: string;
24
+ providerScopeId?: string;
25
+ } | {
26
+ providerName: ProviderName;
27
+ recommendationId?: string;
28
+ resourceId?: string;
29
+ providerScopeId: string;
30
+ };
31
+ export type GetRecommendationStatesQuery = ResourceRecommendationStatesQuery | ProviderScopeRecommendationStatesQuery;
32
+ /** Shared recommendation-state properties across scope variants. */
33
+ export interface RecommendationStateBase extends ProviderScope {
34
+ /**
35
+ * Deprecated alias retained for compatibility with older UI consumers.
36
+ * Prefer `providerScopeId`.
37
+ */
38
+ subscriptionId?: string;
39
+ /** Row Key */
40
+ recommendationId: string;
41
+ /** Company ID to which the resource belongs */
5
42
  companyId: string;
6
43
  category: 'Cost' | 'Performance' | 'Security' | 'Compliance' | 'Reliability' | 'Operational Excellence';
7
44
  impact: 'High' | 'Medium' | 'Low';
8
45
  effort: 'High' | 'Medium' | 'Low';
46
+ /** true if the user has read the recommendation */
9
47
  read: boolean;
10
- status: 'Active' | 'Prioritized' | 'Dismissed' | 'Archived';
48
+ status: 'Active' | 'Prioritized' | 'Dismissed' | 'Archived' | 'Implementing' | 'Implemented' | 'Failed';
49
+ /** Date the recommendation was scheduled for */
11
50
  scheduledAt?: Date;
51
+ /** Date the recommendation state was created */
12
52
  createdAt: Date;
53
+ /** Date the recommendation state was last updated */
13
54
  updatedAt?: Date;
55
+ /** true if the recommendation is flagged */
14
56
  flagged: boolean;
57
+ /** Latest successful share provider (normalized lowercase channel name). */
58
+ integrationProviderName?: string;
59
+ /**
60
+ * Latest successful share reference.
61
+ * - `jira` | `halo` | `connectwise`: external ticket id
62
+ * - `email`: primary recipient email
63
+ * - `slack` | `teams`: unset
64
+ */
65
+ integrationTicketId?: string;
15
66
  comments: Comment[];
67
+ /** ID of the pinned comment */
68
+ pinnedCommentId?: string;
16
69
  history: RecommendationHistory[];
17
70
  custom: boolean;
71
+ /** Date when the status started */
72
+ statusStartAt?: string;
73
+ /** Date when the status is expected to change */
74
+ statusEndAt?: string;
18
75
  }
76
+ export interface ResourceRecommendationState extends RecommendationStateBase {
77
+ /**
78
+ * Scope discriminator for recommendation commentary identity.
79
+ * Resource scope identity is keyed by `resourceId + recommendationId`.
80
+ */
81
+ scope: 'resource';
82
+ /** Partition Key: resourceId (Hash) */
83
+ resourceId: string;
84
+ }
85
+ export interface ProviderScopeRecommendationState extends RecommendationStateBase {
86
+ /**
87
+ * Scope discriminator for recommendation commentary identity.
88
+ * Provider scope identity is keyed by `providerScopeId + recommendationId`.
89
+ */
90
+ scope: 'providerScope';
91
+ /** Provider-scope commentary must not rely on resource identity. */
92
+ resourceId?: never;
93
+ }
94
+ export type RecommendationState = ResourceRecommendationState | ProviderScopeRecommendationState;
95
+ /** @deprecated Use RecommendationState */
96
+ export type LegacyRecommendationState = RecommendationStateBase & {
97
+ scope?: CommentScope;
98
+ resourceId: string;
99
+ };
100
+ /** @deprecated Use RecommendationState */
101
+ export type RecommendationStateRecord = RecommendationState | LegacyRecommendationState;
102
+ export type ResourceRecommendationStateWriteRequest = ResourceRecommendationState;
103
+ export type ProviderScopeRecommendationStateWriteRequest = ProviderScopeRecommendationState;
104
+ /** @deprecated Use ProviderScopeRecommendationStateWriteRequest */
105
+ export type SubscriptionRecommendationStateWriteRequest = ProviderScopeRecommendationStateWriteRequest;
106
+ export type SaveRecommendationStateRequest = ResourceRecommendationStateWriteRequest | ProviderScopeRecommendationStateWriteRequest;
19
107
  export interface RecommendationHistory {
20
108
  userId: string;
21
109
  createdAt: Date;
110
+ /** restore means back from dismissed state */
22
111
  action: 'Dismiss' | 'Restore' | 'Prioritize' | 'Unprioritize' | 'Implement';
23
112
  reason?: string;
24
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"recommendationState.d.ts","sourceRoot":"","sources":["../../src/azure/recommendationState.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,mBAAmB;IAElC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,GAAG,wBAAwB,CAAC;IACxG,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;IAC5D,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,cAAc,GAAG,WAAW,CAAC;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"recommendationState.d.ts","sourceRoot":"","sources":["../../src/azure/recommendationState.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
- import { Comment, RecommendationHistory } from './recommendationState';
2
- import { SecurityImpact } from './security';
1
+ import type { Comment, CommentScope, RecommendationHistory } from './recommendationState';
2
+ import type { ProviderScope } from '../common/provider';
3
+ import { SecurityAssessmentStatus, SecurityImpact, SubscriptionSecurityStatus } from './security';
4
+ import { SubscriptionSummaryLite } from './subscriptions';
5
+ import { CostSavingsSummary, SavingsPotential, VmPricePerformanceInsights } from './views';
6
+ import type { HaloRoutingOverrides } from '../integrations/halo';
3
7
  export declare enum RecommendationCategory {
4
8
  Cost = "Cost",
5
9
  Performance = "Performance",
@@ -9,14 +13,182 @@ export declare enum RecommendationCategory {
9
13
  OperationalExcellence = "OperationalExcellence",
10
14
  OperationalExcellenceAlternative = "Operational Excellence"
11
15
  }
16
+ export type RecommendationPriorityTier = 'must_do' | 'normal';
17
+ export type EffortEstimateProfileName = 'clickops' | 'devops' | 'enterprise';
18
+ export interface RecommendationBaseScores {
19
+ cost_optimization: number;
20
+ security: number;
21
+ performance: number;
22
+ reliability: number;
23
+ compliance: number;
24
+ operational_excellence: number;
25
+ }
26
+ export interface RecommendationEffortEstimateBreakdown {
27
+ discovery: number;
28
+ implementation: number;
29
+ validation: number;
30
+ rollbackPlanning: number;
31
+ coordination: number;
32
+ }
33
+ export interface RecommendationEffortEstimateProfile {
34
+ effortHours: number;
35
+ breakdown: RecommendationEffortEstimateBreakdown;
36
+ reason: string;
37
+ }
38
+ export interface RecommendationEffortEstimateProfiles {
39
+ clickops: RecommendationEffortEstimateProfile;
40
+ devops: RecommendationEffortEstimateProfile;
41
+ enterprise: RecommendationEffortEstimateProfile;
42
+ }
43
+ export interface RecommendationBulkEffortEstimateProfile {
44
+ setupHours: number;
45
+ perResourceHours: number;
46
+ validationHours: number;
47
+ }
48
+ export interface RecommendationBulkEffortEstimateProfiles {
49
+ clickops: RecommendationBulkEffortEstimateProfile;
50
+ devops: RecommendationBulkEffortEstimateProfile;
51
+ enterprise: RecommendationBulkEffortEstimateProfile;
52
+ }
53
+ export interface RecommendationBulkEffortEstimates {
54
+ supported: boolean;
55
+ threshold: number;
56
+ profiles: RecommendationBulkEffortEstimateProfiles;
57
+ }
58
+ export interface RecommendationEffortEstimates {
59
+ profiles: RecommendationEffortEstimateProfiles;
60
+ bulk: RecommendationBulkEffortEstimates;
61
+ overridden?: boolean;
62
+ lastUpdatedAt?: string;
63
+ notes?: string;
64
+ }
65
+ export interface RecommendationActionImpactAssessment {
66
+ downtime: string;
67
+ dataLoss: string;
68
+ accessImpact: string;
69
+ dependencies: string;
70
+ }
71
+ export type RecommendationActionRiskLevel = 'low' | 'medium' | 'high';
72
+ export interface RecommendationActionRollback {
73
+ supported: boolean;
74
+ description: string;
75
+ limitations: string[];
76
+ }
77
+ export interface RecommendationActionCheck {
78
+ label: string;
79
+ description: string;
80
+ }
81
+ export interface RecommendationActionLink {
82
+ label: string;
83
+ url: string;
84
+ }
85
+ export interface RecommendationActionPostValidation {
86
+ label: string;
87
+ description: string;
88
+ expectedResult: string;
89
+ links?: RecommendationActionLink[];
90
+ }
91
+ export type RecommendationActionPermissionProvider = 'azure-rbac';
92
+ export type RecommendationActionPermissionScope = 'targetResource' | 'resourceGroup' | 'subscription' | 'tenant';
93
+ export interface RecommendationActionPermissionRequirement {
94
+ label: string;
95
+ name: string;
96
+ reason: string;
97
+ links?: RecommendationActionLink[];
98
+ }
99
+ export interface RecommendationActionLeastPrivilegeRole {
100
+ label: string;
101
+ description: string;
102
+ }
103
+ export interface RecommendationActionSuggestedRole {
104
+ label: string;
105
+ roleName: string;
106
+ roleDefinitionId?: string;
107
+ reason: string;
108
+ }
109
+ export interface RecommendationActionRequiredPermissions {
110
+ provider: RecommendationActionPermissionProvider;
111
+ scope: RecommendationActionPermissionScope;
112
+ actions: RecommendationActionPermissionRequirement[];
113
+ dataActions: RecommendationActionPermissionRequirement[];
114
+ leastPrivilegeRole?: RecommendationActionLeastPrivilegeRole;
115
+ suggestedRoles?: RecommendationActionSuggestedRole[];
116
+ }
117
+ export interface RecommendationActionDefinition {
118
+ verified: boolean;
119
+ title: string;
120
+ description: string;
121
+ estimatedDuration: string;
122
+ riskLevel: RecommendationActionRiskLevel;
123
+ requiredPermissions?: RecommendationActionRequiredPermissions;
124
+ impactAssessment: RecommendationActionImpactAssessment;
125
+ rollback: RecommendationActionRollback;
126
+ humanPreChecks: RecommendationActionCheck[];
127
+ postValidation: RecommendationActionPostValidation[];
128
+ }
129
+ export type RecommendationActionMetadata = RecommendationActionDefinition;
130
+ export type RecommendationImplementActionImpactAssessment = RecommendationActionImpactAssessment;
131
+ export type RecommendationImplementAction = RecommendationActionMetadata;
12
132
  export interface RecommendationResources {
13
133
  recommendation: CustomAzureRecommendation;
14
134
  resourceIds: string[];
15
135
  }
136
+ export type HddSsdMigrationTargetTier = 'standardSsd' | 'premiumSsd';
137
+ export type HddDiskPricingRedundancy = 'LRS' | 'ZRS';
138
+ export interface HddOsRetirementCurrentDiskPricing {
139
+ storageTier: 'standardHdd';
140
+ skuName: string;
141
+ pricingRedundancy?: HddDiskPricingRedundancy;
142
+ sizeGiB: number;
143
+ monthlyActual: number;
144
+ monthlyRetail: number;
145
+ }
146
+ export interface HddOsRetirementTargetDiskPricing {
147
+ storageTier: HddSsdMigrationTargetTier;
148
+ skuName: string;
149
+ pricingRedundancy?: HddDiskPricingRedundancy;
150
+ sizeGiB: number;
151
+ monthlyRetail: number;
152
+ }
153
+ export interface HddOsRetirementDiskRenderItem {
154
+ resourceId: string;
155
+ resourceName: string;
156
+ resourceType: string;
157
+ /** Canonical location key used for pricing lookup, e.g. "westus". */
158
+ pricingLocation?: string;
159
+ current: HddOsRetirementCurrentDiskPricing;
160
+ standardSsd: HddOsRetirementTargetDiskPricing & {
161
+ storageTier: 'standardSsd';
162
+ };
163
+ premiumSsd: HddOsRetirementTargetDiskPricing & {
164
+ storageTier: 'premiumSsd';
165
+ };
166
+ defaultSelection?: HddSsdMigrationTargetTier;
167
+ }
168
+ export interface HddOsRetirementRenderStrategyPayload {
169
+ retirementDate: string;
170
+ retirementLink: string;
171
+ currencyCode?: string;
172
+ currencySymbol?: string;
173
+ defaultTargetTier?: HddSsdMigrationTargetTier;
174
+ impactedDiskCount: number;
175
+ currentMonthlyActual: number;
176
+ currentMonthlyRetail: number;
177
+ standardSsdMonthlyRetail: number;
178
+ premiumSsdMonthlyRetail: number;
179
+ standardSsdMonthlyDelta: number;
180
+ premiumSsdMonthlyDelta: number;
181
+ disks: HddOsRetirementDiskRenderItem[];
182
+ }
183
+ export type RecommendationKnownRenderData = HddOsRetirementRenderStrategyPayload | VmPricePerformanceInsights;
184
+ export type AnyRecommendationRenderData = Record<string, unknown>;
16
185
  export interface Recommendation {
186
+ /** Business identity of a recommendation record (routing/state/sharing/dedupe). */
17
187
  id: string;
18
188
  name: string;
19
189
  category: RecommendationCategory;
190
+ subCategory?: string;
191
+ /** custom */
20
192
  type?: string;
21
193
  description?: string;
22
194
  remediation?: string;
@@ -30,28 +202,76 @@ export interface Recommendation {
30
202
  potentialBenefits?: string;
31
203
  effort?: string;
32
204
  effortReason?: string;
205
+ /** e.g. 10 hours */
206
+ effortHours?: number;
207
+ /** Detailed implementation estimates by delivery profile and bulk rollout mode. */
208
+ effortEstimates?: RecommendationEffortEstimates;
33
209
  risk?: string;
34
210
  riskReason?: string;
211
+ /** Could deprecate later */
35
212
  costImpact?: number;
36
213
  costImpactReason?: string;
37
- costImpactDetails?: CostImpactDetails;
214
+ /*** costImpactDetails is deprecated **/
38
215
  performanceImpact?: number;
39
216
  performanceImpactReason?: string;
40
217
  confidencePercentage?: number;
41
218
  confidenceReason?: string;
219
+ /** array of resources that have this recommendation */
42
220
  resources?: ResourceReference[];
221
+ /** only for security recommendations */
43
222
  securityImpactDetails?: SecurityImpact;
44
- subcategory?: string;
223
+ /** whether the recommendation has been resolved or not, eg, Security Assessment is "Healthy" should be true */
224
+ resolved?: boolean;
225
+ securityAssessmentStatuses?: SecurityAssessmentStatus[];
226
+ /** Deprecated fields, kept for compatibility */
45
227
  solution?: string;
46
228
  source?: string;
47
229
  service?: string;
230
+ /**
231
+ * Stored as string to allow JSON persistence.
232
+ * Uses a different name to avoid conflict with RecommendationWithState.createdAt.
233
+ */
48
234
  createdTime?: string;
235
+ /** Avoids conflict with RecommendationWithState.updatedAt */
49
236
  lastUpdatedTime?: string;
237
+ /** Business story properties */
238
+ headline: string;
239
+ bottomLine: string;
240
+ plainSummary: string;
241
+ quickSteps: string[];
242
+ businessOwner: string;
243
+ keyConstraint: string;
244
+ validationEvidence: string;
245
+ /** Technical playbook (only for multi-step implementations) */
246
+ technicalPlaybook?: string;
247
+ /** Static recommendation scoring metadata (library-level). */
248
+ baseScores?: RecommendationBaseScores;
249
+ overallBaseScore?: number;
250
+ overallBaseReason?: string;
251
+ priorityTier?: RecommendationPriorityTier;
252
+ /** Runtime scoring metadata (per company/tenant). */
253
+ adjustedScore?: number;
254
+ objectiveMultiplier?: number;
255
+ finalScore?: number;
256
+ /** UI display-only normalized score (0-100). */
257
+ normalizedScore?: number;
258
+ /** Cross-feature linkage IDs used for deep links and related views. */
259
+ linkingIds?: RecommendationLinkingIds;
260
+ /** Optional UI render payload consumed by recommendation-specific components. */
261
+ renderData?: RecommendationKnownRenderData | AnyRecommendationRenderData;
262
+ /** Optional action definition for implement-capable recommendations. */
263
+ action?: RecommendationActionMetadata;
50
264
  }
265
+ export interface RecommendationLinkingIds {
266
+ serviceRetirementIds?: string[];
267
+ }
268
+ /** Deprecated **/
51
269
  export interface CostImpactDetails {
270
+ /** e.g. "Saving Plan", "Reserved Instance", "Windows migration to Linux" */
52
271
  name: string;
53
272
  monthlySavings?: number;
54
273
  currentSpend?: number;
274
+ /** e.g. 20 for 20% */
55
275
  savingPercentage?: number;
56
276
  minMonthlySavings?: number;
57
277
  maxMonthlySavings?: number;
@@ -66,6 +286,18 @@ export interface RecommendationSummary {
66
286
  export interface RecommendationWithResources {
67
287
  recommendation: Recommendation;
68
288
  resources: RecommendationResource[];
289
+ savings?: SavingsPotential;
290
+ }
291
+ /**
292
+ * Contextual links from one recommendation row to other resources.
293
+ * Used to model "this disk belongs to that VM" style associations
294
+ * without changing which resource owns savings totals.
295
+ */
296
+ export interface RecommendationResourceAssociation {
297
+ id: string;
298
+ name?: string;
299
+ type?: string;
300
+ relationship?: ResourceRelationship;
69
301
  }
70
302
  export interface RecommendationResource {
71
303
  id: string;
@@ -73,9 +305,19 @@ export interface RecommendationResource {
73
305
  type: string;
74
306
  spend: number;
75
307
  spendAmortized: number;
308
+ savings?: SavingsPotential;
309
+ currency?: string;
310
+ currencySymbol?: string;
311
+ relationship?: ResourceRelationship;
312
+ associations?: RecommendationResourceAssociation[];
76
313
  }
77
314
  export interface RecommendationsView {
78
315
  recommendations: RecommendationWithResources[];
316
+ securityImpactDetails?: SecurityImpact[];
317
+ subscriptionSecurityStatus?: SubscriptionSecurityStatus;
318
+ savings?: SavingsPotential;
319
+ subscription: SubscriptionSummaryLite;
320
+ costSavingsSummary?: CostSavingsSummary;
79
321
  }
80
322
  export interface ResourceId {
81
323
  id: string;
@@ -83,7 +325,19 @@ export interface ResourceId {
83
325
  export interface ResourceReference {
84
326
  id: string;
85
327
  name: string;
328
+ type?: string;
329
+ savings?: SavingsPotential;
330
+ currency?: string;
331
+ currencySymbol?: string;
332
+ relationship?: ResourceRelationship;
333
+ associations?: RecommendationResourceAssociation[];
86
334
  }
335
+ export type ResourceRelationship = {
336
+ role?: 'primary' | 'related';
337
+ type?: string;
338
+ allocationId?: string;
339
+ metadata?: Record<string, string>;
340
+ };
87
341
  export interface ReliabilityRecommendation extends Recommendation {
88
342
  referenceID: string;
89
343
  resourceType: string;
@@ -91,7 +345,6 @@ export interface ReliabilityRecommendation extends Recommendation {
91
345
  service: string;
92
346
  }
93
347
  export interface CustomAzureRecommendation extends Recommendation {
94
- subcategory: string;
95
348
  service: string;
96
349
  source: string;
97
350
  fileName: string;
@@ -101,6 +354,7 @@ export interface RecommendationCollection {
101
354
  results: ResourceId[];
102
355
  }
103
356
  export interface AzureRecommendationLite {
357
+ /** e.g. Cost, Performance, Reliability, Security, Compliance, OperationalExcellence, Operational Excellence, HighAvailability */
104
358
  category: string;
105
359
  total: number;
106
360
  high: number;
@@ -108,13 +362,18 @@ export interface AzureRecommendationLite {
108
362
  low: number;
109
363
  }
110
364
  export interface RecommendationStats {
365
+ /** total number of recommendations in the subscription */
111
366
  total: number;
367
+ /** total number of high recommendations in the subscription */
112
368
  high: number;
369
+ /** total number of medium recommendations in the subscription */
113
370
  medium: number;
371
+ /** total number of low recommendations in the subscription */
114
372
  low: number;
115
373
  }
374
+ /** Recommendation with state information, name "ExtendedRecommendation" in the portal at the moment */
116
375
  export interface RecommendationWithState extends Recommendation {
117
- status?: 'Active' | 'Prioritized' | 'Postponed' | 'Dismissed' | 'Completed' | 'Archived';
376
+ status?: 'Active' | 'Prioritized' | 'Postponed' | 'Dismissed' | 'Completed' | 'Archived' | 'Implementing' | 'Implemented' | 'Failed';
118
377
  read?: boolean;
119
378
  scheduledAt?: Date;
120
379
  createdAt?: Date;
@@ -123,4 +382,177 @@ export interface RecommendationWithState extends Recommendation {
123
382
  comments?: Comment[];
124
383
  history?: RecommendationHistory[];
125
384
  }
385
+ export interface DismissRecommendationRequest extends RecommendationActionRequest {
386
+ dismissReason: string;
387
+ }
388
+ export interface ShareRecommendationRequest extends RecommendationActionRequest {
389
+ shareType: 'email' | 'slack' | 'teams' | 'jira' | 'halo' | 'connectwise';
390
+ email?: string;
391
+ halo?: HaloRoutingOverrides;
392
+ connectwise?: ConnectWiseRoutingFields;
393
+ }
394
+ export interface RecommendationActionRequest extends ProviderScope {
395
+ /** `providerScope` maps to subscription identity for Azure providers. */
396
+ scope?: CommentScope;
397
+ /** Optional cloud-account identity enriched by trusted server-side callers before queue publish. */
398
+ cloudAccountId?: string;
399
+ /** Optional user-provided reason for queue-backed actions such as implement. */
400
+ reason?: string;
401
+ recommendationId: string;
402
+ recommendationTitle?: string;
403
+ resourceIds: string[];
404
+ resourceGroupName?: string;
405
+ companyId: string;
406
+ byUserId?: string;
407
+ byUserDisplayName?: string;
408
+ }
409
+ export interface RecommendationActionResponse {
410
+ success: boolean;
411
+ message?: string;
412
+ affectedResources?: string[];
413
+ eventId?: string;
414
+ }
415
+ export interface ServiceRetirementRecommendation {
416
+ Id: string;
417
+ ServiceName: string;
418
+ RetiringFeature: string;
419
+ RetirementDate: string;
420
+ Link: string;
421
+ effort: string;
422
+ effortHours: number;
423
+ effortReason: string;
424
+ risk: string;
425
+ riskReason: string;
426
+ considerations: string;
427
+ confidencePercentage: number;
428
+ confidenceReason: string;
429
+ lastProcessedAt: string;
430
+ /** Related recommendation IDs for cross-navigation from retirement tracker. */
431
+ linkedRecommendationIds?: string[];
432
+ }
433
+ export interface JiraShareDetails {
434
+ projectKey?: string;
435
+ epicKey?: string;
436
+ label?: string;
437
+ }
438
+ export interface JiraIntegrationRequestBase {
439
+ siteUrl: string;
440
+ email: string;
441
+ secret?: string;
442
+ useStoredSecret?: boolean;
443
+ }
444
+ export interface JiraIntegrationTestPayload extends JiraIntegrationRequestBase {
445
+ projectKey?: string;
446
+ }
447
+ export interface JiraIntegrationEpicsPayload extends JiraIntegrationRequestBase {
448
+ projectKey: string;
449
+ maxResults?: number;
450
+ }
451
+ export interface JiraIntegrationProjectsPayload extends JiraIntegrationRequestBase {
452
+ maxResults?: number;
453
+ }
454
+ export interface JiraIntegrationLabelsPayload extends JiraIntegrationRequestBase {
455
+ projectKey: string;
456
+ maxResults?: number;
457
+ searchQuery?: string;
458
+ }
459
+ export interface JiraEntity {
460
+ id: string;
461
+ key: string;
462
+ name: string;
463
+ }
464
+ export interface JiraLabel {
465
+ name: string;
466
+ }
467
+ export interface ConnectWiseIntegrationRequestBase {
468
+ siteUrl: string;
469
+ companyId: string;
470
+ publicKey: string;
471
+ secret?: string;
472
+ useStoredSecret?: boolean;
473
+ credentialOwnerCompanyId?: string;
474
+ }
475
+ export type ConnectWiseId = string | number;
476
+ export interface ConnectWiseRoutingFields {
477
+ boardId?: ConnectWiseId;
478
+ boardName?: string;
479
+ statusId?: ConnectWiseId;
480
+ statusName?: string;
481
+ customerId?: ConnectWiseId;
482
+ customerName?: string;
483
+ projectId?: ConnectWiseId;
484
+ projectName?: string;
485
+ typeId?: ConnectWiseId;
486
+ typeName?: string;
487
+ subTypeId?: ConnectWiseId;
488
+ subTypeName?: string;
489
+ itemId?: ConnectWiseId;
490
+ itemName?: string;
491
+ priorityId?: ConnectWiseId;
492
+ priorityName?: string;
493
+ contactId?: ConnectWiseId;
494
+ contactName?: string;
495
+ agreementId?: ConnectWiseId;
496
+ agreementName?: string;
497
+ slaId?: ConnectWiseId;
498
+ slaName?: string;
499
+ source?: string;
500
+ }
501
+ export interface ConnectWiseIntegrationTestPayload extends ConnectWiseIntegrationRequestBase, ConnectWiseRoutingFields {
502
+ }
503
+ export type ConnectWiseBoardsPayload = ConnectWiseIntegrationRequestBase;
504
+ export type ConnectWiseCompaniesPayload = ConnectWiseIntegrationRequestBase;
505
+ export type ConnectWiseProjectsPayload = ConnectWiseIntegrationRequestBase;
506
+ export interface ConnectWiseStatusesPayload extends ConnectWiseIntegrationRequestBase {
507
+ boardId?: string;
508
+ boardName?: string;
509
+ }
510
+ export interface ConnectWiseTypesPayload extends ConnectWiseIntegrationRequestBase {
511
+ boardId?: string;
512
+ boardName?: string;
513
+ }
514
+ export interface ConnectWiseSubTypesPayload extends ConnectWiseIntegrationRequestBase {
515
+ boardId?: string;
516
+ boardName?: string;
517
+ typeId?: string;
518
+ typeName?: string;
519
+ }
520
+ export interface ConnectWiseItemsPayload extends ConnectWiseIntegrationRequestBase {
521
+ boardId?: string;
522
+ boardName?: string;
523
+ typeId?: string;
524
+ typeName?: string;
525
+ subTypeId?: string;
526
+ subTypeName?: string;
527
+ }
528
+ export interface ConnectWiseTypeSubTypeItemAssociationsPayload extends ConnectWiseIntegrationRequestBase {
529
+ boardId?: string;
530
+ boardName?: string;
531
+ }
532
+ export interface ConnectWisePrioritiesPayload extends ConnectWiseIntegrationRequestBase {
533
+ boardId?: string;
534
+ boardName?: string;
535
+ }
536
+ export interface ConnectWiseContactsPayload extends ConnectWiseIntegrationRequestBase {
537
+ searchQuery?: string;
538
+ }
539
+ export type ConnectWiseSourcesPayload = ConnectWiseIntegrationRequestBase;
540
+ export type ConnectWiseAgreementsPayload = ConnectWiseIntegrationRequestBase;
541
+ export type ConnectWiseSlasPayload = ConnectWiseIntegrationRequestBase;
542
+ export interface ConnectWiseEntity {
543
+ id: string | number;
544
+ name: string;
545
+ }
546
+ export interface ConnectWiseTypeSubTypeItemAssociation {
547
+ type?: ConnectWiseEntity;
548
+ subType?: ConnectWiseEntity;
549
+ item?: ConnectWiseEntity;
550
+ }
551
+ export interface ConnectWiseContact extends ConnectWiseEntity {
552
+ email?: string;
553
+ }
554
+ export interface ConnectWiseTicketMetadata extends ConnectWiseRoutingFields {
555
+ ticketId: ConnectWiseId;
556
+ ticketUrl?: string;
557
+ }
126
558
  //# sourceMappingURL=recommendations.d.ts.map