@drunk-pulumi/azure 0.0.19

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 (386) hide show
  1. package/Aks/Helper.d.ts +43 -0
  2. package/Aks/Helper.js +72 -0
  3. package/Aks/Identity.d.ts +14 -0
  4. package/Aks/Identity.js +32 -0
  5. package/Aks/VmSetAutoScale/index.d.ts +16 -0
  6. package/Aks/VmSetAutoScale/index.js +132 -0
  7. package/Aks/VmSetMonitor/index.d.ts +12 -0
  8. package/Aks/VmSetMonitor/index.js +67 -0
  9. package/Aks/index.d.ts +100 -0
  10. package/Aks/index.js +558 -0
  11. package/Apim/ApiProduct/Api.d.ts +35 -0
  12. package/Apim/ApiProduct/Api.js +131 -0
  13. package/Apim/ApiProduct/OpenApi.d.ts +85 -0
  14. package/Apim/ApiProduct/OpenApi.js +3 -0
  15. package/Apim/ApiProduct/PolicyBuilder.d.ts +79 -0
  16. package/Apim/ApiProduct/PolicyBuilder.js +361 -0
  17. package/Apim/ApiProduct/Product.d.ts +8 -0
  18. package/Apim/ApiProduct/Product.js +63 -0
  19. package/Apim/ApiProduct/SwaggerHelper.d.ts +6 -0
  20. package/Apim/ApiProduct/SwaggerHelper.js +44 -0
  21. package/Apim/ApiProduct/index.d.ts +9 -0
  22. package/Apim/ApiProduct/index.js +22 -0
  23. package/Apim/Helpers.d.ts +0 -0
  24. package/Apim/Helpers.js +2 -0
  25. package/Apim/HookProxy/index.d.ts +20 -0
  26. package/Apim/HookProxy/index.js +27 -0
  27. package/Apim/index.d.ts +22 -0
  28. package/Apim/index.js +118 -0
  29. package/Apps/LogicApp.d.ts +12 -0
  30. package/Apps/LogicApp.js +19 -0
  31. package/Automation/AutoAccount.d.ts +5 -0
  32. package/Automation/AutoAccount.js +20 -0
  33. package/AzAd/B2C.d.ts +9 -0
  34. package/AzAd/B2C.js +38 -0
  35. package/AzAd/ConditionalPolicies/index.d.ts +0 -0
  36. package/AzAd/ConditionalPolicies/index.js +2 -0
  37. package/AzAd/EnvRoles.d.ts +12 -0
  38. package/AzAd/EnvRoles.js +62 -0
  39. package/AzAd/GraphDefinition.d.ts +14 -0
  40. package/AzAd/GraphDefinition.js +5136 -0
  41. package/AzAd/Group.d.ts +29 -0
  42. package/AzAd/Group.js +70 -0
  43. package/AzAd/Helper.d.ts +18 -0
  44. package/AzAd/Helper.js +37 -0
  45. package/AzAd/Identities/AzDevOps.d.ts +23 -0
  46. package/AzAd/Identities/AzDevOps.js +61 -0
  47. package/AzAd/Identities/AzUserAdRevertSync.d.ts +14 -0
  48. package/AzAd/Identities/AzUserAdRevertSync.js +18 -0
  49. package/AzAd/Identity.d.ts +51 -0
  50. package/AzAd/Identity.js +133 -0
  51. package/AzAd/ManagedIdentity.d.ts +6 -0
  52. package/AzAd/ManagedIdentity.js +23 -0
  53. package/AzAd/Role.d.ts +19 -0
  54. package/AzAd/Role.js +25 -0
  55. package/AzAd/RoleAssignment.d.ts +79 -0
  56. package/AzAd/RoleAssignment.js +48 -0
  57. package/AzAd/RolesBuiltIn.d.ts +62 -0
  58. package/AzAd/RolesBuiltIn.js +13841 -0
  59. package/Cdn/index.d.ts +11 -0
  60. package/Cdn/index.js +47 -0
  61. package/Certificate/index.d.ts +41 -0
  62. package/Certificate/index.js +156 -0
  63. package/Certificate/p12.d.ts +5 -0
  64. package/Certificate/p12.js +37 -0
  65. package/Common/AppConfigs/dotnetConfig.d.ts +15 -0
  66. package/Common/AppConfigs/dotnetConfig.js +20 -0
  67. package/Common/AutoTags.d.ts +1 -0
  68. package/Common/AutoTags.js +24 -0
  69. package/Common/AzureEnv.d.ts +37 -0
  70. package/Common/AzureEnv.js +94 -0
  71. package/Common/ConfigHelper.d.ts +5 -0
  72. package/Common/ConfigHelper.js +14 -0
  73. package/Common/GlobalEnv.d.ts +14 -0
  74. package/Common/GlobalEnv.js +38 -0
  75. package/Common/Helpers.d.ts +10 -0
  76. package/Common/Helpers.js +30 -0
  77. package/Common/Location.d.ts +4 -0
  78. package/Common/Location.js +23 -0
  79. package/Common/LocationBuiltIn.d.ts +81 -0
  80. package/Common/LocationBuiltIn.js +1925 -0
  81. package/Common/Naming/index.d.ts +62 -0
  82. package/Common/Naming/index.js +146 -0
  83. package/Common/ResourceEnv.d.ts +16 -0
  84. package/Common/ResourceEnv.js +29 -0
  85. package/Common/StackEnv.d.ts +4 -0
  86. package/Common/StackEnv.js +22 -0
  87. package/Common/index.d.ts +5 -0
  88. package/Common/index.js +9 -0
  89. package/ContainerRegistry/Helper.d.ts +23 -0
  90. package/ContainerRegistry/Helper.js +47 -0
  91. package/ContainerRegistry/index.d.ts +28 -0
  92. package/ContainerRegistry/index.js +103 -0
  93. package/Core/Helper.d.ts +16 -0
  94. package/Core/Helper.js +37 -0
  95. package/Core/KeyGenetators.d.ts +33 -0
  96. package/Core/KeyGenetators.js +66 -0
  97. package/Core/Locker.d.ts +13 -0
  98. package/Core/Locker.js +14 -0
  99. package/Core/Random.d.ts +40 -0
  100. package/Core/Random.js +83 -0
  101. package/Core/ResourceCreator.d.ts +17 -0
  102. package/Core/ResourceCreator.js +48 -0
  103. package/Core/ResourceGroup.d.ts +13 -0
  104. package/Core/ResourceGroup.js +45 -0
  105. package/CosmosDb/index.d.ts +33 -0
  106. package/CosmosDb/index.js +129 -0
  107. package/CustomRoles/index.d.ts +5 -0
  108. package/CustomRoles/index.js +27 -0
  109. package/IOT/Hub/index.d.ts +32 -0
  110. package/IOT/Hub/index.js +208 -0
  111. package/KeyVault/CustomHelper.d.ts +35 -0
  112. package/KeyVault/CustomHelper.js +40 -0
  113. package/KeyVault/Helper.d.ts +33 -0
  114. package/KeyVault/Helper.js +58 -0
  115. package/KeyVault/VaultAccess.d.ts +15 -0
  116. package/KeyVault/VaultAccess.js +47 -0
  117. package/KeyVault/VaultPermissions.d.ts +26 -0
  118. package/KeyVault/VaultPermissions.js +169 -0
  119. package/KeyVault/index.d.ts +28 -0
  120. package/KeyVault/index.js +136 -0
  121. package/KubeX/AcrSecret.d.ts +15 -0
  122. package/KubeX/AcrSecret.js +31 -0
  123. package/KubeX/Apps/AstroPage.d.ts +12 -0
  124. package/KubeX/Apps/AstroPage.js +33 -0
  125. package/KubeX/Apps/KafKa.d.ts +6 -0
  126. package/KubeX/Apps/KafKa.js +13 -0
  127. package/KubeX/Apps/Nobelium.d.ts +13 -0
  128. package/KubeX/Apps/Nobelium.js +37 -0
  129. package/KubeX/Apps/Wikijs.d.ts +30 -0
  130. package/KubeX/Apps/Wikijs.js +54 -0
  131. package/KubeX/Apps/WordPress.d.ts +24 -0
  132. package/KubeX/Apps/WordPress.js +55 -0
  133. package/KubeX/Apps/YarpProxy/index.d.ts +17 -0
  134. package/KubeX/Apps/YarpProxy/index.js +107 -0
  135. package/KubeX/Apps/YarpProxy/type.d.ts +55 -0
  136. package/KubeX/Apps/YarpProxy/type.js +3 -0
  137. package/KubeX/CertHelper.d.ts +1 -0
  138. package/KubeX/CertHelper.js +9 -0
  139. package/KubeX/CertImports.d.ts +19 -0
  140. package/KubeX/CertImports.js +70 -0
  141. package/KubeX/CloudFlare/CertCreator.d.ts +19 -0
  142. package/KubeX/CloudFlare/CertCreator.js +90 -0
  143. package/KubeX/CloudFlare/CertImports.d.ts +17 -0
  144. package/KubeX/CloudFlare/CertImports.js +34 -0
  145. package/KubeX/CloudFlare/DynamicDns.d.ts +21 -0
  146. package/KubeX/CloudFlare/DynamicDns.js +39 -0
  147. package/KubeX/CloudFlare/Tunnel-Helm.d.ts +17 -0
  148. package/KubeX/CloudFlare/Tunnel-Helm.js +12 -0
  149. package/KubeX/CloudFlare/Tunnel.d.ts +23 -0
  150. package/KubeX/CloudFlare/Tunnel.js +54 -0
  151. package/KubeX/CloudFlare/index.d.ts +13 -0
  152. package/KubeX/CloudFlare/index.js +36 -0
  153. package/KubeX/Clusters/K3s/AutoUpgradeController/index.d.ts +6 -0
  154. package/KubeX/Clusters/K3s/AutoUpgradeController/index.js +60 -0
  155. package/KubeX/ConfigSecret.d.ts +24 -0
  156. package/KubeX/ConfigSecret.js +38 -0
  157. package/KubeX/Core/CertManager/index.d.ts +24 -0
  158. package/KubeX/Core/CertManager/index.js +96 -0
  159. package/KubeX/Core/KsCertSecret.d.ts +12 -0
  160. package/KubeX/Core/KsCertSecret.js +22 -0
  161. package/KubeX/Core/KsSecret.d.ts +9 -0
  162. package/KubeX/Core/KsSecret.js +12 -0
  163. package/KubeX/Core/LoadBalancer/MetalLB.d.ts +7 -0
  164. package/KubeX/Core/LoadBalancer/MetalLB.js +21 -0
  165. package/KubeX/Core/Monitoring/index.d.ts +22 -0
  166. package/KubeX/Core/Monitoring/index.js +322 -0
  167. package/KubeX/Core/Namespace.d.ts +12 -0
  168. package/KubeX/Core/Namespace.js +41 -0
  169. package/KubeX/Core/Nginx/index.d.ts +60 -0
  170. package/KubeX/Core/Nginx/index.js +109 -0
  171. package/KubeX/Core/OAuthProxy/index.d.ts +0 -0
  172. package/KubeX/Core/OAuthProxy/index.js +3 -0
  173. package/KubeX/Core/ResourceQuota.d.ts +12 -0
  174. package/KubeX/Core/ResourceQuota.js +13 -0
  175. package/KubeX/Core/SecurityRules.d.ts +34 -0
  176. package/KubeX/Core/SecurityRules.js +93 -0
  177. package/KubeX/Core/StorageClass/azureBlob.d.ts +20 -0
  178. package/KubeX/Core/StorageClass/azureBlob.js +77 -0
  179. package/KubeX/Core/StorageClass/azureFile.d.ts +17 -0
  180. package/KubeX/Core/StorageClass/azureFile.js +45 -0
  181. package/KubeX/Core/StorageClass/index.d.ts +13 -0
  182. package/KubeX/Core/StorageClass/index.js +25 -0
  183. package/KubeX/Core/index.d.ts +57 -0
  184. package/KubeX/Core/index.js +94 -0
  185. package/KubeX/Databases/MariaDb.d.ts +11 -0
  186. package/KubeX/Databases/MariaDb.js +39 -0
  187. package/KubeX/Databases/MySql.V2.d.ts +11 -0
  188. package/KubeX/Databases/MySql.V2.js +40 -0
  189. package/KubeX/Databases/MySql.d.ts +13 -0
  190. package/KubeX/Databases/MySql.js +55 -0
  191. package/KubeX/Databases/PostgreSql/PostgreSQL-HA.d.ts +10 -0
  192. package/KubeX/Databases/PostgreSql/PostgreSQL-HA.js +47 -0
  193. package/KubeX/Databases/PostgreSql/PostgreSQL.d.ts +10 -0
  194. package/KubeX/Databases/PostgreSql/PostgreSQL.js +51 -0
  195. package/KubeX/Databases/PostgreSql/PostgreSql.v1.d.ts +13 -0
  196. package/KubeX/Databases/PostgreSql/PostgreSql.v1.js +56 -0
  197. package/KubeX/Databases/PostgreSql/index.d.ts +17 -0
  198. package/KubeX/Databases/PostgreSql/index.js +6 -0
  199. package/KubeX/Databases/RedisCache.d.ts +14 -0
  200. package/KubeX/Databases/RedisCache.js +65 -0
  201. package/KubeX/Databases/SqlServer.d.ts +15 -0
  202. package/KubeX/Databases/SqlServer.js +77 -0
  203. package/KubeX/Deployment/PodAutoscaler.d.ts +14 -0
  204. package/KubeX/Deployment/PodAutoscaler.js +51 -0
  205. package/KubeX/Deployment/index.d.ts +136 -0
  206. package/KubeX/Deployment/index.js +306 -0
  207. package/KubeX/Helpers.d.ts +4 -0
  208. package/KubeX/Helpers.js +17 -0
  209. package/KubeX/Ingress/AppGatewayIngress.d.ts +2 -0
  210. package/KubeX/Ingress/AppGatewayIngress.js +4 -0
  211. package/KubeX/Ingress/Conts.d.ts +13 -0
  212. package/KubeX/Ingress/Conts.js +18 -0
  213. package/KubeX/Ingress/NginxIngress.d.ts +3 -0
  214. package/KubeX/Ingress/NginxIngress.js +186 -0
  215. package/KubeX/Ingress/NginxProxy.d.ts +21 -0
  216. package/KubeX/Ingress/NginxProxy.js +43 -0
  217. package/KubeX/Ingress/TraefikIngress/CustomHeader.d.ts +15 -0
  218. package/KubeX/Ingress/TraefikIngress/CustomHeader.js +15 -0
  219. package/KubeX/Ingress/TraefikIngress/index.d.ts +11 -0
  220. package/KubeX/Ingress/TraefikIngress/index.js +95 -0
  221. package/KubeX/Ingress/index.d.ts +5 -0
  222. package/KubeX/Ingress/index.js +12 -0
  223. package/KubeX/Ingress/type.d.ts +82 -0
  224. package/KubeX/Ingress/type.js +3 -0
  225. package/KubeX/Providers/index.d.ts +8 -0
  226. package/KubeX/Providers/index.js +15 -0
  227. package/KubeX/Storage/Longhorn/index.d.ts +15 -0
  228. package/KubeX/Storage/Longhorn/index.js +54 -0
  229. package/KubeX/Storage/index.d.ts +25 -0
  230. package/KubeX/Storage/index.js +79 -0
  231. package/KubeX/Tools/AWS/LocalStack.d.ts +7 -0
  232. package/KubeX/Tools/AWS/LocalStack.js +29 -0
  233. package/KubeX/Tools/AWS/S3.d.ts +6 -0
  234. package/KubeX/Tools/AWS/S3.js +44 -0
  235. package/KubeX/Tools/AWS/index.d.ts +7 -0
  236. package/KubeX/Tools/AWS/index.js +14 -0
  237. package/KubeX/Tools/AppHealthzMonitor.d.ts +18 -0
  238. package/KubeX/Tools/AppHealthzMonitor.js +52 -0
  239. package/KubeX/Tools/ArgoCD/index.d.ts +17 -0
  240. package/KubeX/Tools/ArgoCD/index.js +131 -0
  241. package/KubeX/Tools/Dapr/Storage.d.ts +66 -0
  242. package/KubeX/Tools/Dapr/Storage.js +70 -0
  243. package/KubeX/Tools/Dapr/index.d.ts +10 -0
  244. package/KubeX/Tools/Dapr/index.js +31 -0
  245. package/KubeX/Tools/Echo-App.d.ts +3 -0
  246. package/KubeX/Tools/Echo-App.js +21 -0
  247. package/KubeX/Tools/Gitea/GiteaRepo.d.ts +72 -0
  248. package/KubeX/Tools/Gitea/GiteaRepo.js +184 -0
  249. package/KubeX/Tools/Gitea/GiteaRunner.d.ts +11 -0
  250. package/KubeX/Tools/Gitea/GiteaRunner.js +37 -0
  251. package/KubeX/Tools/Gitea/GiteaRunner.v1.d.ts +11 -0
  252. package/KubeX/Tools/Gitea/GiteaRunner.v1.js +123 -0
  253. package/KubeX/Tools/HarborRepo.d.ts +29 -0
  254. package/KubeX/Tools/HarborRepo.js +78 -0
  255. package/KubeX/Tools/HelloWorld.d.ts +3 -0
  256. package/KubeX/Tools/HelloWorld.js +21 -0
  257. package/KubeX/Tools/KubeCleanup.d.ts +9 -0
  258. package/KubeX/Tools/KubeCleanup.js +34 -0
  259. package/KubeX/Tools/NoIp.d.ts +13 -0
  260. package/KubeX/Tools/NoIp.js +24 -0
  261. package/KubeX/Tools/OpenLDAP/index.d.ts +12 -0
  262. package/KubeX/Tools/OpenLDAP/index.js +56 -0
  263. package/KubeX/Tools/OutlineVpn/index.d.ts +25 -0
  264. package/KubeX/Tools/OutlineVpn/index.js +256 -0
  265. package/KubeX/Tools/SqlPad.d.ts +29 -0
  266. package/KubeX/Tools/SqlPad.js +133 -0
  267. package/KubeX/Tools/ToolPod.d.ts +10 -0
  268. package/KubeX/Tools/ToolPod.js +40 -0
  269. package/KubeX/Tools/UptimeKuma.d.ts +6 -0
  270. package/KubeX/Tools/UptimeKuma.js +38 -0
  271. package/KubeX/Tools/index.d.ts +27 -0
  272. package/KubeX/Tools/index.js +35 -0
  273. package/KubeX/VairableResolvers/index.d.ts +15 -0
  274. package/KubeX/VairableResolvers/index.js +49 -0
  275. package/KubeX/kx/index.d.ts +114 -0
  276. package/KubeX/kx/index.js +423 -0
  277. package/KubeX/types.d.ts +49 -0
  278. package/KubeX/types.js +3 -0
  279. package/Logs/AppInsight.d.ts +16 -0
  280. package/Logs/AppInsight.js +48 -0
  281. package/Logs/Helpers.d.ts +50 -0
  282. package/Logs/Helpers.js +95 -0
  283. package/Logs/LogAnalytics.d.ts +17 -0
  284. package/Logs/LogAnalytics.js +54 -0
  285. package/Logs/WebTest.d.ts +13 -0
  286. package/Logs/WebTest.js +68 -0
  287. package/Logs/index.d.ts +42 -0
  288. package/Logs/index.js +69 -0
  289. package/MySql/index.d.ts +20 -0
  290. package/MySql/index.js +93 -0
  291. package/Postgresql/index.d.ts +20 -0
  292. package/Postgresql/index.js +93 -0
  293. package/ReadMe.md +36 -0
  294. package/RedisCache/index.d.ts +9 -0
  295. package/RedisCache/index.js +79 -0
  296. package/ServiceBus/ServiceBusHelper.d.ts +21 -0
  297. package/ServiceBus/ServiceBusHelper.js +35 -0
  298. package/ServiceBus/index.d.ts +98 -0
  299. package/ServiceBus/index.js +396 -0
  300. package/SignalR/index.d.ts +20 -0
  301. package/SignalR/index.js +114 -0
  302. package/Sql/Auditing.d.ts +0 -0
  303. package/Sql/Auditing.js +2 -0
  304. package/Sql/Helper.d.ts +9 -0
  305. package/Sql/Helper.js +11 -0
  306. package/Sql/SqlDb.d.ts +14 -0
  307. package/Sql/SqlDb.js +42 -0
  308. package/Sql/index.d.ts +44 -0
  309. package/Sql/index.js +236 -0
  310. package/Storage/CdnEndpoint.d.ts +12 -0
  311. package/Storage/CdnEndpoint.js +62 -0
  312. package/Storage/CdnRules.d.ts +6 -0
  313. package/Storage/CdnRules.js +134 -0
  314. package/Storage/Helper.d.ts +28 -0
  315. package/Storage/Helper.js +66 -0
  316. package/Storage/ManagementRules.d.ts +70 -0
  317. package/Storage/ManagementRules.js +32 -0
  318. package/Storage/index.d.ts +55 -0
  319. package/Storage/index.js +264 -0
  320. package/VM/index.d.ts +37 -0
  321. package/VM/index.js +138 -0
  322. package/VNet/Bastion.d.ts +8 -0
  323. package/VNet/Bastion.js +30 -0
  324. package/VNet/Firewall.d.ts +27 -0
  325. package/VNet/Firewall.js +87 -0
  326. package/VNet/FirewallPolicies/AksFirewallPolicy.d.ts +20 -0
  327. package/VNet/FirewallPolicies/AksFirewallPolicy.js +241 -0
  328. package/VNet/FirewallPolicies/CloudPCFirewallPolicy.d.ts +14 -0
  329. package/VNet/FirewallPolicies/CloudPCFirewallPolicy.js +303 -0
  330. package/VNet/FirewallPolicy.d.ts +28 -0
  331. package/VNet/FirewallPolicy.js +110 -0
  332. package/VNet/FirewallRules/AksFirewallRules.d.ts +24 -0
  333. package/VNet/FirewallRules/AksFirewallRules.js +250 -0
  334. package/VNet/FirewallRules/DefaultRules.d.ts +2 -0
  335. package/VNet/FirewallRules/DefaultRules.js +23 -0
  336. package/VNet/FirewallRules/types.d.ts +20 -0
  337. package/VNet/FirewallRules/types.js +5 -0
  338. package/VNet/GlobalNetworkPeering.d.ts +9 -0
  339. package/VNet/GlobalNetworkPeering.js +17 -0
  340. package/VNet/Helper.d.ts +33 -0
  341. package/VNet/Helper.js +86 -0
  342. package/VNet/IpAddress.d.ts +17 -0
  343. package/VNet/IpAddress.js +38 -0
  344. package/VNet/IpAddressPrefix.d.ts +22 -0
  345. package/VNet/IpAddressPrefix.js +42 -0
  346. package/VNet/NSGRules/AzADService.d.ts +10 -0
  347. package/VNet/NSGRules/AzADService.js +45 -0
  348. package/VNet/NetworkPeering.d.ts +10 -0
  349. package/VNet/NetworkPeering.js +29 -0
  350. package/VNet/PrivateDns.d.ts +33 -0
  351. package/VNet/PrivateDns.js +64 -0
  352. package/VNet/PrivateEndpoint.d.ts +9 -0
  353. package/VNet/PrivateEndpoint.js +71 -0
  354. package/VNet/PublicDns.d.ts +21 -0
  355. package/VNet/PublicDns.js +59 -0
  356. package/VNet/RouteTable.d.ts +13 -0
  357. package/VNet/RouteTable.js +23 -0
  358. package/VNet/SecurityGroup.d.ts +8 -0
  359. package/VNet/SecurityGroup.js +13 -0
  360. package/VNet/Subnet.d.ts +26 -0
  361. package/VNet/Subnet.js +48 -0
  362. package/VNet/VirtualWAN.d.ts +25 -0
  363. package/VNet/VirtualWAN.js +40 -0
  364. package/VNet/Vnet.d.ts +51 -0
  365. package/VNet/Vnet.js +196 -0
  366. package/VNet/index.d.ts +65 -0
  367. package/VNet/index.js +198 -0
  368. package/Web/AppCertOrder.d.ts +16 -0
  369. package/Web/AppCertOrder.js +34 -0
  370. package/Web/AppConfig.d.ts +16 -0
  371. package/Web/AppConfig.js +79 -0
  372. package/Web/AppGateway.d.ts +15 -0
  373. package/Web/AppGateway.js +32 -0
  374. package/Web/FuncApp.d.ts +12 -0
  375. package/Web/FuncApp.js +24 -0
  376. package/Web/Helpers.d.ts +6 -0
  377. package/Web/Helpers.js +36 -0
  378. package/Web/WebAppPlan.d.ts +7 -0
  379. package/Web/WebAppPlan.js +26 -0
  380. package/Web/types.d.ts +169 -0
  381. package/Web/types.js +3 -0
  382. package/package.json +34 -0
  383. package/types.d.ts +69 -0
  384. package/types.js +3 -0
  385. package/z_tests/_tools/Mocks.d.ts +2 -0
  386. package/z_tests/_tools/Mocks.js +47 -0
package/Cdn/index.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { KeyVaultInfo, ResourceGroupInfo } from '../types';
2
+ interface Props {
3
+ name: string;
4
+ group?: ResourceGroupInfo;
5
+ vaultAccess?: {
6
+ enableRbacAccess?: boolean;
7
+ vaultInfo: KeyVaultInfo;
8
+ };
9
+ }
10
+ declare const _default: ({ name, group, vaultAccess, }: Props) => import("@pulumi/azure-native/cdn/profile").Profile;
11
+ export default _default;
package/Cdn/index.js ADDED
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cdn = require("@pulumi/azure-native/cdn");
4
+ const azureAd = require("@pulumi/azuread");
5
+ const Naming_1 = require("../Common/Naming");
6
+ const Common_1 = require("../Common");
7
+ const AzureEnv_1 = require("../Common/AzureEnv");
8
+ const VaultPermissions_1 = require("../KeyVault/VaultPermissions");
9
+ exports.default = ({ name, group = Common_1.global.groupInfo, vaultAccess, }) => {
10
+ name = (0, Naming_1.getCdnProfileName)(name);
11
+ const profile = new cdn.Profile(name, {
12
+ profileName: name,
13
+ ...group,
14
+ location: 'global',
15
+ sku: { name: cdn.SkuName.Standard_Microsoft },
16
+ tags: AzureEnv_1.defaultTags,
17
+ });
18
+ if (vaultAccess) {
19
+ //https://docs.microsoft.com/en-us/azure/cdn/cdn-custom-ssl?tabs=option-2-enable-https-with-your-own-certificate
20
+ const n = `${name}-sp`;
21
+ const sp = new azureAd.ServicePrincipal(n, {
22
+ //applicationId: '205478c0-bd83-4e1b-a9d6-db63a3e1e1c8',
23
+ clientId: '205478c0-bd83-4e1b-a9d6-db63a3e1e1c8',
24
+ });
25
+ if (vaultAccess.enableRbacAccess) {
26
+ (0, VaultPermissions_1.grantVaultRbacPermission)({
27
+ name: n,
28
+ objectId: sp.objectId,
29
+ permission: 'ReadOnly',
30
+ applicationId: sp.clientId,
31
+ principalType: 'ServicePrincipal',
32
+ scope: vaultAccess.vaultInfo.id,
33
+ });
34
+ }
35
+ // else
36
+ // grantVaultAccessPolicy({
37
+ // name: n,
38
+ // objectId: sp.objectId,
39
+ // permission: "ReadOnly",
40
+ // applicationId: sp.applicationId,
41
+ // principalType: "ServicePrincipal",
42
+ // vaultInfo: vaultAccess.vaultInfo,
43
+ // });
44
+ }
45
+ return profile;
46
+ };
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQ2RuL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsZ0RBQWdEO0FBQ2hELDJDQUEyQztBQUMzQyw2Q0FBcUQ7QUFDckQsc0NBQW1DO0FBQ25DLGlEQUFpRDtBQUNqRCxtRUFBd0U7QUFXeEUsa0JBQWUsQ0FBQyxFQUNkLElBQUksRUFDSixLQUFLLEdBQUcsZUFBTSxDQUFDLFNBQVMsRUFDeEIsV0FBVyxHQUNMLEVBQUUsRUFBRTtJQUNWLElBQUksR0FBRyxJQUFBLDBCQUFpQixFQUFDLElBQUksQ0FBQyxDQUFDO0lBRS9CLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7UUFDcEMsV0FBVyxFQUFFLElBQUk7UUFDakIsR0FBRyxLQUFLO1FBQ1IsUUFBUSxFQUFFLFFBQVE7UUFDbEIsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7UUFDN0MsSUFBSSxFQUFFLHNCQUFXO0tBQ2xCLENBQUMsQ0FBQztJQUVILElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEIsZ0hBQWdIO1FBQ2hILE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUM7UUFFdkIsTUFBTSxFQUFFLEdBQUcsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFO1lBQ3pDLHdEQUF3RDtZQUN4RCxRQUFRLEVBQUUsc0NBQXNDO1NBQ2pELENBQUMsQ0FBQztRQUVILElBQUksV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDakMsSUFBQSwyQ0FBd0IsRUFBQztnQkFDdkIsSUFBSSxFQUFFLENBQUM7Z0JBQ1AsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRO2dCQUNyQixVQUFVLEVBQUUsVUFBVTtnQkFDdEIsYUFBYSxFQUFFLEVBQUUsQ0FBQyxRQUFRO2dCQUMxQixhQUFhLEVBQUUsa0JBQWtCO2dCQUNqQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2FBQ2hDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPO1FBQ1AsNkJBQTZCO1FBQzdCLGVBQWU7UUFDZiw2QkFBNkI7UUFDN0IsOEJBQThCO1FBQzlCLHVDQUF1QztRQUN2Qyx5Q0FBeUM7UUFDekMsd0NBQXdDO1FBQ3hDLFFBQVE7SUFDVixDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,41 @@
1
+ import { KeyVaultInfo } from '../types';
2
+ export declare const defaultAllowedUses: string[];
3
+ export declare const defaultCodeSignUses: string[];
4
+ export declare const createSelfSignCertV2: ({ dnsName, commonName, organization, allowedUses, validYears, vaultInfo, }: {
5
+ dnsName: string;
6
+ commonName: string;
7
+ organization: string;
8
+ allowedUses?: string[] | undefined;
9
+ validYears?: number | undefined;
10
+ vaultInfo?: KeyVaultInfo | undefined;
11
+ }) => {
12
+ cert: import("@pulumi/pulumi").Output<string>;
13
+ privateKey: import("@pulumi/pulumi").Output<string>;
14
+ ca: import("@pulumi/pulumi").Output<string>;
15
+ };
16
+ export declare const createSelfSignCert: ({ dnsName, commonName, organization, allowedUses, validYears, vaultInfo, }: {
17
+ dnsName: string;
18
+ commonName: string;
19
+ organization: string;
20
+ allowedUses?: string[] | undefined;
21
+ validYears?: number | undefined;
22
+ vaultInfo?: KeyVaultInfo | undefined;
23
+ }) => {
24
+ cert: import("@pulumi/pulumi").Output<string>;
25
+ privateKey: import("@pulumi/pulumi").Output<string>;
26
+ ca: undefined;
27
+ };
28
+ export declare const convertPfxFileToPem: ({ certPath, password, }: {
29
+ certPath: string;
30
+ password?: string | undefined;
31
+ }) => Promise<{
32
+ cert: string;
33
+ privateKey: string;
34
+ }>;
35
+ export declare const convertPfxToPem: ({ base64Cert, password, }: {
36
+ base64Cert: string;
37
+ password?: string | undefined;
38
+ }) => {
39
+ cert: string;
40
+ privateKey: string;
41
+ };
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertPfxToPem = exports.convertPfxFileToPem = exports.createSelfSignCert = exports.createSelfSignCertV2 = exports.defaultCodeSignUses = exports.defaultAllowedUses = void 0;
4
+ const tls = require("@pulumi/tls");
5
+ const fs = require("fs");
6
+ const pem = require("./p12");
7
+ const CustomHelper_1 = require("../KeyVault/CustomHelper");
8
+ exports.defaultAllowedUses = [
9
+ 'data_encipherment',
10
+ 'digital_signature',
11
+ 'cert_signing',
12
+ 'client_auth',
13
+ 'key_agreement',
14
+ 'key_encipherment',
15
+ 'server_auth',
16
+ 'timestamping',
17
+ ];
18
+ exports.defaultCodeSignUses = [
19
+ 'cert_signing',
20
+ 'code_signing',
21
+ 'content_commitment',
22
+ 'data_encipherment',
23
+ 'digital_signature',
24
+ 'email_protection',
25
+ 'key_agreement',
26
+ 'key_encipherment',
27
+ 'microsoft_Commercial_Code_Signing',
28
+ 'microsoft_Kernel_Code_Signing',
29
+ 'ocsp_signing',
30
+ ];
31
+ const createSelfSignCertV2 = ({ dnsName, commonName, organization, allowedUses = exports.defaultAllowedUses, validYears = 3, vaultInfo, }) => {
32
+ const vaultCertName = `${dnsName}-cert`;
33
+ const vaultCAName = `${dnsName}-ca`;
34
+ const vaultPrivateKeyName = `${dnsName}-key`;
35
+ const validityPeriodHours = validYears * 365 * 24;
36
+ // Create a private key
37
+ const privateKey = new tls.PrivateKey(vaultCertName, {
38
+ algorithm: 'RSA',
39
+ rsaBits: 2048,
40
+ });
41
+ // Create a certificate authority
42
+ const ca = new tls.SelfSignedCert(vaultCAName, {
43
+ dnsNames: [dnsName],
44
+ subject: {
45
+ commonName,
46
+ organization,
47
+ },
48
+ allowedUses,
49
+ isCaCertificate: true,
50
+ privateKeyPem: privateKey.privateKeyPem,
51
+ validityPeriodHours,
52
+ earlyRenewalHours: 30 * 24,
53
+ });
54
+ //Create Cert Request
55
+ const certRequest = new tls.CertRequest(`${dnsName}-cert-request`, {
56
+ dnsNames: [dnsName],
57
+ subject: {
58
+ commonName,
59
+ organization,
60
+ },
61
+ privateKeyPem: privateKey.privateKeyPem,
62
+ });
63
+ // Create a local certificate signed by the certificate authority
64
+ const cert = new tls.LocallySignedCert(vaultCertName, {
65
+ certRequestPem: certRequest.certRequestPem,
66
+ caPrivateKeyPem: ca.privateKeyPem,
67
+ caCertPem: ca.certPem,
68
+ validityPeriodHours,
69
+ isCaCertificate: false,
70
+ allowedUses: ['key_encipherment', 'digital_signature', 'server_auth'],
71
+ });
72
+ if (vaultInfo) {
73
+ (0, CustomHelper_1.addCustomSecret)({
74
+ name: vaultCertName,
75
+ vaultInfo,
76
+ value: cert.certPem,
77
+ contentType: `${dnsName} self sign cert.`,
78
+ });
79
+ (0, CustomHelper_1.addCustomSecret)({
80
+ name: vaultCAName,
81
+ vaultInfo,
82
+ value: ca.certPem,
83
+ contentType: `${dnsName} self sign ca cert.`,
84
+ });
85
+ (0, CustomHelper_1.addCustomSecret)({
86
+ name: vaultPrivateKeyName,
87
+ vaultInfo,
88
+ value: privateKey.privateKeyPem,
89
+ contentType: `${dnsName} self sign private key.`,
90
+ });
91
+ }
92
+ return {
93
+ cert: cert.certPem,
94
+ privateKey: privateKey.privateKeyPem,
95
+ ca: ca.certPem,
96
+ };
97
+ };
98
+ exports.createSelfSignCertV2 = createSelfSignCertV2;
99
+ const createSelfSignCert = ({ dnsName, commonName, organization, allowedUses = exports.defaultAllowedUses, validYears = 3, vaultInfo, }) => {
100
+ const vaultCertName = `${dnsName}-cert`;
101
+ const vaultPrivateKeyName = `${dnsName}-key`;
102
+ const validityPeriodHours = validYears * 365 * 24;
103
+ // Create a private key
104
+ const privateKey = new tls.PrivateKey(vaultCertName, {
105
+ algorithm: 'RSA',
106
+ rsaBits: 2048,
107
+ });
108
+ // Create a certificate authority
109
+ const cert = new tls.SelfSignedCert(vaultCertName, {
110
+ dnsNames: [dnsName],
111
+ subject: {
112
+ commonName,
113
+ organization,
114
+ },
115
+ allowedUses,
116
+ isCaCertificate: false,
117
+ privateKeyPem: privateKey.privateKeyPem,
118
+ validityPeriodHours,
119
+ earlyRenewalHours: 30 * 24,
120
+ });
121
+ if (vaultInfo) {
122
+ (0, CustomHelper_1.addCustomSecret)({
123
+ name: vaultCertName,
124
+ vaultInfo,
125
+ value: cert.certPem,
126
+ contentType: `${dnsName} self sign cert.`,
127
+ });
128
+ (0, CustomHelper_1.addCustomSecret)({
129
+ name: vaultPrivateKeyName,
130
+ vaultInfo,
131
+ value: privateKey.privateKeyPem,
132
+ contentType: `${dnsName} self sign private key.`,
133
+ });
134
+ }
135
+ return {
136
+ cert: cert.certPem,
137
+ privateKey: privateKey.privateKeyPem,
138
+ ca: undefined,
139
+ };
140
+ };
141
+ exports.createSelfSignCert = createSelfSignCert;
142
+ const convertPfxFileToPem = async ({ certPath, password, }) => {
143
+ const p12File = await fs.promises.readFile(certPath, { encoding: 'binary' });
144
+ const cert = pem.convertToPem(p12File, password);
145
+ console.log('Loaded P12 file', certPath);
146
+ return { cert: cert.pemCertificate, privateKey: cert.pemKey };
147
+ };
148
+ exports.convertPfxFileToPem = convertPfxFileToPem;
149
+ const convertPfxToPem = ({ base64Cert, password, }) => {
150
+ const byteArray = Buffer.from(base64Cert, 'base64');
151
+ const cert = pem.convertToPem(byteArray.toString('binary'), password);
152
+ console.log('Loaded P12 base64');
153
+ return { cert: cert.pemCertificate, privateKey: cert.pemKey };
154
+ };
155
+ exports.convertPfxToPem = convertPfxToPem;
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQ2VydGlmaWNhdGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBQ25DLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFFN0IsMkRBQTJEO0FBRTlDLFFBQUEsa0JBQWtCLEdBQUc7SUFDaEMsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsYUFBYTtJQUNiLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLGNBQWM7Q0FDZixDQUFDO0FBRVcsUUFBQSxtQkFBbUIsR0FBRztJQUNqQyxjQUFjO0lBQ2QsY0FBYztJQUNkLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLG1DQUFtQztJQUNuQywrQkFBK0I7SUFDL0IsY0FBYztDQUNmLENBQUM7QUFFSyxNQUFNLG9CQUFvQixHQUFHLENBQUMsRUFDbkMsT0FBTyxFQUNQLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxHQUFHLDBCQUFrQixFQUNoQyxVQUFVLEdBQUcsQ0FBQyxFQUNkLFNBQVMsR0FRVixFQUFFLEVBQUU7SUFDSCxNQUFNLGFBQWEsR0FBRyxHQUFHLE9BQU8sT0FBTyxDQUFDO0lBQ3hDLE1BQU0sV0FBVyxHQUFHLEdBQUcsT0FBTyxLQUFLLENBQUM7SUFDcEMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLE9BQU8sTUFBTSxDQUFDO0lBQzdDLE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFFbEQsdUJBQXVCO0lBQ3ZCLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUU7UUFDbkQsU0FBUyxFQUFFLEtBQUs7UUFDaEIsT0FBTyxFQUFFLElBQUk7S0FDZCxDQUFDLENBQUM7SUFFSCxpQ0FBaUM7SUFD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
@@ -0,0 +1,5 @@
1
+ import { util } from 'node-forge';
2
+ export declare function convertToPem(p12base64: string | util.ByteBuffer, password: string | undefined): {
3
+ pemKey: string;
4
+ pemCertificate: string;
5
+ };
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ /* eslint-disable @typescript-eslint/no-unsafe-call */
4
+ /* eslint-disable @typescript-eslint/no-unsafe-argument */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.convertToPem = void 0;
7
+ const forge = require("node-forge");
8
+ function convertToPem(p12base64, password) {
9
+ const p12Asn1 = forge.asn1.fromDer(p12base64);
10
+ const p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1, false, password);
11
+ const pemKey = getKeyFromP12(p12, password);
12
+ const cert = getCertificateFromP12(p12);
13
+ return { pemKey, pemCertificate: cert.pemCertificate };
14
+ }
15
+ exports.convertToPem = convertToPem;
16
+ function getKeyFromP12(p12, password) {
17
+ const keyData = p12.getBags({ bagType: forge.pki.oids.pkcs8ShroudedKeyBag }, password);
18
+ let pkcs8Key = keyData[forge.pki.oids.pkcs8ShroudedKeyBag][0];
19
+ if (typeof pkcs8Key === 'undefined') {
20
+ pkcs8Key = keyData[forge.pki.oids.keyBag][0];
21
+ }
22
+ if (typeof pkcs8Key === 'undefined') {
23
+ throw new Error('Unable to get private key.');
24
+ }
25
+ let pemKey = forge.pki.privateKeyToPem(pkcs8Key.key);
26
+ pemKey = pemKey.replace(/\r\n/g, '');
27
+ return pemKey;
28
+ }
29
+ function getCertificateFromP12(p12) {
30
+ const certData = p12.getBags({ bagType: forge.pki.oids.certBag });
31
+ const certificate = certData[forge.pki.oids.certBag][0];
32
+ let pemCertificate = forge.pki.certificateToPem(certificate.cert);
33
+ pemCertificate = pemCertificate.replace(/\r\n/g, '');
34
+ //const commonName = certificate.cert.subject.attributes[0].value;
35
+ return { pemCertificate };
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDEyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NlcnRpZmljYXRlL3AxMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsd0RBQXdEO0FBQ3hELHVEQUF1RDtBQUN2RCwyREFBMkQ7OztBQUUzRCxvQ0FBb0M7QUFHcEMsU0FBZ0IsWUFBWSxDQUMxQixTQUFtQyxFQUNuQyxRQUE0QjtJQUU1QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRWxFLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUMsTUFBTSxJQUFJLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0FBQ3pELENBQUM7QUFYRCxvQ0FXQztBQUVELFNBQVMsYUFBYSxDQUFDLEdBQVEsRUFBRSxRQUE0QjtJQUMzRCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUN6QixFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUMvQyxRQUFRLENBQ1QsQ0FBQztJQUVGLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9ELElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDcEMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFckMsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsR0FBMkI7SUFDeEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV6RCxJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxJQUFLLENBQUMsQ0FBQztJQUNuRSxjQUFjLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckQsa0VBQWtFO0lBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQztBQUM1QixDQUFDIn0=
@@ -0,0 +1,15 @@
1
+ export declare const defaultDotNetConfig: {
2
+ COMPlus_EnableDiagnostics: string;
3
+ ASPNETCORE_URLS: string;
4
+ AllowedHosts: string;
5
+ Logging__LogLevel__Default: string;
6
+ Logging__LogLevel__System: string;
7
+ Logging__LogLevel__Microsoft: string;
8
+ Console__IncludeScopes: string;
9
+ Console__LogLevel__Default: string;
10
+ Console__LogLevel__System: string;
11
+ Console__LogLevel__Microsoft: string;
12
+ Debug__LogLevel__Default: string;
13
+ Debug__LogLevel__System: string;
14
+ Debug__LogLevel__Microsoft: string;
15
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultDotNetConfig = void 0;
4
+ exports.defaultDotNetConfig = {
5
+ COMPlus_EnableDiagnostics: '0',
6
+ ASPNETCORE_URLS: 'http://*:8080',
7
+ //ASPNETCORE_ENVIRONMENT: 'Production',
8
+ AllowedHosts: '*',
9
+ Logging__LogLevel__Default: 'Warning',
10
+ Logging__LogLevel__System: 'Error',
11
+ Logging__LogLevel__Microsoft: 'Error',
12
+ Console__IncludeScopes: 'false',
13
+ Console__LogLevel__Default: 'Warning',
14
+ Console__LogLevel__System: 'Error',
15
+ Console__LogLevel__Microsoft: 'Error',
16
+ Debug__LogLevel__Default: 'None',
17
+ Debug__LogLevel__System: 'None',
18
+ Debug__LogLevel__Microsoft: 'None',
19
+ };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90bmV0Q29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0NvbW1vbi9BcHBDb25maWdzL2RvdG5ldENvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLG1CQUFtQixHQUFHO0lBQ2pDLHlCQUF5QixFQUFFLEdBQUc7SUFDOUIsZUFBZSxFQUFFLGVBQWU7SUFDaEMsdUNBQXVDO0lBQ3ZDLFlBQVksRUFBRSxHQUFHO0lBRWpCLDBCQUEwQixFQUFFLFNBQVM7SUFDckMseUJBQXlCLEVBQUUsT0FBTztJQUNsQyw0QkFBNEIsRUFBRSxPQUFPO0lBQ3JDLHNCQUFzQixFQUFFLE9BQU87SUFDL0IsMEJBQTBCLEVBQUUsU0FBUztJQUNyQyx5QkFBeUIsRUFBRSxPQUFPO0lBQ2xDLDRCQUE0QixFQUFFLE9BQU87SUFDckMsd0JBQXdCLEVBQUUsTUFBTTtJQUNoQyx1QkFBdUIsRUFBRSxNQUFNO0lBQy9CLDBCQUEwQixFQUFFLE1BQU07Q0FDbkMsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ export declare function registerAutoTags(autoTags: Record<string, string>): void;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerAutoTags = void 0;
4
+ const pulumi_1 = require("@pulumi/pulumi");
5
+ const ignoredTags = [
6
+ 'group:Group',
7
+ 'application:Application',
8
+ 'applicationPassword:ApplicationPassword',
9
+ 'servicePrincipal:ServicePrincipal',
10
+ 'servicePrincipalPassword:ServicePrincipalPassword',
11
+ 'kubernetes',
12
+ ];
13
+ function registerAutoTags(autoTags) {
14
+ pulumi_1.runtime.registerStackTransformation((args) => {
15
+ //Check and ignore tag
16
+ if (ignoredTags.find((t) => args.type.includes(t)))
17
+ return { props: args.props, opts: args.opts };
18
+ //Apply default tag
19
+ args.props['tags'] = { ...args.props['tags'], ...autoTags };
20
+ return { props: args.props, opts: args.opts };
21
+ });
22
+ }
23
+ exports.registerAutoTags = registerAutoTags;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0b1RhZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQ29tbW9uL0F1dG9UYWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF5QztBQUV6QyxNQUFNLFdBQVcsR0FBRztJQUNsQixhQUFhO0lBQ2IseUJBQXlCO0lBQ3pCLHlDQUF5QztJQUN6QyxtQ0FBbUM7SUFDbkMsbURBQW1EO0lBQ25ELFlBQVk7Q0FDYixDQUFDO0FBRUYsU0FBZ0IsZ0JBQWdCLENBQUMsUUFBZ0M7SUFDL0QsZ0JBQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQzNDLHNCQUFzQjtRQUN0QixJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hELE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWhELG1CQUFtQjtRQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7UUFDNUQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBVkQsNENBVUMifQ==
@@ -0,0 +1,37 @@
1
+ import { KeyVaultInfo, ResourceGroupInfo } from '../types';
2
+ import { ResourceInfoArg } from './ResourceEnv';
3
+ export declare const tenantId: string;
4
+ export declare const subscriptionId: string;
5
+ export declare const currentLocation: string;
6
+ export declare const defaultScope: import("@pulumi/pulumi").Output<string>;
7
+ /** ======== Default Variables ================*/
8
+ export declare const defaultTags: {
9
+ environment: string;
10
+ organization: string;
11
+ 'pulumi-project': string;
12
+ };
13
+ export declare enum Environments {
14
+ Global = "global",
15
+ Local = "local",
16
+ Dev = "dev",
17
+ Sandbox = "sandbox",
18
+ Prd = "prd"
19
+ }
20
+ export declare const isEnv: (env: Environments) => boolean;
21
+ export declare const isDev: boolean;
22
+ export declare const isSandbox: boolean;
23
+ export declare const isPrd: boolean;
24
+ export declare const isGlobal: boolean;
25
+ export declare const isLocal: boolean;
26
+ export declare const currentEnv: Environments;
27
+ /** Get Key Vault by Group Name. Group Name is the name use to create the resource and resource group together. */
28
+ export declare const getKeyVaultInfo: (groupName: string) => KeyVaultInfo;
29
+ export declare const getResourceIdFromInfo: ({ group, name, provider, }: ResourceInfoArg) => import("@pulumi/pulumi").Output<string>;
30
+ /**Get Resource Info from Resource ID. Sample ID is "/subscriptions/01af663e-76dd-45ac-9e57-9c8e0d3ee350/resourceGroups/sandbox-codehbd-group-hbd/providers/Microsoft.Network/virtualNetworks/sandbox-codehbd-vnet-hbd"*/
31
+ export interface ResourceInfo {
32
+ name: string;
33
+ group: ResourceGroupInfo;
34
+ subscriptionId: string;
35
+ id: string;
36
+ }
37
+ export declare const getResourceInfoFromId: (id: string) => ResourceInfo | undefined;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getResourceInfoFromId = exports.getResourceIdFromInfo = exports.getKeyVaultInfo = exports.currentEnv = exports.isLocal = exports.isGlobal = exports.isPrd = exports.isSandbox = exports.isDev = exports.isEnv = exports.Environments = exports.defaultTags = exports.defaultScope = exports.currentLocation = exports.subscriptionId = exports.tenantId = void 0;
4
+ const pulumi_1 = require("@pulumi/pulumi");
5
+ const AutoTags_1 = require("./AutoTags");
6
+ const Naming_1 = require("./Naming");
7
+ const StackEnv_1 = require("./StackEnv");
8
+ const config = JSON.parse(process.env.PULUMI_CONFIG ?? '{}');
9
+ exports.tenantId = config['azure-native:config:tenantId'];
10
+ exports.subscriptionId = config['azure-native:config:subscriptionId'];
11
+ //export const currentServicePrincipal = config.objectId;
12
+ exports.currentLocation = config['azure-native:config:location'];
13
+ exports.defaultScope = (0, pulumi_1.interpolate) `/subscriptions/${exports.subscriptionId}`;
14
+ //Print and Check
15
+ (0, pulumi_1.all)([exports.subscriptionId, exports.tenantId]).apply(([s, t]) => {
16
+ console.log(`Current Azure:`, { TenantId: t, SubscriptionId: s });
17
+ });
18
+ /** ======== Default Variables ================*/
19
+ exports.defaultTags = {
20
+ environment: StackEnv_1.stack,
21
+ organization: StackEnv_1.organization,
22
+ 'pulumi-project': StackEnv_1.projectName,
23
+ };
24
+ (0, AutoTags_1.registerAutoTags)(exports.defaultTags);
25
+ var Environments;
26
+ (function (Environments) {
27
+ Environments["Global"] = "global";
28
+ Environments["Local"] = "local";
29
+ Environments["Dev"] = "dev";
30
+ Environments["Sandbox"] = "sandbox";
31
+ Environments["Prd"] = "prd";
32
+ })(Environments || (exports.Environments = Environments = {}));
33
+ const isEnv = (env) => StackEnv_1.stack.includes(env);
34
+ exports.isEnv = isEnv;
35
+ exports.isDev = (0, exports.isEnv)(Environments.Dev);
36
+ exports.isSandbox = (0, exports.isEnv)(Environments.Sandbox);
37
+ exports.isPrd = (0, exports.isEnv)(Environments.Prd);
38
+ exports.isGlobal = (0, exports.isEnv)(Environments.Global);
39
+ exports.isLocal = (0, exports.isEnv)(Environments.Local);
40
+ const getCurrentEnv = () => {
41
+ if (exports.isGlobal)
42
+ return Environments.Global;
43
+ if (exports.isPrd)
44
+ return Environments.Prd;
45
+ if (exports.isSandbox)
46
+ return Environments.Sandbox;
47
+ if (exports.isDev)
48
+ return Environments.Dev;
49
+ return Environments.Local;
50
+ };
51
+ exports.currentEnv = getCurrentEnv();
52
+ /** Get Key Vault by Group Name. Group Name is the name use to create the resource and resource group together. */
53
+ const getKeyVaultInfo = (groupName) => {
54
+ const vaultName = (0, Naming_1.getKeyVaultName)(groupName);
55
+ const resourceGroupName = (0, Naming_1.getResourceGroupName)(groupName);
56
+ return {
57
+ name: vaultName,
58
+ group: { resourceGroupName: resourceGroupName, location: exports.currentLocation },
59
+ id: (0, pulumi_1.interpolate) `/subscriptions/${exports.subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.KeyVault/vaults/${vaultName}`,
60
+ };
61
+ };
62
+ exports.getKeyVaultInfo = getKeyVaultInfo;
63
+ const getResourceIdFromInfo = ({ group, name, provider, }) => {
64
+ if (!name && !provider)
65
+ return (0, pulumi_1.interpolate) `/subscriptions/${exports.subscriptionId}/resourceGroups/${group.resourceGroupName}`;
66
+ else if (name && provider)
67
+ return (0, pulumi_1.interpolate) `/subscriptions/${exports.subscriptionId}/resourceGroups/${group.resourceGroupName}/providers/${provider}/${name}`;
68
+ throw new Error('Resource Info is invalid.');
69
+ };
70
+ exports.getResourceIdFromInfo = getResourceIdFromInfo;
71
+ const getResourceInfoFromId = (id) => {
72
+ if (!id)
73
+ return undefined;
74
+ const details = id.split('/');
75
+ let name = '';
76
+ let groupName = '';
77
+ let subscriptionId = '';
78
+ details.forEach((d, index) => {
79
+ if (d === 'subscriptions')
80
+ subscriptionId = details[index + 1];
81
+ if (d === 'resourceGroups' || d === 'resourcegroups')
82
+ groupName = details[index + 1];
83
+ if (index === details.length - 1)
84
+ name = d;
85
+ });
86
+ return {
87
+ name,
88
+ id,
89
+ group: { resourceGroupName: groupName, location: exports.currentLocation },
90
+ subscriptionId,
91
+ };
92
+ };
93
+ exports.getResourceInfoFromId = getResourceInfoFromId;
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXp1cmVFbnYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQ29tbW9uL0F6dXJlRW52LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUFrRDtBQUNsRCx5Q0FBOEM7QUFFOUMscUNBQWlFO0FBRWpFLHlDQUE4RDtBQUU5RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxDQUFDO0FBQ2hELFFBQUEsUUFBUSxHQUFHLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBVyxDQUFDO0FBQzVELFFBQUEsY0FBYyxHQUFHLE1BQU0sQ0FDbEMsb0NBQW9DLENBQzNCLENBQUM7QUFDWix5REFBeUQ7QUFDNUMsUUFBQSxlQUFlLEdBQUcsTUFBTSxDQUFDLDhCQUE4QixDQUFXLENBQUM7QUFDbkUsUUFBQSxZQUFZLEdBQUcsSUFBQSxvQkFBVyxFQUFBLGtCQUFrQixzQkFBYyxFQUFFLENBQUM7QUFFMUUsaUJBQWlCO0FBQ2pCLElBQUEsWUFBRyxFQUFDLENBQUMsc0JBQWMsRUFBRSxnQkFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQy9DLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3BFLENBQUMsQ0FBQyxDQUFDO0FBRUgsaURBQWlEO0FBRXBDLFFBQUEsV0FBVyxHQUFHO0lBQ3pCLFdBQVcsRUFBRSxnQkFBSztJQUNsQixZQUFZLEVBQUUsdUJBQVk7SUFDMUIsZ0JBQWdCLEVBQUUsc0JBQVc7Q0FDOUIsQ0FBQztBQUVGLElBQUEsMkJBQWdCLEVBQUMsbUJBQVcsQ0FBQyxDQUFDO0FBRTlCLElBQVksWUFNWDtBQU5ELFdBQVksWUFBWTtJQUN0QixpQ0FB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
@@ -0,0 +1,5 @@
1
+ import * as pulumi from '@pulumi/pulumi';
2
+ export declare const getValue: (name: string) => string | undefined;
3
+ export declare const requireValue: (name: string) => string;
4
+ export declare const getSecret: (name: string) => pulumi.Output<string> | undefined;
5
+ export declare const requireSecret: (name: string) => pulumi.Output<string>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requireSecret = exports.getSecret = exports.requireValue = exports.getValue = void 0;
4
+ const pulumi = require("@pulumi/pulumi");
5
+ const config = new pulumi.Config();
6
+ const getValue = (name) => config.get(name);
7
+ exports.getValue = getValue;
8
+ const requireValue = (name) => config.require(name);
9
+ exports.requireValue = requireValue;
10
+ const getSecret = (name) => config.getSecret(name);
11
+ exports.getSecret = getSecret;
12
+ const requireSecret = (name) => config.requireSecret(name);
13
+ exports.requireSecret = requireSecret;
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbW1vbi9Db25maWdIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXlDO0FBRXpDLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBRTVCLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQTlDLFFBQUEsUUFBUSxZQUFzQztBQUNwRCxNQUFNLFlBQVksR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUF0RCxRQUFBLFlBQVksZ0JBQTBDO0FBRTVELE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQXJELFFBQUEsU0FBUyxhQUE0QztBQUMzRCxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUE3RCxRQUFBLGFBQWEsaUJBQWdEIn0=
@@ -0,0 +1,14 @@
1
+ import { ConventionProps, KeyVaultInfo, ResourceGroupInfo } from '../types';
2
+ export declare const globalKeyName = "global";
3
+ /**The Global resource group name.*/
4
+ export declare const globalConvention: ConventionProps;
5
+ export declare const groupInfo: ResourceGroupInfo;
6
+ export declare const logGroupInfo: ResourceGroupInfo;
7
+ export declare const cdnProfileInfo: {
8
+ resourceGroupName: string;
9
+ location?: import("@pulumi/pulumi").Input<string> | undefined;
10
+ profileName: string;
11
+ };
12
+ /** Global Key Vault Info */
13
+ export declare const keyVaultInfo: KeyVaultInfo;
14
+ /** Log will send to either storage or log workspace. Only a few important resources will use workspace like Firewall, Aks */
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.keyVaultInfo = exports.cdnProfileInfo = exports.logGroupInfo = exports.groupInfo = exports.globalConvention = exports.globalKeyName = void 0;
4
+ const AzureEnv_1 = require("./AzureEnv");
5
+ const ResourceEnv_1 = require("./ResourceEnv");
6
+ const pulumi_1 = require("@pulumi/pulumi");
7
+ const StackEnv_1 = require("./StackEnv");
8
+ exports.globalKeyName = 'global';
9
+ /**The Global resource group name.*/
10
+ exports.globalConvention = {
11
+ prefix: exports.globalKeyName,
12
+ suffix: StackEnv_1.organization ? `grp-${StackEnv_1.organization}` : 'grp',
13
+ };
14
+ exports.groupInfo = {
15
+ resourceGroupName: (0, ResourceEnv_1.getResourceName)(exports.globalKeyName, exports.globalConvention),
16
+ };
17
+ exports.logGroupInfo = {
18
+ resourceGroupName: (0, ResourceEnv_1.getResourceName)('logs', exports.globalConvention),
19
+ };
20
+ exports.cdnProfileInfo = {
21
+ profileName: `${exports.globalKeyName}-${StackEnv_1.organization}-cdn-pfl`,
22
+ ...exports.groupInfo,
23
+ };
24
+ /** Global Key Vault Info */
25
+ exports.keyVaultInfo = {
26
+ name: `${exports.globalKeyName}-${StackEnv_1.organization}-vlt`,
27
+ group: exports.groupInfo,
28
+ id: (0, pulumi_1.interpolate) `/subscriptions/${AzureEnv_1.subscriptionId}/resourceGroups/${exports.groupInfo.resourceGroupName}/providers/Microsoft.KeyVault/vaults/${exports.globalKeyName}-${StackEnv_1.organization}-vlt`,
29
+ };
30
+ /** Log will send to either storage or log workspace. Only a few important resources will use workspace like Firewall, Aks */
31
+ // export const logWpInfo: BasicMonitorArgs = {
32
+ // logWpId: interpolate`/subscriptions/${subscriptionId}/resourcegroups/${logGroupInfo.resourceGroupName}/providers/microsoft.operationalinsights/workspaces/${globalKeyName}-${organization}-logs-log`,
33
+ // };
34
+ //
35
+ // export const logStorageInfo: BasicMonitorArgs = {
36
+ // logStorageId: interpolate`/subscriptions/${subscriptionId}/resourceGroups/${logGroupInfo.resourceGroupName}/providers/Microsoft.Storage/storageAccounts/${globalKeyName}${organization}logsstg`,
37
+ // };
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2xvYmFsRW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbW1vbi9HbG9iYWxFbnYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQTRDO0FBQzVDLCtDQUFnRDtBQUNoRCwyQ0FBNkM7QUFDN0MseUNBQTBDO0FBRTdCLFFBQUEsYUFBYSxHQUFHLFFBQVEsQ0FBQztBQUV0QyxvQ0FBb0M7QUFDdkIsUUFBQSxnQkFBZ0IsR0FBb0I7SUFDL0MsTUFBTSxFQUFFLHFCQUFhO0lBQ3JCLE1BQU0sRUFBRSx1QkFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLHVCQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSztDQUNyRCxDQUFDO0FBRVcsUUFBQSxTQUFTLEdBQXNCO0lBQzFDLGlCQUFpQixFQUFFLElBQUEsNkJBQWUsRUFBQyxxQkFBYSxFQUFFLHdCQUFnQixDQUFDO0NBQ3BFLENBQUM7QUFFVyxRQUFBLFlBQVksR0FBc0I7SUFDN0MsaUJBQWlCLEVBQUUsSUFBQSw2QkFBZSxFQUFDLE1BQU0sRUFBRSx3QkFBZ0IsQ0FBQztDQUM3RCxDQUFDO0FBRVcsUUFBQSxjQUFjLEdBQUc7SUFDNUIsV0FBVyxFQUFFLEdBQUcscUJBQWEsSUFBSSx1QkFBWSxVQUFVO0lBQ3ZELEdBQUcsaUJBQVM7Q0FDYixDQUFDO0FBRUYsNEJBQTRCO0FBQ2YsUUFBQSxZQUFZLEdBQWlCO0lBQ3hDLElBQUksRUFBRSxHQUFHLHFCQUFhLElBQUksdUJBQVksTUFBTTtJQUM1QyxLQUFLLEVBQUUsaUJBQVM7SUFDaEIsRUFBRSxFQUFFLElBQUEsb0JBQVcsRUFBQSxrQkFBa0IseUJBQWMsbUJBQW1CLGlCQUFTLENBQUMsaUJBQWlCLHdDQUF3QyxxQkFBYSxJQUFJLHVCQUFZLE1BQU07Q0FDekssQ0FBQztBQUVGLDZIQUE2SDtBQUM3SCwrQ0FBK0M7QUFDL0MsME1BQTBNO0FBQzFNLEtBQUs7QUFDTCxFQUFFO0FBQ0Ysb0RBQW9EO0FBQ3BELHFNQUFxTTtBQUNyTSxLQUFLIn0=
@@ -0,0 +1,10 @@
1
+ /** Replace all characters in string*/
2
+ export declare function replaceAll(value: string, search: string, replace: string): string;
3
+ export declare const toBase64: (value: string) => string;
4
+ export declare const shallowEquals: (obj1: any, obj2: any) => boolean;
5
+ /** Get Domain from Url*/
6
+ export declare const getDomainFromUrl: (url: string) => string;
7
+ /** Get Root Domain from Url or Sub domain*/
8
+ export declare const getRootDomainFromUrl: (url: string) => string;
9
+ /** Create Range*/
10
+ export declare const RangeOf: (length: number) => number[];