@drunk-pulumi/azure 0.0.38 → 0.0.40

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 (96) hide show
  1. package/Aks/Helper.d.ts +2 -2
  2. package/Aks/Helper.js +2 -2
  3. package/Aks/index.d.ts +2 -1
  4. package/Aks/index.js +39 -46
  5. package/Apim/index.d.ts +4 -4
  6. package/Apim/index.js +2 -3
  7. package/AzAd/B2C.d.ts +3 -4
  8. package/AzAd/B2C.js +11 -15
  9. package/AzAd/EnvRoles.d.ts +2 -1
  10. package/AzAd/EnvRoles.js +2 -2
  11. package/AzAd/Helper.js +9 -5
  12. package/AzAd/Identities/AzDevOpsManagedIdentity.d.ts +0 -1
  13. package/AzAd/Identities/AzDevOpsManagedIdentity.js +1 -2
  14. package/AzAd/RoleDefinitions/JustInTimeRequestRole.js +1 -2
  15. package/AzAd/UserAssignedIdentity.d.ts +1 -2
  16. package/AzAd/UserAssignedIdentity.js +2 -8
  17. package/Builder/AksBuilder.d.ts +2 -2
  18. package/Builder/AksBuilder.js +6 -7
  19. package/Builder/ResourceBuilder.d.ts +3 -0
  20. package/Builder/ResourceBuilder.js +198 -0
  21. package/Builder/SqlBuilder.d.ts +3 -0
  22. package/Builder/SqlBuilder.js +81 -0
  23. package/Builder/VaultBuilder.d.ts +18 -0
  24. package/Builder/VaultBuilder.js +74 -0
  25. package/Builder/VmBuilder.d.ts +3 -0
  26. package/Builder/VmBuilder.js +83 -0
  27. package/Builder/VnetBuilder.d.ts +2 -2
  28. package/Builder/VnetBuilder.js +17 -9
  29. package/Builder/index.d.ts +5 -0
  30. package/Builder/index.js +25 -2
  31. package/Builder/types/askBuilder.d.ts +30 -0
  32. package/Builder/types/askBuilder.js +3 -0
  33. package/Builder/types/genericBuilder.d.ts +36 -0
  34. package/Builder/types/genericBuilder.js +18 -0
  35. package/Builder/types/index.d.ts +6 -0
  36. package/Builder/types/index.js +23 -0
  37. package/Builder/types/resourceBuilder.d.ts +46 -0
  38. package/Builder/types/resourceBuilder.js +3 -0
  39. package/Builder/types/sqlBuilder.d.ts +20 -0
  40. package/Builder/types/sqlBuilder.js +3 -0
  41. package/Builder/types/vaultBuilder.d.ts +16 -0
  42. package/Builder/types/vaultBuilder.js +3 -0
  43. package/Builder/types/vmBuilder.d.ts +29 -0
  44. package/Builder/types/vmBuilder.js +3 -0
  45. package/Builder/types/vnetBuilder.d.ts +64 -0
  46. package/Builder/types/vnetBuilder.js +3 -0
  47. package/Certificate/p12.js +2 -3
  48. package/Common/GlobalEnv.d.ts +1 -1
  49. package/Common/Helpers.js +3 -3
  50. package/ContainerRegistry/index.d.ts +4 -5
  51. package/ContainerRegistry/index.js +14 -16
  52. package/Core/Random.d.ts +1 -1
  53. package/Core/Random.js +6 -2
  54. package/Core/ResourceCreator.d.ts +7 -4
  55. package/Core/ResourceCreator.js +5 -5
  56. package/Core/ResourceGroup.d.ts +10 -8
  57. package/Core/ResourceGroup.js +2 -2
  58. package/IOT/Hub/index.d.ts +1 -2
  59. package/IOT/Hub/index.js +2 -6
  60. package/KeyVault/CustomHelper.d.ts +5 -5
  61. package/KeyVault/CustomHelper.js +8 -9
  62. package/KeyVault/index.d.ts +15 -6
  63. package/KeyVault/index.js +45 -36
  64. package/MySql/index.d.ts +1 -2
  65. package/MySql/index.js +3 -8
  66. package/Postgresql/index.js +2 -2
  67. package/ServiceBus/index.d.ts +12 -15
  68. package/ServiceBus/index.js +20 -32
  69. package/SignalR/index.d.ts +6 -9
  70. package/SignalR/index.js +16 -17
  71. package/Sql/SqlDb.d.ts +5 -6
  72. package/Sql/SqlDb.js +4 -18
  73. package/Sql/index.d.ts +37 -38
  74. package/Sql/index.js +43 -55
  75. package/VM/index.js +2 -2
  76. package/VNet/Bastion.js +1 -2
  77. package/VNet/FirewallPolicies/AksFirewallPolicy.js +6 -21
  78. package/VNet/FirewallPolicies/CFTunnelFirewallPolicy.d.ts +9 -0
  79. package/VNet/FirewallPolicies/CFTunnelFirewallPolicy.js +59 -0
  80. package/VNet/FirewallPolicies/CloudPCFirewallPolicy.js +2 -2
  81. package/VNet/FirewallPolicies/index.d.ts +4 -4
  82. package/VNet/FirewallPolicies/index.js +10 -8
  83. package/VNet/IpAddressPrefix.js +1 -1
  84. package/VNet/PrivateDns.d.ts +7 -7
  85. package/VNet/PrivateDns.js +11 -6
  86. package/VNet/PrivateEndpoint.d.ts +1 -1
  87. package/VNet/PrivateEndpoint.js +29 -49
  88. package/VNet/index.d.ts +3 -3
  89. package/Web/FuncApp.d.ts +5 -6
  90. package/Web/FuncApp.js +2 -6
  91. package/Web/WebAppPlan.d.ts +3 -4
  92. package/Web/WebAppPlan.js +5 -9
  93. package/package.json +5 -5
  94. package/types.d.ts +2 -4
  95. package/Builder/types.d.ts +0 -120
  96. package/Builder/types.js +0 -18
@@ -6,23 +6,22 @@ const AzureEnv_1 = require("../Common/AzureEnv");
6
6
  const ResourceCreator_1 = require("../Core/ResourceCreator");
7
7
  const Naming_1 = require("../Common/Naming");
8
8
  const PrivateEndpoint_1 = require("../VNet/PrivateEndpoint");
9
- const Locker_1 = require("../Core/Locker");
10
9
  const CustomHelper_1 = require("../KeyVault/CustomHelper");
11
10
  const Helper_1 = require("../KeyVault/Helper");
12
- const duplicateDetectedTime = AzureEnv_1.isPrd ? 'P3D' : 'PT10M';
11
+ const duplicateDetectedTime = AzureEnv_1.isPrd ? "P3D" : "PT10M";
13
12
  const defaultValues = {
14
13
  maxDeliveryCount: 10,
15
14
  enableBatchedOperations: true,
16
- defaultMessageTtl: AzureEnv_1.isPrd ? 'P30D' : 'P1D',
17
- defaultMessageTimeToLive: AzureEnv_1.isPrd ? 'P30D' : 'P1D',
15
+ defaultMessageTtl: AzureEnv_1.isPrd ? "P30D" : "P1D",
16
+ defaultMessageTimeToLive: AzureEnv_1.isPrd ? "P30D" : "P1D",
18
17
  deadLetteringOnMessageExpiration: true,
19
18
  maxSizeInMegabytes: 1024,
20
- lockDuration: 'PT1M',
19
+ lockDuration: "PT1M",
21
20
  //Auto delete subscription after 30 idle.
22
21
  //autoDeleteOnIdle: 'P30D',
23
22
  //enableExpress: true, this and requiresDuplicateDetection are not able to enabled together
24
23
  };
25
- const createAndStoreConnection = ({ namespaceName, topicName, queueName, connectionType, transportType = 'AmqpWebSockets', resourceGroupName, removeEntityPath, vaultInfo, dependsOn, }) => {
24
+ const createAndStoreConnection = ({ namespaceName, topicName, queueName, connectionType, transportType = "AmqpWebSockets", resourceGroupName, removeEntityPath, vaultInfo, dependsOn, }) => {
26
25
  const name = (topicName || queueName);
27
26
  const key = name
28
27
  ? (0, ServiceBusHelper_1.getTopicOrQueueVaultName)({
@@ -90,9 +89,9 @@ const createAndStoreConnection = ({ namespaceName, topicName, queueName, connect
90
89
  resourceGroupName,
91
90
  }));
92
91
  let primaryConn = removeEntityPath
93
- ? keys.primaryConnectionString.replace(`;EntityPath=${name}`, '')
92
+ ? keys.primaryConnectionString.replace(`;EntityPath=${name}`, "")
94
93
  : keys.primaryConnectionString;
95
- if (typeof transportType === 'string')
94
+ if (typeof transportType === "string")
96
95
  primaryConn += `;TransportType=${transportType};`;
97
96
  (0, CustomHelper_1.addCustomSecret)({
98
97
  name: primaryName,
@@ -102,9 +101,9 @@ const createAndStoreConnection = ({ namespaceName, topicName, queueName, connect
102
101
  dependsOn: rule,
103
102
  });
104
103
  let secondConn = removeEntityPath
105
- ? keys.secondaryConnectionString.replace(`;EntityPath=${name}`, '')
104
+ ? keys.secondaryConnectionString.replace(`;EntityPath=${name}`, "")
106
105
  : keys.secondaryConnectionString;
107
- if (typeof transportType === 'string')
106
+ if (typeof transportType === "string")
108
107
  secondConn += `;TransportType=${transportType};`;
109
108
  (0, CustomHelper_1.addCustomSecret)({
110
109
  name: secondaryName,
@@ -117,7 +116,7 @@ const createAndStoreConnection = ({ namespaceName, topicName, queueName, connect
117
116
  return { primaryName, secondaryName };
118
117
  };
119
118
  /** Topic creator */
120
- const topicCreator = ({ group, namespaceFullName, subscriptions, shortName, vaultInfo, version, enableConnections, lock = true, dependsOn, options = {
119
+ const topicCreator = ({ group, namespaceFullName, subscriptions, shortName, vaultInfo, version, enableConnections, dependsOn, options = {
121
120
  duplicateDetectionHistoryTimeWindow: duplicateDetectedTime,
122
121
  requiresDuplicateDetection: true,
123
122
  enablePartitioning: true,
@@ -130,9 +129,6 @@ const topicCreator = ({ group, namespaceFullName, subscriptions, shortName, vaul
130
129
  ...defaultValues,
131
130
  ...options,
132
131
  }, { dependsOn });
133
- if (lock) {
134
- (0, Locker_1.default)({ name: topicName, resource: topic });
135
- }
136
132
  let primaryConnectionKeys = undefined;
137
133
  let secondaryConnectionKeys = undefined;
138
134
  if (vaultInfo && enableConnections) {
@@ -178,7 +174,6 @@ const topicCreator = ({ group, namespaceFullName, subscriptions, shortName, vaul
178
174
  topicFullName: topic.name,
179
175
  enableSession: s.enableSession,
180
176
  group,
181
- lock: false,
182
177
  dependsOn: topic,
183
178
  }));
184
179
  }
@@ -190,7 +185,7 @@ const topicCreator = ({ group, namespaceFullName, subscriptions, shortName, vaul
190
185
  };
191
186
  };
192
187
  /** Subscription creator */
193
- const subscriptionCreator = ({ group, shortName, topicFullName, namespaceFullName, enableSession, lock = true, dependsOn, }) => {
188
+ const subscriptionCreator = ({ group, shortName, topicFullName, namespaceFullName, enableSession, dependsOn, }) => {
194
189
  const name = (0, ServiceBusHelper_1.getSubscriptionName)(shortName);
195
190
  const resource = new bus.Subscription(name, {
196
191
  subscriptionName: name,
@@ -200,16 +195,13 @@ const subscriptionCreator = ({ group, shortName, topicFullName, namespaceFullNam
200
195
  requiresSession: enableSession,
201
196
  ...defaultValues,
202
197
  }, { dependsOn });
203
- if (lock) {
204
- (0, Locker_1.default)({ name, resource });
205
- }
206
198
  return {
207
199
  name,
208
200
  resource,
209
201
  };
210
202
  };
211
203
  /** Queue creator */
212
- const queueCreator = ({ group, namespaceFullName, shortName, vaultInfo, version, lock = true, enableConnections, options = {
204
+ const queueCreator = ({ group, namespaceFullName, shortName, vaultInfo, version, enableConnections, options = {
213
205
  requiresDuplicateDetection: false,
214
206
  enablePartitioning: true,
215
207
  }, dependsOn, ...others }) => {
@@ -221,9 +213,6 @@ const queueCreator = ({ group, namespaceFullName, shortName, vaultInfo, version,
221
213
  ...defaultValues,
222
214
  ...options,
223
215
  }, { dependsOn });
224
- if (lock) {
225
- (0, Locker_1.default)({ name, resource: queue });
226
- }
227
216
  let primaryConnectionKeys = undefined;
228
217
  let secondaryConnectionKeys = undefined;
229
218
  if (vaultInfo && enableConnections) {
@@ -267,7 +256,7 @@ const queueCreator = ({ group, namespaceFullName, shortName, vaultInfo, version,
267
256
  /** Azure Bus creator */
268
257
  exports.default = ({ name, group, topics, queues, drConfig, network = {}, vaultInfo, enableNamespaceConnections, enableTopicConnections, enableQueueConnections, sku = bus.SkuName.Basic, monitoring, ...others }) => {
269
258
  name = (0, Naming_1.getServiceBusName)(name);
270
- const { resource, locker, diagnostic } = (0, ResourceCreator_1.default)(bus.Namespace, {
259
+ const { resource, diagnostic } = (0, ResourceCreator_1.default)(bus.Namespace, {
271
260
  namespaceName: name,
272
261
  ...group,
273
262
  sku: { name: sku, tier: sku },
@@ -275,7 +264,7 @@ exports.default = ({ name, group, topics, queues, drConfig, network = {}, vaultI
275
264
  monitoring: monitoring
276
265
  ? {
277
266
  ...monitoring,
278
- logsCategories: ['OperationalLogs'],
267
+ logsCategories: ["OperationalLogs"],
279
268
  }
280
269
  : undefined,
281
270
  });
@@ -350,7 +339,7 @@ exports.default = ({ name, group, topics, queues, drConfig, network = {}, vaultI
350
339
  new bus.NamespaceNetworkRuleSet(name, {
351
340
  namespaceName: namespace.name,
352
341
  ...group,
353
- defaultAction: 'Deny',
342
+ defaultAction: "Deny",
354
343
  ipRules: network.whitelistIps
355
344
  ? network.whitelistIps.map((i) => ({
356
345
  ipMask: i,
@@ -371,11 +360,11 @@ exports.default = ({ name, group, topics, queues, drConfig, network = {}, vaultI
371
360
  (0, PrivateEndpoint_1.default)({
372
361
  name: (0, Naming_1.getPrivateEndpointName)(name),
373
362
  group,
374
- subnetId: network.subnetId,
375
- useGlobalDnsZone: network.useGlobalDnsZone,
363
+ subnetIds: [network.subnetId],
364
+ //useGlobalDnsZone: network.useGlobalDnsZone,
376
365
  resourceId: namespace.id,
377
- linkServiceGroupIds: ['namespace'],
378
- privateDnsZoneName: 'privatelink.servicebus.windows.net',
366
+ linkServiceGroupIds: ["namespace"],
367
+ privateDnsZoneName: "privatelink.servicebus.windows.net",
379
368
  });
380
369
  }
381
370
  }
@@ -388,8 +377,7 @@ exports.default = ({ name, group, topics, queues, drConfig, network = {}, vaultI
388
377
  getConnectionString: (name) => vaultInfo
389
378
  ? (0, Helper_1.getSecret)({ name, nameFormatted: true, vaultInfo })
390
379
  : undefined,
391
- locker,
392
380
  diagnostic,
393
381
  };
394
382
  };
395
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2VydmljZUJ1cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVEQUF1RDtBQWF2RCx5REFPNEI7QUFDNUIsaURBQTJDO0FBQzNDLDZEQUE4QztBQUM5Qyw2Q0FBNkU7QUFDN0UsNkRBQXNEO0FBQ3RELDJDQUFvQztBQUNwQywyREFBMkQ7QUFDM0QsK0NBQStDO0FBRy9DLE1BQU0scUJBQXFCLEdBQUcsZ0JBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFFdEQsTUFBTSxhQUFhLEdBQUc7SUFDcEIsZ0JBQWdCLEVBQUUsRUFBRTtJQUNwQix1QkFBdUIsRUFBRSxJQUFJO0lBQzdCLGlCQUFpQixFQUFFLGdCQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSztJQUN6Qyx3QkFBd0IsRUFBRSxnQkFBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUs7SUFDaEQsZ0NBQWdDLEVBQUUsSUFBSTtJQUN0QyxrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLFlBQVksRUFBRSxNQUFNO0lBRXBCLHlDQUF5QztJQUN6QywyQkFBMkI7SUFDM0IsMkZBQTJGO0NBQzVGLENBQUM7QUFvQkYsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEVBQ2hDLGFBQWEsRUFDYixTQUFTLEVBQ1QsU0FBUyxFQUNULGNBQWMsRUFDZCxhQUFhLEdBQUcsZ0JBQWdCLEVBQ2hDLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFNBQVMsR0FDUSxFQUFFLEVBQUU7SUFDckIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFFLENBQUM7SUFDdkMsTUFBTSxHQUFHLEdBQUcsSUFBSTtRQUNkLENBQUMsQ0FBQyxJQUFBLDJDQUF3QixFQUFDO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJ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
383
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2VydmljZUJ1cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVEQUF1RDtBQVl2RCx5REFPNEI7QUFDNUIsaURBQTJDO0FBQzNDLDZEQUE4QztBQUM5Qyw2Q0FBNkU7QUFDN0UsNkRBQXNEO0FBQ3RELDJEQUEyRDtBQUMzRCwrQ0FBK0M7QUFHL0MsTUFBTSxxQkFBcUIsR0FBRyxnQkFBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUV0RCxNQUFNLGFBQWEsR0FBRztJQUNwQixnQkFBZ0IsRUFBRSxFQUFFO0lBQ3BCLHVCQUF1QixFQUFFLElBQUk7SUFDN0IsaUJBQWlCLEVBQUUsZ0JBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLO0lBQ3pDLHdCQUF3QixFQUFFLGdCQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSztJQUNoRCxnQ0FBZ0MsRUFBRSxJQUFJO0lBQ3RDLGtCQUFrQixFQUFFLElBQUk7SUFDeEIsWUFBWSxFQUFFLE1BQU07SUFFcEIseUNBQXlDO0lBQ3pDLDJCQUEyQjtJQUMzQiwyRkFBMkY7Q0FDNUYsQ0FBQztBQW9CRixNQUFNLHdCQUF3QixHQUFHLENBQUMsRUFDaEMsYUFBYSxFQUNiLFNBQVMsRUFDVCxTQUFTLEVBQ1QsY0FBYyxFQUNkLGFBQWEsR0FBRyxnQkFBZ0IsRUFDaEMsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsU0FBUyxHQUNRLEVBQUUsRUFBRTtJQUNyQixNQUFNLElBQUksR0FBRyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUUsQ0FBQztJQUN2QyxNQUFNLEdBQUcsR0FBRyxJQUFJO1FBQ2QsQ0FBQyxDQUFDLElBQUEsMkNBQXdCLEVBQUM7WUFDdkIsUUFBUSxFQUFFLElBQUk7WUFDZCxpQkFBaUIsRUFBRSxhQUFhO1lBQ2hDLGNBQWM7U0FDZixDQUFDO1FBQ0osQ0FBQyxDQUFDLElBQUEsd0NBQXFCLEVBQUM7WUFDcEIsaUJBQWlCLEVBQUUsYUFBYTtZQUNoQyxjQUFjO1NBQ2YsQ0FBQyxDQUFDO0lBRVAsTUFBTSxXQUFXLEdBQUcsR0FBRyxHQUFHLFVBQVUsQ0FBQztJQUNyQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEdBQUcsWUFBWSxDQUFDO0lBRXpDLE1BQU0sTUFBTSxHQUNWLGNBQWMsSUFBSSxxQ0FBa0IsQ0FBQyxNQUFNO1FBQ3pDLENBQUMsQ0FBQztZQUNFLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSTtZQUNyQixHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU07WUFDdkIsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNO1NBQ3hCO1FBQ0gsQ0FBQyxDQUFDLGNBQWMsSUFBSSxxQ0FBa0IsQ0FBQyxJQUFJO1lBQ3pDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFbEMsTUFBTSxJQUFJLEdBQUcsU0FBUztRQUNwQixDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsc0JBQXNCLENBQzVCLEdBQUcsRUFDSDtZQUNFLHFCQUFxQixFQUFFLEdBQUc7WUFDMUIsU0FBUztZQUNULGFBQWE7WUFDYixpQkFBaUI7WUFFakIsTUFBTTtTQUNQLEVBQ0QsRUFBRSxTQUFTLEVBQUUsQ0FDZDtRQUNILENBQUMsQ0FBQyxTQUFTO1lBQ1QsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLHNCQUFzQixDQUM1QixHQUFHLEVBQ0g7Z0JBQ0UscUJBQXFCLEVBQUUsR0FBRztnQkFDMUIsU0FBUztnQkFDVCxhQUFhO2dCQUNiLGlCQUFpQjtnQkFFakIsTUFBTTthQUNQLEVBQ0QsRUFBRSxTQUFTLEVBQUUsQ0FDZDtZQUNILENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQywwQkFBMEIsQ0FDaEMsR0FBRyxFQUNIO2dCQUNFLHFCQUFxQixFQUFFLEdBQUc7Z0JBQzFCLGFBQWE7Z0JBQ2IsaUJBQWlCO2dCQUVqQixNQUFNO2FBQ1AsRUFDRCxFQUFFLFNBQVMsRUFBRSxDQUNkLENBQUM7SUFFUixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDekIsSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPO1FBRWhCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxTQUFTO1lBQzNCLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO2dCQUNoQixxQkFBcUIsRUFBRSxHQUFHO2dCQUMxQixhQUFhO2dCQUNiLGlCQUFpQjtnQkFDakIsU0FBUzthQUNWLENBQUM7WUFDSixDQUFDLENBQUMsU0FBUztnQkFDVCxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztvQkFDaEIscUJBQXFCLEVBQUUsR0FBRztvQkFDMUIsYUFBYTtvQkFDYixpQkFBaUI7b0JBQ2pCLFNBQVM7aUJBQ1YsQ0FBQztnQkFDSixDQUFDLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDO29CQUNwQixxQkFBcUIsRUFBRSxHQUFHO29CQUMxQixhQUFhO29CQUNiLGlCQUFpQjtpQkFDbEIsQ0FBQyxDQUFDLENBQUM7UUFFVixJQUFJLFdBQVcsR0FBRyxnQkFBZ0I7WUFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsZUFBZSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDakUsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztRQUVqQyxJQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVE7WUFDbkMsV0FBVyxJQUFJLGtCQUFrQixhQUFhLEdBQUcsQ0FBQztRQUVwRCxJQUFBLDhCQUFlLEVBQUM7WUFDZCxJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsV0FBVztZQUNsQixTQUFTO1lBQ1QsV0FBVyxFQUFFLGNBQWMsYUFBYSxJQUFJLElBQUksRUFBRTtZQUNsRCxTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsR0FBRyxnQkFBZ0I7WUFDL0IsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsZUFBZSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDbkUsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztRQUVuQyxJQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVE7WUFDbkMsVUFBVSxJQUFJLGtCQUFrQixhQUFhLEdBQUcsQ0FBQztRQUVuRCxJQUFBLDhCQUFlLEVBQUM7WUFDZCxJQUFJLEVBQUUsYUFBYTtZQUNuQixLQUFLLEVBQUUsVUFBVTtZQUNqQixTQUFTO1lBQ1QsV0FBVyxFQUFFLGNBQWMsYUFBYSxJQUFJLElBQUksRUFBRTtZQUNsRCxTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLENBQUM7QUFDeEMsQ0FBQyxDQUFDO0FBaUJGLG9CQUFvQjtBQUNwQixNQUFNLFlBQVksR0FBRyxDQUFDLEVBQ3BCLEtBQUssRUFDTCxpQkFBaUIsRUFDakIsYUFBYSxFQUNiLFNBQVMsRUFDVCxTQUFTLEVBQ1QsT0FBTyxFQUNQLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsT0FBTyxHQUFHO0lBQ1IsbUNBQW1DLEVBQUUscUJBQXFCO0lBQzFELDBCQUEwQixFQUFFLElBQUk7SUFDaEMsa0JBQWtCLEVBQUUsSUFBSTtDQUN6QixFQUNELEdBQUcsTUFBTSxFQUNFLEVBQUUsRUFBRTtJQUNmLE1BQU0sU0FBUyxHQUFHLElBQUEsK0JBQVksRUFBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFbkQsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUN6QixTQUFTLEVBQ1Q7UUFDRSxTQUFTO1FBQ1QsYUFBYSxFQUFFLGlCQUFpQjtRQUNoQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1FBRTFDLEdBQUcsYUFBYTtRQUNoQixHQUFHLE9BQU87S0FDWCxFQUNELEVBQUUsU0FBUyxFQUFFLENBQ2QsQ0FBQztJQUVGLElBQUkscUJBQXFCLEdBRVQsU0FBUyxDQUFDO0lBQzFCLElBQUksdUJBQXVCLEdBRVgsU0FBUyxDQUFDO0lBQzFCLElBQUksU0FBUyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDbkMsVUFBVTtRQUNWLHFCQUFxQixHQUFHLHdCQUF3QixDQUFDO1lBQy9DLFNBQVM7WUFDVCxhQUFhLEVBQUUsaUJBQWlCO1lBQ2hDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUI7WUFDMUMsU0FBUztZQUNULGNBQWMsRUFBRSxxQ0FBa0IsQ0FBQyxJQUFJO1lBQ3ZDLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLEdBQUcsTUFBTTtTQUNWLENBQUMsQ0FBQztRQUVILFlBQVk7UUFDWix1QkFBdUIsR0FBRyx3QkFBd0IsQ0FBQztZQUNqRCxTQUFTO1lBQ1QsYUFBYSxFQUFFLGlCQUFpQjtZQUNoQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQzFDLFNBQVM7WUFDVCxjQUFjLEVBQUUscUNBQWtCLENBQUMsTUFBTTtZQUN6QyxTQUFTLEVBQUUsS0FBSztZQUNoQixHQUFHLE1BQU07U0FDVixDQUFDLENBQUM7UUFFSCxZQUFZO1FBQ1osNkJBQTZCO1FBQzdCLGVBQWU7UUFDZixzQ0FBc0M7UUFDdEMsZ0RBQWdEO1FBQ2hELGVBQWU7UUFDZiwrQ0FBK0M7UUFDL0Msc0JBQXNCO1FBQ3RCLGVBQWU7UUFDZixNQUFNO0lBQ1IsQ0FBQztJQUVELElBQUksSUFBSSxHQUNOLFNBQVMsQ0FBQztJQUVaLHNCQUFzQjtJQUN0QixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2xCLElBQUksR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDN0IsbUJBQW1CLENBQUM7WUFDbEIsU0FBUyxFQUFFLENBQUMsQ0FBQyxhQUFhO2dCQUN4QixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLE9BQU8sVUFBVTtnQkFDdEUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxPQUFPLEVBQUU7WUFDaEUsaUJBQWlCO1lBQ2pCLGFBQWEsRUFBRSxLQUFLLENBQUMsSUFBSTtZQUN6QixhQUFhLEVBQUUsQ0FBQyxDQUFDLGFBQWE7WUFDOUIsS0FBSztZQUNMLFNBQVMsRUFBRSxLQUFLO1NBQ2pCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLEVBQUUsU0FBUztRQUNmLEtBQUs7UUFDTCxJQUFJO1FBQ0osVUFBVSxFQUFFLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUU7S0FDL0QsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVVGLDJCQUEyQjtBQUMzQixNQUFNLG1CQUFtQixHQUFHLENBQUMsRUFDM0IsS0FBSyxFQUNMLFNBQVMsRUFDVCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixTQUFTLEdBQ0EsRUFBRSxFQUFFO0lBQ2IsTUFBTSxJQUFJLEdBQUcsSUFBQSxzQ0FBbUIsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUU1QyxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQ25DLElBQUksRUFDSjtRQUNFLGdCQUFnQixFQUFFLElBQUk7UUFDdEIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtRQUMxQyxTQUFTLEVBQUUsYUFBYTtRQUN4QixhQUFhLEVBQUUsaUJBQWlCO1FBQ2hDLGVBQWUsRUFBRSxhQUFhO1FBRTlCLEdBQUcsYUFBYTtLQUNqQixFQUNELEVBQUUsU0FBUyxFQUFFLENBQ2QsQ0FBQztJQUVGLE9BQU87UUFDTCxJQUFJO1FBQ0osUUFBUTtLQUNULENBQUM7QUFDSixDQUFDLENBQUM7QUF5QkYsb0JBQW9CO0FBQ3BCLE1BQU0sWUFBWSxHQUFHLENBQUMsRUFDcEIsS0FBSyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsU0FBUyxFQUNULE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsT0FBTyxHQUFHO0lBQ1IsMEJBQTBCLEVBQUUsS0FBSztJQUNqQyxrQkFBa0IsRUFBRSxJQUFJO0NBQ3pCLEVBQ0QsU0FBUyxFQUNULEdBQUcsTUFBTSxFQUNFLEVBQUUsRUFBRTtJQUNmLE1BQU0sSUFBSSxHQUFHLElBQUEsK0JBQVksRUFBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUN6QixJQUFJLEVBQ0o7UUFDRSxTQUFTLEVBQUUsSUFBSTtRQUNmLGFBQWEsRUFBRSxpQkFBaUI7UUFDaEMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtRQUUxQyxHQUFHLGFBQWE7UUFDaEIsR0FBRyxPQUFPO0tBQ1gsRUFDRCxFQUFFLFNBQVMsRUFBRSxDQUNkLENBQUM7SUFFRixJQUFJLHFCQUFxQixHQUVULFNBQVMsQ0FBQztJQUMxQixJQUFJLHVCQUF1QixHQUVYLFNBQVMsQ0FBQztJQUUxQixJQUFJLFNBQVMsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ25DLFVBQVU7UUFDVixxQkFBcUIsR0FBRyx3QkFBd0IsQ0FBQztZQUMvQyxTQUFTLEVBQUUsSUFBSTtZQUNmLGFBQWEsRUFBRSxpQkFBaUI7WUFDaEMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtZQUMxQyxTQUFTO1lBQ1QsY0FBYyxFQUFFLHFDQUFrQixDQUFDLElBQUk7WUFDdkMsU0FBUyxFQUFFLEtBQUs7WUFDaEIsR0FBRyxNQUFNO1NBQ1YsQ0FBQyxDQUFDO1FBRUgsWUFBWTtRQUNaLHVCQUF1QixHQUFHLHdCQUF3QixDQUFDO1lBQ2pELFNBQVMsRUFBRSxJQUFJO1lBQ2YsYUFBYSxFQUFFLGlCQUFpQjtZQUNoQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQzFDLFNBQVM7WUFDVCxjQUFjLEVBQUUscUNBQWtCLENBQUMsTUFBTTtZQUN6QyxTQUFTLEVBQUUsS0FBSztZQUNoQixHQUFHLE1BQU07U0FDVixDQUFDLENBQUM7UUFFSCxZQUFZO1FBQ1osNkJBQTZCO1FBQzdCLHFCQUFxQjtRQUNyQixzQ0FBc0M7UUFDdEMsZ0RBQWdEO1FBQ2hELGVBQWU7UUFDZiwrQ0FBK0M7UUFDL0Msc0JBQXNCO1FBQ3RCLGVBQWU7UUFDZixNQUFNO0lBQ1IsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJO1FBQ0osS0FBSztRQUNMLFVBQVUsRUFBRSxFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixFQUFFO0tBQy9ELENBQUM7QUFDSixDQUFDLENBQUM7QUE2QkYsd0JBQXdCO0FBQ3hCLGtCQUFlLENBQUMsRUFDZCxJQUFJLEVBQ0osS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxFQUNSLE9BQU8sR0FBRyxFQUFFLEVBQ1osU0FBUyxFQUNULDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFDdkIsVUFBVSxFQUNWLEdBQUcsTUFBTSxFQUNILEVBQUUsRUFBRTtJQUNWLElBQUksR0FBRyxJQUFBLDBCQUFpQixFQUFDLElBQUksQ0FBQyxDQUFDO0lBRS9CLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBQSx5QkFBTyxFQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUU7UUFDdEQsYUFBYSxFQUFFLElBQUk7UUFDbkIsR0FBRyxLQUFLO1FBQ1IsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1FBRTdCLEdBQUcsTUFBTTtRQUVULFVBQVUsRUFBRSxVQUFVO1lBQ3BCLENBQUMsQ0FBQztnQkFDRSxHQUFHLFVBQVU7Z0JBQ2IsY0FBYyxFQUFFLENBQUMsaUJBQWlCLENBQUM7YUFDcEM7WUFDSCxDQUFDLENBQUMsU0FBUztLQUM2QixDQUFDLENBQUM7SUFFOUMsTUFBTSxTQUFTLEdBQUcsUUFBeUIsQ0FBQztJQUU1QyxJQUFJLFFBQVEsSUFBSSxHQUFHLEtBQUssR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QyxJQUFJLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUU7WUFDbkMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1lBQzdCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUI7WUFDMUMsR0FBRyxRQUFRO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUkscUJBQXFCLEdBRVQsU0FBUyxDQUFDO0lBQzFCLElBQUksdUJBQXVCLEdBRVgsU0FBUyxDQUFDO0lBQzFCLGFBQWE7SUFDYixJQUFJLFNBQVMsSUFBSSwwQkFBMEIsRUFBRSxDQUFDO1FBQzVDLFVBQVU7UUFDViw2QkFBNkI7UUFDN0IseUJBQXlCO1FBQ3pCLGdEQUFnRDtRQUNoRCxlQUFlO1FBQ2YsNkNBQTZDO1FBQzdDLHlCQUF5QjtRQUN6QixlQUFlO1FBQ2YsTUFBTTtRQUVOLFlBQVk7UUFDWixxQkFBcUIsR0FBRyx3QkFBd0IsQ0FBQztZQUMvQyxhQUFhLEVBQUUsSUFBSTtZQUNuQixpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQzFDLFNBQVM7WUFDVCxjQUFjLEVBQUUscUNBQWtCLENBQUMsTUFBTTtZQUN6QyxTQUFTLEVBQUUsUUFBUTtZQUNuQixHQUFHLE1BQU07U0FDVixDQUFDLENBQUM7UUFFSCxZQUFZO1FBQ1osdUJBQXVCLEdBQUcsd0JBQXdCLENBQUM7WUFDakQsYUFBYSxFQUFFLElBQUk7WUFDbkIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtZQUMxQyxTQUFTO1lBQ1QsY0FBYyxFQUFFLHFDQUFrQixDQUFDLE1BQU07WUFDekMsU0FBUyxFQUFFLFFBQVE7WUFDbkIsR0FBRyxNQUFNO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDBCQUEwQjtJQUMxQixJQUFJLEdBQUcsR0FBd0MsU0FBUyxDQUFDO0lBQ3pELElBQUksTUFBTSxFQUFFLENBQUM7UUFDWCxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3JCLFlBQVksQ0FBQztZQUNYLEtBQUs7WUFDTCxpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLFNBQVM7WUFFVCxTQUFTLEVBQUUsUUFBUTtZQUNuQixpQkFBaUIsRUFBRSxzQkFBc0I7WUFDekMsR0FBRyxNQUFNO1lBQ1QsR0FBRyxDQUFDO1NBQ0wsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxHQUFHLEdBQXdDLFNBQVMsQ0FBQztJQUN6RCxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNyQixZQUFZLENBQUM7WUFDWCxLQUFLO1lBQ0wsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixTQUFTO1lBRVQsU0FBUyxFQUFFLFFBQVE7WUFDbkIsaUJBQWlCLEVBQUUsc0JBQXNCO1lBQ3pDLEdBQUcsTUFBTTtZQUNULEdBQUcsQ0FBQztTQUNMLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksT0FBTyxJQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNDLElBQ0UsQ0FBQyxPQUFPLENBQUMsaUJBQWlCO1lBQzFCLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQzFDLENBQUM7WUFDRCxJQUFJLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3BDLGFBQWEsRUFBRSxTQUFTLENBQUMsSUFBSTtnQkFDN0IsR0FBRyxLQUFLO2dCQUNSLGFBQWEsRUFBRSxNQUFNO2dCQUVyQixPQUFPLEVBQUUsT0FBTyxDQUFDLFlBQVk7b0JBQzNCLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQzt3QkFDL0IsTUFBTSxFQUFFLENBQUM7d0JBQ1QsTUFBTSxFQUFFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLO3FCQUN0QyxDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLFNBQVM7Z0JBRWIsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLFFBQVE7b0JBQ25DLENBQUMsQ0FBQzt3QkFDRTs0QkFDRSxnQ0FBZ0MsRUFBRSxLQUFLOzRCQUN2QyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRTt5QkFDakM7cUJBQ0Y7b0JBQ0gsQ0FBQyxDQUFDLFNBQVM7YUFDZCxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sSUFBSSxPQUFPLENBQUMsaUJBQWlCLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pELElBQUEseUJBQWUsRUFBQztnQkFDZCxJQUFJLEVBQUUsSUFBQSwrQkFBc0IsRUFBQyxJQUFJLENBQUM7Z0JBQ2xDLEtBQUs7Z0JBQ0wsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztnQkFDN0IsNkNBQTZDO2dCQUM3QyxVQUFVLEVBQUUsU0FBUyxDQUFDLEVBQUU7Z0JBQ3hCLG1CQUFtQixFQUFFLENBQUMsV0FBVyxDQUFDO2dCQUNsQyxrQkFBa0IsRUFBRSxvQ0FBb0M7YUFDekQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSTtRQUNKLFFBQVEsRUFBRSxTQUFTO1FBQ25CLE1BQU0sRUFBRSxHQUFHO1FBQ1gsTUFBTSxFQUFFLEdBQUc7UUFDWCxVQUFVLEVBQUUsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRTtRQUM5RCxtQkFBbUIsRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQ3BDLFNBQVM7WUFDUCxDQUFDLENBQUMsSUFBQSxrQkFBUyxFQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDckQsQ0FBQyxDQUFDLFNBQVM7UUFDZixVQUFVO0tBQ1gsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
@@ -1,10 +1,10 @@
1
- import * as native from '@pulumi/azure-native';
2
- import * as pulumi from '@pulumi/pulumi';
3
- import { BasicResourceArgs, KeyVaultInfo, PrivateLinkProps } from '../types';
1
+ import * as native from "@pulumi/azure-native";
2
+ import * as pulumi from "@pulumi/pulumi";
3
+ import { BasicResourceArgs, KeyVaultInfo, PrivateLinkProps } from "../types";
4
4
  interface ResourceSkuArgs {
5
5
  capacity?: 1 | 2 | 5 | 10 | 20 | 50 | 100;
6
- name: 'Standard_S1' | 'Free_F1';
7
- tier?: 'Standard' | 'Free';
6
+ name: "Standard_S1" | "Free_F1";
7
+ tier?: "Standard" | "Free";
8
8
  }
9
9
  interface Props extends BasicResourceArgs {
10
10
  vaultInfo?: KeyVaultInfo;
@@ -13,8 +13,5 @@ interface Props extends BasicResourceArgs {
13
13
  kind?: native.signalrservice.ServiceKind;
14
14
  sku?: pulumi.Input<ResourceSkuArgs>;
15
15
  }
16
- declare const _default: ({ name, group, vaultInfo, privateLink, kind, sku, allowedOrigins, }: Props) => {
17
- signalR: import("@pulumi/azure-native/signalrservice/signalR").SignalR;
18
- privateEndpoint: import("@pulumi/azure-native/network/privateEndpoint").PrivateEndpoint | undefined;
19
- };
16
+ declare const _default: ({ name, group, vaultInfo, privateLink, kind, sku, allowedOrigins, }: Props) => import("@pulumi/azure-native/signalrservice/signalR").SignalR;
20
17
  export default _default;
package/SignalR/index.js CHANGED
@@ -6,7 +6,7 @@ const Naming_1 = require("../Common/Naming");
6
6
  const PrivateEndpoint_1 = require("../VNet/PrivateEndpoint");
7
7
  const CustomHelper_1 = require("../KeyVault/CustomHelper");
8
8
  exports.default = ({ name, group, vaultInfo, privateLink, kind = native.signalrservice.ServiceKind.SignalR, sku = {
9
- name: 'Standard_S1',
9
+ name: "Standard_S1",
10
10
  tier: native.signalrservice.SignalRSkuTier.Standard,
11
11
  capacity: 1,
12
12
  }, allowedOrigins, }) => {
@@ -18,7 +18,7 @@ exports.default = ({ name, group, vaultInfo, privateLink, kind = native.signalrs
18
18
  kind,
19
19
  cors: { allowedOrigins },
20
20
  features: [
21
- { flag: 'ServiceMode', value: 'Default' },
21
+ { flag: "ServiceMode", value: "Default" },
22
22
  //{ flag: 'EnableConnectivityLogs', value: 'Default' },
23
23
  ],
24
24
  networkACLs: privateLink
@@ -56,15 +56,14 @@ exports.default = ({ name, group, vaultInfo, privateLink, kind = native.signalrs
56
56
  : undefined,
57
57
  sku,
58
58
  });
59
- let privateEndpoint = undefined;
60
59
  if (privateLink) {
61
60
  //The Private Zone will create in Dev and reuse for sandbox and prd.
62
- privateEndpoint = (0, PrivateEndpoint_1.default)({
61
+ (0, PrivateEndpoint_1.default)({
63
62
  name: privateEndpointName,
64
63
  group,
65
- privateDnsZoneName: 'privatelink.service.signalr.net',
64
+ privateDnsZoneName: "privatelink.service.signalr.net",
66
65
  ...privateLink,
67
- linkServiceGroupIds: ['signalr'],
66
+ linkServiceGroupIds: ["signalr"],
68
67
  resourceId: signalR.id,
69
68
  });
70
69
  }
@@ -80,34 +79,34 @@ exports.default = ({ name, group, vaultInfo, privateLink, kind = native.signalrs
80
79
  name: `${name}-host`,
81
80
  value: h,
82
81
  vaultInfo,
83
- contentType: 'SignalR',
82
+ contentType: "SignalR",
84
83
  });
85
84
  (0, CustomHelper_1.addCustomSecret)({
86
85
  name: `${name}-primaryKey`,
87
- value: keys.primaryKey || '',
86
+ value: keys.primaryKey || "",
88
87
  vaultInfo,
89
- contentType: 'SignalR',
88
+ contentType: "SignalR",
90
89
  });
91
90
  (0, CustomHelper_1.addCustomSecret)({
92
91
  name: `${name}-primaryConnection`,
93
- value: keys.primaryConnectionString || '',
92
+ value: keys.primaryConnectionString || "",
94
93
  vaultInfo,
95
- contentType: 'SignalR',
94
+ contentType: "SignalR",
96
95
  });
97
96
  (0, CustomHelper_1.addCustomSecret)({
98
97
  name: `${name}-secondaryKey`,
99
- value: keys.secondaryKey || '',
98
+ value: keys.secondaryKey || "",
100
99
  vaultInfo,
101
- contentType: 'SignalR',
100
+ contentType: "SignalR",
102
101
  });
103
102
  (0, CustomHelper_1.addCustomSecret)({
104
103
  name: `${name}-secondaryConnection`,
105
- value: keys.secondaryConnectionString || '',
104
+ value: keys.secondaryConnectionString || "",
106
105
  vaultInfo,
107
- contentType: 'SignalR',
106
+ contentType: "SignalR",
108
107
  });
109
108
  });
110
109
  }
111
- return { signalR, privateEndpoint };
110
+ return signalR;
112
111
  };
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2lnbmFsUi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtDQUErQztBQUUvQyxpREFBNEM7QUFDNUMsNkNBQTBFO0FBRTFFLDZEQUFzRDtBQUN0RCwyREFBMkQ7QUFnQjNELGtCQUFlLENBQUMsRUFDZCxJQUFJLEVBQ0osS0FBSyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsSUFBSSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFDaEQsR0FBRyxHQUFHO0lBQ0osSUFBSSxFQUFFLGFBQWE7SUFDbkIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLFFBQVE7SUFDbkQsUUFBUSxFQUFFLENBQUM7Q0FDWixFQUNELGNBQWMsR0FDUixFQUFFLEVBQUU7SUFDVixNQUFNLG1CQUFtQixHQUFHLElBQUEsK0JBQXNCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDekQsSUFBSSxHQUFHLElBQUEsdUJBQWMsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUU1QixNQUFNLE9BQU8sR0FBRyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtRQUN0RCxZQUFZLEVBQUUsSUFBSTtRQUNsQixHQUFHLEtBQUs7UUFDUixJQUFJO1FBRUosSUFBSSxFQUFFLEVBQUUsY0FBYyxFQUFFO1FBQ3hCLFFBQVEsRUFBRTtZQUNSLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3pDLHVEQUF1RDtTQUN4RDtRQUNELFdBQVcsRUFBRSxXQUFXO1lBQ3RCLENBQUMsQ0FBQztnQkFDRSxhQUFhLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSztnQkFDcEQsYUFBYSxFQUFFLGdCQUFLO29CQUNsQixDQUFDLENBQUM7d0JBQ0UsS0FBSyxFQUFFOzRCQUNM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
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2lnbmFsUi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtDQUErQztBQUUvQyxpREFBMkM7QUFDM0MsNkNBQTBFO0FBRTFFLDZEQUFzRDtBQUN0RCwyREFBMkQ7QUFnQjNELGtCQUFlLENBQUMsRUFDZCxJQUFJLEVBQ0osS0FBSyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsSUFBSSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFDaEQsR0FBRyxHQUFHO0lBQ0osSUFBSSxFQUFFLGFBQWE7SUFDbkIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLFFBQVE7SUFDbkQsUUFBUSxFQUFFLENBQUM7Q0FDWixFQUNELGNBQWMsR0FDUixFQUFFLEVBQUU7SUFDVixNQUFNLG1CQUFtQixHQUFHLElBQUEsK0JBQXNCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDekQsSUFBSSxHQUFHLElBQUEsdUJBQWMsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUU1QixNQUFNLE9BQU8sR0FBRyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtRQUN0RCxZQUFZLEVBQUUsSUFBSTtRQUNsQixHQUFHLEtBQUs7UUFDUixJQUFJO1FBRUosSUFBSSxFQUFFLEVBQUUsY0FBYyxFQUFFO1FBQ3hCLFFBQVEsRUFBRTtZQUNSLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3pDLHVEQUF1RDtTQUN4RDtRQUNELFdBQVcsRUFBRSxXQUFXO1lBQ3RCLENBQUMsQ0FBQztnQkFDRSxhQUFhLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSztnQkFDcEQsYUFBYSxFQUFFLGdCQUFLO29CQUNsQixDQUFDLENBQUM7d0JBQ0UsS0FBSyxFQUFFOzRCQUNM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
package/Sql/SqlDb.d.ts CHANGED
@@ -1,14 +1,13 @@
1
- import * as sql from '@pulumi/azure-native/sql';
2
- import { BasicResourceArgs, BasicResourceResultProps } from '../types';
3
- import { Input, Output, Resource } from '@pulumi/pulumi';
4
- export type SqlDbSku = 'Basic' | 'S0' | 'S1' | 'S2' | 'S3' | 'P1' | 'P2' | 'P4' | 'P6' | 'P11';
1
+ import * as sql from "@pulumi/azure-native/sql";
2
+ import { BasicResourceArgs, BasicResourceResultProps } from "../types";
3
+ import { Input, Output, Resource } from "@pulumi/pulumi";
4
+ export type SqlDbSku = "Basic" | "S0" | "S1" | "S2" | "S3" | "P1" | "P2" | "P4" | "P6" | "P11";
5
5
  export interface SqlDbProps extends BasicResourceArgs {
6
6
  sqlServerName: Input<string>;
7
7
  elasticPoolId?: Output<string>;
8
8
  /**Provide this if elasticPoolId is not provided. Default is S0*/
9
9
  sku?: SqlDbSku;
10
- lock?: boolean;
11
10
  dependsOn?: Input<Input<Resource>[]> | Input<Resource>;
12
11
  }
13
- declare const _default: ({ group, name, sqlServerName, elasticPoolId, sku, lock, dependsOn, }: SqlDbProps) => BasicResourceResultProps<sql.Database>;
12
+ declare const _default: ({ group, name, sqlServerName, elasticPoolId, sku, dependsOn, }: SqlDbProps) => BasicResourceResultProps<sql.Database>;
14
13
  export default _default;
package/Sql/SqlDb.js CHANGED
@@ -3,13 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const sql = require("@pulumi/azure-native/sql");
4
4
  const AzureEnv_1 = require("../Common/AzureEnv");
5
5
  const Naming_1 = require("../Common/Naming");
6
- const Locker_1 = require("../Core/Locker");
7
6
  //https://blog.bredvid.no/handling-azure-managed-identity-access-to-azure-sql-in-an-azure-devops-pipeline-1e74e1beb10b
8
- exports.default = ({ group, name, sqlServerName, elasticPoolId, sku = 'S0', lock, dependsOn, }) => {
7
+ exports.default = ({ group, name, sqlServerName, elasticPoolId, sku = "S0", dependsOn, }) => {
9
8
  name = (0, Naming_1.getSqlDbName)(name);
10
9
  const sqlDb = new sql.Database(name, {
11
10
  databaseName: name,
12
- createMode: 'Default',
11
+ createMode: "Default",
13
12
  ...group,
14
13
  serverName: sqlServerName,
15
14
  elasticPoolId,
@@ -21,21 +20,8 @@ exports.default = ({ group, name, sqlServerName, elasticPoolId, sku = 'S0', lock
21
20
  // capacity: 5,
22
21
  },
23
22
  //zoneRedundant: isPrd,
24
- requestedBackupStorageRedundancy: AzureEnv_1.isPrd ? 'Zone' : 'Local',
23
+ requestedBackupStorageRedundancy: AzureEnv_1.isPrd ? "Zone" : "Local",
25
24
  }, { dependsOn });
26
- if (lock) {
27
- (0, Locker_1.default)({ name, resource: sqlDb });
28
- }
29
- //By Default is 7 Day
30
- // if (isPrd) {
31
- // new sql.BackupShortTermRetentionPolicy(name, {
32
- // policyName: 'default',
33
- // serverName: sqlServerName,
34
- // ...group,
35
- // databaseName: sqlDb.name,
36
- // retentionDays: 7,
37
- // });
38
- // }
39
25
  return { name, resource: sqlDb };
40
26
  };
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsRGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU3FsL1NxbERiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0RBQWdEO0FBS2hELGlEQUEyQztBQUMzQyw2Q0FBZ0Q7QUFDaEQsMkNBQW9DO0FBdUJwQyxzSEFBc0g7QUFDdEgsa0JBQWUsQ0FBQyxFQUNkLEtBQUssRUFDTCxJQUFJLEVBQ0osYUFBYSxFQUNiLGFBQWEsRUFDYixHQUFHLEdBQUcsSUFBSSxFQUNWLElBQUksRUFDSixTQUFTLEdBQ0UsRUFBMEMsRUFBRTtJQUN2RCxJQUFJLEdBQUcsSUFBQSxxQkFBWSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBRTFCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FDNUIsSUFBSSxFQUNKO1FBQ0UsWUFBWSxFQUFFLElBQUk7UUFDbEIsVUFBVSxFQUFFLFNBQVM7UUFDckIsR0FBRyxLQUFLO1FBQ1IsVUFBVSxFQUFFLGFBQWE7UUFDekIsYUFBYTtRQUViLEdBQUcsRUFBRSxhQUFhO1lBQ2hCLENBQUMsQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDO2dCQUNFLElBQUksRUFBRSxHQUFHO2dCQUNULGlCQUFpQjtnQkFDakIsZUFBZTthQUNoQjtRQUNMLHVCQUF1QjtRQUN2QixnQ0FBZ0MsRUFBRSxnQkFBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87S0FDM0QsRUFDRCxFQUFFLFNBQVMsRUFBRSxDQUNkLENBQUM7SUFFRixJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsSUFBQSxnQkFBTSxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxxQkFBcUI7SUFDckIsZUFBZTtJQUNmLG1EQUFtRDtJQUNuRCw2QkFBNkI7SUFDN0IsaUNBQWlDO0lBQ2pDLGdCQUFnQjtJQUNoQixnQ0FBZ0M7SUFDaEMsd0JBQXdCO0lBQ3hCLFFBQVE7SUFDUixJQUFJO0lBRUosT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDbkMsQ0FBQyxDQUFDIn0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsRGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU3FsL1NxbERiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0RBQWdEO0FBS2hELGlEQUEyQztBQUMzQyw2Q0FBZ0Q7QUF1QmhELHNIQUFzSDtBQUN0SCxrQkFBZSxDQUFDLEVBQ2QsS0FBSyxFQUNMLElBQUksRUFDSixhQUFhLEVBQ2IsYUFBYSxFQUNiLEdBQUcsR0FBRyxJQUFJLEVBQ1YsU0FBUyxHQUNFLEVBQTBDLEVBQUU7SUFDdkQsSUFBSSxHQUFHLElBQUEscUJBQVksRUFBQyxJQUFJLENBQUMsQ0FBQztJQUUxQixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQzVCLElBQUksRUFDSjtRQUNFLFlBQVksRUFBRSxJQUFJO1FBQ2xCLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLEdBQUcsS0FBSztRQUNSLFVBQVUsRUFBRSxhQUFhO1FBQ3pCLGFBQWE7UUFFYixHQUFHLEVBQUUsYUFBYTtZQUNoQixDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQztnQkFDRSxJQUFJLEVBQUUsR0FBRztnQkFDVCxpQkFBaUI7Z0JBQ2pCLGVBQWU7YUFDaEI7UUFDTCx1QkFBdUI7UUFDdkIsZ0NBQWdDLEVBQUUsZ0JBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPO0tBQzNELEVBQ0QsRUFBRSxTQUFTLEVBQUUsQ0FDZCxDQUFDO0lBRUYsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDbkMsQ0FBQyxDQUFDIn0=
package/Sql/index.d.ts CHANGED
@@ -1,52 +1,51 @@
1
- import { Input, Output } from "@pulumi/pulumi";
1
+ import * as sql from "@pulumi/azure-native/sql";
2
+ import { Input } from "@pulumi/pulumi";
2
3
  import { EnvRolesResults } from "../AzAd/EnvRoles";
3
- import { BasicResourceArgs, BasicResourceResultProps, KeyVaultInfo, PrivateLinkProps } from "../types";
4
- import { SqlDbProps } from "./SqlDb";
4
+ import { BasicResourceArgs, BasicResourceResultProps, KeyVaultInfo } from "../types";
5
+ import { SqlDbSku } from "./SqlDb";
5
6
  type ElasticPoolCapacityProps = 50 | 100 | 200 | 300 | 400 | 800 | 1200;
7
+ export type SqlAuthType = {
8
+ envRoles: EnvRolesResults;
9
+ /** create an Admin group on AzAD for SQL accessing.*/
10
+ enableAdAdministrator?: boolean;
11
+ azureAdOnlyAuthentication?: boolean;
12
+ adminLogin: Input<string>;
13
+ password: Input<string>;
14
+ };
15
+ export type SqlNetworkType = {
16
+ acceptAllPublicConnect?: boolean;
17
+ subnetId?: Input<string>;
18
+ ipAddresses?: Input<string>[];
19
+ /** To enable Private Link need to ensure the subnetId is provided. */
20
+ asPrivateLink?: boolean;
21
+ };
22
+ export type SqlElasticPoolType = {
23
+ name: "Standard" | "Basic";
24
+ capacity: ElasticPoolCapacityProps;
25
+ };
26
+ export type SqlResults = {
27
+ name: string;
28
+ resource: sql.Server;
29
+ elasticPool?: BasicResourceResultProps<sql.ElasticPool>;
30
+ databases?: Record<string, BasicResourceResultProps<sql.Database>>;
31
+ };
6
32
  interface Props extends BasicResourceArgs {
7
33
  vaultInfo: KeyVaultInfo;
8
34
  enableEncryption?: boolean;
9
35
  /** if Auth is not provided it will be auto generated */
10
- auth: {
11
- envRoles: EnvRolesResults;
12
- /** create an Admin group on AzAD for SQL accessing.*/
13
- enableAdAdministrator?: boolean;
14
- azureAdOnlyAuthentication?: boolean;
15
- adminLogin: Input<string>;
16
- password: Input<string>;
17
- };
18
- elasticPool?: {
19
- name: "Standard" | "Basic";
20
- capacity: ElasticPoolCapacityProps;
21
- };
22
- databases: Array<Omit<SqlDbProps, "sqlServerName" | "group" | "elasticPoolId" | "dependsOn">>;
23
- network?: {
24
- acceptAllInternetConnect?: boolean;
25
- subnetId?: Input<string>;
26
- ipAddresses?: Input<string>[];
27
- /** To enable Private Link need to ensure the subnetId is provided. */
28
- privateLink?: Omit<PrivateLinkProps, "subnetId">;
29
- };
36
+ auth: SqlAuthType;
37
+ elasticPool?: SqlElasticPoolType;
38
+ databases?: Record<string, {
39
+ name?: string;
40
+ sku?: SqlDbSku;
41
+ }>;
42
+ network?: SqlNetworkType;
30
43
  vulnerabilityAssessment?: {
31
44
  alertEmails: Array<string>;
32
45
  logStorageId?: Input<string>;
33
46
  storageAccessKey: Input<string>;
34
47
  storageEndpoint: Input<string>;
35
48
  };
36
- ignoreChanges?: string[];
37
- lock?: boolean;
38
49
  }
39
- declare const _default: ({ name, auth, group, enableEncryption, elasticPool, databases, vaultInfo, network, vulnerabilityAssessment, ignoreChanges, lock, }: Props) => {
40
- name: string;
41
- resource: import("@pulumi/azure-native/sql/server").Server;
42
- elasticPool: BasicResourceResultProps<import("@pulumi/azure-native/sql/elasticPool").ElasticPool> | undefined;
43
- databases: BasicResourceResultProps<import("@pulumi/azure-native/sql/database").Database>[];
44
- adminGroup: {
45
- objectId: string;
46
- displayName: string;
47
- } | Output<{
48
- objectId: string;
49
- displayName: string;
50
- }>;
51
- };
50
+ declare const _default: ({ name, auth, group, enableEncryption, elasticPool, databases, vaultInfo, network, vulnerabilityAssessment, ignoreChanges, }: Props) => SqlResults;
52
51
  export default _default;