@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.
- package/PulumiPlugin.yaml +1 -0
- package/README.md +1 -0
- package/ResourceBuilder.d.ts +54 -0
- package/ResourceBuilder.js +71 -0
- package/aks/AzKubernetes.d.ts +55 -0
- package/aks/AzKubernetes.js +288 -0
- package/aks/ContainerRegistry.d.ts +19 -0
- package/aks/ContainerRegistry.js +119 -0
- package/aks/helpers.d.ts +6 -0
- package/aks/helpers.js +52 -0
- package/aks/index.d.ts +3 -0
- package/aks/index.js +43 -0
- package/app/AppCert.d.ts +15 -0
- package/app/AppCert.js +74 -0
- package/app/AppConfig.d.ts +18 -0
- package/app/AppConfig.js +124 -0
- package/app/AppService.d.ts +69 -0
- package/app/AppService.js +122 -0
- package/app/IoTHub.d.ts +15 -0
- package/app/IoTHub.js +80 -0
- package/app/LogicApp.d.ts +19 -0
- package/app/LogicApp.js +77 -0
- package/app/SignalR.d.ts +45 -0
- package/app/SignalR.js +125 -0
- package/app/index.d.ts +6 -0
- package/app/index.js +23 -0
- package/azAd/AppRegistration.d.ts +52 -0
- package/azAd/AppRegistration.js +165 -0
- package/azAd/AzRole.d.ts +14 -0
- package/azAd/AzRole.js +72 -0
- package/azAd/CustomRoles.d.ts +10 -0
- package/azAd/CustomRoles.js +73 -0
- package/azAd/GroupRole.d.ts +29 -0
- package/azAd/GroupRole.js +107 -0
- package/azAd/RoleAssignment.d.ts +15 -0
- package/azAd/RoleAssignment.js +63 -0
- package/azAd/UserAssignedIdentity.d.ts +17 -0
- package/azAd/UserAssignedIdentity.js +76 -0
- package/azAd/helpers/graphBuiltIn.d.ts +14 -0
- package/azAd/helpers/graphBuiltIn.js +5134 -0
- package/azAd/helpers/index.d.ts +3 -0
- package/azAd/helpers/index.js +39 -0
- package/azAd/helpers/rolesBuiltIn.d.ts +90 -0
- package/azAd/helpers/rolesBuiltIn.js +18601 -0
- package/azAd/helpers/rsRoleDefinition.d.ts +62 -0
- package/azAd/helpers/rsRoleDefinition.js +120 -0
- package/azAd/index.d.ts +7 -0
- package/azAd/index.js +24 -0
- package/base/BaseComponent.d.ts +53 -0
- package/base/BaseComponent.js +98 -0
- package/base/BaseResourceComponent.d.ts +108 -0
- package/base/BaseResourceComponent.js +180 -0
- package/base/helpers.d.ts +12 -0
- package/base/helpers.js +29 -0
- package/base/index.d.ts +3 -0
- package/base/index.js +43 -0
- package/common/PGPGenerator.d.ts +26 -0
- package/common/PGPGenerator.js +72 -0
- package/common/RandomPassword.d.ts +21 -0
- package/common/RandomPassword.js +84 -0
- package/common/RandomString.d.ts +20 -0
- package/common/RandomString.js +74 -0
- package/common/ResourceLocker.d.ts +9 -0
- package/common/ResourceLocker.js +52 -0
- package/common/RsGroup.d.ts +20 -0
- package/common/RsGroup.js +85 -0
- package/common/SshGenerator.d.ts +17 -0
- package/common/SshGenerator.js +66 -0
- package/common/index.d.ts +5 -0
- package/common/index.js +22 -0
- package/database/AzSql.d.ts +71 -0
- package/database/AzSql.js +283 -0
- package/database/MySql.d.ts +35 -0
- package/database/MySql.js +181 -0
- package/database/Postgres.d.ts +32 -0
- package/database/Postgres.js +171 -0
- package/database/Redis.d.ts +26 -0
- package/database/Redis.js +125 -0
- package/database/helpers.d.ts +7 -0
- package/database/helpers.js +52 -0
- package/database/index.d.ts +5 -0
- package/database/index.js +45 -0
- package/helpers/Location/LocationBuiltIn.d.ts +6 -0
- package/helpers/Location/LocationBuiltIn.js +493 -0
- package/helpers/Location/index.d.ts +3 -0
- package/helpers/Location/index.js +25 -0
- package/helpers/autoTags.d.ts +1 -0
- package/helpers/autoTags.js +27 -0
- package/helpers/azureEnv.d.ts +21 -0
- package/helpers/azureEnv.js +102 -0
- package/helpers/configHelper.d.ts +5 -0
- package/helpers/configHelper.js +54 -0
- package/helpers/index.d.ts +4 -0
- package/helpers/index.js +41 -0
- package/helpers/rsHelpers.d.ts +18 -0
- package/helpers/rsHelpers.js +92 -0
- package/helpers/stackEnv.d.ts +4 -0
- package/helpers/stackEnv.js +54 -0
- package/index.d.ts +14 -0
- package/index.js +53 -0
- package/logs/Logs.d.ts +48 -0
- package/logs/Logs.js +154 -0
- package/logs/helpers.d.ts +1 -0
- package/logs/helpers.js +38 -0
- package/logs/index.d.ts +1 -0
- package/logs/index.js +18 -0
- package/package.json +34 -0
- package/services/Automation.d.ts +16 -0
- package/services/Automation.js +85 -0
- package/services/AzSearch.d.ts +20 -0
- package/services/AzSearch.js +113 -0
- package/services/ServiceBus.d.ts +42 -0
- package/services/ServiceBus.js +256 -0
- package/services/index.d.ts +3 -0
- package/services/index.js +20 -0
- package/storage/StorageAccount.d.ts +53 -0
- package/storage/StorageAccount.js +261 -0
- package/storage/helpers.d.ts +24 -0
- package/storage/helpers.js +89 -0
- package/storage/index.d.ts +2 -0
- package/storage/index.js +42 -0
- package/types.d.ts +125 -0
- package/types.js +3 -0
- package/vault/EncryptionKey.d.ts +21 -0
- package/vault/EncryptionKey.js +73 -0
- package/vault/KeyVault.d.ts +31 -0
- package/vault/KeyVault.js +110 -0
- package/vault/VaultSecret.d.ts +23 -0
- package/vault/VaultSecret.js +72 -0
- package/vault/VaultSecrets.d.ts +25 -0
- package/vault/VaultSecrets.js +31 -0
- package/vault/helpers.d.ts +1 -0
- package/vault/helpers.js +13 -0
- package/vault/index.d.ts +5 -0
- package/vault/index.js +45 -0
- package/vm/DiskEncryptionSet.d.ts +16 -0
- package/vm/DiskEncryptionSet.js +74 -0
- package/vm/VirtualMachine.d.ts +45 -0
- package/vm/VirtualMachine.js +192 -0
- package/vm/helpers.d.ts +16 -0
- package/vm/helpers.js +15 -0
- package/vm/index.d.ts +3 -0
- package/vm/index.js +43 -0
- package/vnet/AzCdn.d.ts +44 -0
- package/vnet/AzCdn.js +276 -0
- package/vnet/Basion.d.ts +19 -0
- package/vnet/Basion.js +78 -0
- package/vnet/DnsZone.d.ts +36 -0
- package/vnet/DnsZone.js +113 -0
- package/vnet/Firewall.d.ts +53 -0
- package/vnet/Firewall.js +136 -0
- package/vnet/FirewallPolicies/FirewallPolicyBuilder.d.ts +18 -0
- package/vnet/FirewallPolicies/FirewallPolicyBuilder.js +91 -0
- package/vnet/FirewallPolicies/commonPolicies.d.ts +10 -0
- package/vnet/FirewallPolicies/commonPolicies.js +55 -0
- package/vnet/FirewallPolicies/index.d.ts +0 -0
- package/vnet/FirewallPolicies/index.js +2 -0
- package/vnet/IpAddresses.d.ts +36 -0
- package/vnet/IpAddresses.js +74 -0
- package/vnet/NetworkPeering.d.ts +21 -0
- package/vnet/NetworkPeering.js +85 -0
- package/vnet/PrivateDnsZone.d.ts +38 -0
- package/vnet/PrivateDnsZone.js +111 -0
- package/vnet/PrivateEndpoint.d.ts +43 -0
- package/vnet/PrivateEndpoint.js +181 -0
- package/vnet/RouteTable.d.ts +22 -0
- package/vnet/RouteTable.js +75 -0
- package/vnet/VirtualNetwork.d.ts +99 -0
- package/vnet/VirtualNetwork.js +311 -0
- package/vnet/VpnGateway.d.ts +18 -0
- package/vnet/VpnGateway.js +90 -0
- package/vnet/helpers.d.ts +16 -0
- package/vnet/helpers.js +47 -0
- package/vnet/index.d.ts +13 -0
- package/vnet/index.js +53 -0
- package/vnet/securityRules/SecurityRuleBuilder.d.ts +12 -0
- package/vnet/securityRules/SecurityRuleBuilder.js +55 -0
- package/vnet/securityRules/commonRules.d.ts +9 -0
- package/vnet/securityRules/commonRules.js +94 -0
- package/vnet/securityRules/index.d.ts +2 -0
- package/vnet/securityRules/index.js +19 -0
|
@@ -0,0 +1,89 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.getStorageEndpoints = getStorageEndpoints;
|
|
40
|
+
exports.getStorageEndpointsOutputs = getStorageEndpointsOutputs;
|
|
41
|
+
exports.getStorageAccessKeyOutputs = getStorageAccessKeyOutputs;
|
|
42
|
+
const KeyVaultBase_1 = __importDefault(require("@drunk-pulumi/azure-providers/AzBase/KeyVaultBase"));
|
|
43
|
+
const storage = __importStar(require("@pulumi/azure-native/storage"));
|
|
44
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
45
|
+
const vault_1 = require("../vault");
|
|
46
|
+
function getStorageEndpoints(storage) {
|
|
47
|
+
return {
|
|
48
|
+
...storage,
|
|
49
|
+
blob: `https://${storage.resourceName}.blob.core.windows.net`,
|
|
50
|
+
file: `https://${storage.resourceName}.file.core.windows.net`,
|
|
51
|
+
queue: `https://${storage.resourceName}.queue.core.windows.net`,
|
|
52
|
+
table: `https://${storage.resourceName}.table.core.windows.net`,
|
|
53
|
+
lake: `https://${storage.resourceName}.dfs.core.windows.net`,
|
|
54
|
+
web: `https://${storage.resourceName}.z23.web.core.windows.net`,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function getStorageEndpointsOutputs(storage) {
|
|
58
|
+
return {
|
|
59
|
+
...storage,
|
|
60
|
+
blob: pulumi.interpolate `https://${storage.resourceName}.blob.core.windows.net`,
|
|
61
|
+
file: pulumi.interpolate `https://${storage.resourceName}.file.core.windows.net`,
|
|
62
|
+
queue: pulumi.interpolate `https://${storage.resourceName}.queue.core.windows.net`,
|
|
63
|
+
table: pulumi.interpolate `https://${storage.resourceName}.table.core.windows.net`,
|
|
64
|
+
lake: pulumi.interpolate `https://${storage.resourceName}.dfs.core.windows.net`,
|
|
65
|
+
web: pulumi.interpolate `https://${storage.resourceName}.z23.web.core.windows.net`,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/** Get storage access key. If vault is provided it will get the secrets from the vault if not it will get from storage directly. */
|
|
69
|
+
function getStorageAccessKeyOutputs(stg, vaultInfo) {
|
|
70
|
+
if (vaultInfo) {
|
|
71
|
+
try {
|
|
72
|
+
return pulumi.output([vaultInfo.resourceName, stg.resourceName]).apply(async ([vaultName, stgName]) => {
|
|
73
|
+
const vault = (0, KeyVaultBase_1.default)(vaultName);
|
|
74
|
+
return (await vault.getSecret(vault_1.vaultHelpers.getSecretName(`${stgName}-key1`)))?.value;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
console.log(e);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return pulumi.output(stg).apply(async (s) => {
|
|
82
|
+
const keys = await storage.listStorageAccountKeys({
|
|
83
|
+
resourceGroupName: s.rsGroup.resourceGroupName,
|
|
84
|
+
accountName: s.resourceName,
|
|
85
|
+
});
|
|
86
|
+
return keys.keys[0].value;
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yYWdlL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQSxrREFVQztBQUVELGdFQVVDO0FBR0QsZ0VBbUJDO0FBbERELHFHQUE2RTtBQUM3RSxzRUFBd0Q7QUFDeEQsdURBQXlDO0FBRXpDLG9DQUF3QztBQUV4QyxTQUFnQixtQkFBbUIsQ0FBQyxPQUEyQjtJQUM3RCxPQUFPO1FBQ0wsR0FBRyxPQUFPO1FBQ1YsSUFBSSxFQUFFLFdBQVcsT0FBTyxDQUFDLFlBQVksd0JBQXdCO1FBQzdELElBQUksRUFBRSxXQUFXLE9BQU8sQ0FBQyxZQUFZLHdCQUF3QjtRQUM3RCxLQUFLLEVBQUUsV0FBVyxPQUFPLENBQUMsWUFBWSx5QkFBeUI7UUFDL0QsS0FBSyxFQUFFLFdBQVcsT0FBTyxDQUFDLFlBQVkseUJBQXlCO1FBQy9ELElBQUksRUFBRSxXQUFXLE9BQU8sQ0FBQyxZQUFZLHVCQUF1QjtRQUM1RCxHQUFHLEVBQUUsV0FBVyxPQUFPLENBQUMsWUFBWSwyQkFBMkI7S0FDaEUsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQiwwQkFBMEIsQ0FBQyxPQUE2QjtJQUN0RSxPQUFPO1FBQ0wsR0FBRyxPQUFPO1FBQ1YsSUFBSSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUEsV0FBVyxPQUFPLENBQUMsWUFBWSx3QkFBd0I7UUFDL0UsSUFBSSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUEsV0FBVyxPQUFPLENBQUMsWUFBWSx3QkFBd0I7UUFDL0UsS0FBSyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUEsV0FBVyxPQUFPLENBQUMsWUFBWSx5QkFBeUI7UUFDakYsS0FBSyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUEsV0FBVyxPQUFPLENBQUMsWUFBWSx5QkFBeUI7UUFDakYsSUFBSSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUEsV0FBVyxPQUFPLENBQUMsWUFBWSx1QkFBdUI7UUFDOUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUEsV0FBVyxPQUFPLENBQUMsWUFBWSwyQkFBMkI7S0FDbEYsQ0FBQztBQUNKLENBQUM7QUFFRCxvSUFBb0k7QUFDcEksU0FBZ0IsMEJBQTBCLENBQUMsR0FBa0MsRUFBRSxTQUFnQztJQUM3RyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BHLE1BQU0sS0FBSyxHQUFHLElBQUEsc0JBQVksRUFBQyxTQUFTLENBQUMsQ0FBQztnQkFDdEMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLFNBQVMsQ0FBQyxvQkFBWSxDQUFDLGFBQWEsQ0FBQyxHQUFHLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQU0sQ0FBQztZQUN4RixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzFDLE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLHNCQUFzQixDQUFDO1lBQ2hELGlCQUFpQixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCO1lBQzlDLFdBQVcsRUFBRSxDQUFDLENBQUMsWUFBWTtTQUM1QixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBTSxDQUFDO0lBQzdCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
|
package/storage/index.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
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
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
36
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.storageHelpers = void 0;
|
|
40
|
+
exports.storageHelpers = __importStar(require("./helpers"));
|
|
41
|
+
__exportStar(require("./StorageAccount"), exports);
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmFnZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0REFBNEM7QUFDNUMsbURBQWlDIn0=
|
package/types.d.ts
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
2
|
+
import { PrivateEndpointType } from './vnet';
|
|
3
|
+
export type DnsRecordTypes = 'A' | 'AAAA' | 'CNAME' | 'MX' | 'NS' | 'PTR' | 'SOA' | 'SRV' | 'TXT' | 'CAA';
|
|
4
|
+
export type GroupRoleTypes = 'admin' | 'contributor' | 'readOnly';
|
|
5
|
+
type AsInput<T> = {
|
|
6
|
+
[K in keyof T]: T[K] extends object ? T[K] extends Array<any> ? pulumi.Input<NonNullable<T[K]>> : AsInput<NonNullable<T[K]>> : pulumi.Input<NonNullable<T[K]>>;
|
|
7
|
+
};
|
|
8
|
+
type AsOutput<T> = {
|
|
9
|
+
[K in keyof T]: T[K] extends object ? T[K] extends Array<any> ? pulumi.Output<NonNullable<T[K]>> : AsOutput<NonNullable<T[K]>> : pulumi.Output<NonNullable<T[K]>>;
|
|
10
|
+
};
|
|
11
|
+
export type ResourceGroupType = {
|
|
12
|
+
resourceGroupName: string;
|
|
13
|
+
location?: string;
|
|
14
|
+
};
|
|
15
|
+
export type ResourceGroupInputs = AsInput<ResourceGroupType>;
|
|
16
|
+
export type ResourceGroupOutputs = AsOutput<ResourceGroupType>;
|
|
17
|
+
export type WithResourceGroup = {
|
|
18
|
+
rsGroup: ResourceGroupType;
|
|
19
|
+
};
|
|
20
|
+
export type WithResourceGroupInputs = {
|
|
21
|
+
rsGroup: ResourceGroupInputs;
|
|
22
|
+
};
|
|
23
|
+
export type WithResourceGroupOutputs = {
|
|
24
|
+
rsGroup: ResourceGroupOutputs;
|
|
25
|
+
};
|
|
26
|
+
export type ResourceType = {
|
|
27
|
+
resourceName: string;
|
|
28
|
+
id: string;
|
|
29
|
+
};
|
|
30
|
+
export type ResourceInputs = AsInput<ResourceType>;
|
|
31
|
+
export type ResourceOutputs = AsOutput<ResourceType>;
|
|
32
|
+
export type ResourceWithGroupType = ResourceType & {
|
|
33
|
+
rsGroup: ResourceGroupType;
|
|
34
|
+
};
|
|
35
|
+
export type ResourceWithGroupInputs = AsInput<ResourceWithGroupType>;
|
|
36
|
+
export type ResourceWithGroupOutputs = AsOutput<ResourceWithGroupType>;
|
|
37
|
+
export type SubResourceType = {
|
|
38
|
+
id: string;
|
|
39
|
+
};
|
|
40
|
+
export type SubResourceInputs = AsInput<SubResourceType>;
|
|
41
|
+
export type SubResourceOutputs = AsOutput<SubResourceType>;
|
|
42
|
+
export type WithVaultInfo = {
|
|
43
|
+
vaultInfo?: ResourceInputs;
|
|
44
|
+
};
|
|
45
|
+
export type WithDiskEncryptSet = {
|
|
46
|
+
diskEncryptionSet: SubResourceInputs;
|
|
47
|
+
};
|
|
48
|
+
export type WithMemberOfArgs = {
|
|
49
|
+
/** The Id of the EntraID group */
|
|
50
|
+
memberof?: pulumi.Input<{
|
|
51
|
+
objectId: string;
|
|
52
|
+
}>[];
|
|
53
|
+
};
|
|
54
|
+
export type UserAssignedIdentityType = {
|
|
55
|
+
id: string;
|
|
56
|
+
clientId: string;
|
|
57
|
+
principalId: string;
|
|
58
|
+
};
|
|
59
|
+
export type UserAssignedIdentityInputs = AsInput<UserAssignedIdentityType>;
|
|
60
|
+
export type UserAssignedIdentityOutputs = AsOutput<UserAssignedIdentityType>;
|
|
61
|
+
export type WithUserAssignedIdentity = {
|
|
62
|
+
/** Default User-Assigned Managed Identity that is shared across resources
|
|
63
|
+
* to access common services like Key Vault secrets */
|
|
64
|
+
defaultUAssignedId?: UserAssignedIdentityInputs;
|
|
65
|
+
};
|
|
66
|
+
export type WithEncryptionEnabler = {
|
|
67
|
+
/** this only work when vaultInfo is provided.
|
|
68
|
+
* for MySql and Postgres the feature 'CMK Encryption' need to be enabled on the subscription.
|
|
69
|
+
*/
|
|
70
|
+
enableEncryption?: boolean;
|
|
71
|
+
};
|
|
72
|
+
export type GroupRolesArgs = {
|
|
73
|
+
admin: pulumi.Output<{
|
|
74
|
+
objectId: string;
|
|
75
|
+
}>;
|
|
76
|
+
contributor: pulumi.Output<{
|
|
77
|
+
objectId: string;
|
|
78
|
+
}>;
|
|
79
|
+
readOnly: pulumi.Output<{
|
|
80
|
+
objectId: string;
|
|
81
|
+
}>;
|
|
82
|
+
};
|
|
83
|
+
export type WithGroupRolesArgs = {
|
|
84
|
+
groupRoles?: GroupRolesArgs;
|
|
85
|
+
};
|
|
86
|
+
export type WorkspaceType = ResourceType & {
|
|
87
|
+
customerId: string;
|
|
88
|
+
};
|
|
89
|
+
export type WorkspaceInputs = AsInput<WorkspaceType>;
|
|
90
|
+
export type WorkspaceOutputs = AsOutput<WorkspaceType>;
|
|
91
|
+
export type AppInsightType = ResourceType & {
|
|
92
|
+
instrumentationKey: string;
|
|
93
|
+
};
|
|
94
|
+
export type AppInsightInputs = AsInput<AppInsightType>;
|
|
95
|
+
export type AppInsightOutputs = AsOutput<AppInsightType>;
|
|
96
|
+
export type LogsType = {
|
|
97
|
+
storage?: ResourceType;
|
|
98
|
+
workspace?: WorkspaceType;
|
|
99
|
+
readonly appInsight?: AppInsightType;
|
|
100
|
+
};
|
|
101
|
+
export type LogsInputs = {
|
|
102
|
+
storage?: ResourceInputs;
|
|
103
|
+
workspace?: WorkspaceInputs;
|
|
104
|
+
appInsight?: AppInsightInputs;
|
|
105
|
+
};
|
|
106
|
+
export type LogsOutputs = {
|
|
107
|
+
storage?: ResourceOutputs;
|
|
108
|
+
workspace?: WorkspaceOutputs;
|
|
109
|
+
appInsight?: AppInsightOutputs;
|
|
110
|
+
};
|
|
111
|
+
export type NetworkArgs = {
|
|
112
|
+
publicNetworkAccess?: 'disabled' | 'enabled';
|
|
113
|
+
bypass?: 'AzureServices' | 'None' | string;
|
|
114
|
+
defaultAction?: 'Allow' | 'Deny';
|
|
115
|
+
ipRules?: pulumi.Input<pulumi.Input<string>[]>;
|
|
116
|
+
vnetRules?: pulumi.Input<pulumi.Input<{
|
|
117
|
+
subnetId: string;
|
|
118
|
+
ignoreMissingVnetServiceEndpoint?: boolean;
|
|
119
|
+
}>[]>;
|
|
120
|
+
privateLink?: PrivateEndpointType;
|
|
121
|
+
};
|
|
122
|
+
export type WithNetworkArgs = {
|
|
123
|
+
network?: NetworkArgs;
|
|
124
|
+
};
|
|
125
|
+
export {};
|
package/types.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
2
|
+
import { BaseComponent } from '../base/BaseComponent';
|
|
3
|
+
import { WithVaultInfo } from '../types';
|
|
4
|
+
export interface EncryptionKeyArgs extends Required<WithVaultInfo> {
|
|
5
|
+
keySize?: 2048 | 3072 | 4096;
|
|
6
|
+
}
|
|
7
|
+
export declare class EncryptionKey extends BaseComponent<EncryptionKeyArgs> {
|
|
8
|
+
readonly id: pulumi.Output<string>;
|
|
9
|
+
readonly keyName: pulumi.Output<string>;
|
|
10
|
+
readonly urlWithoutVersion: pulumi.Output<string>;
|
|
11
|
+
readonly vaultUrl: pulumi.Output<string>;
|
|
12
|
+
readonly version: pulumi.Output<string>;
|
|
13
|
+
constructor(name: string, args: EncryptionKeyArgs, opts?: pulumi.ComponentResourceOptions);
|
|
14
|
+
getOutputs(): {
|
|
15
|
+
id: pulumi.Output<string>;
|
|
16
|
+
keyName: pulumi.Output<string>;
|
|
17
|
+
urlWithoutVersion: pulumi.Output<string>;
|
|
18
|
+
vaultUrl: pulumi.Output<string>;
|
|
19
|
+
version: pulumi.Output<string>;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
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.EncryptionKey = void 0;
|
|
37
|
+
const azure_providers_1 = require("@drunk-pulumi/azure-providers");
|
|
38
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
39
|
+
const BaseComponent_1 = require("../base/BaseComponent");
|
|
40
|
+
const helpers_1 = require("../base/helpers");
|
|
41
|
+
class EncryptionKey extends BaseComponent_1.BaseComponent {
|
|
42
|
+
id;
|
|
43
|
+
keyName;
|
|
44
|
+
urlWithoutVersion;
|
|
45
|
+
vaultUrl;
|
|
46
|
+
version;
|
|
47
|
+
constructor(name, args, opts) {
|
|
48
|
+
super((0, helpers_1.getComponentResourceType)('EncryptionKey'), name, args, opts);
|
|
49
|
+
const key = new azure_providers_1.VaultKeyResource(`${name}-encryptKey`, {
|
|
50
|
+
name: `${name}-encryptKey`,
|
|
51
|
+
vaultName: args.vaultInfo.resourceName,
|
|
52
|
+
key: { keySize: args.keySize ?? 4096 },
|
|
53
|
+
}, { ...opts, parent: this, retainOnDelete: true });
|
|
54
|
+
const urlWithoutVersion = pulumi.output([key.version, key.id]).apply(([v, id]) => id.replace(`/${v}`, ''));
|
|
55
|
+
this.id = key.id;
|
|
56
|
+
this.keyName = key.name;
|
|
57
|
+
this.urlWithoutVersion = urlWithoutVersion;
|
|
58
|
+
this.vaultUrl = key.vaultUrl;
|
|
59
|
+
this.version = key.version;
|
|
60
|
+
this.registerOutputs(this.getOutputs());
|
|
61
|
+
}
|
|
62
|
+
getOutputs() {
|
|
63
|
+
return {
|
|
64
|
+
id: this.id,
|
|
65
|
+
keyName: this.keyName,
|
|
66
|
+
urlWithoutVersion: this.urlWithoutVersion,
|
|
67
|
+
vaultUrl: this.vaultUrl,
|
|
68
|
+
version: this.version,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.EncryptionKey = EncryptionKey;
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5jcnlwdGlvbktleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YXVsdC9FbmNyeXB0aW9uS2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1FQUFpRTtBQUNqRSx1REFBeUM7QUFDekMseURBQXNEO0FBQ3RELDZDQUEyRDtBQU8zRCxNQUFhLGFBQWMsU0FBUSw2QkFBZ0M7SUFDakQsRUFBRSxDQUF3QjtJQUMxQixPQUFPLENBQXdCO0lBQy9CLGlCQUFpQixDQUF3QjtJQUN6QyxRQUFRLENBQXdCO0lBQ2hDLE9BQU8sQ0FBd0I7SUFFL0MsWUFBWSxJQUFZLEVBQUUsSUFBdUIsRUFBRSxJQUFzQztRQUN2RixLQUFLLENBQUMsSUFBQSxrQ0FBd0IsRUFBQyxlQUFlLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25FLE1BQU0sR0FBRyxHQUFHLElBQUksa0NBQWdCLENBQzlCLEdBQUcsSUFBSSxhQUFhLEVBQ3BCO1lBQ0UsSUFBSSxFQUFFLEdBQUcsSUFBSSxhQUFhO1lBQzFCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVk7WUFDdEMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO1NBQ3ZDLEVBQ0QsRUFBRSxHQUFHLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FDaEQsQ0FBQztRQUVGLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTNHLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFFM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUN6QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF2Q0Qsc0NBdUNDIn0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as keyvault from '@pulumi/azure-native/keyvault';
|
|
2
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
3
|
+
import { BaseArgs, BaseResourceComponent } from '../base/BaseResourceComponent';
|
|
4
|
+
import { ResourceGroupInputs, WithNetworkArgs, WithResourceGroupInputs } from '../types';
|
|
5
|
+
export interface KeyVaultArgs extends BaseArgs, WithResourceGroupInputs, WithNetworkArgs, Pick<keyvault.VaultArgs, 'tags'> {
|
|
6
|
+
sku?: 'standard' | 'premium';
|
|
7
|
+
properties?: {
|
|
8
|
+
enablePurgeProtection?: pulumi.Input<boolean>;
|
|
9
|
+
enableRbacAuthorization?: pulumi.Input<boolean>;
|
|
10
|
+
enableSoftDelete?: pulumi.Input<boolean>;
|
|
11
|
+
enabledForDeployment?: pulumi.Input<boolean>;
|
|
12
|
+
enabledForDiskEncryption?: pulumi.Input<boolean>;
|
|
13
|
+
enabledForTemplateDeployment?: pulumi.Input<boolean>;
|
|
14
|
+
softDeleteRetentionInDays?: pulumi.Input<number>;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export declare class KeyVault extends BaseResourceComponent<KeyVaultArgs> {
|
|
18
|
+
readonly resourceName: pulumi.Output<string>;
|
|
19
|
+
readonly id: pulumi.Output<string>;
|
|
20
|
+
readonly rsGroup: ResourceGroupInputs;
|
|
21
|
+
constructor(name: string, args: KeyVaultArgs, opts?: pulumi.ComponentResourceOptions);
|
|
22
|
+
getOutputs(): {
|
|
23
|
+
resourceName: pulumi.Output<string>;
|
|
24
|
+
id: pulumi.Output<string>;
|
|
25
|
+
rsGroup: {
|
|
26
|
+
resourceGroupName: pulumi.Input<string>;
|
|
27
|
+
location?: pulumi.Input<string> | undefined;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
private createPrivateEndpoint;
|
|
31
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
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.KeyVault = void 0;
|
|
37
|
+
const keyvault = __importStar(require("@pulumi/azure-native/keyvault"));
|
|
38
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
39
|
+
const BaseResourceComponent_1 = require("../base/BaseResourceComponent");
|
|
40
|
+
const helpers_1 = require("../helpers");
|
|
41
|
+
const vnet_1 = require("../vnet");
|
|
42
|
+
class KeyVault extends BaseResourceComponent_1.BaseResourceComponent {
|
|
43
|
+
resourceName;
|
|
44
|
+
id;
|
|
45
|
+
rsGroup;
|
|
46
|
+
constructor(name, args, opts) {
|
|
47
|
+
super('KeyVault', name, args, opts);
|
|
48
|
+
const vault = new keyvault.Vault(name, {
|
|
49
|
+
...args.rsGroup,
|
|
50
|
+
properties: {
|
|
51
|
+
//Default values
|
|
52
|
+
enableRbacAuthorization: true,
|
|
53
|
+
enablePurgeProtection: true,
|
|
54
|
+
enableSoftDelete: true,
|
|
55
|
+
softDeleteRetentionInDays: 7,
|
|
56
|
+
//Allows to be overwritten
|
|
57
|
+
...args.properties,
|
|
58
|
+
tenantId: helpers_1.azureEnv.tenantId,
|
|
59
|
+
sku: {
|
|
60
|
+
family: 'A',
|
|
61
|
+
name: args.sku ?? 'standard',
|
|
62
|
+
},
|
|
63
|
+
publicNetworkAccess: args.network?.publicNetworkAccess ?? (args.network?.privateLink ? 'disabled' : 'enabled'),
|
|
64
|
+
networkAcls: {
|
|
65
|
+
bypass: args.network?.bypass,
|
|
66
|
+
defaultAction: args.network?.defaultAction,
|
|
67
|
+
ipRules: args.network?.ipRules
|
|
68
|
+
? pulumi.output(args.network.ipRules).apply((ips) => ips.map((i) => ({ value: i })))
|
|
69
|
+
: undefined,
|
|
70
|
+
virtualNetworkRules: args.network?.vnetRules
|
|
71
|
+
? pulumi.output(args.network.vnetRules).apply((vnetRules) => vnetRules.map((v) => ({
|
|
72
|
+
id: v.subnetId,
|
|
73
|
+
ignoreMissingVnetServiceEndpoint: v.ignoreMissingVnetServiceEndpoint,
|
|
74
|
+
})))
|
|
75
|
+
: undefined,
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
tags: args.tags,
|
|
79
|
+
}, {
|
|
80
|
+
...opts,
|
|
81
|
+
ignoreChanges: ['properties.accessPolicies'],
|
|
82
|
+
parent: this,
|
|
83
|
+
});
|
|
84
|
+
this.createPrivateEndpoint(vault);
|
|
85
|
+
this.resourceName = vault.name;
|
|
86
|
+
this.id = vault.id;
|
|
87
|
+
this.rsGroup = args.rsGroup;
|
|
88
|
+
this.registerOutputs();
|
|
89
|
+
}
|
|
90
|
+
getOutputs() {
|
|
91
|
+
return {
|
|
92
|
+
resourceName: this.resourceName,
|
|
93
|
+
id: this.id,
|
|
94
|
+
rsGroup: this.rsGroup,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
createPrivateEndpoint(vault) {
|
|
98
|
+
const { network } = this.args;
|
|
99
|
+
if (!network?.privateLink)
|
|
100
|
+
return;
|
|
101
|
+
return new vnet_1.PrivateEndpoint(`${this.name}-private-endpoint`, {
|
|
102
|
+
rsGroup: this.args.rsGroup,
|
|
103
|
+
resourceInfo: vault,
|
|
104
|
+
type: 'keyVault',
|
|
105
|
+
...network.privateLink,
|
|
106
|
+
}, { dependsOn: vault, parent: this });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.KeyVault = KeyVault;
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5VmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmF1bHQvS2V5VmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0VBQTBEO0FBQzFELHVEQUF5QztBQUN6Qyx5RUFBZ0Y7QUFDaEYsd0NBQXNDO0FBRXRDLGtDQUEwQztBQW9CMUMsTUFBYSxRQUFTLFNBQVEsNkNBQW1DO0lBQy9DLFlBQVksQ0FBd0I7SUFDcEMsRUFBRSxDQUF3QjtJQUMxQixPQUFPLENBQXNCO0lBRTdDLFlBQVksSUFBWSxFQUFFLElBQWtCLEVBQUUsSUFBc0M7UUFDbEYsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBDLE1BQU0sS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLEtBQUssQ0FDOUIsSUFBSSxFQUNKO1lBQ0UsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNmLFVBQVUsRUFBRTtnQkFDVixnQkFBZ0I7Z0JBQ2hCLHVCQUF1QixFQUFFLElBQUk7Z0JBQzdCLHFCQUFxQixFQUFFLElBQUk7Z0JBQzNCLGdCQUFnQixFQUFFLElBQUk7Z0JBQ3RCLHlCQUF5QixFQUFFLENBQUM7Z0JBQzVCLDBCQUEwQjtnQkFDMUIsR0FBRyxJQUFJLENBQUMsVUFBVTtnQkFDbEIsUUFBUSxFQUFFLGtCQUFRLENBQUMsUUFBUTtnQkFFM0IsR0FBRyxFQUFFO29CQUNILE1BQU0sRUFBRSxHQUFHO29CQUNYLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLFVBQVU7aUJBQzdCO2dCQUVELG1CQUFtQixFQUNqQixJQUFJLENBQUMsT0FBTyxFQUFFLG1CQUFtQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUUzRixXQUFXLEVB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
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
2
|
+
import { BaseComponent } from '../base/BaseComponent';
|
|
3
|
+
import { WithVaultInfo } from '../types';
|
|
4
|
+
export type SecretItemArgs = {
|
|
5
|
+
value?: pulumi.Input<string>;
|
|
6
|
+
contentType?: pulumi.Input<string>;
|
|
7
|
+
tags?: {
|
|
8
|
+
[key: string]: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export interface VaultSecretArgs extends SecretItemArgs, Required<WithVaultInfo> {
|
|
12
|
+
}
|
|
13
|
+
export declare class VaultSecret extends BaseComponent<VaultSecretArgs> {
|
|
14
|
+
readonly id: pulumi.Output<string>;
|
|
15
|
+
readonly vaultUrl: pulumi.Output<string>;
|
|
16
|
+
readonly version: pulumi.Output<string>;
|
|
17
|
+
constructor(name: string, args: VaultSecretArgs, opts?: pulumi.ComponentResourceOptions);
|
|
18
|
+
getOutputs(): {
|
|
19
|
+
id: pulumi.Output<string>;
|
|
20
|
+
vaultUrl: pulumi.Output<string>;
|
|
21
|
+
version: pulumi.Output<string>;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.VaultSecret = void 0;
|
|
37
|
+
const VaultSecret_1 = require("@drunk-pulumi/azure-providers/VaultSecret");
|
|
38
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
39
|
+
const BaseComponent_1 = require("../base/BaseComponent");
|
|
40
|
+
const helpers_1 = require("../base/helpers");
|
|
41
|
+
const helpers_2 = require("../helpers");
|
|
42
|
+
const vaultHelpers = __importStar(require("./helpers"));
|
|
43
|
+
class VaultSecret extends BaseComponent_1.BaseComponent {
|
|
44
|
+
id;
|
|
45
|
+
vaultUrl;
|
|
46
|
+
version;
|
|
47
|
+
constructor(name, args, opts) {
|
|
48
|
+
super((0, helpers_1.getComponentResourceType)('VaultSecret'), name, args, opts);
|
|
49
|
+
const secretValue = args.value ?? helpers_2.configHelper.getSecret(name) ?? '';
|
|
50
|
+
const secretName = vaultHelpers.getSecretName(this.name);
|
|
51
|
+
const secret = new VaultSecret_1.VaultSecretResource(name, {
|
|
52
|
+
name: secretName,
|
|
53
|
+
value: secretValue,
|
|
54
|
+
vaultName: pulumi.output(args.vaultInfo).apply((v) => v.resourceName),
|
|
55
|
+
contentType: args.contentType,
|
|
56
|
+
tags: args.tags,
|
|
57
|
+
}, opts);
|
|
58
|
+
this.id = secret.id;
|
|
59
|
+
this.vaultUrl = secret.vaultUrl;
|
|
60
|
+
this.version = secret.version;
|
|
61
|
+
this.registerOutputs(this.getOutputs());
|
|
62
|
+
}
|
|
63
|
+
getOutputs() {
|
|
64
|
+
return {
|
|
65
|
+
id: this.id,
|
|
66
|
+
vaultUrl: this.vaultUrl,
|
|
67
|
+
version: this.version,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.VaultSecret = VaultSecret;
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmF1bHRTZWNyZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmF1bHQvVmF1bHRTZWNyZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkVBQWdGO0FBQ2hGLHVEQUF5QztBQUN6Qyx5REFBc0Q7QUFDdEQsNkNBQTJEO0FBQzNELHdDQUEwQztBQUUxQyx3REFBMEM7QUFhMUMsTUFBYSxXQUFZLFNBQVEsNkJBQThCO0lBQzdDLEVBQUUsQ0FBd0I7SUFDMUIsUUFBUSxDQUF3QjtJQUNoQyxPQUFPLENBQXdCO0lBRS9DLFlBQVksSUFBWSxFQUFFLElBQXFCLEVBQUUsSUFBc0M7UUFDckYsS0FBSyxDQUFDLElBQUEsa0NBQXdCLEVBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLHNCQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRSxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6RCxNQUFNLE1BQU0sR0FBRyxJQUFJLGlDQUFtQixDQUNwQyxJQUFJLEVBQ0o7WUFDRSxJQUFJLEVBQUUsVUFBVTtZQUNoQixLQUFLLEVBQUUsV0FBVztZQUNsQixTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO1lBQ3JFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDaEIsRUFDRCxJQUFJLENBQ0wsQ0FBQztRQUVGLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBRTlCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBcENELGtDQW9DQyJ9
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
2
|
+
import { BaseComponent } from '../base/BaseComponent';
|
|
3
|
+
import { WithVaultInfo } from '../types';
|
|
4
|
+
import { SecretItemArgs } from './VaultSecret';
|
|
5
|
+
export type VaultSecretResult = {
|
|
6
|
+
id: pulumi.Output<string>;
|
|
7
|
+
vaultUrl: pulumi.Output<string>;
|
|
8
|
+
version: pulumi.Output<string>;
|
|
9
|
+
};
|
|
10
|
+
export interface VaultSecretsArgs extends Required<WithVaultInfo> {
|
|
11
|
+
secrets: {
|
|
12
|
+
[key: string]: SecretItemArgs;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export declare class VaultSecrets extends BaseComponent<VaultSecretsArgs> {
|
|
16
|
+
readonly results: {
|
|
17
|
+
[key: string]: VaultSecretResult;
|
|
18
|
+
};
|
|
19
|
+
constructor(name: string, args: VaultSecretsArgs, opts?: pulumi.ComponentResourceOptions);
|
|
20
|
+
getOutputs(): {
|
|
21
|
+
results: {
|
|
22
|
+
[key: string]: VaultSecretResult;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
}
|