@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.
- package/Aks/Helper.d.ts +43 -0
- package/Aks/Helper.js +72 -0
- package/Aks/Identity.d.ts +14 -0
- package/Aks/Identity.js +32 -0
- package/Aks/VmSetAutoScale/index.d.ts +16 -0
- package/Aks/VmSetAutoScale/index.js +132 -0
- package/Aks/VmSetMonitor/index.d.ts +12 -0
- package/Aks/VmSetMonitor/index.js +67 -0
- package/Aks/index.d.ts +100 -0
- package/Aks/index.js +558 -0
- package/Apim/ApiProduct/Api.d.ts +35 -0
- package/Apim/ApiProduct/Api.js +131 -0
- package/Apim/ApiProduct/OpenApi.d.ts +85 -0
- package/Apim/ApiProduct/OpenApi.js +3 -0
- package/Apim/ApiProduct/PolicyBuilder.d.ts +79 -0
- package/Apim/ApiProduct/PolicyBuilder.js +361 -0
- package/Apim/ApiProduct/Product.d.ts +8 -0
- package/Apim/ApiProduct/Product.js +63 -0
- package/Apim/ApiProduct/SwaggerHelper.d.ts +6 -0
- package/Apim/ApiProduct/SwaggerHelper.js +44 -0
- package/Apim/ApiProduct/index.d.ts +9 -0
- package/Apim/ApiProduct/index.js +22 -0
- package/Apim/Helpers.d.ts +0 -0
- package/Apim/Helpers.js +2 -0
- package/Apim/HookProxy/index.d.ts +20 -0
- package/Apim/HookProxy/index.js +27 -0
- package/Apim/index.d.ts +22 -0
- package/Apim/index.js +118 -0
- package/Apps/LogicApp.d.ts +12 -0
- package/Apps/LogicApp.js +19 -0
- package/Automation/AutoAccount.d.ts +5 -0
- package/Automation/AutoAccount.js +20 -0
- package/AzAd/B2C.d.ts +9 -0
- package/AzAd/B2C.js +38 -0
- package/AzAd/ConditionalPolicies/index.d.ts +0 -0
- package/AzAd/ConditionalPolicies/index.js +2 -0
- package/AzAd/EnvRoles.d.ts +12 -0
- package/AzAd/EnvRoles.js +62 -0
- package/AzAd/GraphDefinition.d.ts +14 -0
- package/AzAd/GraphDefinition.js +5136 -0
- package/AzAd/Group.d.ts +29 -0
- package/AzAd/Group.js +70 -0
- package/AzAd/Helper.d.ts +18 -0
- package/AzAd/Helper.js +37 -0
- package/AzAd/Identities/AzDevOps.d.ts +23 -0
- package/AzAd/Identities/AzDevOps.js +61 -0
- package/AzAd/Identities/AzUserAdRevertSync.d.ts +14 -0
- package/AzAd/Identities/AzUserAdRevertSync.js +18 -0
- package/AzAd/Identity.d.ts +51 -0
- package/AzAd/Identity.js +133 -0
- package/AzAd/ManagedIdentity.d.ts +6 -0
- package/AzAd/ManagedIdentity.js +23 -0
- package/AzAd/Role.d.ts +19 -0
- package/AzAd/Role.js +25 -0
- package/AzAd/RoleAssignment.d.ts +79 -0
- package/AzAd/RoleAssignment.js +48 -0
- package/AzAd/RolesBuiltIn.d.ts +62 -0
- package/AzAd/RolesBuiltIn.js +13841 -0
- package/Cdn/index.d.ts +11 -0
- package/Cdn/index.js +47 -0
- package/Certificate/index.d.ts +41 -0
- package/Certificate/index.js +156 -0
- package/Certificate/p12.d.ts +5 -0
- package/Certificate/p12.js +37 -0
- package/Common/AppConfigs/dotnetConfig.d.ts +15 -0
- package/Common/AppConfigs/dotnetConfig.js +20 -0
- package/Common/AutoTags.d.ts +1 -0
- package/Common/AutoTags.js +24 -0
- package/Common/AzureEnv.d.ts +37 -0
- package/Common/AzureEnv.js +94 -0
- package/Common/ConfigHelper.d.ts +5 -0
- package/Common/ConfigHelper.js +14 -0
- package/Common/GlobalEnv.d.ts +14 -0
- package/Common/GlobalEnv.js +38 -0
- package/Common/Helpers.d.ts +10 -0
- package/Common/Helpers.js +30 -0
- package/Common/Location.d.ts +4 -0
- package/Common/Location.js +23 -0
- package/Common/LocationBuiltIn.d.ts +81 -0
- package/Common/LocationBuiltIn.js +1925 -0
- package/Common/Naming/index.d.ts +62 -0
- package/Common/Naming/index.js +146 -0
- package/Common/ResourceEnv.d.ts +16 -0
- package/Common/ResourceEnv.js +29 -0
- package/Common/StackEnv.d.ts +4 -0
- package/Common/StackEnv.js +22 -0
- package/Common/index.d.ts +5 -0
- package/Common/index.js +9 -0
- package/ContainerRegistry/Helper.d.ts +23 -0
- package/ContainerRegistry/Helper.js +47 -0
- package/ContainerRegistry/index.d.ts +28 -0
- package/ContainerRegistry/index.js +103 -0
- package/Core/Helper.d.ts +16 -0
- package/Core/Helper.js +37 -0
- package/Core/KeyGenetators.d.ts +33 -0
- package/Core/KeyGenetators.js +66 -0
- package/Core/Locker.d.ts +13 -0
- package/Core/Locker.js +14 -0
- package/Core/Random.d.ts +40 -0
- package/Core/Random.js +83 -0
- package/Core/ResourceCreator.d.ts +17 -0
- package/Core/ResourceCreator.js +48 -0
- package/Core/ResourceGroup.d.ts +13 -0
- package/Core/ResourceGroup.js +45 -0
- package/CosmosDb/index.d.ts +33 -0
- package/CosmosDb/index.js +129 -0
- package/CustomRoles/index.d.ts +5 -0
- package/CustomRoles/index.js +27 -0
- package/IOT/Hub/index.d.ts +32 -0
- package/IOT/Hub/index.js +208 -0
- package/KeyVault/CustomHelper.d.ts +35 -0
- package/KeyVault/CustomHelper.js +40 -0
- package/KeyVault/Helper.d.ts +33 -0
- package/KeyVault/Helper.js +58 -0
- package/KeyVault/VaultAccess.d.ts +15 -0
- package/KeyVault/VaultAccess.js +47 -0
- package/KeyVault/VaultPermissions.d.ts +26 -0
- package/KeyVault/VaultPermissions.js +169 -0
- package/KeyVault/index.d.ts +28 -0
- package/KeyVault/index.js +136 -0
- package/KubeX/AcrSecret.d.ts +15 -0
- package/KubeX/AcrSecret.js +31 -0
- package/KubeX/Apps/AstroPage.d.ts +12 -0
- package/KubeX/Apps/AstroPage.js +33 -0
- package/KubeX/Apps/KafKa.d.ts +6 -0
- package/KubeX/Apps/KafKa.js +13 -0
- package/KubeX/Apps/Nobelium.d.ts +13 -0
- package/KubeX/Apps/Nobelium.js +37 -0
- package/KubeX/Apps/Wikijs.d.ts +30 -0
- package/KubeX/Apps/Wikijs.js +54 -0
- package/KubeX/Apps/WordPress.d.ts +24 -0
- package/KubeX/Apps/WordPress.js +55 -0
- package/KubeX/Apps/YarpProxy/index.d.ts +17 -0
- package/KubeX/Apps/YarpProxy/index.js +107 -0
- package/KubeX/Apps/YarpProxy/type.d.ts +55 -0
- package/KubeX/Apps/YarpProxy/type.js +3 -0
- package/KubeX/CertHelper.d.ts +1 -0
- package/KubeX/CertHelper.js +9 -0
- package/KubeX/CertImports.d.ts +19 -0
- package/KubeX/CertImports.js +70 -0
- package/KubeX/CloudFlare/CertCreator.d.ts +19 -0
- package/KubeX/CloudFlare/CertCreator.js +90 -0
- package/KubeX/CloudFlare/CertImports.d.ts +17 -0
- package/KubeX/CloudFlare/CertImports.js +34 -0
- package/KubeX/CloudFlare/DynamicDns.d.ts +21 -0
- package/KubeX/CloudFlare/DynamicDns.js +39 -0
- package/KubeX/CloudFlare/Tunnel-Helm.d.ts +17 -0
- package/KubeX/CloudFlare/Tunnel-Helm.js +12 -0
- package/KubeX/CloudFlare/Tunnel.d.ts +23 -0
- package/KubeX/CloudFlare/Tunnel.js +54 -0
- package/KubeX/CloudFlare/index.d.ts +13 -0
- package/KubeX/CloudFlare/index.js +36 -0
- package/KubeX/Clusters/K3s/AutoUpgradeController/index.d.ts +6 -0
- package/KubeX/Clusters/K3s/AutoUpgradeController/index.js +60 -0
- package/KubeX/ConfigSecret.d.ts +24 -0
- package/KubeX/ConfigSecret.js +38 -0
- package/KubeX/Core/CertManager/index.d.ts +24 -0
- package/KubeX/Core/CertManager/index.js +96 -0
- package/KubeX/Core/KsCertSecret.d.ts +12 -0
- package/KubeX/Core/KsCertSecret.js +22 -0
- package/KubeX/Core/KsSecret.d.ts +9 -0
- package/KubeX/Core/KsSecret.js +12 -0
- package/KubeX/Core/LoadBalancer/MetalLB.d.ts +7 -0
- package/KubeX/Core/LoadBalancer/MetalLB.js +21 -0
- package/KubeX/Core/Monitoring/index.d.ts +22 -0
- package/KubeX/Core/Monitoring/index.js +322 -0
- package/KubeX/Core/Namespace.d.ts +12 -0
- package/KubeX/Core/Namespace.js +41 -0
- package/KubeX/Core/Nginx/index.d.ts +60 -0
- package/KubeX/Core/Nginx/index.js +109 -0
- package/KubeX/Core/OAuthProxy/index.d.ts +0 -0
- package/KubeX/Core/OAuthProxy/index.js +3 -0
- package/KubeX/Core/ResourceQuota.d.ts +12 -0
- package/KubeX/Core/ResourceQuota.js +13 -0
- package/KubeX/Core/SecurityRules.d.ts +34 -0
- package/KubeX/Core/SecurityRules.js +93 -0
- package/KubeX/Core/StorageClass/azureBlob.d.ts +20 -0
- package/KubeX/Core/StorageClass/azureBlob.js +77 -0
- package/KubeX/Core/StorageClass/azureFile.d.ts +17 -0
- package/KubeX/Core/StorageClass/azureFile.js +45 -0
- package/KubeX/Core/StorageClass/index.d.ts +13 -0
- package/KubeX/Core/StorageClass/index.js +25 -0
- package/KubeX/Core/index.d.ts +57 -0
- package/KubeX/Core/index.js +94 -0
- package/KubeX/Databases/MariaDb.d.ts +11 -0
- package/KubeX/Databases/MariaDb.js +39 -0
- package/KubeX/Databases/MySql.V2.d.ts +11 -0
- package/KubeX/Databases/MySql.V2.js +40 -0
- package/KubeX/Databases/MySql.d.ts +13 -0
- package/KubeX/Databases/MySql.js +55 -0
- package/KubeX/Databases/PostgreSql/PostgreSQL-HA.d.ts +10 -0
- package/KubeX/Databases/PostgreSql/PostgreSQL-HA.js +47 -0
- package/KubeX/Databases/PostgreSql/PostgreSQL.d.ts +10 -0
- package/KubeX/Databases/PostgreSql/PostgreSQL.js +51 -0
- package/KubeX/Databases/PostgreSql/PostgreSql.v1.d.ts +13 -0
- package/KubeX/Databases/PostgreSql/PostgreSql.v1.js +56 -0
- package/KubeX/Databases/PostgreSql/index.d.ts +17 -0
- package/KubeX/Databases/PostgreSql/index.js +6 -0
- package/KubeX/Databases/RedisCache.d.ts +14 -0
- package/KubeX/Databases/RedisCache.js +65 -0
- package/KubeX/Databases/SqlServer.d.ts +15 -0
- package/KubeX/Databases/SqlServer.js +77 -0
- package/KubeX/Deployment/PodAutoscaler.d.ts +14 -0
- package/KubeX/Deployment/PodAutoscaler.js +51 -0
- package/KubeX/Deployment/index.d.ts +136 -0
- package/KubeX/Deployment/index.js +306 -0
- package/KubeX/Helpers.d.ts +4 -0
- package/KubeX/Helpers.js +17 -0
- package/KubeX/Ingress/AppGatewayIngress.d.ts +2 -0
- package/KubeX/Ingress/AppGatewayIngress.js +4 -0
- package/KubeX/Ingress/Conts.d.ts +13 -0
- package/KubeX/Ingress/Conts.js +18 -0
- package/KubeX/Ingress/NginxIngress.d.ts +3 -0
- package/KubeX/Ingress/NginxIngress.js +186 -0
- package/KubeX/Ingress/NginxProxy.d.ts +21 -0
- package/KubeX/Ingress/NginxProxy.js +43 -0
- package/KubeX/Ingress/TraefikIngress/CustomHeader.d.ts +15 -0
- package/KubeX/Ingress/TraefikIngress/CustomHeader.js +15 -0
- package/KubeX/Ingress/TraefikIngress/index.d.ts +11 -0
- package/KubeX/Ingress/TraefikIngress/index.js +95 -0
- package/KubeX/Ingress/index.d.ts +5 -0
- package/KubeX/Ingress/index.js +12 -0
- package/KubeX/Ingress/type.d.ts +82 -0
- package/KubeX/Ingress/type.js +3 -0
- package/KubeX/Providers/index.d.ts +8 -0
- package/KubeX/Providers/index.js +15 -0
- package/KubeX/Storage/Longhorn/index.d.ts +15 -0
- package/KubeX/Storage/Longhorn/index.js +54 -0
- package/KubeX/Storage/index.d.ts +25 -0
- package/KubeX/Storage/index.js +79 -0
- package/KubeX/Tools/AWS/LocalStack.d.ts +7 -0
- package/KubeX/Tools/AWS/LocalStack.js +29 -0
- package/KubeX/Tools/AWS/S3.d.ts +6 -0
- package/KubeX/Tools/AWS/S3.js +44 -0
- package/KubeX/Tools/AWS/index.d.ts +7 -0
- package/KubeX/Tools/AWS/index.js +14 -0
- package/KubeX/Tools/AppHealthzMonitor.d.ts +18 -0
- package/KubeX/Tools/AppHealthzMonitor.js +52 -0
- package/KubeX/Tools/ArgoCD/index.d.ts +17 -0
- package/KubeX/Tools/ArgoCD/index.js +131 -0
- package/KubeX/Tools/Dapr/Storage.d.ts +66 -0
- package/KubeX/Tools/Dapr/Storage.js +70 -0
- package/KubeX/Tools/Dapr/index.d.ts +10 -0
- package/KubeX/Tools/Dapr/index.js +31 -0
- package/KubeX/Tools/Echo-App.d.ts +3 -0
- package/KubeX/Tools/Echo-App.js +21 -0
- package/KubeX/Tools/Gitea/GiteaRepo.d.ts +72 -0
- package/KubeX/Tools/Gitea/GiteaRepo.js +184 -0
- package/KubeX/Tools/Gitea/GiteaRunner.d.ts +11 -0
- package/KubeX/Tools/Gitea/GiteaRunner.js +37 -0
- package/KubeX/Tools/Gitea/GiteaRunner.v1.d.ts +11 -0
- package/KubeX/Tools/Gitea/GiteaRunner.v1.js +123 -0
- package/KubeX/Tools/HarborRepo.d.ts +29 -0
- package/KubeX/Tools/HarborRepo.js +78 -0
- package/KubeX/Tools/HelloWorld.d.ts +3 -0
- package/KubeX/Tools/HelloWorld.js +21 -0
- package/KubeX/Tools/KubeCleanup.d.ts +9 -0
- package/KubeX/Tools/KubeCleanup.js +34 -0
- package/KubeX/Tools/NoIp.d.ts +13 -0
- package/KubeX/Tools/NoIp.js +24 -0
- package/KubeX/Tools/OpenLDAP/index.d.ts +12 -0
- package/KubeX/Tools/OpenLDAP/index.js +56 -0
- package/KubeX/Tools/OutlineVpn/index.d.ts +25 -0
- package/KubeX/Tools/OutlineVpn/index.js +256 -0
- package/KubeX/Tools/SqlPad.d.ts +29 -0
- package/KubeX/Tools/SqlPad.js +133 -0
- package/KubeX/Tools/ToolPod.d.ts +10 -0
- package/KubeX/Tools/ToolPod.js +40 -0
- package/KubeX/Tools/UptimeKuma.d.ts +6 -0
- package/KubeX/Tools/UptimeKuma.js +38 -0
- package/KubeX/Tools/index.d.ts +27 -0
- package/KubeX/Tools/index.js +35 -0
- package/KubeX/VairableResolvers/index.d.ts +15 -0
- package/KubeX/VairableResolvers/index.js +49 -0
- package/KubeX/kx/index.d.ts +114 -0
- package/KubeX/kx/index.js +423 -0
- package/KubeX/types.d.ts +49 -0
- package/KubeX/types.js +3 -0
- package/Logs/AppInsight.d.ts +16 -0
- package/Logs/AppInsight.js +48 -0
- package/Logs/Helpers.d.ts +50 -0
- package/Logs/Helpers.js +95 -0
- package/Logs/LogAnalytics.d.ts +17 -0
- package/Logs/LogAnalytics.js +54 -0
- package/Logs/WebTest.d.ts +13 -0
- package/Logs/WebTest.js +68 -0
- package/Logs/index.d.ts +42 -0
- package/Logs/index.js +69 -0
- package/MySql/index.d.ts +20 -0
- package/MySql/index.js +93 -0
- package/Postgresql/index.d.ts +20 -0
- package/Postgresql/index.js +93 -0
- package/ReadMe.md +36 -0
- package/RedisCache/index.d.ts +9 -0
- package/RedisCache/index.js +79 -0
- package/ServiceBus/ServiceBusHelper.d.ts +21 -0
- package/ServiceBus/ServiceBusHelper.js +35 -0
- package/ServiceBus/index.d.ts +98 -0
- package/ServiceBus/index.js +396 -0
- package/SignalR/index.d.ts +20 -0
- package/SignalR/index.js +114 -0
- package/Sql/Auditing.d.ts +0 -0
- package/Sql/Auditing.js +2 -0
- package/Sql/Helper.d.ts +9 -0
- package/Sql/Helper.js +11 -0
- package/Sql/SqlDb.d.ts +14 -0
- package/Sql/SqlDb.js +42 -0
- package/Sql/index.d.ts +44 -0
- package/Sql/index.js +236 -0
- package/Storage/CdnEndpoint.d.ts +12 -0
- package/Storage/CdnEndpoint.js +62 -0
- package/Storage/CdnRules.d.ts +6 -0
- package/Storage/CdnRules.js +134 -0
- package/Storage/Helper.d.ts +28 -0
- package/Storage/Helper.js +66 -0
- package/Storage/ManagementRules.d.ts +70 -0
- package/Storage/ManagementRules.js +32 -0
- package/Storage/index.d.ts +55 -0
- package/Storage/index.js +264 -0
- package/VM/index.d.ts +37 -0
- package/VM/index.js +138 -0
- package/VNet/Bastion.d.ts +8 -0
- package/VNet/Bastion.js +30 -0
- package/VNet/Firewall.d.ts +27 -0
- package/VNet/Firewall.js +87 -0
- package/VNet/FirewallPolicies/AksFirewallPolicy.d.ts +20 -0
- package/VNet/FirewallPolicies/AksFirewallPolicy.js +241 -0
- package/VNet/FirewallPolicies/CloudPCFirewallPolicy.d.ts +14 -0
- package/VNet/FirewallPolicies/CloudPCFirewallPolicy.js +303 -0
- package/VNet/FirewallPolicy.d.ts +28 -0
- package/VNet/FirewallPolicy.js +110 -0
- package/VNet/FirewallRules/AksFirewallRules.d.ts +24 -0
- package/VNet/FirewallRules/AksFirewallRules.js +250 -0
- package/VNet/FirewallRules/DefaultRules.d.ts +2 -0
- package/VNet/FirewallRules/DefaultRules.js +23 -0
- package/VNet/FirewallRules/types.d.ts +20 -0
- package/VNet/FirewallRules/types.js +5 -0
- package/VNet/GlobalNetworkPeering.d.ts +9 -0
- package/VNet/GlobalNetworkPeering.js +17 -0
- package/VNet/Helper.d.ts +33 -0
- package/VNet/Helper.js +86 -0
- package/VNet/IpAddress.d.ts +17 -0
- package/VNet/IpAddress.js +38 -0
- package/VNet/IpAddressPrefix.d.ts +22 -0
- package/VNet/IpAddressPrefix.js +42 -0
- package/VNet/NSGRules/AzADService.d.ts +10 -0
- package/VNet/NSGRules/AzADService.js +45 -0
- package/VNet/NetworkPeering.d.ts +10 -0
- package/VNet/NetworkPeering.js +29 -0
- package/VNet/PrivateDns.d.ts +33 -0
- package/VNet/PrivateDns.js +64 -0
- package/VNet/PrivateEndpoint.d.ts +9 -0
- package/VNet/PrivateEndpoint.js +71 -0
- package/VNet/PublicDns.d.ts +21 -0
- package/VNet/PublicDns.js +59 -0
- package/VNet/RouteTable.d.ts +13 -0
- package/VNet/RouteTable.js +23 -0
- package/VNet/SecurityGroup.d.ts +8 -0
- package/VNet/SecurityGroup.js +13 -0
- package/VNet/Subnet.d.ts +26 -0
- package/VNet/Subnet.js +48 -0
- package/VNet/VirtualWAN.d.ts +25 -0
- package/VNet/VirtualWAN.js +40 -0
- package/VNet/Vnet.d.ts +51 -0
- package/VNet/Vnet.js +196 -0
- package/VNet/index.d.ts +65 -0
- package/VNet/index.js +198 -0
- package/Web/AppCertOrder.d.ts +16 -0
- package/Web/AppCertOrder.js +34 -0
- package/Web/AppConfig.d.ts +16 -0
- package/Web/AppConfig.js +79 -0
- package/Web/AppGateway.d.ts +15 -0
- package/Web/AppGateway.js +32 -0
- package/Web/FuncApp.d.ts +12 -0
- package/Web/FuncApp.js +24 -0
- package/Web/Helpers.d.ts +6 -0
- package/Web/Helpers.js +36 -0
- package/Web/WebAppPlan.d.ts +7 -0
- package/Web/WebAppPlan.js +26 -0
- package/Web/types.d.ts +169 -0
- package/Web/types.js +3 -0
- package/package.json +34 -0
- package/types.d.ts +69 -0
- package/types.js +3 -0
- package/z_tests/_tools/Mocks.d.ts +2 -0
- package/z_tests/_tools/Mocks.js +47 -0
package/MySql/index.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const Naming_1 = require("../Common/Naming");
|
|
4
|
+
const azure = require("@pulumi/azure-native");
|
|
5
|
+
const Random_1 = require("../Core/Random");
|
|
6
|
+
const CustomHelper_1 = require("../KeyVault/CustomHelper");
|
|
7
|
+
const AzureEnv_1 = require("../Common/AzureEnv");
|
|
8
|
+
exports.default = ({ name, group,
|
|
9
|
+
//auth,
|
|
10
|
+
version = azure.dbformysql.ServerVersion.ServerVersion_8_0_21, storageSizeGB = 20,
|
|
11
|
+
/**
|
|
12
|
+
[Standard_B1ms, Standard_B1s, Standard_B2ms, Standard_B2s, Standard_B4ms, Standard_B8ms, Standard_D16s_v3, Standard_D2s_v3, Standard_D32s_v3, Standard_D4s_v3, Standard_D64s_v3, Standard_D8s_v3, Standard_E16s_v3, Standard_E2s_v3, Standard_E32s_v3, Standard_E4s_v3, Standard_E64s_v3, Standard_E8s_v3, Standard_M128ms, Standard_M128s, Standard_M64ms, Standard_M64s, Standard_E48s_v3, Standard_D2ds_v4, Standard_D4ds_v4, Standard_D8ds_v4, Standard_D16ds_v4, Standard_D32ds_v4, Standard_D48ds_v4, Standard_D64ds_v4, Standard_E2ds_v4, Standard_E4ds_v4, Standard_E8ds_v4, Standard_E16ds_v4, Standard_E32ds_v4, Standard_E48ds_v4, Standard_E64ds_v4, Standard_D48s_v3, Standard_E20ds_v4, Standard_M8ms, Standard_M16ms, Standard_M32ts, Standard_M32ls, Standard_M32ms, Standard_M64ls, Standard_M64, Standard_M64m, Standard_M128, Standard_M128m, Standard_B12ms, Standard_B16ms, Standard_B20ms, Standard_D2ads_v5, Standard_D4ads_v5, Standard_D8ads_v5, Standard_D16ads_v5, Standard_D32ads_v5, Standard_D48ads_v5, Standard_D64ads_v5, Standard_D96ads_v5, Standard_E2ads_v5, Standard_E4ads_v5, Standard_E8ads_v5, Standard_E16ads_v5, Standard_E20ads_v5, Standard_E32ads_v5, Standard_E48ads_v5, Standard_E64ads_v5, Standard_E96ads_v5, Standard_D2_v5, Standard_D4_v5, Standard_D8_v5, Standard_D16_v5, Standard_D32_v5, Standard_D48_v5, Standard_D64_v5, Standard_D96_v5, Standard_D2ds_v5, Standard_D4ds_v5, Standard_D8ds_v5, Standard_D16ds_v5, Standard_D32ds_v5, Standard_D48ds_v5, Standard_D64ds_v5, Standard_D96ds_v5, Standard_E2ds_v5, Standard_E4ds_v5, Standard_E8ds_v5, Standard_E16ds_v5, Standard_E20ds_v5, Standard_E32ds_v5, Standard_E48ds_v5, Standard_E64ds_v5, Standard_E96ds_v5, Standard_E104ids_v5, Standard_E2bds_v5, Standard_E4bds_v5, Standard_E8bds_v5, Standard_E16bds_v5, Standard_E32bds_v5, Standard_E48bds_v5, Standard_E64bds_v5, Standard_E112iads_v5, Standard_M32dms_v2, Standard_M64ds_v2, Standard_M64dms_v2, Standard_M128ds_v2, Standard_M128dms_v2, Standard_M192ids_v2, Standard_M192idms_v2]
|
|
13
|
+
*/
|
|
14
|
+
sku = {
|
|
15
|
+
name: 'Standard_B1ms',
|
|
16
|
+
tier: 'Burstable',
|
|
17
|
+
}, network, databases, vaultInfo, dependsOn, }) => {
|
|
18
|
+
name = (0, Naming_1.getMySqlName)(name);
|
|
19
|
+
const username = 'MySqlAdmin';
|
|
20
|
+
const password = (0, Random_1.randomPassword)({
|
|
21
|
+
name,
|
|
22
|
+
length: 25,
|
|
23
|
+
options: { special: false },
|
|
24
|
+
}).result;
|
|
25
|
+
const mySql = new azure.dbformysql.Server(name, {
|
|
26
|
+
serverName: name,
|
|
27
|
+
...group,
|
|
28
|
+
version,
|
|
29
|
+
storage: { storageSizeGB },
|
|
30
|
+
// authConfig: {
|
|
31
|
+
// passwordAuth: 'Enabled',
|
|
32
|
+
// activeDirectoryAuth: 'Enabled',
|
|
33
|
+
// tenantId,
|
|
34
|
+
// },
|
|
35
|
+
administratorLogin: username,
|
|
36
|
+
administratorLoginPassword: password,
|
|
37
|
+
dataEncryption: { type: 'SystemManaged' },
|
|
38
|
+
//maintenanceWindow: { dayOfWeek: 6 },
|
|
39
|
+
sku,
|
|
40
|
+
//network: {},
|
|
41
|
+
backup: {
|
|
42
|
+
geoRedundantBackup: AzureEnv_1.isPrd ? 'Enabled' : 'Disabled',
|
|
43
|
+
backupRetentionDays: AzureEnv_1.isPrd ? 7 : 1,
|
|
44
|
+
},
|
|
45
|
+
highAvailability: { mode: AzureEnv_1.isPrd ? 'ZoneRedundant' : 'Disabled' },
|
|
46
|
+
//availabilityZone: isPrd ? 3 : 1,
|
|
47
|
+
}, {
|
|
48
|
+
dependsOn,
|
|
49
|
+
protect: true,
|
|
50
|
+
ignoreChanges: ['administratorLogin', 'dataEncryption'],
|
|
51
|
+
});
|
|
52
|
+
if (network) {
|
|
53
|
+
if (network.firewallRules) {
|
|
54
|
+
network.firewallRules.map((f, i) => new azure.dbformysql.FirewallRule(`${name}-firewall-${i}`, {
|
|
55
|
+
firewallRuleName: `${name}-firewall-${i}`,
|
|
56
|
+
serverName: mySql.name,
|
|
57
|
+
...group,
|
|
58
|
+
...f,
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
if (network.allowsPublicAccess)
|
|
62
|
+
new azure.dbformysql.FirewallRule(`${name}-firewall-allowpublic`, {
|
|
63
|
+
firewallRuleName: `${name}-firewall-allowpublic`,
|
|
64
|
+
serverName: mySql.name,
|
|
65
|
+
...group,
|
|
66
|
+
startIpAddress: '0.0.0.0',
|
|
67
|
+
endIpAddress: '255.255.255.255',
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (vaultInfo) {
|
|
71
|
+
(0, CustomHelper_1.addCustomSecret)({
|
|
72
|
+
name: `${name}-login`,
|
|
73
|
+
value: username,
|
|
74
|
+
vaultInfo,
|
|
75
|
+
contentType: name,
|
|
76
|
+
});
|
|
77
|
+
(0, CustomHelper_1.addCustomSecret)({
|
|
78
|
+
name: `${name}-pass`,
|
|
79
|
+
value: password,
|
|
80
|
+
vaultInfo,
|
|
81
|
+
contentType: name,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
if (databases) {
|
|
85
|
+
databases.map((d) => new azure.dbformysql.Database(`${name}-${d}`, {
|
|
86
|
+
serverName: mySql.name,
|
|
87
|
+
databaseName: d,
|
|
88
|
+
...group,
|
|
89
|
+
}, { dependsOn: mySql, protect: true }));
|
|
90
|
+
}
|
|
91
|
+
return mySql;
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvTXlTcWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSw2Q0FBZ0Q7QUFFaEQsOENBQThDO0FBQzlDLDJDQUFnRDtBQUVoRCwyREFBMkQ7QUFDM0QsaURBQTJDO0FBcUIzQyxrQkFBZSxDQUFDLEVBQ2QsSUFBSSxFQUNKLEtBQUs7QUFDTCxPQUFPO0FBQ1AsT0FBTyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUM3RCxhQUFhLEdBQUcsRUFBRTtBQUNsQjs7bUJBRW1CO0FBQ25CLEdBQUcsR0FBRztJQUNKLElBQUksRUFBRSxlQUFlO0lBQ3JCLElBQUksRUFBRSxXQUFXO0NBQ2xCLEVBQ0QsT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxHQUNFLEVBQUUsRUFBRTtJQUNmLElBQUksR0FBRyxJQUFBLHFCQUFZLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFFMUIsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDO0lBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUEsdUJBQWMsRUFBQztRQUM5QixJQUFJO1FBQ0osTUFBTSxFQUFFLEVBQUU7UUFDVixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO0tBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFFVixNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUN2QyxJQUFJLEVBQ0o7UUFDRSxVQUFVLEVBQUUsSUFBSTtRQUNoQixHQUFHLEtBQUs7UUFDUixPQUFPO1FBQ1AsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFO1FBRTFCLGdCQUFnQjtRQUNoQiw2QkFBNkI7UUFDN0Isb0NBQW9DO1FBQ3BDLGNBQWM7UUFDZCxLQUFLO1FBRUwsa0JBQWtCLEVBQUUsUUFBUTtRQUM1QiwwQkFBMEIsRUFBRSxRQUFRO1FBQ3BDLGNBQWMsRUFB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
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BasicResourceArgs, KeyVaultInfo } from '../types';
|
|
2
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
3
|
+
import * as azure from '@pulumi/azure-native';
|
|
4
|
+
import * as inputs from '@pulumi/azure-native/types/input';
|
|
5
|
+
export interface PostgresProps extends BasicResourceArgs {
|
|
6
|
+
sku?: pulumi.Input<inputs.dbforpostgresql.SkuArgs>;
|
|
7
|
+
vaultInfo?: KeyVaultInfo;
|
|
8
|
+
version?: azure.dbforpostgresql.ServerVersion;
|
|
9
|
+
storageSizeGB?: number;
|
|
10
|
+
databases?: Array<string>;
|
|
11
|
+
network?: {
|
|
12
|
+
allowsPublicAccess?: boolean;
|
|
13
|
+
firewallRules?: Array<{
|
|
14
|
+
startIpAddress: string;
|
|
15
|
+
endIpAddress: string;
|
|
16
|
+
}>;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
declare const _default: ({ name, group, version, storageSizeGB, sku, network, databases, vaultInfo, dependsOn, }: PostgresProps) => import("@pulumi/azure-native/dbforpostgresql/server").Server;
|
|
20
|
+
export default _default;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const Naming_1 = require("../Common/Naming");
|
|
4
|
+
const azure = require("@pulumi/azure-native");
|
|
5
|
+
const AzureEnv_1 = require("../Common/AzureEnv");
|
|
6
|
+
const Random_1 = require("../Core/Random");
|
|
7
|
+
const CustomHelper_1 = require("../KeyVault/CustomHelper");
|
|
8
|
+
exports.default = ({ name, group,
|
|
9
|
+
//auth,
|
|
10
|
+
version = azure.dbforpostgresql.ServerVersion.ServerVersion_14, storageSizeGB = 128,
|
|
11
|
+
/**
|
|
12
|
+
[Standard_B1ms, Standard_B1s, Standard_B2ms, Standard_B2s, Standard_B4ms, Standard_B8ms, Standard_D16s_v3, Standard_D2s_v3, Standard_D32s_v3, Standard_D4s_v3, Standard_D64s_v3, Standard_D8s_v3, Standard_E16s_v3, Standard_E2s_v3, Standard_E32s_v3, Standard_E4s_v3, Standard_E64s_v3, Standard_E8s_v3, Standard_M128ms, Standard_M128s, Standard_M64ms, Standard_M64s, Standard_E48s_v3, Standard_D2ds_v4, Standard_D4ds_v4, Standard_D8ds_v4, Standard_D16ds_v4, Standard_D32ds_v4, Standard_D48ds_v4, Standard_D64ds_v4, Standard_E2ds_v4, Standard_E4ds_v4, Standard_E8ds_v4, Standard_E16ds_v4, Standard_E32ds_v4, Standard_E48ds_v4, Standard_E64ds_v4, Standard_D48s_v3, Standard_E20ds_v4, Standard_M8ms, Standard_M16ms, Standard_M32ts, Standard_M32ls, Standard_M32ms, Standard_M64ls, Standard_M64, Standard_M64m, Standard_M128, Standard_M128m, Standard_B12ms, Standard_B16ms, Standard_B20ms, Standard_D2ads_v5, Standard_D4ads_v5, Standard_D8ads_v5, Standard_D16ads_v5, Standard_D32ads_v5, Standard_D48ads_v5, Standard_D64ads_v5, Standard_D96ads_v5, Standard_E2ads_v5, Standard_E4ads_v5, Standard_E8ads_v5, Standard_E16ads_v5, Standard_E20ads_v5, Standard_E32ads_v5, Standard_E48ads_v5, Standard_E64ads_v5, Standard_E96ads_v5, Standard_D2_v5, Standard_D4_v5, Standard_D8_v5, Standard_D16_v5, Standard_D32_v5, Standard_D48_v5, Standard_D64_v5, Standard_D96_v5, Standard_D2ds_v5, Standard_D4ds_v5, Standard_D8ds_v5, Standard_D16ds_v5, Standard_D32ds_v5, Standard_D48ds_v5, Standard_D64ds_v5, Standard_D96ds_v5, Standard_E2ds_v5, Standard_E4ds_v5, Standard_E8ds_v5, Standard_E16ds_v5, Standard_E20ds_v5, Standard_E32ds_v5, Standard_E48ds_v5, Standard_E64ds_v5, Standard_E96ds_v5, Standard_E104ids_v5, Standard_E2bds_v5, Standard_E4bds_v5, Standard_E8bds_v5, Standard_E16bds_v5, Standard_E32bds_v5, Standard_E48bds_v5, Standard_E64bds_v5, Standard_E112iads_v5, Standard_M32dms_v2, Standard_M64ds_v2, Standard_M64dms_v2, Standard_M128ds_v2, Standard_M128dms_v2, Standard_M192ids_v2, Standard_M192idms_v2]
|
|
13
|
+
*/
|
|
14
|
+
sku = {
|
|
15
|
+
name: 'Standard_B1ms',
|
|
16
|
+
tier: 'Burstable',
|
|
17
|
+
}, network, databases, vaultInfo, dependsOn, }) => {
|
|
18
|
+
name = (0, Naming_1.getPostgresqlName)(name);
|
|
19
|
+
const username = 'postgresadmin';
|
|
20
|
+
const password = (0, Random_1.randomPassword)({
|
|
21
|
+
name,
|
|
22
|
+
length: 25,
|
|
23
|
+
options: { special: false },
|
|
24
|
+
}).result;
|
|
25
|
+
const postgres = new azure.dbforpostgresql.Server(name, {
|
|
26
|
+
serverName: name,
|
|
27
|
+
...group,
|
|
28
|
+
version,
|
|
29
|
+
storage: { storageSizeGB },
|
|
30
|
+
authConfig: {
|
|
31
|
+
passwordAuth: 'Enabled',
|
|
32
|
+
activeDirectoryAuth: 'Enabled',
|
|
33
|
+
tenantId: AzureEnv_1.tenantId,
|
|
34
|
+
},
|
|
35
|
+
administratorLogin: username,
|
|
36
|
+
administratorLoginPassword: password,
|
|
37
|
+
dataEncryption: { type: 'SystemManaged' },
|
|
38
|
+
//maintenanceWindow: { dayOfWeek: 6 },
|
|
39
|
+
sku,
|
|
40
|
+
//network: {},
|
|
41
|
+
backup: {
|
|
42
|
+
geoRedundantBackup: AzureEnv_1.isPrd ? 'Enabled' : 'Disabled',
|
|
43
|
+
backupRetentionDays: 7,
|
|
44
|
+
},
|
|
45
|
+
highAvailability: { mode: AzureEnv_1.isPrd ? 'ZoneRedundant' : 'Disabled' },
|
|
46
|
+
//availabilityZone: isPrd ? 3 : 1,
|
|
47
|
+
}, {
|
|
48
|
+
dependsOn,
|
|
49
|
+
protect: true,
|
|
50
|
+
ignoreChanges: ['administratorLogin', 'dataEncryption'],
|
|
51
|
+
});
|
|
52
|
+
if (network) {
|
|
53
|
+
if (network.firewallRules) {
|
|
54
|
+
network.firewallRules.map((f, i) => new azure.dbforpostgresql.FirewallRule(`${name}-firewall-${i}`, {
|
|
55
|
+
firewallRuleName: `${name}-firewall-${i}`,
|
|
56
|
+
serverName: postgres.name,
|
|
57
|
+
...group,
|
|
58
|
+
...f,
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
if (network.allowsPublicAccess)
|
|
62
|
+
new azure.dbforpostgresql.FirewallRule(`${name}-firewall-allowpublic`, {
|
|
63
|
+
firewallRuleName: `${name}-firewall-allowpublic`,
|
|
64
|
+
serverName: postgres.name,
|
|
65
|
+
...group,
|
|
66
|
+
startIpAddress: '0.0.0.0',
|
|
67
|
+
endIpAddress: '255.255.255.255',
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (vaultInfo) {
|
|
71
|
+
(0, CustomHelper_1.addCustomSecret)({
|
|
72
|
+
name: `${name}-login`,
|
|
73
|
+
value: username,
|
|
74
|
+
vaultInfo,
|
|
75
|
+
contentType: name,
|
|
76
|
+
});
|
|
77
|
+
(0, CustomHelper_1.addCustomSecret)({
|
|
78
|
+
name: `${name}-pass`,
|
|
79
|
+
value: password,
|
|
80
|
+
vaultInfo,
|
|
81
|
+
contentType: name,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
if (databases) {
|
|
85
|
+
databases.map((d) => new azure.dbforpostgresql.Database(`${name}-${d}`, {
|
|
86
|
+
serverName: postgres.name,
|
|
87
|
+
databaseName: d,
|
|
88
|
+
...group,
|
|
89
|
+
}, { dependsOn: postgres, protect: true }));
|
|
90
|
+
}
|
|
91
|
+
return postgres;
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUG9zdGdyZXNxbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDZDQUFxRDtBQUVyRCw4Q0FBOEM7QUFDOUMsaURBQXFEO0FBQ3JELDJDQUFnRDtBQUVoRCwyREFBMkQ7QUFxQjNELGtCQUFlLENBQUMsRUFDZCxJQUFJLEVBQ0osS0FBSztBQUNMLE9BQU87QUFDUCxPQUFPLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQzlELGFBQWEsR0FBRyxHQUFHO0FBQ25COztHQUVHO0FBQ0gsR0FBRyxHQUFHO0lBQ0osSUFBSSxFQUFFLGVBQWU7SUFDckIsSUFBSSxFQUFFLFdBQVc7Q0FDbEIsRUFDRCxPQUFPLEVBQ1AsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEdBQ0ssRUFBRSxFQUFFO0lBQ2xCLElBQUksR0FBRyxJQUFBLDBCQUFpQixFQUFDLElBQUksQ0FBQyxDQUFDO0lBRS9CLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQztJQUNqQyxNQUFNLFFBQVEsR0FBRyxJQUFBLHVCQUFjLEVBQUM7UUFDOUIsSUFBSTtRQUNKLE1BQU0sRUFBRSxFQUFFO1FBQ1YsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtLQUM1QixDQUFDLENBQUMsTUFBTSxDQUFDO0lBRVYsTUFBTSxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FDL0MsSUFBSSxFQUNKO1FBQ0UsVUFBVSxFQUFFLElBQUk7UUFDaEIsR0FBRyxLQUFLO1FBQ1IsT0FBTztRQUNQLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRTtRQUUxQixVQUFVLEVBQUU7WUFDVixZQUFZLEVBQUUsU0FBUztZQUN2QixtQkFBbUIsRUFBRSxTQUFTO1lBQzlCLFFBQVEsRUFBUixtQkFBUTtTQUNUO1FBQ0Qsa0JBQWtCLEVBQUUsUUFBUTtRQUM1Qiww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
|
package/ReadMe.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# HBD.Pulumi.Share
|
|
2
|
+
The common share component for Pulumi projects
|
|
3
|
+
|
|
4
|
+
## How to use me?
|
|
5
|
+
1. Clone me from https://github.com/baoduy/HBD.Pulumi.Share into a folder named "_Shared".
|
|
6
|
+
2. Create a pulumi account and link to the environment.
|
|
7
|
+
3. Create a "_Config" folder to store your custom configuration.
|
|
8
|
+
|
|
9
|
+
## How to config Organization Name
|
|
10
|
+
You should add the Organization code to the name of some resources and resource groups to ensure that their name is identical and dedicated to your projects.
|
|
11
|
+
There are two ways to config your organization code.
|
|
12
|
+
|
|
13
|
+
1. Name your project with the following convention: "ProjectName-OrgCode".
|
|
14
|
+
2. The organization will be retrieved directly from the Pulumi portal.
|
|
15
|
+
|
|
16
|
+
## Private Link Dns Name
|
|
17
|
+
https://docs.microsoft.com/en-us/azure/private-link/private-endpoint-dns
|
|
18
|
+
|
|
19
|
+
## Azure Resources Support Zone Redundant
|
|
20
|
+
https://learn.microsoft.com/en-us/azure/reliability/availability-zones-service-support
|
|
21
|
+
|
|
22
|
+
## Upgrading Issues
|
|
23
|
+
Azure AD Application: https://github.com/pulumi/pulumi-azuread/issues/185#issuecomment-982414862
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## Config Azure Resources
|
|
27
|
+
|
|
28
|
+
- Set Organization
|
|
29
|
+
pulumi org set-default
|
|
30
|
+
|
|
31
|
+
$ pulumi config set azure-native:clientId <clientID>
|
|
32
|
+
$ pulumi config set azure-native:clientSecret <clientSecret> --secret
|
|
33
|
+
$ pulumi config set azure-native:tenantId <tenantID>
|
|
34
|
+
$ pulumi config set azure-native:subscriptionId <subscriptionId>
|
|
35
|
+
# optional default location, otherwise set in code
|
|
36
|
+
$ pulumi config set azure-native:location SoutheastAsia
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as native from '@pulumi/azure-native';
|
|
2
|
+
import { BasicResourceArgs, KeyVaultInfo } from '../types';
|
|
3
|
+
interface Props extends BasicResourceArgs {
|
|
4
|
+
vaultInfo?: KeyVaultInfo;
|
|
5
|
+
allowsIpAddresses?: string[];
|
|
6
|
+
sku?: native.types.input.cache.SkuArgs;
|
|
7
|
+
}
|
|
8
|
+
declare const _default: ({ name, group, allowsIpAddresses, vaultInfo, sku, }: Props) => import("@pulumi/azure-native/cache/redis").Redis;
|
|
9
|
+
export default _default;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const native = require("@pulumi/azure-native");
|
|
4
|
+
const pulumi = require("@pulumi/pulumi");
|
|
5
|
+
const to_words_1 = require("to-words");
|
|
6
|
+
const Helper_1 = require("../VNet/Helper");
|
|
7
|
+
const Naming_1 = require("../Common/Naming");
|
|
8
|
+
const AzureEnv_1 = require("../Common/AzureEnv");
|
|
9
|
+
const CustomHelper_1 = require("../KeyVault/CustomHelper");
|
|
10
|
+
const toWord = new to_words_1.ToWords();
|
|
11
|
+
exports.default = ({ name, group, allowsIpAddresses, vaultInfo, sku = { name: 'Basic', family: 'C', capacity: 0 }, }) => {
|
|
12
|
+
name = (0, Naming_1.getRedisCacheName)(name);
|
|
13
|
+
const redis = new native.cache.Redis(name, {
|
|
14
|
+
name,
|
|
15
|
+
...group,
|
|
16
|
+
minimumTlsVersion: '1.2',
|
|
17
|
+
sku,
|
|
18
|
+
zones: AzureEnv_1.isPrd && sku.name === 'Premium' ? ['1', '2', '3'] : undefined,
|
|
19
|
+
});
|
|
20
|
+
// new native.cache.PatchSchedule(
|
|
21
|
+
// name,
|
|
22
|
+
// {
|
|
23
|
+
// name: 'default',
|
|
24
|
+
// ...group,
|
|
25
|
+
// scheduleEntries: [
|
|
26
|
+
// { dayOfWeek: 'Everyday', startHourUtc: 0, maintenanceWindow: 'PT5H' },
|
|
27
|
+
// ],
|
|
28
|
+
// },
|
|
29
|
+
// { dependsOn: redis }
|
|
30
|
+
// );
|
|
31
|
+
if (allowsIpAddresses) {
|
|
32
|
+
(0, Helper_1.convertToIpRange)(allowsIpAddresses).map((range, i) => {
|
|
33
|
+
const n = `allow_Ip_${toWord.convert(i)}`.toLowerCase();
|
|
34
|
+
return new native.cache.FirewallRule(n, {
|
|
35
|
+
ruleName: n,
|
|
36
|
+
cacheName: redis.name,
|
|
37
|
+
...group,
|
|
38
|
+
startIP: range.start,
|
|
39
|
+
endIP: range.end,
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
if (vaultInfo) {
|
|
44
|
+
pulumi.all([redis.name, redis.hostName]).apply(async ([n, h]) => {
|
|
45
|
+
if (!h)
|
|
46
|
+
return;
|
|
47
|
+
const keys = await native.cache.listRedisKeys({
|
|
48
|
+
name: n,
|
|
49
|
+
resourceGroupName: group.resourceGroupName,
|
|
50
|
+
});
|
|
51
|
+
(0, CustomHelper_1.addCustomSecret)({
|
|
52
|
+
name: `${name}-primary-key`,
|
|
53
|
+
value: keys.primaryKey,
|
|
54
|
+
vaultInfo,
|
|
55
|
+
contentType: 'Redis Cache',
|
|
56
|
+
});
|
|
57
|
+
(0, CustomHelper_1.addCustomSecret)({
|
|
58
|
+
name: `${name}-secondary-key`,
|
|
59
|
+
value: keys.secondaryKey,
|
|
60
|
+
vaultInfo,
|
|
61
|
+
contentType: 'Redis Cache',
|
|
62
|
+
});
|
|
63
|
+
(0, CustomHelper_1.addCustomSecret)({
|
|
64
|
+
name: `${name}-primary-connection`,
|
|
65
|
+
value: `${name}.redis.cache.windows.net:6380,password=${keys.primaryKey},ssl=True,abortConnect=False`,
|
|
66
|
+
vaultInfo,
|
|
67
|
+
contentType: 'Redis Cache',
|
|
68
|
+
});
|
|
69
|
+
(0, CustomHelper_1.addCustomSecret)({
|
|
70
|
+
name: `${name}-secondary-connection`,
|
|
71
|
+
value: `${name}.redis.cache.windows.net:6380,password=${keys.secondaryKey},ssl=True,abortConnect=False`,
|
|
72
|
+
vaultInfo,
|
|
73
|
+
contentType: 'Redis Cache',
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return redis;
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUmVkaXNDYWNoZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtDQUErQztBQUMvQyx5Q0FBeUM7QUFJekMsdUNBQW1DO0FBQ25DLDJDQUFrRDtBQUNsRCw2Q0FBcUQ7QUFDckQsaURBQTJDO0FBQzNDLDJEQUEyRDtBQUUzRCxNQUFNLE1BQU0sR0FBRyxJQUFJLGtCQUFPLEVBQUUsQ0FBQztBQVE3QixrQkFBZSxDQUFDLEVBQ2QsSUFBSSxFQUNKLEtBQUssRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEdBQzNDLEVBQUUsRUFBRTtJQUNWLElBQUksR0FBRyxJQUFBLDBCQUFpQixFQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO1FBQ3pDLElBQUk7UUFDSixHQUFHLEtBQUs7UUFDUixpQkFBaUIsRUFBRSxLQUFLO1FBQ3hCLEdBQUc7UUFDSCxLQUFLLEVBQUUsZ0JBQUssSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQ3JFLENBQUMsQ0FBQztJQUVILGtDQUFrQztJQUNsQyxVQUFVO0lBQ1YsTUFBTTtJQUNOLHVCQUF1QjtJQUN2QixnQkFBZ0I7SUFDaEIseUJBQXlCO0lBQ3pCLCtFQUErRTtJQUMvRSxTQUFTO0lBQ1QsT0FBTztJQUNQLHlCQUF5QjtJQUN6QixLQUFLO0lBRUwsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RCLElBQUEseUJBQWdCLEVBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkQsTUFBTSxDQUFDLEdBQUcsWUFBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEQsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRTtnQkFDdEMsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJO2dCQUNyQixHQUFHLEtBQUs7Z0JBQ1IsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLO2dCQUNwQixLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUc7YUFDakIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNkLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5RCxJQUFJLENBQUMsQ0FBQztnQkFBRSxPQUFPO1lBRWYsTUFBTSxJQUFJLEdBQUcsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztnQkFDNUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1AsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjthQUMzQyxDQUFDLENBQUM7WUFFSCxJQUFBLDhCQUFlLEVBQUM7Z0JBQ2QsSUFBSSxFQUFFLEdBQUcsSUFBSSxjQUFjO2dCQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQ3RCLFNBQVM7Z0JBQ1QsV0FBVyxFQUFFLGFBQWE7YUFDM0IsQ0FBQyxDQUFDO1lBRUgsSUFBQSw4QkFBZSxFQUFDO2dCQUNkLElBQUksRUFBRSxHQUFHLElBQUksZ0JBQWdCO2dCQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQ3hCLFNBQVM7Z0JBQ1QsV0FBVyxFQUFFLGFBQWE7YUFDM0IsQ0FBQyxDQUFDO1lBRUgsSUFBQSw4QkFBZSxFQUFDO2dCQUNkLElBQUksRUFBRSxHQUFHLElBQUkscUJBQXFCO2dCQUNsQyxLQUFLLEVBQUUsR0FBRyxJQUFJLDBDQUEwQyxJQUFJLENBQUMsVUFBVSw4QkFBOEI7Z0JBQ3JHLFNBQVM7Z0JBQ1QsV0FBVyxFQUFFLGFBQWE7YUFDM0IsQ0FBQyxDQUFDO1lBRUgsSUFBQSw4QkFBZSxFQUFDO2dCQUNkLElBQUksRUFBRSxHQUFHLElBQUksdUJBQXVCO2dCQUNwQyxLQUFLLEVBQUUsR0FBRyxJQUFJLDBDQUEwQyxJQUFJLENBQUMsWUFBWSw4QkFBOEI7Z0JBQ3ZHLFNBQVM7Z0JBQ1QsV0FBVyxFQUFFLGFBQWE7YUFDM0IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare enum BusConnectionTypes {
|
|
2
|
+
Listen = "Listen",
|
|
3
|
+
Send = "Send",
|
|
4
|
+
Both = "Both",
|
|
5
|
+
Manage = "Manage"
|
|
6
|
+
}
|
|
7
|
+
/** ShortName: wallet and version is 1 => wallet-v1-tp */
|
|
8
|
+
export declare const getTopicName: (topicShortName: string, version: number) => string;
|
|
9
|
+
/** ShortName: Submersible => Submersible-sub */
|
|
10
|
+
export declare const getSubscriptionName: (subShortName: string) => string;
|
|
11
|
+
/** ShortName: Notify and version is 1 => Notify-v1-que */
|
|
12
|
+
export declare const getQueueName: (queueShortName: string, version: number) => string;
|
|
13
|
+
interface BusVaultNameProps {
|
|
14
|
+
fullName: string;
|
|
15
|
+
namespaceFullName: string;
|
|
16
|
+
connectionType: BusConnectionTypes;
|
|
17
|
+
}
|
|
18
|
+
/** Get Key vault name for Topic or Queue */
|
|
19
|
+
export declare const getTopicOrQueueVaultName: ({ connectionType, fullName, namespaceFullName, }: BusVaultNameProps) => string;
|
|
20
|
+
export declare const getNamespaceVaultName: ({ connectionType, namespaceFullName, }: Omit<BusVaultNameProps, "fullName">) => string;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNamespaceVaultName = exports.getTopicOrQueueVaultName = exports.getQueueName = exports.getSubscriptionName = exports.getTopicName = exports.BusConnectionTypes = void 0;
|
|
4
|
+
const Naming_1 = require("../Common/Naming");
|
|
5
|
+
var BusConnectionTypes;
|
|
6
|
+
(function (BusConnectionTypes) {
|
|
7
|
+
BusConnectionTypes["Listen"] = "Listen";
|
|
8
|
+
BusConnectionTypes["Send"] = "Send";
|
|
9
|
+
BusConnectionTypes["Both"] = "Both";
|
|
10
|
+
BusConnectionTypes["Manage"] = "Manage";
|
|
11
|
+
})(BusConnectionTypes || (exports.BusConnectionTypes = BusConnectionTypes = {}));
|
|
12
|
+
const getVersioningName = (shortName, version) => `${shortName.toLowerCase()}-v${version}`;
|
|
13
|
+
/** ShortName: wallet and version is 1 => wallet-v1-tp */
|
|
14
|
+
const getTopicName = (topicShortName, version) => `${getVersioningName(topicShortName, version)}-tp`;
|
|
15
|
+
exports.getTopicName = getTopicName;
|
|
16
|
+
/** ShortName: Submersible => Submersible-sub */
|
|
17
|
+
const getSubscriptionName = (subShortName) => `${subShortName}-sub`;
|
|
18
|
+
exports.getSubscriptionName = getSubscriptionName;
|
|
19
|
+
/** ShortName: Notify and version is 1 => Notify-v1-que */
|
|
20
|
+
const getQueueName = (queueShortName, version) => `${getVersioningName(queueShortName, version)}-que`;
|
|
21
|
+
exports.getQueueName = getQueueName;
|
|
22
|
+
/** Get Key vault name for Topic or Queue */
|
|
23
|
+
const getTopicOrQueueVaultName = ({ connectionType, fullName, namespaceFullName, }) => {
|
|
24
|
+
if (connectionType === BusConnectionTypes.Both)
|
|
25
|
+
throw `the ${connectionType} is not supported`;
|
|
26
|
+
return `${(0, Naming_1.getSecretName)(`${namespaceFullName}-${fullName}`)}-${connectionType.toLocaleLowerCase()}`;
|
|
27
|
+
};
|
|
28
|
+
exports.getTopicOrQueueVaultName = getTopicOrQueueVaultName;
|
|
29
|
+
const getNamespaceVaultName = ({ connectionType, namespaceFullName, }) => {
|
|
30
|
+
if (connectionType === BusConnectionTypes.Both)
|
|
31
|
+
throw `the ${connectionType} is not supported`;
|
|
32
|
+
return `${(0, Naming_1.getSecretName)(namespaceFullName)}-${connectionType.toLocaleLowerCase()}`;
|
|
33
|
+
};
|
|
34
|
+
exports.getNamespaceVaultName = getNamespaceVaultName;
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZUJ1c0hlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZXJ2aWNlQnVzL1NlcnZpY2VCdXNIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWlEO0FBRWpELElBQVksa0JBS1g7QUFMRCxXQUFZLGtCQUFrQjtJQUM1Qix1Q0FBaUIsQ0FBQTtJQUNqQixtQ0FBYSxDQUFBO0lBQ2IsbUNBQWEsQ0FBQTtJQUNiLHVDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFMVyxrQkFBa0Isa0NBQWxCLGtCQUFrQixRQUs3QjtBQUVELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxTQUFpQixFQUFFLE9BQWUsRUFBRSxFQUFFLENBQy9ELEdBQUcsU0FBUyxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sRUFBRSxDQUFDO0FBRTNDLHlEQUF5RDtBQUNsRCxNQUFNLFlBQVksR0FBRyxDQUFDLGNBQXNCLEVBQUUsT0FBZSxFQUFFLEVBQUUsQ0FDdEUsR0FBRyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQztBQUR4QyxRQUFBLFlBQVksZ0JBQzRCO0FBRXJELGdEQUFnRDtBQUN6QyxNQUFNLG1CQUFtQixHQUFHLENBQUMsWUFBb0IsRUFBRSxFQUFFLENBQzFELEdBQUcsWUFBWSxNQUFNLENBQUM7QUFEWCxRQUFBLG1CQUFtQix1QkFDUjtBQUV4QiwwREFBMEQ7QUFDbkQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxjQUFzQixFQUFFLE9BQWUsRUFBRSxFQUFFLENBQ3RFLEdBQUcsaUJBQWlCLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFEekMsUUFBQSxZQUFZLGdCQUM2QjtBQVF0RCw0Q0FBNEM7QUFDckMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEVBQ3ZDLGNBQWMsRUFDZCxRQUFRLEVBQ1IsaUJBQWlCLEdBQ0MsRUFBRSxFQUFFO0lBQ3RCLElBQUksY0FBYyxLQUFLLGtCQUFrQixDQUFDLElBQUk7UUFDNUMsTUFBTSxPQUFPLGNBQWMsbUJBQW1CLENBQUM7SUFFakQsT0FBTyxHQUFHLElBQUEsc0JBQWEsRUFDckIsR0FBRyxpQkFBaUIsSUFBSSxRQUFRLEVBQUUsQ0FDbkMsSUFBSSxjQUFjLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO0FBQzVDLENBQUMsQ0FBQztBQVhXLFFBQUEsd0JBQXdCLDRCQVduQztBQUVLLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxFQUNwQyxjQUFjLEVBQ2QsaUJBQWlCLEdBQ21CLEVBQUUsRUFBRTtJQUN4QyxJQUFJLGNBQWMsS0FBSyxrQkFBa0IsQ0FBQyxJQUFJO1FBQzVDLE1BQU0sT0FBTyxjQUFjLG1CQUFtQixDQUFDO0lBRWpELE9BQU8sR0FBRyxJQUFBLHNCQUFhLEVBQ3JCLGlCQUFpQixDQUNsQixJQUFJLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7QUFDNUMsQ0FBQyxDQUFDO0FBVlcsUUFBQSxxQkFBcUIseUJBVWhDIn0=
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import * as bus from '@pulumi/azure-native/servicebus';
|
|
2
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
3
|
+
import { BasicArgs, BasicMonitorArgs, BasicResourceArgs, BasicResourceResultProps, KeyVaultInfo, PrivateLinkProps, ResourceGroupInfo } from '../types';
|
|
4
|
+
import { BusConnectionTypes } from './ServiceBusHelper';
|
|
5
|
+
type TransportTypes = 'AmqpWebSockets' | 'Amqp' | null;
|
|
6
|
+
type OptionsType = {
|
|
7
|
+
requiresDuplicateDetection?: pulumi.Input<boolean>;
|
|
8
|
+
duplicateDetectionHistoryTimeWindow?: pulumi.Input<string>;
|
|
9
|
+
requiresSession?: pulumi.Input<boolean>;
|
|
10
|
+
enablePartitioning?: pulumi.Input<boolean>;
|
|
11
|
+
autoDeleteOnIdle?: pulumi.Input<string>;
|
|
12
|
+
};
|
|
13
|
+
interface ConnCreatorProps extends BasicArgs {
|
|
14
|
+
topicName?: string;
|
|
15
|
+
queueName?: string;
|
|
16
|
+
namespaceName: string;
|
|
17
|
+
resourceGroupName: string;
|
|
18
|
+
connectionType: BusConnectionTypes;
|
|
19
|
+
transportType?: TransportTypes;
|
|
20
|
+
removeEntityPath?: boolean;
|
|
21
|
+
vaultInfo: KeyVaultInfo;
|
|
22
|
+
}
|
|
23
|
+
interface TopicProps extends Pick<ConnCreatorProps, 'removeEntityPath' | 'transportType'>, BasicArgs {
|
|
24
|
+
shortName: string;
|
|
25
|
+
namespaceFullName: string;
|
|
26
|
+
version: number;
|
|
27
|
+
vaultInfo?: KeyVaultInfo;
|
|
28
|
+
group: ResourceGroupInfo;
|
|
29
|
+
subscriptions?: Array<{
|
|
30
|
+
shortName: string;
|
|
31
|
+
enableSession?: boolean;
|
|
32
|
+
}>;
|
|
33
|
+
enableConnections?: boolean;
|
|
34
|
+
options?: OptionsType & {
|
|
35
|
+
supportOrdering?: boolean;
|
|
36
|
+
};
|
|
37
|
+
lock?: boolean;
|
|
38
|
+
}
|
|
39
|
+
interface QueueProps extends Pick<ConnCreatorProps, 'removeEntityPath' | 'transportType'>, BasicArgs {
|
|
40
|
+
shortName: string;
|
|
41
|
+
version: number;
|
|
42
|
+
namespaceFullName: string;
|
|
43
|
+
vaultInfo?: KeyVaultInfo;
|
|
44
|
+
group: ResourceGroupInfo;
|
|
45
|
+
lock?: boolean;
|
|
46
|
+
enableConnections?: boolean;
|
|
47
|
+
options?: OptionsType;
|
|
48
|
+
}
|
|
49
|
+
interface TopicResultProps {
|
|
50
|
+
name: string;
|
|
51
|
+
topic: bus.Topic;
|
|
52
|
+
subs?: Array<BasicResourceResultProps<bus.Subscription>>;
|
|
53
|
+
}
|
|
54
|
+
interface QueueResultProps {
|
|
55
|
+
name: string;
|
|
56
|
+
queue: bus.Queue;
|
|
57
|
+
}
|
|
58
|
+
interface Props extends BasicResourceArgs, Pick<ConnCreatorProps, 'removeEntityPath' | 'transportType'> {
|
|
59
|
+
topics?: Array<Omit<TopicProps, 'group' | 'namespaceFullName' | 'vaultInfo' | 'dependsOn'>>;
|
|
60
|
+
queues?: Array<Omit<QueueProps, 'group' | 'namespaceFullName' | 'vaultInfo' | 'dependsOn'>>;
|
|
61
|
+
drConfig?: {
|
|
62
|
+
alias?: pulumi.Input<string>;
|
|
63
|
+
alternateName: pulumi.Input<string>;
|
|
64
|
+
partnerNamespace: pulumi.Input<string>;
|
|
65
|
+
};
|
|
66
|
+
network?: {
|
|
67
|
+
whitelistIps?: Array<pulumi.Input<string>>;
|
|
68
|
+
enablePrivateLink?: boolean;
|
|
69
|
+
} & Partial<PrivateLinkProps>;
|
|
70
|
+
monitoring?: BasicMonitorArgs;
|
|
71
|
+
sku?: bus.SkuName;
|
|
72
|
+
vaultInfo?: KeyVaultInfo;
|
|
73
|
+
enableNamespaceConnections?: boolean;
|
|
74
|
+
enableTopicConnections?: boolean;
|
|
75
|
+
enableQueueConnections?: boolean;
|
|
76
|
+
lock?: boolean;
|
|
77
|
+
}
|
|
78
|
+
/** Azure Bus creator */
|
|
79
|
+
declare const _default: ({ name, group, topics, queues, drConfig, network, vaultInfo, enableNamespaceConnections, enableTopicConnections, enableQueueConnections, sku, monitoring, ...others }: Props) => {
|
|
80
|
+
name: string;
|
|
81
|
+
resource: import("@pulumi/azure-native/servicebus/namespace").Namespace;
|
|
82
|
+
queues: QueueResultProps[] | undefined;
|
|
83
|
+
topics: TopicResultProps[] | undefined;
|
|
84
|
+
vaultNames: {
|
|
85
|
+
primaryConnectionKeys: {
|
|
86
|
+
secondaryName: string;
|
|
87
|
+
primaryName: string;
|
|
88
|
+
} | undefined;
|
|
89
|
+
secondaryConnectionKeys: {
|
|
90
|
+
secondaryName: string;
|
|
91
|
+
primaryName: string;
|
|
92
|
+
} | undefined;
|
|
93
|
+
};
|
|
94
|
+
getConnectionString: (name: string) => Promise<import("@azure/keyvault-secrets").KeyVaultSecret | undefined> | undefined;
|
|
95
|
+
locker: import("@pulumi/azure-native/authorization/managementLockByScope").ManagementLockByScope | undefined;
|
|
96
|
+
diagnostic: import("@pulumi/azure-native/aadiam/diagnosticSetting").DiagnosticSetting | undefined;
|
|
97
|
+
};
|
|
98
|
+
export default _default;
|