@drunk-pulumi/azure 1.0.23 → 1.0.25
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 +4 -6
- package/Aks/Helper.js +13 -18
- package/Aks/Identity.js +3 -3
- package/Aks/index.js +4 -7
- package/AzAd/EnvRoles/EnvRoles.Consts.d.ts +6 -0
- package/AzAd/EnvRoles/EnvRoles.Consts.js +178 -0
- package/AzAd/{EnvRoles.d.ts → EnvRoles/EnvRoles.d.ts} +1 -9
- package/AzAd/EnvRoles/EnvRoles.js +91 -0
- package/AzAd/EnvRoles/index.d.ts +2 -0
- package/AzAd/EnvRoles/index.js +19 -0
- package/AzAd/Group.d.ts +2 -2
- package/AzAd/Group.js +3 -3
- package/AzAd/Helper.js +6 -66
- package/AzAd/Identities/AzDevOpsIdentity.js +4 -5
- package/AzAd/Identities/AzDevOpsManagedIdentity.js +1 -1
- package/AzAd/Identities/AzUserAdRevertSync.js +3 -3
- package/AzAd/Identity.js +1 -2
- package/AzAd/RoleDefinitions/index.d.ts +1 -0
- package/AzAd/RoleDefinitions/index.js +18 -0
- package/AzAd/{GraphDefinition.js → Roles/GraphDefinition.js} +1 -1
- package/AzAd/Roles/Role.d.ts +16 -0
- package/AzAd/Roles/Role.js +31 -0
- package/AzAd/{RoleAssignment.d.ts → Roles/RoleAssignment.d.ts} +1 -1
- package/AzAd/{RoleAssignment.js → Roles/RoleAssignment.js} +2 -2
- package/AzAd/{RolesBuiltIn.js → Roles/RolesBuiltIn.js} +1 -1
- package/AzAd/Roles/index.d.ts +3 -0
- package/AzAd/Roles/index.js +22 -0
- package/AzAd/UserAssignedIdentity.js +1 -2
- package/AzAd/index.d.ts +6 -0
- package/AzAd/index.js +23 -0
- package/Builder/AcrBuilder.d.ts +5 -0
- package/Builder/AcrBuilder.js +43 -10
- package/Builder/AksBuilder.d.ts +5 -0
- package/Builder/AksBuilder.js +92 -8
- package/Builder/ApimApiBuilder.js +1 -1
- package/Builder/ApimBuilder.js +3 -7
- package/Builder/ApimPolicyBuilder.js +1 -1
- package/Builder/ApimProductBuilder.d.ts +6 -5
- package/Builder/ApimProductBuilder.js +53 -28
- package/Builder/AppConfigBuilder.js +4 -8
- package/Builder/DnsZoneBuilder.js +2 -3
- package/Builder/EnvRoleBuilder.d.ts +4 -23
- package/Builder/EnvRoleBuilder.js +8 -9
- package/Builder/MySqlBuilder.js +4 -8
- package/Builder/PostgreSqlBuilder.js +4 -8
- package/Builder/PrivateDnsZoneBuilder.d.ts +1 -1
- package/Builder/PrivateDnsZoneBuilder.js +3 -3
- package/Builder/RedisCacheBuilder.js +4 -11
- package/Builder/ResourceBuilder.js +6 -6
- package/Builder/ServiceBusBuilder.js +4 -11
- package/Builder/SignalRBuilder.js +4 -11
- package/Builder/VaultBuilder.js +7 -26
- package/Builder/types/acrBuilder.d.ts +38 -2
- package/Builder/types/apimBuilder.d.ts +109 -5
- package/Builder/types/apimPolicyBuilder.d.ts +129 -7
- package/Builder/types/apimPolicyBuilder.js +4 -1
- package/Builder/types/apimProductBuilder.d.ts +152 -5
- package/Builder/types/appCertBuilder.d.ts +17 -0
- package/Builder/types/appConfigBuilder.d.ts +22 -0
- package/Builder/types/askBuilder.d.ts +79 -1
- package/Builder/types/automationBuilder.d.ts +17 -0
- package/Builder/types/cdnBuilder.d.ts +11 -0
- package/Builder/types/dnsZoneBuilder.d.ts +20 -0
- package/Builder/types/envRoleBuilder.d.ts +29 -3
- package/Builder/types/genericBuilder.d.ts +78 -0
- package/Builder/types/genericBuilder.js +9 -1
- package/Builder/types/iotHubBuilder.d.ts +38 -5
- package/Builder/types/logicAppBuilder.d.ts +17 -0
- package/Builder/types/mySqlBuilder.d.ts +54 -1
- package/Builder/types/posgreSqlBuilder.d.ts +64 -2
- package/Builder/types/privateDnsZoneBuilder.d.ts +26 -0
- package/Builder/types/redisCacheBuilder.d.ts +31 -0
- package/Builder/types/resourceBuilder.d.ts +172 -10
- package/Builder/types/serviceBusBuilder.d.ts +55 -0
- package/Builder/types/signalRBuilder.d.ts +65 -6
- package/Builder/types/sqlBuilder.d.ts +88 -1
- package/Builder/types/storageBuilder.d.ts +63 -0
- package/Builder/types/vaultBuilder.d.ts +43 -1
- package/Builder/types/vdiBuilder.d.ts +41 -2
- package/Builder/types/vmBuilder.d.ts +83 -1
- package/Builder/types/vnetBuilder.d.ts +107 -0
- package/Cdn/index.d.ts +1 -1
- package/Cdn/index.js +2 -2
- package/Common/AzureEnv/AutoTags.js +27 -0
- package/Common/{AzureEnv.js → AzureEnv/index.js} +3 -3
- package/Common/{LocationBuiltIn.js → Location/LocationBuiltIn.js} +1 -1
- package/Common/Location/index.js +36 -0
- package/Common/{Naming/Rulers.d.ts → Naming.d.ts} +12 -3
- package/Common/Naming.js +392 -0
- package/Common/RsInfo/Helper.js +8 -6
- package/Common/index.d.ts +1 -4
- package/Common/index.js +7 -7
- package/Core/KeyGenerators.js +4 -5
- package/Core/Random.js +2 -3
- package/KeyVault/CustomHelper.d.ts +1 -3
- package/KeyVault/CustomHelper.js +27 -3
- package/KeyVault/Helper.d.ts +5 -8
- package/KeyVault/Helper.js +35 -61
- package/KeyVault/index.d.ts +1 -11
- package/KeyVault/index.js +3 -21
- package/Logs/AppInsight.js +1 -2
- package/Logs/Helpers.js +1 -3
- package/Logs/LogAnalytics.js +1 -2
- package/README.md +37 -29
- package/Sql/index.js +4 -7
- package/Storage/Helper.js +5 -6
- package/Storage/index.js +8 -13
- package/VM/index.js +1 -2
- package/VNet/PrivateEndpoint.d.ts +47 -4
- package/VNet/PrivateEndpoint.js +69 -2
- package/VNet/index.d.ts +1 -0
- package/VNet/index.js +5 -1
- package/envHelper.d.ts +4 -0
- package/envHelper.js +62 -0
- package/package.json +1 -1
- package/types.d.ts +184 -12
- package/AzAd/ConditionalPolicies/index.d.ts +0 -0
- package/AzAd/ConditionalPolicies/index.js +0 -2
- package/AzAd/EnvRoles.Consts.d.ts +0 -22
- package/AzAd/EnvRoles.Consts.js +0 -173
- package/AzAd/EnvRoles.js +0 -94
- package/AzAd/Role.d.ts +0 -17
- package/AzAd/Role.js +0 -30
- package/Common/AutoTags.js +0 -27
- package/Common/GlobalEnv.d.ts +0 -3
- package/Common/GlobalEnv.js +0 -29
- package/Common/Location.js +0 -36
- package/Common/Naming/Rulers.js +0 -537
- package/Common/Naming/index.d.ts +0 -10
- package/Common/Naming/index.js +0 -112
- package/Sql/Auditing.d.ts +0 -0
- package/Sql/Auditing.js +0 -2
- package/Sql/Helper.d.ts +0 -9
- package/Sql/Helper.js +0 -11
- package/VNet/GlobalNetworkPeering.d.ts +0 -9
- package/VNet/GlobalNetworkPeering.js +0 -40
- /package/AzAd/{GraphDefinition.d.ts → Roles/GraphDefinition.d.ts} +0 -0
- /package/AzAd/{RolesBuiltIn.d.ts → Roles/RolesBuiltIn.d.ts} +0 -0
- /package/Common/{AutoTags.d.ts → AzureEnv/AutoTags.d.ts} +0 -0
- /package/Common/{AzureEnv.d.ts → AzureEnv/index.d.ts} +0 -0
- /package/Common/{LocationBuiltIn.d.ts → Location/LocationBuiltIn.d.ts} +0 -0
- /package/Common/{Location.d.ts → Location/index.d.ts} +0 -0
package/types.d.ts
CHANGED
|
@@ -1,90 +1,182 @@
|
|
|
1
1
|
import { CustomResourceOptions, Input, Output, Resource } from '@pulumi/pulumi';
|
|
2
|
-
import { EnvRoleKeyTypes } from './AzAd/EnvRoles';
|
|
3
2
|
import { IEnvRoleBuilder } from './Builder';
|
|
4
|
-
export declare namespace NodeJS {
|
|
5
|
-
interface ProcessEnv {
|
|
6
|
-
DPA_NAMING_DISABLE_PREFIX?: string;
|
|
7
|
-
DPA_NAMING_DISABLE_REGION?: string;
|
|
8
|
-
DPA_NAMING_DISABLE_SUFFIX?: string;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
3
|
/** Omit all the key of OT from T */
|
|
12
4
|
export type TypeOmit<T, OT> = Omit<T, keyof OT>;
|
|
13
5
|
export type OmitOpts<T> = TypeOmit<T, OptsArgs>;
|
|
6
|
+
/**
|
|
7
|
+
* Information about a resource group.
|
|
8
|
+
*/
|
|
14
9
|
export type ResourceGroupInfo = {
|
|
15
10
|
resourceGroupName: string;
|
|
16
11
|
location?: Input<string>;
|
|
17
12
|
};
|
|
13
|
+
/**
|
|
14
|
+
* Information about a resource group with an ID.
|
|
15
|
+
*/
|
|
18
16
|
export type ResourceGroupWithIdInfo = ResourceGroupInfo & {
|
|
19
17
|
id: Input<string>;
|
|
20
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Properties for lockable resources.
|
|
21
|
+
*/
|
|
21
22
|
export type WithLockable = {
|
|
22
23
|
lock?: boolean;
|
|
23
24
|
};
|
|
25
|
+
/**
|
|
26
|
+
* Properties for resources with dependencies.
|
|
27
|
+
*/
|
|
24
28
|
export type WithDependsOn = {
|
|
25
29
|
dependsOn?: Input<Input<Resource>[]> | Input<Resource>;
|
|
26
30
|
};
|
|
31
|
+
/**
|
|
32
|
+
* Options arguments for resources.
|
|
33
|
+
*/
|
|
27
34
|
export type OptsArgs = WithDependsOn & {
|
|
28
35
|
importUri?: string;
|
|
29
36
|
ignoreChanges?: string[];
|
|
30
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* Arguments for login credentials.
|
|
40
|
+
*/
|
|
31
41
|
export type LoginArgs = {
|
|
32
42
|
adminLogin: Input<string>;
|
|
33
43
|
password: Input<string>;
|
|
34
44
|
};
|
|
45
|
+
/**
|
|
46
|
+
* Properties for named types.
|
|
47
|
+
*/
|
|
35
48
|
export type WithNamedType = {
|
|
36
49
|
name: string;
|
|
37
50
|
};
|
|
51
|
+
/**
|
|
52
|
+
* Properties for resources with an output ID.
|
|
53
|
+
*/
|
|
38
54
|
export type WithOutputId = {
|
|
39
55
|
id: Output<string>;
|
|
40
56
|
};
|
|
57
|
+
/**
|
|
58
|
+
* Properties for resources with a subscription ID.
|
|
59
|
+
*/
|
|
41
60
|
export type WithSubId = {
|
|
42
61
|
subscriptionId?: string;
|
|
43
62
|
};
|
|
63
|
+
/**
|
|
64
|
+
* Properties for resources with principal IDs.
|
|
65
|
+
*/
|
|
44
66
|
export type WithPrincipalId = {
|
|
45
67
|
clientId: Input<string>;
|
|
46
68
|
principalId: Input<string>;
|
|
47
69
|
};
|
|
70
|
+
/**
|
|
71
|
+
* Properties for resources with environment roles.
|
|
72
|
+
*/
|
|
48
73
|
export type WithEnvRoles = {
|
|
49
74
|
envRoles?: IEnvRoleBuilder;
|
|
50
75
|
envUIDInfo?: IdentityInfo;
|
|
51
76
|
};
|
|
77
|
+
/**
|
|
78
|
+
* Properties for resources with encryption.
|
|
79
|
+
*/
|
|
52
80
|
export type WithEncryption = {
|
|
53
81
|
enableEncryption?: boolean;
|
|
54
82
|
};
|
|
83
|
+
/**
|
|
84
|
+
* Properties for resources with disk encryption.
|
|
85
|
+
*/
|
|
55
86
|
export type WithDiskEncryption = {
|
|
56
87
|
diskEncryptionSetId?: Input<string>;
|
|
57
88
|
};
|
|
89
|
+
/**
|
|
90
|
+
* Properties for resources with vault information.
|
|
91
|
+
*/
|
|
58
92
|
export type WithVaultInfo = {
|
|
59
93
|
vaultInfo?: KeyVaultInfo;
|
|
60
94
|
};
|
|
95
|
+
/**
|
|
96
|
+
* Properties for resources with resource group information.
|
|
97
|
+
*/
|
|
61
98
|
export type WithResourceGroupInfo = {
|
|
62
99
|
group: ResourceGroupInfo;
|
|
63
100
|
};
|
|
101
|
+
/**
|
|
102
|
+
* Properties for resources with log information.
|
|
103
|
+
*/
|
|
64
104
|
export type WithLogInfo = {
|
|
65
105
|
logInfo?: LogInfo;
|
|
66
106
|
};
|
|
107
|
+
/**
|
|
108
|
+
* Properties for resources with encryption information.
|
|
109
|
+
*/
|
|
67
110
|
export type WithEncryptionInfo = WithEnvRoles & WithVaultInfo & WithEncryption;
|
|
111
|
+
/**
|
|
112
|
+
* Properties for resources with Pulumi options.
|
|
113
|
+
*/
|
|
68
114
|
export type WithPulumiOpts = {
|
|
69
115
|
opts?: CustomResourceOptions;
|
|
70
116
|
};
|
|
117
|
+
/**
|
|
118
|
+
* Arguments for login credentials with environment roles.
|
|
119
|
+
*/
|
|
71
120
|
export type LoginWithEnvRolesArgs = LoginArgs & WithEnvRoles;
|
|
121
|
+
/**
|
|
122
|
+
* Properties for named types with vault information.
|
|
123
|
+
*/
|
|
72
124
|
export type NamedWithVaultType = WithNamedType & WithVaultInfo;
|
|
125
|
+
/**
|
|
126
|
+
* Basic arguments for named resources.
|
|
127
|
+
*/
|
|
73
128
|
export type NamedBasicArgs = WithNamedType & OptsArgs;
|
|
129
|
+
/**
|
|
130
|
+
* Basic arguments for named resources with vault information.
|
|
131
|
+
*/
|
|
74
132
|
export type NamedWithVaultBasicArgs = NamedWithVaultType & OptsArgs;
|
|
133
|
+
/**
|
|
134
|
+
* Arguments for resources.
|
|
135
|
+
*/
|
|
75
136
|
export type ResourceArgs = WithNamedType & WithResourceGroupInfo;
|
|
137
|
+
/**
|
|
138
|
+
* Arguments for resources with vault information.
|
|
139
|
+
*/
|
|
76
140
|
export type ResourceWithVaultArgs = ResourceArgs & NamedWithVaultType;
|
|
141
|
+
/**
|
|
142
|
+
* Arguments for encrypted resources.
|
|
143
|
+
*/
|
|
77
144
|
export type EncryptResourceArgs = ResourceWithVaultArgs & WithEncryptionInfo;
|
|
145
|
+
/**
|
|
146
|
+
* Basic arguments for resources with formattable names.
|
|
147
|
+
*/
|
|
78
148
|
export type BasicResourceArgs = WithFormattableName & ResourceArgs & OptsArgs;
|
|
149
|
+
/**
|
|
150
|
+
* Basic arguments for resources with vault information.
|
|
151
|
+
*/
|
|
79
152
|
export type BasicResourceWithVaultArgs = WithVaultInfo & BasicResourceArgs;
|
|
153
|
+
/**
|
|
154
|
+
* Basic arguments for encrypted resources.
|
|
155
|
+
*/
|
|
80
156
|
export type BasicEncryptResourceArgs = BasicResourceWithVaultArgs & WithEncryptionInfo & OptsArgs;
|
|
81
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* Basic resource information.
|
|
159
|
+
*/
|
|
82
160
|
export type BasicResourceInfo = WithNamedType & WithOutputId;
|
|
161
|
+
/**
|
|
162
|
+
* Resource output information.
|
|
163
|
+
*/
|
|
83
164
|
export type ResourceInfo = BasicResourceInfo & ResourceArgs;
|
|
84
|
-
/**
|
|
165
|
+
/**
|
|
166
|
+
* Resource information with subscription ID.
|
|
167
|
+
*/
|
|
85
168
|
export type ResourceInfoWithSub = ResourceInfo & WithSubId;
|
|
169
|
+
/**
|
|
170
|
+
* Key vault information.
|
|
171
|
+
*/
|
|
86
172
|
export type KeyVaultInfo = ResourceInfo;
|
|
173
|
+
/**
|
|
174
|
+
* Identity information.
|
|
175
|
+
*/
|
|
87
176
|
export type IdentityInfo = WithOutputId & WithPrincipalId;
|
|
177
|
+
/**
|
|
178
|
+
* Active Directory identity information.
|
|
179
|
+
*/
|
|
88
180
|
export type AdIdentityInfo = WithNamedType & {
|
|
89
181
|
objectId: Output<string>;
|
|
90
182
|
clientId: Output<string>;
|
|
@@ -92,13 +184,22 @@ export type AdIdentityInfo = WithNamedType & {
|
|
|
92
184
|
principalId: Output<string> | undefined;
|
|
93
185
|
principalSecret: Output<string> | undefined;
|
|
94
186
|
};
|
|
187
|
+
/**
|
|
188
|
+
* Active Directory identity information with instance.
|
|
189
|
+
*/
|
|
95
190
|
export type AdIdentityInfoWithInstance<TInstance> = AdIdentityInfo & WithInstance<TInstance>;
|
|
191
|
+
/**
|
|
192
|
+
* Storage connection information.
|
|
193
|
+
*/
|
|
96
194
|
export type StorageConnectionInfo = {
|
|
97
195
|
primaryConnection?: Output<string>;
|
|
98
196
|
secondaryConnection?: Output<string>;
|
|
99
197
|
primaryKey?: Output<string>;
|
|
100
198
|
secondaryKey?: Output<string>;
|
|
101
199
|
};
|
|
200
|
+
/**
|
|
201
|
+
* Storage information.
|
|
202
|
+
*/
|
|
102
203
|
export type StorageInfo = ResourceInfo & StorageConnectionInfo & {
|
|
103
204
|
endpoints: {
|
|
104
205
|
blob: string;
|
|
@@ -106,51 +207,91 @@ export type StorageInfo = ResourceInfo & StorageConnectionInfo & {
|
|
|
106
207
|
table: string;
|
|
107
208
|
};
|
|
108
209
|
};
|
|
210
|
+
/**
|
|
211
|
+
* Application Insights secrets information.
|
|
212
|
+
*/
|
|
109
213
|
export type AppInsightSecretsInfo = {
|
|
110
214
|
instrumentationKey?: Output<string>;
|
|
111
215
|
};
|
|
216
|
+
/**
|
|
217
|
+
* Application Insights information.
|
|
218
|
+
*/
|
|
112
219
|
export type AppInsightInfo = ResourceInfo & AppInsightSecretsInfo;
|
|
220
|
+
/**
|
|
221
|
+
* Log workspace secrets information.
|
|
222
|
+
*/
|
|
113
223
|
export type LogWorkspaceSecretsInfo = {
|
|
114
224
|
primarySharedKey?: Output<string>;
|
|
115
225
|
secondarySharedKey?: Output<string>;
|
|
116
226
|
workspaceId?: Output<string>;
|
|
117
227
|
};
|
|
228
|
+
/**
|
|
229
|
+
* Log workspace information.
|
|
230
|
+
*/
|
|
118
231
|
export type LogWorkspaceInfo = ResourceInfo & LogWorkspaceSecretsInfo;
|
|
232
|
+
/**
|
|
233
|
+
* Log information.
|
|
234
|
+
*/
|
|
119
235
|
export type LogInfo = {
|
|
120
236
|
logWp: LogWorkspaceInfo;
|
|
121
237
|
logStorage: StorageInfo;
|
|
122
238
|
appInsight: AppInsightInfo;
|
|
123
239
|
};
|
|
240
|
+
/**
|
|
241
|
+
* Interface for identity information with instance.
|
|
242
|
+
*/
|
|
124
243
|
export interface IdentityInfoWithInstance<InstanceType> extends IdentityInfo, WithInstance<InstanceType> {
|
|
125
244
|
}
|
|
245
|
+
/**
|
|
246
|
+
* Interface for resources with instance.
|
|
247
|
+
*/
|
|
126
248
|
export interface WithInstance<InstanceType> {
|
|
127
249
|
instance: InstanceType;
|
|
128
250
|
}
|
|
129
|
-
/**
|
|
251
|
+
/**
|
|
252
|
+
* Interface for basic resource information with instance.
|
|
253
|
+
*/
|
|
130
254
|
export interface BasicResourceInfoWithInstance<InstanceType> extends WithInstance<InstanceType>, BasicResourceInfo {
|
|
131
255
|
}
|
|
256
|
+
/**
|
|
257
|
+
* Interface for resource information with instance.
|
|
258
|
+
*/
|
|
132
259
|
export interface ResourceInfoWithInstance<InstanceType> extends WithInstance<InstanceType>, ResourceInfo {
|
|
133
260
|
}
|
|
261
|
+
/**
|
|
262
|
+
* Properties for private link.
|
|
263
|
+
*/
|
|
134
264
|
export type PrivateLinkPropsType = {
|
|
135
265
|
privateIpAddress?: Input<string>;
|
|
136
266
|
/** The Subnet that private links will be created.*/
|
|
137
267
|
subnetIds: Input<string>[];
|
|
138
268
|
/** The extra Vnet that Private DNS Zone will be linked.*/
|
|
139
269
|
extraVnetIds?: Input<string>[];
|
|
140
|
-
type?: string;
|
|
141
270
|
};
|
|
271
|
+
/**
|
|
272
|
+
* Properties for network.
|
|
273
|
+
*/
|
|
142
274
|
export type NetworkPropsType = {
|
|
143
275
|
subnetId?: Input<string>;
|
|
144
276
|
ipAddresses?: Input<string>[];
|
|
145
277
|
privateLink?: PrivateLinkPropsType;
|
|
146
278
|
};
|
|
279
|
+
/**
|
|
280
|
+
* Properties for identity role assignment.
|
|
281
|
+
*/
|
|
147
282
|
export type IdentityRoleAssignment = WithVaultInfo & {
|
|
148
283
|
role?: EnvRoleKeyTypes;
|
|
149
284
|
};
|
|
285
|
+
/**
|
|
286
|
+
* Interface for replace pattern.
|
|
287
|
+
*/
|
|
150
288
|
export interface ReplacePattern {
|
|
151
289
|
from: string | RegExp;
|
|
152
290
|
to: string;
|
|
153
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* Properties for naming conventions.
|
|
294
|
+
*/
|
|
154
295
|
export type ConventionProps = {
|
|
155
296
|
prefix?: string;
|
|
156
297
|
suffix?: string;
|
|
@@ -165,13 +306,44 @@ export type ConventionProps = {
|
|
|
165
306
|
/**The regex to replace specials characters from the name*/
|
|
166
307
|
replaces?: ReplacePattern[];
|
|
167
308
|
};
|
|
309
|
+
export type EnvRoleKeyTypes = 'readOnly' | 'contributor' | 'admin';
|
|
310
|
+
export type RoleEnableItem = boolean | {
|
|
311
|
+
[k in EnvRoleKeyTypes]?: boolean;
|
|
312
|
+
};
|
|
313
|
+
export type EnvRoleInfoType = {
|
|
314
|
+
objectId: string;
|
|
315
|
+
displayName: string;
|
|
316
|
+
};
|
|
317
|
+
export type EnvRolesInfo = Record<EnvRoleKeyTypes, Output<EnvRoleInfoType> | EnvRoleInfoType>;
|
|
318
|
+
export type RoleEnableTypes = {
|
|
319
|
+
enableRGRoles?: RoleEnableItem;
|
|
320
|
+
enableAksRoles?: RoleEnableItem;
|
|
321
|
+
enableStorageRoles?: RoleEnableItem;
|
|
322
|
+
enableIotRoles?: RoleEnableItem;
|
|
323
|
+
enableVaultRoles?: RoleEnableItem;
|
|
324
|
+
/** Container Registry Roles */
|
|
325
|
+
enableACRRoles?: RoleEnableItem;
|
|
326
|
+
enableAppConfig?: RoleEnableItem;
|
|
327
|
+
enableServiceBus?: RoleEnableItem;
|
|
328
|
+
enableSignalR?: RoleEnableItem;
|
|
329
|
+
};
|
|
330
|
+
export type ListRoleType = Record<EnvRoleKeyTypes, Set<string>>;
|
|
331
|
+
/**
|
|
332
|
+
* Type for naming.
|
|
333
|
+
*/
|
|
168
334
|
export type NamingType = string | {
|
|
169
335
|
val: string;
|
|
170
336
|
rule: ConventionProps;
|
|
171
337
|
};
|
|
338
|
+
/**
|
|
339
|
+
* Properties for formattable names.
|
|
340
|
+
*/
|
|
172
341
|
export type WithFormattableName = {
|
|
173
342
|
name: NamingType;
|
|
174
343
|
};
|
|
344
|
+
/**
|
|
345
|
+
* Properties for diagnostic settings.
|
|
346
|
+
*/
|
|
175
347
|
export type DiagnosticProps = WithNamedType & WithDependsOn & {
|
|
176
348
|
logInfo: Partial<Omit<LogInfo, 'appInsight'>>;
|
|
177
349
|
targetResourceId: Input<string>;
|
|
File without changes
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { EnvRoleKeyTypes, EnvRolesInfo } from './EnvRoles';
|
|
2
|
-
import { RoleAssignmentProps } from './RoleAssignment';
|
|
3
|
-
export type ListRoleType = Record<EnvRoleKeyTypes, Set<string>>;
|
|
4
|
-
export declare const grantEnvRolesAccess: ({ name, envRoles, scope, dependsOn, ...others }: RoleEnableTypes & Omit<RoleAssignmentProps, "roleName" | "principalType" | "principalId"> & {
|
|
5
|
-
envRoles: EnvRolesInfo;
|
|
6
|
-
}) => void;
|
|
7
|
-
export type RoleEnableItem = boolean | {
|
|
8
|
-
[k in EnvRoleKeyTypes]?: boolean;
|
|
9
|
-
};
|
|
10
|
-
export type RoleEnableTypes = {
|
|
11
|
-
enableRGRoles?: RoleEnableItem;
|
|
12
|
-
enableAksRoles?: RoleEnableItem;
|
|
13
|
-
enableStorageRoles?: RoleEnableItem;
|
|
14
|
-
enableIotRoles?: RoleEnableItem;
|
|
15
|
-
enableVaultRoles?: RoleEnableItem;
|
|
16
|
-
/** Container Registry Roles */
|
|
17
|
-
enableACRRoles?: RoleEnableItem;
|
|
18
|
-
enableAppConfig?: RoleEnableItem;
|
|
19
|
-
enableServiceBus?: RoleEnableItem;
|
|
20
|
-
enableSignalR?: RoleEnableItem;
|
|
21
|
-
};
|
|
22
|
-
export declare const getRoleNames: ({ enableRGRoles, enableIotRoles, enableVaultRoles, enableAksRoles, enableStorageRoles, enableACRRoles, enableAppConfig, enableServiceBus, enableSignalR, }: RoleEnableTypes) => Record<EnvRoleKeyTypes, string[]>;
|
package/AzAd/EnvRoles.Consts.js
DELETED
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRoleNames = exports.grantEnvRolesAccess = void 0;
|
|
4
|
-
const RoleAssignment_1 = require("./RoleAssignment");
|
|
5
|
-
const getRoleFor = (roleType, roleCollection, results) => {
|
|
6
|
-
if (!roleType)
|
|
7
|
-
return results;
|
|
8
|
-
const allows = {
|
|
9
|
-
readOnly: typeof roleType === 'boolean' ? roleType : roleType.readOnly,
|
|
10
|
-
contributor: typeof roleType === 'boolean' ? roleType : roleType.contributor,
|
|
11
|
-
admin: typeof roleType === 'boolean' ? roleType : roleType.admin,
|
|
12
|
-
};
|
|
13
|
-
if (allows.readOnly) {
|
|
14
|
-
roleCollection.readOnly.forEach((r) => results.readOnly.add(r));
|
|
15
|
-
}
|
|
16
|
-
if (allows.contributor) {
|
|
17
|
-
roleCollection.contributor.forEach((r) => results.contributor.add(r));
|
|
18
|
-
}
|
|
19
|
-
if (allows.admin) {
|
|
20
|
-
roleCollection.admin.forEach((r) => results.admin.add(r));
|
|
21
|
-
}
|
|
22
|
-
return results;
|
|
23
|
-
};
|
|
24
|
-
const grantEnvRolesAccess = ({ name, envRoles, scope, dependsOn, ...others }) => {
|
|
25
|
-
const roles = (0, exports.getRoleNames)(others);
|
|
26
|
-
Object.keys(envRoles).forEach((k) => {
|
|
27
|
-
const type = k;
|
|
28
|
-
const objectId = envRoles[type].objectId;
|
|
29
|
-
if (!objectId) {
|
|
30
|
-
console.warn(`The Env role '${type}' was ignored as the objectId was NULL.`);
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
const n = `${name}-${type}`;
|
|
34
|
-
roles[type].forEach((r) => (0, RoleAssignment_1.roleAssignment)({
|
|
35
|
-
name: n,
|
|
36
|
-
roleName: r,
|
|
37
|
-
principalId: objectId,
|
|
38
|
-
principalType: 'Group',
|
|
39
|
-
scope,
|
|
40
|
-
dependsOn,
|
|
41
|
-
}));
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
exports.grantEnvRolesAccess = grantEnvRolesAccess;
|
|
45
|
-
//Resource Group Role
|
|
46
|
-
const RGRoleNames = {
|
|
47
|
-
readOnly: ['Reader'],
|
|
48
|
-
contributor: ['Contributor'],
|
|
49
|
-
admin: ['Owner'],
|
|
50
|
-
};
|
|
51
|
-
//AKS Roles
|
|
52
|
-
const AksRoleNames = {
|
|
53
|
-
readOnly: [
|
|
54
|
-
'Azure Kubernetes Service RBAC Reader',
|
|
55
|
-
'Azure Kubernetes Service Cluster User Role',
|
|
56
|
-
],
|
|
57
|
-
contributor: [
|
|
58
|
-
'Azure Kubernetes Service RBAC Writer',
|
|
59
|
-
'Azure Kubernetes Service Cluster User Role',
|
|
60
|
-
],
|
|
61
|
-
admin: [
|
|
62
|
-
'Azure Kubernetes Service RBAC Cluster Admin',
|
|
63
|
-
'Azure Kubernetes Service RBAC Cluster Admin',
|
|
64
|
-
],
|
|
65
|
-
};
|
|
66
|
-
//IOT Roles
|
|
67
|
-
const IOTHubRoleNames = {
|
|
68
|
-
readOnly: ['IoT Hub Data Reader'],
|
|
69
|
-
contributor: ['IoT Hub Data Contributor'],
|
|
70
|
-
admin: ['IoT Hub Registry Contributor', 'IoT Hub Twin Contributor'],
|
|
71
|
-
};
|
|
72
|
-
//Key Vault Roles
|
|
73
|
-
const KeyVaultRoleNames = {
|
|
74
|
-
readOnly: [
|
|
75
|
-
'Key Vault Crypto Service Encryption User',
|
|
76
|
-
'Key Vault Crypto Service Release User',
|
|
77
|
-
'Key Vault Secrets User',
|
|
78
|
-
'Key Vault Crypto User',
|
|
79
|
-
'Key Vault Certificate User',
|
|
80
|
-
'Key Vault Reader',
|
|
81
|
-
],
|
|
82
|
-
contributor: [
|
|
83
|
-
'Key Vault Certificates Officer',
|
|
84
|
-
'Key Vault Crypto Officer',
|
|
85
|
-
'Key Vault Secrets Officer',
|
|
86
|
-
'Key Vault Contributor',
|
|
87
|
-
],
|
|
88
|
-
admin: ['Key Vault Administrator', 'Key Vault Data Access Administrator'],
|
|
89
|
-
};
|
|
90
|
-
//Storage Roles
|
|
91
|
-
const StorageRoleNames = {
|
|
92
|
-
readOnly: [
|
|
93
|
-
'Storage Blob Data Reader',
|
|
94
|
-
'Storage File Data SMB Share Reader',
|
|
95
|
-
'Storage Queue Data Reader',
|
|
96
|
-
'Storage Table Data Reader',
|
|
97
|
-
],
|
|
98
|
-
contributor: [
|
|
99
|
-
'Storage Account Backup Contributor',
|
|
100
|
-
'Storage Account Contributor',
|
|
101
|
-
'Storage Account Encryption Scope Contributor Role',
|
|
102
|
-
'Storage Blob Data Contributor',
|
|
103
|
-
'Storage File Data Privileged Reader',
|
|
104
|
-
'Storage File Data SMB Share Contributor',
|
|
105
|
-
'Storage File Data SMB Share Elevated Contributor',
|
|
106
|
-
'Storage Queue Data Contributor',
|
|
107
|
-
'Storage Queue Data Message Processor',
|
|
108
|
-
'Storage Queue Data Message Sender',
|
|
109
|
-
'Storage Table Data Contributor',
|
|
110
|
-
],
|
|
111
|
-
admin: [
|
|
112
|
-
'Storage Account Key Operator Service Role',
|
|
113
|
-
'Storage Blob Data Owner',
|
|
114
|
-
'Storage File Data Privileged Contributor',
|
|
115
|
-
],
|
|
116
|
-
};
|
|
117
|
-
//Container Registry Roles
|
|
118
|
-
const ContainerRegistry = {
|
|
119
|
-
readOnly: [
|
|
120
|
-
//'ACR Registry Catalog Lister',
|
|
121
|
-
'ACR Repository Reader',
|
|
122
|
-
'AcrQuarantineReader',
|
|
123
|
-
//'AcrPull',
|
|
124
|
-
],
|
|
125
|
-
contributor: [
|
|
126
|
-
'AcrImageSigner',
|
|
127
|
-
'AcrPull',
|
|
128
|
-
'AcrPush',
|
|
129
|
-
//'ACR Repository Contributor',
|
|
130
|
-
//'ACR Repository Writer',
|
|
131
|
-
//'AcrQuarantineWriter',
|
|
132
|
-
],
|
|
133
|
-
admin: ['AcrDelete'],
|
|
134
|
-
};
|
|
135
|
-
//AppConfig Roles
|
|
136
|
-
const AppConfigRoleNames = {
|
|
137
|
-
readOnly: ['App Configuration Data Reader'],
|
|
138
|
-
contributor: ['App Configuration Data Owner'],
|
|
139
|
-
admin: [],
|
|
140
|
-
};
|
|
141
|
-
const ServiceBusRoles = {
|
|
142
|
-
readOnly: ['Azure Service Bus Data Receiver'],
|
|
143
|
-
contributor: ['Azure Service Bus Data Sender'],
|
|
144
|
-
admin: ['Azure Service Bus Data Owner'],
|
|
145
|
-
};
|
|
146
|
-
const SignalRRoles = {
|
|
147
|
-
readOnly: ['SignalR REST API Reader'],
|
|
148
|
-
contributor: ['SignalR App Server'],
|
|
149
|
-
admin: ['SignalR REST API Owner'],
|
|
150
|
-
};
|
|
151
|
-
const getRoleNames = ({ enableRGRoles, enableIotRoles, enableVaultRoles, enableAksRoles, enableStorageRoles, enableACRRoles, enableAppConfig, enableServiceBus, enableSignalR, }) => {
|
|
152
|
-
const rs = {
|
|
153
|
-
readOnly: new Set(),
|
|
154
|
-
admin: new Set(),
|
|
155
|
-
contributor: new Set(),
|
|
156
|
-
};
|
|
157
|
-
getRoleFor(enableIotRoles, IOTHubRoleNames, rs);
|
|
158
|
-
getRoleFor(enableRGRoles, RGRoleNames, rs);
|
|
159
|
-
getRoleFor(enableVaultRoles, KeyVaultRoleNames, rs);
|
|
160
|
-
getRoleFor(enableAksRoles, AksRoleNames, rs);
|
|
161
|
-
getRoleFor(enableStorageRoles, StorageRoleNames, rs);
|
|
162
|
-
getRoleFor(enableACRRoles, ContainerRegistry, rs);
|
|
163
|
-
getRoleFor(enableAppConfig, AppConfigRoleNames, rs);
|
|
164
|
-
getRoleFor(enableServiceBus, ServiceBusRoles, rs);
|
|
165
|
-
getRoleFor(enableSignalR, SignalRRoles, rs);
|
|
166
|
-
return {
|
|
167
|
-
readOnly: Array.from(rs.readOnly).sort(),
|
|
168
|
-
admin: Array.from(rs.admin).sort(),
|
|
169
|
-
contributor: Array.from(rs.contributor).sort(),
|
|
170
|
-
};
|
|
171
|
-
};
|
|
172
|
-
exports.getRoleNames = getRoleNames;
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW52Um9sZXMuQ29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0F6QWQvRW52Um9sZXMuQ29uc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUF1RTtBQUl2RSxNQUFNLFVBQVUsR0FBRyxDQUNqQixRQUFvQyxFQUNwQyxjQUFpRCxFQUNqRCxPQUFxQixFQUNyQixFQUFFO0lBQ0YsSUFBSSxDQUFDLFFBQVE7UUFBRSxPQUFPLE9BQU8sQ0FBQztJQUU5QixNQUFNLE1BQU0sR0FBRztRQUNiLFFBQVEsRUFBRSxPQUFPLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVE7UUFDdEUsV0FBVyxFQUNULE9BQU8sUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVztRQUNqRSxLQUFLLEVBQUUsT0FBTyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0tBQ2pFLENBQUM7SUFFRixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwQixjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkIsY0FBYyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLGNBQWMs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
|
package/AzAd/EnvRoles.js
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getEnvRolesOutput = exports.createEnvRoles = exports.pushEnvRolesToVault = void 0;
|
|
7
|
-
const EnvRoles_Consts_1 = require("./EnvRoles.Consts");
|
|
8
|
-
const Role_1 = __importDefault(require("./Role"));
|
|
9
|
-
const pulumi_1 = require("@pulumi/pulumi");
|
|
10
|
-
const Common_1 = require("../Common");
|
|
11
|
-
const CustomHelper_1 = require("../KeyVault/CustomHelper");
|
|
12
|
-
const Helper_1 = require("../KeyVault/Helper");
|
|
13
|
-
const envRoleConfig = {
|
|
14
|
-
readOnly: {
|
|
15
|
-
roleName: 'Readonly',
|
|
16
|
-
appName: 'Azure',
|
|
17
|
-
},
|
|
18
|
-
contributor: {
|
|
19
|
-
roleName: 'Contributor',
|
|
20
|
-
appName: 'Azure',
|
|
21
|
-
},
|
|
22
|
-
admin: {
|
|
23
|
-
roleName: 'Admin',
|
|
24
|
-
appName: 'Azure',
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
const getRoleSecretName = (name) => ({
|
|
28
|
-
objectIdName: (0, Helper_1.getVaultItemName)(`envRoles-${name}-object-id`),
|
|
29
|
-
displayName: (0, Helper_1.getVaultItemName)(`envRoles-${name}-display-name`),
|
|
30
|
-
});
|
|
31
|
-
const pushEnvRolesToVault = (envRoles, vaultInfo) => {
|
|
32
|
-
Object.keys(envRoleConfig).forEach((key) => {
|
|
33
|
-
const role = envRoles[key];
|
|
34
|
-
//Add to Key Vault
|
|
35
|
-
const secretNames = getRoleSecretName(key);
|
|
36
|
-
(0, CustomHelper_1.addCustomSecrets)({
|
|
37
|
-
vaultInfo,
|
|
38
|
-
contentType: 'Env Roles',
|
|
39
|
-
items: [
|
|
40
|
-
{ name: secretNames.objectIdName, value: role.objectId },
|
|
41
|
-
{ name: secretNames.displayName, value: role.displayName },
|
|
42
|
-
],
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
exports.pushEnvRolesToVault = pushEnvRolesToVault;
|
|
47
|
-
const createEnvRoles = () => {
|
|
48
|
-
const groups = {};
|
|
49
|
-
Object.keys(envRoleConfig).forEach((key) => {
|
|
50
|
-
const k = key;
|
|
51
|
-
const config = envRoleConfig[k];
|
|
52
|
-
const g = (0, Role_1.default)(config);
|
|
53
|
-
groups[k] = (0, pulumi_1.output)([g.objectId, g.displayName]).apply(([i, d]) => ({
|
|
54
|
-
objectId: i,
|
|
55
|
-
displayName: d,
|
|
56
|
-
}));
|
|
57
|
-
});
|
|
58
|
-
const pushToVault = (vaultInfo) => (0, exports.pushEnvRolesToVault)(groups, vaultInfo);
|
|
59
|
-
//Allows Some Subscription level access
|
|
60
|
-
//1. Allows to AcrPull
|
|
61
|
-
(0, EnvRoles_Consts_1.grantEnvRolesAccess)({
|
|
62
|
-
envRoles: groups,
|
|
63
|
-
name: 'envRoles-SubScope-Access',
|
|
64
|
-
scope: Common_1.defaultSubScope,
|
|
65
|
-
enableACRRoles: { contributor: true },
|
|
66
|
-
});
|
|
67
|
-
return {
|
|
68
|
-
...groups,
|
|
69
|
-
pushToVault,
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
exports.createEnvRoles = createEnvRoles;
|
|
73
|
-
/** Get Single Env Role Object */
|
|
74
|
-
const getEnvRole = async (name, vaultInfo) => {
|
|
75
|
-
const secretNames = getRoleSecretName(name);
|
|
76
|
-
const [objectId, displayName] = await Promise.all([
|
|
77
|
-
(0, Helper_1.getSecret)({ name: secretNames.objectIdName, vaultInfo }),
|
|
78
|
-
(0, Helper_1.getSecret)({ name: secretNames.displayName, vaultInfo }),
|
|
79
|
-
]);
|
|
80
|
-
return {
|
|
81
|
-
displayName: displayName?.value,
|
|
82
|
-
objectId: objectId?.value,
|
|
83
|
-
};
|
|
84
|
-
};
|
|
85
|
-
/** Get All Env Role Objects */
|
|
86
|
-
const getEnvRolesOutput = (vaultInfo) => {
|
|
87
|
-
const rs = {};
|
|
88
|
-
Object.keys(envRoleConfig).forEach((key) => {
|
|
89
|
-
rs[key] = (0, pulumi_1.output)(getEnvRole(key, vaultInfo));
|
|
90
|
-
});
|
|
91
|
-
return rs;
|
|
92
|
-
};
|
|
93
|
-
exports.getEnvRolesOutput = getEnvRolesOutput;
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW52Um9sZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQXpBZC9FbnZSb2xlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx1REFBd0Q7QUFDeEQsa0RBQXlDO0FBRXpDLDJDQUFnRDtBQUNoRCxzQ0FBNEM7QUFDNUMsMkRBQTREO0FBQzVELCtDQUFpRTtBQUlqRSxNQUFNLGFBQWEsR0FBdUM7SUFDeEQsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLFVBQVU7UUFDcEIsT0FBTyxFQUFFLE9BQU87S0FDakI7SUFDRCxXQUFXLEVBQUU7UUFDWCxRQUFRLEVBQUUsYUFBYTtRQUN2QixPQUFPLEVBQUUsT0FBTztLQUNqQjtJQUNELEtBQUssRUFBRTtRQUNMLFFBQVEsRUFBRSxPQUFPO1FBQ2pCLE9BQU8sRUFBRSxPQUFPO0tBQ2pCO0NBQ0YsQ0FBQztBQVFGLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsWUFBWSxFQUFFLElBQUEseUJBQWdCLEVBQUMsWUFBWSxJQUFJLFlBQVksQ0FBQztJQUM1RCxXQUFXLEVBQUUsSUFBQSx5QkFBZ0IsRUFBQyxZQUFZLElBQUksZUFBZSxDQUFDO0NBQy9ELENBQUMsQ0FBQztBQU1JLE1BQU0sbUJBQW1CLEdBQUcsQ0FDakMsUUFBc0IsRUFDdEIsU0FBdUIsRUFDdkIsRUFBRTtJQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDekMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQXNCLENBQUMsQ0FBQztRQUM5QyxrQkFBa0I7UUFDbEIsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsSUFBQSwrQkFBZ0IsRUFBQztZQUNmLFNBQVM7WUFDVCxXQUFXLEVBQUUsV0FBVztZQUN4QixLQUFLLEVBQUU7Z0JBQ0ws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
|
package/AzAd/Role.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { GroupPermissionProps } from "./Group";
|
|
2
|
-
import { Environments } from "../Common/AzureEnv";
|
|
3
|
-
import { Input } from "@pulumi/pulumi";
|
|
4
|
-
export interface RoleProps {
|
|
5
|
-
env?: Environments;
|
|
6
|
-
/** The country code or GLB for Global*/
|
|
7
|
-
location?: string;
|
|
8
|
-
appName: string;
|
|
9
|
-
moduleName?: string;
|
|
10
|
-
roleName: string;
|
|
11
|
-
members?: Input<string>[];
|
|
12
|
-
owners?: Input<Input<string>[]>;
|
|
13
|
-
permissions?: Array<GroupPermissionProps>;
|
|
14
|
-
}
|
|
15
|
-
export type RoleNameType = Pick<RoleProps, "env" | "location" | "appName" | "moduleName" | "roleName">;
|
|
16
|
-
declare const _default: ({ members, owners, permissions, ...others }: RoleProps) => import("@pulumi/pulumi").Output<import("@pulumi/azuread/group").Group>;
|
|
17
|
-
export default _default;
|