@drunk-pulumi/azure-components 0.0.6

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 (181) hide show
  1. package/PulumiPlugin.yaml +1 -0
  2. package/README.md +1 -0
  3. package/ResourceBuilder.d.ts +54 -0
  4. package/ResourceBuilder.js +71 -0
  5. package/aks/AzKubernetes.d.ts +55 -0
  6. package/aks/AzKubernetes.js +288 -0
  7. package/aks/ContainerRegistry.d.ts +19 -0
  8. package/aks/ContainerRegistry.js +119 -0
  9. package/aks/helpers.d.ts +6 -0
  10. package/aks/helpers.js +52 -0
  11. package/aks/index.d.ts +3 -0
  12. package/aks/index.js +43 -0
  13. package/app/AppCert.d.ts +15 -0
  14. package/app/AppCert.js +74 -0
  15. package/app/AppConfig.d.ts +18 -0
  16. package/app/AppConfig.js +124 -0
  17. package/app/AppService.d.ts +69 -0
  18. package/app/AppService.js +122 -0
  19. package/app/IoTHub.d.ts +15 -0
  20. package/app/IoTHub.js +80 -0
  21. package/app/LogicApp.d.ts +19 -0
  22. package/app/LogicApp.js +77 -0
  23. package/app/SignalR.d.ts +45 -0
  24. package/app/SignalR.js +125 -0
  25. package/app/index.d.ts +6 -0
  26. package/app/index.js +23 -0
  27. package/azAd/AppRegistration.d.ts +52 -0
  28. package/azAd/AppRegistration.js +165 -0
  29. package/azAd/AzRole.d.ts +14 -0
  30. package/azAd/AzRole.js +72 -0
  31. package/azAd/CustomRoles.d.ts +10 -0
  32. package/azAd/CustomRoles.js +73 -0
  33. package/azAd/GroupRole.d.ts +29 -0
  34. package/azAd/GroupRole.js +107 -0
  35. package/azAd/RoleAssignment.d.ts +15 -0
  36. package/azAd/RoleAssignment.js +63 -0
  37. package/azAd/UserAssignedIdentity.d.ts +17 -0
  38. package/azAd/UserAssignedIdentity.js +76 -0
  39. package/azAd/helpers/graphBuiltIn.d.ts +14 -0
  40. package/azAd/helpers/graphBuiltIn.js +5134 -0
  41. package/azAd/helpers/index.d.ts +3 -0
  42. package/azAd/helpers/index.js +39 -0
  43. package/azAd/helpers/rolesBuiltIn.d.ts +90 -0
  44. package/azAd/helpers/rolesBuiltIn.js +18601 -0
  45. package/azAd/helpers/rsRoleDefinition.d.ts +62 -0
  46. package/azAd/helpers/rsRoleDefinition.js +120 -0
  47. package/azAd/index.d.ts +7 -0
  48. package/azAd/index.js +24 -0
  49. package/base/BaseComponent.d.ts +53 -0
  50. package/base/BaseComponent.js +98 -0
  51. package/base/BaseResourceComponent.d.ts +108 -0
  52. package/base/BaseResourceComponent.js +180 -0
  53. package/base/helpers.d.ts +12 -0
  54. package/base/helpers.js +29 -0
  55. package/base/index.d.ts +3 -0
  56. package/base/index.js +43 -0
  57. package/common/PGPGenerator.d.ts +26 -0
  58. package/common/PGPGenerator.js +72 -0
  59. package/common/RandomPassword.d.ts +21 -0
  60. package/common/RandomPassword.js +84 -0
  61. package/common/RandomString.d.ts +20 -0
  62. package/common/RandomString.js +74 -0
  63. package/common/ResourceLocker.d.ts +9 -0
  64. package/common/ResourceLocker.js +52 -0
  65. package/common/RsGroup.d.ts +20 -0
  66. package/common/RsGroup.js +85 -0
  67. package/common/SshGenerator.d.ts +17 -0
  68. package/common/SshGenerator.js +66 -0
  69. package/common/index.d.ts +5 -0
  70. package/common/index.js +22 -0
  71. package/database/AzSql.d.ts +71 -0
  72. package/database/AzSql.js +283 -0
  73. package/database/MySql.d.ts +35 -0
  74. package/database/MySql.js +181 -0
  75. package/database/Postgres.d.ts +32 -0
  76. package/database/Postgres.js +171 -0
  77. package/database/Redis.d.ts +26 -0
  78. package/database/Redis.js +125 -0
  79. package/database/helpers.d.ts +7 -0
  80. package/database/helpers.js +52 -0
  81. package/database/index.d.ts +5 -0
  82. package/database/index.js +45 -0
  83. package/helpers/Location/LocationBuiltIn.d.ts +6 -0
  84. package/helpers/Location/LocationBuiltIn.js +493 -0
  85. package/helpers/Location/index.d.ts +3 -0
  86. package/helpers/Location/index.js +25 -0
  87. package/helpers/autoTags.d.ts +1 -0
  88. package/helpers/autoTags.js +27 -0
  89. package/helpers/azureEnv.d.ts +21 -0
  90. package/helpers/azureEnv.js +102 -0
  91. package/helpers/configHelper.d.ts +5 -0
  92. package/helpers/configHelper.js +54 -0
  93. package/helpers/index.d.ts +4 -0
  94. package/helpers/index.js +41 -0
  95. package/helpers/rsHelpers.d.ts +18 -0
  96. package/helpers/rsHelpers.js +92 -0
  97. package/helpers/stackEnv.d.ts +4 -0
  98. package/helpers/stackEnv.js +54 -0
  99. package/index.d.ts +14 -0
  100. package/index.js +53 -0
  101. package/logs/Logs.d.ts +48 -0
  102. package/logs/Logs.js +154 -0
  103. package/logs/helpers.d.ts +1 -0
  104. package/logs/helpers.js +38 -0
  105. package/logs/index.d.ts +1 -0
  106. package/logs/index.js +18 -0
  107. package/package.json +34 -0
  108. package/services/Automation.d.ts +16 -0
  109. package/services/Automation.js +85 -0
  110. package/services/AzSearch.d.ts +20 -0
  111. package/services/AzSearch.js +113 -0
  112. package/services/ServiceBus.d.ts +42 -0
  113. package/services/ServiceBus.js +256 -0
  114. package/services/index.d.ts +3 -0
  115. package/services/index.js +20 -0
  116. package/storage/StorageAccount.d.ts +53 -0
  117. package/storage/StorageAccount.js +261 -0
  118. package/storage/helpers.d.ts +24 -0
  119. package/storage/helpers.js +89 -0
  120. package/storage/index.d.ts +2 -0
  121. package/storage/index.js +42 -0
  122. package/types.d.ts +125 -0
  123. package/types.js +3 -0
  124. package/vault/EncryptionKey.d.ts +21 -0
  125. package/vault/EncryptionKey.js +73 -0
  126. package/vault/KeyVault.d.ts +31 -0
  127. package/vault/KeyVault.js +110 -0
  128. package/vault/VaultSecret.d.ts +23 -0
  129. package/vault/VaultSecret.js +72 -0
  130. package/vault/VaultSecrets.d.ts +25 -0
  131. package/vault/VaultSecrets.js +31 -0
  132. package/vault/helpers.d.ts +1 -0
  133. package/vault/helpers.js +13 -0
  134. package/vault/index.d.ts +5 -0
  135. package/vault/index.js +45 -0
  136. package/vm/DiskEncryptionSet.d.ts +16 -0
  137. package/vm/DiskEncryptionSet.js +74 -0
  138. package/vm/VirtualMachine.d.ts +45 -0
  139. package/vm/VirtualMachine.js +192 -0
  140. package/vm/helpers.d.ts +16 -0
  141. package/vm/helpers.js +15 -0
  142. package/vm/index.d.ts +3 -0
  143. package/vm/index.js +43 -0
  144. package/vnet/AzCdn.d.ts +44 -0
  145. package/vnet/AzCdn.js +276 -0
  146. package/vnet/Basion.d.ts +19 -0
  147. package/vnet/Basion.js +78 -0
  148. package/vnet/DnsZone.d.ts +36 -0
  149. package/vnet/DnsZone.js +113 -0
  150. package/vnet/Firewall.d.ts +53 -0
  151. package/vnet/Firewall.js +136 -0
  152. package/vnet/FirewallPolicies/FirewallPolicyBuilder.d.ts +18 -0
  153. package/vnet/FirewallPolicies/FirewallPolicyBuilder.js +91 -0
  154. package/vnet/FirewallPolicies/commonPolicies.d.ts +10 -0
  155. package/vnet/FirewallPolicies/commonPolicies.js +55 -0
  156. package/vnet/FirewallPolicies/index.d.ts +0 -0
  157. package/vnet/FirewallPolicies/index.js +2 -0
  158. package/vnet/IpAddresses.d.ts +36 -0
  159. package/vnet/IpAddresses.js +74 -0
  160. package/vnet/NetworkPeering.d.ts +21 -0
  161. package/vnet/NetworkPeering.js +85 -0
  162. package/vnet/PrivateDnsZone.d.ts +38 -0
  163. package/vnet/PrivateDnsZone.js +111 -0
  164. package/vnet/PrivateEndpoint.d.ts +43 -0
  165. package/vnet/PrivateEndpoint.js +181 -0
  166. package/vnet/RouteTable.d.ts +22 -0
  167. package/vnet/RouteTable.js +75 -0
  168. package/vnet/VirtualNetwork.d.ts +99 -0
  169. package/vnet/VirtualNetwork.js +311 -0
  170. package/vnet/VpnGateway.d.ts +18 -0
  171. package/vnet/VpnGateway.js +90 -0
  172. package/vnet/helpers.d.ts +16 -0
  173. package/vnet/helpers.js +47 -0
  174. package/vnet/index.d.ts +13 -0
  175. package/vnet/index.js +53 -0
  176. package/vnet/securityRules/SecurityRuleBuilder.d.ts +12 -0
  177. package/vnet/securityRules/SecurityRuleBuilder.js +55 -0
  178. package/vnet/securityRules/commonRules.d.ts +9 -0
  179. package/vnet/securityRules/commonRules.js +94 -0
  180. package/vnet/securityRules/index.d.ts +2 -0
  181. package/vnet/securityRules/index.js +19 -0
package/logs/Logs.js ADDED
@@ -0,0 +1,154 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Logs = void 0;
37
+ const az = __importStar(require("@pulumi/azure-native"));
38
+ const pulumi = __importStar(require("@pulumi/pulumi"));
39
+ const base_1 = require("../base");
40
+ const storage_1 = require("../storage");
41
+ class Logs extends base_1.BaseResourceComponent {
42
+ storage;
43
+ workspace;
44
+ appInsight;
45
+ constructor(name, args, opts) {
46
+ super('Logs', name, args, opts);
47
+ const storage = this.createStorage();
48
+ const workspace = this.createWorkspace();
49
+ const appInsight = this.createAppInsight(workspace);
50
+ if (storage) {
51
+ this.storage = {
52
+ id: storage.id,
53
+ resourceName: storage.resourceName,
54
+ };
55
+ }
56
+ if (workspace) {
57
+ this.workspace = {
58
+ id: workspace.id,
59
+ resourceName: workspace.name,
60
+ customerId: pulumi.secret(workspace.customerId),
61
+ };
62
+ this.addSecret(`${name}-wp-customerId`, workspace.customerId);
63
+ }
64
+ if (appInsight) {
65
+ this.appInsight = {
66
+ id: appInsight.id,
67
+ resourceName: appInsight.name,
68
+ instrumentationKey: pulumi.secret(appInsight.instrumentationKey),
69
+ };
70
+ this.addSecret(`${name}-appInsight-key`, appInsight.instrumentationKey);
71
+ }
72
+ this.registerOutputs();
73
+ }
74
+ getOutputs() {
75
+ return {
76
+ storage: this.storage,
77
+ workspace: this.workspace,
78
+ appInsight: this.appInsight,
79
+ };
80
+ }
81
+ createWorkspace() {
82
+ const { workspace, rsGroup, retentionInDays } = this.args;
83
+ if (!workspace?.enabled)
84
+ return undefined;
85
+ const sku = workspace.sku || az.operationalinsights.WorkspaceSkuNameEnum.Free;
86
+ const dailyQuotaGb = workspace.dailyQuotaGb || 0.1;
87
+ return new az.operationalinsights.Workspace(`${this.name}-wp`, {
88
+ ...rsGroup,
89
+ publicNetworkAccessForIngestion: workspace.publicNetworkAccessForIngestion,
90
+ publicNetworkAccessForQuery: workspace.publicNetworkAccessForQuery,
91
+ features: {
92
+ immediatePurgeDataOn30Days: workspace.immediatePurgeDataOn30Days ?? true,
93
+ disableLocalAuth: workspace.disableLocalAuth,
94
+ enableLogAccessUsingOnlyResourcePermissions: workspace.enableLogAccessUsingOnlyResourcePermissions,
95
+ enableDataExport: workspace.enableDataExport,
96
+ },
97
+ workspaceCapping: sku === az.operationalinsights.WorkspaceSkuNameEnum.Free ? undefined : { dailyQuotaGb },
98
+ retentionInDays: sku === az.operationalinsights.WorkspaceSkuNameEnum.Free ? 7 : retentionInDays ?? 30,
99
+ sku: { name: sku },
100
+ }, { dependsOn: this.opts?.dependsOn, parent: this });
101
+ }
102
+ createAppInsight(wp) {
103
+ const { workspace, rsGroup, retentionInDays } = this.args;
104
+ if (!wp || !workspace?.appInsightEnabled)
105
+ return undefined;
106
+ return new az.applicationinsights.Component(`${this.name}-ais`, {
107
+ ...rsGroup,
108
+ kind: 'web',
109
+ disableIpMasking: true,
110
+ applicationType: 'web',
111
+ flowType: 'Bluefield',
112
+ publicNetworkAccessForIngestion: workspace.publicNetworkAccessForIngestion,
113
+ publicNetworkAccessForQuery: workspace.publicNetworkAccessForQuery,
114
+ samplingPercentage: workspace.samplingPercentage || 70,
115
+ retentionInDays: retentionInDays ?? 30,
116
+ immediatePurgeDataOn30Days: workspace.immediatePurgeDataOn30Days ?? true,
117
+ ingestionMode: 'LogAnalytics',
118
+ disableLocalAuth: workspace.disableLocalAuth,
119
+ workspaceResourceId: wp.id,
120
+ }, { dependsOn: wp, parent: this });
121
+ }
122
+ createStorage() {
123
+ const { storage, rsGroup, retentionInDays, vaultInfo } = this.args;
124
+ if (!storage?.enabled)
125
+ return undefined;
126
+ return new storage_1.StorageAccount(this.name, {
127
+ rsGroup,
128
+ vaultInfo,
129
+ allowSharedKeyAccess: true,
130
+ policies: {
131
+ defaultManagementPolicyRules: [
132
+ {
133
+ name: 'auto-delete-all-containers',
134
+ type: 'Lifecycle',
135
+ enabled: true,
136
+ definition: {
137
+ actions: {
138
+ baseBlob: {
139
+ delete: {
140
+ daysAfterCreationGreaterThan: retentionInDays ?? 30,
141
+ //daysAfterModificationGreaterThan: retentionInDays ?? 30,
142
+ },
143
+ },
144
+ },
145
+ filters: { blobTypes: ['blockBlob'] },
146
+ },
147
+ },
148
+ ],
149
+ },
150
+ }, { dependsOn: this.opts?.dependsOn, parent: this });
151
+ }
152
+ }
153
+ exports.Logs = Logs;
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dzL0xvZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseURBQTJDO0FBQzNDLHVEQUF5QztBQUN6QyxrQ0FBMEQ7QUFDMUQsd0NBQTRDO0FBc0I1QyxNQUFhLElBQUssU0FBUSw0QkFBK0I7SUFDdkMsT0FBTyxDQUF5QjtJQUNoQyxTQUFTLENBQTBCO0lBQ25DLFVBQVUsQ0FBMkI7SUFFckQsWUFBWSxJQUFZLEVBQUUsSUFBYyxFQUFFLElBQXNDO1FBQzlFLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVoQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVwRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRztnQkFDYixFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUU7Z0JBQ2QsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO2FBQ25DLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxTQUFTLEdBQUc7Z0JBQ2YsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFO2dCQUNoQixZQUFZLEVBQUUsU0FBUyxDQUFDLElBQUk7Z0JBQzVCLFVBQVUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7YUFDaEQsQ0FBQztZQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxVQUFVLENB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
@@ -0,0 +1 @@
1
+ export * as logHelpers from './helpers';
@@ -0,0 +1,38 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.logHelpers = void 0;
37
+ exports.logHelpers = __importStar(require("./helpers"));
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQXdDIn0=
@@ -0,0 +1 @@
1
+ export * from './Logs';
package/logs/index.js ADDED
@@ -0,0 +1,18 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Logs"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9ncy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCIn0=
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "@drunk-pulumi/azure-components",
3
+ "version": "0.0.6",
4
+ "description": "The custom components for Pulumi Azure",
5
+ "main": "index.js",
6
+ "types": "index.d.ts",
7
+ "pulumi": {
8
+ "resource": false,
9
+ "name": "@drunk-pulumi/azure-components"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/baoduy/drunk-pulumi-azure-components.git"
14
+ },
15
+ "keywords": [],
16
+ "author": "Steven Hoang",
17
+ "license": "MIT",
18
+ "dependencies": {
19
+ "@drunk-pulumi/azure-providers": "^1.0.9",
20
+ "@pulumi/azure-native": "^3.3.0",
21
+ "@pulumi/azuread": "^6.4.0",
22
+ "@pulumi/pulumi": "^3.167.0",
23
+ "@pulumi/random": "^4.18.2",
24
+ "netmask": "^2.0.2",
25
+ "openpgp": "^6.1.0"
26
+ },
27
+ "prettier": {
28
+ "semi": true,
29
+ "trailingComma": "all",
30
+ "singleQuote": true,
31
+ "printWidth": 120,
32
+ "tabWidth": 2
33
+ }
34
+ }
@@ -0,0 +1,16 @@
1
+ import * as automation from '@pulumi/azure-native/automation';
2
+ import * as pulumi from '@pulumi/pulumi';
3
+ import { BaseResourceComponent, CommonBaseArgs } from '../base';
4
+ import * as types from '../types';
5
+ export interface AutomationArgs extends CommonBaseArgs, types.WithUserAssignedIdentity, types.WithEncryptionEnabler, Pick<automation.AutomationAccountArgs, 'sku'> {
6
+ }
7
+ export declare class Automation extends BaseResourceComponent<AutomationArgs> {
8
+ readonly id: pulumi.Output<string>;
9
+ readonly resourceName: pulumi.Output<string>;
10
+ constructor(name: string, args: AutomationArgs, opts?: pulumi.ComponentResourceOptions);
11
+ getOutputs(): {
12
+ id: pulumi.Output<string>;
13
+ resourceName: pulumi.Output<string>;
14
+ };
15
+ private createUAssignedId;
16
+ }
@@ -0,0 +1,85 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Automation = void 0;
37
+ const automation = __importStar(require("@pulumi/azure-native/automation"));
38
+ const azAd_1 = require("../azAd");
39
+ const base_1 = require("../base");
40
+ class Automation extends base_1.BaseResourceComponent {
41
+ id;
42
+ resourceName;
43
+ constructor(name, args, opts) {
44
+ super('Automation', name, args, opts);
45
+ const { rsGroup, enableEncryption, groupRoles, defaultUAssignedId, ...props } = args;
46
+ const uAssignedId = this.createUAssignedId();
47
+ const encryptionKey = args.enableEncryption ? this.getEncryptionKey() : undefined;
48
+ const auto = new automation.AutomationAccount(name, {
49
+ ...props,
50
+ ...rsGroup,
51
+ publicNetworkAccess: false,
52
+ disableLocalAuth: true,
53
+ identity: {
54
+ type: automation.ResourceIdentityType.SystemAssigned_UserAssigned,
55
+ userAssignedIdentities: defaultUAssignedId ? [uAssignedId.id, defaultUAssignedId.id] : [uAssignedId.id],
56
+ },
57
+ encryption: {
58
+ keySource: encryptionKey ? 'Microsoft.Keyvault' : 'Microsoft.Automation',
59
+ identity: encryptionKey ? { userAssignedIdentity: defaultUAssignedId?.id ?? uAssignedId.id } : undefined,
60
+ keyVaultProperties: encryptionKey
61
+ ? {
62
+ keyName: encryptionKey.keyName,
63
+ keyvaultUri: encryptionKey.vaultUrl,
64
+ keyVersion: encryptionKey.version,
65
+ }
66
+ : undefined,
67
+ },
68
+ }, { ...opts, dependsOn: encryptionKey ? [uAssignedId, encryptionKey] : uAssignedId, parent: this });
69
+ this.id = auto.id;
70
+ this.resourceName = auto.name;
71
+ this.registerOutputs();
72
+ }
73
+ getOutputs() {
74
+ return {
75
+ id: this.id,
76
+ resourceName: this.resourceName,
77
+ };
78
+ }
79
+ createUAssignedId() {
80
+ const { rsGroup, groupRoles, vaultInfo } = this.args;
81
+ return new azAd_1.UserAssignedIdentity(this.name, { rsGroup, vaultInfo, memberof: groupRoles ? [groupRoles.contributor] : undefined }, { dependsOn: this.opts?.dependsOn, parent: this });
82
+ }
83
+ }
84
+ exports.Automation = Automation;
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0b21hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9BdXRvbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRFQUE4RDtBQUU5RCxrQ0FBK0M7QUFDL0Msa0NBQWdFO0FBU2hFLE1BQWEsVUFBVyxTQUFRLDRCQUFxQztJQUNuRCxFQUFFLENBQXdCO0lBQzFCLFlBQVksQ0FBd0I7SUFFcEQsWUFBWSxJQUFZLEVBQUUsSUFBb0IsRUFBRSxJQUFzQztRQUNwRixLQUFLLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFdEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDckYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0MsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWxGLE1BQU0sSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLGlCQUFpQixDQUMzQyxJQUFJLEVBQ0o7WUFDRSxHQUFHLEtBQUs7WUFDUixHQUFHLE9BQU87WUFDVixtQkFBbUIsRUFBRSxLQUFLO1lBQzFCLGdCQUFnQixFQUFFLElBQUk7WUFFdEIsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxVQUFVLENBQUMsb0JBQW9CLENBQUMsMkJBQTJCO2dCQUNqRSxzQkFBc0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7YUFDeEc7WUFFRCxVQUFVLEVBQUU7Z0JBQ1YsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLHNCQUFzQjtnQkFDeEUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUN4RyxrQkFBa0IsRUFBRSxhQUFhO29CQUMvQixDQUFDLENBQUM7d0JBQ0UsT0FBTyxFQUFFLGFBQWEsQ0FBQyxPQUFPO3dCQUM5QixXQUFXLEVBQUUsYUFBYSxDQUFDLFFBQVE7d0JBQ25DLFVBQVUsRUFBRSxhQUFhLENBQUMsT0FBTztxQkFDbEM7b0JBQ0gsQ0FBQyxDQUFDLFNBQVM7YUFDZDtTQUNGLEVBQ0QsRUFBRSxHQUFHLElBQUksRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FDakcsQ0FBQztRQUVGLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFOUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUNPLGlCQUFpQjtRQUN2QixNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JELE9BQU8sSUFBSSwyQkFBb0IsQ0FDN0IsSUFBSSxDQUFDLElBQUksRUFDVCxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUNuRixFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQ2xELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUEzREQsZ0NBMkRDIn0=
@@ -0,0 +1,20 @@
1
+ import * as search from '@pulumi/azure-native/search';
2
+ import * as pulumi from '@pulumi/pulumi';
3
+ import { BaseResourceComponent, CommonBaseArgs } from '../base';
4
+ import * as types from '../types';
5
+ export interface AzSearchArgs extends CommonBaseArgs, types.WithUserAssignedIdentity, types.WithEncryptionEnabler, Pick<search.ServiceArgs, 'authOptions' | 'hostingMode' | 'partitionCount' | 'replicaCount' | 'semanticSearch'> {
6
+ sku: search.SkuName;
7
+ disableLocalAuth?: boolean;
8
+ network?: Pick<types.NetworkArgs, 'publicNetworkAccess' | 'ipRules' | 'privateLink'>;
9
+ }
10
+ export declare class AzSearch extends BaseResourceComponent<AzSearchArgs> {
11
+ readonly id: pulumi.Output<string>;
12
+ readonly resourceName: pulumi.Output<string>;
13
+ constructor(name: string, args: AzSearchArgs, opts?: pulumi.ComponentResourceOptions);
14
+ getOutputs(): {
15
+ id: pulumi.Output<string>;
16
+ resourceName: pulumi.Output<string>;
17
+ };
18
+ private createPrivateLink;
19
+ private addSecretsToVault;
20
+ }
@@ -0,0 +1,113 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.AzSearch = void 0;
37
+ const search = __importStar(require("@pulumi/azure-native/search"));
38
+ const pulumi = __importStar(require("@pulumi/pulumi"));
39
+ const base_1 = require("../base");
40
+ const vault = __importStar(require("../vault"));
41
+ const PrivateEndpoint_1 = require("../vnet/PrivateEndpoint");
42
+ class AzSearch extends base_1.BaseResourceComponent {
43
+ id;
44
+ resourceName;
45
+ constructor(name, args, opts) {
46
+ super('AzSearch', name, args, opts);
47
+ const { rsGroup, enableEncryption, network, ...props } = args;
48
+ const service = new search.Service(name, {
49
+ ...props,
50
+ ...rsGroup,
51
+ sku: { name: props.sku },
52
+ encryptionWithCmk: enableEncryption
53
+ ? {
54
+ enforcement: search.SearchEncryptionWithCmk.Enabled,
55
+ }
56
+ : undefined,
57
+ identity: {
58
+ type: props.sku === search.SkuName.Free ? search.IdentityType.None : search.IdentityType.SystemAssigned,
59
+ },
60
+ publicNetworkAccess: network?.publicNetworkAccess ? 'enabled' : network?.privateLink ? 'disabled' : 'enabled',
61
+ networkRuleSet: network?.ipRules
62
+ ? {
63
+ ipRules: pulumi.output(network.ipRules).apply((ips) => ips.map((i) => ({ value: i }))),
64
+ }
65
+ : undefined,
66
+ }, { ...opts, parent: this });
67
+ this.createPrivateLink(service);
68
+ this.addSecretsToVault(service);
69
+ this.id = service.id;
70
+ this.resourceName = service.name;
71
+ this.registerOutputs();
72
+ }
73
+ getOutputs() {
74
+ return {
75
+ id: this.id,
76
+ resourceName: this.resourceName,
77
+ };
78
+ }
79
+ createPrivateLink(service) {
80
+ const { rsGroup, network } = this.args;
81
+ if (!network?.privateLink)
82
+ return;
83
+ return new PrivateEndpoint_1.PrivateEndpoint(this.name, { ...network.privateLink, resourceInfo: service, rsGroup, type: 'azSearch' }, { dependsOn: service, parent: this });
84
+ }
85
+ addSecretsToVault(service) {
86
+ const { disableLocalAuth, rsGroup, vaultInfo } = this.args;
87
+ if (disableLocalAuth || !vaultInfo)
88
+ return;
89
+ pulumi.output([service.name, rsGroup.resourceGroupName]).apply(async ([svName, rgName]) => {
90
+ if (!svName)
91
+ return;
92
+ const keys = await search.listQueryKeyBySearchService({
93
+ searchServiceName: svName,
94
+ resourceGroupName: rgName,
95
+ });
96
+ new vault.VaultSecrets(this.name, {
97
+ vaultInfo,
98
+ secrets: {
99
+ [`${this.name}-${keys.value[0].key}`]: {
100
+ value: keys.value[0].name,
101
+ contentType: `AzSearch ${keys.value[0].key}`,
102
+ },
103
+ [`${this.name}-${keys.value[1].key}`]: {
104
+ value: keys.value[1].name,
105
+ contentType: `AzSearch ${keys.value[1].key}`,
106
+ },
107
+ },
108
+ }, { dependsOn: service, parent: this });
109
+ });
110
+ }
111
+ }
112
+ exports.AzSearch = AzSearch;
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXpTZWFyY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvQXpTZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0VBQXNEO0FBQ3RELHVEQUF5QztBQUN6QyxrQ0FBZ0U7QUFFaEUsZ0RBQWtDO0FBQ2xDLDZEQUEwRDtBQVkxRCxNQUFhLFFBQVMsU0FBUSw0QkFBbUM7SUFDL0MsRUFBRSxDQUF3QjtJQUMxQixZQUFZLENBQXdCO0lBRXBELFlBQVksSUFBWSxFQUFFLElBQWtCLEVBQUUsSUFBc0M7UUFDbEYsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBDLE1BQU0sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRTlELE1BQU0sT0FBTyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FDaEMsSUFBSSxFQUNKO1lBQ0UsR0FBRyxLQUFLO1lBQ1IsR0FBRyxPQUFPO1lBQ1YsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFFeEIsaUJBQWlCLEVBQUUsZ0JBQWdCO2dCQUNqQyxDQUFDLENBQUM7b0JBQ0UsV0FBVyxFQUFFLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPO2lCQUNwRDtnQkFDSCxDQUFDLENBQUMsU0FBUztZQUNiLFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsY0FBYzthQUN4RztZQUVELG1CQUFtQixFQUFFLE9BQU8sRUFBRSxtQkFB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
@@ -0,0 +1,42 @@
1
+ import * as bus from '@pulumi/azure-native/servicebus';
2
+ import * as pulumi from '@pulumi/pulumi';
3
+ import { BaseResourceComponent, CommonBaseArgs } from '../base';
4
+ import * as types from '../types';
5
+ type SubscriptionsType = Record<string, Omit<bus.SubscriptionArgs, 'namespaceName' | 'topicName' | 'subscriptionName' | 'resourceGroupName' | 'status'>>;
6
+ export interface ServiceBusArgs extends CommonBaseArgs, types.WithUserAssignedIdentity, types.WithEncryptionEnabler, types.WithNetworkArgs, Pick<bus.NamespaceArgs, 'sku' | 'zoneRedundant' | 'alternateName' | 'disableLocalAuth' | 'premiumMessagingPartitions'> {
7
+ sku: {
8
+ /**
9
+ * Messaging units for your service bus premium namespace. Valid capacities are {1, 2, 4, 8, 16} multiples of your properties.premiumMessagingPartitions setting. For example, If properties.premiumMessagingPartitions is 1 then possible capacity values are 1, 2, 4, 8, and 16. If properties.premiumMessagingPartitions is 4 then possible capacity values are 4, 8, 16, 32 and 64
10
+ */
11
+ capacity?: pulumi.Input<number>;
12
+ /**
13
+ * Name of this SKU.
14
+ */
15
+ name: bus.SkuName;
16
+ /**
17
+ * The billing tier of this particular SKU.
18
+ */
19
+ tier?: bus.SkuTier;
20
+ };
21
+ queues?: Record<string, Omit<bus.QueueArgs, 'namespaceName' | 'queueName' | 'resourceGroupName' | 'status'>>;
22
+ topics?: Record<string, Omit<bus.TopicArgs, 'namespaceName' | 'topicName' | 'resourceGroupName' | 'status'> & {
23
+ subscriptions?: SubscriptionsType;
24
+ }>;
25
+ }
26
+ export declare class ServiceBus extends BaseResourceComponent<ServiceBusArgs> {
27
+ readonly id: pulumi.Output<string>;
28
+ readonly resourceName: pulumi.Output<string>;
29
+ constructor(name: string, args: ServiceBusArgs, opts?: pulumi.ComponentResourceOptions);
30
+ getOutputs(): {
31
+ id: pulumi.Output<string>;
32
+ resourceName: pulumi.Output<string>;
33
+ };
34
+ private createBusNamespace;
35
+ private createNetwork;
36
+ private createConnectionStrings;
37
+ private addConnectionsToVault;
38
+ private createQueues;
39
+ private createTopics;
40
+ private createSubscriptions;
41
+ }
42
+ export {};