@drunk-pulumi/azure-components 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/PulumiPlugin.yaml +1 -0
  2. package/README.md +1 -0
  3. package/ResourceBuilder.d.ts +54 -0
  4. package/ResourceBuilder.js +71 -0
  5. package/aks/AzKubernetes.d.ts +55 -0
  6. package/aks/AzKubernetes.js +288 -0
  7. package/aks/ContainerRegistry.d.ts +19 -0
  8. package/aks/ContainerRegistry.js +119 -0
  9. package/aks/helpers.d.ts +6 -0
  10. package/aks/helpers.js +52 -0
  11. package/aks/index.d.ts +3 -0
  12. package/aks/index.js +43 -0
  13. package/app/AppCert.d.ts +15 -0
  14. package/app/AppCert.js +74 -0
  15. package/app/AppConfig.d.ts +18 -0
  16. package/app/AppConfig.js +124 -0
  17. package/app/AppService.d.ts +69 -0
  18. package/app/AppService.js +122 -0
  19. package/app/IoTHub.d.ts +15 -0
  20. package/app/IoTHub.js +80 -0
  21. package/app/LogicApp.d.ts +19 -0
  22. package/app/LogicApp.js +77 -0
  23. package/app/SignalR.d.ts +45 -0
  24. package/app/SignalR.js +125 -0
  25. package/app/index.d.ts +6 -0
  26. package/app/index.js +23 -0
  27. package/azAd/AppRegistration.d.ts +52 -0
  28. package/azAd/AppRegistration.js +165 -0
  29. package/azAd/AzRole.d.ts +14 -0
  30. package/azAd/AzRole.js +72 -0
  31. package/azAd/CustomRoles.d.ts +10 -0
  32. package/azAd/CustomRoles.js +73 -0
  33. package/azAd/GroupRole.d.ts +29 -0
  34. package/azAd/GroupRole.js +107 -0
  35. package/azAd/RoleAssignment.d.ts +15 -0
  36. package/azAd/RoleAssignment.js +63 -0
  37. package/azAd/UserAssignedIdentity.d.ts +17 -0
  38. package/azAd/UserAssignedIdentity.js +76 -0
  39. package/azAd/helpers/graphBuiltIn.d.ts +14 -0
  40. package/azAd/helpers/graphBuiltIn.js +5134 -0
  41. package/azAd/helpers/index.d.ts +3 -0
  42. package/azAd/helpers/index.js +39 -0
  43. package/azAd/helpers/rolesBuiltIn.d.ts +90 -0
  44. package/azAd/helpers/rolesBuiltIn.js +18601 -0
  45. package/azAd/helpers/rsRoleDefinition.d.ts +62 -0
  46. package/azAd/helpers/rsRoleDefinition.js +120 -0
  47. package/azAd/index.d.ts +7 -0
  48. package/azAd/index.js +24 -0
  49. package/base/BaseComponent.d.ts +53 -0
  50. package/base/BaseComponent.js +98 -0
  51. package/base/BaseResourceComponent.d.ts +108 -0
  52. package/base/BaseResourceComponent.js +180 -0
  53. package/base/helpers.d.ts +12 -0
  54. package/base/helpers.js +29 -0
  55. package/base/index.d.ts +3 -0
  56. package/base/index.js +43 -0
  57. package/common/PGPGenerator.d.ts +26 -0
  58. package/common/PGPGenerator.js +72 -0
  59. package/common/RandomPassword.d.ts +21 -0
  60. package/common/RandomPassword.js +84 -0
  61. package/common/RandomString.d.ts +20 -0
  62. package/common/RandomString.js +74 -0
  63. package/common/ResourceLocker.d.ts +9 -0
  64. package/common/ResourceLocker.js +52 -0
  65. package/common/RsGroup.d.ts +20 -0
  66. package/common/RsGroup.js +85 -0
  67. package/common/SshGenerator.d.ts +17 -0
  68. package/common/SshGenerator.js +66 -0
  69. package/common/index.d.ts +5 -0
  70. package/common/index.js +22 -0
  71. package/database/AzSql.d.ts +71 -0
  72. package/database/AzSql.js +283 -0
  73. package/database/MySql.d.ts +35 -0
  74. package/database/MySql.js +181 -0
  75. package/database/Postgres.d.ts +32 -0
  76. package/database/Postgres.js +171 -0
  77. package/database/Redis.d.ts +26 -0
  78. package/database/Redis.js +125 -0
  79. package/database/helpers.d.ts +7 -0
  80. package/database/helpers.js +52 -0
  81. package/database/index.d.ts +5 -0
  82. package/database/index.js +45 -0
  83. package/helpers/Location/LocationBuiltIn.d.ts +6 -0
  84. package/helpers/Location/LocationBuiltIn.js +493 -0
  85. package/helpers/Location/index.d.ts +3 -0
  86. package/helpers/Location/index.js +25 -0
  87. package/helpers/autoTags.d.ts +1 -0
  88. package/helpers/autoTags.js +27 -0
  89. package/helpers/azureEnv.d.ts +21 -0
  90. package/helpers/azureEnv.js +102 -0
  91. package/helpers/configHelper.d.ts +5 -0
  92. package/helpers/configHelper.js +54 -0
  93. package/helpers/index.d.ts +4 -0
  94. package/helpers/index.js +41 -0
  95. package/helpers/rsHelpers.d.ts +18 -0
  96. package/helpers/rsHelpers.js +92 -0
  97. package/helpers/stackEnv.d.ts +4 -0
  98. package/helpers/stackEnv.js +54 -0
  99. package/index.d.ts +14 -0
  100. package/index.js +53 -0
  101. package/logs/Logs.d.ts +48 -0
  102. package/logs/Logs.js +154 -0
  103. package/logs/helpers.d.ts +1 -0
  104. package/logs/helpers.js +38 -0
  105. package/logs/index.d.ts +1 -0
  106. package/logs/index.js +18 -0
  107. package/package.json +34 -0
  108. package/services/Automation.d.ts +16 -0
  109. package/services/Automation.js +85 -0
  110. package/services/AzSearch.d.ts +20 -0
  111. package/services/AzSearch.js +113 -0
  112. package/services/ServiceBus.d.ts +42 -0
  113. package/services/ServiceBus.js +256 -0
  114. package/services/index.d.ts +3 -0
  115. package/services/index.js +20 -0
  116. package/storage/StorageAccount.d.ts +53 -0
  117. package/storage/StorageAccount.js +261 -0
  118. package/storage/helpers.d.ts +24 -0
  119. package/storage/helpers.js +89 -0
  120. package/storage/index.d.ts +2 -0
  121. package/storage/index.js +42 -0
  122. package/types.d.ts +125 -0
  123. package/types.js +3 -0
  124. package/vault/EncryptionKey.d.ts +21 -0
  125. package/vault/EncryptionKey.js +73 -0
  126. package/vault/KeyVault.d.ts +31 -0
  127. package/vault/KeyVault.js +110 -0
  128. package/vault/VaultSecret.d.ts +23 -0
  129. package/vault/VaultSecret.js +72 -0
  130. package/vault/VaultSecrets.d.ts +25 -0
  131. package/vault/VaultSecrets.js +31 -0
  132. package/vault/helpers.d.ts +1 -0
  133. package/vault/helpers.js +13 -0
  134. package/vault/index.d.ts +5 -0
  135. package/vault/index.js +45 -0
  136. package/vm/DiskEncryptionSet.d.ts +16 -0
  137. package/vm/DiskEncryptionSet.js +74 -0
  138. package/vm/VirtualMachine.d.ts +45 -0
  139. package/vm/VirtualMachine.js +192 -0
  140. package/vm/helpers.d.ts +16 -0
  141. package/vm/helpers.js +15 -0
  142. package/vm/index.d.ts +3 -0
  143. package/vm/index.js +43 -0
  144. package/vnet/AzCdn.d.ts +44 -0
  145. package/vnet/AzCdn.js +276 -0
  146. package/vnet/Basion.d.ts +19 -0
  147. package/vnet/Basion.js +78 -0
  148. package/vnet/DnsZone.d.ts +36 -0
  149. package/vnet/DnsZone.js +113 -0
  150. package/vnet/Firewall.d.ts +53 -0
  151. package/vnet/Firewall.js +136 -0
  152. package/vnet/FirewallPolicies/FirewallPolicyBuilder.d.ts +18 -0
  153. package/vnet/FirewallPolicies/FirewallPolicyBuilder.js +91 -0
  154. package/vnet/FirewallPolicies/commonPolicies.d.ts +10 -0
  155. package/vnet/FirewallPolicies/commonPolicies.js +55 -0
  156. package/vnet/FirewallPolicies/index.d.ts +0 -0
  157. package/vnet/FirewallPolicies/index.js +2 -0
  158. package/vnet/IpAddresses.d.ts +36 -0
  159. package/vnet/IpAddresses.js +74 -0
  160. package/vnet/NetworkPeering.d.ts +21 -0
  161. package/vnet/NetworkPeering.js +85 -0
  162. package/vnet/PrivateDnsZone.d.ts +38 -0
  163. package/vnet/PrivateDnsZone.js +111 -0
  164. package/vnet/PrivateEndpoint.d.ts +43 -0
  165. package/vnet/PrivateEndpoint.js +181 -0
  166. package/vnet/RouteTable.d.ts +22 -0
  167. package/vnet/RouteTable.js +75 -0
  168. package/vnet/VirtualNetwork.d.ts +99 -0
  169. package/vnet/VirtualNetwork.js +311 -0
  170. package/vnet/VpnGateway.d.ts +18 -0
  171. package/vnet/VpnGateway.js +90 -0
  172. package/vnet/helpers.d.ts +16 -0
  173. package/vnet/helpers.js +47 -0
  174. package/vnet/index.d.ts +13 -0
  175. package/vnet/index.js +53 -0
  176. package/vnet/securityRules/SecurityRuleBuilder.d.ts +12 -0
  177. package/vnet/securityRules/SecurityRuleBuilder.js +55 -0
  178. package/vnet/securityRules/commonRules.d.ts +9 -0
  179. package/vnet/securityRules/commonRules.js +94 -0
  180. package/vnet/securityRules/index.d.ts +2 -0
  181. package/vnet/securityRules/index.js +19 -0
package/aks/helpers.js ADDED
@@ -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.getAksConfig = exports.aksRequiredOutboundPorts = void 0;
37
+ const ccs = __importStar(require("@pulumi/azure-native/containerservice"));
38
+ exports.aksRequiredOutboundPorts = ['1194', '9000', '123', '53', '80', '443'];
39
+ const getAksConfig = async ({ resourceName, resourceGroupName, disableLocalAccounts, }) => {
40
+ const aks = disableLocalAccounts
41
+ ? await ccs.listManagedClusterUserCredentials({
42
+ resourceName,
43
+ resourceGroupName,
44
+ })
45
+ : await ccs.listManagedClusterAdminCredentials({
46
+ resourceName,
47
+ resourceGroupName,
48
+ });
49
+ return Buffer.from(aks.kubeconfigs[0].value, 'base64').toString('utf8');
50
+ };
51
+ exports.getAksConfig = getAksConfig;
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ha3MvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyRUFBNkQ7QUFFaEQsUUFBQSx3QkFBd0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFNUUsTUFBTSxZQUFZLEdBQUcsS0FBSyxFQUFFLEVBQ2pDLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEdBS3JCLEVBQW1CLEVBQUU7SUFDcEIsTUFBTSxHQUFHLEdBQUcsb0JBQW9CO1FBQzlCLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQztZQUMxQyxZQUFZO1lBQ1osaUJBQWlCO1NBQ2xCLENBQUM7UUFDSixDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsa0NBQWtDLENBQUM7WUFDM0MsWUFBWTtZQUNaLGlCQUFpQjtTQUNsQixDQUFDLENBQUM7SUFFUCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFFLENBQUMsQ0FBQztBQXBCVyxRQUFBLFlBQVksZ0JBb0J2QiJ9
package/aks/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './AzKubernetes';
2
+ export * from './ContainerRegistry';
3
+ export * as aksHelpers from './helpers';
package/aks/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.aksHelpers = void 0;
40
+ __exportStar(require("./AzKubernetes"), exports);
41
+ __exportStar(require("./ContainerRegistry"), exports);
42
+ exports.aksHelpers = __importStar(require("./helpers"));
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWtzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUErQjtBQUMvQixzREFBb0M7QUFDcEMsd0RBQXdDIn0=
@@ -0,0 +1,15 @@
1
+ import * as cert from '@pulumi/azure-native/certificateregistration';
2
+ import * as pulumi from '@pulumi/pulumi';
3
+ import { BaseResourceComponent, CommonBaseArgs } from '../base';
4
+ export interface AppCertArgs extends CommonBaseArgs, Pick<cert.AppServiceCertificateOrderArgs, 'productType' | 'keySize'> {
5
+ domain: string;
6
+ }
7
+ export declare class AppCert extends BaseResourceComponent<AppCertArgs> {
8
+ readonly id: pulumi.Output<string>;
9
+ readonly resourceName: pulumi.Output<string>;
10
+ constructor(name: string, args: AppCertArgs, opts?: pulumi.ComponentResourceOptions);
11
+ getOutputs(): {
12
+ id: pulumi.Output<string>;
13
+ resourceName: pulumi.Output<string>;
14
+ };
15
+ }
package/app/AppCert.js ADDED
@@ -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.AppCert = void 0;
37
+ const cert = __importStar(require("@pulumi/azure-native/certificateregistration"));
38
+ const base_1 = require("../base");
39
+ class AppCert extends base_1.BaseResourceComponent {
40
+ id;
41
+ resourceName;
42
+ constructor(name, args, opts) {
43
+ super('AppCert', name, args, opts);
44
+ const appCert = new cert.AppServiceCertificateOrder(name, {
45
+ ...args.rsGroup,
46
+ location: 'global',
47
+ productType: args.productType,
48
+ autoRenew: true,
49
+ distinguishedName: `CN=*.${args.domain}`,
50
+ keySize: args.keySize ?? 2048,
51
+ validityInYears: 1,
52
+ }, { ...opts, parent: this });
53
+ if (args.vaultInfo) {
54
+ new cert.AppServiceCertificateOrderCertificate(this.name, {
55
+ ...args.rsGroup,
56
+ certificateOrderName: appCert.name,
57
+ location: 'global',
58
+ keyVaultSecretName: name,
59
+ keyVaultId: args.vaultInfo.id,
60
+ }, { dependsOn: appCert, parent: this });
61
+ }
62
+ this.id = appCert.id;
63
+ this.resourceName = appCert.name;
64
+ this.registerOutputs();
65
+ }
66
+ getOutputs() {
67
+ return {
68
+ id: this.id,
69
+ resourceName: this.resourceName,
70
+ };
71
+ }
72
+ }
73
+ exports.AppCert = AppCert;
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwQ2VydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcHAvQXBwQ2VydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtRkFBcUU7QUFFckUsa0NBQWdFO0FBUWhFLE1BQWEsT0FBUSxTQUFRLDRCQUFrQztJQUM3QyxFQUFFLENBQXdCO0lBQzFCLFlBQVksQ0FBd0I7SUFFcEQsWUFBWSxJQUFZLEVBQUUsSUFBaUIsRUFBRSxJQUFzQztRQUNqRixLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsMEJBQTBCLENBQ2pELElBQUksRUFDSjtZQUNFLEdBQUcsSUFBSSxDQUFDLE9BQU87WUFDZixRQUFRLEVBQUUsUUFBUTtZQUNsQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsU0FBUyxFQUFFLElBQUk7WUFDZixpQkFBaUIsRUFBRSxRQUFRLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDeEMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSTtZQUM3QixlQUFlLEVBQUUsQ0FBQztTQUNuQixFQUNELEVBQUUsR0FBRyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUMxQixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxJQUFJLENBQUMscUNBQXFDLENBQzVDLElBQUksQ0FBQyxJQUFJLEVBQ1Q7Z0JBQ0UsR0FBRyxJQUFJLENBQUMsT0FBTztnQkFDZixvQkFBb0IsRUFBRSxPQUFPLENBQUMsSUFBSTtnQkFDbEMsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLGtCQUFrQixFQUFFLElBQUk7Z0JBQ3hCLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7YUFDOUIsRUFDRCxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUNyQyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFFakMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNoQyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBL0NELDBCQStDQyJ9
@@ -0,0 +1,18 @@
1
+ import * as appConfig from '@pulumi/azure-native/appconfiguration';
2
+ import * as pulumi from '@pulumi/pulumi';
3
+ import { BaseResourceComponent, CommonBaseArgs } from '../base';
4
+ import * as types from '../types';
5
+ export interface AppConfigArgs extends CommonBaseArgs, types.WithEncryptionEnabler, types.WithUserAssignedIdentity, Pick<appConfig.ConfigurationStoreArgs, 'dataPlaneProxy' | 'disableLocalAuth' | 'enablePurgeProtection' | 'softDeleteRetentionInDays'> {
6
+ network?: Pick<types.NetworkArgs, 'publicNetworkAccess' | 'privateLink'>;
7
+ }
8
+ export declare class AppConfig extends BaseResourceComponent<AppConfigArgs> {
9
+ readonly id: pulumi.Output<string>;
10
+ readonly resourceName: pulumi.Output<string>;
11
+ constructor(name: string, args: AppConfigArgs, opts?: pulumi.ComponentResourceOptions);
12
+ getOutputs(): {
13
+ id: pulumi.Output<string>;
14
+ resourceName: pulumi.Output<string>;
15
+ };
16
+ private createPrivateLink;
17
+ private createSecrets;
18
+ }
@@ -0,0 +1,124 @@
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.AppConfig = void 0;
37
+ const appConfig = __importStar(require("@pulumi/azure-native/appconfiguration"));
38
+ const base_1 = require("../base");
39
+ const vault = __importStar(require("../vault"));
40
+ const PrivateEndpoint_1 = require("../vnet/PrivateEndpoint");
41
+ class AppConfig extends base_1.BaseResourceComponent {
42
+ id;
43
+ resourceName;
44
+ constructor(name, args, opts) {
45
+ super('AppConfig', name, args, opts);
46
+ const { rsGroup, groupRoles, defaultUAssignedId, enableEncryption, vaultInfo, network, ...props } = args;
47
+ const encryptionKey = args.enableEncryption ? this.getEncryptionKey() : undefined;
48
+ const azConfig = new appConfig.ConfigurationStore(name, {
49
+ ...args.rsGroup,
50
+ ...props,
51
+ sku: { name: 'Standard' },
52
+ publicNetworkAccess: !network?.publicNetworkAccess
53
+ ? appConfig.PublicNetworkAccess.Enabled
54
+ : network.privateLink
55
+ ? appConfig.PublicNetworkAccess.Disabled
56
+ : appConfig.PublicNetworkAccess.Enabled,
57
+ identity: {
58
+ type: defaultUAssignedId
59
+ ? appConfig.IdentityType.SystemAssigned_UserAssigned
60
+ : appConfig.IdentityType.SystemAssigned,
61
+ userAssignedIdentities: defaultUAssignedId ? [defaultUAssignedId.id] : undefined,
62
+ },
63
+ encryption: encryptionKey && defaultUAssignedId
64
+ ? {
65
+ keyVaultProperties: {
66
+ identityClientId: defaultUAssignedId.clientId,
67
+ keyIdentifier: encryptionKey.urlWithoutVersion,
68
+ },
69
+ }
70
+ : undefined,
71
+ }, {
72
+ ...opts,
73
+ parent: this,
74
+ });
75
+ this.createPrivateLink(azConfig);
76
+ this.createSecrets(azConfig);
77
+ this.id = azConfig.id;
78
+ this.resourceName = azConfig.name;
79
+ this.registerOutputs();
80
+ }
81
+ getOutputs() {
82
+ return {
83
+ id: this.id,
84
+ resourceName: this.resourceName,
85
+ };
86
+ }
87
+ createPrivateLink(azConfig) {
88
+ const { rsGroup, network } = this.args;
89
+ if (!network?.privateLink)
90
+ return;
91
+ return new PrivateEndpoint_1.PrivateEndpoint(this.name, { ...network.privateLink, resourceInfo: azConfig, rsGroup, type: 'azConfig' }, { dependsOn: azConfig, parent: this });
92
+ }
93
+ createSecrets(azConfig) {
94
+ const { rsGroup, vaultInfo, disableLocalAuth } = this.args;
95
+ if (!vaultInfo || disableLocalAuth)
96
+ return;
97
+ azConfig.id.apply(async (id) => {
98
+ if (!id)
99
+ return;
100
+ //Load the keys from Azure
101
+ const keys = await appConfig.listConfigurationStoreKeysOutput({
102
+ configStoreName: azConfig.name,
103
+ ...rsGroup,
104
+ });
105
+ if (keys.value) {
106
+ return new vault.VaultSecrets(this.name, {
107
+ vaultInfo,
108
+ secrets: {
109
+ [`${this.name}-primary-conn`]: {
110
+ value: keys.apply((v) => v.value[0].value),
111
+ contentType: 'AppConfig primary connectionString',
112
+ },
113
+ [`${this.name}-secondary-conn`]: {
114
+ value: keys.apply((v) => v.value[1].value),
115
+ contentType: 'AppConfig secondary connectionString',
116
+ },
117
+ },
118
+ }, { dependsOn: azConfig, parent: this });
119
+ }
120
+ });
121
+ }
122
+ }
123
+ exports.AppConfig = AppConfig;
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC9BcHBDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUZBQW1FO0FBRW5FLGtDQUFnRTtBQUVoRSxnREFBa0M7QUFDbEMsNkRBQTBEO0FBYTFELE1BQWEsU0FBVSxTQUFRLDRCQUFvQztJQUNqRCxFQUFFLENBQXdCO0lBQzFCLFlBQVksQ0FBd0I7SUFFcEQsWUFBWSxJQUFZLEVBQUUsSUFBbUIsRUFBRSxJQUFzQztRQUNuRixLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFckMsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQztRQUN6RyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDbEYsTUFBTSxRQUFRLEdBQUcsSUFBSSxTQUFTLENBQUMsa0JBQWtCLENBQy9DLElBQUksRUFDSjtZQUNFLEdBQUcsSUFBSSxDQUFDLE9BQU87WUFDZixHQUFHLEtBQUs7WUFDUixHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBRXpCLG1CQUFtQixFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQjtnQkFDaEQsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPO2dCQUN2QyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVc7b0JBQ3JCLENBQUMsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsUUFBUTtvQkFDeEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxt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
@@ -0,0 +1,69 @@
1
+ import * as web from '@pulumi/azure-native/web';
2
+ import * as pulumi from '@pulumi/pulumi';
3
+ import { BaseResourceComponent, CommonBaseArgs } from '../base';
4
+ /**
5
+ * Represents different kinds of Azure App Service configurations
6
+ */
7
+ export declare enum AppKind {
8
+ /**
9
+ * Windows Web App
10
+ */
11
+ App = "app",
12
+ /**
13
+ * Linux Web App
14
+ */
15
+ AppLinux = "app,linux",
16
+ /**
17
+ * Linux Container Web App
18
+ */
19
+ AppLinuxContainer = "app,linux,container",
20
+ /**
21
+ * Windows Container Web App (Hyper-V)
22
+ */
23
+ HyperV = "hyperV",
24
+ /**
25
+ * Windows Container Web App
26
+ */
27
+ AppContainerWindows = "app,container,windows",
28
+ /**
29
+ * Linux Web App on Azure Arc
30
+ */
31
+ AppLinuxKubernetes = "app,linux,kubernetes",
32
+ /**
33
+ * Linux Container Web App on Azure Arc
34
+ */
35
+ AppLinuxContainerKubernetes = "app,linux,container,kubernetes",
36
+ /**
37
+ * Function Code App
38
+ */
39
+ FunctionApp = "functionapp",
40
+ /**
41
+ * Linux Consumption Function App
42
+ */
43
+ FunctionAppLinux = "functionapp,linux",
44
+ /**
45
+ * Function Container App on Azure Arc
46
+ */
47
+ FunctionAppLinuxContainerKubernetes = "functionapp,linux,container,kubernetes",
48
+ /**
49
+ * Function Code App on Azure Arc
50
+ */
51
+ FunctionAppLinuxKubernetes = "functionapp,linux,kubernetes"
52
+ }
53
+ export interface AppServiceArgs extends CommonBaseArgs, Omit<web.AppServicePlanArgs, 'resourceGroupName' | 'location' | 'name' | 'kind'> {
54
+ kind?: AppKind;
55
+ webApps: Array<Omit<web.WebAppArgs, 'resourceGroupName' | 'location' | 'serverFarmId' | 'kind' | 'name'> & {
56
+ name: string;
57
+ kind?: AppKind;
58
+ }>;
59
+ }
60
+ export declare class AppService extends BaseResourceComponent<AppServiceArgs> {
61
+ readonly id: pulumi.Output<string>;
62
+ readonly resourceName: pulumi.Output<string>;
63
+ constructor(name: string, args: AppServiceArgs, opts?: pulumi.ComponentResourceOptions);
64
+ getOutputs(): {
65
+ id: pulumi.Output<string>;
66
+ resourceName: pulumi.Output<string>;
67
+ };
68
+ private createWebApps;
69
+ }
@@ -0,0 +1,122 @@
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.AppService = exports.AppKind = void 0;
37
+ const web = __importStar(require("@pulumi/azure-native/web"));
38
+ const base_1 = require("../base");
39
+ /**
40
+ * Represents different kinds of Azure App Service configurations
41
+ */
42
+ var AppKind;
43
+ (function (AppKind) {
44
+ /**
45
+ * Windows Web App
46
+ */
47
+ AppKind["App"] = "app";
48
+ /**
49
+ * Linux Web App
50
+ */
51
+ AppKind["AppLinux"] = "app,linux";
52
+ /**
53
+ * Linux Container Web App
54
+ */
55
+ AppKind["AppLinuxContainer"] = "app,linux,container";
56
+ /**
57
+ * Windows Container Web App (Hyper-V)
58
+ */
59
+ AppKind["HyperV"] = "hyperV";
60
+ /**
61
+ * Windows Container Web App
62
+ */
63
+ AppKind["AppContainerWindows"] = "app,container,windows";
64
+ /**
65
+ * Linux Web App on Azure Arc
66
+ */
67
+ AppKind["AppLinuxKubernetes"] = "app,linux,kubernetes";
68
+ /**
69
+ * Linux Container Web App on Azure Arc
70
+ */
71
+ AppKind["AppLinuxContainerKubernetes"] = "app,linux,container,kubernetes";
72
+ /**
73
+ * Function Code App
74
+ */
75
+ AppKind["FunctionApp"] = "functionapp";
76
+ /**
77
+ * Linux Consumption Function App
78
+ */
79
+ AppKind["FunctionAppLinux"] = "functionapp,linux";
80
+ /**
81
+ * Function Container App on Azure Arc
82
+ */
83
+ AppKind["FunctionAppLinuxContainerKubernetes"] = "functionapp,linux,container,kubernetes";
84
+ /**
85
+ * Function Code App on Azure Arc
86
+ */
87
+ AppKind["FunctionAppLinuxKubernetes"] = "functionapp,linux,kubernetes";
88
+ })(AppKind || (exports.AppKind = AppKind = {}));
89
+ class AppService extends base_1.BaseResourceComponent {
90
+ id;
91
+ resourceName;
92
+ constructor(name, args, opts) {
93
+ super('AppService', name, args, opts);
94
+ const { rsGroup, groupRoles, vaultInfo, ...props } = args;
95
+ const appPlan = new web.AppServicePlan(name, {
96
+ ...props,
97
+ ...args.rsGroup,
98
+ }, { dependsOn: opts?.dependsOn, parent: this });
99
+ this.createWebApps(appPlan);
100
+ this.id = appPlan.id;
101
+ this.resourceName = appPlan.name;
102
+ this.registerOutputs();
103
+ }
104
+ getOutputs() {
105
+ return {
106
+ id: this.id,
107
+ resourceName: this.resourceName,
108
+ };
109
+ }
110
+ createWebApps(appPlan) {
111
+ const { webApps } = this.args;
112
+ if (!webApps || webApps.length === 0)
113
+ return undefined;
114
+ return webApps.map((webApp) => new web.WebApp(`${this.name}-${webApp.name}`, {
115
+ ...webApp,
116
+ ...this.args.rsGroup,
117
+ serverFarmId: appPlan.id,
118
+ }, { dependsOn: appPlan, parent: this }));
119
+ }
120
+ }
121
+ exports.AppService = AppService;
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcHAvQXBwU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4REFBZ0Q7QUFFaEQsa0NBQWdFO0FBRWhFOztHQUVHO0FBQ0gsSUFBWSxPQXVEWDtBQXZERCxXQUFZLE9BQU87SUFDakI7O09BRUc7SUFDSCxzQkFBVyxDQUFBO0lBRVg7O09BRUc7SUFDSCxpQ0FBc0IsQ0FBQTtJQUV0Qjs7T0FFRztJQUNILG9EQUF5QyxDQUFBO0lBRXpDOztPQUVHO0lBQ0gsNEJBQWlCLENBQUE7SUFFakI7O09BRUc7SUFDSCx3REFBNkMsQ0FBQTtJQUU3Qzs7T0FFRztJQUNILHNEQUEyQyxDQUFBO0lBRTNDOztPQUVHO0lBQ0gseUVBQThELENBQUE7SUFFOUQ7O09BRUc7SUFDSCxzQ0FBMkIsQ0FBQTtJQUUzQjs7T0FFRztJQUNILGlEQUFzQyxDQUFBO0lBRXRDOztPQUVHO0lBQ0gseUZBQThFLENBQUE7SUFFOUU7O09BRUc7SUFDSCxzRUFBMkQsQ0FBQTtBQUM3RCxDQUFDLEVBdkRXLE9BQU8sdUJBQVAsT0FBTyxRQXVEbEI7QUFjRCxNQUFhLFVBQVcsU0FBUSw0QkFBcUM7SUFDbkQsRUFBRSxDQUF3QjtJQUMxQixZQUFZLENBQXdCO0lBRXBELFlBQVksSUFBWSxFQUFFLElBQW9CLEVBQUUsSUFBc0M7UUFDcEYsS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXRDLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQztRQUUxRCxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQ3BDLElBQUksRUFDSjtZQUNFLEdBQUcsS0FBSztZQUNSLEdBQUcsSUFBSSxDQUFDLE9BQU87U0FDaEIsRUFDRCxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FDN0MsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFNUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUVqQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ2hDLENBQUM7SUFDSixDQUFDO0lBRU8sYUFBYSxDQUFDLE9BQTJCO1FBQy9DLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFFdkQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUNoQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ1QsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUNaLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQzdCO1lBQ0UsR0FBRyxNQUFNO1lBQ1QsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDcEIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1NBQ3pCLEVBQ0QsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FDckMsQ0FDSixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbERELGdDQWtEQyJ9
@@ -0,0 +1,15 @@
1
+ import * as devices from '@pulumi/azure-native/iothub';
2
+ import * as pulumi from '@pulumi/pulumi';
3
+ import { BaseResourceComponent, CommonBaseArgs } from '../base';
4
+ import * as types from '../types';
5
+ export interface IoTHubArgs extends CommonBaseArgs, types.WithUserAssignedIdentity, Pick<devices.IotHubResourceArgs, 'properties' | 'sku'> {
6
+ }
7
+ export declare class IoTHub extends BaseResourceComponent<IoTHubArgs> {
8
+ readonly id: pulumi.Output<string>;
9
+ readonly resourceName: pulumi.Output<string>;
10
+ constructor(name: string, args: IoTHubArgs, opts?: pulumi.ComponentResourceOptions);
11
+ getOutputs(): {
12
+ id: pulumi.Output<string>;
13
+ resourceName: pulumi.Output<string>;
14
+ };
15
+ }
package/app/IoTHub.js ADDED
@@ -0,0 +1,80 @@
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.IoTHub = void 0;
37
+ const devices = __importStar(require("@pulumi/azure-native/iothub"));
38
+ const base_1 = require("../base");
39
+ class IoTHub extends base_1.BaseResourceComponent {
40
+ id;
41
+ resourceName;
42
+ constructor(name, args, opts) {
43
+ super('IoTHub', name, args, opts);
44
+ const { rsGroup, defaultUAssignedId, ...props } = args;
45
+ const iot = new devices.IotHubResource(name, {
46
+ ...props,
47
+ ...rsGroup,
48
+ identity: {
49
+ type: defaultUAssignedId
50
+ ? devices.ResourceIdentityType.SystemAssigned_UserAssigned
51
+ : devices.ResourceIdentityType.SystemAssigned,
52
+ userAssignedIdentities: defaultUAssignedId ? [defaultUAssignedId.id] : undefined,
53
+ },
54
+ properties: {
55
+ enableFileUploadNotifications: false,
56
+ features: devices.Capabilities.None,
57
+ messagingEndpoints: {
58
+ fileNotifications: {
59
+ lockDurationAsIso8601: 'PT1M',
60
+ maxDeliveryCount: 10,
61
+ ttlAsIso8601: 'PT1H',
62
+ },
63
+ },
64
+ minTlsVersion: '1.2',
65
+ ...props?.properties,
66
+ },
67
+ }, { ...opts, parent: this });
68
+ this.id = iot.id;
69
+ this.resourceName = iot.name;
70
+ this.registerOutputs();
71
+ }
72
+ getOutputs() {
73
+ return {
74
+ id: this.id,
75
+ resourceName: this.resourceName,
76
+ };
77
+ }
78
+ }
79
+ exports.IoTHub = IoTHub;
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW9USHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC9Jb1RIdWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUVBQXVEO0FBRXZELGtDQUFnRTtBQVFoRSxNQUFhLE1BQU8sU0FBUSw0QkFBaUM7SUFDM0MsRUFBRSxDQUF3QjtJQUMxQixZQUFZLENBQXdCO0lBRXBELFlBQVksSUFBWSxFQUFFLElBQWdCLEVBQUUsSUFBc0M7UUFDaEYsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWxDLE1BQU0sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFdkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUNwQyxJQUFJLEVBQ0o7WUFDRSxHQUFHLEtBQUs7WUFDUixHQUFHLE9BQU87WUFFVixRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLGtCQUFrQjtvQkFDdEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQywyQkFBMkI7b0JBQzFELENBQUMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsY0FBYztnQkFDL0Msc0JBQXNCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDakY7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsNkJBQTZCLEVBQUUsS0FBSztnQkFDcEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSTtnQkFDbkMsa0JBQWtCLEVBQUU7b0JBQ2xCLGlCQUFpQixFQUFFO3dCQUNqQixxQkFBcUIsRUFBRSxNQUFNO3dCQUM3QixnQkFBZ0IsRUFBRSxFQUFFO3dCQUNwQixZQUFZLEVBQUUsTUFBTTtxQkFDckI7aUJBQ0Y7Z0JBQ0QsYUFBYSxFQUFFLEtBQUs7Z0JBQ3BCLEdBQUcsS0FBSyxFQUFFLFVBQVU7YUFDckI7U0FDRixFQUNELEVBQUUsR0FBRyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUMxQixDQUFDO1FBRUYsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUU3QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ2hDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFsREQsd0JBa0RDIn0=
@@ -0,0 +1,19 @@
1
+ import * as logic from '@pulumi/azure-native/logic';
2
+ import * as pulumi from '@pulumi/pulumi';
3
+ import { BaseResourceComponent, CommonBaseArgs } from '../base';
4
+ import * as types from '../types';
5
+ export interface LogicAppArgs extends CommonBaseArgs, types.WithUserAssignedIdentity {
6
+ integrationAccount: Pick<logic.IntegrationAccountArgs, 'integrationServiceEnvironment'> & {
7
+ sku: logic.IntegrationAccountSkuName;
8
+ };
9
+ workflow: Pick<logic.WorkflowArgs, 'accessControl' | 'definition' | 'endpointsConfiguration' | 'integrationServiceEnvironment' | 'parameters'>;
10
+ }
11
+ export declare class LogicApp extends BaseResourceComponent<LogicAppArgs> {
12
+ readonly id: pulumi.Output<string>;
13
+ readonly resourceName: pulumi.Output<string>;
14
+ constructor(name: string, args: LogicAppArgs, opts?: pulumi.ComponentResourceOptions);
15
+ getOutputs(): {
16
+ id: pulumi.Output<string>;
17
+ resourceName: pulumi.Output<string>;
18
+ };
19
+ }