@drunk-pulumi/azure-components 1.0.4 → 1.0.5

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 (70) hide show
  1. package/ResourceBuilder.d.ts +5 -5
  2. package/ResourceBuilder.js +9 -8
  3. package/aks/AzKubernetes.d.ts +35 -12
  4. package/aks/AzKubernetes.js +216 -124
  5. package/aks/ContainerRegistry.js +2 -1
  6. package/aks/helpers.d.ts +6 -0
  7. package/aks/helpers.js +26 -5
  8. package/aks/types.d.ts +245 -0
  9. package/aks/types.js +3 -0
  10. package/apim/Apim.d.ts +6 -3
  11. package/apim/Apim.js +18 -16
  12. package/app/AppContainer.d.ts +91 -0
  13. package/app/AppContainer.js +141 -0
  14. package/app/AppContainerEnv.d.ts +68 -0
  15. package/app/AppContainerEnv.js +142 -0
  16. package/app/index.d.ts +2 -0
  17. package/app/index.js +3 -1
  18. package/azAd/AppRegistration.d.ts +9 -12
  19. package/azAd/AppRegistration.js +15 -12
  20. package/azAd/CloudflareAzIdentity.d.ts +10 -0
  21. package/azAd/CloudflareAzIdentity.js +61 -0
  22. package/azAd/GroupRole.d.ts +1 -1
  23. package/azAd/GroupRole.js +4 -5
  24. package/azAd/UserAssignedIdentity.js +6 -6
  25. package/azAd/helpers/rsRoleDefinition.js +2 -7
  26. package/azAd/index.d.ts +1 -0
  27. package/azAd/index.js +2 -1
  28. package/base/BaseResourceComponent.d.ts +1 -1
  29. package/base/BaseResourceComponent.js +5 -5
  30. package/base/helpers.js +2 -2
  31. package/database/Redis.d.ts +1 -4
  32. package/database/Redis.js +12 -4
  33. package/database/helpers.js +3 -3
  34. package/helpers/autoTags.js +4 -1
  35. package/helpers/index.d.ts +1 -0
  36. package/helpers/index.js +3 -2
  37. package/helpers/stackEnv.d.ts +2 -1
  38. package/helpers/stackEnv.js +4 -3
  39. package/helpers/zoneHelper.d.ts +24 -0
  40. package/helpers/zoneHelper.js +40 -0
  41. package/logs/Logs.d.ts +6 -16
  42. package/logs/Logs.js +4 -5
  43. package/package.json +7 -6
  44. package/services/ServiceBus.js +2 -1
  45. package/storage/StorageAccount.d.ts +4 -7
  46. package/storage/StorageAccount.js +16 -13
  47. package/types.d.ts +14 -3
  48. package/vault/helpers.d.ts +7 -4
  49. package/vault/helpers.js +11 -4
  50. package/vm/DiskEncryptionSet.js +3 -1
  51. package/vm/VirtualMachine.d.ts +5 -0
  52. package/vm/VirtualMachine.js +156 -41
  53. package/vnet/Basion.js +3 -1
  54. package/vnet/Firewall.d.ts +8 -13
  55. package/vnet/Firewall.js +8 -6
  56. package/vnet/FirewallPolicies/FirewallPolicyBuilder.js +24 -6
  57. package/vnet/FirewallPolicies/commonPolicies.d.ts +29 -2
  58. package/vnet/FirewallPolicies/commonPolicies.js +466 -20
  59. package/vnet/FirewallPolicies/index.d.ts +2 -0
  60. package/vnet/FirewallPolicies/index.js +18 -1
  61. package/vnet/IpAddresses.d.ts +1 -1
  62. package/vnet/IpAddresses.js +3 -2
  63. package/vnet/PrivateDnsZone.d.ts +4 -4
  64. package/vnet/PrivateDnsZone.js +17 -17
  65. package/vnet/PrivateEndpoint.d.ts +2 -5
  66. package/vnet/PrivateEndpoint.js +6 -1
  67. package/vnet/VirtualNetwork.d.ts +11 -5
  68. package/vnet/VirtualNetwork.js +31 -9
  69. package/vnet/helpers.d.ts +2 -0
  70. package/vnet/helpers.js +40 -2
@@ -34,11 +34,11 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.StorageAccount = void 0;
37
- const storage = __importStar(require("@pulumi/azure-native/storage"));
38
37
  const pulumi = __importStar(require("@pulumi/pulumi"));
39
- const base_1 = require("../base");
38
+ const storage = __importStar(require("@pulumi/azure-native/storage"));
40
39
  const vault = __importStar(require("../vault"));
41
40
  const vnet = __importStar(require("../vnet"));
41
+ const base_1 = require("../base");
42
42
  class StorageAccount extends base_1.BaseResourceComponent {
43
43
  rsGroup;
44
44
  id;
@@ -117,7 +117,9 @@ class StorageAccount extends base_1.BaseResourceComponent {
117
117
  publicNetworkAccess: network?.privateLink ? 'Disabled' : 'Enabled',
118
118
  networkRuleSet: {
119
119
  bypass: args.network?.bypass ?? 'None',
120
- defaultAction: args.network?.defaultAction ?? storage.DefaultAction.Allow,
120
+ defaultAction: args.network?.ipRules || args.network?.vnetRules
121
+ ? storage.DefaultAction.Deny
122
+ : (args.network?.defaultAction ?? storage.DefaultAction.Allow),
121
123
  ipRules: args.network?.ipRules
122
124
  ? pulumi.output(args.network.ipRules).apply((ips) => ips.map((i) => ({
123
125
  iPAddressOrRange: i,
@@ -134,6 +136,7 @@ class StorageAccount extends base_1.BaseResourceComponent {
134
136
  }, {
135
137
  ...opts,
136
138
  dependsOn: encryptionKey,
139
+ parent: this,
137
140
  });
138
141
  this.createPrivateLink(stg);
139
142
  this.createLifeCycleManagement(stg);
@@ -164,7 +167,7 @@ class StorageAccount extends base_1.BaseResourceComponent {
164
167
  rsGroup: this.args.rsGroup,
165
168
  type: 'storage',
166
169
  storageType: t,
167
- }, { dependsOn: stg, parent: this }));
170
+ }, { dependsOn: stg, deletedWith: stg, parent: this }));
168
171
  }
169
172
  createLifeCycleManagement(stg) {
170
173
  const { rsGroup, policies } = this.args;
@@ -174,7 +177,7 @@ class StorageAccount extends base_1.BaseResourceComponent {
174
177
  accountName: stg.name,
175
178
  blobServicesName: 'default',
176
179
  ...policies.blob,
177
- }, { dependsOn: stg, parent: this });
180
+ }, { dependsOn: stg, deletedWith: stg, parent: this });
178
181
  }
179
182
  if (policies?.defaultManagementPolicyRules) {
180
183
  return new storage.ManagementPolicy(`${this.name}-lifecycle`, {
@@ -184,7 +187,7 @@ class StorageAccount extends base_1.BaseResourceComponent {
184
187
  policy: {
185
188
  rules: policies.defaultManagementPolicyRules,
186
189
  },
187
- }, { dependsOn: stg, parent: this });
190
+ }, { dependsOn: stg, deletedWith: stg, parent: this });
188
191
  }
189
192
  }
190
193
  enableStaticWebsite(stg) {
@@ -196,13 +199,13 @@ class StorageAccount extends base_1.BaseResourceComponent {
196
199
  accountName: stg.name,
197
200
  indexDocument: 'index.html',
198
201
  error404Document: 'index.html',
199
- }, { dependsOn: stg, parent: this });
202
+ }, { dependsOn: stg, deletedWith: stg, parent: this });
200
203
  if (policies.staticWebsite.endpoint) {
201
204
  new vnet.AzCdn(`${this.name}-cdn`, {
202
205
  endpoint: policies.staticWebsite.endpoint,
203
206
  rsGroup: policies.staticWebsite.existingProfile?.rsGroup ?? this.args.rsGroup,
204
207
  existingProfile: policies.staticWebsite.existingProfile,
205
- }, { dependsOn: [stg, staticWeb], parent: this });
208
+ }, { dependsOn: [stg, staticWeb], deletedWith: stg, parent: this });
206
209
  }
207
210
  }
208
211
  addSecretsToVault(stg) {
@@ -229,7 +232,7 @@ class StorageAccount extends base_1.BaseResourceComponent {
229
232
  return new vault.VaultSecrets(this.name, {
230
233
  vaultInfo,
231
234
  secrets,
232
- }, { dependsOn: stg, parent: this });
235
+ }, { dependsOn: stg, deletedWith: stg, parent: this });
233
236
  });
234
237
  });
235
238
  }
@@ -242,20 +245,20 @@ class StorageAccount extends base_1.BaseResourceComponent {
242
245
  ...rsGroup,
243
246
  accountName: stg.name,
244
247
  publicAccess: c.isPublic ? 'Blob' : 'None',
245
- }, { dependsOn: stg, parent: this }));
248
+ }, { dependsOn: stg, deletedWith: stg, parent: this }));
246
249
  //Create Queues
247
250
  containers.queues?.map((q) => new storage.Queue(q, {
248
251
  queueName: q.toLowerCase(),
249
252
  accountName: stg.name,
250
253
  ...rsGroup,
251
- }, { dependsOn: stg, parent: this }));
254
+ }, { dependsOn: stg, deletedWith: stg, parent: this }));
252
255
  //File Share
253
256
  containers.fileShares?.map((s) => new storage.FileShare(s, {
254
257
  shareName: s.toLowerCase(),
255
258
  accountName: stg.name,
256
259
  ...rsGroup,
257
- }, { dependsOn: stg, parent: this }));
260
+ }, { dependsOn: stg, deletedWith: stg, parent: this }));
258
261
  }
259
262
  }
260
263
  exports.StorageAccount = StorageAccount;
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmFnZUFjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmFnZS9TdG9yYWdlQWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzRUFBd0Q7QUFFeEQsdURBQXlDO0FBQ3pDLGtDQUFnRTtBQUVoRSxnREFBa0M7QUFDbEMsOENBQWdDO0FBNENoQyxNQUFhLGNBQWUsU0FBUSw0QkFBeUM7SUFDM0QsT0FBTyxDQUE0QjtJQUNuQyxFQUFFLENBQXdCO0lBQzFCLFlBQVksQ0FBd0I7SUFFcEQsWUFBWSxJQUFZLEVBQUUsSUFBd0IsRUFBRSxJQUFzQztRQUN4RixLQUFLLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FDOUcsSUFBSSxDQUFDO1FBRVAsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFN0UsTUFBTSxHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUNwQyxJQUFJLEVBQ0o7WUFDRSxHQUFHLElBQUksQ0FBQyxPQUFPO1lBQ2YsR0FBRyxLQUFLO1lBRVIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUztZQUM1QixHQUFHLEVBQUU7Z0JBQ0gsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZO2FBQy9DO1lBRUQsc0JBQXNCLEVBQUUsSUFBSTtZQUM1QiwyQkFBMkIsRUFBRSxLQUFLO1lBQ2xD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
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmFnZUFjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmFnZS9TdG9yYWdlQWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSx1REFBeUM7QUFDekMsc0VBQXdEO0FBRXhELGdEQUFrQztBQUNsQyw4Q0FBZ0M7QUFFaEMsa0NBQWdFO0FBNkNoRSxNQUFhLGNBQWUsU0FBUSw0QkFBeUM7SUFDM0QsT0FBTyxDQUE0QjtJQUNuQyxFQUFFLENBQXdCO0lBQzFCLFlBQVksQ0FBd0I7SUFFcEQsWUFBWSxJQUFZLEVBQUUsSUFBd0IsRUFBRSxJQUFzQztRQUN4RixLQUFLLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FDOUcsSUFBSSxDQUFDO1FBRVAsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFN0UsTUFBTSxHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUNwQyxJQUFJLEVBQ0o7WUFDRSxHQUFHLElBQUksQ0FBQyxPQUFPO1lBQ2YsR0FBRyxLQUFLO1lBRVIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUztZQUM1QixHQUFHLEVBQUU7Z0JBQ0gsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZO2FBQy9DO1lBRUQsc0JBQXNCLEVBQUUsSUFBSTtZQUM1QiwyQkFBMkIsRUFBRSxLQUFLO1lBQ2xD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
package/types.d.ts CHANGED
@@ -3,10 +3,10 @@ import { PrivateEndpointType } from './vnet';
3
3
  export type DnsRecordTypes = 'A' | 'AAAA' | 'CNAME' | 'MX' | 'NS' | 'PTR' | 'SOA' | 'SRV' | 'TXT' | 'CAA';
4
4
  export type GroupRoleTypes = 'admin' | 'contributor' | 'readOnly';
5
5
  export type CommonProps = 'rsGroup' | 'groupRoles' | 'vaultInfo' | 'resourceGroupName' | 'location' | 'resourceName' | 'tags';
6
- type AsInput<T> = {
6
+ export type AsInput<T> = {
7
7
  [K in keyof T]: T[K] extends object ? T[K] extends Array<any> ? pulumi.Input<NonNullable<T[K]>> : AsInput<NonNullable<T[K]>> : pulumi.Input<NonNullable<T[K]>>;
8
8
  };
9
- type AsOutput<T> = {
9
+ export type AsOutput<T> = {
10
10
  [K in keyof T]: T[K] extends object ? T[K] extends Array<any> ? pulumi.Output<NonNullable<T[K]>> : AsOutput<NonNullable<T[K]>> : pulumi.Output<NonNullable<T[K]>>;
11
11
  };
12
12
  export type WithName = {
@@ -56,6 +56,13 @@ export type WithMemberOfArgs = {
56
56
  objectId: string;
57
57
  }>[];
58
58
  };
59
+ export type IdentityType = {
60
+ id: string;
61
+ clientId: string;
62
+ objectId: string;
63
+ };
64
+ export type IdentityInputs = AsInput<IdentityType>;
65
+ export type IdentityOutputs = AsOutput<IdentityType>;
59
66
  export type UserAssignedIdentityType = {
60
67
  id: string;
61
68
  clientId: string;
@@ -87,6 +94,11 @@ export interface GroupRoleOutput {
87
94
  objectId: string;
88
95
  displayName: string;
89
96
  }
97
+ export type GroupRoleInputTypes = {
98
+ admin: pulumi.Input<GroupRoleOutput>;
99
+ contributor: pulumi.Input<GroupRoleOutput>;
100
+ readOnly: pulumi.Input<GroupRoleOutput>;
101
+ };
90
102
  export type GroupRoleOutputTypes = {
91
103
  admin: pulumi.Output<GroupRoleOutput>;
92
104
  contributor: pulumi.Output<GroupRoleOutput>;
@@ -151,4 +163,3 @@ export type GrantIdentityRoles = {
151
163
  } | undefined>;
152
164
  resource: ResourceInputs;
153
165
  };
154
- export {};
@@ -1,18 +1,21 @@
1
1
  import * as pulumi from '@pulumi/pulumi';
2
- import { KeyVaultKey } from '@azure/keyvault-keys';
2
+ import * as types from '../types';
3
3
  import { KeyVaultCertificateWithPolicy } from '@azure/keyvault-certificates';
4
+ import { KeyVaultKey } from '@azure/keyvault-keys';
4
5
  import { KeyVaultSecret } from '@azure/keyvault-secrets';
5
- import { ResourceType } from '../types';
6
6
  export declare function getSecretName(name: string): string;
7
7
  export type GetVaultItemArgs = {
8
8
  name: string;
9
9
  version?: string;
10
- vaultInfo: ResourceType;
10
+ vaultInfo: types.ResourceType;
11
11
  };
12
- export type GetVaultItemArgsInputs = pulumi.Input<GetVaultItemArgs>;
12
+ export type GetVaultItemArgsInputs = types.AsInput<GetVaultItemArgs>;
13
13
  export declare const getKey: ({ name, version, vaultInfo }: GetVaultItemArgs) => Promise<KeyVaultKey | undefined>;
14
14
  export declare const getKeyOutput: (args: GetVaultItemArgsInputs) => pulumi.Output<KeyVaultKey | undefined>;
15
15
  export declare const getCert: ({ name, vaultInfo }: GetVaultItemArgs) => Promise<KeyVaultCertificateWithPolicy | undefined>;
16
16
  export declare const getCertOutput: (args: GetVaultItemArgsInputs) => pulumi.Output<KeyVaultCertificateWithPolicy | undefined>;
17
17
  export declare const getSecret: ({ name, version, vaultInfo }: GetVaultItemArgs) => Promise<KeyVaultSecret | undefined>;
18
18
  export declare const getSecretOutput: (args: GetVaultItemArgsInputs) => pulumi.Output<KeyVaultSecret | undefined>;
19
+ export declare const getVaultId: ({ name, version, vaultInfo, type, }: types.AsInput<GetVaultItemArgs> & {
20
+ type: "secrets" | "keys" | "certificates";
21
+ }) => pulumi.Output<string>;
package/vault/helpers.js CHANGED
@@ -36,12 +36,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.getSecretOutput = exports.getSecret = exports.getCertOutput = exports.getCert = exports.getKeyOutput = exports.getKey = void 0;
39
+ exports.getVaultId = exports.getSecretOutput = exports.getSecret = exports.getCertOutput = exports.getCert = exports.getKeyOutput = exports.getKey = void 0;
40
40
  exports.getSecretName = getSecretName;
41
- const helpers_1 = require("../helpers");
42
41
  const pulumi = __importStar(require("@pulumi/pulumi"));
43
- const KeyVaultBase_1 = __importDefault(require("@drunk-pulumi/azure-providers/AzBase/KeyVaultBase"));
42
+ const helpers_1 = require("../helpers");
44
43
  const lodash_1 = __importDefault(require("lodash"));
44
+ const KeyVaultBase_1 = __importDefault(require("@drunk-pulumi/azure-providers/AzBase/KeyVaultBase"));
45
45
  function getSecretName(name) {
46
46
  const sanitizedStack = lodash_1.default.escapeRegExp(helpers_1.stackInfo.stack);
47
47
  const n = name.replace(new RegExp(sanitizedStack, 'g'), ''); // Replace occurrences of "stack" variable with "-"
@@ -59,4 +59,11 @@ const getSecret = ({ name, version, vaultInfo }) => (0, KeyVaultBase_1.default)(
59
59
  exports.getSecret = getSecret;
60
60
  const getSecretOutput = (args) => pulumi.output(args).apply(exports.getSecret);
61
61
  exports.getSecretOutput = getSecretOutput;
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YXVsdC9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNBLHNDQUtDO0FBZEQsd0NBQWtEO0FBQ2xELHVEQUF5QztBQUN6QyxxR0FBZ0Y7QUFDaEYsb0RBQXVCO0FBTXZCLFNBQWdCLGFBQWEsQ0FBQyxJQUFZO0lBQ3hDLE1BQU0sY0FBYyxHQUFHLGdCQUFDLENBQUMsWUFBWSxDQUFDLG1CQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxtREFBbUQ7SUFFaEgsT0FBTyxtQkFBUyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFLTSxNQUFNLE1BQU0sR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQW9CLEVBQW9DLEVBQUUsQ0FDekcsSUFBQSxzQkFBZSxFQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRG5ELFFBQUEsTUFBTSxVQUM2QztBQUV6RCxNQUFNLFlBQVksR0FBRyxDQUFDLElBQTRCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQU0sQ0FBQyxDQUFDO0FBQW5GLFFBQUEsWUFBWSxnQkFBdUU7QUFFekYsTUFBTSxPQUFPLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQW9CLEVBQXNELEVBQUUsQ0FDbkgsSUFBQSxzQkFBZSxFQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFEM0MsUUFBQSxPQUFPLFdBQ29DO0FBRWpELE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBNEIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBTyxDQUFDLENBQUM7QUFBckYsUUFBQSxhQUFhLGlCQUF3RTtBQUUzRixNQUFNLFNBQVMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQW9CLEVBQXVDLEVBQUUsQ0FDL0csSUFBQSxzQkFBZSxFQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRHRELFFBQUEsU0FBUyxhQUM2QztBQUU1RCxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQTRCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLGlCQUFTLENBQUMsQ0FBQztBQUF6RixRQUFBLGVBQWUsbUJBQTBFIn0=
62
+ const getVaultId = ({ name, version, vaultInfo, type, }) => {
63
+ const vaultUrl = pulumi.interpolate `https://${vaultInfo.resourceName}.vault.azure.net`;
64
+ return version
65
+ ? pulumi.interpolate `${vaultUrl}/${type}/${name}/${version}`
66
+ : pulumi.interpolate `${vaultUrl}/${type}/${name}`;
67
+ };
68
+ exports.getVaultId = getVaultId;
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YXVsdC9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVdBLHNDQUtDO0FBaEJELHVEQUF5QztBQUd6Qyx3Q0FBa0Q7QUFLbEQsb0RBQXVCO0FBQ3ZCLHFHQUFnRjtBQUVoRixTQUFnQixhQUFhLENBQUMsSUFBWTtJQUN4QyxNQUFNLGNBQWMsR0FBRyxnQkFBQyxDQUFDLFlBQVksQ0FBQyxtQkFBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsbURBQW1EO0lBRWhILE9BQU8sbUJBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBS00sTUFBTSxNQUFNLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFvQixFQUFvQyxFQUFFLENBQ3pHLElBQUEsc0JBQWUsRUFBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQURuRCxRQUFBLE1BQU0sVUFDNkM7QUFFekQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUE0QixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFNLENBQUMsQ0FBQztBQUFuRixRQUFBLFlBQVksZ0JBQXVFO0FBRXpGLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFvQixFQUFzRCxFQUFFLENBQ25ILElBQUEsc0JBQWUsRUFBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRDNDLFFBQUEsT0FBTyxXQUNvQztBQUVqRCxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQTRCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLGVBQU8sQ0FBQyxDQUFDO0FBQXJGLFFBQUEsYUFBYSxpQkFBd0U7QUFFM0YsTUFBTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFvQixFQUF1QyxFQUFFLENBQy9HLElBQUEsc0JBQWUsRUFBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUR0RCxRQUFBLFNBQVMsYUFDNkM7QUFFNUQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUE0QixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBUyxDQUFDLENBQUM7QUFBekYsUUFBQSxlQUFlLG1CQUEwRTtBQUUvRixNQUFNLFVBQVUsR0FBRyxDQUFDLEVBQ3pCLElBQUksRUFDSixPQUFPLEVBQ1AsU0FBUyxFQUNULElBQUksR0FDNEUsRUFBRSxFQUFFO0lBQ3BGLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUEsV0FBVyxTQUFTLENBQUMsWUFBWSxrQkFBa0IsQ0FBQztJQUN2RixPQUFPLE9BQU87UUFDWixDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQSxHQUFHLFFBQVEsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLE9BQU8sRUFBRTtRQUM1RCxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQSxHQUFHLFFBQVEsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7QUFDdEQsQ0FBQyxDQUFDO0FBVlcsUUFBQSxVQUFVLGNBVXJCIn0=
@@ -56,6 +56,8 @@ class DiskEncryptionSet extends base_1.BaseResourceComponent {
56
56
  activeKey: { keyUrl: encryptionKey.id },
57
57
  }, {
58
58
  ...opts,
59
+ deleteBeforeReplace: true,
60
+ replaceOnChanges: ['encryptionType'],
59
61
  parent: this,
60
62
  });
61
63
  this.addIdentityToRole('readOnly', diskEncrypt.identity);
@@ -71,4 +73,4 @@ class DiskEncryptionSet extends base_1.BaseResourceComponent {
71
73
  }
72
74
  }
73
75
  exports.DiskEncryptionSet = DiskEncryptionSet;
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlza0VuY3J5cHRpb25TZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdm0vRGlza0VuY3J5cHRpb25TZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0VBQXdEO0FBRXhELGtDQUFnRTtBQVdoRSxNQUFhLGlCQUFrQixTQUFRLDRCQUE0QztJQUNqRSxFQUFFLENBQXdCO0lBQzFCLFlBQVksQ0FBd0I7SUFFcEQsWUFBWSxJQUFZLEVBQUUsSUFBMkIsRUFBRSxJQUFzQztRQUMzRixLQUFLLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU3QyxNQUFNLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLElBQUksQ0FBQztRQUU3RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM5QyxNQUFNLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsQ0FDL0MsSUFBSSxFQUNKO1lBQ0UsR0FBRyxPQUFPO1lBQ1YsaUNBQWlDLEVBQy9CLGNBQWMsS0FBSyxPQUFPLENBQUMscUJBQXFCLENBQUMsc0NBQXNDO1lBQ3pGLGNBQWMsRUFBRSxjQUFjLElBQUksT0FBTyxDQUFDLHFCQUFxQixDQUFDLDJDQUEyQztZQUMzRyxRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLGtCQUFrQjtvQkFDdEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQywyQkFBMkI7b0JBQzFELENBQUMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsY0FBYztnQkFDL0Msc0JBQXNCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDakY7WUFDRCxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRTtTQUN4QyxFQUNEO1lBQ0UsR0FBRyxJQUFJO1lBQ1AsTUFBTSxFQUFFLElBQUk7U0FDYixDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6RCxJQUFJLENBQUMsRUFBRSxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBRXJDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDaEMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTdDRCw4Q0E2Q0MifQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlza0VuY3J5cHRpb25TZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdm0vRGlza0VuY3J5cHRpb25TZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0VBQXdEO0FBRXhELGtDQUFnRTtBQVFoRSxNQUFhLGlCQUFrQixTQUFRLDRCQUE0QztJQUNqRSxFQUFFLENBQXdCO0lBQzFCLFlBQVksQ0FBd0I7SUFFcEQsWUFBWSxJQUFZLEVBQUUsSUFBMkIsRUFBRSxJQUFzQztRQUMzRixLQUFLLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU3QyxNQUFNLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLElBQUksQ0FBQztRQUU3RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM5QyxNQUFNLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsQ0FDL0MsSUFBSSxFQUNKO1lBQ0UsR0FBRyxPQUFPO1lBQ1YsaUNBQWlDLEVBQy9CLGNBQWMsS0FBSyxPQUFPLENBQUMscUJBQXFCLENBQUMsc0NBQXNDO1lBQ3pGLGNBQWMsRUFBRSxjQUFjLElBQUksT0FBTyxDQUFDLHFCQUFxQixDQUFDLDJDQUEyQztZQUMzRyxRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLGtCQUFrQjtvQkFDdEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQywyQkFBMkI7b0JBQzFELENBQUMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsY0FBYztnQkFDL0Msc0JBQXNCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDakY7WUFDRCxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRTtTQUN4QyxFQUNEO1lBQ0UsR0FBRyxJQUFJO1lBQ1AsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixnQkFBZ0IsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1lBQ3BDLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFekQsSUFBSSxDQUFDLEVBQUUsR0FBRyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUVyQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ2hDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUEvQ0QsOENBK0NDIn0=
@@ -1,4 +1,5 @@
1
1
  import * as compute from '@pulumi/azure-native/compute';
2
+ import * as mnc from '@pulumi/azure-native/maintenance';
2
3
  import * as nw from '@pulumi/azure-native/network';
3
4
  import * as inputs from '@pulumi/azure-native/types/input';
4
5
  import * as pulumi from '@pulumi/pulumi';
@@ -10,6 +11,7 @@ export type VmScheduleType = {
10
11
  /** The format is ISO 8601 Standard ex: 2200 */
11
12
  autoShutdownTime: pulumi.Input<string>;
12
13
  /** The format is ISO 8601 Standard ex: 0900 */
14
+ autoStartTime?: pulumi.Input<string>;
13
15
  emailNotification?: string[];
14
16
  webHook?: pulumi.Input<string>;
15
17
  };
@@ -30,6 +32,7 @@ export interface VirtualMachineArgs extends CommonBaseArgs, types.WithUserAssign
30
32
  name: string;
31
33
  }>;
32
34
  lock?: boolean;
35
+ maintenance?: Partial<Pick<mnc.MaintenanceConfigurationArgs, 'recurEvery' | 'maintenanceScope'>> | false;
33
36
  }
34
37
  export declare class VirtualMachine extends BaseResourceComponent<VirtualMachineArgs> {
35
38
  readonly id: pulumi.Output<string>;
@@ -39,8 +42,10 @@ export declare class VirtualMachine extends BaseResourceComponent<VirtualMachine
39
42
  id: pulumi.Output<string>;
40
43
  resourceName: pulumi.Output<string>;
41
44
  };
45
+ private createVM;
42
46
  private createCredentials;
43
47
  private createNetworkInterface;
44
48
  private createSchedule;
45
49
  private createExtensions;
50
+ private createMaintenance;
46
51
  }
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.VirtualMachine = void 0;
37
37
  const compute = __importStar(require("@pulumi/azure-native/compute"));
38
+ const mnc = __importStar(require("@pulumi/azure-native/maintenance"));
38
39
  const devtestlab = __importStar(require("@pulumi/azure-native/devtestlab"));
39
40
  const nw = __importStar(require("@pulumi/azure-native/network"));
40
41
  const pulumi = __importStar(require("@pulumi/pulumi"));
@@ -45,14 +46,33 @@ class VirtualMachine extends base_1.BaseResourceComponent {
45
46
  resourceName;
46
47
  constructor(name, args, opts) {
47
48
  super('VirtualMachine', name, args, opts);
48
- const { rsGroup, defaultUAssignedId, enableEncryption, osProfile, storageProfile, vaultInfo, diskEncryptionSet, lock, ...props } = args;
49
+ const vm = this.createVM();
50
+ this.createSchedule(vm);
51
+ this.createExtensions(vm);
52
+ this.createMaintenance(vm);
53
+ if (args.lock)
54
+ this.lockFromDeleting(vm);
55
+ this.id = vm.id;
56
+ this.resourceName = vm.name;
57
+ this.registerOutputs();
58
+ }
59
+ getOutputs() {
60
+ return {
61
+ id: this.id,
62
+ resourceName: this.resourceName,
63
+ };
64
+ }
65
+ createVM() {
66
+ const { rsGroup, defaultUAssignedId, enableEncryption, osProfile, storageProfile, vaultInfo, diskEncryptionSet, lock, ...props } = this.args;
49
67
  const keyEncryption = enableEncryption && !diskEncryptionSet ? this.getEncryptionKey({ name: 'key' }) : undefined;
50
68
  const diskEncryption = enableEncryption && !diskEncryptionSet ? this.getEncryptionKey({ name: 'disk' }) : undefined;
51
69
  const nic = this.createNetworkInterface();
52
70
  const credential = this.createCredentials();
53
- const vm = new compute.VirtualMachine(this.name, {
71
+ return new compute.VirtualMachine(this.name, {
54
72
  ...props,
55
73
  ...rsGroup,
74
+ //VM is not supported in all zones
75
+ //zones: zoneHelper.getDefaultZones(props.zones),
56
76
  identity: {
57
77
  type: defaultUAssignedId
58
78
  ? compute.ResourceIdentityType.SystemAssigned_UserAssigned
@@ -63,13 +83,39 @@ class VirtualMachine extends base_1.BaseResourceComponent {
63
83
  networkInterfaces: [{ id: nic.id, primary: true }],
64
84
  },
65
85
  //az feature register --name EncryptionAtHost --namespace Microsoft.Compute
66
- securityProfile: props.securityProfile ?? {
67
- encryptionAtHost: true,
68
- },
86
+ securityProfile: enableEncryption
87
+ ? (props.securityProfile ?? {
88
+ encryptionAtHost: true,
89
+ })
90
+ : undefined,
69
91
  osProfile: {
70
92
  ...osProfile,
71
93
  adminUsername: credential.login,
72
94
  adminPassword: credential.pass,
95
+ windowsConfiguration: osProfile?.windowsConfiguration
96
+ ? {
97
+ enableAutomaticUpdates: true,
98
+ patchSettings: {
99
+ assessmentMode: compute.WindowsPatchAssessmentMode.AutomaticByPlatform,
100
+ enableHotpatching: true,
101
+ automaticByPlatformSettings: {
102
+ bypassPlatformSafetyChecksOnUserSchedule: false,
103
+ rebootSetting: 'IfRequired',
104
+ },
105
+ patchMode: compute.WindowsVMGuestPatchMode.AutomaticByPlatform,
106
+ },
107
+ ...osProfile.windowsConfiguration,
108
+ }
109
+ : undefined,
110
+ linuxConfiguration: osProfile?.linuxConfiguration
111
+ ? {
112
+ patchSettings: {
113
+ patchMode: compute.LinuxVMGuestPatchMode.AutomaticByPlatform,
114
+ assessmentMode: compute.LinuxPatchAssessmentMode.AutomaticByPlatform,
115
+ },
116
+ ...osProfile.linuxConfiguration,
117
+ }
118
+ : undefined,
73
119
  },
74
120
  storageProfile: {
75
121
  ...storageProfile,
@@ -97,14 +143,14 @@ class VirtualMachine extends base_1.BaseResourceComponent {
97
143
  }
98
144
  : undefined,
99
145
  managedDisk: {
100
- diskEncryptionSet: diskEncryptionSet
146
+ diskEncryptionSet: enableEncryption && diskEncryptionSet
101
147
  ? {
102
148
  id: diskEncryptionSet.id,
103
149
  }
104
150
  : undefined,
105
151
  securityProfile: storageProfile.securityEncryptionType
106
152
  ? {
107
- diskEncryptionSet: diskEncryptionSet ? { id: diskEncryptionSet.id } : undefined,
153
+ diskEncryptionSet: enableEncryption && diskEncryptionSet ? { id: diskEncryptionSet.id } : undefined,
108
154
  securityEncryptionType: storageProfile.securityEncryptionType,
109
155
  }
110
156
  : undefined,
@@ -115,14 +161,14 @@ class VirtualMachine extends base_1.BaseResourceComponent {
115
161
  ? storageProfile.dataDisks.map((d) => ({
116
162
  ...d,
117
163
  managedDisk: {
118
- diskEncryptionSet: diskEncryptionSet
164
+ diskEncryptionSet: enableEncryption && diskEncryptionSet
119
165
  ? {
120
166
  id: diskEncryptionSet.id,
121
167
  }
122
168
  : undefined,
123
169
  securityProfile: storageProfile.securityEncryptionType
124
170
  ? {
125
- diskEncryptionSet: diskEncryptionSet ? { id: diskEncryptionSet.id } : undefined,
171
+ diskEncryptionSet: enableEncryption && diskEncryptionSet ? { id: diskEncryptionSet.id } : undefined,
126
172
  securityEncryptionType: storageProfile.securityEncryptionType,
127
173
  }
128
174
  : undefined,
@@ -132,23 +178,10 @@ class VirtualMachine extends base_1.BaseResourceComponent {
132
178
  : [],
133
179
  },
134
180
  }, {
135
- ...opts,
181
+ ...this.opts,
136
182
  protect: lock,
137
183
  parent: this,
138
184
  });
139
- this.createSchedule(vm);
140
- this.createExtensions(vm);
141
- if (lock)
142
- this.lockFromDeleting(vm);
143
- this.id = vm.id;
144
- this.resourceName = vm.name;
145
- this.registerOutputs();
146
- }
147
- getOutputs() {
148
- return {
149
- id: this.id,
150
- resourceName: this.resourceName,
151
- };
152
185
  }
153
186
  createCredentials() {
154
187
  const adminLogin = pulumi.interpolate `${this.name}-admin-${this.createRandomString({ type: 'string', length: 6 }).value}`.apply((s) => helpers_1.rsHelpers.removeDashes(s.substring(0, 20)));
@@ -170,23 +203,45 @@ class VirtualMachine extends base_1.BaseResourceComponent {
170
203
  createSchedule(vm) {
171
204
  const { rsGroup, schedule } = this.args;
172
205
  if (!schedule)
173
- return undefined;
174
- return vm.name.apply((n) => new devtestlab.GlobalSchedule(`shutdown-computevm-${n}`, {
175
- ...rsGroup,
176
- name: `shutdown-computevm-${n}`,
177
- dailyRecurrence: { time: schedule.autoShutdownTime },
178
- timeZoneId: schedule.timeZone,
179
- status: 'Enabled',
180
- targetResourceId: vm.id,
181
- taskType: 'ComputeVmShutdownTask',
182
- notificationSettings: {
183
- status: schedule.webHook || schedule.emailNotification ? 'Enabled' : 'Disabled',
184
- emailRecipient: schedule.emailNotification?.join(';'),
185
- notificationLocale: 'en',
186
- timeInMinutes: 30,
187
- webhookUrl: schedule.webHook,
188
- },
189
- }, { dependsOn: vm, parent: this, deleteBeforeReplace: true, deletedWith: vm }));
206
+ return;
207
+ vm.name.apply((n) => {
208
+ if (schedule.autoShutdownTime) {
209
+ new devtestlab.GlobalSchedule(`shutdown-computevm-${n}`, {
210
+ ...rsGroup,
211
+ name: `shutdown-computevm-${n}`,
212
+ dailyRecurrence: { time: schedule.autoShutdownTime },
213
+ timeZoneId: schedule.timeZone,
214
+ status: 'Enabled',
215
+ targetResourceId: vm.id,
216
+ taskType: 'ComputeVmShutdownTask',
217
+ notificationSettings: {
218
+ status: schedule.webHook || schedule.emailNotification ? 'Enabled' : 'Disabled',
219
+ emailRecipient: schedule.emailNotification?.join(';'),
220
+ notificationLocale: 'en',
221
+ timeInMinutes: 30,
222
+ webhookUrl: schedule.webHook,
223
+ },
224
+ }, { dependsOn: vm, parent: this, deleteBeforeReplace: true, deletedWith: vm });
225
+ }
226
+ if (schedule.autoStartTime) {
227
+ new devtestlab.GlobalSchedule(`startup-computevm-${n}`, {
228
+ ...rsGroup,
229
+ name: `startup-computevm-${n}`,
230
+ dailyRecurrence: { time: schedule.autoStartTime },
231
+ timeZoneId: schedule.timeZone,
232
+ status: 'Enabled',
233
+ targetResourceId: vm.id,
234
+ taskType: 'ComputeVmStartupTask',
235
+ notificationSettings: {
236
+ status: schedule.webHook || schedule.emailNotification ? 'Enabled' : 'Disabled',
237
+ emailRecipient: schedule.emailNotification?.join(';'),
238
+ notificationLocale: 'en',
239
+ timeInMinutes: 30,
240
+ webhookUrl: schedule.webHook,
241
+ },
242
+ }, { dependsOn: vm, parent: this, deleteBeforeReplace: true, deletedWith: vm });
243
+ }
244
+ });
190
245
  }
191
246
  createExtensions(vm) {
192
247
  const { rsGroup, extensions } = this.args;
@@ -199,6 +254,66 @@ class VirtualMachine extends base_1.BaseResourceComponent {
199
254
  vmName: vm.name,
200
255
  }, { dependsOn: vm, parent: this }));
201
256
  }
257
+ createMaintenance(vm) {
258
+ const { rsGroup, maintenance, osProfile, schedule } = this.args;
259
+ if (maintenance === false)
260
+ return;
261
+ const tomorrow = new Date();
262
+ tomorrow.setDate(tomorrow.getDate() + 1);
263
+ const startDate = tomorrow.toISOString().split('T')[0];
264
+ const scope = maintenance?.maintenanceScope ?? mnc.MaintenanceScope.OSImage;
265
+ let duration = '04:00';
266
+ if (scope === mnc.MaintenanceScope.InGuestPatch) {
267
+ duration = '04:00';
268
+ }
269
+ else if (scope === mnc.MaintenanceScope.OSImage) {
270
+ duration = '08:00';
271
+ }
272
+ else if (scope === mnc.MaintenanceScope.Resource) {
273
+ duration = '05:00';
274
+ }
275
+ const config = new mnc.MaintenanceConfiguration(`${this.name}-maintenance`, {
276
+ ...rsGroup,
277
+ maintenanceScope: scope,
278
+ installPatches: scope == mnc.MaintenanceScope.InGuestPatch
279
+ ? {
280
+ windowsParameters: osProfile?.windowsConfiguration
281
+ ? {
282
+ classificationsToInclude: ['Critical', 'Security', 'UpdateRollup', 'FeaturePack', 'ServicePack'],
283
+ excludeKbsRequiringReboot: false,
284
+ }
285
+ : undefined,
286
+ linuxParameters: osProfile?.linuxConfiguration
287
+ ? {
288
+ classificationsToInclude: ['Critical', 'Security', 'UpdateRollup', 'FeaturePack', 'ServicePack'],
289
+ }
290
+ : undefined,
291
+ }
292
+ : undefined,
293
+ timeZone: schedule?.timeZone ?? 'Singapore Standard Time',
294
+ visibility: 'Custom',
295
+ startDateTime: `${startDate} 00:00`,
296
+ duration,
297
+ recurEvery: maintenance?.recurEvery ?? '1Week Saturday,Sunday',
298
+ extensionProperties: {
299
+ InGuestPatchMode: 'User',
300
+ },
301
+ }, {
302
+ dependsOn: vm,
303
+ parent: this,
304
+ deletedWith: vm,
305
+ deleteBeforeReplace: true,
306
+ replaceOnChanges: ['maintenanceScope'],
307
+ });
308
+ return new mnc.ConfigurationAssignment(`${this.name}-maintenance-assignment`, {
309
+ ...rsGroup,
310
+ resourceName: vm.name,
311
+ maintenanceConfigurationId: config.id,
312
+ resourceId: vm.id,
313
+ resourceType: 'virtualMachines',
314
+ providerName: 'Microsoft.Compute',
315
+ }, { dependsOn: [vm, config], parent: this, deletedWith: config, deleteBeforeReplace: true });
316
+ }
202
317
  }
203
318
  exports.VirtualMachine = VirtualMachine;
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlydHVhbE1hY2hpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdm0vVmlydHVhbE1hY2hpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0VBQXdEO0FBQ3hELDRFQUE4RDtBQUM5RCxpRUFBbUQ7QUFFbkQsdURBQXlDO0FBQ3pDLGtDQUFnRTtBQUVoRSx3Q0FBdUM7QUE0Q3ZDLE1BQWEsY0FBZSxTQUFRLDRCQUF5QztJQUMzRCxFQUFFLENBQXdCO0lBQzFCLFlBQVksQ0FBd0I7SUFFcEQsWUFBWSxJQUFZLEVBQUUsSUFBd0IsRUFBRSxJQUFzQztRQUN4RixLQUFLLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUUxQyxNQUFNLEVBQ0osT0FBTyxFQUNQLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULGNBQWMsRUFDZCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLElBQUksRUFDSixHQUFHLEtBQUssRUFDVCxHQUFHLElBQUksQ0FBQztRQUVULE1BQU0sYUFBYSxHQUFHLGdCQUFnQixJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDbEgsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNwSCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUMxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUs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
319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlydHVhbE1hY2hpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdm0vVmlydHVhbE1hY2hpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0VBQXdEO0FBQ3hELHNFQUF3RDtBQUN4RCw0RUFBOEQ7QUFDOUQsaUVBQW1EO0FBRW5ELHVEQUF5QztBQUN6QyxrQ0FBZ0U7QUFFaEUsd0NBQXVDO0FBOEN2QyxNQUFhLGNBQWUsU0FBUSw0QkFBeUM7SUFDM0QsRUFBRSxDQUF3QjtJQUMxQixZQUFZLENBQXdCO0lBRXBELFlBQVksSUFBWSxFQUFFLElBQXdCLEVBQUUsSUFBc0M7UUFDeEYsS0FBSyxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFMUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUUzQixJQUFJLElBQUksQ0FBQyxJQUFJO1lBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFFNUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVPLFFBQVE7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