@drunk-pulumi/azure 0.0.36 → 0.0.38
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/Aks/Helper.d.ts +6 -11
- package/Aks/Helper.js +40 -65
- package/Aks/Identity.d.ts +3 -10
- package/Aks/Identity.js +9 -8
- package/Aks/index.d.ts +67 -71
- package/Aks/index.js +198 -314
- package/Apim/ApiProduct/PolicyBuilder.js +25 -27
- package/Apim/ApiProduct/SwaggerHelper.js +1 -3
- package/Apim/ApiProduct/index.d.ts +3 -3
- package/Apim/ApiProduct/index.js +1 -2
- package/Automation/index.d.ts +7 -0
- package/Automation/index.js +55 -0
- package/AzAd/EnvRoles.Consts.d.ts +12 -0
- package/AzAd/EnvRoles.Consts.js +125 -0
- package/AzAd/EnvRoles.d.ts +16 -15
- package/AzAd/EnvRoles.js +69 -47
- package/AzAd/GraphDefinition.d.ts +2 -2
- package/AzAd/GraphDefinition.js +3055 -3056
- package/AzAd/Helper.d.ts +24 -13
- package/AzAd/Helper.js +98 -25
- package/AzAd/Identities/AzDevOpsIdentity.d.ts +12 -0
- package/AzAd/Identities/AzDevOpsIdentity.js +32 -0
- package/AzAd/Identities/AzDevOpsManagedIdentity.d.ts +7 -0
- package/AzAd/Identities/AzDevOpsManagedIdentity.js +15 -0
- package/AzAd/Identities/AzUserAdRevertSync.d.ts +2 -9
- package/AzAd/Identities/AzUserAdRevertSync.js +4 -5
- package/AzAd/Identities/index.d.ts +3 -0
- package/AzAd/Identities/index.js +10 -0
- package/AzAd/Identity.d.ts +10 -22
- package/AzAd/Identity.js +50 -61
- package/AzAd/Role.d.ts +2 -3
- package/AzAd/Role.js +4 -5
- package/AzAd/RoleAssignment.d.ts +34 -5
- package/AzAd/RoleAssignment.js +2 -2
- package/AzAd/RoleDefinitions/JustInTimeRequestRole.d.ts +2 -0
- package/AzAd/RoleDefinitions/JustInTimeRequestRole.js +25 -0
- package/AzAd/RolesBuiltIn.d.ts +29 -0
- package/AzAd/RolesBuiltIn.js +13034 -8058
- package/AzAd/UserAssignedIdentity.d.ts +6 -0
- package/AzAd/UserAssignedIdentity.js +27 -0
- package/Builder/AksBuilder.d.ts +3 -0
- package/Builder/AksBuilder.js +95 -0
- package/Builder/VnetBuilder.d.ts +3 -0
- package/Builder/VnetBuilder.js +279 -0
- package/Builder/index.d.ts +2 -0
- package/Builder/index.js +8 -0
- package/Builder/types.d.ts +120 -0
- package/Builder/types.js +18 -0
- package/Certificate/index.d.ts +1 -1
- package/Certificate/index.js +26 -28
- package/Common/AutoTags.js +2 -2
- package/Common/AzureEnv.d.ts +4 -3
- package/Common/AzureEnv.js +31 -24
- package/Common/GlobalEnv.d.ts +1 -2
- package/Common/GlobalEnv.js +7 -7
- package/Common/Location.d.ts +3 -3
- package/Common/Location.js +22 -9
- package/Common/LocationBuiltIn.d.ts +6 -81
- package/Common/LocationBuiltIn.js +491 -1923
- package/Common/Naming/index.d.ts +6 -4
- package/Common/Naming/index.js +64 -60
- package/Common/ResourceEnv.d.ts +2 -2
- package/Common/ResourceEnv.js +11 -10
- package/Common/StackEnv.js +2 -9
- package/Core/KeyGenetators.d.ts +16 -20
- package/Core/KeyGenetators.js +17 -16
- package/Core/Random.d.ts +4 -4
- package/Core/Random.js +10 -10
- package/Core/ResourceGroup.d.ts +12 -6
- package/Core/ResourceGroup.js +12 -24
- package/IOT/Hub/index.d.ts +4 -8
- package/IOT/Hub/index.js +19 -54
- package/KeyVault/Helper.d.ts +8 -6
- package/KeyVault/Helper.js +13 -19
- package/KeyVault/index.d.ts +1 -3
- package/KeyVault/index.js +2 -26
- package/Logs/Helpers.d.ts +35 -25
- package/Logs/Helpers.js +33 -20
- package/Logs/LogAnalytics.d.ts +2 -2
- package/Logs/LogAnalytics.js +15 -6
- package/Logs/index.d.ts +3 -3
- package/Logs/index.js +4 -4
- package/MySql/index.d.ts +2 -3
- package/MySql/index.js +16 -19
- package/{ReadMe.md → README.md} +6 -1
- package/Sql/index.d.ts +17 -10
- package/Sql/index.js +39 -42
- package/Storage/CdnEndpoint.d.ts +2 -2
- package/Storage/CdnEndpoint.js +14 -15
- package/Storage/Helper.d.ts +2 -2
- package/Storage/Helper.js +6 -6
- package/Storage/ManagementRules.d.ts +5 -23
- package/Storage/ManagementRules.js +3 -3
- package/Storage/index.d.ts +3 -3
- package/Storage/index.js +28 -28
- package/VM/AzureDevOpsExtension.d.ts +16 -0
- package/VM/AzureDevOpsExtension.js +14 -0
- package/VM/Extension.d.ts +15 -0
- package/VM/Extension.js +13 -0
- package/VM/GlobalSchedule.d.ts +10 -0
- package/VM/GlobalSchedule.js +20 -0
- package/VM/index.d.ts +18 -18
- package/VM/index.js +94 -57
- package/VNet/Bastion.d.ts +4 -4
- package/VNet/Bastion.js +12 -8
- package/VNet/Firewall.d.ts +19 -12
- package/VNet/Firewall.js +59 -40
- package/VNet/FirewallPolicies/AksFirewallPolicy.d.ts +16 -16
- package/VNet/FirewallPolicies/AksFirewallPolicy.js +193 -220
- package/VNet/FirewallPolicies/CloudPCFirewallPolicy.d.ts +12 -10
- package/VNet/FirewallPolicies/CloudPCFirewallPolicy.js +170 -282
- package/VNet/FirewallPolicies/DefaultFirewallPolicy.d.ts +3 -0
- package/VNet/FirewallPolicies/DefaultFirewallPolicy.js +25 -0
- package/VNet/FirewallPolicies/index.d.ts +4 -0
- package/VNet/FirewallPolicies/index.js +10 -0
- package/VNet/FirewallPolicy.d.ts +14 -11
- package/VNet/FirewallPolicy.js +67 -74
- package/VNet/FirewallRules/AksFirewallRules.d.ts +4 -3
- package/VNet/FirewallRules/AksFirewallRules.js +101 -100
- package/VNet/Helper.d.ts +8 -4
- package/VNet/Helper.js +42 -35
- package/VNet/IpAddress.d.ts +6 -8
- package/VNet/IpAddress.js +6 -11
- package/VNet/IpAddressPrefix.d.ts +12 -9
- package/VNet/IpAddressPrefix.js +14 -13
- package/VNet/NSGRules/AppGatewaySecurityRule.d.ts +9 -0
- package/VNet/NSGRules/AppGatewaySecurityRule.js +46 -0
- package/VNet/NSGRules/AzADSecurityRule.d.ts +6 -0
- package/VNet/NSGRules/AzADSecurityRule.js +39 -0
- package/VNet/NSGRules/BastionSecurityRule.d.ts +9 -0
- package/VNet/NSGRules/BastionSecurityRule.js +93 -0
- package/VNet/NatGateway.d.ts +10 -0
- package/VNet/NatGateway.js +21 -0
- package/VNet/NetworkPeering.d.ts +7 -7
- package/VNet/NetworkPeering.js +29 -20
- package/VNet/PrivateDns.d.ts +8 -10
- package/VNet/PrivateDns.js +12 -14
- package/VNet/PrivateEndpoint.js +5 -2
- package/VNet/RouteTable.d.ts +7 -8
- package/VNet/RouteTable.js +6 -6
- package/VNet/SecurityGroup.d.ts +4 -4
- package/VNet/SecurityGroup.js +7 -3
- package/VNet/Subnet.d.ts +10 -7
- package/VNet/Subnet.js +4 -3
- package/VNet/VPNGateway.d.ts +13 -0
- package/VNet/VPNGateway.js +73 -0
- package/VNet/VirtualWAN.d.ts +7 -10
- package/VNet/VirtualWAN.js +1 -1
- package/VNet/Vnet.d.ts +29 -23
- package/VNet/Vnet.js +58 -121
- package/VNet/index.d.ts +17 -18
- package/VNet/index.js +41 -54
- package/VNet/types.d.ts +94 -0
- package/VNet/types.js +3 -0
- package/Web/types.d.ts +2 -134
- package/package.json +8 -8
- package/types.d.ts +22 -8
- package/z_tests/_tools/Mocks.js +12 -13
- package/Automation/AutoAccount.d.ts +0 -5
- package/Automation/AutoAccount.js +0 -18
- package/AzAd/Identities/AzDevOps.d.ts +0 -23
- package/AzAd/Identities/AzDevOps.js +0 -61
- package/AzAd/KeyVaultRoles.d.ts +0 -8
- package/AzAd/KeyVaultRoles.js +0 -53
- package/AzAd/ManagedIdentity.d.ts +0 -6
- package/AzAd/ManagedIdentity.js +0 -20
- package/AzAd/UserIdentity.d.ts +0 -5
- package/AzAd/UserIdentity.js +0 -12
- package/Common/Naming/AzureRegions.d.ts +0 -4
- package/Common/Naming/AzureRegions.js +0 -49
- package/KeyVault/VaultPermissions.d.ts +0 -27
- package/KeyVault/VaultPermissions.js +0 -226
- package/VNet/FirewallRules/types.d.ts +0 -20
- package/VNet/FirewallRules/types.js +0 -5
- package/VNet/NSGRules/AzADService.d.ts +0 -10
- package/VNet/NSGRules/AzADService.js +0 -45
package/Logs/Helpers.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getLogStorageInfo = exports.getLogWpInfo = exports.getLogWpSecretsById = exports.getLogWpSecrets = exports.createThreatProtection = exports.createDiagnostic = void 0;
|
|
3
|
+
exports.getLogInfo = exports.getLogStorageInfo = exports.getLogWpInfo = exports.getLogWpSecretsById = exports.getLogWpSecrets = exports.createThreatProtection = exports.createDiagnostic = void 0;
|
|
4
4
|
const native = require("@pulumi/azure-native");
|
|
5
5
|
const pulumi_1 = require("@pulumi/pulumi");
|
|
6
6
|
const AzureEnv_1 = require("../Common/AzureEnv");
|
|
7
|
-
const GlobalEnv_1 = require("../Common/GlobalEnv");
|
|
8
7
|
const Naming_1 = require("../Common/Naming");
|
|
9
8
|
const Helper_1 = require("../KeyVault/Helper");
|
|
10
9
|
const Helper_2 = require("../Storage/Helper");
|
|
11
|
-
const
|
|
10
|
+
const ResourceEnv_1 = require("../Common/ResourceEnv");
|
|
11
|
+
const createDiagnostic = ({ name, targetResourceId, logWpId, logStorageId, metricsCategories = ["AllMetrics"], logsCategories, dependsOn, }) => {
|
|
12
12
|
//Ensure logWpId or logStorageId is provided
|
|
13
13
|
if (!logWpId && !logStorageId) {
|
|
14
14
|
console.error(`Diagnostic for "${name}" must have either a "logWpId" or "logStorageId".`);
|
|
@@ -23,7 +23,7 @@ const createDiagnostic = ({ name, targetResourceId, logWpId, logStorageId, metri
|
|
|
23
23
|
return new native.insights.DiagnosticSetting(n, {
|
|
24
24
|
name: n,
|
|
25
25
|
resourceUri: targetResourceId,
|
|
26
|
-
logAnalyticsDestinationType:
|
|
26
|
+
logAnalyticsDestinationType: "AzureDiagnostics",
|
|
27
27
|
workspaceId: logWpId,
|
|
28
28
|
storageAccountId: logWpId ? undefined : logStorageId,
|
|
29
29
|
//Metric
|
|
@@ -48,48 +48,61 @@ exports.createDiagnostic = createDiagnostic;
|
|
|
48
48
|
const createThreatProtection = ({ name, targetResourceId, }) => new native.security.AdvancedThreatProtection(name, {
|
|
49
49
|
isEnabled: true,
|
|
50
50
|
resourceId: targetResourceId,
|
|
51
|
+
settingName: "current",
|
|
51
52
|
});
|
|
52
53
|
exports.createThreatProtection = createThreatProtection;
|
|
53
|
-
const getLogWpSecrets = async ({ fullName,
|
|
54
|
-
//group,
|
|
55
|
-
vaultInfo, }) => {
|
|
54
|
+
const getLogWpSecrets = async ({ fullName, vaultInfo, }) => {
|
|
56
55
|
const workspaceIdKeyName = `${fullName}-Id`;
|
|
57
|
-
const primaryKeyName = (0, Naming_1.getKeyName)(fullName,
|
|
58
|
-
const secondaryKeyName = (0, Naming_1.getKeyName)(fullName,
|
|
56
|
+
const primaryKeyName = (0, Naming_1.getKeyName)(fullName, "primary");
|
|
57
|
+
const secondaryKeyName = (0, Naming_1.getKeyName)(fullName, "secondary");
|
|
59
58
|
const [wpId, primaryKey, secondaryKey] = await Promise.all([
|
|
60
|
-
(0, Helper_1.getSecret)({ name: workspaceIdKeyName, vaultInfo }),
|
|
61
|
-
(0, Helper_1.getSecret)({ name: primaryKeyName, nameFormatted: true, vaultInfo }),
|
|
62
|
-
(0, Helper_1.getSecret)({ name: secondaryKeyName, nameFormatted: true, vaultInfo }),
|
|
59
|
+
(0, Helper_1.getSecret)({ name: workspaceIdKeyName, vaultInfo }).then((i) => i?.value),
|
|
60
|
+
(0, Helper_1.getSecret)({ name: primaryKeyName, nameFormatted: true, vaultInfo }).then((i) => i?.value),
|
|
61
|
+
(0, Helper_1.getSecret)({ name: secondaryKeyName, nameFormatted: true, vaultInfo }).then((i) => i?.value),
|
|
63
62
|
]);
|
|
64
63
|
return { wpId, primaryKey, secondaryKey };
|
|
65
64
|
};
|
|
66
65
|
exports.getLogWpSecrets = getLogWpSecrets;
|
|
67
66
|
const getLogWpSecretsById = async ({ logWpId, vaultInfo, }) => {
|
|
68
|
-
const info = (0, AzureEnv_1.
|
|
67
|
+
const info = (0, AzureEnv_1.parseResourceInfoFromId)(logWpId);
|
|
69
68
|
const secrets = info
|
|
70
69
|
? await (0, exports.getLogWpSecrets)({ fullName: info.name, vaultInfo })
|
|
71
70
|
: undefined;
|
|
72
71
|
return secrets ? { info, secrets } : undefined;
|
|
73
72
|
};
|
|
74
73
|
exports.getLogWpSecretsById = getLogWpSecretsById;
|
|
75
|
-
const getLogWpInfo =
|
|
74
|
+
const getLogWpInfo = ({ logWpName, vaultInfo, group, }) => {
|
|
76
75
|
const name = (0, Naming_1.getLogWpName)(logWpName);
|
|
77
|
-
const group = GlobalEnv_1.logGroupInfo;
|
|
78
76
|
const id = (0, pulumi_1.interpolate) `/subscriptions/${AzureEnv_1.subscriptionId}/resourcegroups/${group.resourceGroupName}/providers/microsoft.operationalinsights/workspaces/${name}`;
|
|
79
77
|
const secrets = vaultInfo
|
|
80
|
-
?
|
|
78
|
+
? (0, pulumi_1.output)((0, exports.getLogWpSecrets)({ fullName: name, vaultInfo }))
|
|
81
79
|
: undefined;
|
|
82
80
|
return { name, group, id, secrets };
|
|
83
81
|
};
|
|
84
82
|
exports.getLogWpInfo = getLogWpInfo;
|
|
85
|
-
const getLogStorageInfo =
|
|
83
|
+
const getLogStorageInfo = ({ storageName, group, vaultInfo, }) => {
|
|
86
84
|
const name = (0, Naming_1.getStorageName)(storageName);
|
|
87
|
-
const group = GlobalEnv_1.logGroupInfo;
|
|
88
85
|
const id = (0, pulumi_1.interpolate) `/subscriptions/${AzureEnv_1.subscriptionId}/resourcegroups/${group.resourceGroupName}/providers/Microsoft.Storage/storageAccounts/${name}`;
|
|
89
86
|
const secrets = vaultInfo
|
|
90
|
-
?
|
|
87
|
+
? (0, pulumi_1.output)((0, Helper_2.getStorageSecrets)({ name, vaultInfo }))
|
|
91
88
|
: undefined;
|
|
92
89
|
return { name, group, id, secrets };
|
|
93
90
|
};
|
|
94
91
|
exports.getLogStorageInfo = getLogStorageInfo;
|
|
95
|
-
|
|
92
|
+
const getLogInfo = (groupName, vaultInfo = undefined) => {
|
|
93
|
+
const rgName = (0, Naming_1.getResourceGroupName)(groupName);
|
|
94
|
+
const name = (0, ResourceEnv_1.getResourceName)(groupName, { suffix: "logs" });
|
|
95
|
+
const logWp = (0, exports.getLogWpInfo)({
|
|
96
|
+
logWpName: name,
|
|
97
|
+
vaultInfo,
|
|
98
|
+
group: { resourceGroupName: rgName, location: AzureEnv_1.currentRegionName },
|
|
99
|
+
});
|
|
100
|
+
const logStorage = (0, exports.getLogStorageInfo)({
|
|
101
|
+
storageName: name,
|
|
102
|
+
vaultInfo,
|
|
103
|
+
group: { resourceGroupName: rgName, location: AzureEnv_1.currentRegionName },
|
|
104
|
+
});
|
|
105
|
+
return { logWp, logStorage };
|
|
106
|
+
};
|
|
107
|
+
exports.getLogInfo = getLogInfo;
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Mb2dzL0hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQStDO0FBQy9DLDJDQUFvRTtBQUNwRSxpREFJNEI7QUFDNUIsNkNBSzBCO0FBQzFCLCtDQUErQztBQUMvQyw4Q0FBNkU7QUFFN0UsdURBQXdEO0FBRWpELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxFQUMvQixJQUFJLEVBQ0osZ0JBQWdCLEVBQ2hCLE9BQU8sRUFDUCxZQUFZLEVBQ1osaUJBQWlCLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFDbEMsY0FBYyxFQUNkLFNBQVMsR0FDTyxFQUFFLEVBQUU7SUFDcEIsNENBQTRDO0lBQzVDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM5QixPQUFPLENBQUMsS0FBSyxDQUNYLG1CQUFtQixJQUFJLG1EQUFtRCxDQUMzRSxDQUFDO1FBQ0YsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN0QixPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixJQUFJLHFCQUFxQixDQUFDLENBQUM7UUFDaEUsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUM7SUFDekIsT0FBTyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQzFDLENBQUMsRUFDRDtRQUNFLElBQUksRUFBRSxDQUFDO1FBQ1AsV0FBVyxFQUFFLGdCQUFnQjtRQUM3QiwyQkFBMkIsRUFBRSxrQkFBa0I7UUFFL0MsV0FBVyxFQUFFLE9BQU87UUFDcEIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVk7UUFFcEQsUUFBUTtRQUNSLE9BQU8sRUFBRSxp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
|
package/Logs/LogAnalytics.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as operationalinsights from
|
|
2
|
-
import { KeyVaultInfo, ResourceGroupInfo } from
|
|
1
|
+
import * as operationalinsights from "@pulumi/azure-native/operationalinsights";
|
|
2
|
+
import { KeyVaultInfo, ResourceGroupInfo } from "../types";
|
|
3
3
|
interface Props {
|
|
4
4
|
name: string;
|
|
5
5
|
group: ResourceGroupInfo;
|
package/Logs/LogAnalytics.js
CHANGED
|
@@ -6,11 +6,20 @@ const CustomHelper_1 = require("../KeyVault/CustomHelper");
|
|
|
6
6
|
exports.default = ({ name, group, sku = operationalinsights.WorkspaceSkuNameEnum.Free, dailyQuotaGb = 0.023, vaultInfo, }) => {
|
|
7
7
|
name = (0, Naming_1.getLogWpName)(name);
|
|
8
8
|
const workspaceIdKeyName = `${name}-Id`;
|
|
9
|
-
const primaryKeyName = (0, Naming_1.getKeyName)(name,
|
|
10
|
-
const secondaryKeyName = (0, Naming_1.getKeyName)(name,
|
|
9
|
+
const primaryKeyName = (0, Naming_1.getKeyName)(name, "primary");
|
|
10
|
+
const secondaryKeyName = (0, Naming_1.getKeyName)(name, "secondary");
|
|
11
11
|
const log = new operationalinsights.Workspace(name, {
|
|
12
12
|
workspaceName: name,
|
|
13
13
|
...group,
|
|
14
|
+
publicNetworkAccessForIngestion: "Enabled",
|
|
15
|
+
publicNetworkAccessForQuery: "Enabled",
|
|
16
|
+
features: {
|
|
17
|
+
//clusterResourceId?: pulumi.Input<string>;
|
|
18
|
+
//disableLocalAuth: true,
|
|
19
|
+
//enableDataExport: false,
|
|
20
|
+
//enableLogAccessUsingOnlyResourcePermissions?: pulumi.Input<boolean>;
|
|
21
|
+
immediatePurgeDataOn30Days: true,
|
|
22
|
+
},
|
|
14
23
|
workspaceCapping: sku === operationalinsights.WorkspaceSkuNameEnum.Free
|
|
15
24
|
? undefined
|
|
16
25
|
: { dailyQuotaGb }, //Fee is 2.99 USD/GB - Carefully
|
|
@@ -28,25 +37,25 @@ exports.default = ({ name, group, sku = operationalinsights.WorkspaceSkuNameEnum
|
|
|
28
37
|
(0, CustomHelper_1.addCustomSecret)({
|
|
29
38
|
name: workspaceIdKeyName,
|
|
30
39
|
value: id,
|
|
31
|
-
contentType:
|
|
40
|
+
contentType: "Log Analytics",
|
|
32
41
|
vaultInfo,
|
|
33
42
|
});
|
|
34
43
|
(0, CustomHelper_1.addCustomSecret)({
|
|
35
44
|
name: primaryKeyName,
|
|
36
45
|
formattedName: true,
|
|
37
46
|
value: keys.primarySharedKey,
|
|
38
|
-
contentType:
|
|
47
|
+
contentType: "Log Analytics",
|
|
39
48
|
vaultInfo,
|
|
40
49
|
});
|
|
41
50
|
(0, CustomHelper_1.addCustomSecret)({
|
|
42
51
|
name: secondaryKeyName,
|
|
43
52
|
formattedName: true,
|
|
44
53
|
value: keys.secondarySharedKey,
|
|
45
|
-
contentType:
|
|
54
|
+
contentType: "Log Analytics",
|
|
46
55
|
vaultInfo,
|
|
47
56
|
});
|
|
48
57
|
});
|
|
49
58
|
}
|
|
50
59
|
return { log, vaultNames: { primaryKeyName, secondaryKeyName } };
|
|
51
60
|
};
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nQW5hbHl0aWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0xvZ3MvTG9nQW5hbHl0aWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0ZBQWdGO0FBRWhGLDZDQUE0RDtBQUM1RCwyREFBMkQ7QUFVM0Qsa0JBQWUsQ0FBQyxFQUNkLElBQUksRUFDSixLQUFLLEVBQ0wsR0FBRyxHQUFHLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLElBQUksRUFDbkQsWUFBWSxHQUFHLEtBQUssRUFDcEIsU0FBUyxHQUNILEVBQUUsRUFBRTtJQUNWLElBQUksR0FBRyxJQUFBLHFCQUFZLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDO0lBQ3hDLE1BQU0sY0FBYyxHQUFHLElBQUEsbUJBQVUsRUFBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbkQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLG1CQUFVLEVBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRXZELE1BQU0sR0FBRyxHQUFHLElBQUksbUJBQW1CLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTtRQUNsRCxhQUFhLEVBQUUsSUFBSTtRQUNuQixHQUFHLEtBQUs7UUFFUiwrQkFBK0IsRUFBRSxTQUFTO1FBQzFDLDJCQUEyQixFQUFFLFNBQVM7UUFDdEMsUUFBUSxFQUFFO1lBQ1IsMkNBQTJDO1lBQzNDLHlCQUF5QjtZQUN6QiwwQkFBMEI7WUFDMUIsc0VBQXNFO1lBQ3RFLDBCQUEwQixFQUFFLElBQUk7U0FDakM7UUFDRCxnQkFBZ0IsRUFDZCxHQUFHLEtBQUssbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsSUFBSTtZQUNuRCxDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLGdDQUFnQztRQUV4RCxlQUFlLEVBQ2IsR0FBRyxLQUFLLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUscUJBQXFCO1FBQ3ZGLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7S0FDbkIsQ0FBQyxDQUFDO0lBRUgsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNkLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsRUFBRTtnQkFBRSxPQUFPO1lBRWhCLE1BQU0sSUFBSSxHQUFHLE1BQU0sbUJBQW1CLENBQUMsYUFBYSxDQUFDO2dCQUNuRCxhQUFhLEVBQUUsSUFBSTtnQkFDbkIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjthQUMzQyxDQUFDLENBQUM7WUFFSCxJQUFBLDhCQUFlLEVBQUM7Z0JBQ2QsSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsV0FBVyxFQUFFLGVBQWU7Z0JBQzVCLFNBQVM7YUFDVixDQUFDLENBQUM7WUFFSCxJQUFBLDhCQUFlLEVBQUM7Z0JBQ2QsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFpQjtnQkFDN0IsV0FBVyxFQUFFLGVBQWU7Z0JBQzVCLFNBQVM7YUFDVixDQUFDLENBQUM7WUFFSCxJQUFBLDhCQUFlLEVBQUM7Z0JBQ2QsSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQW1CO2dCQUMvQixXQUFXLEVBQUUsZUFBZTtnQkFDNUIsU0FBUzthQUNWLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztBQUNuRSxDQUFDLENBQUMifQ==
|
package/Logs/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BasicMonitorArgs, KeyVaultInfo, ResourceGroupInfo } from
|
|
2
|
-
import * as operationalinsights from
|
|
3
|
-
import { DefaultManagementRules } from
|
|
1
|
+
import { BasicMonitorArgs, KeyVaultInfo, ResourceGroupInfo } from "../types";
|
|
2
|
+
import * as operationalinsights from "@pulumi/azure-native/operationalinsights";
|
|
3
|
+
import { DefaultManagementRules } from "../Storage/ManagementRules";
|
|
4
4
|
type WorkspaceType = {
|
|
5
5
|
createAppInsight?: boolean;
|
|
6
6
|
sku?: operationalinsights.WorkspaceSkuNameEnum;
|
package/Logs/index.js
CHANGED
|
@@ -13,11 +13,11 @@ const defaultLogWorkspace = {
|
|
|
13
13
|
const defaultStorageRules = [
|
|
14
14
|
{
|
|
15
15
|
actions: { baseBlob: { delete: { daysAfterModificationGreaterThan: 30 } } },
|
|
16
|
-
filters: { blobTypes: [
|
|
16
|
+
filters: { blobTypes: ["blockBlob"] },
|
|
17
17
|
},
|
|
18
18
|
];
|
|
19
19
|
exports.default = ({ group, name, workspace, storage, vaultInfo }) => {
|
|
20
|
-
name = (0, ResourceEnv_1.getResourceName)(name, { suffix:
|
|
20
|
+
name = (0, ResourceEnv_1.getResourceName)(name, { suffix: "logs" });
|
|
21
21
|
const createWp = workspace
|
|
22
22
|
? { ...defaultLogWorkspace, ...workspace }
|
|
23
23
|
: undefined;
|
|
@@ -37,7 +37,7 @@ exports.default = ({ group, name, workspace, storage, vaultInfo }) => {
|
|
|
37
37
|
dailyCapGb: createWp.dailyQuotaGb,
|
|
38
38
|
immediatePurgeDataOn30Days: true,
|
|
39
39
|
workspaceResourceId: logWp.log.id,
|
|
40
|
-
ingestionMode:
|
|
40
|
+
ingestionMode: "LogAnalytics",
|
|
41
41
|
vaultInfo,
|
|
42
42
|
})
|
|
43
43
|
: undefined;
|
|
@@ -66,4 +66,4 @@ exports.default = ({ group, name, workspace, storage, vaultInfo }) => {
|
|
|
66
66
|
}),
|
|
67
67
|
};
|
|
68
68
|
};
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvTG9ncy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLGdGQUFnRjtBQUNoRixpREFBbUM7QUFDbkMsd0NBQWlDO0FBQ2pDLHVEQUF3RDtBQUV4RCw2Q0FBc0M7QUFRdEMsTUFBTSxtQkFBbUIsR0FBa0I7SUFDekMsZ0JBQWdCLEVBQUUsS0FBSztJQUN2QixHQUFHLEVBQUUsbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsU0FBUztJQUN2RCxZQUFZLEVBQUUsR0FBRztDQUNsQixDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBa0M7SUFDekQ7UUFDRSxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxnQ0FBZ0MsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQzNFLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFO0tBQ3RDO0NBQ0YsQ0FBQztBQWFGLGtCQUFlLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFTLEVBQUUsRUFBRTtJQUN2RSxJQUFJLEdBQUcsSUFBQSw2QkFBZSxFQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRWpELE1BQU0sUUFBUSxHQUE4QixTQUFTO1FBQ25ELENBQUMsQ0FBQyxFQUFFLEdBQUcsbUJBQW1CLEVBQUUsR0FBRyxTQUFTLEVBQUU7UUFDMUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUVkLE1BQU0sS0FBSyxHQUFHLFFBQVE7UUFDcEIsQ0FBQyxDQUFDLElBQUEsc0JBQUssRUFBQztZQUNKLEtBQUs7WUFDTCxJQUFJO1lBQ0osR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHO1lBQ2pCLFlBQVksRUFBRSxRQUFRLENBQUMsWUFBWTtZQUNuQyxTQUFTO1NBQ1YsQ0FBQztRQUNKLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFZCxNQUFNLFVBQVUsR0FDZCxLQUFLLElBQUksUUFBUSxFQUFFLGdCQUFnQjtRQUNqQyxDQUFDLENBQUMsSUFBQSxvQkFBVSxFQUFDO1lBQ1QsS0FBSztZQUNMLElBQUk7WUFDSixVQUFVLEVBQUUsUUFBUSxDQUFDLFlBQVk7WUFDakMsMEJBQTBCLEVBQUUsSUFBSTtZQUNoQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakMsYUFBYSxFQUFFLGNBQWM7WUFDN0IsU0FBUztTQUNWLENBQUM7UUFDSixDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWhCLE1BQU0sVUFBVSxHQUFHLE9BQU87UUFDeEIsQ0FBQyxDQUFDLElBQUEsaUJBQU8sRUFBQztZQUNOLEtBQUs7WUFDTCxJQUFJO1lBQ0osU0FBUztZQUNULHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxZQUFZLElBQUksbUJBQW1CO1lBQ25FLFlBQVksRUFBRSxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRTtTQUM3QyxDQUFDO1FBQ0osQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUVkLE9BQU87UUFDTCxLQUFLO1FBQ0wsVUFBVTtRQUNWLFVBQVU7UUFDVixTQUFTLEVBQUUsR0FBcUIsRUFBRSxDQUFDLENBQUM7WUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtZQUN0QixZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1NBQ3JDLENBQUM7UUFDRixnQkFBZ0IsRUFBRSxHQUFxQixFQUFFLENBQUMsQ0FBQztZQUN6QyxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1NBQ3JDLENBQUM7UUFDRixXQUFXLEVBQUUsR0FBcUIsRUFBRSxDQUFDLENBQUM7WUFDcEMsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtTQUN2QixDQUFDO0tBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
|
package/MySql/index.d.ts
CHANGED
|
@@ -2,13 +2,12 @@ import { BasicResourceArgs, KeyVaultInfo } from "../types";
|
|
|
2
2
|
import * as pulumi from "@pulumi/pulumi";
|
|
3
3
|
import * as dbformysql from "@pulumi/azure-native/dbformysql";
|
|
4
4
|
import * as inputs from "@pulumi/azure-native/types/input";
|
|
5
|
-
import {
|
|
5
|
+
import { EnvRolesResults } from "../AzAd/EnvRoles";
|
|
6
6
|
export interface MySqlProps extends BasicResourceArgs {
|
|
7
7
|
enableEncryption?: boolean;
|
|
8
8
|
vaultInfo: KeyVaultInfo;
|
|
9
9
|
auth?: {
|
|
10
|
-
|
|
11
|
-
envRoleNames?: EnvRoleNamesType;
|
|
10
|
+
envRoles: EnvRolesResults;
|
|
12
11
|
adminLogin?: pulumi.Input<string>;
|
|
13
12
|
password?: pulumi.Input<string>;
|
|
14
13
|
};
|
package/MySql/index.js
CHANGED
|
@@ -6,10 +6,8 @@ const Random_1 = require("../Core/Random");
|
|
|
6
6
|
const CustomHelper_1 = require("../KeyVault/CustomHelper");
|
|
7
7
|
const AzureEnv_1 = require("../Common/AzureEnv");
|
|
8
8
|
const Group_1 = require("../AzAd/Group");
|
|
9
|
-
const Role_1 = require("../AzAd/Role");
|
|
10
9
|
const Helper_1 = require("../KeyVault/Helper");
|
|
11
|
-
const
|
|
12
|
-
const VaultPermissions_1 = require("../KeyVault/VaultPermissions");
|
|
10
|
+
const UserAssignedIdentity_1 = require("../AzAd/UserAssignedIdentity");
|
|
13
11
|
const random_1 = require("@pulumi/random");
|
|
14
12
|
const PrivateEndpoint_1 = require("../VNet/PrivateEndpoint");
|
|
15
13
|
const Locker_1 = require("../Core/Locker");
|
|
@@ -36,19 +34,11 @@ sku = {
|
|
|
36
34
|
options: { special: false },
|
|
37
35
|
}).result;
|
|
38
36
|
const encryptKey = enableEncryption
|
|
39
|
-
? (0, Helper_1.
|
|
37
|
+
? (0, Helper_1.getEncryptionKeyOutput)(name, vaultInfo)
|
|
40
38
|
: undefined;
|
|
41
39
|
const userIdentity = enableEncryption
|
|
42
|
-
? (0,
|
|
40
|
+
? (0, UserAssignedIdentity_1.default)({ name, group, vaultInfo })
|
|
43
41
|
: undefined;
|
|
44
|
-
if (userIdentity) {
|
|
45
|
-
//Allows to Read Key Vault
|
|
46
|
-
(0, VaultPermissions_1.grantVaultAccessToIdentity)({
|
|
47
|
-
name,
|
|
48
|
-
identity: userIdentity.principalId.apply((i) => ({ principalId: i })),
|
|
49
|
-
vaultInfo,
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
42
|
const mySql = new dbformysql.Server(name, {
|
|
53
43
|
serverName: name,
|
|
54
44
|
...group,
|
|
@@ -70,7 +60,7 @@ sku = {
|
|
|
70
60
|
? {
|
|
71
61
|
type: dbformysql.DataEncryptionType.AzureKeyVault,
|
|
72
62
|
primaryUserAssignedIdentityId: userIdentity?.id,
|
|
73
|
-
primaryKeyURI: encryptKey.
|
|
63
|
+
primaryKeyURI: encryptKey.url,
|
|
74
64
|
}
|
|
75
65
|
: { type: dbformysql.DataEncryptionType.SystemManaged },
|
|
76
66
|
//maintenanceWindow: { dayOfWeek: 6 },
|
|
@@ -98,10 +88,17 @@ sku = {
|
|
|
98
88
|
if (lock) {
|
|
99
89
|
(0, Locker_1.default)({ name, resource: mySql });
|
|
100
90
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
91
|
+
//Enable AD Administrator
|
|
92
|
+
if (auth) {
|
|
93
|
+
if (userIdentity) {
|
|
94
|
+
//Allows to Read Key Vault
|
|
95
|
+
(0, Group_1.addMemberToGroup)({
|
|
96
|
+
name: `${name}-contributor-role`,
|
|
97
|
+
objectId: userIdentity.principalId,
|
|
98
|
+
groupObjectId: auth?.envRoles.contributor.objectId,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
const adminGroup = auth.envRoles.contributor;
|
|
105
102
|
new dbformysql.AzureADAdministrator(name, {
|
|
106
103
|
serverName: mySql.name,
|
|
107
104
|
...group,
|
|
@@ -162,4 +159,4 @@ sku = {
|
|
|
162
159
|
}
|
|
163
160
|
return mySql;
|
|
164
161
|
};
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvTXlTcWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSw2Q0FBZ0Q7QUFFaEQsOERBQThEO0FBQzlELDJDQUFnRDtBQUVoRCwyREFBMkQ7QUFDM0QsaURBQXFEO0FBQ3JELHlDQUFpRDtBQUVqRCwrQ0FBNEQ7QUFDNUQsdUVBQWdFO0FBQ2hFLDJDQUE4QztBQUM5Qyw2REFBc0Q7QUFDdEQsMkNBQW9DO0FBMkJwQyxrQkFBZSxDQUFDLEVBQ2QsSUFBSSxFQUNKLEtBQUssRUFDTCxJQUFJLEVBQ0osZ0JBQWdCLEVBQ2hCLE9BQU8sR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUN2RCxhQUFhLEdBQUcsRUFBRTtBQUNsQjs7R0FFRztBQUNILEdBQUcsR0FBRztJQUNKLElBQUksRUFBRSxlQUFlO0lBQ3JCLElBQUksRUFBRSxXQUFXO0NBQ2xCLEVBQ0QsT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksR0FBRyxJQUFJLEdBQ0EsRUFBRSxFQUFFO0lBQ2YsSUFBSSxHQUFHLElBQUEscUJBQVksRUFBQyxJQUFJLENBQUMsQ0FBQztJQUUxQixNQUFNLFFBQVEsR0FDWixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLHFCQUFZLENBQUMsSUFBSSxFQUFFO1lBQ3JCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsTUFBTSxFQUFFLENBQUM7WUFDVCxLQUFLLEVBQUUsSUFBSTtZQUNYLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV0QyxNQUFNLFFBQVEsR0FDWixJQUFJLEVBQUUsUUFBUTtRQUNkLElBQUEsdUJBQWMsRUFBQztZQUNiLElBQUk7WUFDSixNQUFNLEVBQUUsRUFBRTtZQUNWLE9B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
|
package/{ReadMe.md → README.md}
RENAMED
|
@@ -38,6 +38,11 @@ $ pulumi config set azure-native:clientSecret <clientSecret> --secret
|
|
|
38
38
|
$ pulumi config set azure-native:tenantId <tenantID>
|
|
39
39
|
$ pulumi config set azure-native:subscriptionId <subscriptionId>
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
## optional default location, otherwise set in code
|
|
42
42
|
|
|
43
43
|
$ pulumi config set azure-native:location SoutheastAsia
|
|
44
|
+
|
|
45
|
+
# Azure Resources
|
|
46
|
+
|
|
47
|
+
-List All Azure Firewall FQDN Tags
|
|
48
|
+
https://learn.microsoft.com/en-us/rest/api/firewall/azure-firewall-fqdn-tags/list-all?view=rest-firewall-2023-09-01&tabs=HTTP#code-try-0
|
package/Sql/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { Input, Output } from
|
|
2
|
-
import {
|
|
3
|
-
import { BasicResourceArgs, BasicResourceResultProps, KeyVaultInfo, PrivateLinkProps } from
|
|
4
|
-
import { SqlDbProps } from
|
|
1
|
+
import { Input, Output } from "@pulumi/pulumi";
|
|
2
|
+
import { EnvRolesResults } from "../AzAd/EnvRoles";
|
|
3
|
+
import { BasicResourceArgs, BasicResourceResultProps, KeyVaultInfo, PrivateLinkProps } from "../types";
|
|
4
|
+
import { SqlDbProps } from "./SqlDb";
|
|
5
5
|
type ElasticPoolCapacityProps = 50 | 100 | 200 | 300 | 400 | 800 | 1200;
|
|
6
6
|
interface Props extends BasicResourceArgs {
|
|
7
7
|
vaultInfo: KeyVaultInfo;
|
|
8
8
|
enableEncryption?: boolean;
|
|
9
9
|
/** if Auth is not provided it will be auto generated */
|
|
10
10
|
auth: {
|
|
11
|
-
|
|
11
|
+
envRoles: EnvRolesResults;
|
|
12
12
|
/** create an Admin group on AzAD for SQL accessing.*/
|
|
13
13
|
enableAdAdministrator?: boolean;
|
|
14
14
|
azureAdOnlyAuthentication?: boolean;
|
|
@@ -16,16 +16,16 @@ interface Props extends BasicResourceArgs {
|
|
|
16
16
|
password: Input<string>;
|
|
17
17
|
};
|
|
18
18
|
elasticPool?: {
|
|
19
|
-
name:
|
|
19
|
+
name: "Standard" | "Basic";
|
|
20
20
|
capacity: ElasticPoolCapacityProps;
|
|
21
21
|
};
|
|
22
|
-
databases: Array<Omit<SqlDbProps,
|
|
22
|
+
databases: Array<Omit<SqlDbProps, "sqlServerName" | "group" | "elasticPoolId" | "dependsOn">>;
|
|
23
23
|
network?: {
|
|
24
24
|
acceptAllInternetConnect?: boolean;
|
|
25
25
|
subnetId?: Input<string>;
|
|
26
26
|
ipAddresses?: Input<string>[];
|
|
27
27
|
/** To enable Private Link need to ensure the subnetId is provided. */
|
|
28
|
-
privateLink?: Omit<PrivateLinkProps,
|
|
28
|
+
privateLink?: Omit<PrivateLinkProps, "subnetId">;
|
|
29
29
|
};
|
|
30
30
|
vulnerabilityAssessment?: {
|
|
31
31
|
alertEmails: Array<string>;
|
|
@@ -33,13 +33,20 @@ interface Props extends BasicResourceArgs {
|
|
|
33
33
|
storageAccessKey: Input<string>;
|
|
34
34
|
storageEndpoint: Input<string>;
|
|
35
35
|
};
|
|
36
|
+
ignoreChanges?: string[];
|
|
36
37
|
lock?: boolean;
|
|
37
38
|
}
|
|
38
|
-
declare const _default: ({ name, auth, group, enableEncryption, elasticPool, databases, vaultInfo, network, vulnerabilityAssessment, lock, }: Props) => {
|
|
39
|
+
declare const _default: ({ name, auth, group, enableEncryption, elasticPool, databases, vaultInfo, network, vulnerabilityAssessment, ignoreChanges, lock, }: Props) => {
|
|
39
40
|
name: string;
|
|
40
41
|
resource: import("@pulumi/azure-native/sql/server").Server;
|
|
41
42
|
elasticPool: BasicResourceResultProps<import("@pulumi/azure-native/sql/elasticPool").ElasticPool> | undefined;
|
|
42
43
|
databases: BasicResourceResultProps<import("@pulumi/azure-native/sql/database").Database>[];
|
|
43
|
-
adminGroup:
|
|
44
|
+
adminGroup: {
|
|
45
|
+
objectId: string;
|
|
46
|
+
displayName: string;
|
|
47
|
+
} | Output<{
|
|
48
|
+
objectId: string;
|
|
49
|
+
displayName: string;
|
|
50
|
+
}>;
|
|
44
51
|
};
|
|
45
52
|
export default _default;
|