@drunk-pulumi/azure 1.0.7 → 1.0.9

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 (146) hide show
  1. package/Aks/Helper.d.ts +3 -3
  2. package/Aks/Helper.js +2 -3
  3. package/Aks/Identity.js +17 -17
  4. package/Aks/index.d.ts +13 -15
  5. package/Aks/index.js +63 -64
  6. package/Automation/index.d.ts +4 -4
  7. package/Automation/index.js +13 -9
  8. package/AzAd/EnvRoles.d.ts +0 -5
  9. package/AzAd/EnvRoles.js +3 -4
  10. package/AzAd/Group.d.ts +4 -4
  11. package/AzAd/Group.js +14 -5
  12. package/AzAd/Helper.d.ts +3 -8
  13. package/AzAd/Helper.js +67 -51
  14. package/AzAd/Identities/AzDevOpsManagedIdentity.d.ts +3 -3
  15. package/AzAd/Identities/AzDevOpsManagedIdentity.js +4 -4
  16. package/AzAd/Identities/AzUserAdRevertSync.d.ts +2 -2
  17. package/AzAd/Identities/EnvUID.d.ts +4 -0
  18. package/AzAd/Identities/EnvUID.js +21 -0
  19. package/AzAd/Identities/index.d.ts +1 -1
  20. package/AzAd/Identities/index.js +3 -3
  21. package/AzAd/Identity.d.ts +2 -2
  22. package/AzAd/Identity.js +3 -8
  23. package/AzAd/RoleAssignment.d.ts +2 -2
  24. package/AzAd/UserAssignedIdentity.d.ts +4 -3
  25. package/AzAd/UserAssignedIdentity.js +10 -13
  26. package/Builder/AksBuilder.d.ts +2 -2
  27. package/Builder/AksBuilder.js +14 -7
  28. package/Builder/ApimBuilder.js +8 -10
  29. package/Builder/CdnBuilder.d.ts +2 -2
  30. package/Builder/CdnBuilder.js +1 -1
  31. package/Builder/PrivateDnsZoneBuilder.js +4 -5
  32. package/Builder/ResourceBuilder.d.ts +2 -2
  33. package/Builder/ResourceBuilder.js +42 -5
  34. package/Builder/SqlBuilder.d.ts +2 -2
  35. package/Builder/SqlBuilder.js +9 -10
  36. package/Builder/VaultBuilder.d.ts +2 -3
  37. package/Builder/VaultBuilder.js +16 -15
  38. package/Builder/VmBuilder.d.ts +2 -2
  39. package/Builder/VmBuilder.js +12 -3
  40. package/Builder/VnetBuilder.d.ts +2 -2
  41. package/Builder/VnetBuilder.js +100 -53
  42. package/Builder/types/apimBuilder.d.ts +8 -9
  43. package/Builder/types/apimPolicyBuilder.d.ts +3 -3
  44. package/Builder/types/apimProductBuilder.d.ts +2 -2
  45. package/Builder/types/askBuilder.d.ts +8 -3
  46. package/Builder/types/envRoleBuilder.d.ts +2 -2
  47. package/Builder/types/genericBuilder.d.ts +2 -8
  48. package/Builder/types/genericBuilder.js +1 -1
  49. package/Builder/types/resourceBuilder.d.ts +12 -6
  50. package/Builder/types/sqlBuilder.d.ts +4 -5
  51. package/Builder/types/vaultBuilder.d.ts +4 -3
  52. package/Builder/types/vmBuilder.d.ts +6 -2
  53. package/Builder/types/vnetBuilder.d.ts +13 -12
  54. package/Cdn/CdnEndpoint.d.ts +1 -1
  55. package/Cdn/CdnEndpoint.js +2 -3
  56. package/Common/AzureEnv.d.ts +0 -7
  57. package/Common/AzureEnv.js +2 -44
  58. package/Common/GlobalEnv.d.ts +1 -3
  59. package/Common/GlobalEnv.js +19 -21
  60. package/Common/Helpers.d.ts +0 -1
  61. package/Common/Helpers.js +29 -29
  62. package/Common/Naming.d.ts +68 -0
  63. package/Common/Naming.js +189 -0
  64. package/Common/RsInfo/Helper.d.ts +4 -0
  65. package/Common/RsInfo/Helper.js +48 -0
  66. package/Common/RsInfo/index.d.ts +31 -0
  67. package/Common/RsInfo/index.js +245 -0
  68. package/Common/index.d.ts +3 -0
  69. package/Common/index.js +5 -2
  70. package/ContainerRegistry/Helper.d.ts +2 -9
  71. package/ContainerRegistry/Helper.js +36 -31
  72. package/Core/KeyGenerators.js +2 -2
  73. package/Core/Locker.d.ts +6 -4
  74. package/Core/Locker.js +23 -2
  75. package/Core/Random.d.ts +2 -2
  76. package/Core/Random.js +2 -1
  77. package/Core/ResourceCreator.js +3 -6
  78. package/CosmosDb/index.d.ts +3 -3
  79. package/CosmosDb/index.js +14 -14
  80. package/IOT/Hub/index.js +2 -1
  81. package/KeyVault/CustomHelper.d.ts +4 -3
  82. package/KeyVault/CustomHelper.js +3 -2
  83. package/KeyVault/Helper.d.ts +5 -1
  84. package/KeyVault/Helper.js +13 -2
  85. package/KeyVault/index.d.ts +1 -6
  86. package/KeyVault/index.js +19 -14
  87. package/Logs/AppInsight.js +3 -1
  88. package/Logs/Helpers.d.ts +5 -54
  89. package/Logs/Helpers.js +41 -68
  90. package/Logs/LogAnalytics.d.ts +5 -11
  91. package/Logs/LogAnalytics.js +11 -11
  92. package/Logs/WebTest.d.ts +2 -2
  93. package/Logs/WebTest.js +13 -13
  94. package/Logs/index.d.ts +7 -22
  95. package/Logs/index.js +33 -52
  96. package/Postgresql/index.js +3 -3
  97. package/ServiceBus/index.d.ts +4 -5
  98. package/ServiceBus/index.js +10 -8
  99. package/Sql/Helper.js +4 -4
  100. package/Sql/SqlDb.js +3 -6
  101. package/Sql/index.d.ts +2 -5
  102. package/Sql/index.js +12 -21
  103. package/Storage/Helper.d.ts +2 -28
  104. package/Storage/Helper.js +58 -77
  105. package/Storage/index.d.ts +2 -2
  106. package/Storage/index.js +7 -6
  107. package/VM/DiskEncryptionSet.d.ts +4 -6
  108. package/VM/DiskEncryptionSet.js +18 -6
  109. package/VM/index.d.ts +3 -3
  110. package/VM/index.js +37 -13
  111. package/VNet/Firewall.d.ts +8 -6
  112. package/VNet/Firewall.js +25 -28
  113. package/VNet/FirewallPolicies/CloudPCFirewallPolicy.js +2 -2
  114. package/VNet/Helper.d.ts +3 -20
  115. package/VNet/Helper.js +6 -49
  116. package/VNet/IpAddress.js +3 -6
  117. package/VNet/IpAddressPrefix.d.ts +2 -2
  118. package/VNet/IpAddressPrefix.js +3 -3
  119. package/VNet/NSGRules/BlockInternetSecurityRule.d.ts +3 -0
  120. package/VNet/NSGRules/BlockInternetSecurityRule.js +34 -0
  121. package/VNet/NSGRules/index.d.ts +5 -4
  122. package/VNet/NSGRules/index.js +4 -2
  123. package/VNet/NetworkPeering.d.ts +18 -6
  124. package/VNet/NetworkPeering.js +43 -27
  125. package/VNet/PrivateEndpoint.js +2 -2
  126. package/VNet/VirtualWAN.js +2 -2
  127. package/VNet/types.d.ts +3 -8
  128. package/Web/AppConfig.js +2 -1
  129. package/package.json +4 -5
  130. package/types.d.ts +85 -30
  131. package/Aks/VmSetAutoScale/index.d.ts +0 -14
  132. package/Aks/VmSetAutoScale/index.js +0 -155
  133. package/Aks/VmSetMonitor/index.d.ts +0 -10
  134. package/Aks/VmSetMonitor/index.js +0 -90
  135. package/Apim/Helpers.d.ts +0 -2
  136. package/Apim/Helpers.js +0 -18
  137. package/AzAd/Identities/GlobalUserAssignedIdentity.d.ts +0 -4
  138. package/AzAd/Identities/GlobalUserAssignedIdentity.js +0 -19
  139. package/Common/Naming/index.d.ts +0 -67
  140. package/Common/Naming/index.js +0 -161
  141. package/Core/Helper.d.ts +0 -18
  142. package/Core/Helper.js +0 -42
  143. package/VNet/index.d.ts +0 -65
  144. package/VNet/index.js +0 -220
  145. package/Web/Helpers.d.ts +0 -6
  146. package/Web/Helpers.js +0 -59
@@ -1,161 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getIpAddressName = exports.getNetworkSecurityGroupName = exports.getWorkflowName = exports.getRouteItemName = exports.getRouteName = exports.getIotHubName = exports.getHubName = exports.getWanName = exports.getVnetName = exports.getVpnName = exports.getVdiName = exports.getNICName = exports.getVMName = exports.getFirewallPolicyGroupName = exports.getFirewallPolicyName = exports.getFirewallName = exports.getMySqlName = exports.getPostgresqlName = exports.getSqlServerName = exports.getSqlDbName = exports.getElasticPoolName = exports.getSignalRName = exports.getPrivateEndpointName = exports.getServiceBusName = exports.getRedisCacheName = exports.getAlertName = exports.getWebTestName = exports.getFuncAppName = exports.getWebAppName = exports.getLogWpName = exports.getAppInsightName = exports.getK8sProviderName = exports.getAksName = exports.getManagedIdentityName = exports.getIdentityName = exports.getSshName = exports.getDiskEncryptionName = exports.getApimName = exports.getAppConfigName = exports.getCosmosDbName = exports.getB2cName = exports.getAutomationAccountName = exports.getPasswordName = exports.getKeyName = exports.getConnectionName = exports.getCertName = exports.getAppPlanName = exports.getSecretName = exports.getStorageName = exports.getResourceGroupName = void 0;
4
- exports.getCertOrderName = exports.getAcrName = exports.getCdnProfileName = exports.getCdnEndpointName = exports.getKeyVaultName = exports.getBastionName = exports.getNatGatewayName = exports.getAppGatewayName = exports.getIpAddressPrefixName = void 0;
5
- const AzureEnv_1 = require("../AzureEnv");
6
- const Helpers_1 = require("../Helpers");
7
- const ResourceEnv_1 = require("../ResourceEnv");
8
- const StackEnv_1 = require("../StackEnv");
9
- /** The method to get Resource group Name*/
10
- const getResourceGroupName = (name, convention = {}) => (0, ResourceEnv_1.getResourceName)(name, {
11
- ...convention,
12
- suffix: StackEnv_1.organization ? `grp-${StackEnv_1.organization}` : 'grp',
13
- });
14
- exports.getResourceGroupName = getResourceGroupName;
15
- /** Get Azure Storage Account and CosmosDb Name*/
16
- const getStorageName = (name) => {
17
- name = (0, ResourceEnv_1.getResourceName)(name, { includeOrgName: true, suffix: 'stg' });
18
- name = (0, Helpers_1.replaceAll)(name, '-', '');
19
- name = (0, Helpers_1.replaceAll)(name, '.', '');
20
- return name.toLowerCase().substring(0, 24);
21
- };
22
- exports.getStorageName = getStorageName;
23
- /** Get Vault Secret Name. Remove the stack name and replace all _ with - then lower cases. */
24
- const getSecretName = (name) => {
25
- name = (0, Helpers_1.replaceAll)(name, `${StackEnv_1.stack}-`, '');
26
- name = (0, Helpers_1.replaceAll)(name, StackEnv_1.stack, '');
27
- name = (0, Helpers_1.replaceAll)(name, ' ', '-');
28
- name = (0, Helpers_1.replaceAll)(name, '.', '-');
29
- return (0, Helpers_1.replaceAll)(name, '_', '-').toLowerCase();
30
- };
31
- exports.getSecretName = getSecretName;
32
- const getAppPlanName = (name) => (0, ResourceEnv_1.getResourceName)(name, { includeOrgName: false, suffix: 'app-plan' });
33
- exports.getAppPlanName = getAppPlanName;
34
- const getCertName = (name) => {
35
- name = (0, exports.getSecretName)(name);
36
- return `${name}-cert`;
37
- };
38
- exports.getCertName = getCertName;
39
- const getConnectionName = (name, type) => `${(0, exports.getSecretName)(name)}-conn-${type}`;
40
- exports.getConnectionName = getConnectionName;
41
- const getKeyName = (name, type) => `${(0, exports.getSecretName)(name)}-key-${type}`;
42
- exports.getKeyName = getKeyName;
43
- const getPasswordName = (name, type) => type === null
44
- ? (0, ResourceEnv_1.getResourceName)(name, { suffix: 'pwd' })
45
- : `${(0, exports.getSecretName)(name)}-pwd-${type}`;
46
- exports.getPasswordName = getPasswordName;
47
- const getAutomationAccountName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'acc-auto' });
48
- exports.getAutomationAccountName = getAutomationAccountName;
49
- const getB2cName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'b2c' });
50
- exports.getB2cName = getB2cName;
51
- const getCosmosDbName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'cdb' });
52
- exports.getCosmosDbName = getCosmosDbName;
53
- const getAppConfigName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'cfg' });
54
- exports.getAppConfigName = getAppConfigName;
55
- const getApimName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'apim' });
56
- exports.getApimName = getApimName;
57
- const getDiskEncryptionName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'disk-encrypt' });
58
- exports.getDiskEncryptionName = getDiskEncryptionName;
59
- const getSshName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'ssh' });
60
- exports.getSshName = getSshName;
61
- const getIdentityName = (name) => (0, ResourceEnv_1.getResourceName)(name);
62
- exports.getIdentityName = getIdentityName;
63
- const getManagedIdentityName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'mid' });
64
- exports.getManagedIdentityName = getManagedIdentityName;
65
- const getAksName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'aks' });
66
- exports.getAksName = getAksName;
67
- const getK8sProviderName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'ks-pvd' });
68
- exports.getK8sProviderName = getK8sProviderName;
69
- const getAppInsightName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'isg' });
70
- exports.getAppInsightName = getAppInsightName;
71
- const getLogWpName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'wp' });
72
- exports.getLogWpName = getLogWpName;
73
- const getWebAppName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'web' });
74
- exports.getWebAppName = getWebAppName;
75
- const getFuncAppName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'func' });
76
- exports.getFuncAppName = getFuncAppName;
77
- const getWebTestName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'hlz' });
78
- exports.getWebTestName = getWebTestName;
79
- const getAlertName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'alt' });
80
- exports.getAlertName = getAlertName;
81
- const getRedisCacheName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'rds' });
82
- exports.getRedisCacheName = getRedisCacheName;
83
- const getServiceBusName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'bus' });
84
- exports.getServiceBusName = getServiceBusName;
85
- const getPrivateEndpointName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'pre' });
86
- exports.getPrivateEndpointName = getPrivateEndpointName;
87
- const getSignalRName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'sigr' }); //.substring(0, 24);
88
- exports.getSignalRName = getSignalRName;
89
- const getElasticPoolName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'elp' });
90
- exports.getElasticPoolName = getElasticPoolName;
91
- const getSqlDbName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'db' });
92
- exports.getSqlDbName = getSqlDbName;
93
- const getSqlServerName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'sql' });
94
- exports.getSqlServerName = getSqlServerName;
95
- const getPostgresqlName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'postgres' });
96
- exports.getPostgresqlName = getPostgresqlName;
97
- const getMySqlName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'mysql' });
98
- exports.getMySqlName = getMySqlName;
99
- const getFirewallName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'fw' });
100
- exports.getFirewallName = getFirewallName;
101
- const getFirewallPolicyName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'fwp' });
102
- exports.getFirewallPolicyName = getFirewallPolicyName;
103
- const getFirewallPolicyGroupName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'fw-pg' });
104
- exports.getFirewallPolicyGroupName = getFirewallPolicyGroupName;
105
- const getVMName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'vm' });
106
- exports.getVMName = getVMName;
107
- const getNICName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'nic' });
108
- exports.getNICName = getNICName;
109
- const getVdiName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'vdi' });
110
- exports.getVdiName = getVdiName;
111
- const getVpnName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'vpn' });
112
- exports.getVpnName = getVpnName;
113
- const getVnetName = (name, convention = {}) => (0, ResourceEnv_1.getResourceName)(name, { ...convention, suffix: 'vnt' });
114
- exports.getVnetName = getVnetName;
115
- const getWanName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'wan' });
116
- exports.getWanName = getWanName;
117
- const getHubName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'hub' });
118
- exports.getHubName = getHubName;
119
- const getIotHubName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'iot' });
120
- exports.getIotHubName = getIotHubName;
121
- const getRouteName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'route' });
122
- exports.getRouteName = getRouteName;
123
- const getRouteItemName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: '', includeOrgName: false });
124
- exports.getRouteItemName = getRouteItemName;
125
- const getWorkflowName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'wkp' });
126
- exports.getWorkflowName = getWorkflowName;
127
- const getNetworkSecurityGroupName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'nsg' });
128
- exports.getNetworkSecurityGroupName = getNetworkSecurityGroupName;
129
- const getIpAddressName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'ip' });
130
- exports.getIpAddressName = getIpAddressName;
131
- const getIpAddressPrefixName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'ipx' });
132
- exports.getIpAddressPrefixName = getIpAddressPrefixName;
133
- const getAppGatewayName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'gtw' });
134
- exports.getAppGatewayName = getAppGatewayName;
135
- const getNatGatewayName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'ngw' });
136
- exports.getNatGatewayName = getNatGatewayName;
137
- const getBastionName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'bst' });
138
- exports.getBastionName = getBastionName;
139
- /**Key vault allow to disable or custom the convention. The max length of vault name is 24*/
140
- const getKeyVaultName = (name, convention = {}) => (0, ResourceEnv_1.getResourceName)(name, {
141
- ...convention,
142
- suffix: 'vlt',
143
- includeOrgName: true,
144
- }).substring(0, 24);
145
- exports.getKeyVaultName = getKeyVaultName;
146
- const getCdnEndpointName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'cdn' });
147
- exports.getCdnEndpointName = getCdnEndpointName;
148
- /**The CDN Profile is created to Global group so no prefix*/
149
- const getCdnProfileName = (name) => (0, ResourceEnv_1.getResourceName)(name, { suffix: 'cdn-pfl' });
150
- exports.getCdnProfileName = getCdnProfileName;
151
- /**The Azure Container Registry is created to Global group so no prefix*/
152
- const getAcrName = (name) => (0, Helpers_1.replaceAll)((0, ResourceEnv_1.getResourceName)(name, {
153
- prefix: '',
154
- suffix: 'acr',
155
- region: AzureEnv_1.currentCountryCode,
156
- }), '-', '').substring(0, 24);
157
- exports.getAcrName = getAcrName;
158
- /**The App Cert Order is created to Global group so no prefix*/
159
- const getCertOrderName = (name) => (0, ResourceEnv_1.getResourceName)(name.replace('.', '-'), { prefix: '', suffix: 'ca' });
160
- exports.getCertOrderName = getCertOrderName;
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQ29tbW9uL05hbWluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsMENBQWlEO0FBQ2pELHdDQUF3QztBQUN4QyxnREFBaUQ7QUFDakQsMENBQWtEO0FBRWxELDJDQUEyQztBQUNwQyxNQUFNLG9CQUFvQixHQUFHLENBQ2xDLElBQVksRUFDWixhQUE4QixFQUFFLEVBQ3hCLEVBQUUsQ0FDVixJQUFBLDZCQUFlLEVBQUMsSUFBSSxFQUFFO0lBQ3BCLEdBQUcsVUFBVTtJQUNiLE1BQU0sRUFBRSx1QkFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLHVCQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSztDQUNyRCxDQUFDLENBQUM7QUFQUSxRQUFBLG9CQUFvQix3QkFPNUI7QUFFTCxpREFBaUQ7QUFDMUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxJQUFZLEVBQVUsRUFBRTtJQUNyRCxJQUFJLEdBQUcsSUFBQSw2QkFBZSxFQUFDLElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdEUsSUFBSSxHQUFHLElBQUEsb0JBQVUsRUFBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLElBQUksR0FBRyxJQUFBLG9CQUFVLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqQyxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FBQztBQUxXLFFBQUEsY0FBYyxrQkFLekI7QUFFRiw4RkFBOEY7QUFDdkYsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtJQUM1QyxJQUFJLEdBQUcsSUFBQSxvQkFBVSxFQUFDLElBQUksRUFBRSxHQUFH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
package/Core/Helper.d.ts DELETED
@@ -1,18 +0,0 @@
1
- import { NamedType, ResourceGroupInfo } from '../types';
2
- export interface AzureResourceItem extends NamedType {
3
- id: string;
4
- location: string;
5
- resourceGroupName: string;
6
- tags: {
7
- [key: string]: string;
8
- };
9
- }
10
- export interface AzureResourceResult {
11
- value: Array<AzureResourceItem>;
12
- }
13
- /**Get Resource group Id from Info */
14
- export declare const getRGId: (group: ResourceGroupInfo) => import("@pulumi/pulumi").Output<string>;
15
- /** Find a NetworkSecurityGroups in a Resource Group*/
16
- export declare const findNetworkSecurityGroups: (group: string) => Promise<AzureResourceItem[] | undefined>;
17
- /** Find VM Scale set in a Resource Group */
18
- export declare const findVMScaleSet: (group: string) => Promise<AzureResourceItem[] | undefined>;
package/Core/Helper.js DELETED
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findVMScaleSet = exports.findNetworkSecurityGroups = exports.getRGId = void 0;
4
- const Axios_1 = require("@drunk-pulumi/azure-providers/Tools/Axios");
5
- const pulumi_1 = require("@pulumi/pulumi");
6
- const Common_1 = require("../Common");
7
- /**Get Resource group Id from Info */
8
- const getRGId = (group) => (0, pulumi_1.interpolate) `/subscriptions/${Common_1.subscriptionId}/resourceGroups/${group.resourceGroupName}`;
9
- exports.getRGId = getRGId;
10
- /** Find a NetworkSecurityGroups in a Resource Group*/
11
- const findNetworkSecurityGroups = async (group) => {
12
- const axios = (0, Axios_1.createAxios)();
13
- try {
14
- const url = `/resourceGroups/${group}/providers/Microsoft.Network/networkSecurityGroups?api-version=2020-05-01`;
15
- const rs = await axios.get(url).then((rs) => rs.data);
16
- return rs.value.map((i) => {
17
- i.resourceGroupName = group;
18
- return i;
19
- });
20
- }
21
- catch (error) {
22
- return undefined;
23
- }
24
- };
25
- exports.findNetworkSecurityGroups = findNetworkSecurityGroups;
26
- /** Find VM Scale set in a Resource Group */
27
- const findVMScaleSet = async (group) => {
28
- const axios = (0, Axios_1.createAxios)();
29
- try {
30
- const url = `/resourceGroups/${group}/providers/Microsoft.Compute/virtualMachineScaleSets?api-version=2020-06-01`;
31
- const rs = await axios.get(url).then((rs) => rs.data);
32
- return rs.value.map((i) => {
33
- i.resourceGroupName = group;
34
- return i;
35
- });
36
- }
37
- catch (error) {
38
- return undefined;
39
- }
40
- };
41
- exports.findVMScaleSet = findVMScaleSet;
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvcmUvSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUF3RTtBQUN4RSwyQ0FBNkM7QUFDN0Msc0NBQTJDO0FBZ0IzQyxxQ0FBcUM7QUFDOUIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FDbEQsSUFBQSxvQkFBVyxFQUFBLGtCQUFrQix1QkFBYyxtQkFBbUIsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7QUFEN0UsUUFBQSxPQUFPLFdBQ3NFO0FBRTFGLHNEQUFzRDtBQUMvQyxNQUFNLHlCQUF5QixHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtJQUMvRCxNQUFNLEtBQUssR0FBRyxJQUFBLG1CQUFXLEdBQUUsQ0FBQztJQUM1QixJQUFJLENBQUM7UUFDSCxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsS0FBSywyRUFBMkUsQ0FBQztRQUNoSCxNQUFNLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLENBQXNCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNFLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN4QixDQUFDLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDLENBQUM7QUFiVyxRQUFBLHlCQUF5Qiw2QkFhcEM7QUFFRiw0Q0FBNEM7QUFDckMsTUFBTSxjQUFjLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFFO0lBQ3BELE1BQU0sS0FBSyxHQUFHLElBQUEsbUJBQVcsR0FBRSxDQUFDO0lBQzVCLElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxHQUFHLG1CQUFtQixLQUFLLDZFQUE2RSxDQUFDO1FBQ2xILE1BQU0sRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBc0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFM0UsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3hCLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7WUFDNUIsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUMsQ0FBQztBQWJXLFFBQUEsY0FBYyxrQkFhekIifQ==
package/VNet/index.d.ts DELETED
@@ -1,65 +0,0 @@
1
- import * as network from '@pulumi/azure-native/network';
2
- import { Input } from '@pulumi/pulumi';
3
- import * as pulumi from '@pulumi/pulumi';
4
- import { BasicMonitorArgs, ResourceArgs } from '../types';
5
- import { CustomSecurityRuleArgs } from './types';
6
- import { FirewallSkus } from './Firewall';
7
- import { FirewallPolicyProps } from './types';
8
- import { SubnetProps } from './Subnet';
9
- interface Props extends ResourceArgs {
10
- ddosId?: Input<string>;
11
- addressSpace?: Input<string>[];
12
- subnets?: SubnetProps[];
13
- publicIpAddress?: network.PublicIPAddress;
14
- dnsServers?: pulumi.Input<pulumi.Input<string>[]>;
15
- features?: {
16
- enableBastion?: {
17
- subnetPrefix: string;
18
- };
19
- enableAppGateway?: {
20
- subnetPrefix: string;
21
- };
22
- enableFirewall?: {
23
- subnetPrefix: string;
24
- /** Only required if Firewall is Basic tier */
25
- managementSubnetPrefix?: string;
26
- sku?: FirewallSkus;
27
- policy: Omit<FirewallPolicyProps, 'enabled'>;
28
- /** set this is TRUE if want to create firewall subnet but not create firewall component */
29
- disabledFirewallCreation?: boolean;
30
- };
31
- vnetPeering?: Array<{
32
- vnetId: Input<string>;
33
- /** To create a route and Security access to the applicant */
34
- firewallPrivateIpAddress?: Input<string>;
35
- }>;
36
- securityGroup?: {
37
- /**Add Security rule to block/allow inbound internet if it is TRUE*/
38
- allowInboundInternetAccess?: boolean;
39
- /**Add Security rule to block/allow internet if it is TRUE*/
40
- allowOutboundInternetAccess?: boolean;
41
- rules?: Input<CustomSecurityRuleArgs>[];
42
- };
43
- };
44
- monitorConfig?: BasicMonitorArgs;
45
- }
46
- declare const _default: ({ group, name, ddosId, addressSpace, publicIpAddress, subnets, features, monitorConfig, ...others }: Props) => {
47
- firewall: {
48
- firewall: network.AzureFirewall;
49
- policy: network.FirewallPolicy | undefined;
50
- } | undefined;
51
- name: string;
52
- id: pulumi.Output<string>;
53
- group: import("../types").ResourceGroupInfo;
54
- vnet: network.VirtualNetwork;
55
- appGatewaySubnet: pulumi.OutputInstance<import("@pulumi/azure-native/types/output").network.SubnetResponse | undefined>;
56
- gatewaySubnet: pulumi.OutputInstance<import("@pulumi/azure-native/types/output").network.SubnetResponse | undefined>;
57
- firewallManageSubnet: pulumi.OutputInstance<import("@pulumi/azure-native/types/output").network.SubnetResponse | undefined>;
58
- routeTable?: network.RouteTable;
59
- firewallSubnet: pulumi.OutputInstance<import("@pulumi/azure-native/types/output").network.SubnetResponse | undefined>;
60
- bastionSubnet: pulumi.OutputInstance<import("@pulumi/azure-native/types/output").network.SubnetResponse | undefined>;
61
- findSubnet: (name: string) => pulumi.OutputInstance<import("@pulumi/azure-native/types/output").network.SubnetResponse | undefined>;
62
- securityGroup: undefined | network.NetworkSecurityGroup;
63
- publicIpAddress: import("@pulumi/azure-native/network/publicIPAddress").PublicIPAddress | undefined;
64
- };
65
- export default _default;
package/VNet/index.js DELETED
@@ -1,220 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const network = __importStar(require("@pulumi/azure-native/network"));
30
- const Firewall_1 = __importDefault(require("./Firewall"));
31
- const NetworkPeering_1 = __importDefault(require("./NetworkPeering"));
32
- const Vnet_1 = __importDefault(require("./Vnet"));
33
- const Helper_1 = require("./Helper");
34
- exports.default = ({ group, name, ddosId, addressSpace, publicIpAddress, subnets, features = {}, monitorConfig, ...others }) => {
35
- const securities = features.securityGroup?.rules || [];
36
- const routes = new Array();
37
- if (publicIpAddress) {
38
- //Add route from IpAddress to internet
39
- if (features.enableFirewall) {
40
- routes.push({
41
- name: `firewall-to-internet`,
42
- addressPrefix: publicIpAddress.ipAddress.apply((i) => `${i}/32`),
43
- nextHopType: network.RouteNextHopType.Internet,
44
- });
45
- } //Allow Internet to public IpAddress security group
46
- else if (features.securityGroup?.allowInboundInternetAccess)
47
- securities.push({
48
- name: 'allow-inbound-internet-publicIpAddress',
49
- sourceAddressPrefix: '*',
50
- sourcePortRange: '*',
51
- destinationAddressPrefix: publicIpAddress.ipAddress.apply((i) => `${i}/32`),
52
- destinationPortRanges: ['443', '80'],
53
- protocol: 'TCP',
54
- access: 'Allow',
55
- direction: 'Inbound',
56
- priority: 200 + securities.length + 1,
57
- });
58
- }
59
- //Update Security Group
60
- if (features.vnetPeering) {
61
- features.vnetPeering.forEach((pp, index) => {
62
- // The below rules should not be duplicated.
63
- if (pp.firewallPrivateIpAddress) {
64
- //Update route to firewall IpAddress
65
- routes.push({
66
- name: `vnet-to-firewall`,
67
- addressPrefix: '0.0.0.0/0',
68
- nextHopType: network.RouteNextHopType.VirtualAppliance,
69
- nextHopIpAddress: pp.firewallPrivateIpAddress,
70
- });
71
- //Allow Vnet to Firewall
72
- securities.push({
73
- name: `allow-vnet-to-firewall`,
74
- sourceAddressPrefix: '*',
75
- sourcePortRange: '*',
76
- destinationAddressPrefix: pp.firewallPrivateIpAddress,
77
- destinationPortRange: '*',
78
- protocol: '*',
79
- access: 'Allow',
80
- direction: 'Outbound',
81
- priority: 100,
82
- });
83
- }
84
- securities.push({
85
- name: `allow-vnet-to-vnet-${index}`,
86
- sourceAddressPrefix: 'VirtualNetwork',
87
- sourcePortRange: '*',
88
- destinationAddressPrefix: 'VirtualNetwork',
89
- destinationPortRange: '*',
90
- protocol: '*',
91
- access: 'Allow',
92
- direction: 'Outbound',
93
- priority: 101,
94
- });
95
- });
96
- }
97
- //Vnet
98
- const vnet = (0, Vnet_1.default)({
99
- group,
100
- name,
101
- ddosId,
102
- addressSpaces: addressSpace,
103
- subnets,
104
- features: {
105
- securityGroup: features.securityGroup
106
- ? {
107
- ...features.securityGroup,
108
- rules: securities,
109
- }
110
- : undefined,
111
- routeTable: { rules: routes },
112
- appGatewaySubnet: features.enableAppGateway
113
- ? {
114
- addressPrefix: features.enableAppGateway.subnetPrefix,
115
- version: 'v1',
116
- }
117
- : undefined,
118
- firewall: features.enableFirewall
119
- ? {
120
- addressPrefix: features.enableFirewall.subnetPrefix,
121
- managementAddressPrefix: features.enableFirewall.managementSubnetPrefix,
122
- }
123
- : undefined,
124
- bastion: features.enableBastion
125
- ? {
126
- addressPrefix: features.enableBastion.subnetPrefix,
127
- }
128
- : undefined,
129
- },
130
- ...others,
131
- });
132
- //Firewall
133
- let firewall;
134
- if (features.enableFirewall &&
135
- !features.enableFirewall.disabledFirewallCreation) {
136
- firewall = createFirewall({
137
- name,
138
- group,
139
- policy: {
140
- ...features.enableFirewall.policy,
141
- },
142
- outbound: [
143
- {
144
- publicIpAddress: publicIpAddress,
145
- subnetId: vnet.firewallSubnet.apply((c) => c.id),
146
- },
147
- ],
148
- management: features?.enableFirewall.managementSubnetPrefix
149
- ? {
150
- subnetId: vnet.firewallManageSubnet.apply((c) => c.id),
151
- }
152
- : undefined,
153
- sku: features.enableFirewall.sku,
154
- routeTableName: vnet.routeTable?.name,
155
- monitorConfig,
156
- dependsOn: [vnet.vnet],
157
- });
158
- }
159
- //Vnet Peering
160
- if (features.vnetPeering) {
161
- features.vnetPeering.map((pp) => {
162
- const info = (0, Helper_1.parseVnetInfoFromId)(pp.vnetId);
163
- (0, NetworkPeering_1.default)({
164
- firstVnet: {
165
- vnetName: vnet.vnet.name,
166
- resourceGroupName: group.resourceGroupName,
167
- },
168
- secondVnet: info,
169
- });
170
- //Update route to firewall IpAddress
171
- // if (pp.firewallPrivateIpAddress && vnet.routeTable) {
172
- // new NetworkRouteResource(
173
- // `${name}-vnet-to-firewall`,
174
- // {
175
- // routeName: "vnet-to-firewall",
176
- // ...group,
177
- // routeTableName: vnet.routeTable.name,
178
- // addressPrefix: "0.0.0.0/0",
179
- // nextHopType: network.RouteNextHopType.VirtualAppliance,
180
- // nextHopIpAddress: pp.firewallPrivateIpAddress,
181
- // },
182
- // {
183
- // dependsOn: vnet.routeTable,
184
- // },
185
- // );
186
- // }
187
- });
188
- }
189
- //Return the results
190
- return { publicIpAddress, ...vnet, firewall };
191
- };
192
- const createFirewall = ({ name, group, routeTableName, dependsOn = [], ...others }) => {
193
- const rs = (0, Firewall_1.default)({
194
- name,
195
- group,
196
- ...others,
197
- dependsOn,
198
- });
199
- // if (routeTableName) {
200
- // //Route Vnet to Firewall
201
- // new NetworkRouteResource(
202
- // `${name}-vnet-to-firewall`,
203
- // {
204
- // routeName: `vnet-to-firewall`,
205
- // ...group,
206
- // routeTableName: routeTableName,
207
- // addressPrefix: '0.0.0.0/0',
208
- // nextHopType: network.RouteNextHopType.VirtualAppliance,
209
- // nextHopIpAddress: rs.firewall.ipConfigurations.apply((c) =>
210
- // c ? c[0].privateIPAddress : '',
211
- // ),
212
- // },
213
- // {
214
- // dependsOn: [rs.firewall],
215
- // },
216
- // );
217
- // }
218
- return rs;
219
- };
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVk5ldC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0VBQXdEO0FBTXhELDBEQUFtRTtBQUVuRSxzRUFBMkM7QUFFM0Msa0RBQTBCO0FBQzFCLHFDQUErQztBQTZDL0Msa0JBQWUsQ0FBQyxFQUNkLEtBQUssRUFDTCxJQUFJLEVBQ0osTUFBTSxFQUNOLFlBQVksRUFDWixlQUFlLEVBQ2YsT0FBTyxFQUNQLFFBQVEsR0FBRyxFQUFFLEVBQ2IsYUFBYSxFQUNiLEdBQUcsTUFBTSxFQUNILEVBQUUsRUFBRTtJQUNWLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBbUMsQ0FBQztJQUU1RCxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLHNDQUFzQztRQUN0QyxJQUFJLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNWLElBQUksRUFBRSxzQkFBc0I7Z0JBQzVCLGFBQWEsRUFBRSxlQUFlLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDaEUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRO2FBQy9DLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxtREFBbUQ7YUFDaEQsSUFBSSxRQUFRLENBQUMsYUFBYSxFQUFFLDBCQUEwQjtZQUN6RCxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUNkLElBQUksRUFBRSx3Q0FBd0M7Z0JBQzlDLG1CQUFtQixFQUFFLEdBQUc7Z0JBQ3hCLGVBQWUsRUFBRSxHQUFHO2dCQUNwQix3QkFBd0IsRUFBRSxlQUFlLENBQUMs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
package/Web/Helpers.d.ts DELETED
@@ -1,6 +0,0 @@
1
- /**Get current certificate from Cert order by domain name*/
2
- export declare const getCertificateForDomain: (domain: string) => Promise<{
3
- name: string;
4
- base64CertData: string;
5
- thumbprint: string;
6
- } | undefined>;
package/Web/Helpers.js DELETED
@@ -1,59 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.getCertificateForDomain = void 0;
27
- const Axios_1 = require("@drunk-pulumi/azure-providers/Tools/Axios");
28
- const Helper_1 = require("../KeyVault/Helper");
29
- const Naming_1 = require("../Common/Naming");
30
- const global = __importStar(require("../Common/GlobalEnv"));
31
- /**Get current certificate from Cert order by domain name*/
32
- const getCertificateForDomain = async (domain) => {
33
- const orderName = (0, Naming_1.getCertOrderName)(domain);
34
- const axios = (0, Axios_1.createAxios)();
35
- const url = `/resourceGroups/${global.groupInfo.resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/${orderName}/certificates?api-version=2015-08-01`;
36
- const rs = await axios
37
- .get(url)
38
- .then((rs) => rs.data)
39
- .catch((err) => {
40
- console.error('getCertOrderInfo: Error ', err);
41
- return undefined;
42
- });
43
- const info = rs?.value ? rs.value[0] : undefined;
44
- if (!info)
45
- return undefined;
46
- const cert = await (0, Helper_1.getSecret)({
47
- name: info.properties.keyVaultSecretName,
48
- vaultInfo: global.keyVaultInfo,
49
- });
50
- if (!cert)
51
- return undefined;
52
- return {
53
- name: cert.name,
54
- base64CertData: cert.value,
55
- thumbprint: cert.properties.tags['Thumbprint'],
56
- };
57
- };
58
- exports.getCertificateForDomain = getCertificateForDomain;
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9XZWIvSGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFFQUF3RTtBQUN4RSwrQ0FBK0M7QUFDL0MsNkNBQW9EO0FBQ3BELDREQUE4QztBQVU5QywyREFBMkQ7QUFDcEQsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLEVBQUUsTUFBYyxFQUFFLEVBQUU7SUFDOUQsTUFBTSxTQUFTLEdBQUcsSUFBQSx5QkFBZ0IsRUFBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxNQUFNLEtBQUssR0FBRyxJQUFBLG1CQUFXLEdBQUUsQ0FBQztJQUU1QixNQUFNLEdBQUcsR0FBRyxtQkFBbUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsa0VBQWtFLFNBQVMsc0NBQXNDLENBQUM7SUFDbkwsTUFBTSxFQUFFLEdBQUcsTUFBTSxLQUFLO1NBQ25CLEdBQUcsQ0FBVyxHQUFHLENBQUM7U0FDbEIsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQ3JCLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztJQUVMLE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNqRCxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBRTVCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxrQkFBUyxFQUFDO1FBQzNCLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQjtRQUN4QyxTQUFTLEVBQUUsTUFBTSxDQUFDLFlBQVk7S0FDL0IsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUU1QixPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFNO1FBQzNCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUssQ0FBQyxZQUFZLENBQUM7S0FDaEQsQ0FBQztBQUNKLENBQUMsQ0FBQztBQTVCVyxRQUFBLHVCQUF1QiwyQkE0QmxDIn0=