@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
package/logs/Logs.js
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
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.Logs = void 0;
|
|
37
|
+
const az = __importStar(require("@pulumi/azure-native"));
|
|
38
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
39
|
+
const base_1 = require("../base");
|
|
40
|
+
const storage_1 = require("../storage");
|
|
41
|
+
class Logs extends base_1.BaseResourceComponent {
|
|
42
|
+
storage;
|
|
43
|
+
workspace;
|
|
44
|
+
appInsight;
|
|
45
|
+
constructor(name, args, opts) {
|
|
46
|
+
super('Logs', name, args, opts);
|
|
47
|
+
const storage = this.createStorage();
|
|
48
|
+
const workspace = this.createWorkspace();
|
|
49
|
+
const appInsight = this.createAppInsight(workspace);
|
|
50
|
+
if (storage) {
|
|
51
|
+
this.storage = {
|
|
52
|
+
id: storage.id,
|
|
53
|
+
resourceName: storage.resourceName,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
if (workspace) {
|
|
57
|
+
this.workspace = {
|
|
58
|
+
id: workspace.id,
|
|
59
|
+
resourceName: workspace.name,
|
|
60
|
+
customerId: pulumi.secret(workspace.customerId),
|
|
61
|
+
};
|
|
62
|
+
this.addSecret(`${name}-wp-customerId`, workspace.customerId);
|
|
63
|
+
}
|
|
64
|
+
if (appInsight) {
|
|
65
|
+
this.appInsight = {
|
|
66
|
+
id: appInsight.id,
|
|
67
|
+
resourceName: appInsight.name,
|
|
68
|
+
instrumentationKey: pulumi.secret(appInsight.instrumentationKey),
|
|
69
|
+
};
|
|
70
|
+
this.addSecret(`${name}-appInsight-key`, appInsight.instrumentationKey);
|
|
71
|
+
}
|
|
72
|
+
this.registerOutputs();
|
|
73
|
+
}
|
|
74
|
+
getOutputs() {
|
|
75
|
+
return {
|
|
76
|
+
storage: this.storage,
|
|
77
|
+
workspace: this.workspace,
|
|
78
|
+
appInsight: this.appInsight,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
createWorkspace() {
|
|
82
|
+
const { workspace, rsGroup, retentionInDays } = this.args;
|
|
83
|
+
if (!workspace?.enabled)
|
|
84
|
+
return undefined;
|
|
85
|
+
const sku = workspace.sku || az.operationalinsights.WorkspaceSkuNameEnum.Free;
|
|
86
|
+
const dailyQuotaGb = workspace.dailyQuotaGb || 0.1;
|
|
87
|
+
return new az.operationalinsights.Workspace(`${this.name}-wp`, {
|
|
88
|
+
...rsGroup,
|
|
89
|
+
publicNetworkAccessForIngestion: workspace.publicNetworkAccessForIngestion,
|
|
90
|
+
publicNetworkAccessForQuery: workspace.publicNetworkAccessForQuery,
|
|
91
|
+
features: {
|
|
92
|
+
immediatePurgeDataOn30Days: workspace.immediatePurgeDataOn30Days ?? true,
|
|
93
|
+
disableLocalAuth: workspace.disableLocalAuth,
|
|
94
|
+
enableLogAccessUsingOnlyResourcePermissions: workspace.enableLogAccessUsingOnlyResourcePermissions,
|
|
95
|
+
enableDataExport: workspace.enableDataExport,
|
|
96
|
+
},
|
|
97
|
+
workspaceCapping: sku === az.operationalinsights.WorkspaceSkuNameEnum.Free ? undefined : { dailyQuotaGb },
|
|
98
|
+
retentionInDays: sku === az.operationalinsights.WorkspaceSkuNameEnum.Free ? 7 : retentionInDays ?? 30,
|
|
99
|
+
sku: { name: sku },
|
|
100
|
+
}, { dependsOn: this.opts?.dependsOn, parent: this });
|
|
101
|
+
}
|
|
102
|
+
createAppInsight(wp) {
|
|
103
|
+
const { workspace, rsGroup, retentionInDays } = this.args;
|
|
104
|
+
if (!wp || !workspace?.appInsightEnabled)
|
|
105
|
+
return undefined;
|
|
106
|
+
return new az.applicationinsights.Component(`${this.name}-ais`, {
|
|
107
|
+
...rsGroup,
|
|
108
|
+
kind: 'web',
|
|
109
|
+
disableIpMasking: true,
|
|
110
|
+
applicationType: 'web',
|
|
111
|
+
flowType: 'Bluefield',
|
|
112
|
+
publicNetworkAccessForIngestion: workspace.publicNetworkAccessForIngestion,
|
|
113
|
+
publicNetworkAccessForQuery: workspace.publicNetworkAccessForQuery,
|
|
114
|
+
samplingPercentage: workspace.samplingPercentage || 70,
|
|
115
|
+
retentionInDays: retentionInDays ?? 30,
|
|
116
|
+
immediatePurgeDataOn30Days: workspace.immediatePurgeDataOn30Days ?? true,
|
|
117
|
+
ingestionMode: 'LogAnalytics',
|
|
118
|
+
disableLocalAuth: workspace.disableLocalAuth,
|
|
119
|
+
workspaceResourceId: wp.id,
|
|
120
|
+
}, { dependsOn: wp, parent: this });
|
|
121
|
+
}
|
|
122
|
+
createStorage() {
|
|
123
|
+
const { storage, rsGroup, retentionInDays, vaultInfo } = this.args;
|
|
124
|
+
if (!storage?.enabled)
|
|
125
|
+
return undefined;
|
|
126
|
+
return new storage_1.StorageAccount(this.name, {
|
|
127
|
+
rsGroup,
|
|
128
|
+
vaultInfo,
|
|
129
|
+
allowSharedKeyAccess: true,
|
|
130
|
+
policies: {
|
|
131
|
+
defaultManagementPolicyRules: [
|
|
132
|
+
{
|
|
133
|
+
name: 'auto-delete-all-containers',
|
|
134
|
+
type: 'Lifecycle',
|
|
135
|
+
enabled: true,
|
|
136
|
+
definition: {
|
|
137
|
+
actions: {
|
|
138
|
+
baseBlob: {
|
|
139
|
+
delete: {
|
|
140
|
+
daysAfterCreationGreaterThan: retentionInDays ?? 30,
|
|
141
|
+
//daysAfterModificationGreaterThan: retentionInDays ?? 30,
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
filters: { blobTypes: ['blockBlob'] },
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
},
|
|
150
|
+
}, { dependsOn: this.opts?.dependsOn, parent: this });
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
exports.Logs = Logs;
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dzL0xvZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseURBQTJDO0FBQzNDLHVEQUF5QztBQUN6QyxrQ0FBMEQ7QUFDMUQsd0NBQTRDO0FBc0I1QyxNQUFhLElBQUssU0FBUSw0QkFBK0I7SUFDdkMsT0FBTyxDQUF5QjtJQUNoQyxTQUFTLENBQTBCO0lBQ25DLFVBQVUsQ0FBMkI7SUFFckQsWUFBWSxJQUFZLEVBQUUsSUFBYyxFQUFFLElBQXNDO1FBQzlFLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVoQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVwRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRztnQkFDYixFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUU7Z0JBQ2QsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO2FBQ25DLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxTQUFTLEdBQUc7Z0JBQ2YsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFO2dCQUNoQixZQUFZLEVBQUUsU0FBUyxDQUFDLElBQUk7Z0JBQzVCLFVBQVUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7YUFDaEQsQ0FBQztZQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxVQUFVLENB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * as logHelpers from './helpers';
|
package/logs/helpers.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
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.logHelpers = void 0;
|
|
37
|
+
exports.logHelpers = __importStar(require("./helpers"));
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQXdDIn0=
|
package/logs/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Logs';
|
package/logs/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./Logs"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9ncy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCIn0=
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@drunk-pulumi/azure-components",
|
|
3
|
+
"version": "0.0.6",
|
|
4
|
+
"description": "The custom components for Pulumi Azure",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"types": "index.d.ts",
|
|
7
|
+
"pulumi": {
|
|
8
|
+
"resource": false,
|
|
9
|
+
"name": "@drunk-pulumi/azure-components"
|
|
10
|
+
},
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://github.com/baoduy/drunk-pulumi-azure-components.git"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [],
|
|
16
|
+
"author": "Steven Hoang",
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@drunk-pulumi/azure-providers": "^1.0.9",
|
|
20
|
+
"@pulumi/azure-native": "^3.3.0",
|
|
21
|
+
"@pulumi/azuread": "^6.4.0",
|
|
22
|
+
"@pulumi/pulumi": "^3.167.0",
|
|
23
|
+
"@pulumi/random": "^4.18.2",
|
|
24
|
+
"netmask": "^2.0.2",
|
|
25
|
+
"openpgp": "^6.1.0"
|
|
26
|
+
},
|
|
27
|
+
"prettier": {
|
|
28
|
+
"semi": true,
|
|
29
|
+
"trailingComma": "all",
|
|
30
|
+
"singleQuote": true,
|
|
31
|
+
"printWidth": 120,
|
|
32
|
+
"tabWidth": 2
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as automation from '@pulumi/azure-native/automation';
|
|
2
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
3
|
+
import { BaseResourceComponent, CommonBaseArgs } from '../base';
|
|
4
|
+
import * as types from '../types';
|
|
5
|
+
export interface AutomationArgs extends CommonBaseArgs, types.WithUserAssignedIdentity, types.WithEncryptionEnabler, Pick<automation.AutomationAccountArgs, 'sku'> {
|
|
6
|
+
}
|
|
7
|
+
export declare class Automation extends BaseResourceComponent<AutomationArgs> {
|
|
8
|
+
readonly id: pulumi.Output<string>;
|
|
9
|
+
readonly resourceName: pulumi.Output<string>;
|
|
10
|
+
constructor(name: string, args: AutomationArgs, opts?: pulumi.ComponentResourceOptions);
|
|
11
|
+
getOutputs(): {
|
|
12
|
+
id: pulumi.Output<string>;
|
|
13
|
+
resourceName: pulumi.Output<string>;
|
|
14
|
+
};
|
|
15
|
+
private createUAssignedId;
|
|
16
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
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.Automation = void 0;
|
|
37
|
+
const automation = __importStar(require("@pulumi/azure-native/automation"));
|
|
38
|
+
const azAd_1 = require("../azAd");
|
|
39
|
+
const base_1 = require("../base");
|
|
40
|
+
class Automation extends base_1.BaseResourceComponent {
|
|
41
|
+
id;
|
|
42
|
+
resourceName;
|
|
43
|
+
constructor(name, args, opts) {
|
|
44
|
+
super('Automation', name, args, opts);
|
|
45
|
+
const { rsGroup, enableEncryption, groupRoles, defaultUAssignedId, ...props } = args;
|
|
46
|
+
const uAssignedId = this.createUAssignedId();
|
|
47
|
+
const encryptionKey = args.enableEncryption ? this.getEncryptionKey() : undefined;
|
|
48
|
+
const auto = new automation.AutomationAccount(name, {
|
|
49
|
+
...props,
|
|
50
|
+
...rsGroup,
|
|
51
|
+
publicNetworkAccess: false,
|
|
52
|
+
disableLocalAuth: true,
|
|
53
|
+
identity: {
|
|
54
|
+
type: automation.ResourceIdentityType.SystemAssigned_UserAssigned,
|
|
55
|
+
userAssignedIdentities: defaultUAssignedId ? [uAssignedId.id, defaultUAssignedId.id] : [uAssignedId.id],
|
|
56
|
+
},
|
|
57
|
+
encryption: {
|
|
58
|
+
keySource: encryptionKey ? 'Microsoft.Keyvault' : 'Microsoft.Automation',
|
|
59
|
+
identity: encryptionKey ? { userAssignedIdentity: defaultUAssignedId?.id ?? uAssignedId.id } : undefined,
|
|
60
|
+
keyVaultProperties: encryptionKey
|
|
61
|
+
? {
|
|
62
|
+
keyName: encryptionKey.keyName,
|
|
63
|
+
keyvaultUri: encryptionKey.vaultUrl,
|
|
64
|
+
keyVersion: encryptionKey.version,
|
|
65
|
+
}
|
|
66
|
+
: undefined,
|
|
67
|
+
},
|
|
68
|
+
}, { ...opts, dependsOn: encryptionKey ? [uAssignedId, encryptionKey] : uAssignedId, parent: this });
|
|
69
|
+
this.id = auto.id;
|
|
70
|
+
this.resourceName = auto.name;
|
|
71
|
+
this.registerOutputs();
|
|
72
|
+
}
|
|
73
|
+
getOutputs() {
|
|
74
|
+
return {
|
|
75
|
+
id: this.id,
|
|
76
|
+
resourceName: this.resourceName,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
createUAssignedId() {
|
|
80
|
+
const { rsGroup, groupRoles, vaultInfo } = this.args;
|
|
81
|
+
return new azAd_1.UserAssignedIdentity(this.name, { rsGroup, vaultInfo, memberof: groupRoles ? [groupRoles.contributor] : undefined }, { dependsOn: this.opts?.dependsOn, parent: this });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.Automation = Automation;
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0b21hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9BdXRvbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRFQUE4RDtBQUU5RCxrQ0FBK0M7QUFDL0Msa0NBQWdFO0FBU2hFLE1BQWEsVUFBVyxTQUFRLDRCQUFxQztJQUNuRCxFQUFFLENBQXdCO0lBQzFCLFlBQVksQ0FBd0I7SUFFcEQsWUFBWSxJQUFZLEVBQUUsSUFBb0IsRUFBRSxJQUFzQztRQUNwRixLQUFLLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFdEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDckYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0MsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWxGLE1BQU0sSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLGlCQUFpQixDQUMzQyxJQUFJLEVBQ0o7WUFDRSxHQUFHLEtBQUs7WUFDUixHQUFHLE9BQU87WUFDVixtQkFBbUIsRUFBRSxLQUFLO1lBQzFCLGdCQUFnQixFQUFFLElBQUk7WUFFdEIsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxVQUFVLENBQUMsb0JBQW9CLENBQUMsMkJBQTJCO2dCQUNqRSxzQkFBc0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7YUFDeEc7WUFFRCxVQUFVLEVBQUU7Z0JBQ1YsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLHNCQUFzQjtnQkFDeEUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUN4RyxrQkFBa0IsRUFBRSxhQUFhO29CQUMvQixDQUFDLENBQUM7d0JBQ0UsT0FBTyxFQUFFLGFBQWEsQ0FBQyxPQUFPO3dCQUM5QixXQUFXLEVBQUUsYUFBYSxDQUFDLFFBQVE7d0JBQ25DLFVBQVUsRUFBRSxhQUFhLENBQUMsT0FBTztxQkFDbEM7b0JBQ0gsQ0FBQyxDQUFDLFNBQVM7YUFDZDtTQUNGLEVBQ0QsRUFBRSxHQUFHLElBQUksRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FDakcsQ0FBQztRQUVGLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFOUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUNPLGlCQUFpQjtRQUN2QixNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JELE9BQU8sSUFBSSwyQkFBb0IsQ0FDN0IsSUFBSSxDQUFDLElBQUksRUFDVCxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUNuRixFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQ2xELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUEzREQsZ0NBMkRDIn0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as search from '@pulumi/azure-native/search';
|
|
2
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
3
|
+
import { BaseResourceComponent, CommonBaseArgs } from '../base';
|
|
4
|
+
import * as types from '../types';
|
|
5
|
+
export interface AzSearchArgs extends CommonBaseArgs, types.WithUserAssignedIdentity, types.WithEncryptionEnabler, Pick<search.ServiceArgs, 'authOptions' | 'hostingMode' | 'partitionCount' | 'replicaCount' | 'semanticSearch'> {
|
|
6
|
+
sku: search.SkuName;
|
|
7
|
+
disableLocalAuth?: boolean;
|
|
8
|
+
network?: Pick<types.NetworkArgs, 'publicNetworkAccess' | 'ipRules' | 'privateLink'>;
|
|
9
|
+
}
|
|
10
|
+
export declare class AzSearch extends BaseResourceComponent<AzSearchArgs> {
|
|
11
|
+
readonly id: pulumi.Output<string>;
|
|
12
|
+
readonly resourceName: pulumi.Output<string>;
|
|
13
|
+
constructor(name: string, args: AzSearchArgs, opts?: pulumi.ComponentResourceOptions);
|
|
14
|
+
getOutputs(): {
|
|
15
|
+
id: pulumi.Output<string>;
|
|
16
|
+
resourceName: pulumi.Output<string>;
|
|
17
|
+
};
|
|
18
|
+
private createPrivateLink;
|
|
19
|
+
private addSecretsToVault;
|
|
20
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
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.AzSearch = void 0;
|
|
37
|
+
const search = __importStar(require("@pulumi/azure-native/search"));
|
|
38
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
39
|
+
const base_1 = require("../base");
|
|
40
|
+
const vault = __importStar(require("../vault"));
|
|
41
|
+
const PrivateEndpoint_1 = require("../vnet/PrivateEndpoint");
|
|
42
|
+
class AzSearch extends base_1.BaseResourceComponent {
|
|
43
|
+
id;
|
|
44
|
+
resourceName;
|
|
45
|
+
constructor(name, args, opts) {
|
|
46
|
+
super('AzSearch', name, args, opts);
|
|
47
|
+
const { rsGroup, enableEncryption, network, ...props } = args;
|
|
48
|
+
const service = new search.Service(name, {
|
|
49
|
+
...props,
|
|
50
|
+
...rsGroup,
|
|
51
|
+
sku: { name: props.sku },
|
|
52
|
+
encryptionWithCmk: enableEncryption
|
|
53
|
+
? {
|
|
54
|
+
enforcement: search.SearchEncryptionWithCmk.Enabled,
|
|
55
|
+
}
|
|
56
|
+
: undefined,
|
|
57
|
+
identity: {
|
|
58
|
+
type: props.sku === search.SkuName.Free ? search.IdentityType.None : search.IdentityType.SystemAssigned,
|
|
59
|
+
},
|
|
60
|
+
publicNetworkAccess: network?.publicNetworkAccess ? 'enabled' : network?.privateLink ? 'disabled' : 'enabled',
|
|
61
|
+
networkRuleSet: network?.ipRules
|
|
62
|
+
? {
|
|
63
|
+
ipRules: pulumi.output(network.ipRules).apply((ips) => ips.map((i) => ({ value: i }))),
|
|
64
|
+
}
|
|
65
|
+
: undefined,
|
|
66
|
+
}, { ...opts, parent: this });
|
|
67
|
+
this.createPrivateLink(service);
|
|
68
|
+
this.addSecretsToVault(service);
|
|
69
|
+
this.id = service.id;
|
|
70
|
+
this.resourceName = service.name;
|
|
71
|
+
this.registerOutputs();
|
|
72
|
+
}
|
|
73
|
+
getOutputs() {
|
|
74
|
+
return {
|
|
75
|
+
id: this.id,
|
|
76
|
+
resourceName: this.resourceName,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
createPrivateLink(service) {
|
|
80
|
+
const { rsGroup, network } = this.args;
|
|
81
|
+
if (!network?.privateLink)
|
|
82
|
+
return;
|
|
83
|
+
return new PrivateEndpoint_1.PrivateEndpoint(this.name, { ...network.privateLink, resourceInfo: service, rsGroup, type: 'azSearch' }, { dependsOn: service, parent: this });
|
|
84
|
+
}
|
|
85
|
+
addSecretsToVault(service) {
|
|
86
|
+
const { disableLocalAuth, rsGroup, vaultInfo } = this.args;
|
|
87
|
+
if (disableLocalAuth || !vaultInfo)
|
|
88
|
+
return;
|
|
89
|
+
pulumi.output([service.name, rsGroup.resourceGroupName]).apply(async ([svName, rgName]) => {
|
|
90
|
+
if (!svName)
|
|
91
|
+
return;
|
|
92
|
+
const keys = await search.listQueryKeyBySearchService({
|
|
93
|
+
searchServiceName: svName,
|
|
94
|
+
resourceGroupName: rgName,
|
|
95
|
+
});
|
|
96
|
+
new vault.VaultSecrets(this.name, {
|
|
97
|
+
vaultInfo,
|
|
98
|
+
secrets: {
|
|
99
|
+
[`${this.name}-${keys.value[0].key}`]: {
|
|
100
|
+
value: keys.value[0].name,
|
|
101
|
+
contentType: `AzSearch ${keys.value[0].key}`,
|
|
102
|
+
},
|
|
103
|
+
[`${this.name}-${keys.value[1].key}`]: {
|
|
104
|
+
value: keys.value[1].name,
|
|
105
|
+
contentType: `AzSearch ${keys.value[1].key}`,
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
}, { dependsOn: service, parent: this });
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.AzSearch = AzSearch;
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXpTZWFyY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvQXpTZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0VBQXNEO0FBQ3RELHVEQUF5QztBQUN6QyxrQ0FBZ0U7QUFFaEUsZ0RBQWtDO0FBQ2xDLDZEQUEwRDtBQVkxRCxNQUFhLFFBQVMsU0FBUSw0QkFBbUM7SUFDL0MsRUFBRSxDQUF3QjtJQUMxQixZQUFZLENBQXdCO0lBRXBELFlBQVksSUFBWSxFQUFFLElBQWtCLEVBQUUsSUFBc0M7UUFDbEYsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBDLE1BQU0sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRTlELE1BQU0sT0FBTyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FDaEMsSUFBSSxFQUNKO1lBQ0UsR0FBRyxLQUFLO1lBQ1IsR0FBRyxPQUFPO1lBQ1YsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFFeEIsaUJBQWlCLEVBQUUsZ0JBQWdCO2dCQUNqQyxDQUFDLENBQUM7b0JBQ0UsV0FBVyxFQUFFLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPO2lCQUNwRDtnQkFDSCxDQUFDLENBQUMsU0FBUztZQUNiLFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsY0FBYzthQUN4RztZQUVELG1CQUFtQixFQUFFLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDN0csY0FBYyxFQUFFLE9BQU8sRUFBRSxPQUFPO2dCQUM5QixDQUFDLENBQUM7b0JBQ0UsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ3ZGO2dCQUNILENBQUMsQ0FBQyxTQUFTO1NBQ2QsRUFDRCxFQUFFLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FDMUIsQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFaEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUVqQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ2hDLENBQUM7SUFDSixDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBdUI7UUFDL0MsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVztZQUFFLE9BQU87UUFFbEMsT0FBTyxJQUFJLGlDQUFlLENBQ3hCLElBQUksQ0FBQyxJQUFJLEVBQ1QsRUFBRSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUM1RSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUNyQyxDQUFDO0lBQ0osQ0FBQztJQUVPLGlCQUFpQixDQUFDLE9BQXVCO1FBQy9DLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzRCxJQUFJLGdCQUFnQixJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFFM0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUU7WUFDeEYsSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTztZQUVwQixNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQztnQkFDcEQsaUJBQWlCLEVBQUUsTUFBTTtnQkFDekIsaUJBQWlCLEVBQUUsTUFBTTthQUMxQixDQUFDLENBQUM7WUFFSCxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQ3BCLElBQUksQ0FBQyxJQUFJLEVBQ1Q7Z0JBQ0UsU0FBUztnQkFDVCxPQUFPLEVBQUU7b0JBQ1AsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFO3dCQUNyQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO3dCQUN6QixXQUFXLEVBQUUsWUFBWSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtxQkFDN0M7b0JBRUQsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFO3dCQUNyQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO3dCQUN6QixXQUFXLEVBQUUsWUFBWSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtxQkFDN0M7aUJBQ0Y7YUFDRixFQUNELEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQ3JDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTlGRCw0QkE4RkMifQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as bus from '@pulumi/azure-native/servicebus';
|
|
2
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
3
|
+
import { BaseResourceComponent, CommonBaseArgs } from '../base';
|
|
4
|
+
import * as types from '../types';
|
|
5
|
+
type SubscriptionsType = Record<string, Omit<bus.SubscriptionArgs, 'namespaceName' | 'topicName' | 'subscriptionName' | 'resourceGroupName' | 'status'>>;
|
|
6
|
+
export interface ServiceBusArgs extends CommonBaseArgs, types.WithUserAssignedIdentity, types.WithEncryptionEnabler, types.WithNetworkArgs, Pick<bus.NamespaceArgs, 'sku' | 'zoneRedundant' | 'alternateName' | 'disableLocalAuth' | 'premiumMessagingPartitions'> {
|
|
7
|
+
sku: {
|
|
8
|
+
/**
|
|
9
|
+
* Messaging units for your service bus premium namespace. Valid capacities are {1, 2, 4, 8, 16} multiples of your properties.premiumMessagingPartitions setting. For example, If properties.premiumMessagingPartitions is 1 then possible capacity values are 1, 2, 4, 8, and 16. If properties.premiumMessagingPartitions is 4 then possible capacity values are 4, 8, 16, 32 and 64
|
|
10
|
+
*/
|
|
11
|
+
capacity?: pulumi.Input<number>;
|
|
12
|
+
/**
|
|
13
|
+
* Name of this SKU.
|
|
14
|
+
*/
|
|
15
|
+
name: bus.SkuName;
|
|
16
|
+
/**
|
|
17
|
+
* The billing tier of this particular SKU.
|
|
18
|
+
*/
|
|
19
|
+
tier?: bus.SkuTier;
|
|
20
|
+
};
|
|
21
|
+
queues?: Record<string, Omit<bus.QueueArgs, 'namespaceName' | 'queueName' | 'resourceGroupName' | 'status'>>;
|
|
22
|
+
topics?: Record<string, Omit<bus.TopicArgs, 'namespaceName' | 'topicName' | 'resourceGroupName' | 'status'> & {
|
|
23
|
+
subscriptions?: SubscriptionsType;
|
|
24
|
+
}>;
|
|
25
|
+
}
|
|
26
|
+
export declare class ServiceBus extends BaseResourceComponent<ServiceBusArgs> {
|
|
27
|
+
readonly id: pulumi.Output<string>;
|
|
28
|
+
readonly resourceName: pulumi.Output<string>;
|
|
29
|
+
constructor(name: string, args: ServiceBusArgs, opts?: pulumi.ComponentResourceOptions);
|
|
30
|
+
getOutputs(): {
|
|
31
|
+
id: pulumi.Output<string>;
|
|
32
|
+
resourceName: pulumi.Output<string>;
|
|
33
|
+
};
|
|
34
|
+
private createBusNamespace;
|
|
35
|
+
private createNetwork;
|
|
36
|
+
private createConnectionStrings;
|
|
37
|
+
private addConnectionsToVault;
|
|
38
|
+
private createQueues;
|
|
39
|
+
private createTopics;
|
|
40
|
+
private createSubscriptions;
|
|
41
|
+
}
|
|
42
|
+
export {};
|