@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
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VaultSecrets = void 0;
4
+ const BaseComponent_1 = require("../base/BaseComponent");
5
+ const helpers_1 = require("../base/helpers");
6
+ const VaultSecret_1 = require("./VaultSecret");
7
+ class VaultSecrets extends BaseComponent_1.BaseComponent {
8
+ results = {};
9
+ constructor(name, args, opts) {
10
+ super((0, helpers_1.getComponentResourceType)('VaultSecrets'), name, args, opts);
11
+ Object.keys(args.secrets).forEach((key) => {
12
+ const secret = new VaultSecret_1.VaultSecret(key.includes(name) ? key : `${name}-${key}`, {
13
+ ...args.secrets[key],
14
+ vaultInfo: args.vaultInfo,
15
+ }, opts);
16
+ this.results[key] = {
17
+ id: secret.id,
18
+ vaultUrl: secret.vaultUrl,
19
+ version: secret.version,
20
+ };
21
+ });
22
+ this.registerOutputs(this.getOutputs());
23
+ }
24
+ getOutputs() {
25
+ return {
26
+ results: this.results,
27
+ };
28
+ }
29
+ }
30
+ exports.VaultSecrets = VaultSecrets;
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmF1bHRTZWNyZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhdWx0L1ZhdWx0U2VjcmV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5REFBc0Q7QUFDdEQsNkNBQTJEO0FBRTNELCtDQUE0RDtBQVk1RCxNQUFhLFlBQWEsU0FBUSw2QkFBK0I7SUFDL0MsT0FBTyxHQUVuQixFQUFFLENBQUM7SUFFUCxZQUFZLElBQVksRUFBRSxJQUFzQixFQUFFLElBQXNDO1FBQ3RGLEtBQUssQ0FBQyxJQUFBLGtDQUF3QixFQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFbEUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSx5QkFBVyxDQUM1QixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUMzQztnQkFDRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7YUFDMUIsRUFDRCxJQUFJLENBQ0wsQ0FBQztZQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUc7Z0JBQ2xCLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDYixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7Z0JBQ3pCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTzthQUN4QixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTztZQUNMLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBakNELG9DQWlDQyJ9
@@ -0,0 +1 @@
1
+ export declare function getSecretName(name: string): string;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSecretName = getSecretName;
4
+ const helpers_1 = require("../helpers");
5
+ function getSecretName(name) {
6
+ const n = name
7
+ .replace(new RegExp(helpers_1.stackInfo.stack, 'g'), '') // Replace occurrences of "stack" variable with "-"
8
+ .replace(/\.|_|\s/g, '-') // Replace ".", "_", and spaces with "-"
9
+ .replace(/-+/g, '-') // Replace multiple dashes with a single dash
10
+ .toLowerCase(); // Convert the result to lowercase
11
+ return helpers_1.rsHelpers.removeLeadingAndTrailingDash(n);
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YXVsdC9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsc0NBUUM7QUFWRCx3Q0FBa0Q7QUFFbEQsU0FBZ0IsYUFBYSxDQUFDLElBQVk7SUFDeEMsTUFBTSxDQUFDLEdBQUcsSUFBSTtTQUNYLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxtQkFBUyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxtREFBbUQ7U0FDakcsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyx3Q0FBd0M7U0FDakUsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyw2Q0FBNkM7U0FDakUsV0FBVyxFQUFFLENBQUMsQ0FBQyxrQ0FBa0M7SUFFcEQsT0FBTyxtQkFBUyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25ELENBQUMifQ==
@@ -0,0 +1,5 @@
1
+ export * from './EncryptionKey';
2
+ export * as vaultHelpers from './helpers';
3
+ export * from './KeyVault';
4
+ export * from './VaultSecret';
5
+ export * from './VaultSecrets';
package/vault/index.js ADDED
@@ -0,0 +1,45 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.vaultHelpers = void 0;
40
+ __exportStar(require("./EncryptionKey"), exports);
41
+ exports.vaultHelpers = __importStar(require("./helpers"));
42
+ __exportStar(require("./KeyVault"), exports);
43
+ __exportStar(require("./VaultSecret"), exports);
44
+ __exportStar(require("./VaultSecrets"), exports);
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmF1bHQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQWdDO0FBQ2hDLDBEQUEwQztBQUMxQyw2Q0FBMkI7QUFDM0IsZ0RBQThCO0FBQzlCLGlEQUErQiJ9
@@ -0,0 +1,16 @@
1
+ import * as compute from '@pulumi/azure-native/compute';
2
+ import * as pulumi from '@pulumi/pulumi';
3
+ import { BaseResourceComponent, CommonBaseArgs } from '../base';
4
+ import * as types from '../types';
5
+ export interface DiskEncryptionSetArgs extends CommonBaseArgs, types.WithUserAssignedIdentity, types.WithGroupRolesArgs {
6
+ encryptionType: compute.DiskEncryptionSetType;
7
+ }
8
+ export declare class DiskEncryptionSet extends BaseResourceComponent<DiskEncryptionSetArgs> {
9
+ readonly id: pulumi.Output<string>;
10
+ readonly resourceName: pulumi.Output<string>;
11
+ constructor(name: string, args: DiskEncryptionSetArgs, opts?: pulumi.ComponentResourceOptions);
12
+ getOutputs(): {
13
+ id: pulumi.Output<string>;
14
+ resourceName: pulumi.Output<string>;
15
+ };
16
+ }
@@ -0,0 +1,74 @@
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.DiskEncryptionSet = void 0;
37
+ const compute = __importStar(require("@pulumi/azure-native/compute"));
38
+ const base_1 = require("../base");
39
+ class DiskEncryptionSet extends base_1.BaseResourceComponent {
40
+ id;
41
+ resourceName;
42
+ constructor(name, args, opts) {
43
+ super('DiskEncryptionSet', name, args, opts);
44
+ const { rsGroup, encryptionType, defaultUAssignedId } = args;
45
+ const encryptionKey = this.getEncryptionKey();
46
+ const diskEncrypt = new compute.DiskEncryptionSet(name, {
47
+ ...rsGroup,
48
+ rotationToLatestKeyVersionEnabled: true,
49
+ encryptionType: encryptionType ?? compute.DiskEncryptionSetType.EncryptionAtRestWithPlatformAndCustomerKeys,
50
+ identity: {
51
+ type: defaultUAssignedId
52
+ ? compute.ResourceIdentityType.SystemAssigned_UserAssigned
53
+ : compute.ResourceIdentityType.SystemAssigned,
54
+ userAssignedIdentities: defaultUAssignedId ? [defaultUAssignedId.id] : undefined,
55
+ },
56
+ activeKey: { keyUrl: encryptionKey.id },
57
+ }, {
58
+ ...opts,
59
+ parent: this,
60
+ });
61
+ this.addIdentityToRole('readOnly', diskEncrypt.identity);
62
+ this.id = diskEncrypt.id;
63
+ this.resourceName = diskEncrypt.name;
64
+ this.registerOutputs();
65
+ }
66
+ getOutputs() {
67
+ return {
68
+ id: this.id,
69
+ resourceName: this.resourceName,
70
+ };
71
+ }
72
+ }
73
+ exports.DiskEncryptionSet = DiskEncryptionSet;
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlza0VuY3J5cHRpb25TZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdm0vRGlza0VuY3J5cHRpb25TZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0VBQXdEO0FBRXhELGtDQUFnRTtBQVVoRSxNQUFhLGlCQUFrQixTQUFRLDRCQUE0QztJQUNqRSxFQUFFLENBQXdCO0lBQzFCLFlBQVksQ0FBd0I7SUFFcEQsWUFBWSxJQUFZLEVBQUUsSUFBMkIsRUFBRSxJQUFzQztRQUMzRixLQUFLLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU3QyxNQUFNLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLElBQUksQ0FBQztRQUU3RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM5QyxNQUFNLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsQ0FDL0MsSUFBSSxFQUNKO1lBQ0UsR0FBRyxPQUFPO1lBQ1YsaUNBQWlDLEVBQUUsSUFBSTtZQUN2QyxjQUFjLEVBQUUsY0FBYyxJQUFJLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQywyQ0FBMkM7WUFDM0csUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxrQkFBa0I7b0JBQ3RCLENBQUMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsMkJBQTJCO29CQUMxRCxDQUFDLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLGNBQWM7Z0JBQy9DLHNCQUFzQixFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQ2pGO1lBQ0QsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUU7U0FDeEMsRUFDRDtZQUNFLEdBQUcsSUFBSTtZQUNQLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFekQsSUFBSSxDQUFDLEVBQUUsR0FBRyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUVyQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ2hDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE1Q0QsOENBNENDIn0=
@@ -0,0 +1,45 @@
1
+ import * as compute from '@pulumi/azure-native/compute';
2
+ import * as nw from '@pulumi/azure-native/network';
3
+ import * as inputs from '@pulumi/azure-native/types/input';
4
+ import * as pulumi from '@pulumi/pulumi';
5
+ import { BaseResourceComponent, CommonBaseArgs } from '../base';
6
+ import * as types from '../types';
7
+ export type VmScheduleType = {
8
+ /** The time zone ID: https://stackoverflow.com/questions/7908343/list-of-timezone-ids-for-use-with-findtimezonebyid-in-c */
9
+ timeZone?: 'Singapore Standard Time' | pulumi.Input<string>;
10
+ /** The format is ISO 8601 Standard ex: 2200 */
11
+ autoShutdownTime: pulumi.Input<string>;
12
+ /** The format is ISO 8601 Standard ex: 0900 */
13
+ emailNotification?: string[];
14
+ webHook?: pulumi.Input<string>;
15
+ };
16
+ export interface VirtualMachineArgs extends CommonBaseArgs, types.WithUserAssignedIdentity, types.WithEncryptionEnabler, types.WithDiskEncryptSet, Omit<compute.VirtualMachineArgs, 'osProfile' | 'storageProfile' | 'identity' | 'networkProfile' | 'resourceGroupName' | 'location'> {
17
+ osProfile?: Omit<inputs.compute.OSProfileArgs, 'adminPassword' | 'adminUsername'>;
18
+ storageProfile: Pick<inputs.compute.StorageProfileArgs, 'imageReference' | 'alignRegionalDisksToVMZone' | 'diskControllerType'> & {
19
+ osDisk: Omit<inputs.compute.OSDiskArgs, 'encryptionSettings'>;
20
+ dataDisks?: Omit<inputs.compute.DataDiskArgs, 'managedDisk'>[];
21
+ storageAccountType?: compute.StorageAccountTypes;
22
+ securityEncryptionType?: compute.SecurityEncryptionTypes;
23
+ };
24
+ network: {
25
+ subnetId: pulumi.Input<string>;
26
+ nicType?: nw.NetworkInterfaceNicType;
27
+ };
28
+ schedule?: VmScheduleType;
29
+ extensions?: Array<Omit<compute.VirtualMachineExtensionArgs, 'location' | 'resourceGroupName' | 'vmName' | 'vmExtensionName'> & {
30
+ name: string;
31
+ }>;
32
+ lock?: boolean;
33
+ }
34
+ export declare class VirtualMachine extends BaseResourceComponent<VirtualMachineArgs> {
35
+ readonly id: pulumi.Output<string>;
36
+ readonly resourceName: pulumi.Output<string>;
37
+ constructor(name: string, args: VirtualMachineArgs, opts?: pulumi.ComponentResourceOptions);
38
+ getOutputs(): {
39
+ id: pulumi.Output<string>;
40
+ resourceName: pulumi.Output<string>;
41
+ };
42
+ private createNetworkInterface;
43
+ private createSchedule;
44
+ private createExtensions;
45
+ }
@@ -0,0 +1,192 @@
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.VirtualMachine = void 0;
37
+ const compute = __importStar(require("@pulumi/azure-native/compute"));
38
+ const devtestlab = __importStar(require("@pulumi/azure-native/devtestlab"));
39
+ const nw = __importStar(require("@pulumi/azure-native/network"));
40
+ const pulumi = __importStar(require("@pulumi/pulumi"));
41
+ const base_1 = require("../base");
42
+ class VirtualMachine extends base_1.BaseResourceComponent {
43
+ id;
44
+ resourceName;
45
+ constructor(name, args, opts) {
46
+ super('VirtualMachine', name, args, opts);
47
+ const { rsGroup, defaultUAssignedId, enableEncryption, osProfile, storageProfile, vaultInfo, diskEncryptionSet, lock, ...props } = args;
48
+ const adminLogin = pulumi.interpolate `${this.name}-vn-admin-${this.createRandomString({ type: 'string', length: 6 }).value}`;
49
+ const password = this.createPassword();
50
+ const keyEncryption = enableEncryption ? this.getEncryptionKey({ name: 'key' }) : undefined;
51
+ const diskEncryption = enableEncryption ? this.getEncryptionKey({ name: 'disk' }) : undefined;
52
+ const nic = this.createNetworkInterface();
53
+ const vm = new compute.VirtualMachine(this.name, {
54
+ ...props,
55
+ ...rsGroup,
56
+ identity: {
57
+ type: defaultUAssignedId
58
+ ? compute.ResourceIdentityType.SystemAssigned_UserAssigned
59
+ : compute.ResourceIdentityType.SystemAssigned,
60
+ userAssignedIdentities: defaultUAssignedId ? [defaultUAssignedId.id] : undefined,
61
+ },
62
+ networkProfile: {
63
+ networkInterfaces: [{ id: nic.id, primary: true }],
64
+ },
65
+ //az feature register --name EncryptionAtHost --namespace Microsoft.Compute
66
+ securityProfile: props.securityProfile ?? { encryptionAtHost: true },
67
+ osProfile: {
68
+ ...osProfile,
69
+ adminUsername: adminLogin,
70
+ adminPassword: password.value,
71
+ },
72
+ storageProfile: {
73
+ ...storageProfile,
74
+ osDisk: {
75
+ ...storageProfile.osDisk,
76
+ encryptionSettings: diskEncryption && keyEncryption
77
+ ? {
78
+ diskEncryptionKey: diskEncryption
79
+ ? {
80
+ secretUrl: diskEncryption.id,
81
+ sourceVault: {
82
+ id: vaultInfo.id,
83
+ },
84
+ }
85
+ : undefined,
86
+ keyEncryptionKey: keyEncryption
87
+ ? {
88
+ keyUrl: keyEncryption.id,
89
+ sourceVault: {
90
+ id: vaultInfo.id,
91
+ },
92
+ }
93
+ : undefined,
94
+ enabled: enableEncryption,
95
+ }
96
+ : undefined,
97
+ managedDisk: {
98
+ diskEncryptionSet: diskEncryptionSet
99
+ ? {
100
+ id: diskEncryptionSet.id,
101
+ }
102
+ : undefined,
103
+ securityProfile: {
104
+ diskEncryptionSet: diskEncryptionSet ? { id: diskEncryptionSet.id } : undefined,
105
+ securityEncryptionType: storageProfile.securityEncryptionType,
106
+ },
107
+ storageAccountType: storageProfile.storageAccountType ?? compute.StorageAccountTypes.Standard_LRS,
108
+ },
109
+ },
110
+ dataDisks: storageProfile.dataDisks
111
+ ? storageProfile.dataDisks.map((d) => ({
112
+ ...d,
113
+ managedDisk: {
114
+ diskEncryptionSet: diskEncryptionSet
115
+ ? {
116
+ id: diskEncryptionSet.id,
117
+ }
118
+ : undefined,
119
+ securityProfile: {
120
+ diskEncryptionSet: diskEncryptionSet ? { id: diskEncryptionSet.id } : undefined,
121
+ securityEncryptionType: storageProfile.securityEncryptionType,
122
+ },
123
+ storageAccountType: storageProfile.storageAccountType ?? compute.StorageAccountTypes.Standard_LRS,
124
+ },
125
+ }))
126
+ : [],
127
+ },
128
+ }, {
129
+ ...opts,
130
+ protect: lock,
131
+ parent: this,
132
+ });
133
+ this.createSchedule(vm);
134
+ this.createExtensions(vm);
135
+ if (lock)
136
+ this.lockFromDeleting(vm);
137
+ this.addSecrets({
138
+ login: adminLogin,
139
+ pass: password.value,
140
+ });
141
+ this.id = vm.id;
142
+ this.resourceName = vm.name;
143
+ this.registerOutputs();
144
+ }
145
+ getOutputs() {
146
+ return {
147
+ id: this.id,
148
+ resourceName: this.resourceName,
149
+ };
150
+ }
151
+ createNetworkInterface() {
152
+ const { rsGroup, network } = this.args;
153
+ return new nw.NetworkInterface(this.name, {
154
+ ...rsGroup,
155
+ ipConfigurations: [{ name: 'ipconfig', subnet: { id: network.subnetId }, primary: true }],
156
+ nicType: network.nicType ?? nw.NetworkInterfaceNicType.Standard,
157
+ });
158
+ }
159
+ createSchedule(vm) {
160
+ const { rsGroup, schedule } = this.args;
161
+ if (!schedule)
162
+ return undefined;
163
+ return new devtestlab.GlobalSchedule(this.name, {
164
+ ...rsGroup,
165
+ dailyRecurrence: { time: schedule.autoShutdownTime },
166
+ timeZoneId: schedule.timeZone,
167
+ status: 'Enabled',
168
+ targetResourceId: vm.id,
169
+ taskType: 'ComputeVmShutdownTask',
170
+ notificationSettings: {
171
+ status: schedule.webHook || schedule.emailNotification ? 'Enabled' : 'Disabled',
172
+ emailRecipient: schedule.emailNotification?.join(';'),
173
+ notificationLocale: 'en',
174
+ timeInMinutes: 30,
175
+ webhookUrl: schedule.webHook,
176
+ },
177
+ }, { dependsOn: vm, parent: this });
178
+ }
179
+ createExtensions(vm) {
180
+ const { rsGroup, extensions } = this.args;
181
+ if (!extensions)
182
+ return extensions;
183
+ extensions.map((ex) => new compute.VirtualMachineExtension(`${this.name}-${ex.name}`, {
184
+ ...ex,
185
+ ...rsGroup,
186
+ vmExtensionName: ex.name,
187
+ vmName: vm.name,
188
+ }, { dependsOn: vm, parent: this }));
189
+ }
190
+ }
191
+ exports.VirtualMachine = VirtualMachine;
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlydHVhbE1hY2hpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdm0vVmlydHVhbE1hY2hpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0VBQXdEO0FBQ3hELDRFQUE4RDtBQUM5RCxpRUFBbUQ7QUFFbkQsdURBQXlDO0FBQ3pDLGtDQUFnRTtBQThDaEUsTUFBYSxjQUFlLFNBQVEsNEJBQXlDO0lBQzNELEVBQUUsQ0FBd0I7SUFDMUIsWUFBWSxDQUF3QjtJQUVwRCxZQUFZLElBQVksRUFBRSxJQUF3QixFQUFFLElBQXNDO1FBQ3hGLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTFDLE1BQU0sRUFDSixPQUFPLEVBQ1Asa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsY0FBYyxFQUNkLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsSUFBSSxFQUNKLEdBQUcsS0FBSyxFQUNULEdBQUcsSUFBSSxDQUFDO1FBRVQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQSxHQUFHLElBQUksQ0FBQyxJQUFJLGFBQy9DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsS0FDekQsRUFBRSxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzVGLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMs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
@@ -0,0 +1,16 @@
1
+ import * as compute from '@pulumi/azure-native/compute';
2
+ import * as pulumi from '@pulumi/pulumi';
3
+ export declare function getAzDevOpsExtension({ protectedSettings, settings, }: {
4
+ settings: {
5
+ VSTSAccountUrl: pulumi.Input<string>;
6
+ TeamProject: pulumi.Input<string>;
7
+ DeploymentGroup: pulumi.Input<string>;
8
+ AgentName: pulumi.Input<string>;
9
+ Tags?: pulumi.Input<string>;
10
+ };
11
+ protectedSettings: {
12
+ PATToken: pulumi.Input<string>;
13
+ };
14
+ }): Omit<compute.VirtualMachineExtensionArgs, 'location' | 'resourceGroupName' | 'vmName' | 'vmExtensionName'> & {
15
+ name: string;
16
+ };
package/vm/helpers.js ADDED
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAzDevOpsExtension = getAzDevOpsExtension;
4
+ function getAzDevOpsExtension({ protectedSettings, settings, }) {
5
+ return {
6
+ name: 'azure-devops-agent',
7
+ autoUpgradeMinorVersion: true,
8
+ protectedSettings,
9
+ settings,
10
+ publisher: 'Microsoft.VisualStudio.Services',
11
+ type: 'TeamServicesAgentLinux',
12
+ typeHandlerVersion: '1.0',
13
+ };
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92bS9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0Esb0RBMEJDO0FBMUJELFNBQWdCLG9CQUFvQixDQUFDLEVBQ25DLGlCQUFpQixFQUNqQixRQUFRLEdBWVQ7SUFHQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQix1QkFBdUIsRUFBRSxJQUFJO1FBQzdCLGlCQUFpQjtRQUNqQixRQUFRO1FBQ1IsU0FBUyxFQUFFLGlDQUFpQztRQUM1QyxJQUFJLEVBQUUsd0JBQXdCO1FBQzlCLGtCQUFrQixFQUFFLEtBQUs7S0FDMUIsQ0FBQztBQUNKLENBQUMifQ==
package/vm/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './DiskEncryptionSet';
2
+ export * as vmHelpers from './helpers';
3
+ export * from './VirtualMachine';
package/vm/index.js ADDED
@@ -0,0 +1,43 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.vmHelpers = void 0;
40
+ __exportStar(require("./DiskEncryptionSet"), exports);
41
+ exports.vmHelpers = __importStar(require("./helpers"));
42
+ __exportStar(require("./VirtualMachine"), exports);
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQW9DO0FBQ3BDLHVEQUF1QztBQUN2QyxtREFBaUMifQ==
@@ -0,0 +1,44 @@
1
+ import * as cdn from '@pulumi/azure-native/cdn';
2
+ import * as pulumi from '@pulumi/pulumi';
3
+ import { BaseArgs, BaseResourceComponent } from '../base';
4
+ import * as types from '../types';
5
+ type ProfileResourceType = {
6
+ resourceName: pulumi.Input<string>;
7
+ };
8
+ type ResourceType = {
9
+ resourceName: string;
10
+ id: string;
11
+ };
12
+ export interface AzCdnArgs extends BaseArgs, types.WithResourceGroupInputs {
13
+ /** If not provided the new Cdn profile will be created */
14
+ existingProfile?: ProfileResourceType;
15
+ sku?: pulumi.Input<cdn.SkuName | string>;
16
+ /** The endpoints of the Cdn profile */
17
+ endpoint: {
18
+ /** The original endpoint of storage account */
19
+ originHost: pulumi.Input<string>;
20
+ cors?: string[];
21
+ domainNames?: string[];
22
+ securityResponseHeaders?: Record<string, string>;
23
+ };
24
+ }
25
+ export declare class AzCdn extends BaseResourceComponent<AzCdnArgs> {
26
+ profile?: pulumi.Output<ResourceType>;
27
+ readonly endpoint: pulumi.Output<ResourceType>;
28
+ readonly rsGroup: pulumi.Output<types.ResourceGroupType>;
29
+ constructor(name: string, args: AzCdnArgs, opts?: pulumi.ComponentResourceOptions);
30
+ getOutputs(): {
31
+ profile: pulumi.Output<ResourceType> | undefined;
32
+ endpoint: pulumi.Output<ResourceType>;
33
+ rsGroup: pulumi.Output<types.ResourceGroupType>;
34
+ };
35
+ private createCertAndDomains;
36
+ private createProfile;
37
+ private getEndpointRules;
38
+ private getCorsRules;
39
+ private getSecurityResponseHeaders;
40
+ private getEnforceHttpsRules;
41
+ private getIndexFileCacheRules;
42
+ private getResponseHeadersRule;
43
+ }
44
+ export {};