@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,12 @@
1
+ /**
2
+ * Formats the component resource type to ensure it follows the drunk-pulumi naming convention
3
+ * @param type - The resource type string
4
+ * @returns Formatted resource type string with drunk-pulumi prefix if not already present
5
+ */
6
+ export declare function getComponentResourceType(type: string): string;
7
+ export declare function arrayToMap<T extends {
8
+ [key: string | number]: any;
9
+ }>(array: T[], key: keyof T, transformer?: (value: T) => any): {
10
+ [key: string | number]: T;
11
+ };
12
+ export declare function recordMap<Tin extends any, Tout>(records: Record<string, Tin>, transform: (value: Tin) => Tout): Record<string, Tout>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getComponentResourceType = getComponentResourceType;
4
+ exports.arrayToMap = arrayToMap;
5
+ exports.recordMap = recordMap;
6
+ /**
7
+ * Formats the component resource type to ensure it follows the drunk-pulumi naming convention
8
+ * @param type - The resource type string
9
+ * @returns Formatted resource type string with drunk-pulumi prefix if not already present
10
+ */
11
+ function getComponentResourceType(type) {
12
+ return type.includes('drunk-pulumi') ? type : `drunk:pulumi:${type}`;
13
+ }
14
+ function arrayToMap(array, key, transformer) {
15
+ return array.reduce((acc, curr) => {
16
+ const keyValue = curr[key];
17
+ if (keyValue) {
18
+ acc[keyValue] = transformer ? transformer(curr) : curr;
19
+ }
20
+ return acc;
21
+ }, {});
22
+ }
23
+ function recordMap(records, transform) {
24
+ return Object.entries(records).reduce((acc, [name, item]) => ({
25
+ ...acc,
26
+ [name]: transform(item),
27
+ }), {});
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSw0REFFQztBQUVELGdDQVlDO0FBRUQsOEJBV0M7QUFsQ0Q7Ozs7R0FJRztBQUNILFNBQWdCLHdCQUF3QixDQUFDLElBQVk7SUFDbkQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztBQUN2RSxDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUN4QixLQUFVLEVBQ1YsR0FBWSxFQUNaLFdBQStCO0lBRS9CLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUNoQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3pELENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUEwQixDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELFNBQWdCLFNBQVMsQ0FDdkIsT0FBNEIsRUFDNUIsU0FBK0I7SUFFL0IsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FDbkMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEIsR0FBRyxHQUFHO1FBQ04sQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDO0tBQ3hCLENBQUMsRUFDRixFQUFFLENBQ0gsQ0FBQztBQUNKLENBQUMifQ==
@@ -0,0 +1,3 @@
1
+ export * from './BaseComponent';
2
+ export * from './BaseResourceComponent';
3
+ export * as baseHelpers from './helpers';
package/base/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.baseHelpers = void 0;
40
+ __exportStar(require("./BaseComponent"), exports);
41
+ __exportStar(require("./BaseResourceComponent"), exports);
42
+ exports.baseHelpers = __importStar(require("./helpers"));
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBZ0M7QUFDaEMsMERBQXdDO0FBQ3hDLHlEQUF5QyJ9
@@ -0,0 +1,26 @@
1
+ import * as pulumi from '@pulumi/pulumi';
2
+ import { BaseArgs, BaseResourceComponent } from '../base/BaseResourceComponent';
3
+ type UserInfo = {
4
+ name: string;
5
+ email: string;
6
+ };
7
+ export interface PGPGeneratorArgs extends BaseArgs {
8
+ user: pulumi.Input<UserInfo>;
9
+ passphrase?: pulumi.Input<string>;
10
+ type?: 'ecc' | 'rsa';
11
+ validDays?: pulumi.Input<number>;
12
+ }
13
+ export declare class PGPGenerator extends BaseResourceComponent<PGPGeneratorArgs> {
14
+ readonly publicKey: pulumi.Output<string>;
15
+ readonly privateKey: pulumi.Output<string>;
16
+ readonly passphrase?: pulumi.Output<string>;
17
+ readonly revocationCertificate: pulumi.Output<string>;
18
+ constructor(name: string, args: PGPGeneratorArgs, opts?: pulumi.ComponentResourceOptions);
19
+ getOutputs(): {
20
+ publicKey: pulumi.Output<string>;
21
+ privateKey: pulumi.Output<string>;
22
+ passphrase: pulumi.Output<string> | undefined;
23
+ revocationCertificate: pulumi.Output<string>;
24
+ };
25
+ }
26
+ export {};
@@ -0,0 +1,72 @@
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.PGPGenerator = void 0;
37
+ const azure_providers_1 = require("@drunk-pulumi/azure-providers");
38
+ const pulumi = __importStar(require("@pulumi/pulumi"));
39
+ const BaseResourceComponent_1 = require("../base/BaseResourceComponent");
40
+ class PGPGenerator extends BaseResourceComponent_1.BaseResourceComponent {
41
+ publicKey;
42
+ privateKey;
43
+ passphrase;
44
+ revocationCertificate;
45
+ constructor(name, args, opts) {
46
+ super('PGPGenerator', name, args, opts);
47
+ const pgp = new azure_providers_1.PGPResource(name, args, { ...opts, parent: this });
48
+ this.publicKey = pgp.publicKey;
49
+ this.privateKey = pgp.privateKey;
50
+ this.revocationCertificate = pgp.revocationCertificate;
51
+ if (args.passphrase)
52
+ this.passphrase = pulumi.secret(args.passphrase);
53
+ this.addSecrets({
54
+ publicKey: pgp.publicKey,
55
+ privateKey: pgp.privateKey,
56
+ revocationCertificate: pgp.revocationCertificate,
57
+ });
58
+ if (args.passphrase)
59
+ this.addSecrets({ passphrase: args.passphrase });
60
+ this.registerOutputs();
61
+ }
62
+ getOutputs() {
63
+ return {
64
+ publicKey: this.publicKey,
65
+ privateKey: this.privateKey,
66
+ passphrase: this.passphrase,
67
+ revocationCertificate: this.revocationCertificate,
68
+ };
69
+ }
70
+ }
71
+ exports.PGPGenerator = PGPGenerator;
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUEdQR2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9QR1BHZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUVBQTREO0FBQzVELHVEQUF5QztBQUN6Qyx5RUFBZ0Y7QUFXaEYsTUFBYSxZQUFhLFNBQVEsNkNBQXVDO0lBQ3ZELFNBQVMsQ0FBd0I7SUFDakMsVUFBVSxDQUF3QjtJQUNsQyxVQUFVLENBQXlCO0lBQ25DLHFCQUFxQixDQUF3QjtJQUU3RCxZQUFZLElBQVksRUFBRSxJQUFzQixFQUFFLElBQXNDO1FBQ3RGLEtBQUssQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV4QyxNQUFNLEdBQUcsR0FBRyxJQUFJLDZCQUFXLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRW5FLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUM7UUFDakMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQztRQUN2RCxJQUFJLElBQUksQ0FBQyxVQUFVO1lBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV0RSxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2QsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTO1lBQ3hCLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVTtZQUMxQixxQkFBcUIsRUFBRSxHQUFHLENBQUMscUJBQXFCO1NBQ2pELENBQUMsQ0FBQztRQUNILElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBRXRFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU87WUFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixxQkFBcUIsRUFBRSxJQUFJLENBQUMscUJBQXFCO1NBQ2xELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFsQ0Qsb0NBa0NDIn0=
@@ -0,0 +1,21 @@
1
+ import * as pulumi from '@pulumi/pulumi';
2
+ import * as types from '../types';
3
+ import { BaseComponent } from '../base/BaseComponent';
4
+ export interface RandomPasswordArgs extends types.WithVaultInfo {
5
+ policy?: pulumi.Input<'monthly' | 'yearly' | boolean>;
6
+ length?: pulumi.Input<number>;
7
+ options?: {
8
+ lower?: pulumi.Input<boolean>;
9
+ upper?: pulumi.Input<boolean>;
10
+ numeric?: pulumi.Input<boolean>;
11
+ special?: pulumi.Input<boolean>;
12
+ };
13
+ }
14
+ export declare class RandomPassword extends BaseComponent<RandomPasswordArgs> {
15
+ readonly value: pulumi.Output<string>;
16
+ constructor(name: string, args?: RandomPasswordArgs, opts?: pulumi.ComponentResourceOptions);
17
+ getOutputs(): {
18
+ value: pulumi.Output<string>;
19
+ };
20
+ private generateKeepKey;
21
+ }
@@ -0,0 +1,84 @@
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.RandomPassword = void 0;
37
+ const random = __importStar(require("@pulumi/random"));
38
+ const helpers_1 = require("../base/helpers");
39
+ const VaultSecret_1 = require("../vault/VaultSecret");
40
+ const BaseComponent_1 = require("../base/BaseComponent");
41
+ class RandomPassword extends BaseComponent_1.BaseComponent {
42
+ value;
43
+ constructor(name, args = { length: 50, policy: 'yearly' }, opts) {
44
+ super((0, helpers_1.getComponentResourceType)('RandomPassword'), name, args, opts);
45
+ const { vaultInfo } = args;
46
+ const keepKey = this.generateKeepKey();
47
+ const options = args.options || {
48
+ lower: true,
49
+ upper: true,
50
+ numeric: true,
51
+ special: true,
52
+ };
53
+ const randomPass = new random.RandomPassword(name, {
54
+ keepers: { keepKey },
55
+ length: args.length || 50,
56
+ minLower: 2,
57
+ minUpper: 2,
58
+ minNumeric: 2,
59
+ minSpecial: options.special ? 2 : 0,
60
+ ...options,
61
+ //Exclude some special characters that are not accepted by XML and SQLServer.
62
+ overrideSpecial: options.special == false ? '' : '#%&*+-/:<>?^_|~',
63
+ }, { ...opts, parent: this });
64
+ if (vaultInfo) {
65
+ new VaultSecret_1.VaultSecret(name, { vaultInfo, value: randomPass.result, contentType: 'RandomPassword' }, { dependsOn: randomPass, parent: this });
66
+ }
67
+ this.value = randomPass.result;
68
+ this.registerOutputs(this.getOutputs());
69
+ }
70
+ getOutputs() {
71
+ return {
72
+ value: this.value,
73
+ };
74
+ }
75
+ generateKeepKey() {
76
+ return this.args.policy === 'monthly'
77
+ ? `${new Date().getMonth()}.${new Date().getFullYear()}`
78
+ : this.args.policy === 'yearly'
79
+ ? `${new Date().getFullYear()}`
80
+ : this.name;
81
+ }
82
+ }
83
+ exports.RandomPassword = RandomPassword;
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFuZG9tUGFzc3dvcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbW9uL1JhbmRvbVBhc3N3b3JkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHVEQUF5QztBQUN6Qyw2Q0FBMkQ7QUFFM0Qsc0RBQW1EO0FBQ25ELHlEQUFzRDtBQWF0RCxNQUFhLGNBQWUsU0FBUSw2QkFBaUM7SUFDbkQsS0FBSyxDQUF3QjtJQUU3QyxZQUNFLElBQVksRUFDWixPQUEyQixFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUMzRCxJQUFzQztRQUV0QyxLQUFLLENBQUMsSUFBQSxrQ0FBd0IsRUFBQyxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMzQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSTtZQUM5QixLQUFLLEVBQUUsSUFBSTtZQUNYLEtBQUssRUFBRSxJQUFJO1lBQ1gsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQzFDLElBQUksRUFDSjtZQUNFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRTtZQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFO1lBQ3pCLFFBQVEsRUFBRSxDQUFDO1lBQ1gsUUFBUSxFQUFFLENBQUM7WUFDWCxVQUFVLEVBQUUsQ0FBQztZQUNiLFVBQVUsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsR0FBRyxPQUFPO1lBQ1YsNkVBQTZFO1lBQzdFLGVBQWUsRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUI7U0FDbkUsRUFDRCxFQUFFLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FDMUIsQ0FBQztRQUVGLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLHlCQUFXLENBQ2IsSUFBSSxFQUNKLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxFQUN0RSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUN4QyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTztZQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFDO0lBQ0osQ0FBQztJQUNPLGVBQWU7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTO1lBQ25DLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN4RCxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUTtnQkFDL0IsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDL0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNGO0FBMURELHdDQTBEQyJ9
@@ -0,0 +1,20 @@
1
+ import * as pulumi from '@pulumi/pulumi';
2
+ import { BaseComponent } from '../base/BaseComponent';
3
+ import * as types from '../types';
4
+ export interface RandomStringArgs extends types.WithVaultInfo {
5
+ type: 'string' | 'uuId';
6
+ length?: pulumi.Input<number>;
7
+ options?: {
8
+ lower?: pulumi.Input<boolean>;
9
+ upper?: pulumi.Input<boolean>;
10
+ numeric?: pulumi.Input<boolean>;
11
+ special?: pulumi.Input<boolean>;
12
+ };
13
+ }
14
+ export declare class RandomString extends BaseComponent<RandomStringArgs> {
15
+ readonly value: pulumi.Output<string>;
16
+ constructor(name: string, args?: RandomStringArgs, opts?: pulumi.ComponentResourceOptions);
17
+ getOutputs(): {
18
+ value: pulumi.Output<string>;
19
+ };
20
+ }
@@ -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.RandomString = void 0;
37
+ const random = __importStar(require("@pulumi/random"));
38
+ const BaseComponent_1 = require("../base/BaseComponent");
39
+ const helpers_1 = require("../base/helpers");
40
+ const VaultSecret_1 = require("../vault/VaultSecret");
41
+ class RandomString extends BaseComponent_1.BaseComponent {
42
+ value;
43
+ constructor(name, args = { length: 25, type: 'string' }, opts) {
44
+ super((0, helpers_1.getComponentResourceType)('RandomString'), name, args, opts);
45
+ const options = args.options || {
46
+ lower: true,
47
+ upper: true,
48
+ numeric: true,
49
+ special: false,
50
+ };
51
+ const randomString = args.type == 'string'
52
+ ? new random.RandomString(name, {
53
+ length: args.length || 25,
54
+ minLower: 2,
55
+ minUpper: 2,
56
+ minNumeric: 2,
57
+ minSpecial: options.special ? 2 : 0,
58
+ ...options,
59
+ }, { ...opts, parent: this })
60
+ : new random.RandomUuid(name, {}, opts);
61
+ if (args.vaultInfo) {
62
+ new VaultSecret_1.VaultSecret(name, { vaultInfo: args.vaultInfo, value: randomString.result, contentType: 'RandomString' }, { dependsOn: randomString, parent: this });
63
+ }
64
+ this.value = randomString.result;
65
+ this.registerOutputs(this.getOutputs());
66
+ }
67
+ getOutputs() {
68
+ return {
69
+ value: this.value,
70
+ };
71
+ }
72
+ }
73
+ exports.RandomString = RandomString;
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFuZG9tU3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9SYW5kb21TdHJpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsdURBQXlDO0FBQ3pDLHlEQUFzRDtBQUN0RCw2Q0FBMkQ7QUFFM0Qsc0RBQW1EO0FBYW5ELE1BQWEsWUFBYSxTQUFRLDZCQUErQjtJQUMvQyxLQUFLLENBQXdCO0lBRTdDLFlBQ0UsSUFBWSxFQUNaLE9BQXlCLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQ3ZELElBQXNDO1FBRXRDLEtBQUssQ0FBQyxJQUFBLGtDQUF3QixFQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFbEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSTtZQUM5QixLQUFLLEVBQUUsSUFBSTtZQUNYLEtBQUssRUFBRSxJQUFJO1lBQ1gsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsS0FBSztTQUNmLENBQUM7UUFFRixNQUFNLFlBQVksR0FDaEIsSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRO1lBQ25CLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQ3JCLElBQUksRUFDSjtnQkFDRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFO2dCQUN6QixRQUFRLEVBQUUsQ0FBQztnQkFDWCxRQUFRLEVBQUUsQ0FBQztnQkFDWCxVQUFVLEVBQUUsQ0FBQztnQkFDYixVQUFVLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxHQUFHLE9BQU87YUFDWCxFQUNELEVBQUUsR0FBRyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUMxQjtZQUNILENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU1QyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLHlCQUFXLENBQ2IsSUFBSSxFQUNKLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxFQUN0RixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUMxQyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTztZQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbERELG9DQWtEQyJ9
@@ -0,0 +1,9 @@
1
+ import * as authorization from '@pulumi/azure-native/authorization';
2
+ import * as pulumi from '@pulumi/pulumi';
3
+ export interface ResourceLockerArgs {
4
+ resource: pulumi.CustomResource;
5
+ level?: authorization.LockLevel;
6
+ }
7
+ export declare class ResourceLocker extends pulumi.ComponentResource<ResourceLockerArgs> {
8
+ constructor(name: string, args: ResourceLockerArgs, opts?: pulumi.ComponentResourceOptions);
9
+ }
@@ -0,0 +1,52 @@
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.ResourceLocker = void 0;
37
+ const authorization = __importStar(require("@pulumi/azure-native/authorization"));
38
+ const pulumi = __importStar(require("@pulumi/pulumi"));
39
+ class ResourceLocker extends pulumi.ComponentResource {
40
+ constructor(name, args, opts) {
41
+ if (!args.level)
42
+ args.level = authorization.LockLevel.CanNotDelete;
43
+ super('drunk-pulumi:index:ResourceLocker', name, args, opts);
44
+ new authorization.ManagementLockByScope(name, {
45
+ level: args.level,
46
+ scope: args.resource.id,
47
+ notes: `Lock ${name} from ${args.level}`,
48
+ }, { ...opts, parent: this });
49
+ }
50
+ }
51
+ exports.ResourceLocker = ResourceLocker;
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2VMb2NrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbW9uL1Jlc291cmNlTG9ja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtGQUFvRTtBQUNwRSx1REFBeUM7QUFPekMsTUFBYSxjQUFlLFNBQVEsTUFBTSxDQUFDLGlCQUFxQztJQUM5RSxZQUFZLElBQVksRUFBRSxJQUF3QixFQUFFLElBQXNDO1FBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7UUFDbkUsS0FBSyxDQUFDLG1DQUFtQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFN0QsSUFBSSxhQUFhLENBQUMscUJBQXFCLENBQ3JDLElBQUksRUFDSjtZQUNFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3ZCLEtBQUssRUFBRSxRQUFRLElBQUksU0FBUyxJQUFJLENBQUMsS0FBSyxFQUFFO1NBQ3pDLEVBQ0QsRUFBRSxHQUFHLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQzFCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFmRCx3Q0FlQyJ9
@@ -0,0 +1,20 @@
1
+ import * as resources from '@pulumi/azure-native/resources';
2
+ import * as pulumi from '@pulumi/pulumi';
3
+ import { RsRoleDefinitionType } from '../azAd';
4
+ import { BaseArgs, BaseResourceComponent } from '../base/BaseResourceComponent';
5
+ export interface RsGroupArgs extends BaseArgs, Omit<resources.ResourceGroupArgs, 'managedBy' | 'location'> {
6
+ /** if the role definition is not provided the readonly role will be added to this group by default */
7
+ roleAssignments?: RsRoleDefinitionType[];
8
+ lock?: boolean;
9
+ }
10
+ export declare class RsGroup extends BaseResourceComponent<RsGroupArgs> {
11
+ readonly id: pulumi.Output<string>;
12
+ readonly location: pulumi.Output<string>;
13
+ readonly resourceGroupName: pulumi.Output<string>;
14
+ constructor(name: string, args?: RsGroupArgs, opts?: pulumi.ComponentResourceOptions);
15
+ getOutputs(): {
16
+ location: pulumi.Output<string>;
17
+ resourceGroupName: pulumi.Output<string>;
18
+ };
19
+ private createRoleAssignment;
20
+ }
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.RsGroup = void 0;
37
+ const resources = __importStar(require("@pulumi/azure-native/resources"));
38
+ const azAd_1 = require("../azAd");
39
+ const BaseResourceComponent_1 = require("../base/BaseResourceComponent");
40
+ class RsGroup extends BaseResourceComponent_1.BaseResourceComponent {
41
+ id;
42
+ location;
43
+ resourceGroupName;
44
+ constructor(name, args = {}, opts) {
45
+ super('RsGroup', name, args, opts);
46
+ const group = new resources.ResourceGroup(name, args, {
47
+ ...opts,
48
+ parent: this,
49
+ });
50
+ this.location = group.location;
51
+ this.resourceGroupName = group.name;
52
+ this.id = group.id;
53
+ this.createRoleAssignment();
54
+ if (args.lock)
55
+ this.lockFromDeleting(group);
56
+ this.registerOutputs();
57
+ }
58
+ getOutputs() {
59
+ return {
60
+ location: this.location,
61
+ resourceGroupName: this.resourceGroupName,
62
+ };
63
+ }
64
+ createRoleAssignment() {
65
+ const { groupRoles, roleAssignments } = this.args;
66
+ if (!roleAssignments || !groupRoles)
67
+ return;
68
+ const createRoles = (type, groupId, roles) => {
69
+ roles.forEach((role) => new azAd_1.RoleAssignment(`${this.name}-${type}-${role.toLowerCase().replace(/\s+/g, '-')}`, {
70
+ principalId: groupId,
71
+ principalType: 'Group',
72
+ roleName: role,
73
+ scope: this.id,
74
+ }, { parent: this }));
75
+ };
76
+ const roles = roleAssignments ?? [azAd_1.rsRoleDefinitions.rsGroup.getReadOnly()];
77
+ roles.forEach((role) => {
78
+ createRoles('readOnly', groupRoles.readOnly.objectId, role.readOnly);
79
+ createRoles('admin', groupRoles.admin.objectId, role.admin);
80
+ createRoles('contributor', groupRoles.contributor.objectId, role.contributor);
81
+ });
82
+ }
83
+ }
84
+ exports.RsGroup = RsGroup;
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnNHcm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vUnNHcm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwRUFBNEQ7QUFFNUQsa0NBQWtGO0FBQ2xGLHlFQUFnRjtBQVNoRixNQUFhLE9BQVEsU0FBUSw2Q0FBa0M7SUFDN0MsRUFBRSxDQUF3QjtJQUMxQixRQUFRLENBQXdCO0lBQ2hDLGlCQUFpQixDQUF3QjtJQUV6RCxZQUFZLElBQVksRUFBRSxPQUFvQixFQUFFLEVBQUUsSUFBc0M7UUFDdEYsS0FBSyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRW5DLE1BQU0sS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3BELEdBQUcsSUFBSTtZQUNQLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxJQUFJO1lBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtTQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixNQUFNLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbEQsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBRTVDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBMEIsRUFBRSxPQUE4QixFQUFFLEtBQWUsRUFBRSxFQUFFO1lBQ2xHLEtBQUssQ0FBQyxPQUFPLENBQ1gsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNQLElBQUkscUJBQWMsQ0FDaEIsR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxFQUNqRTtnQkFDRSxXQUFXLEVBQUUsT0FBTztnQkFDcEIsYUFBYSxFQUFFLE9BQU87Z0JBQ3RCLFFBQVEsRUFBRSxJQUFJO2dCQUNkLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRTthQUNmLEVBQ0QsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQ2pCLENBQ0osQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVGLE1BQU0sS0FBSyxHQUFHLGVBQWUsSUFBSSxDQUFDLHdCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRTNFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNyQixXQUFXLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyRSxXQUFXLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1RCxXQUFXLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTFERCwwQkEwREMifQ==
@@ -0,0 +1,17 @@
1
+ import * as pulumi from '@pulumi/pulumi';
2
+ import { BaseArgs, BaseResourceComponent } from '../base';
3
+ export interface SshGeneratorArgs extends BaseArgs {
4
+ /** if vaultInfo is provided this password will be added into Key vault together with public key and private key */
5
+ password: pulumi.Input<string>;
6
+ }
7
+ export declare class SshGenerator extends BaseResourceComponent<SshGeneratorArgs> {
8
+ readonly publicKey: pulumi.Output<string>;
9
+ readonly privateKey: pulumi.Output<string>;
10
+ readonly password?: pulumi.Output<string>;
11
+ constructor(name: string, args: SshGeneratorArgs, opts?: pulumi.ComponentResourceOptions);
12
+ getOutputs(): {
13
+ publicKey: pulumi.Output<string>;
14
+ privateKey: pulumi.Output<string>;
15
+ password: pulumi.Output<string> | undefined;
16
+ };
17
+ }