@spottoai/types-package 1.0.2-dev1138.12 → 1.0.2-dev1138.14

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 (453) hide show
  1. package/README.md +3 -0
  2. package/dist/accounts/accounts.d.ts +13 -0
  3. package/dist/accounts/accounts.d.ts.map +1 -1
  4. package/dist/accounts/azureSpSetup.d.ts +5 -0
  5. package/dist/accounts/azureSpSetup.d.ts.map +1 -1
  6. package/dist/accounts/azureSpSetup.js.map +1 -1
  7. package/dist/accounts/index.d.ts +1 -0
  8. package/dist/accounts/index.d.ts.map +1 -1
  9. package/dist/accounts/index.js +1 -0
  10. package/dist/accounts/index.js.map +1 -1
  11. package/dist/accounts/subscriptionWriteAccess.d.ts +76 -0
  12. package/dist/accounts/subscriptionWriteAccess.d.ts.map +1 -0
  13. package/dist/accounts/subscriptionWriteAccess.js +119 -0
  14. package/dist/accounts/subscriptionWriteAccess.js.map +1 -0
  15. package/dist/accounts/writePermissions.d.ts +17 -1
  16. package/dist/accounts/writePermissions.d.ts.map +1 -1
  17. package/dist/accounts/writePermissions.js +47 -1
  18. package/dist/accounts/writePermissions.js.map +1 -1
  19. package/dist/ai/followUps.d.ts +16 -0
  20. package/dist/ai/followUps.d.ts.map +1 -0
  21. package/dist/ai/followUps.js +21 -0
  22. package/dist/ai/followUps.js.map +1 -0
  23. package/dist/ai/grounding.d.ts +42 -5
  24. package/dist/ai/grounding.d.ts.map +1 -1
  25. package/dist/ai/grounding.js +76 -8
  26. package/dist/ai/grounding.js.map +1 -1
  27. package/dist/ai/index.d.ts +4 -0
  28. package/dist/ai/index.d.ts.map +1 -1
  29. package/dist/ai/index.js +1 -0
  30. package/dist/ai/index.js.map +1 -1
  31. package/dist/aws/commitments-planning.d.ts +1 -1
  32. package/dist/aws/commitments-planning.d.ts.map +1 -1
  33. package/dist/aws/commitments-planning.js +1 -0
  34. package/dist/aws/commitments-planning.js.map +1 -1
  35. package/dist/aws/commitmentsPlanningValidation.d.ts +1 -1
  36. package/dist/aws/commitmentsPlanningValidation.d.ts.map +1 -1
  37. package/dist/aws/commitmentsPlanningValidation.js +26 -25
  38. package/dist/aws/commitmentsPlanningValidation.js.map +1 -1
  39. package/dist/aws/commitmentsPlanningView.d.ts +49 -0
  40. package/dist/aws/commitmentsPlanningView.d.ts.map +1 -0
  41. package/dist/aws/{pluginPublicArtifactEvidence.js → commitmentsPlanningView.js} +1 -1
  42. package/dist/aws/commitmentsPlanningView.js.map +1 -0
  43. package/dist/aws/index.d.ts +2 -14
  44. package/dist/aws/index.d.ts.map +1 -1
  45. package/dist/aws/index.js +2 -13
  46. package/dist/aws/index.js.map +1 -1
  47. package/dist/aws/organizationCommitments.d.ts +2 -1
  48. package/dist/aws/organizationCommitments.d.ts.map +1 -1
  49. package/dist/aws/organizationCommitments.js +2 -2
  50. package/dist/aws/organizationCommitments.js.map +1 -1
  51. package/dist/aws/organizationCommitmentsApiValidation.d.ts.map +1 -1
  52. package/dist/aws/organizationCommitmentsApiValidation.js +64 -64
  53. package/dist/aws/organizationCommitmentsApiValidation.js.map +1 -1
  54. package/dist/aws/organizationCommitmentsValidation.d.ts.map +1 -1
  55. package/dist/aws/organizationCommitmentsValidation.js +45 -44
  56. package/dist/aws/organizationCommitmentsValidation.js.map +1 -1
  57. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts.map +1 -1
  58. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js +79 -76
  59. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js.map +1 -1
  60. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.d.ts +1 -2
  61. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.d.ts.map +1 -1
  62. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js.map +1 -1
  63. package/dist/aws/publicArtifacts.d.ts +2 -37
  64. package/dist/aws/publicArtifacts.d.ts.map +1 -1
  65. package/dist/aws/publicArtifacts.js +3 -1
  66. package/dist/aws/publicArtifacts.js.map +1 -1
  67. package/dist/aws/relationships.d.ts +5 -3
  68. package/dist/aws/relationships.d.ts.map +1 -1
  69. package/dist/aws/relationships.js +18 -3
  70. package/dist/aws/relationships.js.map +1 -1
  71. package/dist/aws/requests.d.ts +35 -3
  72. package/dist/aws/requests.d.ts.map +1 -1
  73. package/dist/aws/requests.js +5 -3
  74. package/dist/aws/requests.js.map +1 -1
  75. package/dist/aws/resourceGraph.d.ts +14 -0
  76. package/dist/aws/resourceGraph.d.ts.map +1 -0
  77. package/dist/aws/resourceGraph.js +68 -0
  78. package/dist/aws/resourceGraph.js.map +1 -0
  79. package/dist/aws/validationHelpers.d.ts +8 -0
  80. package/dist/aws/validationHelpers.d.ts.map +1 -0
  81. package/dist/aws/validationHelpers.js +54 -0
  82. package/dist/aws/validationHelpers.js.map +1 -0
  83. package/dist/azure/commitmentsPlanning.d.ts +15 -46
  84. package/dist/azure/commitmentsPlanning.d.ts.map +1 -1
  85. package/dist/azure/commitmentsPlanning.js +9 -0
  86. package/dist/azure/commitmentsPlanning.js.map +1 -1
  87. package/dist/azure/commitmentsPlanningValidation.d.ts +18 -0
  88. package/dist/azure/commitmentsPlanningValidation.d.ts.map +1 -0
  89. package/dist/azure/commitmentsPlanningValidation.js +50 -0
  90. package/dist/azure/commitmentsPlanningValidation.js.map +1 -0
  91. package/dist/azure/dataProtection.d.ts +40 -0
  92. package/dist/azure/dataProtection.d.ts.map +1 -1
  93. package/dist/azure/governance.d.ts +5 -0
  94. package/dist/azure/governance.d.ts.map +1 -1
  95. package/dist/azure/metrics.d.ts +2 -27
  96. package/dist/azure/metrics.d.ts.map +1 -1
  97. package/dist/azure/payloads.d.ts +24 -0
  98. package/dist/azure/payloads.d.ts.map +1 -1
  99. package/dist/azure/payloads.js +87 -0
  100. package/dist/azure/payloads.js.map +1 -1
  101. package/dist/azure/recommendationTracks.d.ts +1 -1
  102. package/dist/azure/recommendationTracks.d.ts.map +1 -1
  103. package/dist/azure/reportEvidence.d.ts +192 -11
  104. package/dist/azure/reportEvidence.d.ts.map +1 -1
  105. package/dist/azure/reportEvidence.js +9 -1
  106. package/dist/azure/reportEvidence.js.map +1 -1
  107. package/dist/azure/reportEvidenceValidation.d.ts.map +1 -1
  108. package/dist/azure/reportEvidenceValidation.js +201 -5
  109. package/dist/azure/reportEvidenceValidation.js.map +1 -1
  110. package/dist/azure/reportEvidenceValidationHelpers.d.ts +3 -16
  111. package/dist/azure/reportEvidenceValidationHelpers.d.ts.map +1 -1
  112. package/dist/azure/reportEvidenceValidationHelpers.js +80 -92
  113. package/dist/azure/reportEvidenceValidationHelpers.js.map +1 -1
  114. package/dist/azure/resilienceFacts.d.ts +100 -0
  115. package/dist/azure/resilienceFacts.d.ts.map +1 -0
  116. package/dist/azure/resilienceFacts.js +20 -0
  117. package/dist/azure/resilienceFacts.js.map +1 -0
  118. package/dist/azure/resilienceFactsValidation.d.ts +4 -0
  119. package/dist/azure/resilienceFactsValidation.d.ts.map +1 -0
  120. package/dist/azure/resilienceFactsValidation.js +70 -0
  121. package/dist/azure/resilienceFactsValidation.js.map +1 -0
  122. package/dist/azure/savings.d.ts +4 -2
  123. package/dist/azure/savings.d.ts.map +1 -1
  124. package/dist/azure/serviceRetirement.d.ts +21 -2
  125. package/dist/azure/serviceRetirement.d.ts.map +1 -1
  126. package/dist/azure/views.d.ts +24 -1
  127. package/dist/azure/views.d.ts.map +1 -1
  128. package/dist/azure/views.js.map +1 -1
  129. package/dist/common/boundedRows.d.ts +7 -0
  130. package/dist/common/boundedRows.d.ts.map +1 -0
  131. package/dist/{scheduler/scheduler.js → common/boundedRows.js} +1 -1
  132. package/dist/common/boundedRows.js.map +1 -0
  133. package/dist/common/index.d.ts +3 -0
  134. package/dist/common/index.d.ts.map +1 -1
  135. package/dist/common/index.js +3 -0
  136. package/dist/common/index.js.map +1 -1
  137. package/dist/common/metricStats.d.ts +29 -0
  138. package/dist/common/metricStats.d.ts.map +1 -0
  139. package/dist/{scheduler/bastionSchedule.js → common/metricStats.js} +1 -1
  140. package/dist/common/metricStats.js.map +1 -0
  141. package/dist/common/provider.d.ts +2 -0
  142. package/dist/common/provider.d.ts.map +1 -1
  143. package/dist/common/relationships.d.ts +3 -3
  144. package/dist/common/relationships.d.ts.map +1 -1
  145. package/dist/common/resourceGraph.d.ts +137 -0
  146. package/dist/common/resourceGraph.d.ts.map +1 -0
  147. package/dist/common/resourceGraph.js +17 -0
  148. package/dist/common/resourceGraph.js.map +1 -0
  149. package/dist/common/resourceGraphValidation.d.ts +30 -0
  150. package/dist/common/resourceGraphValidation.d.ts.map +1 -0
  151. package/dist/common/resourceGraphValidation.js +369 -0
  152. package/dist/common/resourceGraphValidation.js.map +1 -0
  153. package/dist/common/resourceIdentity.d.ts +28 -0
  154. package/dist/common/resourceIdentity.d.ts.map +1 -0
  155. package/dist/common/resourceIdentity.js +35 -0
  156. package/dist/common/resourceIdentity.js.map +1 -0
  157. package/dist/common/sha256.d.ts +2 -0
  158. package/dist/common/sha256.d.ts.map +1 -1
  159. package/dist/common/sha256.js +3 -0
  160. package/dist/common/sha256.js.map +1 -1
  161. package/dist/common/utilizationStories.d.ts +695 -0
  162. package/dist/common/utilizationStories.d.ts.map +1 -0
  163. package/dist/common/utilizationStories.js +21 -0
  164. package/dist/common/utilizationStories.js.map +1 -0
  165. package/dist/common/utilizationStoriesValidation.d.ts +60 -0
  166. package/dist/common/utilizationStoriesValidation.d.ts.map +1 -0
  167. package/dist/common/utilizationStoriesValidation.js +762 -0
  168. package/dist/common/utilizationStoriesValidation.js.map +1 -0
  169. package/dist/common/validationHelpers.d.ts +37 -0
  170. package/dist/common/validationHelpers.d.ts.map +1 -0
  171. package/dist/common/validationHelpers.js +147 -0
  172. package/dist/common/validationHelpers.js.map +1 -0
  173. package/dist/esm/accounts/index.js +1 -0
  174. package/dist/esm/accounts/subscriptionWriteAccess.js +112 -0
  175. package/dist/esm/accounts/writePermissions.js +46 -0
  176. package/dist/esm/ai/followUps.js +16 -0
  177. package/dist/esm/ai/grounding.js +74 -7
  178. package/dist/esm/ai/index.js +1 -0
  179. package/dist/esm/aws/commitments-planning.js +1 -0
  180. package/dist/esm/aws/commitmentsPlanningValidation.js +2 -1
  181. package/dist/esm/aws/index.js +2 -13
  182. package/dist/esm/aws/organizationCommitments.js +2 -2
  183. package/dist/esm/aws/organizationCommitmentsApiValidation.js +5 -5
  184. package/dist/esm/aws/organizationCommitmentsValidation.js +2 -1
  185. package/dist/esm/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js +8 -5
  186. package/dist/esm/aws/publicArtifacts.js +2 -0
  187. package/dist/esm/aws/relationships.js +4 -1
  188. package/dist/esm/aws/requests.js +4 -2
  189. package/dist/esm/aws/resourceGraph.js +63 -0
  190. package/dist/esm/aws/validationHelpers.js +46 -0
  191. package/dist/esm/azure/commitmentsPlanning.js +8 -1
  192. package/dist/esm/azure/commitmentsPlanningValidation.js +39 -0
  193. package/dist/esm/azure/payloads.js +84 -1
  194. package/dist/esm/azure/reportEvidence.js +8 -0
  195. package/dist/esm/azure/reportEvidenceValidation.js +202 -6
  196. package/dist/esm/azure/reportEvidenceValidationHelpers.js +7 -19
  197. package/dist/esm/azure/resilienceFacts.js +16 -0
  198. package/dist/esm/azure/resilienceFactsValidation.js +64 -0
  199. package/dist/esm/common/index.js +3 -0
  200. package/dist/esm/common/resourceGraph.js +13 -0
  201. package/dist/esm/common/resourceGraphValidation.js +365 -0
  202. package/dist/esm/common/resourceIdentity.js +24 -0
  203. package/dist/esm/common/sha256.js +2 -0
  204. package/dist/esm/common/utilizationStories.js +17 -0
  205. package/dist/esm/common/utilizationStoriesValidation.js +718 -0
  206. package/dist/esm/common/validationHelpers.js +115 -0
  207. package/dist/esm/entries/relationships.js +2 -2
  208. package/dist/esm/index.js +5 -0
  209. package/dist/esm/index.vite.js +1 -0
  210. package/dist/esm/reporting/jobs/index.js +13 -0
  211. package/dist/esm/reporting/jobs/reportJobIdentity.js +76 -0
  212. package/dist/esm/reporting/jobs/reportJobMessages.js +47 -0
  213. package/dist/esm/reporting/jobs/reportJobRow.js +264 -0
  214. package/dist/esm/reporting/jobs/reportJobSpec.js +295 -0
  215. package/dist/esm/reporting/jobs/reportJobStatus.js +87 -0
  216. package/dist/esm/reporting/shared/reportTableEntities.js +41 -0
  217. package/dist/esm/reporting/shared/reportingDigest.js +57 -0
  218. package/dist/esm/reporting/shared/reportingIds.js +88 -0
  219. package/dist/esm/reporting/shared/reportingPaths.js +23 -0
  220. package/dist/esm/scheduler/index.js +4 -4
  221. package/dist/esm/scheduler/resourceStrategy.js +2 -0
  222. package/dist/esm/scheduler/resourceStrategyCapabilityValidation.js +265 -0
  223. package/dist/esm/scheduler/resourceStrategyContracts.js +20 -0
  224. package/dist/esm/scheduler/resourceStrategyFinancialValidation.js +145 -0
  225. package/dist/esm/scheduler/resourceStrategyPermissionValidation.js +190 -0
  226. package/dist/esm/scheduler/resourceStrategyScheduleValidation.js +506 -0
  227. package/dist/esm/scheduler/resourceStrategyValidation.js +4 -0
  228. package/dist/esm/scheduler/resourceStrategyValidationShared.js +261 -0
  229. package/dist/esm/scheduler/schedulerValidation.js +372 -0
  230. package/dist/esm/scheduler/weeklyAvailabilityFixtures.js +140 -0
  231. package/dist/index.d.ts +5 -0
  232. package/dist/index.d.ts.map +1 -1
  233. package/dist/index.js +5 -0
  234. package/dist/index.js.map +1 -1
  235. package/dist/index.vite.d.ts +1 -0
  236. package/dist/index.vite.d.ts.map +1 -1
  237. package/dist/index.vite.js +1 -0
  238. package/dist/index.vite.js.map +1 -1
  239. package/dist/reporting/jobs/index.d.ts +14 -0
  240. package/dist/reporting/jobs/index.d.ts.map +1 -0
  241. package/dist/reporting/jobs/index.js +45 -0
  242. package/dist/reporting/jobs/index.js.map +1 -0
  243. package/dist/reporting/jobs/reportJobIdentity.d.ts +44 -0
  244. package/dist/reporting/jobs/reportJobIdentity.d.ts.map +1 -0
  245. package/dist/reporting/jobs/reportJobIdentity.js +88 -0
  246. package/dist/reporting/jobs/reportJobIdentity.js.map +1 -0
  247. package/dist/reporting/jobs/reportJobMessages.d.ts +30 -0
  248. package/dist/reporting/jobs/reportJobMessages.d.ts.map +1 -0
  249. package/dist/reporting/jobs/reportJobMessages.js +54 -0
  250. package/dist/reporting/jobs/reportJobMessages.js.map +1 -0
  251. package/dist/reporting/jobs/reportJobRow.d.ts +98 -0
  252. package/dist/reporting/jobs/reportJobRow.d.ts.map +1 -0
  253. package/dist/reporting/jobs/reportJobRow.js +270 -0
  254. package/dist/reporting/jobs/reportJobRow.js.map +1 -0
  255. package/dist/reporting/jobs/reportJobSpec.d.ts +92 -0
  256. package/dist/reporting/jobs/reportJobSpec.d.ts.map +1 -0
  257. package/dist/reporting/jobs/reportJobSpec.js +304 -0
  258. package/dist/reporting/jobs/reportJobSpec.js.map +1 -0
  259. package/dist/reporting/jobs/reportJobStatus.d.ts +60 -0
  260. package/dist/reporting/jobs/reportJobStatus.d.ts.map +1 -0
  261. package/dist/reporting/jobs/reportJobStatus.js +98 -0
  262. package/dist/reporting/jobs/reportJobStatus.js.map +1 -0
  263. package/dist/reporting/shared/reportTableEntities.d.ts +23 -0
  264. package/dist/reporting/shared/reportTableEntities.d.ts.map +1 -0
  265. package/dist/reporting/shared/reportTableEntities.js +47 -0
  266. package/dist/reporting/shared/reportTableEntities.js.map +1 -0
  267. package/dist/reporting/shared/reportingDigest.d.ts +6 -0
  268. package/dist/reporting/shared/reportingDigest.d.ts.map +1 -0
  269. package/dist/reporting/shared/reportingDigest.js +63 -0
  270. package/dist/reporting/shared/reportingDigest.js.map +1 -0
  271. package/dist/reporting/shared/reportingIds.d.ts +34 -0
  272. package/dist/reporting/shared/reportingIds.d.ts.map +1 -0
  273. package/dist/reporting/shared/reportingIds.js +102 -0
  274. package/dist/reporting/shared/reportingIds.js.map +1 -0
  275. package/dist/reporting/shared/reportingPaths.d.ts +14 -0
  276. package/dist/reporting/shared/reportingPaths.d.ts.map +1 -0
  277. package/dist/reporting/shared/reportingPaths.js +29 -0
  278. package/dist/reporting/shared/reportingPaths.js.map +1 -0
  279. package/dist/scheduler/index.d.ts +4 -4
  280. package/dist/scheduler/index.d.ts.map +1 -1
  281. package/dist/scheduler/index.js +4 -4
  282. package/dist/scheduler/index.js.map +1 -1
  283. package/dist/scheduler/resourceStrategy.d.ts +3 -0
  284. package/dist/scheduler/resourceStrategy.d.ts.map +1 -0
  285. package/dist/scheduler/resourceStrategy.js +19 -0
  286. package/dist/scheduler/resourceStrategy.js.map +1 -0
  287. package/dist/scheduler/resourceStrategyCapabilityValidation.d.ts +4 -0
  288. package/dist/scheduler/resourceStrategyCapabilityValidation.d.ts.map +1 -0
  289. package/dist/scheduler/resourceStrategyCapabilityValidation.js +270 -0
  290. package/dist/scheduler/resourceStrategyCapabilityValidation.js.map +1 -0
  291. package/dist/scheduler/resourceStrategyContracts.d.ts +466 -0
  292. package/dist/scheduler/resourceStrategyContracts.d.ts.map +1 -0
  293. package/dist/scheduler/resourceStrategyContracts.js +24 -0
  294. package/dist/scheduler/resourceStrategyContracts.js.map +1 -0
  295. package/dist/scheduler/resourceStrategyFinancialValidation.d.ts +5 -0
  296. package/dist/scheduler/resourceStrategyFinancialValidation.d.ts.map +1 -0
  297. package/dist/scheduler/resourceStrategyFinancialValidation.js +151 -0
  298. package/dist/scheduler/resourceStrategyFinancialValidation.js.map +1 -0
  299. package/dist/scheduler/resourceStrategyPermissionValidation.d.ts +4 -0
  300. package/dist/scheduler/resourceStrategyPermissionValidation.d.ts.map +1 -0
  301. package/dist/scheduler/resourceStrategyPermissionValidation.js +195 -0
  302. package/dist/scheduler/resourceStrategyPermissionValidation.js.map +1 -0
  303. package/dist/scheduler/resourceStrategyScheduleValidation.d.ts +14 -0
  304. package/dist/scheduler/resourceStrategyScheduleValidation.d.ts.map +1 -0
  305. package/dist/scheduler/resourceStrategyScheduleValidation.js +519 -0
  306. package/dist/scheduler/resourceStrategyScheduleValidation.js.map +1 -0
  307. package/dist/scheduler/resourceStrategyValidation.d.ts +5 -0
  308. package/dist/scheduler/resourceStrategyValidation.d.ts.map +1 -0
  309. package/dist/scheduler/resourceStrategyValidation.js +21 -0
  310. package/dist/scheduler/resourceStrategyValidation.js.map +1 -0
  311. package/dist/scheduler/resourceStrategyValidationShared.d.ts +19 -0
  312. package/dist/scheduler/resourceStrategyValidationShared.d.ts.map +1 -0
  313. package/dist/scheduler/resourceStrategyValidationShared.js +281 -0
  314. package/dist/scheduler/resourceStrategyValidationShared.js.map +1 -0
  315. package/dist/scheduler/schedulerContracts.d.ts +184 -0
  316. package/dist/scheduler/schedulerContracts.d.ts.map +1 -0
  317. package/dist/{aws/portalPublicArtifactNestedEvidence.js → scheduler/schedulerContracts.js} +1 -1
  318. package/dist/scheduler/schedulerContracts.js.map +1 -0
  319. package/dist/scheduler/schedulerValidation.d.ts +15 -0
  320. package/dist/scheduler/schedulerValidation.d.ts.map +1 -0
  321. package/dist/scheduler/schedulerValidation.js +388 -0
  322. package/dist/scheduler/schedulerValidation.js.map +1 -0
  323. package/dist/scheduler/weeklyAvailabilityFixtures.d.ts +26 -0
  324. package/dist/scheduler/weeklyAvailabilityFixtures.d.ts.map +1 -0
  325. package/dist/scheduler/weeklyAvailabilityFixtures.js +144 -0
  326. package/dist/scheduler/weeklyAvailabilityFixtures.js.map +1 -0
  327. package/package.json +26 -7
  328. package/dist/aws/pluginPublicArtifactBodyValidation.d.ts +0 -10
  329. package/dist/aws/pluginPublicArtifactBodyValidation.d.ts.map +0 -1
  330. package/dist/aws/pluginPublicArtifactBodyValidation.js +0 -225
  331. package/dist/aws/pluginPublicArtifactBodyValidation.js.map +0 -1
  332. package/dist/aws/pluginPublicArtifactEvidence.d.ts +0 -161
  333. package/dist/aws/pluginPublicArtifactEvidence.d.ts.map +0 -1
  334. package/dist/aws/pluginPublicArtifactEvidence.js.map +0 -1
  335. package/dist/aws/pluginPublicArtifactManifestValidation.d.ts +0 -4
  336. package/dist/aws/pluginPublicArtifactManifestValidation.d.ts.map +0 -1
  337. package/dist/aws/pluginPublicArtifactManifestValidation.js +0 -259
  338. package/dist/aws/pluginPublicArtifactManifestValidation.js.map +0 -1
  339. package/dist/aws/pluginPublicArtifactSectionValidation.d.ts +0 -6
  340. package/dist/aws/pluginPublicArtifactSectionValidation.d.ts.map +0 -1
  341. package/dist/aws/pluginPublicArtifactSectionValidation.js +0 -471
  342. package/dist/aws/pluginPublicArtifactSectionValidation.js.map +0 -1
  343. package/dist/aws/pluginPublicArtifactValidation.d.ts +0 -3
  344. package/dist/aws/pluginPublicArtifactValidation.d.ts.map +0 -1
  345. package/dist/aws/pluginPublicArtifactValidation.js +0 -9
  346. package/dist/aws/pluginPublicArtifactValidation.js.map +0 -1
  347. package/dist/aws/pluginPublicArtifactValidationHelpers.d.ts +0 -23
  348. package/dist/aws/pluginPublicArtifactValidationHelpers.d.ts.map +0 -1
  349. package/dist/aws/pluginPublicArtifactValidationHelpers.js +0 -240
  350. package/dist/aws/pluginPublicArtifactValidationHelpers.js.map +0 -1
  351. package/dist/aws/pluginPublicArtifacts.d.ts +0 -253
  352. package/dist/aws/pluginPublicArtifacts.d.ts.map +0 -1
  353. package/dist/aws/pluginPublicArtifacts.js +0 -51
  354. package/dist/aws/pluginPublicArtifacts.js.map +0 -1
  355. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.d.ts +0 -4
  356. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.d.ts.map +0 -1
  357. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.js +0 -513
  358. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.js.map +0 -1
  359. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.d.ts +0 -13
  360. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.d.ts.map +0 -1
  361. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.js +0 -5
  362. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.js.map +0 -1
  363. package/dist/aws/portalPublicArtifactCurrentValidation.d.ts +0 -4
  364. package/dist/aws/portalPublicArtifactCurrentValidation.d.ts.map +0 -1
  365. package/dist/aws/portalPublicArtifactCurrentValidation.js +0 -333
  366. package/dist/aws/portalPublicArtifactCurrentValidation.js.map +0 -1
  367. package/dist/aws/portalPublicArtifactEvidenceValidation.d.ts +0 -6
  368. package/dist/aws/portalPublicArtifactEvidenceValidation.d.ts.map +0 -1
  369. package/dist/aws/portalPublicArtifactEvidenceValidation.js +0 -301
  370. package/dist/aws/portalPublicArtifactEvidenceValidation.js.map +0 -1
  371. package/dist/aws/portalPublicArtifactHistoryAiValidation.d.ts +0 -8
  372. package/dist/aws/portalPublicArtifactHistoryAiValidation.d.ts.map +0 -1
  373. package/dist/aws/portalPublicArtifactHistoryAiValidation.js +0 -377
  374. package/dist/aws/portalPublicArtifactHistoryAiValidation.js.map +0 -1
  375. package/dist/aws/portalPublicArtifactHistoryTypes.d.ts +0 -178
  376. package/dist/aws/portalPublicArtifactHistoryTypes.d.ts.map +0 -1
  377. package/dist/aws/portalPublicArtifactHistoryTypes.js +0 -44
  378. package/dist/aws/portalPublicArtifactHistoryTypes.js.map +0 -1
  379. package/dist/aws/portalPublicArtifactNestedEvidence.d.ts +0 -127
  380. package/dist/aws/portalPublicArtifactNestedEvidence.d.ts.map +0 -1
  381. package/dist/aws/portalPublicArtifactNestedEvidence.js.map +0 -1
  382. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.d.ts +0 -6
  383. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.d.ts.map +0 -1
  384. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.js +0 -405
  385. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.js.map +0 -1
  386. package/dist/aws/portalPublicArtifactValidation.d.ts +0 -3
  387. package/dist/aws/portalPublicArtifactValidation.d.ts.map +0 -1
  388. package/dist/aws/portalPublicArtifactValidation.js +0 -14
  389. package/dist/aws/portalPublicArtifactValidation.js.map +0 -1
  390. package/dist/aws/portalPublicArtifactValidationCommon.d.ts +0 -30
  391. package/dist/aws/portalPublicArtifactValidationCommon.d.ts.map +0 -1
  392. package/dist/aws/portalPublicArtifactValidationCommon.js +0 -167
  393. package/dist/aws/portalPublicArtifactValidationCommon.js.map +0 -1
  394. package/dist/aws/portalPublicArtifacts.d.ts +0 -400
  395. package/dist/aws/portalPublicArtifacts.d.ts.map +0 -1
  396. package/dist/aws/portalPublicArtifacts.js +0 -85
  397. package/dist/aws/portalPublicArtifacts.js.map +0 -1
  398. package/dist/aws/portalRelationshipPublicArtifactValidation.d.ts +0 -4
  399. package/dist/aws/portalRelationshipPublicArtifactValidation.d.ts.map +0 -1
  400. package/dist/aws/portalRelationshipPublicArtifactValidation.js +0 -338
  401. package/dist/aws/portalRelationshipPublicArtifactValidation.js.map +0 -1
  402. package/dist/aws/portalRelationshipPublicArtifacts.d.ts +0 -196
  403. package/dist/aws/portalRelationshipPublicArtifacts.d.ts.map +0 -1
  404. package/dist/aws/portalRelationshipPublicArtifacts.js +0 -63
  405. package/dist/aws/portalRelationshipPublicArtifacts.js.map +0 -1
  406. package/dist/aws/portalRelationshipResourceNodeTypes.d.ts +0 -269
  407. package/dist/aws/portalRelationshipResourceNodeTypes.d.ts.map +0 -1
  408. package/dist/aws/portalRelationshipResourceNodeTypes.js +0 -3
  409. package/dist/aws/portalRelationshipResourceNodeTypes.js.map +0 -1
  410. package/dist/aws/portalRelationshipResourceNodeValidation.d.ts +0 -2
  411. package/dist/aws/portalRelationshipResourceNodeValidation.d.ts.map +0 -1
  412. package/dist/aws/portalRelationshipResourceNodeValidation.js +0 -372
  413. package/dist/aws/portalRelationshipResourceNodeValidation.js.map +0 -1
  414. package/dist/esm/aws/pluginPublicArtifactBodyValidation.js +0 -217
  415. package/dist/esm/aws/pluginPublicArtifactManifestValidation.js +0 -255
  416. package/dist/esm/aws/pluginPublicArtifactSectionValidation.js +0 -464
  417. package/dist/esm/aws/pluginPublicArtifactValidation.js +0 -2
  418. package/dist/esm/aws/pluginPublicArtifactValidationHelpers.js +0 -216
  419. package/dist/esm/aws/pluginPublicArtifacts.js +0 -44
  420. package/dist/esm/aws/portalCommitmentsPlanningPublicArtifactValidation.js +0 -509
  421. package/dist/esm/aws/portalCommitmentsPlanningPublicArtifacts.js +0 -1
  422. package/dist/esm/aws/portalPublicArtifactCurrentValidation.js +0 -328
  423. package/dist/esm/aws/portalPublicArtifactEvidenceValidation.js +0 -294
  424. package/dist/esm/aws/portalPublicArtifactHistoryAiValidation.js +0 -368
  425. package/dist/esm/aws/portalPublicArtifactHistoryTypes.js +0 -40
  426. package/dist/esm/aws/portalPublicArtifactNestedEvidenceValidation.js +0 -397
  427. package/dist/esm/aws/portalPublicArtifactValidation.js +0 -2
  428. package/dist/esm/aws/portalPublicArtifactValidationCommon.js +0 -139
  429. package/dist/esm/aws/portalPublicArtifacts.js +0 -73
  430. package/dist/esm/aws/portalRelationshipPublicArtifactValidation.js +0 -334
  431. package/dist/esm/aws/portalRelationshipPublicArtifacts.js +0 -59
  432. package/dist/esm/aws/portalRelationshipResourceNodeValidation.js +0 -368
  433. package/dist/esm/scheduler/bastionScheduleProfile.js +0 -206
  434. package/dist/esm/scheduler/bastionScheduleValidation.js +0 -401
  435. package/dist/esm/scheduler/scheduler.js +0 -1
  436. package/dist/scheduler/bastionSchedule.d.ts +0 -113
  437. package/dist/scheduler/bastionSchedule.d.ts.map +0 -1
  438. package/dist/scheduler/bastionSchedule.js.map +0 -1
  439. package/dist/scheduler/bastionScheduleProfile.d.ts +0 -24
  440. package/dist/scheduler/bastionScheduleProfile.d.ts.map +0 -1
  441. package/dist/scheduler/bastionScheduleProfile.js +0 -210
  442. package/dist/scheduler/bastionScheduleProfile.js.map +0 -1
  443. package/dist/scheduler/bastionScheduleValidation.d.ts +0 -10
  444. package/dist/scheduler/bastionScheduleValidation.d.ts.map +0 -1
  445. package/dist/scheduler/bastionScheduleValidation.js +0 -412
  446. package/dist/scheduler/bastionScheduleValidation.js.map +0 -1
  447. package/dist/scheduler/scheduler.d.ts +0 -267
  448. package/dist/scheduler/scheduler.d.ts.map +0 -1
  449. package/dist/scheduler/scheduler.js.map +0 -1
  450. /package/dist/esm/aws/{pluginPublicArtifactEvidence.js → commitmentsPlanningView.js} +0 -0
  451. /package/dist/esm/{aws/portalPublicArtifactNestedEvidence.js → common/boundedRows.js} +0 -0
  452. /package/dist/esm/{aws/portalRelationshipResourceNodeTypes.js → common/metricStats.js} +0 -0
  453. /package/dist/esm/scheduler/{bastionSchedule.js → schedulerContracts.js} +0 -0
@@ -1,368 +0,0 @@
1
- import { AWS_PORTAL_RELATIONSHIP_DISCOVERY_FAMILIES } from './portalRelationshipPublicArtifacts.js';
2
- import { validateResourceBillingEvidence } from './portalPublicArtifactNestedEvidenceValidation.js';
3
- import { asRecord, assertExactKeys, assertValue, finiteNumber, requiredBoolean, requiredEnum, requiredString, stringArray, } from './portalPublicArtifactValidationCommon.js';
4
- import { assertAccount, assertRequiredKeys } from './pluginPublicArtifactValidationHelpers.js';
5
- const RESOURCE_COMMON_KEYS = ['provider', 'accountId', 'family', 'resourceRegion', 'stableKey', 'resourceType', 'tags', 'billing'];
6
- const RESOURCE_KEYS = {
7
- 'ec2-instance': ['instanceId', 'instanceArn', 'name', 'state', 'instanceType', 'availabilityZone', 'subnetId', 'vpcId'],
8
- 'ebs-volume': ['volumeId', 'volumeArn', 'state', 'availabilityZone', 'volumeType', 'sizeGiB', 'encrypted', 'snapshotId', 'attachments'],
9
- vpc: [
10
- 'vpcId',
11
- 'vpcArn',
12
- 'state',
13
- 'cidrBlock',
14
- 'dhcpOptionsId',
15
- 'instanceTenancy',
16
- 'isDefault',
17
- 'ownerId',
18
- 'cidrBlockAssociations',
19
- 'ipv6CidrBlockAssociations',
20
- ],
21
- subnet: [
22
- 'subnetArn',
23
- 'subnetId',
24
- 'vpcId',
25
- 'availabilityZone',
26
- 'availabilityZoneId',
27
- 'state',
28
- 'cidrBlock',
29
- 'availableIpAddressCount',
30
- 'defaultForAz',
31
- 'mapPublicIpOnLaunch',
32
- 'assignIpv6AddressOnCreation',
33
- 'ipv6Native',
34
- 'ownerId',
35
- 'customerOwnedIpv4Pool',
36
- 'mapCustomerOwnedIpOnLaunch',
37
- 'outpostArn',
38
- 'enableDns64',
39
- 'enableLniAtDeviceIndex',
40
- 'privateDnsHostnameType',
41
- 'privateDnsEnableResourceNameDnsARecord',
42
- 'privateDnsEnableResourceNameDnsAAAARecord',
43
- 'ipv6CidrBlockAssociations',
44
- ],
45
- 'route-table': ['routeTableArn', 'routeTableId', 'vpcId', 'ownerId', 'hasMainAssociation', 'associations'],
46
- 'internet-gateway': ['internetGatewayArn', 'internetGatewayId', 'ownerId', 'attachments', 'attachedVpcIds'],
47
- 'virtual-private-gateway': [
48
- 'virtualPrivateGatewayArn',
49
- 'virtualPrivateGatewayId',
50
- 'amazonSideAsn',
51
- 'availabilityZone',
52
- 'state',
53
- 'type',
54
- 'attachments',
55
- 'attachedVpcIds',
56
- ],
57
- 'network-interface': [
58
- 'networkInterfaceId',
59
- 'ownerId',
60
- 'subnetId',
61
- 'vpcId',
62
- 'availabilityZone',
63
- 'status',
64
- 'interfaceType',
65
- 'requesterManaged',
66
- 'requesterId',
67
- 'privateIpAddress',
68
- 'attachmentInstanceId',
69
- ],
70
- 'nat-gateway': [
71
- 'natGatewayId',
72
- 'natGatewayArn',
73
- 'subnetId',
74
- 'vpcId',
75
- 'availabilityZone',
76
- 'state',
77
- 'connectivityType',
78
- 'failureCode',
79
- 'failureMessage',
80
- 'createTime',
81
- 'deleteTime',
82
- 'addresses',
83
- ],
84
- 'security-group': ['groupId', 'securityGroupArn', 'groupName', 'description', 'vpcId', 'ownerId'],
85
- 'rds-db-cluster': [
86
- 'dbClusterResourceId',
87
- 'dbClusterIdentifier',
88
- 'dbClusterArn',
89
- 'engine',
90
- 'engineVersion',
91
- 'engineMode',
92
- 'status',
93
- 'serverlessV2MinCapacityAcu',
94
- 'serverlessV2MaxCapacityAcu',
95
- 'serverlessV2SecondsUntilAutoPause',
96
- 'serverlessV2PlatformVersion',
97
- 'globalClusterIdentifier',
98
- 'clusterScalabilityType',
99
- 'limitlessDatabaseStatus',
100
- 'endpointAddress',
101
- 'readerEndpointAddress',
102
- 'hostedZoneId',
103
- 'endpointPort',
104
- 'availabilityZones',
105
- 'storageEncrypted',
106
- 'kmsKeyId',
107
- 'deletionProtection',
108
- 'copyTagsToSnapshot',
109
- 'dbProxyNames',
110
- 'dbClusterMemberIdentifiers',
111
- 'dbClusterMembers',
112
- ],
113
- 'rds-db-instance': [
114
- 'dbInstanceIdentifier',
115
- 'dbiResourceId',
116
- 'dbInstanceArn',
117
- 'engine',
118
- 'engineVersion',
119
- 'dbInstanceClass',
120
- 'status',
121
- 'availabilityZone',
122
- 'vpcId',
123
- 'dbSubnetGroupName',
124
- 'dbClusterIdentifier',
125
- ],
126
- 'load-balancer-v2': ['loadBalancerArn', 'loadBalancerName', 'loadBalancerType', 'scheme', 'state', 'vpcId', 'subnetIds', 'availabilityZoneNames'],
127
- 'classic-load-balancer': ['loadBalancerName', 'scheme', 'vpcId', 'subnetIds', 'availabilityZoneNames', 'securityGroupIds', 'instanceIds'],
128
- 'elasticache-cache-cluster': [
129
- 'cacheClusterId',
130
- 'cacheClusterArn',
131
- 'engine',
132
- 'engineVersion',
133
- 'status',
134
- 'cacheNodeType',
135
- 'preferredAvailabilityZone',
136
- 'cacheSubnetGroupName',
137
- 'replicationGroupId',
138
- 'replicationGroupGlobalReplicationGroupId',
139
- 'kmsKeyId',
140
- ],
141
- 'elasticache-serverless-cache': ['serverlessCacheName', 'serverlessCacheArn', 'engine', 'majorEngineVersion', 'status', 'subnetIds', 'kmsKeyId'],
142
- 'efs-file-system': ['fileSystemId', 'fileSystemArn', 'name', 'state', 'availabilityZoneName', 'encrypted', 'kmsKeyId'],
143
- };
144
- const REQUIRED_RESOURCE_KEYS = {
145
- 'ec2-instance': ['instanceId', 'instanceArn'],
146
- 'ebs-volume': ['volumeId', 'volumeArn', 'attachments'],
147
- vpc: ['vpcId', 'vpcArn', 'cidrBlockAssociations', 'ipv6CidrBlockAssociations'],
148
- subnet: ['subnetArn', 'subnetId', 'ipv6CidrBlockAssociations'],
149
- 'route-table': ['routeTableArn', 'routeTableId', 'hasMainAssociation', 'associations'],
150
- 'internet-gateway': ['internetGatewayArn', 'internetGatewayId', 'attachments', 'attachedVpcIds'],
151
- 'virtual-private-gateway': ['virtualPrivateGatewayArn', 'virtualPrivateGatewayId', 'attachments', 'attachedVpcIds'],
152
- 'network-interface': ['networkInterfaceId'],
153
- 'nat-gateway': ['natGatewayId', 'natGatewayArn', 'addresses'],
154
- 'security-group': ['groupId', 'groupName'],
155
- 'rds-db-cluster': [
156
- 'dbClusterResourceId',
157
- 'dbClusterIdentifier',
158
- 'dbClusterArn',
159
- 'availabilityZones',
160
- 'dbProxyNames',
161
- 'dbClusterMemberIdentifiers',
162
- 'dbClusterMembers',
163
- ],
164
- 'rds-db-instance': ['dbInstanceIdentifier', 'dbiResourceId', 'dbInstanceArn'],
165
- 'load-balancer-v2': ['loadBalancerArn', 'loadBalancerName', 'subnetIds', 'availabilityZoneNames'],
166
- 'classic-load-balancer': ['loadBalancerName', 'subnetIds', 'availabilityZoneNames', 'securityGroupIds', 'instanceIds'],
167
- 'elasticache-cache-cluster': ['cacheClusterId', 'cacheClusterArn'],
168
- 'elasticache-serverless-cache': ['serverlessCacheName', 'serverlessCacheArn', 'subnetIds'],
169
- 'efs-file-system': ['fileSystemId', 'fileSystemArn'],
170
- };
171
- const STRING_FIELDS = new Set([
172
- 'stableKey',
173
- 'resourceType',
174
- ...Object.values(RESOURCE_KEYS)
175
- .flat()
176
- .filter(field => ![
177
- 'attachments',
178
- 'addresses',
179
- 'associations',
180
- 'attachedVpcIds',
181
- 'availabilityZoneNames',
182
- 'availabilityZones',
183
- 'cidrBlockAssociations',
184
- 'dbClusterMemberIdentifiers',
185
- 'dbClusterMembers',
186
- 'dbProxyNames',
187
- 'instanceIds',
188
- 'ipv6CidrBlockAssociations',
189
- 'securityGroupIds',
190
- 'subnetIds',
191
- 'availableIpAddressCount',
192
- 'amazonSideAsn',
193
- 'enableLniAtDeviceIndex',
194
- 'endpointPort',
195
- 'serverlessV2MaxCapacityAcu',
196
- 'serverlessV2MinCapacityAcu',
197
- 'serverlessV2SecondsUntilAutoPause',
198
- 'sizeGiB',
199
- 'assignIpv6AddressOnCreation',
200
- 'copyTagsToSnapshot',
201
- 'defaultForAz',
202
- 'deletionProtection',
203
- 'enableDns64',
204
- 'encrypted',
205
- 'hasMainAssociation',
206
- 'ipv6Native',
207
- 'isDefault',
208
- 'mapCustomerOwnedIpOnLaunch',
209
- 'mapPublicIpOnLaunch',
210
- 'privateDnsEnableResourceNameDnsARecord',
211
- 'privateDnsEnableResourceNameDnsAAAARecord',
212
- 'requesterManaged',
213
- 'storageEncrypted',
214
- ].includes(field)),
215
- ]);
216
- const NUMBER_FIELDS = new Set([
217
- 'amazonSideAsn',
218
- 'availableIpAddressCount',
219
- 'enableLniAtDeviceIndex',
220
- 'endpointPort',
221
- 'serverlessV2MaxCapacityAcu',
222
- 'serverlessV2MinCapacityAcu',
223
- 'serverlessV2SecondsUntilAutoPause',
224
- 'sizeGiB',
225
- ]);
226
- const BOOLEAN_FIELDS = new Set([
227
- 'assignIpv6AddressOnCreation',
228
- 'copyTagsToSnapshot',
229
- 'defaultForAz',
230
- 'deletionProtection',
231
- 'enableDns64',
232
- 'encrypted',
233
- 'hasMainAssociation',
234
- 'ipv6Native',
235
- 'isDefault',
236
- 'mapCustomerOwnedIpOnLaunch',
237
- 'mapPublicIpOnLaunch',
238
- 'privateDnsEnableResourceNameDnsARecord',
239
- 'privateDnsEnableResourceNameDnsAAAARecord',
240
- 'requesterManaged',
241
- 'storageEncrypted',
242
- ]);
243
- const STRING_ARRAY_FIELDS = new Set([
244
- 'attachedVpcIds',
245
- 'availabilityZoneNames',
246
- 'availabilityZones',
247
- 'dbClusterMemberIdentifiers',
248
- 'dbProxyNames',
249
- 'instanceIds',
250
- 'securityGroupIds',
251
- 'subnetIds',
252
- ]);
253
- export function validateAwsPortalRelationshipResourceNode(data, accountId, regions, field) {
254
- assertValue(data.provider, 'aws', `${field}.provider`);
255
- assertAccount(data.accountId, accountId, `${field}.accountId`);
256
- const resourceRegion = requiredString(data.resourceRegion, `${field}.resourceRegion`);
257
- if (!regions.has(resourceRegion))
258
- throw new Error(`${field}.resourceRegion is outside artifact scope.`);
259
- const family = requiredEnum(data.family, AWS_PORTAL_RELATIONSHIP_DISCOVERY_FAMILIES, `${field}.family`);
260
- assertExactKeys(data, [...RESOURCE_COMMON_KEYS, ...RESOURCE_KEYS[family]], field);
261
- assertRequiredKeys(data, ['provider', 'accountId', 'family', 'resourceRegion', 'stableKey', 'resourceType', ...REQUIRED_RESOURCE_KEYS[family]], field);
262
- for (const key of Object.keys(data)) {
263
- if (STRING_FIELDS.has(key) && data[key] !== undefined)
264
- requiredString(data[key], `${field}.${key}`);
265
- if (NUMBER_FIELDS.has(key) && data[key] !== undefined)
266
- finiteNumber(data[key], `${field}.${key}`);
267
- if (BOOLEAN_FIELDS.has(key) && data[key] !== undefined)
268
- requiredBoolean(data[key], `${field}.${key}`);
269
- if (STRING_ARRAY_FIELDS.has(key) && data[key] !== undefined)
270
- stringArray(data[key], `${field}.${key}`);
271
- }
272
- if (data.tags !== undefined)
273
- validateTags(data.tags, `${field}.tags`);
274
- if (data.billing !== undefined)
275
- validateResourceBillingEvidence(data.billing, `${field}.billing`);
276
- validateNativeScopeIdentity(data, accountId, resourceRegion, field);
277
- validateNestedResourceArrays(data, family, field);
278
- }
279
- function validateNativeScopeIdentity(data, accountId, resourceRegion, field) {
280
- if (data.ownerId !== undefined)
281
- assertAccount(data.ownerId, accountId, `${field}.ownerId`);
282
- Object.entries(data).forEach(([key, value]) => {
283
- if (typeof value !== 'string')
284
- return;
285
- if (key.endsWith('Arn') || key === 'stableKey' || key === 'kmsKeyId') {
286
- if (value.startsWith('arn:'))
287
- validateScopedArn(value, accountId, resourceRegion, `${field}.${key}`);
288
- }
289
- if (['availabilityZone', 'availabilityZoneName', 'preferredAvailabilityZone'].includes(key))
290
- validateAvailabilityZone(value, resourceRegion, `${field}.${key}`);
291
- });
292
- for (const key of ['availabilityZones', 'availabilityZoneNames']) {
293
- if (!Array.isArray(data[key]))
294
- continue;
295
- data[key].forEach((value, index) => {
296
- if (typeof value === 'string')
297
- validateAvailabilityZone(value, resourceRegion, `${field}.${key}[${index}]`);
298
- });
299
- }
300
- }
301
- function validateScopedArn(value, accountId, resourceRegion, field) {
302
- const match = /^arn:(aws(?:-[a-z0-9-]+)?):[^:]+:([^:]*):([^:]*):.+$/.exec(value);
303
- if (!match)
304
- throw new Error(`${field} must be a canonical AWS ARN.`);
305
- const [, , arnRegion, arnAccountId] = match;
306
- if (arnRegion !== resourceRegion)
307
- throw new Error(`${field} ARN Region must match its resource node.`);
308
- if (arnAccountId !== accountId)
309
- throw new Error(`${field} ARN account must match its resource node.`);
310
- }
311
- function validateAvailabilityZone(value, resourceRegion, field) {
312
- if (resourceRegion === 'global' || value === resourceRegion || !value.startsWith(resourceRegion))
313
- throw new Error(`${field} must belong to its resource Region.`);
314
- }
315
- function validateTags(value, field) {
316
- const tags = asRecord(value, field);
317
- Object.entries(tags).forEach(([key, tagValue]) => {
318
- requiredString(key, `${field} key`);
319
- requiredString(tagValue, `${field}.${key}`);
320
- });
321
- }
322
- function validateNestedResourceArrays(data, family, field) {
323
- if (family === 'vpc') {
324
- validateObjectArray(data.cidrBlockAssociations, ['associationId', 'cidrBlock', 'state'], ['cidrBlock'], `${field}.cidrBlockAssociations`);
325
- validateObjectArray(data.ipv6CidrBlockAssociations, ['associationId', 'ipv6CidrBlock', 'state'], ['ipv6CidrBlock'], `${field}.ipv6CidrBlockAssociations`);
326
- }
327
- else if (family === 'subnet') {
328
- validateObjectArray(data.ipv6CidrBlockAssociations, ['associationId', 'ipv6CidrBlock', 'state'], ['ipv6CidrBlock'], `${field}.ipv6CidrBlockAssociations`);
329
- }
330
- else if (family === 'route-table') {
331
- validateObjectArray(data.associations, ['associationId', 'subnetId', 'gatewayId', 'main', 'associationState', 'associationStateMessage'], [], `${field}.associations`);
332
- }
333
- else if (family === 'internet-gateway' || family === 'virtual-private-gateway') {
334
- validateObjectArray(data.attachments, ['vpcId', 'state'], [], `${field}.attachments`);
335
- }
336
- else if (family === 'ebs-volume') {
337
- validateObjectArray(data.attachments, ['instanceId', 'device', 'state', 'attachTime', 'deleteOnTermination'], [], `${field}.attachments`);
338
- }
339
- else if (family === 'nat-gateway') {
340
- validateObjectArray(data.addresses, ['allocationId', 'associationId', 'isPrimary', 'networkInterfaceId', 'privateIp', 'publicIp', 'status'], [], `${field}.addresses`);
341
- }
342
- else if (family === 'rds-db-cluster') {
343
- validateObjectArray(data.dbClusterMembers, ['dbInstanceIdentifier', 'isClusterWriter', 'promotionTier'], ['dbInstanceIdentifier'], `${field}.dbClusterMembers`);
344
- }
345
- }
346
- function validateObjectArray(value, keys, required, field) {
347
- asArray(value, field).forEach((entry, index) => {
348
- const itemField = `${field}[${index}]`;
349
- const item = asRecord(entry, itemField);
350
- assertExactKeys(item, keys, itemField);
351
- assertRequiredKeys(item, required, itemField);
352
- Object.entries(item).forEach(([key, itemValue]) => {
353
- if (itemValue === undefined)
354
- return;
355
- if (['main', 'deleteOnTermination', 'isPrimary', 'isClusterWriter'].includes(key))
356
- requiredBoolean(itemValue, `${itemField}.${key}`);
357
- else if (key === 'promotionTier')
358
- finiteNumber(itemValue, `${itemField}.${key}`);
359
- else
360
- requiredString(itemValue, `${itemField}.${key}`);
361
- });
362
- });
363
- }
364
- function asArray(value, field) {
365
- if (!Array.isArray(value))
366
- throw new Error(`${field} must be an array.`);
367
- return value;
368
- }
@@ -1,206 +0,0 @@
1
- const MAX_IDENTIFIER_LENGTH = 2048;
2
- const MAX_ETAG_LENGTH = 4096;
3
- const MAX_LOCATION_LENGTH = 128;
4
- const MAX_IP_CONFIGURATION_NAME_LENGTH = 80;
5
- const MAX_TAG_COUNT = 50;
6
- const MAX_TAG_NAME_LENGTH = 512;
7
- const MAX_TAG_VALUE_LENGTH = 256;
8
- function isPlainRecord(value) {
9
- if (typeof value !== 'object' || value === null || Array.isArray(value))
10
- return false;
11
- const prototype = Reflect.getPrototypeOf(value);
12
- return prototype === Object.prototype || prototype === null;
13
- }
14
- function hasOnlyFields(value, fields) {
15
- const allowed = new Set(fields);
16
- return Object.keys(value).every(field => allowed.has(field));
17
- }
18
- function readString(value, maximumLength) {
19
- if (typeof value !== 'string' || value.trim().length === 0 || value.length > maximumLength)
20
- return undefined;
21
- return value.trim();
22
- }
23
- function normalizeResourceId(value) {
24
- const resourceId = readString(value, MAX_IDENTIFIER_LENGTH);
25
- if (!resourceId || resourceId.includes('\\') || resourceId.includes('//') || resourceId.endsWith('/'))
26
- return undefined;
27
- return resourceId.toLowerCase();
28
- }
29
- function readBastionSubscriptionId(resourceId) {
30
- return /^\/subscriptions\/([a-z0-9-]+)\/resourcegroups\/[a-z0-9._()-]+\/providers\/microsoft\.network\/bastionhosts\/[a-z0-9._()-]+$/.exec(resourceId)?.[1];
31
- }
32
- function readBoolean(value) {
33
- return value === undefined ? false : typeof value === 'boolean' ? value : undefined;
34
- }
35
- function readTags(value) {
36
- if (value === undefined)
37
- return {};
38
- if (!isPlainRecord(value) || Object.keys(value).length > MAX_TAG_COUNT)
39
- return undefined;
40
- const entries = [];
41
- for (const key of Object.keys(value).sort()) {
42
- const tagValue = value[key];
43
- if (key.length === 0 || key.length > MAX_TAG_NAME_LENGTH || typeof tagValue !== 'string' || tagValue.length > MAX_TAG_VALUE_LENGTH) {
44
- return undefined;
45
- }
46
- entries.push([key, tagValue]);
47
- }
48
- return Object.fromEntries(entries);
49
- }
50
- function readZones(value) {
51
- if (value === undefined)
52
- return undefined;
53
- if (!Array.isArray(value) ||
54
- value.length < 1 ||
55
- value.length > 3 ||
56
- !value.every(zone => typeof zone === 'string' && /^[1-3]$/.test(zone)) ||
57
- new Set(value).size !== value.length) {
58
- return false;
59
- }
60
- return [...value].sort();
61
- }
62
- function readSku(value) {
63
- if (!isPlainRecord(value) || !hasOnlyFields(value, ['name']))
64
- return undefined;
65
- const name = value['name'];
66
- return name === 'Basic' || name === 'Standard' || name === 'Premium' ? name : undefined;
67
- }
68
- /** Normalizes an eligible public dedicated Azure Bastion profile for schedule readiness and recovery. */
69
- export function readSupportedBastionScheduleProfileV1(value, expectedResourceId) {
70
- try {
71
- if (!isPlainRecord(value) ||
72
- !hasOnlyFields(value, ['name', 'id', 'etag', 'type', 'location', 'tags', 'sku', 'properties', 'systemData', 'zones'])) {
73
- return undefined;
74
- }
75
- const normalizedExpectedResourceId = normalizeResourceId(expectedResourceId);
76
- const normalizedSourceResourceId = normalizeResourceId(value['id']);
77
- const bastionSubscriptionId = normalizedSourceResourceId ? readBastionSubscriptionId(normalizedSourceResourceId) : undefined;
78
- const resourceType = readString(value['type'], MAX_IDENTIFIER_LENGTH)?.toLowerCase();
79
- const sourceEtag = readString(value['etag'], MAX_ETAG_LENGTH);
80
- const location = readString(value['location'], MAX_LOCATION_LENGTH)?.toLowerCase();
81
- const tags = readTags(value['tags']);
82
- const skuName = readSku(value['sku']);
83
- const zones = readZones(value['zones']);
84
- if (!normalizedExpectedResourceId ||
85
- normalizedSourceResourceId !== normalizedExpectedResourceId ||
86
- !bastionSubscriptionId ||
87
- resourceType !== 'microsoft.network/bastionhosts' ||
88
- !sourceEtag ||
89
- !location ||
90
- !tags ||
91
- !skuName ||
92
- zones === false) {
93
- return undefined;
94
- }
95
- if (!isPlainRecord(value['properties']) ||
96
- !hasOnlyFields(value['properties'], [
97
- 'provisioningState',
98
- 'dnsName',
99
- 'publicUri',
100
- 'scaleUnits',
101
- 'disableCopyPaste',
102
- 'enableFileCopy',
103
- 'enableIpConnect',
104
- 'enableShareableLink',
105
- 'enableTunneling',
106
- 'enableKerberos',
107
- 'enableSessionRecording',
108
- 'enablePrivateOnlyBastion',
109
- 'ipConfigurations',
110
- 'networkAcls',
111
- 'virtualNetwork',
112
- ]) ||
113
- value['properties']['provisioningState'] !== 'Succeeded' ||
114
- value['properties']['networkAcls'] !== undefined ||
115
- value['properties']['virtualNetwork'] !== undefined) {
116
- return undefined;
117
- }
118
- const properties = value['properties'];
119
- const scaleUnits = properties['scaleUnits'];
120
- if (typeof scaleUnits !== 'number' ||
121
- !Number.isInteger(scaleUnits) ||
122
- (skuName === 'Basic' ? scaleUnits !== 2 : scaleUnits < 2 || scaleUnits > 50)) {
123
- return undefined;
124
- }
125
- const disableCopyPaste = readBoolean(properties['disableCopyPaste']);
126
- const enableFileCopy = readBoolean(properties['enableFileCopy']);
127
- const enableIpConnect = readBoolean(properties['enableIpConnect']);
128
- const enableShareableLink = readBoolean(properties['enableShareableLink']);
129
- const enableTunneling = readBoolean(properties['enableTunneling']);
130
- const enableKerberos = readBoolean(properties['enableKerberos']);
131
- const enableSessionRecording = readBoolean(properties['enableSessionRecording']);
132
- const enablePrivateOnlyBastion = readBoolean(properties['enablePrivateOnlyBastion']);
133
- if (disableCopyPaste === undefined ||
134
- enableFileCopy === undefined ||
135
- enableIpConnect === undefined ||
136
- enableShareableLink === undefined ||
137
- enableTunneling === undefined ||
138
- enableKerberos === undefined ||
139
- enableSessionRecording !== false ||
140
- enablePrivateOnlyBastion !== false ||
141
- (skuName === 'Basic' && (enableFileCopy || enableIpConnect || enableShareableLink || enableTunneling || enableKerberos))) {
142
- return undefined;
143
- }
144
- const configurations = properties['ipConfigurations'];
145
- if (!Array.isArray(configurations) || configurations.length !== 1)
146
- return undefined;
147
- const configuration = configurations[0];
148
- if (!isPlainRecord(configuration) ||
149
- !hasOnlyFields(configuration, ['name', 'id', 'etag', 'type', 'properties']) ||
150
- !isPlainRecord(configuration['properties']) ||
151
- !hasOnlyFields(configuration['properties'], ['provisioningState', 'privateIPAllocationMethod', 'publicIPAddress', 'subnet']) ||
152
- (configuration['properties']['provisioningState'] !== undefined && configuration['properties']['provisioningState'] !== 'Succeeded') ||
153
- configuration['properties']['privateIPAllocationMethod'] !== 'Dynamic') {
154
- return undefined;
155
- }
156
- const ipConfigurationName = readString(configuration['name'], MAX_IP_CONFIGURATION_NAME_LENGTH);
157
- const publicIp = configuration['properties']['publicIPAddress'];
158
- const subnet = configuration['properties']['subnet'];
159
- if (!ipConfigurationName ||
160
- !isPlainRecord(publicIp) ||
161
- !hasOnlyFields(publicIp, ['id']) ||
162
- !isPlainRecord(subnet) ||
163
- !hasOnlyFields(subnet, ['id'])) {
164
- return undefined;
165
- }
166
- const publicIpId = normalizeResourceId(publicIp['id']);
167
- const subnetId = normalizeResourceId(subnet['id']);
168
- const publicIpMatch = publicIpId
169
- ? /^\/subscriptions\/([a-z0-9-]+)\/resourcegroups\/[a-z0-9._()-]+\/providers\/microsoft\.network\/publicipaddresses\/[a-z0-9._()-]+$/.exec(publicIpId)
170
- : undefined;
171
- const subnetMatch = subnetId
172
- ? /^\/subscriptions\/([a-z0-9-]+)\/resourcegroups\/[a-z0-9._()-]+\/providers\/microsoft\.network\/virtualnetworks\/[a-z0-9._()-]+\/subnets\/azurebastionsubnet$/.exec(subnetId)
173
- : undefined;
174
- if (!publicIpId ||
175
- !publicIpMatch ||
176
- publicIpMatch[1] !== bastionSubscriptionId ||
177
- !subnetId ||
178
- !subnetMatch ||
179
- subnetMatch[1] !== bastionSubscriptionId) {
180
- return undefined;
181
- }
182
- return {
183
- skuName,
184
- location,
185
- ...(zones ? { zones } : {}),
186
- scaleUnits,
187
- disableCopyPaste,
188
- enableFileCopy,
189
- enableIpConnect,
190
- enableShareableLink,
191
- enableTunneling,
192
- enableKerberos,
193
- enableSessionRecording: false,
194
- enablePrivateOnlyBastion: false,
195
- tags,
196
- ipConfigurationName,
197
- publicIpId,
198
- subnetId,
199
- virtualNetworkId: subnetId.slice(0, subnetId.lastIndexOf('/subnets/')),
200
- sourceEtag,
201
- };
202
- }
203
- catch {
204
- return undefined;
205
- }
206
- }