@drunk-pulumi/azure 0.0.37 → 0.0.39

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 (186) hide show
  1. package/Aks/Helper.d.ts +6 -11
  2. package/Aks/Helper.js +40 -65
  3. package/Aks/Identity.d.ts +3 -10
  4. package/Aks/Identity.js +9 -8
  5. package/Aks/index.d.ts +67 -71
  6. package/Aks/index.js +198 -314
  7. package/Apim/ApiProduct/PolicyBuilder.js +25 -27
  8. package/Apim/ApiProduct/SwaggerHelper.js +1 -3
  9. package/Apim/ApiProduct/index.d.ts +3 -3
  10. package/Apim/ApiProduct/index.js +1 -2
  11. package/Automation/index.d.ts +7 -0
  12. package/Automation/index.js +55 -0
  13. package/AzAd/EnvRoles.Consts.d.ts +12 -0
  14. package/AzAd/EnvRoles.Consts.js +125 -0
  15. package/AzAd/EnvRoles.d.ts +17 -15
  16. package/AzAd/EnvRoles.js +69 -47
  17. package/AzAd/GraphDefinition.d.ts +2 -2
  18. package/AzAd/GraphDefinition.js +3055 -3056
  19. package/AzAd/Helper.d.ts +24 -13
  20. package/AzAd/Helper.js +98 -25
  21. package/AzAd/Identities/AzDevOpsIdentity.d.ts +12 -0
  22. package/AzAd/Identities/AzDevOpsIdentity.js +32 -0
  23. package/AzAd/Identities/AzDevOpsManagedIdentity.d.ts +7 -0
  24. package/AzAd/Identities/AzDevOpsManagedIdentity.js +15 -0
  25. package/AzAd/Identities/AzUserAdRevertSync.d.ts +2 -9
  26. package/AzAd/Identities/AzUserAdRevertSync.js +4 -5
  27. package/AzAd/Identities/index.d.ts +3 -0
  28. package/AzAd/Identities/index.js +10 -0
  29. package/AzAd/Identity.d.ts +10 -22
  30. package/AzAd/Identity.js +50 -61
  31. package/AzAd/Role.d.ts +2 -3
  32. package/AzAd/Role.js +4 -5
  33. package/AzAd/RoleAssignment.d.ts +34 -5
  34. package/AzAd/RoleAssignment.js +2 -2
  35. package/AzAd/RoleDefinitions/JustInTimeRequestRole.d.ts +2 -0
  36. package/AzAd/RoleDefinitions/JustInTimeRequestRole.js +24 -0
  37. package/AzAd/RolesBuiltIn.d.ts +29 -0
  38. package/AzAd/RolesBuiltIn.js +13034 -8058
  39. package/AzAd/UserAssignedIdentity.d.ts +6 -0
  40. package/AzAd/UserAssignedIdentity.js +27 -0
  41. package/Builder/AksBuilder.d.ts +3 -0
  42. package/Builder/AksBuilder.js +95 -0
  43. package/Builder/ResourceBuilder.d.ts +3 -0
  44. package/Builder/ResourceBuilder.js +116 -0
  45. package/Builder/VnetBuilder.d.ts +3 -0
  46. package/Builder/VnetBuilder.js +279 -0
  47. package/Builder/index.d.ts +4 -0
  48. package/Builder/index.js +21 -0
  49. package/Builder/types/askBuilder.d.ts +32 -0
  50. package/Builder/types/askBuilder.js +3 -0
  51. package/Builder/types/genericBuilder.d.ts +26 -0
  52. package/Builder/types/genericBuilder.js +18 -0
  53. package/Builder/types/index.d.ts +4 -0
  54. package/Builder/types/index.js +21 -0
  55. package/Builder/types/resourceBuilder.d.ts +24 -0
  56. package/Builder/types/resourceBuilder.js +3 -0
  57. package/Builder/types/vnetBuilder.d.ts +65 -0
  58. package/Builder/types/vnetBuilder.js +3 -0
  59. package/Certificate/index.d.ts +1 -1
  60. package/Certificate/index.js +26 -28
  61. package/Common/AutoTags.js +2 -2
  62. package/Common/AzureEnv.d.ts +4 -3
  63. package/Common/AzureEnv.js +31 -24
  64. package/Common/GlobalEnv.d.ts +1 -2
  65. package/Common/GlobalEnv.js +7 -7
  66. package/Common/Location.d.ts +3 -3
  67. package/Common/Location.js +22 -9
  68. package/Common/LocationBuiltIn.d.ts +6 -81
  69. package/Common/LocationBuiltIn.js +491 -1923
  70. package/Common/Naming/index.d.ts +6 -4
  71. package/Common/Naming/index.js +64 -60
  72. package/Common/ResourceEnv.d.ts +2 -2
  73. package/Common/ResourceEnv.js +11 -10
  74. package/Common/StackEnv.js +2 -9
  75. package/Core/KeyGenetators.d.ts +16 -20
  76. package/Core/KeyGenetators.js +17 -16
  77. package/Core/Random.d.ts +4 -4
  78. package/Core/Random.js +10 -10
  79. package/Core/ResourceGroup.d.ts +13 -6
  80. package/Core/ResourceGroup.js +12 -24
  81. package/IOT/Hub/index.d.ts +4 -8
  82. package/IOT/Hub/index.js +19 -54
  83. package/KeyVault/Helper.d.ts +8 -6
  84. package/KeyVault/Helper.js +13 -19
  85. package/KeyVault/index.d.ts +1 -3
  86. package/KeyVault/index.js +2 -26
  87. package/Logs/Helpers.d.ts +35 -25
  88. package/Logs/Helpers.js +33 -20
  89. package/Logs/LogAnalytics.d.ts +2 -2
  90. package/Logs/LogAnalytics.js +15 -6
  91. package/Logs/index.d.ts +3 -3
  92. package/Logs/index.js +4 -4
  93. package/MySql/index.d.ts +2 -3
  94. package/MySql/index.js +16 -19
  95. package/{ReadMe.md → README.md} +6 -1
  96. package/Sql/index.d.ts +15 -9
  97. package/Sql/index.js +39 -41
  98. package/Storage/CdnEndpoint.d.ts +2 -2
  99. package/Storage/CdnEndpoint.js +14 -15
  100. package/Storage/Helper.d.ts +2 -2
  101. package/Storage/Helper.js +6 -6
  102. package/Storage/ManagementRules.d.ts +5 -23
  103. package/Storage/ManagementRules.js +3 -3
  104. package/Storage/index.d.ts +3 -3
  105. package/Storage/index.js +28 -28
  106. package/VM/AzureDevOpsExtension.d.ts +16 -0
  107. package/VM/AzureDevOpsExtension.js +14 -0
  108. package/VM/Extension.d.ts +15 -0
  109. package/VM/Extension.js +13 -0
  110. package/VM/GlobalSchedule.d.ts +10 -0
  111. package/VM/GlobalSchedule.js +20 -0
  112. package/VM/index.d.ts +18 -18
  113. package/VM/index.js +94 -57
  114. package/VNet/Bastion.d.ts +4 -4
  115. package/VNet/Bastion.js +12 -8
  116. package/VNet/Firewall.d.ts +19 -12
  117. package/VNet/Firewall.js +59 -40
  118. package/VNet/FirewallPolicies/AksFirewallPolicy.d.ts +16 -16
  119. package/VNet/FirewallPolicies/AksFirewallPolicy.js +193 -220
  120. package/VNet/FirewallPolicies/CloudPCFirewallPolicy.d.ts +12 -10
  121. package/VNet/FirewallPolicies/CloudPCFirewallPolicy.js +170 -282
  122. package/VNet/FirewallPolicies/DefaultFirewallPolicy.d.ts +3 -0
  123. package/VNet/FirewallPolicies/DefaultFirewallPolicy.js +25 -0
  124. package/VNet/FirewallPolicies/index.d.ts +4 -0
  125. package/VNet/FirewallPolicies/index.js +10 -0
  126. package/VNet/FirewallPolicy.d.ts +14 -11
  127. package/VNet/FirewallPolicy.js +67 -74
  128. package/VNet/FirewallRules/AksFirewallRules.d.ts +4 -3
  129. package/VNet/FirewallRules/AksFirewallRules.js +101 -100
  130. package/VNet/Helper.d.ts +8 -4
  131. package/VNet/Helper.js +42 -35
  132. package/VNet/IpAddress.d.ts +6 -8
  133. package/VNet/IpAddress.js +6 -11
  134. package/VNet/IpAddressPrefix.d.ts +12 -9
  135. package/VNet/IpAddressPrefix.js +14 -13
  136. package/VNet/NSGRules/AppGatewaySecurityRule.d.ts +9 -0
  137. package/VNet/NSGRules/AppGatewaySecurityRule.js +46 -0
  138. package/VNet/NSGRules/AzADSecurityRule.d.ts +6 -0
  139. package/VNet/NSGRules/AzADSecurityRule.js +39 -0
  140. package/VNet/NSGRules/BastionSecurityRule.d.ts +9 -0
  141. package/VNet/NSGRules/BastionSecurityRule.js +93 -0
  142. package/VNet/NatGateway.d.ts +10 -0
  143. package/VNet/NatGateway.js +21 -0
  144. package/VNet/NetworkPeering.d.ts +7 -7
  145. package/VNet/NetworkPeering.js +29 -20
  146. package/VNet/PrivateDns.d.ts +8 -10
  147. package/VNet/PrivateDns.js +12 -14
  148. package/VNet/PrivateEndpoint.js +5 -2
  149. package/VNet/RouteTable.d.ts +7 -8
  150. package/VNet/RouteTable.js +6 -6
  151. package/VNet/SecurityGroup.d.ts +4 -4
  152. package/VNet/SecurityGroup.js +7 -3
  153. package/VNet/Subnet.d.ts +10 -7
  154. package/VNet/Subnet.js +4 -3
  155. package/VNet/VPNGateway.d.ts +13 -0
  156. package/VNet/VPNGateway.js +73 -0
  157. package/VNet/VirtualWAN.d.ts +7 -10
  158. package/VNet/VirtualWAN.js +1 -1
  159. package/VNet/Vnet.d.ts +29 -23
  160. package/VNet/Vnet.js +58 -121
  161. package/VNet/index.d.ts +17 -18
  162. package/VNet/index.js +41 -54
  163. package/VNet/types.d.ts +94 -0
  164. package/VNet/types.js +3 -0
  165. package/Web/types.d.ts +2 -134
  166. package/package.json +8 -8
  167. package/types.d.ts +22 -8
  168. package/z_tests/_tools/Mocks.js +12 -13
  169. package/Automation/AutoAccount.d.ts +0 -5
  170. package/Automation/AutoAccount.js +0 -18
  171. package/AzAd/Identities/AzDevOps.d.ts +0 -23
  172. package/AzAd/Identities/AzDevOps.js +0 -61
  173. package/AzAd/KeyVaultRoles.d.ts +0 -8
  174. package/AzAd/KeyVaultRoles.js +0 -53
  175. package/AzAd/ManagedIdentity.d.ts +0 -6
  176. package/AzAd/ManagedIdentity.js +0 -20
  177. package/AzAd/UserIdentity.d.ts +0 -5
  178. package/AzAd/UserIdentity.js +0 -12
  179. package/Common/Naming/AzureRegions.d.ts +0 -4
  180. package/Common/Naming/AzureRegions.js +0 -49
  181. package/KeyVault/VaultPermissions.d.ts +0 -27
  182. package/KeyVault/VaultPermissions.js +0 -226
  183. package/VNet/FirewallRules/types.d.ts +0 -20
  184. package/VNet/FirewallRules/types.js +0 -5
  185. package/VNet/NSGRules/AzADService.d.ts +0 -10
  186. package/VNet/NSGRules/AzADService.js +0 -45
@@ -0,0 +1,6 @@
1
+ import { BasicResourceArgs, IdentityRoleAssignment } from "../types";
2
+ interface Props extends BasicResourceArgs, IdentityRoleAssignment {
3
+ lock?: boolean;
4
+ }
5
+ declare const _default: ({ name, group, lock, roles, envRole, vaultInfo, dependsOn, importUri, ignoreChanges, }: Props) => import("@pulumi/azure-native/managedidentity/userAssignedIdentity").UserAssignedIdentity;
6
+ export default _default;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const azure = require("@pulumi/azure-native");
4
+ const Naming_1 = require("../Common/Naming");
5
+ const Locker_1 = require("../Core/Locker");
6
+ const Helper_1 = require("./Helper");
7
+ exports.default = ({ name, group, lock, roles, envRole, vaultInfo, dependsOn, importUri, ignoreChanges, }) => {
8
+ name = (0, Naming_1.getManagedIdentityName)(name);
9
+ const managedIdentity = new azure.managedidentity.UserAssignedIdentity(name, {
10
+ resourceName: name,
11
+ ...group,
12
+ }, { dependsOn, import: importUri, ignoreChanges });
13
+ (0, Helper_1.grantIdentityPermissions)({
14
+ name,
15
+ envRole,
16
+ roles,
17
+ vaultInfo,
18
+ principalId: managedIdentity.principalId,
19
+ });
20
+ if (lock)
21
+ (0, Locker_1.default)({
22
+ name,
23
+ resource: managedIdentity,
24
+ });
25
+ return managedIdentity;
26
+ };
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlckFzc2lnbmVkSWRlbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQXpBZC9Vc2VyQXNzaWduZWRJZGVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDhDQUE4QztBQUM5Qyw2Q0FBMEQ7QUFDMUQsMkNBQW9DO0FBQ3BDLHFDQUFvRDtBQU1wRCxrQkFBZSxDQUFDLEVBQ2QsSUFBSSxFQUNKLEtBQUssRUFDTCxJQUFJLEVBQ0osS0FBSyxFQUNMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxhQUFhLEdBQ1AsRUFBRSxFQUFFO0lBQ1YsSUFBSSxHQUFHLElBQUEsK0JBQXNCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUNwRSxJQUFJLEVBQ0o7UUFDRSxZQUFZLEVBQUUsSUFBSTtRQUNsQixHQUFHLEtBQUs7S0FDVCxFQUNELEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLENBQ2hELENBQUM7SUFFRixJQUFBLGlDQUF3QixFQUFDO1FBQ3ZCLElBQUk7UUFDSixPQUFPO1FBQ1AsS0FBSztRQUNMLFNBQVM7UUFDVCxXQUFXLEVBQUUsZUFBZSxDQUFDLFdBQVc7S0FDekMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxJQUFJO1FBQ04sSUFBQSxnQkFBTSxFQUFDO1lBQ0wsSUFBSTtZQUNKLFFBQVEsRUFBRSxlQUFlO1NBQzFCLENBQUMsQ0FBQztJQUVMLE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUMsQ0FBQyJ9
@@ -0,0 +1,3 @@
1
+ import { ISshBuilder, BuilderProps } from "./types";
2
+ declare const _default: (props: BuilderProps) => ISshBuilder;
3
+ export default _default;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const types_1 = require("./types");
4
+ const KeyGenetators_1 = require("../Core/KeyGenetators");
5
+ const containerservice_1 = require("@pulumi/azure-native/containerservice");
6
+ const Aks_1 = require("../Aks");
7
+ class AksBuilder extends types_1.BuilderAsync {
8
+ //Instances
9
+ _sshInstance = undefined;
10
+ _askInstance = undefined;
11
+ //Props
12
+ _sshProps = undefined;
13
+ _nodePoolsProps = [];
14
+ _addonProps = undefined;
15
+ _featureProps = undefined;
16
+ _authProps = undefined;
17
+ _tier = containerservice_1.ManagedClusterSKUTier.Free;
18
+ _networkProps = undefined;
19
+ _defaultNode = undefined;
20
+ _importProps = undefined;
21
+ constructor(props) {
22
+ super(props);
23
+ }
24
+ //Info collection methods
25
+ withNewSsh(props) {
26
+ this._sshProps = props;
27
+ return this;
28
+ }
29
+ withNodePool(props) {
30
+ this._nodePoolsProps.push(props);
31
+ return this;
32
+ }
33
+ withAddon(props) {
34
+ this._addonProps = props;
35
+ return this;
36
+ }
37
+ withFeature(props) {
38
+ this._featureProps = props;
39
+ return this;
40
+ }
41
+ withAuth(props) {
42
+ this._authProps = props;
43
+ return this;
44
+ }
45
+ withTier(tier) {
46
+ this._tier = tier;
47
+ return this;
48
+ }
49
+ withNetwork(props) {
50
+ this._networkProps = props;
51
+ return this;
52
+ }
53
+ withDefaultNodePool(props) {
54
+ this._defaultNode = props;
55
+ return this;
56
+ }
57
+ import(props) {
58
+ this._importProps = props;
59
+ return this;
60
+ }
61
+ //Build Methods
62
+ buildSsh() {
63
+ this._sshInstance = (0, KeyGenetators_1.generateSsh)({
64
+ ...this.commonProps,
65
+ ...this._sshProps,
66
+ });
67
+ }
68
+ async buildAsk() {
69
+ const sshKey = this._sshInstance.lists.getPublicKey();
70
+ this._askInstance = await (0, Aks_1.default)({
71
+ ...this.commonProps,
72
+ addon: this._addonProps,
73
+ aksAccess: this._authProps,
74
+ tier: this._tier,
75
+ linux: {
76
+ adminUsername: this._sshInstance.userName,
77
+ sshKeys: [sshKey],
78
+ },
79
+ defaultNodePool: this._defaultNode,
80
+ nodePools: this._nodePoolsProps,
81
+ features: this._featureProps,
82
+ network: this._networkProps,
83
+ importUri: this._importProps?.id,
84
+ ignoreChanges: this._importProps?.ignoreChanges,
85
+ //nodeResourceGroup: getResourceGroupName(""),
86
+ });
87
+ }
88
+ async build() {
89
+ this.buildSsh();
90
+ await this.buildAsk();
91
+ return { ssh: this._sshInstance, aks: this._askInstance };
92
+ }
93
+ }
94
+ exports.default = (props) => new AksBuilder(props);
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWtzQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9CdWlsZGVyL0Frc0J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FXaUI7QUFDakIseURBQWdFO0FBQ2hFLDRFQUE4RTtBQUM5RSxnQ0FRZ0I7QUFFaEIsTUFBTSxVQUNKLFNBQVEsb0JBQStCO0lBUXZDLFdBQVc7SUFDSCxZQUFZLEdBQTJCLFNBQVMsQ0FBQztJQUNqRCxZQUFZLEdBQTJCLFNBQVMsQ0FBQztJQUV6RCxPQUFPO0lBQ0MsU0FBUyxHQUFnQyxTQUFTLENBQUM7SUFDbkQsZUFBZSxHQUF1QixFQUFFLENBQUM7SUFDekMsV0FBVyxHQUE4QixTQUFTLENBQUM7SUFDbkQsYUFBYSxHQUFnQyxTQUFTLENBQUM7SUFDdkQsVUFBVSxHQUErQixTQUFTLENBQUM7SUFDbkQsS0FBSyxHQUEwQix3Q0FBcUIsQ0FBQyxJQUFJLENBQUM7SUFDMUQsYUFBYSxHQUFnQyxTQUFTLENBQUM7SUFDdkQsWUFBWSxHQUF3QyxTQUFTLENBQUM7SUFDOUQsWUFBWSxHQUErQixTQUFTLENBQUM7SUFFN0QsWUFBWSxLQUFtQjtRQUM3QixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDZixDQUFDO0lBRUQseUJBQXlCO0lBQ2xCLFVBQVUsQ0FBQyxLQUFzQjtRQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxZQUFZLENBQUMsS0FBdUI7UUFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ00sU0FBUyxDQUFDLEtBQW9CO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNNLFdBQVcsQ0FBQyxLQUFzQjtRQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDTSxRQUFRLENBQUMsS0FBcUI7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ00sUUFBUSxDQUFDLElBQTJCO1FBQ3pDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNNLFdBQVcsQ0FBQyxLQUFzQjtRQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixPQUFPLElBQWtDLENBQUM7SUFDNUMsQ0FBQztJQUNNLG1CQUFtQixDQUFDLEtBQThCO1FBQ3ZELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLE9BQU8sSUFBbUIsQ0FBQztJQUM3QixDQUFDO0lBQ00sTUFBTSxDQUFDLEtBQXFCO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELGVBQWU7SUFDUCxRQUFRO1FBQ2QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFBLDJCQUFXLEVBQUM7WUFDOUIsR0FBRyxJQUFJLENBQUMsV0FBVztZQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsUUFBUTtRQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBYSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV2RCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sSUFBQSxhQUFHLEVBQUM7WUFDNUIsR0FBRyxJQUFJLENBQUMsV0FBVztZQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFXO1lBQzNCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSztZQUNoQixLQUFLLEVBQUU7Z0JBQ0wsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFhLENBQUMsUUFBUTtnQkFDMUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDO2FBQ2xCO1lBQ0QsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFhO1lBQ25DLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUMvQixRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDNUIsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFjO1lBRTVCLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDaEMsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYTtZQUMvQyw4Q0FBOEM7U0FDL0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QixPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFhLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFhLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0NBQ0Y7QUFFRCxrQkFBZSxDQUFDLEtBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBZ0IsQ0FBQyJ9
@@ -0,0 +1,3 @@
1
+ import { IResourceRoleBuilder } from "./types";
2
+ declare const _default: (name: string) => IResourceRoleBuilder;
3
+ export default _default;
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const EnvRoles_1 = require("../AzAd/EnvRoles");
4
+ const ResourceGroup_1 = require("../Core/ResourceGroup");
5
+ const KeyVault_1 = require("../KeyVault");
6
+ class ResourceBuilder {
7
+ name;
8
+ _createRGProps = undefined;
9
+ _RGInfo = undefined;
10
+ _createRole = false;
11
+ _createVault = false;
12
+ _envRoles = undefined;
13
+ _otherBuilders = new Array();
14
+ _otherBuildersAsync = new Array();
15
+ _vaultInfo = undefined;
16
+ //Instances
17
+ _RGInstance = undefined;
18
+ _vaultInstance = undefined;
19
+ _envRolesInstance = undefined;
20
+ constructor(name) {
21
+ this.name = name;
22
+ }
23
+ createRoles() {
24
+ this._createRole = true;
25
+ return this;
26
+ }
27
+ withRoles(props) {
28
+ this._envRoles = props;
29
+ return this;
30
+ }
31
+ createRG(props) {
32
+ this._createRGProps = props;
33
+ return this;
34
+ }
35
+ withRG(props) {
36
+ this._RGInfo = props;
37
+ return this;
38
+ }
39
+ createVault() {
40
+ this._createVault = true;
41
+ return this;
42
+ }
43
+ withVault(props) {
44
+ this._vaultInfo = props;
45
+ return this;
46
+ }
47
+ withBuilder(builder) {
48
+ this._otherBuilders.push(builder);
49
+ return this;
50
+ }
51
+ withBuilderAsync(builder) {
52
+ this._otherBuildersAsync.push(builder);
53
+ return this;
54
+ }
55
+ buildRoles() {
56
+ if (!this._createRole)
57
+ return;
58
+ this._envRolesInstance = (0, EnvRoles_1.createEnvRoles)();
59
+ this._envRoles = this._envRolesInstance;
60
+ }
61
+ buildRG() {
62
+ if (!this._createRGProps)
63
+ return;
64
+ const rs = (0, ResourceGroup_1.default)({
65
+ name: this.name,
66
+ permissions: {
67
+ envRoles: this._envRoles,
68
+ ...this._createRGProps,
69
+ },
70
+ });
71
+ this._RGInfo = rs.toGroupInfo();
72
+ this._RGInstance = rs.resource;
73
+ }
74
+ buildVault() {
75
+ if (!this._createVault)
76
+ return;
77
+ const rs = (0, KeyVault_1.default)({
78
+ name: this.name,
79
+ group: this._RGInfo,
80
+ });
81
+ this._vaultInstance = rs.vault;
82
+ this._vaultInfo = rs.toVaultInfo();
83
+ if (this._envRolesInstance)
84
+ this._envRolesInstance.addRolesToVault(this._vaultInfo);
85
+ }
86
+ buildOthers() {
87
+ const props = {
88
+ name: this.name,
89
+ group: this._RGInfo,
90
+ vaultInfo: this._vaultInfo,
91
+ };
92
+ this._otherBuilders.map((b) => b(props).build());
93
+ }
94
+ async buildOthersAsync() {
95
+ const props = {
96
+ name: this.name,
97
+ group: this._RGInfo,
98
+ vaultInfo: this._vaultInfo,
99
+ };
100
+ await Promise.all(this._otherBuildersAsync.map((b) => b(props).build()));
101
+ }
102
+ async build() {
103
+ this.buildRoles();
104
+ this.buildRG();
105
+ this.buildVault();
106
+ this.buildOthers();
107
+ await this.buildOthersAsync();
108
+ return {
109
+ name: this.name,
110
+ group: this._RGInfo,
111
+ vaultInfo: this._vaultInfo,
112
+ };
113
+ }
114
+ }
115
+ exports.default = (name) => new ResourceBuilder(name);
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2VCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0J1aWxkZXIvUmVzb3VyY2VCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBVUEsK0NBSTBCO0FBRTFCLHlEQUF1QztBQUV2QywwQ0FBZ0M7QUFHaEMsTUFBTSxlQUFlO0lBcUJBO0lBZFgsY0FBYyxHQUF5QyxTQUFTLENBQUM7SUFDakUsT0FBTyxHQUFrQyxTQUFTLENBQUM7SUFDbkQsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixZQUFZLEdBQVksS0FBSyxDQUFDO0lBQzlCLFNBQVMsR0FBZ0MsU0FBUyxDQUFDO0lBQ25ELGNBQWMsR0FBRyxJQUFJLEtBQUssRUFBdUIsQ0FBQztJQUNsRCxtQkFBbUIsR0FBRyxJQUFJLEtBQUssRUFBNEIsQ0FBQztJQUM1RCxVQUFVLEdBQTZCLFNBQVMsQ0FBQztJQUV6RCxXQUFXO0lBQ0gsV0FBVyxHQUE4QixTQUFTLENBQUM7SUFDbkQsY0FBYyxHQUF5QixTQUFTLENBQUM7SUFDakQsaUJBQWlCLEdBQW1DLFNBQVMsQ0FBQztJQUV0RSxZQUFtQixJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtJQUFHLENBQUM7SUFFNUIsV0FBVztRQUNoQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDTSxTQUFTLENBQUMsS0FBc0I7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ00sUUFBUSxDQUFDLEtBQStCO1FBQzdDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNNLE1BQU0sQ0FBQyxLQUF3QjtRQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixPQUFPLElBQUks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
@@ -0,0 +1,3 @@
1
+ import { IVnetBuilderStart, VnetBuilderProps } from "./types";
2
+ declare const _default: (props: VnetBuilderProps) => IVnetBuilderStart;
3
+ export default _default;
@@ -0,0 +1,279 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const IpAddressPrefix_1 = require("../VNet/IpAddressPrefix");
4
+ const Firewall_1 = require("../VNet/Firewall");
5
+ const Vnet_1 = require("../VNet/Vnet");
6
+ const NatGateway_1 = require("../VNet/NatGateway");
7
+ const NetworkPeering_1 = require("../VNet/NetworkPeering");
8
+ const VPNGateway_1 = require("../VNet/VPNGateway");
9
+ const types_1 = require("./types");
10
+ const Helper_1 = require("../VNet/Helper");
11
+ const Bastion_1 = require("../VNet/Bastion");
12
+ const outboundIpName = "outbound";
13
+ class VnetBuilder extends types_1.Builder {
14
+ /** The Props */
15
+ _subnetProps = undefined;
16
+ _vnetProps;
17
+ _firewallProps = undefined;
18
+ _bastionProps = undefined;
19
+ _natGatewayEnabled = false;
20
+ _vpnGatewayProps = undefined;
21
+ _securityRules = undefined;
22
+ _routeRules = undefined;
23
+ _peeringProps = [];
24
+ _logInfo = undefined;
25
+ _ipType = "prefix";
26
+ /** The Instances */
27
+ _ipAddressInstance = undefined;
28
+ _firewallInstance = undefined;
29
+ _vnetInstance = undefined;
30
+ _natGatewayInstance = undefined;
31
+ _vnpGatewayInstance = undefined;
32
+ constructor({ subnets, dnsServers, addressSpaces, ...commonProps }) {
33
+ super(commonProps);
34
+ this._subnetProps = subnets;
35
+ this._vnetProps = { dnsServers, addressSpaces };
36
+ }
37
+ asHub() {
38
+ return this;
39
+ }
40
+ asSpoke() {
41
+ return this;
42
+ }
43
+ withPublicIpAddress(type) {
44
+ this._ipType = type;
45
+ return this;
46
+ }
47
+ withNatGateway() {
48
+ this._natGatewayEnabled = true;
49
+ return this;
50
+ }
51
+ withVpnGateway(props) {
52
+ this._vpnGatewayProps = props;
53
+ return this;
54
+ }
55
+ withFirewall(props) {
56
+ this._firewallProps = props;
57
+ return this;
58
+ }
59
+ withBastion(props) {
60
+ this._bastionProps = props;
61
+ return this;
62
+ }
63
+ withSecurityRules(rules) {
64
+ if (!this._securityRules)
65
+ this._securityRules = rules;
66
+ else
67
+ this._securityRules.push(...rules);
68
+ return this;
69
+ }
70
+ withRouteRules(rules) {
71
+ if (!this._routeRules)
72
+ this._routeRules = rules;
73
+ else
74
+ this._routeRules.push(...rules);
75
+ return this;
76
+ }
77
+ peeringTo(props) {
78
+ this._peeringProps.push(props);
79
+ return this;
80
+ }
81
+ withLogInfo(info) {
82
+ this._logInfo = info;
83
+ return this;
84
+ }
85
+ /** Builders methods */
86
+ // private validate() {
87
+ // if (this._firewallProps) {
88
+ // if (!this._firewallProps.sku)
89
+ // this._firewallProps.sku = this._natGatewayEnabled
90
+ // ? { tier: "Basic", name: "AZFW_VNet" }
91
+ // : { tier: "Basic", name: "AZFW_VNet" };
92
+ //
93
+ // // if (this._natGatewayEnabled && this._firewallProps.sku.tier === "Basic")
94
+ // // throw new Error(
95
+ // // 'The Firewall tier "Basic" is not support Nat Gateway.',
96
+ // // );
97
+ // }
98
+ // }
99
+ buildIpAddress() {
100
+ const ipNames = [];
101
+ //No gateway and no firewall then Do nothing
102
+ if (!this._natGatewayEnabled && !this._firewallProps)
103
+ return;
104
+ //Add outbound Ipaddress for Firewall alone
105
+ if (!this._natGatewayEnabled && this._firewallProps) {
106
+ ipNames.push(outboundIpName);
107
+ }
108
+ //Create IpPrefix
109
+ this._ipAddressInstance = (0, IpAddressPrefix_1.default)({
110
+ ...this.commonProps,
111
+ ipAddresses: ipNames.map((n) => ({ name: n })),
112
+ createPrefix: this._ipType === "prefix",
113
+ config: { version: "IPv4", allocationMethod: "Static" },
114
+ });
115
+ }
116
+ buildNatGateway() {
117
+ if (!this._natGatewayEnabled || !this._ipAddressInstance)
118
+ return;
119
+ this._natGatewayInstance = (0, NatGateway_1.default)({
120
+ ...this.commonProps,
121
+ publicIpAddresses: this._ipType === "individual"
122
+ ? Object.keys(this._ipAddressInstance.addresses).map((k) => this._ipAddressInstance.addresses[k].id)
123
+ : undefined,
124
+ publicIpPrefixes: this._ipType === "prefix"
125
+ ? [this._ipAddressInstance.addressPrefix.id]
126
+ : undefined,
127
+ });
128
+ }
129
+ buildVnet() {
130
+ const subnets = this._subnetProps
131
+ ? Object.keys(this._subnetProps).map((k) => ({
132
+ name: k,
133
+ //Link all subnets to nate gateway if available without a firewall.
134
+ enableNatGateway: this._natGatewayEnabled && !Boolean(this._firewallInstance),
135
+ //However, till able to overwrite from outside.
136
+ ...this._subnetProps[k],
137
+ }))
138
+ : [];
139
+ this._vnetInstance = (0, Vnet_1.default)({
140
+ ...this.commonProps,
141
+ ...this._vnetProps,
142
+ subnets,
143
+ natGateway: this._natGatewayInstance,
144
+ features: {
145
+ //Only create Security group when firewall is not there
146
+ securityGroup: {
147
+ enabled: !this._firewallProps,
148
+ allowOutboundInternetAccess: !Boolean(this._ipAddressInstance) && !this._natGatewayEnabled,
149
+ rules: this._securityRules,
150
+ },
151
+ //Route tables
152
+ routeTable: {
153
+ enabled: this._routeRules && this._routeRules.length > 0,
154
+ rules: this._routeRules,
155
+ },
156
+ //Firewall
157
+ firewall: this._firewallProps
158
+ ? {
159
+ ...this._firewallProps.subnet,
160
+ enableNatGateway: this._natGatewayEnabled,
161
+ }
162
+ : undefined,
163
+ //Bastion
164
+ bastion: this._bastionProps
165
+ ? {
166
+ ...this._bastionProps.subnet,
167
+ }
168
+ : undefined,
169
+ //Gateway
170
+ gatewaySubnet: this._vpnGatewayProps
171
+ ? { addressPrefix: this._vpnGatewayProps.subnetSpace }
172
+ : undefined,
173
+ },
174
+ //networkPeerings: peerings,
175
+ dependsOn: this._firewallInstance?.firewall
176
+ ? this._firewallInstance?.firewall
177
+ : this._natGatewayInstance
178
+ ? this._natGatewayInstance
179
+ : undefined,
180
+ });
181
+ }
182
+ buildFirewall() {
183
+ if (!this._firewallProps)
184
+ return;
185
+ const publicIpAddress = this._ipAddressInstance?.addresses[outboundIpName];
186
+ const firewallSubnetId = this._vnetInstance?.firewallSubnet?.apply((s) => s?.id);
187
+ const manageSubnetId = this._vnetInstance?.firewallManageSubnet?.apply((s) => s?.id);
188
+ this._firewallInstance = (0, Firewall_1.default)({
189
+ ...this.commonProps,
190
+ ...this._firewallProps,
191
+ outbound: [
192
+ {
193
+ subnetId: firewallSubnetId,
194
+ //Using Force Tunneling mode if Nat gateway is enabled.
195
+ publicIpAddress: this._natGatewayEnabled
196
+ ? undefined
197
+ : publicIpAddress,
198
+ },
199
+ ],
200
+ //This is required for Force Tunneling mode
201
+ management: manageSubnetId
202
+ ? {
203
+ subnetId: manageSubnetId,
204
+ }
205
+ : undefined,
206
+ monitorConfig: this._logInfo
207
+ ? {
208
+ logWpId: this._logInfo.logWp.id,
209
+ }
210
+ : undefined,
211
+ dependsOn: this._ipAddressInstance?.addressPrefix,
212
+ });
213
+ }
214
+ buildVpnGateway() {
215
+ if (!this._vpnGatewayProps)
216
+ return;
217
+ const subnetId = this._vnetInstance.gatewaySubnet?.apply((s) => s?.id);
218
+ if (!subnetId)
219
+ return;
220
+ this._vnpGatewayInstance = (0, VPNGateway_1.default)({
221
+ ...this.commonProps,
222
+ ...this._vpnGatewayProps,
223
+ subnetId,
224
+ dependsOn: this._vnetInstance.vnet,
225
+ });
226
+ }
227
+ buildBastion() {
228
+ if (!this._bastionProps || !this._vnetInstance?.bastionSubnet)
229
+ return;
230
+ (0, Bastion_1.default)({
231
+ ...this.commonProps,
232
+ ...this._bastionProps,
233
+ subnetId: this._vnetInstance.bastionSubnet.apply((s) => s.id),
234
+ dependsOn: [this._vnetInstance.vnet],
235
+ });
236
+ }
237
+ buildPeering() {
238
+ if (!this._peeringProps || !this._vnetInstance)
239
+ return;
240
+ this._peeringProps.forEach((p) => {
241
+ let info = undefined;
242
+ if ("groupName" in p) {
243
+ info = (0, Helper_1.getVnetInfo)(p.groupName);
244
+ }
245
+ else if ("vnetId" in p) {
246
+ info = (0, Helper_1.parseVnetInfoFromId)(p.vnetId);
247
+ }
248
+ if (info)
249
+ (0, NetworkPeering_1.default)({
250
+ direction: p.direction ?? "Bidirectional",
251
+ firstVnet: {
252
+ vnetName: this._vnetInstance.vnet.name,
253
+ resourceGroupName: this.commonProps.group.resourceGroupName,
254
+ },
255
+ secondVnet: info,
256
+ });
257
+ });
258
+ }
259
+ build() {
260
+ //this.validate();
261
+ this.buildIpAddress();
262
+ this.buildNatGateway();
263
+ this.buildVnet();
264
+ this.buildFirewall();
265
+ this.buildVpnGateway();
266
+ this.buildBastion();
267
+ this.buildPeering();
268
+ return {
269
+ publicIpAddress: this._ipAddressInstance,
270
+ firewall: this._firewallInstance,
271
+ vnet: this._vnetInstance,
272
+ natGateway: this._natGatewayInstance,
273
+ //peerings: this._peeringInstances,
274
+ vnpGateway: this._vnpGatewayInstance,
275
+ };
276
+ }
277
+ }
278
+ exports.default = (props) => new VnetBuilder(props);
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVm5ldEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQnVpbGRlci9WbmV0QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZEQUVpQztBQUdqQywrQ0FBNEQ7QUFDNUQsdUNBQWdEO0FBRWhELG1EQUE0QztBQUc1QywyREFBb0Q7QUFFcEQsbURBQTRDO0FBQzVDLG1DQWNpQjtBQUNqQiwyQ0FBa0U7QUFDbEUsNkNBQXNDO0FBRXRDLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQztBQUVsQyxNQUFNLFdBQ0osU0FBUSxlQUEyQjtJQUduQyxnQkFBZ0I7SUFDQyxZQUFZLEdBQW9DLFNBQVMsQ0FBQztJQUMxRCxVQUFVLENBQTRCO0lBQy9DLGNBQWMsR0FBc0MsU0FBUyxDQUFDO0lBQzlELGFBQWEsR0FBcUMsU0FBUyxDQUFDO0lBQzVELGtCQUFrQixHQUFhLEtBQUssQ0FBQztJQUNyQyxnQkFBZ0IsR0FBd0MsU0FBUyxDQUFDO0lBQ2xFLGNBQWMsR0FBeUMsU0FBUyxDQUFDO0lBQ2pFLFdBQVcsR0FDakIsU0FBUyxDQUFDO0lBQ0osYUFBYSxHQUFtQixFQUFFLENBQUM7SUFDbkMsUUFBUSxHQUErQixTQUFTLENBQUM7SUFDakQsT0FBTyxHQUE0QixRQUFRLENBQUM7SUFFcEQsb0JBQW9CO0lBQ1osa0JBQWtCLEdBQ3hCLFNBQVMsQ0FBQztJQUNKLGlCQUFpQixHQUErQixTQUFTLENBQUM7SUFDMUQsYUFBYSxHQUEyQixTQUFTLENBQUM7SUFDbEQsbUJBQW1CLEdBQW1DLFNBQVMsQ0FBQztJQUNoRSxtQkFBbUIsR0FDekIsU0FBUyxDQUFDO0lBRVosWUFBWSxFQUNWLE9BQU8sRUFDUCxVQUFVLEVBQ1YsYUFBYSxFQUNiLEdBQUcsV0FBVyxFQUNHO1FBQ2pCLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsVUFB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
@@ -0,0 +1,4 @@
1
+ export * from "./AksBuilder";
2
+ export * from "./VnetBuilder";
3
+ export * from "./ResourceBuilder";
4
+ export * from "./types";
@@ -0,0 +1,21 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./AksBuilder"), exports);
18
+ __exportStar(require("./VnetBuilder"), exports);
19
+ __exportStar(require("./ResourceBuilder"), exports);
20
+ __exportStar(require("./types"), exports);
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQnVpbGRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQTZCO0FBQzdCLGdEQUE4QjtBQUM5QixvREFBa0M7QUFDbEMsMENBQXdCIn0=
@@ -0,0 +1,32 @@
1
+ import * as native from "@pulumi/azure-native";
2
+ import { SshGenerationProps, SshResults } from "../../Core/KeyGenetators";
3
+ import { IBuilderAsync } from "./genericBuilder";
4
+ import { AksAccessProps, AksNetworkProps, AksNodePoolProps, AksResults, AskAddonProps, AskFeatureProps, DefaultAksNodePoolProps } from "../../Aks";
5
+ export type AskBuilderResults = {
6
+ ssh: SshResults;
7
+ aks: AksResults;
8
+ };
9
+ export type SshBuilderProps = Omit<SshGenerationProps, "vaultInfo" | "name">;
10
+ export type AksImportProps = {
11
+ id: string;
12
+ ignoreChanges?: string[];
13
+ };
14
+ export interface ISshBuilder {
15
+ withNewSsh: (props: SshBuilderProps) => IAskAuthBuilder;
16
+ }
17
+ export interface IAskAuthBuilder {
18
+ withAuth: (props: AksAccessProps) => IAksNetworkBuilder;
19
+ }
20
+ export interface IAksNetworkBuilder {
21
+ withNetwork: (props: AksNetworkProps) => IAksDefaultNodePoolBuilder;
22
+ }
23
+ export interface IAksDefaultNodePoolBuilder {
24
+ withDefaultNodePool: (props: DefaultAksNodePoolProps) => IAksBuilder;
25
+ }
26
+ export interface IAksBuilder extends IBuilderAsync<AskBuilderResults> {
27
+ withNodePool: (props: AksNodePoolProps) => IAksBuilder;
28
+ withAddon: (props: AskAddonProps) => IAksBuilder;
29
+ withFeature: (props: AskFeatureProps) => IAksBuilder;
30
+ withTier: (tier: native.containerservice.ManagedClusterSKUTier) => IAksBuilder;
31
+ import: (props: AksImportProps) => IAksBuilder;
32
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNrQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9CdWlsZGVyL3R5cGVzL2Fza0J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,26 @@
1
+ import { Input, Resource } from "@pulumi/pulumi";
2
+ import { KeyVaultInfo, ResourceGroupInfo } from "../../types";
3
+ export type BuilderProps = {
4
+ name: string;
5
+ group: ResourceGroupInfo;
6
+ vaultInfo: KeyVaultInfo;
7
+ dependsOn?: Input<Input<Resource>[]> | Input<Resource>;
8
+ };
9
+ export type CommonOmit<T> = Omit<T, keyof BuilderProps>;
10
+ export interface IBuilder<TResults> {
11
+ commonProps: BuilderProps;
12
+ build: () => TResults;
13
+ }
14
+ export declare abstract class Builder<TResults> implements IBuilder<TResults> {
15
+ commonProps: BuilderProps;
16
+ protected constructor(commonProps: BuilderProps);
17
+ abstract build(): TResults;
18
+ }
19
+ export interface IBuilderAsync<TResults> extends Omit<IBuilder<TResults>, "build"> {
20
+ build: () => Promise<TResults>;
21
+ }
22
+ export declare abstract class BuilderAsync<TResults> implements IBuilderAsync<TResults> {
23
+ commonProps: BuilderProps;
24
+ protected constructor(commonProps: BuilderProps);
25
+ abstract build(): Promise<TResults>;
26
+ }