@drunk-pulumi/azure 0.0.49 → 0.0.51

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 (108) hide show
  1. package/Aks/Helper.d.ts +3 -3
  2. package/Aks/Helper.js +16 -35
  3. package/Aks/Identity.d.ts +2 -2
  4. package/Aks/Identity.js +5 -5
  5. package/Aks/index.d.ts +19 -6
  6. package/Aks/index.js +57 -70
  7. package/Apim/Helpers.d.ts +1 -1
  8. package/Apim/Helpers.js +2 -2
  9. package/Apps/LogicApp.d.ts +3 -3
  10. package/Apps/LogicApp.js +4 -5
  11. package/AzAd/Identity.d.ts +7 -7
  12. package/AzAd/Identity.js +49 -43
  13. package/Builder/AksBuilder.d.ts +1 -1
  14. package/Builder/AksBuilder.js +5 -1
  15. package/Builder/ApimApiBuilder.d.ts +3 -3
  16. package/Builder/ApimApiBuilder.js +11 -11
  17. package/Builder/ApimBuilder.d.ts +1 -1
  18. package/Builder/ApimBuilder.js +47 -47
  19. package/Builder/ApimPolicyBuilder.d.ts +1 -1
  20. package/Builder/ApimPolicyBuilder.js +21 -21
  21. package/Builder/ApimProductBuilder.d.ts +2 -2
  22. package/Builder/ApimProductBuilder.js +27 -25
  23. package/Builder/ApimRootBuilder.d.ts +3 -3
  24. package/Builder/ApimRootBuilder.js +3 -3
  25. package/Builder/ApimWorkspaceBuilder.d.ts +2 -2
  26. package/Builder/ApimWorkspaceBuilder.js +2 -2
  27. package/Builder/DnsZoneBuilder.d.ts +2 -2
  28. package/Builder/DnsZoneBuilder.js +6 -6
  29. package/Builder/PrivateDnsZoneBuilder.d.ts +2 -2
  30. package/Builder/PrivateDnsZoneBuilder.js +6 -6
  31. package/Builder/ResourceBuilder.js +43 -13
  32. package/Builder/SqlBuilder.d.ts +1 -1
  33. package/Builder/SqlBuilder.js +2 -2
  34. package/Builder/StorageBuilder.d.ts +1 -1
  35. package/Builder/StorageBuilder.js +7 -7
  36. package/Builder/VaultBuilder.d.ts +7 -4
  37. package/Builder/VaultBuilder.js +11 -5
  38. package/Builder/VdiBuilder.d.ts +1 -2
  39. package/Builder/VdiBuilder.js +7 -7
  40. package/Builder/VmBuilder.d.ts +1 -1
  41. package/Builder/VmBuilder.js +4 -4
  42. package/Builder/types/genericBuilder.d.ts +7 -6
  43. package/Builder/types/genericBuilder.js +1 -1
  44. package/Builder/types/resourceBuilder.d.ts +3 -3
  45. package/Builder/types/vaultBuilder.d.ts +3 -4
  46. package/Cdn/CdnEndpoint.d.ts +2 -2
  47. package/Cdn/CdnEndpoint.js +19 -19
  48. package/Cdn/index.d.ts +4 -6
  49. package/Cdn/index.js +4 -5
  50. package/Common/AzureEnv.d.ts +6 -10
  51. package/Common/AzureEnv.js +16 -16
  52. package/Common/GlobalEnv.js +2 -2
  53. package/ContainerRegistry/index.d.ts +6 -16
  54. package/ContainerRegistry/index.js +25 -34
  55. package/Core/ResourceCreator.d.ts +5 -4
  56. package/Core/ResourceCreator.js +4 -5
  57. package/Core/ResourceGroup.d.ts +3 -3
  58. package/Core/ResourceGroup.js +3 -4
  59. package/CosmosDb/index.js +6 -4
  60. package/KeyVault/Helper.d.ts +3 -3
  61. package/KeyVault/Helper.js +16 -12
  62. package/KeyVault/index.d.ts +2 -3
  63. package/KeyVault/index.js +13 -13
  64. package/Logs/AppInsight.d.ts +3 -3
  65. package/Logs/AppInsight.js +10 -10
  66. package/Logs/Helpers.d.ts +4 -4
  67. package/Logs/Helpers.js +16 -16
  68. package/MySql/index.d.ts +5 -5
  69. package/MySql/index.js +22 -22
  70. package/Postgresql/index.d.ts +4 -4
  71. package/Postgresql/index.js +21 -21
  72. package/RedisCache/index.d.ts +2 -2
  73. package/RedisCache/index.js +14 -14
  74. package/ServiceBus/index.d.ts +11 -11
  75. package/ServiceBus/index.js +20 -18
  76. package/SignalR/index.d.ts +5 -5
  77. package/SignalR/index.js +18 -18
  78. package/Sql/SqlDb.d.ts +5 -5
  79. package/Sql/SqlDb.js +7 -7
  80. package/Sql/index.d.ts +10 -10
  81. package/Sql/index.js +43 -41
  82. package/Storage/Helper.d.ts +3 -3
  83. package/Storage/Helper.js +8 -8
  84. package/Storage/index.d.ts +9 -9
  85. package/Storage/index.js +26 -24
  86. package/VM/index.d.ts +11 -11
  87. package/VM/index.js +15 -15
  88. package/VNet/Firewall.d.ts +7 -7
  89. package/VNet/Firewall.js +15 -15
  90. package/VNet/FirewallPolicy.d.ts +5 -5
  91. package/VNet/FirewallPolicy.js +8 -8
  92. package/VNet/Helper.d.ts +5 -5
  93. package/VNet/Helper.js +19 -19
  94. package/VNet/PrivateEndpoint.d.ts +2 -2
  95. package/VNet/PrivateEndpoint.js +4 -4
  96. package/VNet/VirtualWAN.d.ts +6 -6
  97. package/VNet/VirtualWAN.js +5 -5
  98. package/VNet/Vnet.d.ts +8 -8
  99. package/VNet/Vnet.js +13 -13
  100. package/VNet/index.d.ts +2 -2
  101. package/Web/AppCertOrder.d.ts +5 -12
  102. package/Web/AppCertOrder.js +9 -15
  103. package/Web/AppConfig.d.ts +2 -2
  104. package/Web/AppConfig.js +8 -8
  105. package/Web/AppGateway.d.ts +2 -2
  106. package/Web/AppGateway.js +3 -3
  107. package/package.json +7 -7
  108. package/types.d.ts +45 -57
package/Aks/Helper.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { KeyVaultInfo, ResourceInfo, ResourceType } from "../types";
2
- import { Output } from "@pulumi/pulumi";
1
+ import { KeyVaultInfo, ResourceInfo } from '../types';
2
+ import { Output } from '@pulumi/pulumi';
3
3
  /** Get AKS Config from Managed Cluster*/
4
4
  export declare const getAksConfig: ({ name, groupName, formattedName, disableLocalAccounts, }: {
5
5
  name: string;
@@ -14,4 +14,4 @@ export declare const getAksVaultConfig: ({ name, version, vaultInfo, formattedNa
14
14
  vaultInfo: KeyVaultInfo;
15
15
  formattedName?: boolean;
16
16
  }) => Promise<string>;
17
- export declare const getAksPrivateDnz: ({ name, groupName, formattedName, }: ResourceType) => Output<ResourceInfo | undefined>;
17
+ export declare const getAksPrivateDnz: (aksInfo: ResourceInfo) => Output<ResourceInfo | undefined>;
package/Aks/Helper.js CHANGED
@@ -24,74 +24,55 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.getAksPrivateDnz = exports.getAksVaultConfig = exports.getAksConfig = void 0;
27
- const containerservice = __importStar(require("@pulumi/azure-native/containerservice"));
28
- const Naming_1 = require("../Common/Naming");
27
+ const cs = __importStar(require("@pulumi/azure-native/containerservice"));
28
+ const Common_1 = require("../Common");
29
29
  const Helper_1 = require("../KeyVault/Helper");
30
30
  const pulumi_1 = require("@pulumi/pulumi");
31
31
  const AzureEnv_1 = require("../Common/AzureEnv");
32
32
  /** Get AKS Config from Managed Cluster*/
33
33
  const getAksConfig = async ({ name, groupName, formattedName, disableLocalAccounts, }) => {
34
- const aksName = formattedName ? name : (0, Naming_1.getAksName)(name);
35
- const group = formattedName ? groupName : (0, Naming_1.getResourceGroupName)(groupName);
34
+ const aksName = formattedName ? name : (0, Common_1.getAksName)(name);
35
+ const group = formattedName ? groupName : (0, Common_1.getResourceGroupName)(groupName);
36
36
  const aks = disableLocalAccounts
37
- ? await containerservice.listManagedClusterUserCredentials({
37
+ ? await cs.listManagedClusterUserCredentials({
38
38
  resourceName: aksName,
39
39
  resourceGroupName: group,
40
40
  })
41
- : await containerservice.listManagedClusterAdminCredentials({
41
+ : await cs.listManagedClusterAdminCredentials({
42
42
  resourceName: aksName,
43
43
  resourceGroupName: group,
44
44
  });
45
- return Buffer.from(aks.kubeconfigs[0].value, "base64").toString("utf8");
45
+ return Buffer.from(aks.kubeconfigs[0].value, 'base64').toString('utf8');
46
46
  };
47
47
  exports.getAksConfig = getAksConfig;
48
48
  /** Get AKS Config from Key Vault*/
49
49
  const getAksVaultConfig = async ({ name, version, vaultInfo, formattedName, }) => {
50
- const aksName = formattedName ? name : (0, Naming_1.getAksName)(name);
50
+ const aksName = formattedName ? name : (0, Common_1.getAksName)(name);
51
51
  const rs = await (0, Helper_1.getSecret)({
52
52
  name: `${aksName}-config`,
53
53
  version,
54
54
  vaultInfo,
55
55
  nameFormatted: false,
56
56
  });
57
- return rs?.value || "";
57
+ return rs?.value || '';
58
58
  };
59
59
  exports.getAksVaultConfig = getAksVaultConfig;
60
- const getAksPrivateDnz = ({ name, groupName, formattedName, }) => {
61
- name = formattedName ? name : (0, Naming_1.getAksName)(name);
62
- groupName = formattedName ? groupName : (0, Naming_1.getResourceGroupName)(groupName);
63
- const aks = containerservice.getManagedClusterOutput({
64
- resourceName: name,
65
- resourceGroupName: groupName,
60
+ const getAksPrivateDnz = (aksInfo) => {
61
+ const aks = cs.getManagedClusterOutput({
62
+ resourceName: aksInfo.name,
63
+ resourceGroupName: aksInfo.group.resourceGroupName,
66
64
  });
67
65
  return aks.apply((a) => {
68
66
  if (!a.privateFQDN)
69
67
  return undefined;
70
- const dnsName = a.privateFQDN.split(":").slice(1).join(".");
68
+ const dnsName = a.privateFQDN.split(':').slice(1).join('.');
71
69
  const rsGroup = a.nodeResourceGroup;
72
70
  return {
73
- resourceName: dnsName,
71
+ name: dnsName,
74
72
  group: { resourceGroupName: rsGroup, location: AzureEnv_1.currentRegionName },
75
73
  id: (0, pulumi_1.interpolate) `/subscriptions/${AzureEnv_1.subscriptionId}/resourceGroups/${rsGroup}/providers/Microsoft.Network/privateDnsZones/${dnsName}`,
76
74
  };
77
75
  });
78
76
  };
79
77
  exports.getAksPrivateDnz = getAksPrivateDnz;
80
- // export const linkAksPrivateDnzVnet = ({
81
- // vnetId,
82
- // name,
83
- // groupName,
84
- // formattedName,
85
- // }: ResourceType & { vnetId: Output<string> }) => {
86
- // const dns = getAksPrivateDnz({ name, groupName, formattedName });
87
- // return dns.apply((d) => {
88
- // if (!d) return;
89
- // return linkVnetToPrivateDns({
90
- // name,
91
- // group: d.group,
92
- // zoneName: d.resourceName,
93
- // vnetId,
94
- // });
95
- // });
96
- // };
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Frcy9IZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3RkFBMEU7QUFDMUUsNkNBQW9FO0FBRXBFLCtDQUErQztBQUMvQywyQ0FBcUQ7QUFDckQsaURBQXVFO0FBRXZFLHlDQUF5QztBQUNsQyxNQUFNLFlBQVksR0FBRyxLQUFLLEVBQUUsRUFDakMsSUFBSSxFQUNKLFNBQVMsRUFDVCxhQUFhLEVBQ2Isb0JBQW9CLEdBTXJCLEVBQW1CLEVBQUU7SUFDcEIsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUEsbUJBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBQSw2QkFBb0IsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUUxRSxNQUFNLEdBQUcsR0FBRyxvQkFBb0I7UUFDOUIsQ0FBQyxDQUFDLE1BQU0sZ0JBQWdCLENBQUMsaUNBQWlDLENBQUM7WUFDdkQsWUFBWSxFQUFFLE9BQU87WUFDckIsaUJBQWlCLEVBQUUsS0FBSztTQUN6QixDQUFDO1FBQ0osQ0FBQyxDQUFDLE1BQU0sZ0JBQWdCLENBQUMsa0NBQWtDLENBQUM7WUFDeEQsWUFBWSxFQUFFLE9BQU87WUFDckIsaUJBQWlCLEVBQUUsS0FBSztTQUN6QixDQUFDLENBQUM7SUFFUCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFFLENBQUMsQ0FBQztBQXpCVyxRQUFBLFlBQVksZ0JBeUJ2QjtBQUVGLG1DQUFtQztBQUM1QixNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFBRSxFQUN0QyxJQUFJLEVBQ0osT0FBTyxFQUNQLFNBQVMsRUFDVCxhQUFhLEdBTWQsRUFBbUIsRUFBRTtJQUNwQixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBQSxtQkFBVSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSxrQkFBUyxFQUFDO1FBQ3pCLElBQUksRUFBRSxHQUFHLE9BQU8sU0FBUztRQUN6QixPQUFPO1FBQ1AsU0FBUztRQUNULGFBQWEsRUFBRSxLQUFLO0tBQ3JCLENBQUMsQ0FBQztJQUNILE9BQU8sRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7QUFDekIsQ0FBQyxDQUFDO0FBbkJXLFFBQUEsaUJBQWlCLHFCQW1CNUI7QUFFSyxNQUFNLGdCQUFnQixHQUFHLENBQUMsRUFDL0IsSUFBSSxFQUNKLFNBQVMsRUFDVCxhQUFhLEdBQ0EsRUFBb0MsRUFBRTtJQUNuRCxJQUFJLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUEsbUJBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUMvQyxTQUFTLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUEsNkJBQW9CLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEUsTUFBTSxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUM7UUFDbkQsWUFBWSxFQUFFLElBQUk7UUFDbEIsaUJBQWlCLEVBQUUsU0FBUztLQUM3QixDQUFDLENBQUM7SUFFSCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNyQixJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVc7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUNyQyxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVELE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxpQkFBa0IsQ0FBQztRQUVyQyxPQUFPO1lBQ0wsWUFBWSxFQUFFLE9BQU87WUFDckIsS0FBSyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSw0QkFBaUIsRUFBRTtZQUNsRSxFQUFFLEVBQUUsSUFBQSxvQkFBVyxFQUFBLGtCQUFrQix5QkFBYyxtQkFBbUIsT0FBTyxnREFBZ0QsT0FBTyxFQUFFO1NBQ25ILENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUF4QlcsUUFBQSxnQkFBZ0Isb0JBd0IzQjtBQUVGLDBDQUEwQztBQUMxQyxZQUFZO0FBQ1osVUFBVTtBQUNWLGVBQWU7QUFDZixtQkFBbUI7QUFDbkIscURBQXFEO0FBQ3JELHNFQUFzRTtBQUN0RSw4QkFBOEI7QUFDOUIsc0JBQXNCO0FBQ3RCLG9DQUFvQztBQUNwQyxjQUFjO0FBQ2Qsd0JBQXdCO0FBQ3hCLGtDQUFrQztBQUNsQyxnQkFBZ0I7QUFDaEIsVUFBVTtBQUNWLFFBQVE7QUFDUixLQUFLIn0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Frcy9IZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwRUFBNEQ7QUFDNUQsc0NBQTZEO0FBRTdELCtDQUErQztBQUMvQywyQ0FBcUQ7QUFDckQsaURBQXVFO0FBRXZFLHlDQUF5QztBQUNsQyxNQUFNLFlBQVksR0FBRyxLQUFLLEVBQUUsRUFDakMsSUFBSSxFQUNKLFNBQVMsRUFDVCxhQUFhLEVBQ2Isb0JBQW9CLEdBTXJCLEVBQW1CLEVBQUU7SUFDcEIsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUEsbUJBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBQSw2QkFBb0IsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUUxRSxNQUFNLEdBQUcsR0FBRyxvQkFBb0I7UUFDOUIsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLGlDQUFpQyxDQUFDO1lBQ3pDLFlBQVksRUFBRSxPQUFPO1lBQ3JCLGlCQUFpQixFQUFFLEtBQUs7U0FDekIsQ0FBQztRQUNKLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQztZQUMxQyxZQUFZLEVBQUUsT0FBTztZQUNyQixpQkFBaUIsRUFBRSxLQUFLO1NBQ3pCLENBQUMsQ0FBQztJQUVQLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDMUUsQ0FBQyxDQUFDO0FBekJXLFFBQUEsWUFBWSxnQkF5QnZCO0FBRUYsbUNBQW1DO0FBQzVCLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxFQUFFLEVBQ3RDLElBQUksRUFDSixPQUFPLEVBQ1AsU0FBUyxFQUNULGFBQWEsR0FNZCxFQUFtQixFQUFFO0lBQ3BCLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFBLG1CQUFVLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLGtCQUFTLEVBQUM7UUFDekIsSUFBSSxFQUFFLEdBQUcsT0FBTyxTQUFTO1FBQ3pCLE9BQU87UUFDUCxTQUFTO1FBQ1QsYUFBYSxFQUFFLEtBQUs7S0FDckIsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztBQUN6QixDQUFDLENBQUM7QUFuQlcsUUFBQSxpQkFBaUIscUJBbUI1QjtBQUVLLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDOUIsT0FBcUIsRUFDYSxFQUFFO0lBQ3BDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztRQUNyQyxZQUFZLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDMUIsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUI7S0FDbkQsQ0FBQyxDQUFDO0lBRUgsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDckIsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDckMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1RCxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsaUJBQWtCLENBQUM7UUFFckMsT0FBTztZQUNMLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSw0QkFBaUIsRUFBRTtZQUNsRSxFQUFFLEVBQUUsSUFBQSxvQkFBVyxFQUFBLGtCQUFrQix5QkFBYyxtQkFBbUIsT0FBTyxnREFBZ0QsT0FBTyxFQUFFO1NBQ25ILENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFuQlcsUUFBQSxnQkFBZ0Isb0JBbUIzQiJ9
package/Aks/Identity.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { BasicArgs, KeyVaultInfo } from "../types";
1
+ import { BasicArgs, KeyVaultInfo } from '../types';
2
2
  interface Props extends BasicArgs {
3
3
  name: string;
4
- vaultInfo: KeyVaultInfo;
4
+ vaultInfo?: KeyVaultInfo;
5
5
  }
6
6
  declare const _default: ({ name, vaultInfo, dependsOn }: Props) => import("../AzAd/Identity").IdentityResult;
7
7
  export default _default;
package/Aks/Identity.js CHANGED
@@ -10,24 +10,24 @@ const AzureEnv_1 = require("../Common/AzureEnv");
10
10
  //** The AzAD app Identity for Azure Kubernetes for RBAC */
11
11
  exports.default = ({ name, vaultInfo, dependsOn }) => {
12
12
  //AKS need this permission for AAD integration
13
- const graphAccess = (0, GraphDefinition_1.getGraphPermissions)({ name: "User.Read", type: "Scope" }, { name: "Group.Read.All", type: "Scope" },
13
+ const graphAccess = (0, GraphDefinition_1.getGraphPermissions)({ name: 'User.Read', type: 'Scope' }, { name: 'Group.Read.All', type: 'Scope' },
14
14
  //{ name: 'Directory.Read.All', type: 'Scope' },
15
- { name: "Directory.Read.All", type: "Role" });
15
+ { name: 'Directory.Read.All', type: 'Role' });
16
16
  const serverIdentity = (0, Identity_1.default)({
17
17
  name,
18
18
  createClientSecret: true,
19
19
  createPrincipal: true,
20
20
  requiredResourceAccesses: [graphAccess],
21
21
  publicClient: false,
22
- appType: "api",
22
+ appType: 'api',
23
23
  vaultInfo,
24
24
  dependsOn,
25
25
  });
26
26
  (0, RoleAssignment_1.roleAssignment)({
27
27
  name: `${name}-aks-identity-acr-pull`,
28
28
  principalId: serverIdentity.principalId,
29
- principalType: "ServicePrincipal",
30
- roleName: "AcrPull",
29
+ principalType: 'ServicePrincipal',
30
+ roleName: 'AcrPull',
31
31
  scope: AzureEnv_1.defaultScope,
32
32
  dependsOn: serverIdentity.resource,
33
33
  });
package/Aks/index.d.ts CHANGED
@@ -38,8 +38,6 @@ export interface NodePoolProps extends Partial<inputs.containerservice.ManagedCl
38
38
  }
39
39
  export type AskAddonProps = {
40
40
  enableAzureKeyVault?: boolean;
41
- enableAzurePolicy?: boolean;
42
- enableKubeDashboard?: boolean;
43
41
  enableVirtualHost?: boolean;
44
42
  applicationGateway?: {
45
43
  gatewaySubnetId: pulumi.Input<string>;
@@ -49,10 +47,11 @@ export type AskFeatureProps = {
49
47
  enablePrivateCluster?: boolean;
50
48
  enableAutoScale?: boolean;
51
49
  enablePodIdentity?: boolean;
50
+ enableWorkloadIdentity?: boolean;
52
51
  enableDiagnosticSetting?: boolean;
53
52
  };
54
53
  export type AksAccessProps = {
55
- envRoles: EnvRolesResults;
54
+ envRoles?: EnvRolesResults;
56
55
  authorizedIPRanges?: Input<string>[];
57
56
  disableLocalAccounts?: boolean;
58
57
  };
@@ -71,6 +70,20 @@ export interface AksProps extends BasicResourceArgs {
71
70
  addon?: AskAddonProps;
72
71
  features?: AskFeatureProps;
73
72
  aksAccess: AksAccessProps;
73
+ storageProfile?: {
74
+ blobCSIDriver: {
75
+ enabled: boolean;
76
+ };
77
+ diskCSIDriver: {
78
+ enabled: boolean;
79
+ };
80
+ fileCSIDriver: {
81
+ enabled: boolean;
82
+ };
83
+ snapshotController: {
84
+ enabled: boolean;
85
+ };
86
+ };
74
87
  acr?: {
75
88
  enable: boolean;
76
89
  id: Input<string>;
@@ -82,7 +95,7 @@ export interface AksProps extends BasicResourceArgs {
82
95
  sshKeys: Array<pulumi.Input<string>>;
83
96
  };
84
97
  nodePools?: Array<AksNodePoolProps>;
85
- vaultInfo: KeyVaultInfo;
98
+ vaultInfo?: KeyVaultInfo;
86
99
  logWpId?: Input<string>;
87
100
  /**Lock resource from delete*/
88
101
  lock?: boolean;
@@ -91,7 +104,7 @@ export type AksResults = ResourceInfo & {
91
104
  serviceIdentity: IdentityResult;
92
105
  aks: ManagedCluster;
93
106
  disableLocalAccounts?: boolean;
94
- getKubeConfig: () => Output<string>;
107
+ getKubeConfig: () => Output<string> | undefined;
95
108
  };
96
- declare const _default: ({ group, name, linux, defaultNodePool, nodePools, network, logWpId, acr, aksAccess, vaultInfo, features, addon, tier, lock, dependsOn, importUri, ignoreChanges, }: AksProps) => Promise<AksResults>;
109
+ declare const _default: ({ group, name, linux, defaultNodePool, nodePools, network, logWpId, acr, aksAccess, vaultInfo, features, storageProfile, addon, tier, lock, dependsOn, importUri, ignoreChanges, }: AksProps) => Promise<AksResults>;
97
110
  export default _default;
package/Aks/index.js CHANGED
@@ -104,42 +104,32 @@ var VmSizes;
104
104
  VmSizes["Standard_A4m_v2"] = "Standard_A4m_v2";
105
105
  })(VmSizes || (exports.VmSizes = VmSizes = {}));
106
106
  //Using this to enable the preview feature https://azurecloudai.blog/2019/10/16/aks-enabling-and-using-preview-features-such-as-nodepools-using-cli/
107
- exports.default = async ({ group, name, linux, defaultNodePool, nodePools, network, logWpId, acr, aksAccess, vaultInfo, features = { enableDiagnosticSetting: true }, addon = {
108
- enableAzurePolicy: true,
107
+ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, network, logWpId, acr, aksAccess, vaultInfo, features = { enableDiagnosticSetting: true }, storageProfile, addon = {
109
108
  enableAzureKeyVault: false,
110
- enableKubeDashboard: false,
111
109
  }, tier = native.containerservice.ManagedClusterSKUTier.Free, lock = true, dependsOn = [], importUri, ignoreChanges = [], }) => {
112
110
  const aksName = (0, Common_1.getAksName)(name);
113
111
  const secretName = `${aksName}-config`;
114
112
  const acrScope = acr?.enable ? acr.id ?? AzureEnv_1.defaultScope : undefined;
115
113
  const nodeResourceGroup = (0, Common_1.getResourceGroupName)(`${aksName}-nodes`);
116
114
  //Auto detect and disable Local Account
117
- if (aksAccess.disableLocalAccounts === undefined) {
115
+ if (aksAccess.disableLocalAccounts === undefined && vaultInfo) {
118
116
  aksAccess.disableLocalAccounts = await (0, KeyVaultBase_1.getKeyVaultBase)(vaultInfo.name)
119
117
  .checkSecretExist(secretName)
120
118
  .catch(() => false);
121
119
  }
122
- if (ignoreChanges.length <= 0) {
123
- ignoreChanges.push('privateLinkResources', 'networkProfile', 'linuxProfile', 'windowsProfile');
124
- }
120
+ //Add Default Ignoring properties
121
+ ignoreChanges.push('privateLinkResources', 'networkProfile', 'nodeResourceGroup', 'linuxProfile', 'windowsProfile');
125
122
  const serviceIdentity = (0, Identity_1.default)({
126
123
  name: aksName,
127
124
  vaultInfo,
128
125
  dependsOn,
129
126
  });
130
- //=================Validate ===================================/
131
- // if (!linux?.sshKeys || !linux.sshKeys[0]) {
132
- // console.error("Aks sshKeys is required:", name);
133
- // return undefined;
134
- // }
135
127
  //Create AKS Cluster
136
128
  const aks = new native.containerservice.ManagedCluster(aksName, {
137
129
  resourceName: aksName,
138
130
  ...group,
139
131
  nodeResourceGroup,
140
132
  dnsPrefix: aksName,
141
- //fqdnSubdomain: '',
142
- //kubernetesVersion,
143
133
  apiServerAccessProfile: {
144
134
  authorizedIPRanges: features?.enablePrivateCluster
145
135
  ? undefined
@@ -147,7 +137,7 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
147
137
  disableRunCommand: true,
148
138
  enablePrivateCluster: features?.enablePrivateCluster,
149
139
  enablePrivateClusterPublicFQDN: true,
150
- privateDNSZone: 'system',
140
+ privateDNSZone: features?.enablePrivateCluster ? 'system' : undefined,
151
141
  },
152
142
  addonProfiles: {
153
143
  azureKeyvaultSecretsProvider: {
@@ -158,8 +148,8 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
158
148
  : undefined,
159
149
  enabled: Boolean(addon.enableAzureKeyVault),
160
150
  },
161
- azurePolicy: { enabled: Boolean(addon.enableAzurePolicy) },
162
- kubeDashboard: { enabled: Boolean(addon.enableKubeDashboard) },
151
+ azurePolicy: { enabled: true },
152
+ kubeDashboard: { enabled: false },
163
153
  httpApplicationRouting: { enabled: false },
164
154
  aciConnectorLinux: {
165
155
  enabled: Boolean(network.virtualHostSubnetName),
@@ -198,12 +188,6 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
198
188
  env: AzureEnv_1.currentEnv,
199
189
  nodeType: 'System',
200
190
  enableAutoScaling: features?.enableAutoScale,
201
- // powerState: {
202
- // code: "Running",
203
- // },
204
- // upgradeSettings: {
205
- // maxSurge: "10%",
206
- // },
207
191
  }),
208
192
  name: 'defaultnodes',
209
193
  mode: 'System',
@@ -255,6 +239,7 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
255
239
  clientId: serviceIdentity.clientId,
256
240
  secret: serviceIdentity.clientSecret,
257
241
  },
242
+ oidcIssuerProfile: { enabled: Boolean(features?.enableWorkloadIdentity) },
258
243
  securityProfile: {
259
244
  defender: logWpId && AzureEnv_1.isPrd
260
245
  ? {
@@ -263,7 +248,9 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
263
248
  }
264
249
  : undefined,
265
250
  imageCleaner: { enabled: true, intervalHours: 24 },
266
- workloadIdentity: { enabled: false },
251
+ workloadIdentity: {
252
+ enabled: Boolean(features?.enableWorkloadIdentity),
253
+ },
267
254
  },
268
255
  podIdentityProfile: features.enablePodIdentity
269
256
  ? {
@@ -281,23 +268,15 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
281
268
  },
282
269
  disableLocalAccounts: Boolean(aksAccess.disableLocalAccounts),
283
270
  enableRBAC: true,
284
- aadProfile: {
285
- enableAzureRBAC: true,
286
- managed: true,
287
- adminGroupObjectIDs: [aksAccess.envRoles.admin.objectId],
288
- tenantID: AzureEnv_1.tenantId,
289
- },
290
- oidcIssuerProfile: { enabled: false },
291
- storageProfile: {
292
- blobCSIDriver: {
293
- enabled: true,
294
- },
295
- diskCSIDriver: {
296
- enabled: true,
297
- },
298
- fileCSIDriver: { enabled: true },
299
- snapshotController: { enabled: true },
300
- },
271
+ aadProfile: aksAccess.envRoles
272
+ ? {
273
+ enableAzureRBAC: true,
274
+ managed: true,
275
+ adminGroupObjectIDs: [aksAccess.envRoles.admin.objectId],
276
+ tenantID: AzureEnv_1.tenantId,
277
+ }
278
+ : undefined,
279
+ storageProfile,
301
280
  networkProfile: {
302
281
  networkMode: native.containerservice.NetworkMode.Transparent,
303
282
  networkPolicy: native.containerservice.NetworkPolicy.Azure,
@@ -389,13 +368,15 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
389
368
  roleName: 'AcrPull',
390
369
  scope: acrScope,
391
370
  });
392
- (0, CustomHelper_1.addCustomSecret)({
393
- name: `${name}-identity-clientId`,
394
- value: identityProfile['kubeletidentity'].clientId,
395
- dependsOn: aks,
396
- contentType: name,
397
- vaultInfo,
398
- });
371
+ if (vaultInfo) {
372
+ (0, CustomHelper_1.addCustomSecret)({
373
+ name: `${name}-identity-clientId`,
374
+ value: identityProfile['kubeletidentity'].clientId,
375
+ dependsOn: aks,
376
+ contentType: name,
377
+ vaultInfo,
378
+ });
379
+ }
399
380
  }
400
381
  if (network.subnetId && identity) {
401
382
  (0, RoleAssignment_1.roleAssignment)({
@@ -416,16 +397,18 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
416
397
  formattedName: true,
417
398
  disableLocalAccounts: aksAccess.disableLocalAccounts,
418
399
  });
419
- (0, CustomHelper_1.addCustomSecret)({
420
- name: secretName,
421
- value: config,
422
- formattedName: true,
423
- dependsOn: aks,
424
- contentType: aksAccess.disableLocalAccounts
425
- ? `${name}-UserCredentials`
426
- : `${name}-AdminCredentials`,
427
- vaultInfo,
428
- });
400
+ if (vaultInfo) {
401
+ (0, CustomHelper_1.addCustomSecret)({
402
+ name: secretName,
403
+ value: config,
404
+ formattedName: true,
405
+ dependsOn: aks,
406
+ contentType: aksAccess.disableLocalAccounts
407
+ ? `${name}-UserCredentials`
408
+ : `${name}-AdminCredentials`,
409
+ vaultInfo,
410
+ });
411
+ }
429
412
  //Diagnostic
430
413
  if (features.enableDiagnosticSetting && logWpId) {
431
414
  (0, Helpers_1.createDiagnostic)({
@@ -442,24 +425,28 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
442
425
  ],
443
426
  dependsOn: aks,
444
427
  });
445
- //Apply monitoring for VMScale Sets
446
- (0, VmSetMonitor_1.default)({
447
- group: { resourceGroupName: nodeResourceGroup },
448
- logWpId,
449
- vaultInfo,
450
- dependsOn: aks,
451
- });
428
+ if (vaultInfo) {
429
+ //Apply monitoring for VMScale Sets
430
+ (0, VmSetMonitor_1.default)({
431
+ group: { resourceGroupName: nodeResourceGroup },
432
+ logWpId,
433
+ vaultInfo,
434
+ dependsOn: aks,
435
+ });
436
+ }
452
437
  }
453
438
  });
454
439
  return {
455
- resourceName: name,
440
+ name,
456
441
  group,
457
442
  id: aks.id,
458
443
  aks,
459
444
  serviceIdentity,
460
- getKubeConfig: () => (0, pulumi_1.output)((0, KeyVaultBase_1.getKeyVaultBase)(vaultInfo.name)
461
- .getSecret(secretName)
462
- .then((s) => s.value)),
445
+ getKubeConfig: () => vaultInfo
446
+ ? (0, pulumi_1.output)((0, KeyVaultBase_1.getKeyVaultBase)(vaultInfo.name)
447
+ .getSecret(secretName)
448
+ .then((s) => s.value))
449
+ : undefined,
463
450
  };
464
451
  };
465
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQWtzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStDO0FBQy9DLHVEQUF5QztBQUN6QywyQ0FBdUQ7QUFDdkQsa0VBQTJDO0FBRTNDLGlEQVE0QjtBQUM1Qiw0REFBb0M7QUFDcEMsMERBQTRDO0FBQzVDLGlEQUEyQztBQUMzQyw2Q0FBbUQ7QUFDbkQsc0NBQTZEO0FBQzdELDJEQUF3RDtBQUV4RCxxQ0FBd0M7QUFDeEMsMkRBQTJEO0FBRTNELG9GQUFvRjtBQUlwRixNQUFNLFlBQVksR0FBRyxDQUFDLEVBQ3BCLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsR0FBRyxHQUtKLEVBQUUsRUFBRTtJQUNILE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNwQixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDbkIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBRWpCLElBQUksR0FBRyxLQUFLLHVCQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsUUFBUSxRQUFRLEVBQUUsQ0FBQztZQUNqQixLQUFLLE1BQU07Z0JBQ1QsUUFBUSxHQUFHLENBQUMsQ0FBQztnQkFDYixNQUFNO1lBRVIsS0FBSyxTQUFTLENBQUM7WUFDZixLQUFLLFFBQVEsQ0FBQztZQUNkO2dCQUNFLFFBQVEsR0FBRyxDQUFDLENBQUM7Z0JBQ2IsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLGlCQUFpQjtRQUNqQixTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNwRCxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNsRCxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUztLQUNuRCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRztJQUMzQixpQkFBaUIsRUFBRSxnQkFBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7SUFDdEQsSUFBSSxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsdUJBQXVCO0lBQ25FLE1BQU0sRUFBRSxjQUFjO0lBRXRCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsVUFBVSxFQUFFLEtBQUs7SUFDakIsa0JBQWtCLEVBQUUsS0FBSztJQUN6QixnQ0FBZ0M7SUFFaEMsY0FBYyxFQUFFLGdCQUFLO0lBQ3JCLFlBQVksRUFBRSxHQUFHO0lBQ2pCLFVBQVUsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLE9BQU87SUFFdEQsVUFBVSxFQUFFO1FBQ1YsV0FBVyxFQUFFLHFCQUFVO1FBQ3ZCLEtBQUssRUFBTCxnQkFBSztLQUNOO0NBQ0YsQ0FBQztBQUVGLElBQVksT0FxQlg7QUFyQkQsV0FBWSxPQUFPO0lBQ2pCLCtCQUErQjtJQUMvQixnREFBcUMsQ0FBQTtJQUNyQyw2QkFBNkI7SUFDN0IsMENBQStCLENBQUE7SUFDL0IsK0JBQStCO0lBQy9CLDBDQUErQixDQUFBO0lBQy9CLDRCQUE0QjtJQUM1QixnREFBcUMsQ0FBQTtJQUNyQyw0QkFBNEI7SUFDNUIsOENBQW1DLENBQUE7SUFDbkMsNEJBQTRCO0lBQzVCLDhDQUFtQyxDQUFBO0lBQ25DLCtCQUErQjtJQUMvQixnREFBcUMsQ0FBQTtJQUNyQyw2QkFBNkI7SUFDN0IsNENBQWlDLENBQUE7SUFDakMsOEJBQThCO0lBQzlCLDRDQUFpQyxDQUFBO0lBQ2pDLCtCQUErQjtJQUMvQiw4Q0FBbUMsQ0FBQTtBQUNyQyxDQUFDLEVBckJXLE9BQU8sdUJBQVAsT0FBTyxRQXFCbEI7QUErRUQsb0pBQW9KO0FBQ3BKLGtCQUFlLEtBQUssRUFBRSxFQUNwQixLQUFLLEVBQ0wsSUFBSSxFQUNKLEtBQUssRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULE9BQU8sRUFDUCxPQUFPLEVBQ1AsR0FBRyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBQ1QsUUFBUSxHQUFHLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLEVBQzVDLEtBQUssR0FBRztJQUNOLGlCQUFpQixFQUFFLElBQUk7SUFDdkIsbUJBQW1CLEVBQUUsS0FBSztJQUMxQixtQkFBbUIsRUFBRSxLQUFLO0NBQzNCLEVBQ0QsSUFBSSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQ3pELElBQUksR0FBRyxJQUFJLEVBQ1gsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEVBQ1QsYUFBYSxHQUFHLEVBQUUsR0FDVCxFQUF1QixFQUFFO0lBQ2xDLE1BQU0sT0FBTyxHQUFHLElBQUEsbUJBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxNQUFNLFVBQVUsR0FBRyxHQUFHLE9BQU8sU0FBUyxDQUFDO0lBQ3ZDLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksdUJBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2xFLE1BQU0saUJBQWlCLEdBQUcsSUFBQSw2QkFBb0IsRUFBQyxHQUFHLE9BQU8sUUFBUSxDQUFDLENBQUM7SUFFbkUsdUNBQXVDO0lBQ3ZDLElBQUksU0FBUyxDQUFDLG9CQUFvQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2pELFNBQVMsQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLElBQUEsOEJBQWUsRUFBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2FBQ25FLGdCQUFnQixDQUFDLFVBQVUsQ0FBQzthQUM1QixLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksYUFBYSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM5QixhQUFhLENBQUMsSUFBSSxDQUNoQixzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxnQkFBZ0IsQ0FDakIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLGVBQWUsR0FBRyxJQUFBLGtCQUFrQixFQUFDO1FBQ3pDLElBQUksRUFBRSxPQUFPO1FBQ2IsU0FBUztRQUNULFNBQVM7S0FDVixDQUFDLENBQUM7SUFFSCxnRUFBZ0U7SUFDaEUsOENBQThDO0lBQzlDLHFEQUFxRDtJQUNyRCxzQkFBc0I7SUFDdEIsSUFBSTtJQUVKLG9CQUFvQjtJQUNwQixNQUFNLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQ3BELE9BQU8sRUFDUDtRQUNFLFlBQVksRUFBRSxPQUFPO1FBQ3JCLEdBQUcsS0FBSztRQUNSLGlCQUFpQjtRQUNqQixTQUFTLEVBQUUsT0FBTztRQUNsQixvQkFBb0I7UUFDcEIsb0JBQW9CO1FBRXBCLHNCQUFzQixFQUFFO1lBQ3RCLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxvQkFBb0I7Z0JBQ2hELENBQUMsQ0FBQyxTQUFTO2dCQUNYLENBQUMsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLElBQUksRUFBRTtZQUN0QyxpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxvQkFBb0I7WUFDcEQsOEJBQThCLEVBQUUsSUFBSTtZQUNwQyxjQUFjLEVBQUUsUUFBUTtTQUN6QjtRQUVELGFBQWEsRUFBRTtZQUNiLDRCQUE0QixFQUFFO2dCQUM1QixNQUFNLEVBQUUsS0FBSyxDQUFDLG1CQUFtQjtvQkFDL0IsQ0FBQyxDQUFDO3dCQUNFLG9CQUFvQixFQUFFLE1BQU07cUJBQzdCO29CQUNILENBQUMsQ0FBQyxTQUFTO2dCQUNiLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDO2FBQzVDO1lBRUQsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUMxRCxhQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1lBQzlELHNCQUFzQixFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtZQUUxQyxpQkFBaUIsRUFBRTtnQkFDakIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUM7Z0JBQy9DLE1BQU0sRUFBRSxPQUFPLENBQUMscUJBQXFCO29CQUNuQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixFQUFFO29CQUMvQyxDQUFDLENBQUMsU0FBUzthQUNkO1lBRUQseUJBQXlCLEVBQUU7Z0JBQ3pCLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDO2dCQUMxQyxNQUFNLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtvQkFDOUIsQ0FBQyxDQUFDO3dCQUNFLFdBQVcsRUFBRSxHQUFHLElBQUksVUFBVTt3QkFDOUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlO3FCQUNuRDtvQkFDSCxDQUFDLENBQUMsU0FBUzthQUNkO1lBRUQsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDO2dCQUN6QixNQUFNLEVBQUUsT0FBTztvQkFDYixDQUFDLENBQUM7d0JBQ0UsK0JBQStCLEVBQUUsT0FBTztxQkFDekM7b0JBQ0gsQ0FBQyxDQUFDLFNBQVM7YUFDZDtTQUNGO1FBRUQsR0FBRyxFQUFFO1lBQ0gsSUFBSSxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJO1lBQ3hELElBQUk7U0FDTDtRQUNELFdBQVcsRUFDVCxNQUFNLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsa0JBQWtCO1FBQ2xFLGlCQUFpQixFQUFFO1lBQ2pCO2dCQUNFLEdBQUcsb0JBQW9CO2dCQUN2QixHQUFHLGVBQWU7Z0JBQ2xCLEdBQUcsWUFBWSxDQUFDO29CQUNkLEdBQUcsRUFBRSxxQkFBVTtvQkFDZixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGVBQWU7b0JBQzVDLGdCQUFnQjtvQkFDaEIscUJBQXFCO29CQUNyQixLQUFLO29CQUNMLHFCQUFxQjtvQkFDckIscUJBQXFCO29CQUNyQixLQUFLO2lCQUNOLENBQUM7Z0JBRUYsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxDQUFDO2dCQUNSLFlBQVksRUFBRSxPQUFPLENBQUMsUUFBUTtnQkFDOUIsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLEtBQUssRUFBRSxRQUFRO2dCQUNmLE1BQU0sRUFBRSxPQUFPO2FBQ2hCO1NBQ0Y7UUFDRCxZQUFZLEVBQUUsS0FBSztZQUNqQixDQUFDLENBQUM7Z0JBQ0UsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO2dCQUNsQyxHQUFHLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO2FBQ2hFO1lBQ0gsQ0FBQyxDQUFDLFNBQVM7UUFDYixtQkFBbUI7UUFDbkIsY0FBYyxFQUFFO1lBQ2QsYUFBYSxFQUFFLFdBQVc7WUFDMUIsY0FBYyxFQUFFLElBQUk7U0FDckI7UUFDRCxpQkFBaUIsRUFBRTtZQUNqQix3QkFBd0IsRUFBRSxNQUFNO1lBQ2hDLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLGtCQUFrQixFQUFFLElBQUk7WUFDeEIseUJBQXlCLEVBQUUsS0FBSztZQUNoQyxvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLHlCQUF5QixFQUFFLElBQUk7WUFDL0Isa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixtQkFBbUIsRUFBRSxHQUFHO1lBQ3hCLHNCQUFzQixFQUFFLEtBQUs7WUFDN0IseUJBQXlCLEVBQUUsS0FBSztZQUNoQywwQkFBMEIsRUFBRSxLQUFLO1lBQ2pDLHFCQUFxQixFQUFFLEtBQUs7WUFDNUIsb0JBQW9CLEVBQUUsS0FBSztZQUMzQiw2QkFBNkIsRUFBRSxLQUFLO1lBQ3BDLFlBQVksRUFBRSxLQUFLO1lBQ25CLHlCQUF5QixFQUFFLE9BQU87WUFDbEMsdUJBQXVCLEVBQUUsTUFBTTtTQUNoQztRQUVELHFCQUFxQjtRQUNyQiw2Q0FBNkM7UUFDN0Msa0NBQWtDO1FBQ2xDLGlCQUFpQjtRQUNqQixnREFBZ0Q7UUFDaEQseUZBQXlGO1FBQ3pGLGdDQUFnQztRQUVoQyx1QkFBdUIsRUFBRTtZQUN2QixRQUFRLEVBQUUsZUFBZSxDQUFDLFFBQVE7WUFDbEMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxZQUFZO1NBQ3JDO1FBQ0QsZUFBZSxFQUFFO1lBQ2YsUUFBUSxFQUNOLE9BQU8sSUFBSSxnQkFBSztnQkFDZCxDQUFDLENBQUM7b0JBQ0UsK0JBQStCLEVBQUUsT0FBTztvQkFDeEMsa0JBQWtCLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO2lCQUN0QztnQkFDSCxDQUFDLENBQUMsU0FBUztZQUNmLFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRTtZQUNsRCxnQkFBZ0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7U0FDckM7UUFDRCxrQkFBa0IsRUFBRSxRQUFRLENBQUMsaUJBQWlCO1lBQzVDLENBQUMsQ0FBQztnQkFDRSxPQUFPLEVBQUUsUUFBUSxDQUFDLGlCQUFpQjtnQkFDbkMscUNBQXFDO2dCQUNyQyx5QkFBeUIsRUFBRSxLQUFLO2FBQ2pDO1lBQ0gsQ0FBQyxDQUFDLFNBQVM7UUFDYixRQUFRLEVBQUU7WUFDUixJQUFJLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLGNBQWM7U0FDbEU7UUFDRCxrQkFBa0IsRUFBRTtZQUNsQixjQUFjLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxLQUFLO1lBQzVELG9DQUFvQztTQUNyQztRQUNELG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7UUFDN0QsVUFBVSxFQUFFLElBQUk7UUFDaEIsVUFBVSxFQUFFO1lBQ1YsZUFBZSxFQUFFLElBQUk7WUFDckIsT0FBTyxFQUFFLElBQUk7WUFDYixtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUN4RCxRQUFRLEVBQUUsbUJBQVE7U0FDbkI7UUFDRCxpQkFBaUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7UUFDckMsY0FBYyxFQUFFO1lBQ2QsYUFBYSxFQUFFO2dCQUNiLE9BQU8sRUFBRSxJQUFJO2FBQ2Q7WUFDRCxhQUFhLEVBQUU7Z0JBQ2IsT0FBTyxFQUFFLElBQUk7YUFDZDtZQUNELGFBQWEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7WUFDaEMsa0JBQWtCLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO1NBQ3RDO1FBQ0QsY0FBYyxFQUFFO1lBQ2QsV0FBVyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsV0FBVztZQUM1RCxhQUFhLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxLQUFLO1lBQzFELGFBQWEsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEtBQUs7WUFFMUQsNEJBQTRCO1lBQzVCLG9DQUFvQztZQUNwQyw2QkFBNkI7WUFFN0IsWUFBWSxFQUNWLFFBQVEsRUFBRSxvQkFBb0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUI7Z0JBQzFELENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLGtCQUFrQjtnQkFDekQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsWUFBWTtZQUV2RCxlQUFlLEVBQUUsVUFBVTtZQUMzQixtQkFBbUIsRUFBRSxPQUFPLENBQUMsaUJBQWlCO2dCQUM1QyxDQUFDLENBQUM7b0JBQ0UsV0FBVyxFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXO3dCQUNoRCxDQUFDLENBQUM7NEJBQ0UsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO3lCQUMzRDt3QkFDSCxDQUFDLENBQUMsU0FBUztvQkFDYixrQkFBa0IsRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCO3dCQUM3RCxDQUFDLENBQUM7NEJBQ0UsZ0JBQWdCLEVBQUU7Z0NBQ2hCLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRTs2QkFDcEQ7eUJBQ0Y7d0JBQ0gsQ0FBQyxDQUFDLFNBQVM7aUJBQ2Q7Z0JBQ0gsQ0FBQyxDQUFDLFNBQVM7U0FDZDtLQUNGLEVBQ0Q7UUFDRSxPQUFPLEVBQUUsSUFBSTtRQUNiLFNBQVMsRUFBRSxlQUFlLENBQUMsUUFBUTtRQUNuQyxNQUFNLEVBQUUsU0FBUztRQUNqQixtQkFBbUIsRUFBRSxJQUFJO1FBQ3pCLGFBQWE7S0FDZCxDQUNGLENBQUM7SUFFRixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FDbEQsR0FBRyxPQUFPLDJCQUEyQixFQUNyQztRQUNFLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLG9CQUFvQjtRQUNwQixNQUFNO1FBQ04sbUNBQW1DO1FBQ25DLHFDQUFxQztRQUNyQyxPQUFPO1FBQ1AsS0FBSztRQUNMLEdBQUcsS0FBSztRQUNSLFlBQVksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUN0QixVQUFVLEVBQUU7WUFDVjtnQkFDRSxHQUFHLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFNO2dCQUMzQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO2FBQ25CO1NBQ0Y7S0FDRixFQUNELEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUNuQixDQUFDO0lBRUYsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULElBQUEsZ0JBQU0sRUFBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCxTQUFTLENBQUMsR0FBRyxDQUNYLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3pELHVCQUF1QjtZQUN2QixZQUFZLEVBQUUsR0FBRyxDQUFDLElBQUk7WUFDdEIsR0FBRyxLQUFLO1lBQ1IsR0FBRyxvQkFBb0I7WUFDdkIsR0FBRyxDQUFDO1lBRUosR0FBRyxZQUFZLENBQUM7Z0JBQ2QsR0FBRyxFQUFFLHFCQUFVO2dCQUNmLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSTtnQkFDaEIsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLGVBQWU7YUFDNUMsQ0FBQztZQUVGLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLHlDQUF5QztZQUN6QyxZQUFZLEVBQUUsT0FBTyxDQUFDLFFBQVE7WUFDOUIsZUFBZSxFQUFFLElBQUk7WUFDckIsS0FBSyxFQUFFLFFBQVE7WUFDZixNQUFNLEVBQUUsT0FBTztTQUNoQixDQUFDLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFRCw0QkFBNEI7SUFDNUIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQ3hCLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTztRQUVoQiwrQkFBK0I7UUFDL0IsTUFBTTthQUNILEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDMUQsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7WUFDMUMsSUFBSSxRQUFRLElBQUksZUFBZSxJQUFJLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RFLElBQUEsK0JBQWMsRUFBQztvQkFDYixJQUFJLEVBQUUsR0FBRyxJQUFJLDRCQUE0QjtvQkFDekMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVM7b0JBQ3pELGFBQWEsRUFBRSxrQkFBa0I7b0JBQ2pDLFFBQVEsRUFBRSxTQUFTO29CQUNuQixLQUFLLEVBQUUsUUFBUTtpQkFDaEIsQ0FBQyxDQUFDO2dCQUVILElBQUEsOEJBQWUsRUFBQztvQkFDZCxJQUFJLEVBQUUsR0FBRyxJQUFJLG9CQUFvQjtvQkFDakMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVM7b0JBQ25ELFNBQVMsRUFBRSxHQUFHO29CQUNkLFdBQVcsRUFBRSxJQUFJO29CQUNqQixTQUFTO2lCQUNWLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2pDLElBQUEsK0JBQWMsRUFBQztvQkFDYixJQUFJLEVBQUUsR0FBRyxJQUFJLGFBQWE7b0JBQzFCLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztvQkFDakMsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLGFBQWEsRUFBRSxrQkFBa0I7b0JBQ2pDLEtBQUssRUFBRSxJQUFBLGdDQUFxQixFQUFDO3dCQUMzQixLQUFLLEVBQUUsSUFBQSxrQ0FBdUIsRUFBQyxHQUFHLENBQUUsQ0FBQyxLQUFLO3FCQUMzQyxDQUFDO2lCQUNILENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVMLGNBQWM7UUFDZCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEscUJBQVksRUFBQztZQUNoQyxJQUFJLEVBQUUsT0FBTztZQUNiLFNBQVMsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQ2xDLGFBQWEsRUFBRSxJQUFJO1lBQ25CLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxvQkFBb0I7U0FDckQsQ0FBQyxDQUFDO1FBRUgsSUFBQSw4QkFBZSxFQUFDO1lBQ2QsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLE1BQU07WUFDYixhQUFhLEVBQUUsSUFBSTtZQUNuQixTQUFTLEVBQUUsR0FBRztZQUNkLFdBQVcsRUFBRSxTQUFTLENBQUMsb0JBQW9CO2dCQUN6QyxDQUFDLENBQUMsR0FBRyxJQUFJLGtCQUFrQjtnQkFDM0IsQ0FBQyxDQUFDLEdBQUcsSUFBSSxtQkFBbUI7WUFDOUIsU0FBUztTQUNWLENBQUMsQ0FBQztRQUVILFlBQVk7UUFDWixJQUFJLFFBQVEsQ0FBQyx1QkFBdUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNoRCxJQUFBLDBCQUFnQixFQUFDO2dCQUNmLElBQUk7Z0JBQ0osZ0JBQWdCLEVBQUUsRUFBRTtnQkFDcEIsT0FBTztnQkFDUCxjQUFjLEVBQUU7b0JBQ2QsT0FBTztvQkFDUCx5QkFBeUI7b0JBQ3pCLGtCQUFrQjtvQkFDbEIsWUFBWTtvQkFDWixnQkFBZ0I7b0JBQ2hCLG9CQUFvQjtpQkFDckI7Z0JBQ0QsU0FBUyxFQUFFLEdBQUc7YUFDZixDQUFDLENBQUM7WUFFSCxtQ0FBbUM7WUFDbkMsSUFBQSxzQkFBYSxFQUFDO2dCQUNaLEtBQUssRUFBRSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFO2dCQUMvQyxPQUFPO2dCQUNQLFNBQVM7Z0JBQ1QsU0FBUyxFQUFFLEdBQUc7YUFDZixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsWUFBWSxFQUFFLElBQUk7UUFDbEIsS0FBSztRQUNMLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtRQUNWLEdBQUc7UUFDSCxlQUFlO1FBQ2YsYUFBYSxFQUFFLEdBQW1CLEVBQUUsQ0FDbEMsSUFBQSxlQUFNLEVBQ0osSUFBQSw4QkFBZSxFQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7YUFDNUIsU0FBUyxDQUFDLFVBQVUsQ0FBQzthQUNyQixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUUsQ0FBQyxLQUFNLENBQUMsQ0FDMUI7S0FDSixDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
452
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQWtzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStDO0FBQy9DLHVEQUF5QztBQUN6QywyQ0FBdUQ7QUFDdkQsa0VBQTJDO0FBRTNDLGlEQVE0QjtBQUM1Qiw0REFBb0M7QUFDcEMsMERBQTRDO0FBQzVDLGlEQUEyQztBQUMzQyw2Q0FBbUQ7QUFDbkQsc0NBQTZEO0FBQzdELDJEQUF3RDtBQUV4RCxxQ0FBd0M7QUFDeEMsMkRBQTJEO0FBRTNELG9GQUFvRjtBQUlwRixNQUFNLFlBQVksR0FBRyxDQUFDLEVBQ3BCLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsR0FBRyxHQUtKLEVBQUUsRUFBRTtJQUNILE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNwQixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDbkIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBRWpCLElBQUksR0FBRyxLQUFLLHVCQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsUUFBUSxRQUFRLEVBQUUsQ0FBQztZQUNqQixLQUFLLE1BQU07Z0JBQ1QsUUFBUSxHQUFHLENBQUMsQ0FBQztnQkFDYixNQUFNO1lBRVIsS0FBSyxTQUFTLENBQUM7WUFDZixLQUFLLFFBQVEsQ0FBQztZQUNkO2dCQUNFLFFBQVEsR0FBRyxDQUFDLENBQUM7Z0JBQ2IsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLGlCQUFpQjtRQUNqQixTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNwRCxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNsRCxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFFB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
package/Apim/Helpers.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { ResourceInfo } from "../types";
1
+ import { ResourceInfo } from '../types';
2
2
  export declare const getApimInfo: (nameAndGroup: string) => ResourceInfo;
package/Apim/Helpers.js CHANGED
@@ -9,10 +9,10 @@ const getApimInfo = (nameAndGroup) => {
9
9
  const rgName = (0, Naming_1.getResourceGroupName)(nameAndGroup);
10
10
  const id = (0, pulumi_1.interpolate) `/subscriptions/${AzureEnv_1.subscriptionId}/resourceGroups/${rgName}/providers/Microsoft.ApiManagement/service/${name}`;
11
11
  return {
12
- resourceName: name,
12
+ name,
13
13
  group: { resourceGroupName: rgName, location: AzureEnv_1.currentRegionName },
14
14
  id,
15
15
  };
16
16
  };
17
17
  exports.getApimInfo = getApimInfo;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BcGltL0hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQXFFO0FBQ3JFLDJDQUE2QztBQUM3QyxpREFBdUU7QUFFaEUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxZQUFvQixFQUFnQixFQUFFO0lBQ2hFLE1BQU0sSUFBSSxHQUFHLElBQUEsb0JBQVcsRUFBQyxZQUFZLENBQUMsQ0FBQztJQUN2QyxNQUFNLE1BQU0sR0FBRyxJQUFBLDZCQUFvQixFQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xELE1BQU0sRUFBRSxHQUFHLElBQUEsb0JBQVcsRUFBQSxrQkFBa0IseUJBQWMsbUJBQW1CLE1BQU0sOENBQThDLElBQUksRUFBRSxDQUFDO0lBRXBJLE9BQU87UUFDTCxZQUFZLEVBQUUsSUFBSTtRQUNsQixLQUFLLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLDRCQUFpQixFQUFFO1FBQ2pFLEVBQUU7S0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBVlcsUUFBQSxXQUFXLGVBVXRCIn0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BcGltL0hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQXFFO0FBQ3JFLDJDQUE2QztBQUM3QyxpREFBdUU7QUFFaEUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxZQUFvQixFQUFnQixFQUFFO0lBQ2hFLE1BQU0sSUFBSSxHQUFHLElBQUEsb0JBQVcsRUFBQyxZQUFZLENBQUMsQ0FBQztJQUN2QyxNQUFNLE1BQU0sR0FBRyxJQUFBLDZCQUFvQixFQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xELE1BQU0sRUFBRSxHQUFHLElBQUEsb0JBQVcsRUFBQSxrQkFBa0IseUJBQWMsbUJBQW1CLE1BQU0sOENBQThDLElBQUksRUFBRSxDQUFDO0lBRXBJLE9BQU87UUFDTCxJQUFJO1FBQ0osS0FBSyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSw0QkFBaUIsRUFBRTtRQUNqRSxFQUFFO0tBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVZXLFFBQUEsV0FBVyxlQVV0QiJ9
@@ -1,5 +1,5 @@
1
- import * as logic from "@pulumi/azure-native/logic";
2
- import { BasicResourceArgs, DefaultResourceArgs } from "../types";
3
- export type WorkflowProps = BasicResourceArgs & DefaultResourceArgs & Pick<logic.WorkflowArgs, "accessControl">;
1
+ import * as logic from '@pulumi/azure-native/logic';
2
+ import { BasicResourceArgs } from '../types';
3
+ export type WorkflowProps = BasicResourceArgs & Pick<logic.WorkflowArgs, 'accessControl'>;
4
4
  declare const _default: ({ name, group, dependsOn, ignoreChanges, importUri, ...others }: WorkflowProps) => import("@pulumi/azure-native/logic/workflow").Workflow;
5
5
  export default _default;
package/Apps/LogicApp.js CHANGED
@@ -24,16 +24,15 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  const logic = __importStar(require("@pulumi/azure-native/logic"));
27
- const Naming_1 = require("../Common/Naming");
27
+ const Common_1 = require("../Common");
28
28
  exports.default = ({ name, group, dependsOn, ignoreChanges, importUri, ...others }) => {
29
- const n = (0, Naming_1.getWorkflowName)(name);
30
- const workFlow = new logic.Workflow(name, {
29
+ const n = (0, Common_1.getWorkflowName)(name);
30
+ return new logic.Workflow(name, {
31
31
  workflowName: n,
32
32
  ...group,
33
33
  ...others,
34
34
  identity: { type: logic.ManagedServiceIdentityType.SystemAssigned },
35
35
  accessControl: { actions: {} },
36
36
  }, { dependsOn, ignoreChanges, import: importUri });
37
- return workFlow;
38
37
  };
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9naWNBcHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQXBwcy9Mb2dpY0FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0VBQW9EO0FBRXBELDZDQUFtRDtBQU1uRCxrQkFBZSxDQUFDLEVBQ2QsSUFBSSxFQUNKLEtBQUssRUFDTCxTQUFTLEVBQ1QsYUFBYSxFQUNiLFNBQVMsRUFDVCxHQUFHLE1BQU0sRUFDSyxFQUFFLEVBQUU7SUFDbEIsTUFBTSxDQUFDLEdBQUcsSUFBQSx3QkFBZSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBRWhDLE1BQU0sUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FDakMsSUFBSSxFQUNKO1FBQ0UsWUFBWSxFQUFFLENBQUM7UUFDZixHQUFHLEtBQUs7UUFDUixHQUFHLE1BQU07UUFDVCxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLDBCQUEwQixDQUFDLGNBQWMsRUFBRTtRQUNuRSxhQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO0tBQy9CLEVBQ0QsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FDaEQsQ0FBQztJQUVGLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyJ9
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9naWNBcHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQXBwcy9Mb2dpY0FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0VBQW9EO0FBRXBELHNDQUE0QztBQUs1QyxrQkFBZSxDQUFDLEVBQ2QsSUFBSSxFQUNKLEtBQUssRUFDTCxTQUFTLEVBQ1QsYUFBYSxFQUNiLFNBQVMsRUFDVCxHQUFHLE1BQU0sRUFDSyxFQUFFLEVBQUU7SUFDbEIsTUFBTSxDQUFDLEdBQUcsSUFBQSx3QkFBZSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBRWhDLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUN2QixJQUFJLEVBQ0o7UUFDRSxZQUFZLEVBQUUsQ0FBQztRQUNmLEdBQUcsS0FBSztRQUNSLEdBQUcsTUFBTTtRQUNULFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsMEJBQTBCLENBQUMsY0FBYyxFQUFFO1FBQ25FLGFBQWEsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7S0FDL0IsRUFDRCxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUNoRCxDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
@@ -1,8 +1,8 @@
1
- import * as azureAD from "@pulumi/azuread";
2
- import * as pulumi from "@pulumi/pulumi";
3
- import { Output } from "@pulumi/pulumi";
4
- import { ApplicationApiOauth2PermissionScope, ApplicationAppRole, ApplicationRequiredResourceAccess, ApplicationOptionalClaims } from "@pulumi/azuread/types/input";
5
- import { BasicArgs, IdentityRoleAssignment, KeyVaultInfo } from "../types";
1
+ import * as azureAD from '@pulumi/azuread';
2
+ import * as pulumi from '@pulumi/pulumi';
3
+ import { Output } from '@pulumi/pulumi';
4
+ import { ApplicationApiOauth2PermissionScope, ApplicationAppRole, ApplicationOptionalClaims, ApplicationRequiredResourceAccess } from '@pulumi/azuread/types/input';
5
+ import { BasicArgs, IdentityRoleAssignment, KeyVaultInfo } from '../types';
6
6
  type PreAuthApplicationProps = {
7
7
  appId: string;
8
8
  oauth2PermissionNames: string[];
@@ -16,7 +16,7 @@ interface IdentityProps extends BasicArgs, IdentityRoleAssignment {
16
16
  publicClient?: boolean;
17
17
  createPrincipal?: boolean;
18
18
  replyUrls?: pulumi.Input<pulumi.Input<string>[]>;
19
- appType?: "spa" | "web" | "api";
19
+ appType?: 'spa' | 'web' | 'api';
20
20
  allowMultiOrg?: boolean;
21
21
  appRoles?: pulumi.Input<pulumi.Input<ApplicationAppRole>[]>;
22
22
  oauth2Permissions?: pulumi.Input<pulumi.Input<ApplicationApiOauth2PermissionScope>[]>;
@@ -24,7 +24,7 @@ interface IdentityProps extends BasicArgs, IdentityRoleAssignment {
24
24
  preAuthApplications?: PreAuthApplicationProps[];
25
25
  requiredResourceAccesses?: pulumi.Input<pulumi.Input<ApplicationRequiredResourceAccess>[]>;
26
26
  optionalClaims?: pulumi.Input<ApplicationOptionalClaims>;
27
- vaultInfo: KeyVaultInfo;
27
+ vaultInfo?: KeyVaultInfo;
28
28
  }
29
29
  export type IdentityResult = {
30
30
  name: string;