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

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 (257) 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/prices.d.ts +177 -0
  70. package/dist/azure/prices.d.ts.map +1 -1
  71. package/dist/azure/publicIpAddresses.d.ts +171 -0
  72. package/dist/azure/publicIpAddresses.d.ts.map +1 -0
  73. package/dist/azure/publicIpAddresses.js +6 -0
  74. package/dist/azure/publicIpAddresses.js.map +1 -0
  75. package/dist/azure/recommendationAudit.d.ts +113 -0
  76. package/dist/azure/recommendationAudit.d.ts.map +1 -0
  77. package/dist/azure/recommendationAudit.js +10 -0
  78. package/dist/azure/recommendationAudit.js.map +1 -0
  79. package/dist/azure/recommendationState.d.ts +93 -4
  80. package/dist/azure/recommendationState.d.ts.map +1 -1
  81. package/dist/azure/recommendationWorkflow.d.ts +124 -0
  82. package/dist/azure/recommendationWorkflow.d.ts.map +1 -0
  83. package/dist/azure/recommendationWorkflow.js +15 -0
  84. package/dist/azure/recommendationWorkflow.js.map +1 -0
  85. package/dist/azure/recommendations.d.ts +537 -6
  86. package/dist/azure/recommendations.d.ts.map +1 -1
  87. package/dist/azure/recommendations.js.map +1 -1
  88. package/dist/azure/relationships.d.ts +193 -0
  89. package/dist/azure/relationships.d.ts.map +1 -0
  90. package/dist/azure/relationships.js +6 -0
  91. package/dist/azure/relationships.js.map +1 -0
  92. package/dist/azure/reports.d.ts +279 -1
  93. package/dist/azure/reports.d.ts.map +1 -1
  94. package/dist/azure/reports.js +13 -0
  95. package/dist/azure/reports.js.map +1 -1
  96. package/dist/azure/resourceHealth.d.ts +264 -0
  97. package/dist/azure/resourceHealth.d.ts.map +1 -0
  98. package/dist/azure/resourceHealth.js +16 -0
  99. package/dist/azure/resourceHealth.js.map +1 -0
  100. package/dist/azure/resources.d.ts +80 -0
  101. package/dist/azure/resources.d.ts.map +1 -1
  102. package/dist/azure/reviewChecklist.d.ts +139 -0
  103. package/dist/azure/reviewChecklist.d.ts.map +1 -0
  104. package/dist/azure/reviewChecklist.js +3 -0
  105. package/dist/azure/reviewChecklist.js.map +1 -0
  106. package/dist/azure/security.d.ts +15 -1
  107. package/dist/azure/security.d.ts.map +1 -1
  108. package/dist/azure/serviceRetirement.d.ts +28 -0
  109. package/dist/azure/serviceRetirement.d.ts.map +1 -0
  110. package/dist/azure/serviceRetirement.js +3 -0
  111. package/dist/azure/serviceRetirement.js.map +1 -0
  112. package/dist/azure/serviceRetirementState.d.ts +22 -0
  113. package/dist/azure/serviceRetirementState.d.ts.map +1 -0
  114. package/dist/azure/serviceRetirementState.js +3 -0
  115. package/dist/azure/serviceRetirementState.js.map +1 -0
  116. package/dist/azure/storage-inventory.d.ts +241 -0
  117. package/dist/azure/storage-inventory.d.ts.map +1 -0
  118. package/dist/azure/storage-inventory.js +3 -0
  119. package/dist/azure/storage-inventory.js.map +1 -0
  120. package/dist/azure/subscriptions.d.ts +46 -15
  121. package/dist/azure/subscriptions.d.ts.map +1 -1
  122. package/dist/azure/views.d.ts +540 -4
  123. package/dist/azure/views.d.ts.map +1 -1
  124. package/dist/common/index.d.ts +1 -0
  125. package/dist/common/index.d.ts.map +1 -1
  126. package/dist/common/index.js +1 -0
  127. package/dist/common/index.js.map +1 -1
  128. package/dist/common/pagination.d.ts +3 -0
  129. package/dist/common/pagination.d.ts.map +1 -1
  130. package/dist/common/provider.d.ts +9 -0
  131. package/dist/common/provider.d.ts.map +1 -0
  132. package/dist/common/provider.js +9 -0
  133. package/dist/common/provider.js.map +1 -0
  134. package/dist/company/billingAccount.d.ts +30 -0
  135. package/dist/company/billingAccount.d.ts.map +1 -0
  136. package/dist/company/billingAccount.js +3 -0
  137. package/dist/company/billingAccount.js.map +1 -0
  138. package/dist/company/company.d.ts +60 -1
  139. package/dist/company/company.d.ts.map +1 -1
  140. package/dist/company/companyHierarchy.d.ts +53 -0
  141. package/dist/company/companyHierarchy.d.ts.map +1 -0
  142. package/dist/company/companyHierarchy.js +3 -0
  143. package/dist/company/companyHierarchy.js.map +1 -0
  144. package/dist/company/index.d.ts +2 -0
  145. package/dist/company/index.d.ts.map +1 -1
  146. package/dist/company/index.js +2 -0
  147. package/dist/company/index.js.map +1 -1
  148. package/dist/company/notification.d.ts +34 -1
  149. package/dist/company/notification.d.ts.map +1 -1
  150. package/dist/company/notification.js +27 -12
  151. package/dist/company/notification.js.map +1 -1
  152. package/dist/company/survey.d.ts +3 -0
  153. package/dist/company/survey.d.ts.map +1 -1
  154. package/dist/events/alertDefinitionRun.d.ts +23 -0
  155. package/dist/events/alertDefinitionRun.d.ts.map +1 -0
  156. package/dist/events/alertDefinitionRun.js +3 -0
  157. package/dist/events/alertDefinitionRun.js.map +1 -0
  158. package/dist/events/baseAlert.d.ts +130 -0
  159. package/dist/events/baseAlert.d.ts.map +1 -0
  160. package/dist/events/baseAlert.js +3 -0
  161. package/dist/events/baseAlert.js.map +1 -0
  162. package/dist/events/cost.d.ts +361 -0
  163. package/dist/events/cost.d.ts.map +1 -0
  164. package/dist/events/cost.js +3 -0
  165. package/dist/events/cost.js.map +1 -0
  166. package/dist/events/costAnomalies.d.ts +47 -0
  167. package/dist/events/costAnomalies.d.ts.map +1 -0
  168. package/dist/events/costAnomalies.js +3 -0
  169. package/dist/events/costAnomalies.js.map +1 -0
  170. package/dist/events/costViews.d.ts +23 -0
  171. package/dist/events/costViews.d.ts.map +1 -0
  172. package/dist/events/costViews.js +3 -0
  173. package/dist/events/costViews.js.map +1 -0
  174. package/dist/events/eventStatus.d.ts +67 -0
  175. package/dist/events/eventStatus.d.ts.map +1 -0
  176. package/dist/events/eventStatus.js +3 -0
  177. package/dist/events/eventStatus.js.map +1 -0
  178. package/dist/events/index.d.ts +7 -0
  179. package/dist/events/index.d.ts.map +1 -0
  180. package/dist/events/index.js +23 -0
  181. package/dist/events/index.js.map +1 -0
  182. package/dist/features-and-permissions/access.d.ts +137 -0
  183. package/dist/features-and-permissions/access.d.ts.map +1 -0
  184. package/dist/features-and-permissions/access.js +3 -0
  185. package/dist/features-and-permissions/access.js.map +1 -0
  186. package/dist/features-and-permissions/index.d.ts +2 -0
  187. package/dist/features-and-permissions/index.d.ts.map +1 -0
  188. package/dist/features-and-permissions/index.js +18 -0
  189. package/dist/features-and-permissions/index.js.map +1 -0
  190. package/dist/feedbacks/feedback.d.ts +9 -0
  191. package/dist/feedbacks/feedback.d.ts.map +1 -1
  192. package/dist/identity/apikey.d.ts +84 -0
  193. package/dist/identity/apikey.d.ts.map +1 -0
  194. package/dist/identity/apikey.js +3 -0
  195. package/dist/identity/apikey.js.map +1 -0
  196. package/dist/identity/index.d.ts +2 -0
  197. package/dist/identity/index.d.ts.map +1 -0
  198. package/dist/identity/index.js +18 -0
  199. package/dist/identity/index.js.map +1 -0
  200. package/dist/index.d.ts +23 -0
  201. package/dist/index.d.ts.map +1 -1
  202. package/dist/index.js +23 -1
  203. package/dist/index.js.map +1 -1
  204. package/dist/index.vite.d.ts +43 -0
  205. package/dist/index.vite.d.ts.map +1 -0
  206. package/dist/index.vite.js +59 -0
  207. package/dist/index.vite.js.map +1 -0
  208. package/dist/integrations/autotask.d.ts +90 -0
  209. package/dist/integrations/autotask.d.ts.map +1 -0
  210. package/dist/integrations/autotask.js +3 -0
  211. package/dist/integrations/autotask.js.map +1 -0
  212. package/dist/integrations/azureDevOps.d.ts +130 -0
  213. package/dist/integrations/azureDevOps.d.ts.map +1 -0
  214. package/dist/integrations/azureDevOps.js +3 -0
  215. package/dist/integrations/azureDevOps.js.map +1 -0
  216. package/dist/integrations/github.d.ts +96 -0
  217. package/dist/integrations/github.d.ts.map +1 -0
  218. package/dist/integrations/github.js +3 -0
  219. package/dist/integrations/github.js.map +1 -0
  220. package/dist/integrations/halo.d.ts +76 -0
  221. package/dist/integrations/halo.d.ts.map +1 -0
  222. package/dist/integrations/halo.js +3 -0
  223. package/dist/integrations/halo.js.map +1 -0
  224. package/dist/integrations/index.d.ts +6 -0
  225. package/dist/integrations/index.d.ts.map +1 -0
  226. package/dist/integrations/index.js +22 -0
  227. package/dist/integrations/index.js.map +1 -0
  228. package/dist/integrations/integrationTickets.d.ts +67 -0
  229. package/dist/integrations/integrationTickets.d.ts.map +1 -0
  230. package/dist/integrations/integrationTickets.js +3 -0
  231. package/dist/integrations/integrationTickets.js.map +1 -0
  232. package/dist/scheduler/index.d.ts +2 -0
  233. package/dist/scheduler/index.d.ts.map +1 -0
  234. package/dist/scheduler/index.js +18 -0
  235. package/dist/scheduler/index.js.map +1 -0
  236. package/dist/scheduler/scheduler.d.ts +257 -0
  237. package/dist/scheduler/scheduler.d.ts.map +1 -0
  238. package/dist/scheduler/scheduler.js +3 -0
  239. package/dist/scheduler/scheduler.js.map +1 -0
  240. package/dist/tags/index.d.ts +2 -0
  241. package/dist/tags/index.d.ts.map +1 -0
  242. package/dist/tags/index.js +18 -0
  243. package/dist/tags/index.js.map +1 -0
  244. package/dist/tags/tags.d.ts +37 -0
  245. package/dist/tags/tags.d.ts.map +1 -0
  246. package/dist/tags/tags.js +10 -0
  247. package/dist/tags/tags.js.map +1 -0
  248. package/dist/unknown/services.d.ts +12 -0
  249. package/dist/unknown/services.d.ts.map +1 -0
  250. package/dist/unknown/services.js +3 -0
  251. package/dist/unknown/services.js.map +1 -0
  252. package/dist/users/companyUser.d.ts +6 -0
  253. package/dist/users/companyUser.d.ts.map +1 -1
  254. package/dist/users/companyUser.js.map +1 -1
  255. package/dist/users/user.d.ts +16 -1
  256. package/dist/users/user.d.ts.map +1 -1
  257. package/package.json +3 -3
@@ -0,0 +1,826 @@
1
+ export declare const GOVERNANCE_REPORT_SCHEMA_VERSION: "2026-05-01.slim-v1";
2
+ export declare const GOVERNANCE_GRAPH_SCHEMA_VERSION: "2026-05-02.graph-v1";
3
+ export declare const GOVERNANCE_ACCESS_SCHEMA_VERSION: "2026-05-14.identity-access-v2";
4
+ export declare const TENANT_GOVERNANCE_REPORT_SCHEMA_VERSION: "2026-05-02.tenant-slim-v1";
5
+ export declare const TENANT_GOVERNANCE_GRAPH_SCHEMA_VERSION: "2026-05-02.tenant-graph-v1";
6
+ export declare const GOVERNANCE_REPORT_PORTAL_FILE: "governance.json.gz";
7
+ export declare const GOVERNANCE_GRAPH_PORTAL_FILE: "governance-graph.json.gz";
8
+ export declare const GOVERNANCE_ACCESS_PORTAL_FILE: "governance-access.json.gz";
9
+ export declare const TENANT_GOVERNANCE_REPORT_PORTAL_FILE: "governance.json.gz";
10
+ export declare const TENANT_GOVERNANCE_GRAPH_PORTAL_FILE: "governance-graph.json.gz";
11
+ export type GovernanceJsonPrimitive = string | number | boolean | null;
12
+ export type GovernanceJsonValue = GovernanceJsonPrimitive | GovernanceJsonValue[] | {
13
+ [key: string]: GovernanceJsonValue;
14
+ };
15
+ export type GovernanceJsonObject = {
16
+ [key: string]: GovernanceJsonValue;
17
+ };
18
+ export type GovernanceCoverageState = 'complete' | 'partial' | 'unavailable' | 'skipped';
19
+ export type GovernanceCoverageSource = 'tenant' | 'subscription' | 'query' | 'derived';
20
+ export interface GovernanceCoverageSection {
21
+ state: GovernanceCoverageState;
22
+ source: GovernanceCoverageSource;
23
+ message?: string;
24
+ reason?: string;
25
+ requiredPermissions?: string[];
26
+ diagnostics?: GovernanceCoverageDiagnostic[];
27
+ }
28
+ export interface GovernanceCoverage {
29
+ mode: 'tenant' | 'subscription';
30
+ hierarchy: GovernanceCoverageSection;
31
+ policy: GovernanceCoverageSection;
32
+ rbac: GovernanceCoverageSection;
33
+ principals: GovernanceCoverageSection;
34
+ findings: GovernanceCoverageSection;
35
+ }
36
+ export interface GovernanceManagementGroupPathEntry {
37
+ id: string;
38
+ name?: string;
39
+ displayName?: string;
40
+ label?: string;
41
+ pathLabel?: string;
42
+ resourceType?: string;
43
+ }
44
+ export type GovernanceScopeType = 'tenant' | 'managementGroup' | 'subscription' | 'resourceGroup' | 'resource' | 'unknown';
45
+ export interface GovernanceCoverageDiagnostic {
46
+ code?: string;
47
+ message?: string;
48
+ status?: number;
49
+ requestMethod?: string;
50
+ requestUrl?: string;
51
+ source?: GovernanceCoverageSource;
52
+ }
53
+ export interface GovernanceScopeReference {
54
+ id: string;
55
+ scopeType: GovernanceScopeType;
56
+ displayName?: string;
57
+ label?: string;
58
+ pathLabel?: string;
59
+ resourceType?: string;
60
+ tenantId?: string;
61
+ subscriptionId?: string;
62
+ subscriptionName?: string;
63
+ managementGroupId?: string;
64
+ managementGroupName?: string;
65
+ managementGroupDisplayName?: string;
66
+ managementGroupPath?: GovernanceManagementGroupPathEntry[];
67
+ resourceGroupName?: string;
68
+ resourceName?: string;
69
+ }
70
+ export interface GovernancePrincipalReference {
71
+ id: string;
72
+ displayName?: string;
73
+ principalType?: string;
74
+ appId?: string;
75
+ servicePrincipalType?: string;
76
+ userPrincipalName?: string;
77
+ userType?: string;
78
+ resolved?: boolean;
79
+ }
80
+ export interface GovernanceRoleDefinitionReference {
81
+ id?: string;
82
+ name?: string;
83
+ roleName?: string;
84
+ roleType?: string;
85
+ }
86
+ export interface GovernancePolicyAssignmentReference {
87
+ id?: string;
88
+ name?: string;
89
+ displayName?: string;
90
+ scope?: GovernanceScopeReference;
91
+ }
92
+ export type GovernancePolicyEffectResolutionSource = 'fixed' | 'assignmentParameter' | 'definitionParameterDefault' | 'definitionParameterAllowedValues' | 'raw' | 'unknown';
93
+ export interface GovernancePolicyEffectSummary {
94
+ raw?: string;
95
+ value?: string;
96
+ displayName?: string;
97
+ source: GovernancePolicyEffectResolutionSource;
98
+ parameterName?: string;
99
+ defaultValue?: string;
100
+ allowedValues?: string[];
101
+ }
102
+ export interface GovernanceFinding {
103
+ id: string;
104
+ category: 'hierarchy' | 'policy' | 'rbac' | 'identity' | 'coverage';
105
+ severity: 'critical' | 'high' | 'medium' | 'low' | 'info';
106
+ title: string;
107
+ summary: string;
108
+ scopeType: Exclude<GovernanceScopeType, 'unknown'>;
109
+ scopeId: string;
110
+ scopeReference?: GovernanceScopeReference;
111
+ relatedIds?: string[];
112
+ evidence?: GovernanceJsonObject;
113
+ }
114
+ export interface GovernanceReportScope {
115
+ tenantId: string;
116
+ subscriptionId: string;
117
+ managementGroupPath?: GovernanceManagementGroupPathEntry[];
118
+ generatedAt: string;
119
+ }
120
+ export interface GovernanceHierarchySubscription {
121
+ id: string;
122
+ displayName?: string;
123
+ quotaId?: string;
124
+ state?: string;
125
+ }
126
+ export interface GovernanceHierarchyCounts {
127
+ managementGroups?: number;
128
+ subscriptions?: number;
129
+ }
130
+ export interface GovernanceHierarchySection {
131
+ managementGroupPath?: GovernanceManagementGroupPathEntry[];
132
+ subscription?: GovernanceHierarchySubscription;
133
+ counts: GovernanceHierarchyCounts;
134
+ }
135
+ export interface GovernanceNamedCount {
136
+ name: string;
137
+ count: number;
138
+ }
139
+ export interface GovernancePolicySummary {
140
+ definitions: number;
141
+ setDefinitions: number;
142
+ assignments: number;
143
+ exemptions: number;
144
+ complianceExpiryExemptions: number;
145
+ locks: number;
146
+ tags: number;
147
+ securityContacts: number;
148
+ nonCompliantResources: number;
149
+ }
150
+ export interface GovernancePolicyDefinitionReference {
151
+ id?: string;
152
+ name?: string;
153
+ displayName?: string;
154
+ type?: 'policyDefinition' | 'policySetDefinition' | 'unknown';
155
+ category?: string;
156
+ version?: string;
157
+ effect?: string;
158
+ effectSummary?: GovernancePolicyEffectSummary;
159
+ }
160
+ export interface GovernancePolicyDefinitionCatalog {
161
+ definitions: number;
162
+ setDefinitions: number;
163
+ byPolicyType: GovernanceNamedCount[];
164
+ byCategory: GovernanceNamedCount[];
165
+ referencedDefinitions: GovernancePolicyDefinitionReference[];
166
+ }
167
+ export type GovernanceComplianceState = 'Compliant' | 'NonCompliant' | 'Unknown';
168
+ export interface GovernancePolicyAssignmentParameterUsage {
169
+ name: string;
170
+ valueType: 'array' | 'object' | 'string' | 'number' | 'boolean' | 'null' | 'undefined';
171
+ hasValue: boolean;
172
+ }
173
+ export interface GovernancePolicyAssignmentDefinition {
174
+ id?: string;
175
+ type: 'policyDefinition' | 'policySetDefinition' | 'unknown';
176
+ name?: string;
177
+ displayName?: string;
178
+ category?: string;
179
+ version?: string;
180
+ effect?: string;
181
+ effectSummary?: GovernancePolicyEffectSummary;
182
+ }
183
+ export interface GovernancePolicyAssignmentRemediation {
184
+ effect?: string;
185
+ effectSummary?: GovernancePolicyEffectSummary;
186
+ supportsRemediation: boolean;
187
+ hasManagedIdentity: boolean;
188
+ hasServicePrincipalIdentity: boolean;
189
+ principalId?: string;
190
+ principal?: GovernancePrincipalReference;
191
+ roleAssignmentCount: number;
192
+ roleAssignmentIds: string[];
193
+ }
194
+ export interface GovernanceSystemMetadata {
195
+ createdAt?: string;
196
+ createdBy?: string;
197
+ updatedAt?: string;
198
+ updatedBy?: string;
199
+ }
200
+ export interface GovernancePolicyAssignment {
201
+ id?: string;
202
+ name?: string;
203
+ displayName?: string;
204
+ description?: string;
205
+ assignmentScope?: string;
206
+ assignmentScopeReference?: GovernanceScopeReference;
207
+ scopeType?: GovernanceScopeType;
208
+ inherited?: boolean;
209
+ inheritedFrom?: string;
210
+ inheritedFromReference?: GovernanceScopeReference;
211
+ excludedScopes: string[];
212
+ excludedScopeReferences?: GovernanceScopeReference[];
213
+ excludedScopeCount: number;
214
+ hasExcludedScopes: boolean;
215
+ exemptionCount: number;
216
+ expiringExemptionCount: number;
217
+ hasExemptions: boolean;
218
+ nonCompliantResourceCount: number;
219
+ complianceEvidenceAvailable: boolean;
220
+ complianceState?: GovernanceComplianceState;
221
+ parameterNames: string[];
222
+ parameterCount: number;
223
+ hasParameters: boolean;
224
+ parametersUsed: GovernancePolicyAssignmentParameterUsage[];
225
+ definition?: GovernancePolicyAssignmentDefinition;
226
+ enforcementMode?: string;
227
+ remediation?: GovernancePolicyAssignmentRemediation;
228
+ systemMetadata?: GovernanceSystemMetadata;
229
+ }
230
+ export interface GovernancePolicyExemption {
231
+ id?: string;
232
+ name?: string;
233
+ displayName?: string;
234
+ description?: string;
235
+ scope?: string;
236
+ scopeReference?: GovernanceScopeReference;
237
+ exemptionCategory?: string;
238
+ policyAssignmentId?: string;
239
+ policyAssignment?: GovernancePolicyAssignmentReference;
240
+ policyDefinitionReferenceIds: string[];
241
+ expiresOn?: string;
242
+ expired?: boolean;
243
+ daysUntilExpiry?: number;
244
+ systemMetadata?: GovernanceSystemMetadata;
245
+ }
246
+ export interface GovernanceComplianceExpiryExemption {
247
+ id?: string;
248
+ resourceId?: string;
249
+ resource?: GovernanceScopeReference;
250
+ policyAssignmentId?: string;
251
+ policyAssignment?: GovernancePolicyAssignmentReference;
252
+ policyAssignmentDisplayName?: string;
253
+ policyDefinitionDisplayName?: string;
254
+ policyDefinition?: GovernancePolicyDefinitionReference;
255
+ policyDefinitionReferenceId?: string;
256
+ expiresOn?: string;
257
+ expired?: boolean;
258
+ daysUntilExpiry?: number;
259
+ }
260
+ export interface GovernanceLock {
261
+ id?: string;
262
+ name?: string;
263
+ level?: string;
264
+ notes?: string;
265
+ scope?: string;
266
+ scopeReference?: GovernanceScopeReference;
267
+ }
268
+ export interface GovernanceTagValue {
269
+ tagValue?: string;
270
+ count?: number;
271
+ }
272
+ export interface GovernanceTag {
273
+ id?: string;
274
+ name?: string;
275
+ count?: number;
276
+ values?: GovernanceTagValue[];
277
+ }
278
+ export interface GovernanceSecurityContact {
279
+ id?: string;
280
+ name?: string;
281
+ email?: string;
282
+ phone?: string;
283
+ alertNotifications?: string;
284
+ alertsToAdmins?: string;
285
+ }
286
+ export interface GovernanceNonCompliantResource {
287
+ id?: string;
288
+ resourceId?: string;
289
+ resource?: GovernanceScopeReference;
290
+ resourceType?: string;
291
+ policyAssignmentId?: string;
292
+ policyAssignment?: GovernancePolicyAssignmentReference;
293
+ policyDefinitionGuid?: string;
294
+ policyDefinitionReferenceId?: string;
295
+ policyAssignmentDisplayName?: string;
296
+ policyDefinitionDisplayName?: string;
297
+ policyDefinition?: GovernancePolicyDefinitionReference;
298
+ policySetDisplayName?: string;
299
+ policySetDefinition?: GovernancePolicyDefinitionReference;
300
+ effect?: string;
301
+ effectSummary?: GovernancePolicyEffectSummary;
302
+ assignmentScope?: string;
303
+ assignmentScopeReference?: GovernanceScopeReference;
304
+ }
305
+ export interface GovernanceNonComplianceSummary {
306
+ byAssignment: GovernanceNamedCount[];
307
+ byDefinition: GovernanceNamedCount[];
308
+ byEffect: GovernanceNamedCount[];
309
+ byResourceType: GovernanceNamedCount[];
310
+ }
311
+ export interface GovernancePolicySection {
312
+ summary: GovernancePolicySummary;
313
+ definitionCatalog?: GovernancePolicyDefinitionCatalog;
314
+ assignments: GovernancePolicyAssignment[];
315
+ exemptions: GovernancePolicyExemption[];
316
+ complianceExpiryExemptions?: GovernanceComplianceExpiryExemption[];
317
+ locks?: GovernanceLock[];
318
+ tags?: GovernanceTag[];
319
+ securityContacts?: GovernanceSecurityContact[];
320
+ nonCompliantResources?: GovernanceNonCompliantResource[];
321
+ nonComplianceSummary?: GovernanceNonComplianceSummary;
322
+ }
323
+ export interface GovernancePermissionSummary {
324
+ actionCount: number;
325
+ dataActionCount: number;
326
+ hasWildcardAction: boolean;
327
+ hasWildcardDataAction: boolean;
328
+ }
329
+ export interface GovernanceRoleDefinition {
330
+ id?: string;
331
+ name?: string;
332
+ roleName?: string;
333
+ roleType?: string;
334
+ description?: string;
335
+ assignableScopes: string[];
336
+ grantsRoleAssignmentWrite: boolean;
337
+ permissionSummary: GovernancePermissionSummary;
338
+ systemMetadata?: GovernanceSystemMetadata;
339
+ }
340
+ export interface GovernanceRoleDefinitionCatalog {
341
+ roleDefinitions: number;
342
+ customRoles: number;
343
+ byRoleType: GovernanceNamedCount[];
344
+ referencedRoles: GovernanceRoleDefinition[];
345
+ }
346
+ export interface GovernanceRoleAssignment {
347
+ id?: string;
348
+ name?: string;
349
+ roleDefinitionId?: string;
350
+ roleDefinition?: GovernanceRoleDefinitionReference;
351
+ roleName?: string;
352
+ roleType?: string;
353
+ principalId?: string;
354
+ principal?: GovernancePrincipalReference;
355
+ principalType?: string;
356
+ scope?: string;
357
+ scopeReference?: GovernanceScopeReference;
358
+ scopeType?: GovernanceScopeType;
359
+ broadScope: boolean;
360
+ privileged: boolean;
361
+ condition?: string;
362
+ conditionVersion?: string;
363
+ delegatedManagedIdentityResourceId?: string;
364
+ description?: string;
365
+ createdOn?: string;
366
+ updatedOn?: string;
367
+ createdBy?: string;
368
+ updatedBy?: string;
369
+ }
370
+ export interface GovernanceRbacSummary {
371
+ roleDefinitions: number;
372
+ roleAssignments: number;
373
+ privilegedAssignments: number;
374
+ customRoles: number;
375
+ }
376
+ export interface GovernanceRbacSection {
377
+ summary: GovernanceRbacSummary;
378
+ roleDefinitionCatalog?: GovernanceRoleDefinitionCatalog;
379
+ roleAssignments: GovernanceRoleAssignment[];
380
+ privilegedAssignments: GovernanceRoleAssignment[];
381
+ customRoles: GovernanceRoleDefinition[];
382
+ }
383
+ export interface GovernancePrincipal {
384
+ id?: string;
385
+ appId?: string;
386
+ displayName?: string;
387
+ servicePrincipalType?: string;
388
+ principalType?: string;
389
+ userType?: string;
390
+ accountEnabled?: boolean;
391
+ createdDateTime?: string;
392
+ }
393
+ export interface GovernancePrincipalsSection {
394
+ servicePrincipals?: GovernancePrincipal[];
395
+ applications?: GovernancePrincipal[];
396
+ managedIdentities?: GovernancePrincipal[];
397
+ users?: GovernancePrincipal[];
398
+ groups?: GovernancePrincipal[];
399
+ groupMemberships?: GovernanceGroupMembership[];
400
+ }
401
+ export type GovernanceAccessCoverageKey = 'roleAssignments' | 'roleDefinitions' | 'rolePermissionActions' | 'principals' | 'users' | 'groups' | 'groupMemberships' | 'nestedGroupMemberships' | 'resources' | 'denyAssignments' | 'denyAssignmentActions' | 'pimAssignments' | 'pimActiveAssignments' | 'pimEligibleAssignments';
402
+ export type GovernanceAccessCoverageSource = GovernanceCoverageSource | 'azure-rbac' | 'microsoft-graph' | 'portal' | 'portal:resources.json' | 'governance';
403
+ export interface GovernanceAccessCoverageSection {
404
+ state: GovernanceCoverageState;
405
+ source: GovernanceAccessCoverageSource | string;
406
+ reason?: string;
407
+ message?: string;
408
+ requiredPermissions?: string[];
409
+ }
410
+ export type GovernanceAccessCoverage = Partial<Record<GovernanceAccessCoverageKey, GovernanceAccessCoverageSection>>;
411
+ export type GovernanceAccessIdentityType = 'User' | 'Group' | 'ServicePrincipal' | 'ManagedIdentity' | 'Application' | string;
412
+ export type GovernanceAccessType = 'direct' | 'groupDerived' | 'pimActive' | 'pimEligible';
413
+ export type GovernanceAccessCollectionConfidence = 'high' | 'medium' | 'partial' | 'unknown';
414
+ export type GovernanceAccessPimAssignmentType = 'active' | 'eligible';
415
+ export type GovernanceAccessPimSource = 'roleAssignmentScheduleInstance' | 'roleEligibilityScheduleInstance' | 'roleAssignmentSchedule' | 'roleEligibilitySchedule' | 'roleAssignmentScheduleRequest' | 'roleEligibilityScheduleRequest' | string;
416
+ export type GovernanceAccessDenyAssignmentEffect = 'enforced' | 'audit' | string;
417
+ export interface GovernanceGroupMembership {
418
+ groupId: string;
419
+ memberId: string;
420
+ memberType?: GovernanceAccessIdentityType;
421
+ member?: GovernancePrincipalReference;
422
+ transitive?: boolean;
423
+ }
424
+ export interface GovernanceAccessScope {
425
+ tenantId: string;
426
+ subscriptionId: string;
427
+ displayName?: string;
428
+ quotaId?: string;
429
+ state?: string;
430
+ managementGroupPath?: GovernanceManagementGroupPathEntry[];
431
+ }
432
+ export interface GovernanceAccessIdentity {
433
+ id: string;
434
+ displayName?: string;
435
+ principalType?: GovernanceAccessIdentityType;
436
+ appId?: string;
437
+ servicePrincipalType?: string;
438
+ userPrincipalName?: string;
439
+ userType?: string;
440
+ resolved: boolean;
441
+ assignmentCount: number;
442
+ directAssignmentCount: number;
443
+ groupDerivedAssignmentCount: number;
444
+ privilegedAssignmentCount: number;
445
+ }
446
+ export interface GovernanceAccessPermissionBlock {
447
+ actions: string[];
448
+ notActions: string[];
449
+ dataActions: string[];
450
+ notDataActions: string[];
451
+ }
452
+ export interface GovernanceAccessRoleDefinition extends Omit<GovernanceRoleDefinition, 'permissionSummary'> {
453
+ permissions: GovernanceAccessPermissionBlock[];
454
+ permissionSummary: GovernancePermissionSummary;
455
+ }
456
+ export type GovernanceAccessAssignment = GovernanceRoleAssignment;
457
+ export interface GovernanceAccessDenyAssignmentPrincipal {
458
+ id: string;
459
+ type?: GovernanceAccessIdentityType;
460
+ principal?: GovernancePrincipalReference;
461
+ allPrincipals?: boolean;
462
+ }
463
+ export interface GovernanceAccessDenyAssignment {
464
+ id?: string;
465
+ name?: string;
466
+ denyAssignmentName?: string;
467
+ description?: string;
468
+ scope?: string;
469
+ scopeType?: GovernanceScopeType;
470
+ scopeReference?: GovernanceScopeReference;
471
+ broadScope: boolean;
472
+ permissions: GovernanceAccessPermissionBlock[];
473
+ principals: GovernanceAccessDenyAssignmentPrincipal[];
474
+ excludePrincipals: GovernanceAccessDenyAssignmentPrincipal[];
475
+ doNotApplyToChildScopes?: boolean;
476
+ isSystemProtected?: boolean;
477
+ denyAssignmentEffect?: GovernanceAccessDenyAssignmentEffect;
478
+ condition?: string;
479
+ conditionVersion?: string;
480
+ createdOn?: string;
481
+ updatedOn?: string;
482
+ createdBy?: string;
483
+ updatedBy?: string;
484
+ }
485
+ export interface GovernanceAccessSchedule {
486
+ startDateTime?: string;
487
+ endDateTime?: string;
488
+ duration?: string;
489
+ expirationType?: string;
490
+ }
491
+ export interface GovernanceAccessPimAssignment {
492
+ id?: string;
493
+ name?: string;
494
+ assignmentType: GovernanceAccessPimAssignmentType;
495
+ source: GovernanceAccessPimSource;
496
+ principalId?: string;
497
+ principal?: GovernancePrincipalReference;
498
+ principalType?: GovernanceAccessIdentityType;
499
+ roleDefinitionId?: string;
500
+ roleDefinition?: GovernanceRoleDefinitionReference;
501
+ roleName?: string;
502
+ roleType?: string;
503
+ scope?: string;
504
+ scopeType?: GovernanceScopeType;
505
+ scopeReference?: GovernanceScopeReference;
506
+ broadScope: boolean;
507
+ privileged: boolean;
508
+ condition?: string;
509
+ conditionVersion?: string;
510
+ schedule?: GovernanceAccessSchedule;
511
+ status?: string;
512
+ memberType?: string;
513
+ assignmentState?: string;
514
+ createdOn?: string;
515
+ updatedOn?: string;
516
+ createdBy?: string;
517
+ updatedBy?: string;
518
+ activatedUsingEligibilityId?: string;
519
+ linkedEligibleAssignmentId?: string;
520
+ }
521
+ export type GovernanceAccessResourceExpansionMode = 'none' | 'summary' | 'sample' | 'full';
522
+ export interface GovernanceAccessExpandedResources {
523
+ count: number;
524
+ expansionMode?: GovernanceAccessResourceExpansionMode;
525
+ sampleResourceIds?: string[];
526
+ sampleLimit?: number;
527
+ hasMore?: boolean;
528
+ }
529
+ export interface GovernanceAccessEffectiveAccessRow {
530
+ accessType: GovernanceAccessType;
531
+ assignmentId?: string;
532
+ pimAssignmentId?: string;
533
+ pimAssignmentType?: GovernanceAccessPimAssignmentType;
534
+ pimSource?: GovernanceAccessPimSource;
535
+ pimSchedule?: GovernanceAccessSchedule;
536
+ pimStatus?: string;
537
+ identityId?: string;
538
+ identityType?: GovernanceAccessIdentityType;
539
+ principalType?: GovernanceAccessIdentityType;
540
+ identity?: GovernancePrincipalReference;
541
+ viaGroupIds: string[];
542
+ viaGroup?: GovernancePrincipalReference;
543
+ roleDefinitionId?: string;
544
+ roleName?: string;
545
+ roleType?: string;
546
+ permissionSummary?: GovernancePermissionSummary;
547
+ scope?: string;
548
+ scopeType?: GovernanceScopeType;
549
+ scopeReference?: GovernanceScopeReference;
550
+ broadScope: boolean;
551
+ privileged: boolean;
552
+ condition?: string;
553
+ conditionVersion?: string;
554
+ collectionConfidence: GovernanceAccessCollectionConfidence;
555
+ limitations: string[];
556
+ appliedDenyAssignmentIds?: string[];
557
+ excludedDenyAssignmentIds?: string[];
558
+ expandedResources: GovernanceAccessExpandedResources;
559
+ }
560
+ export interface GovernanceAccessResourceReference {
561
+ id: string;
562
+ name?: string;
563
+ type?: string;
564
+ resourceGroup?: string;
565
+ location?: string;
566
+ subscriptionId?: string;
567
+ }
568
+ export interface GovernanceAccessLimitation {
569
+ code: string;
570
+ severity: 'info' | 'warning';
571
+ message: string;
572
+ affects: string[];
573
+ }
574
+ export interface GovernanceAccessSourceMetadata {
575
+ tenantFiles: string[];
576
+ subscriptionFiles: string[];
577
+ portalFiles?: string[];
578
+ rawFallbackFiles?: string[];
579
+ }
580
+ export interface GovernanceAccessArtifact {
581
+ schemaVersion: typeof GOVERNANCE_ACCESS_SCHEMA_VERSION;
582
+ generatedAt: string;
583
+ scope: GovernanceAccessScope;
584
+ coverage: GovernanceAccessCoverage;
585
+ identities: GovernanceAccessIdentity[];
586
+ roleDefinitions: GovernanceAccessRoleDefinition[];
587
+ assignments: GovernanceAccessAssignment[];
588
+ denyAssignments?: GovernanceAccessDenyAssignment[];
589
+ pimAssignments?: GovernanceAccessPimAssignment[];
590
+ effectiveAccess: GovernanceAccessEffectiveAccessRow[];
591
+ resourceIndex: GovernanceAccessResourceReference[];
592
+ limitations: GovernanceAccessLimitation[];
593
+ sourceMetadata: GovernanceAccessSourceMetadata;
594
+ }
595
+ export interface GovernanceReportSourceMetadata {
596
+ tenantFiles: string[];
597
+ subscriptionFiles: string[];
598
+ queryFiles: string[];
599
+ }
600
+ export interface GovernanceReportRelationshipsSummary {
601
+ managementGroupEdges?: number;
602
+ governanceEdgesAdded?: number;
603
+ }
604
+ export interface GovernanceReport {
605
+ schemaVersion: typeof GOVERNANCE_REPORT_SCHEMA_VERSION;
606
+ scope: GovernanceReportScope;
607
+ coverage: GovernanceCoverage;
608
+ hierarchy: GovernanceHierarchySection;
609
+ policy: GovernancePolicySection;
610
+ rbac: GovernanceRbacSection;
611
+ principals: GovernancePrincipalsSection;
612
+ findings: GovernanceFinding[];
613
+ relationships?: GovernanceReportRelationshipsSummary;
614
+ sourceMetadata: GovernanceReportSourceMetadata;
615
+ }
616
+ export type GovernanceGraphNodeType = 'managementGroup' | 'subscription' | 'policyDefinition' | 'policySetDefinition' | 'policyAssignment' | 'policyExemption' | 'roleDefinition' | 'roleAssignment' | 'principal';
617
+ export type GovernanceGraphEdgeType = 'contains' | 'assignedAt' | 'referencesDefinition' | 'setContainsPolicy' | 'groupedByControl' | 'exemptsAssignment' | 'grantsRole' | 'assignedToPrincipal' | 'remediationIdentity';
618
+ export interface GovernanceGraphScope {
619
+ tenantId?: string;
620
+ subscriptionId: string;
621
+ displayName?: string;
622
+ generatedAt: string;
623
+ managementGroupPath?: GovernanceManagementGroupPathEntry[];
624
+ }
625
+ export interface GovernanceGraphNode {
626
+ id: string;
627
+ type: GovernanceGraphNodeType;
628
+ sourceId: string;
629
+ label?: string;
630
+ display?: GovernanceGraphNodeDisplay;
631
+ data?: GovernanceJsonObject;
632
+ }
633
+ export interface GovernanceGraphNodeDisplay {
634
+ label: string;
635
+ subtitle?: string;
636
+ resourceType?: string;
637
+ scope?: GovernanceScopeReference;
638
+ principal?: GovernancePrincipalReference;
639
+ roleDefinition?: GovernanceRoleDefinitionReference;
640
+ effect?: GovernancePolicyEffectSummary;
641
+ }
642
+ export interface GovernanceGraphEdge {
643
+ id: string;
644
+ type: GovernanceGraphEdgeType;
645
+ from: string;
646
+ to: string;
647
+ data?: GovernanceJsonObject;
648
+ }
649
+ export interface GovernanceGraphStats {
650
+ nodes: number;
651
+ edges: number;
652
+ nodesByType: Partial<Record<GovernanceGraphNodeType, number>>;
653
+ edgesByType: Partial<Record<GovernanceGraphEdgeType, number>>;
654
+ }
655
+ export interface GovernanceGraphSourceMetadata {
656
+ tenantFiles: string[];
657
+ subscriptionFiles: string[];
658
+ }
659
+ export interface GovernanceGraphArtifact {
660
+ schemaVersion: typeof GOVERNANCE_GRAPH_SCHEMA_VERSION;
661
+ scope: GovernanceGraphScope;
662
+ coverage?: GovernanceCoverage;
663
+ sourceMetadata?: GovernanceGraphSourceMetadata;
664
+ nodes: GovernanceGraphNode[];
665
+ edges: GovernanceGraphEdge[];
666
+ stats: GovernanceGraphStats;
667
+ }
668
+ export interface TenantGovernanceScope {
669
+ tenantId: string;
670
+ displayName?: string;
671
+ primaryDomain?: string;
672
+ generatedAt: string;
673
+ }
674
+ export interface TenantGovernanceArtifactReference {
675
+ container?: string;
676
+ path: string;
677
+ }
678
+ export interface TenantGovernanceSubscriptionRollup {
679
+ policyAssignments: number;
680
+ policyExemptions: number;
681
+ roleAssignments: number;
682
+ privilegedAssignments: number;
683
+ customRoles: number;
684
+ findings: number;
685
+ criticalFindings: number;
686
+ highFindings: number;
687
+ nonCompliantResources: number;
688
+ }
689
+ export interface TenantGovernanceSubscriptionSummary {
690
+ subscriptionId: string;
691
+ displayName?: string;
692
+ state?: string;
693
+ quotaId?: string;
694
+ managementGroupPath?: GovernanceManagementGroupPathEntry[];
695
+ scopeReference?: GovernanceScopeReference;
696
+ governanceReportPath: string;
697
+ governanceGraphPath: string;
698
+ coverage?: GovernanceCoverage;
699
+ summary: TenantGovernanceSubscriptionRollup;
700
+ }
701
+ export interface TenantGovernanceManagementGroup {
702
+ id: string;
703
+ name?: string;
704
+ displayName?: string;
705
+ parentId?: string;
706
+ path?: GovernanceManagementGroupPathEntry[];
707
+ scopeReference?: GovernanceScopeReference;
708
+ childManagementGroupIds: string[];
709
+ subscriptionIds: string[];
710
+ summary?: TenantGovernanceScopeRollup;
711
+ }
712
+ export interface TenantGovernanceHierarchyCounts extends GovernanceHierarchyCounts {
713
+ tenantRootManagementGroups?: number;
714
+ }
715
+ export interface TenantGovernanceHierarchySection {
716
+ counts: TenantGovernanceHierarchyCounts;
717
+ managementGroups: TenantGovernanceManagementGroup[];
718
+ subscriptions: TenantGovernanceSubscriptionSummary[];
719
+ }
720
+ export interface TenantGovernanceScopeRollup {
721
+ scopeId: string;
722
+ scopeType: Exclude<GovernanceScopeType, 'resourceGroup' | 'resource' | 'unknown'>;
723
+ displayName?: string;
724
+ scopeReference?: GovernanceScopeReference;
725
+ policyAssignments: number;
726
+ policyExemptions: number;
727
+ roleAssignments: number;
728
+ privilegedAssignments: number;
729
+ findings: number;
730
+ nonCompliantResources: number;
731
+ }
732
+ export interface TenantGovernancePolicySummary extends GovernancePolicySummary {
733
+ tenantScopedAssignments: number;
734
+ managementGroupScopedAssignments: number;
735
+ subscriptionScopedAssignments: number;
736
+ }
737
+ export interface TenantGovernancePolicySection {
738
+ summary: TenantGovernancePolicySummary;
739
+ definitionCatalog?: GovernancePolicyDefinitionCatalog;
740
+ assignments: GovernancePolicyAssignment[];
741
+ exemptions: GovernancePolicyExemption[];
742
+ byScope: TenantGovernanceScopeRollup[];
743
+ }
744
+ export interface TenantGovernanceRbacSummary extends GovernanceRbacSummary {
745
+ tenantScopedAssignments: number;
746
+ managementGroupScopedAssignments: number;
747
+ subscriptionScopedAssignments: number;
748
+ }
749
+ export interface TenantGovernanceRbacSection {
750
+ summary: TenantGovernanceRbacSummary;
751
+ roleDefinitionCatalog?: GovernanceRoleDefinitionCatalog;
752
+ roleAssignments: GovernanceRoleAssignment[];
753
+ privilegedAssignments: GovernanceRoleAssignment[];
754
+ customRoles: GovernanceRoleDefinition[];
755
+ byScope: TenantGovernanceScopeRollup[];
756
+ }
757
+ export interface TenantGovernanceFindingsSummary {
758
+ total: number;
759
+ bySeverity: GovernanceNamedCount[];
760
+ byCategory: GovernanceNamedCount[];
761
+ byScopeType: GovernanceNamedCount[];
762
+ bySubscription: GovernanceNamedCount[];
763
+ byManagementGroup: GovernanceNamedCount[];
764
+ }
765
+ export interface TenantGovernanceSourceMetadata {
766
+ tenantFiles: string[];
767
+ subscriptionReports: TenantGovernanceArtifactReference[];
768
+ subscriptionGraphs: TenantGovernanceArtifactReference[];
769
+ queryFiles: string[];
770
+ }
771
+ export interface TenantGovernanceReport {
772
+ schemaVersion: typeof TENANT_GOVERNANCE_REPORT_SCHEMA_VERSION;
773
+ scope: TenantGovernanceScope;
774
+ coverage: GovernanceCoverage;
775
+ hierarchy: TenantGovernanceHierarchySection;
776
+ policy: TenantGovernancePolicySection;
777
+ rbac: TenantGovernanceRbacSection;
778
+ principals: GovernancePrincipalsSection;
779
+ findings: GovernanceFinding[];
780
+ findingSummary: TenantGovernanceFindingsSummary;
781
+ sourceMetadata: TenantGovernanceSourceMetadata;
782
+ }
783
+ export type TenantGovernanceGraphNodeType = 'tenant' | GovernanceGraphNodeType;
784
+ export type TenantGovernanceGraphEdgeType = GovernanceGraphEdgeType | 'inheritsFrom' | 'summarizes';
785
+ export interface TenantGovernanceGraphScope {
786
+ tenantId: string;
787
+ displayName?: string;
788
+ primaryDomain?: string;
789
+ generatedAt: string;
790
+ }
791
+ export interface TenantGovernanceGraphNode {
792
+ id: string;
793
+ type: TenantGovernanceGraphNodeType;
794
+ sourceId: string;
795
+ label?: string;
796
+ display?: GovernanceGraphNodeDisplay;
797
+ data?: GovernanceJsonObject;
798
+ }
799
+ export interface TenantGovernanceGraphEdge {
800
+ id: string;
801
+ type: TenantGovernanceGraphEdgeType;
802
+ from: string;
803
+ to: string;
804
+ data?: GovernanceJsonObject;
805
+ }
806
+ export interface TenantGovernanceGraphStats {
807
+ nodes: number;
808
+ edges: number;
809
+ nodesByType: Partial<Record<TenantGovernanceGraphNodeType, number>>;
810
+ edgesByType: Partial<Record<TenantGovernanceGraphEdgeType, number>>;
811
+ }
812
+ export interface TenantGovernanceGraphSourceMetadata {
813
+ tenantFiles: string[];
814
+ subscriptionReports: TenantGovernanceArtifactReference[];
815
+ subscriptionGraphs: TenantGovernanceArtifactReference[];
816
+ }
817
+ export interface TenantGovernanceGraphArtifact {
818
+ schemaVersion: typeof TENANT_GOVERNANCE_GRAPH_SCHEMA_VERSION;
819
+ scope: TenantGovernanceGraphScope;
820
+ coverage?: GovernanceCoverage;
821
+ sourceMetadata?: TenantGovernanceGraphSourceMetadata;
822
+ nodes: TenantGovernanceGraphNode[];
823
+ edges: TenantGovernanceGraphEdge[];
824
+ stats: TenantGovernanceGraphStats;
825
+ }
826
+ //# sourceMappingURL=governance.d.ts.map