raindancers-cloudfront 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +176 -0
  3. package/lib/bicep/deploy/deploy.d.ts +46 -0
  4. package/lib/bicep/deploy/deploy.js +123 -0
  5. package/lib/bicep/deploy/index.d.ts +3 -0
  6. package/lib/bicep/deploy/index.js +20 -0
  7. package/lib/bicep/deploy/template.d.ts +75 -0
  8. package/lib/bicep/deploy/template.js +364 -0
  9. package/lib/bicep/deploy/templateBuilder.d.ts +16 -0
  10. package/lib/bicep/deploy/templateBuilder.js +35 -0
  11. package/lib/bicep/index.d.ts +3 -0
  12. package/lib/bicep/index.js +40 -0
  13. package/lib/bicep/patterns/azureAdApplicationFederated.d.ts +58 -0
  14. package/lib/bicep/patterns/azureAdApplicationFederated.js +317 -0
  15. package/lib/bicep/patterns/index.d.ts +1 -0
  16. package/lib/bicep/patterns/index.js +18 -0
  17. package/lib/bicep/resources/azure/appServicePlan.d.ts +11 -0
  18. package/lib/bicep/resources/azure/appServicePlan.js +24 -0
  19. package/lib/bicep/resources/azure/applicationInsights.d.ts +13 -0
  20. package/lib/bicep/resources/azure/applicationInsights.js +27 -0
  21. package/lib/bicep/resources/azure/deploymentScript.d.ts +16 -0
  22. package/lib/bicep/resources/azure/deploymentScript.js +43 -0
  23. package/lib/bicep/resources/azure/functionApp.d.ts +20 -0
  24. package/lib/bicep/resources/azure/functionApp.js +54 -0
  25. package/lib/bicep/resources/azure/index.d.ts +8 -0
  26. package/lib/bicep/resources/azure/index.js +25 -0
  27. package/lib/bicep/resources/azure/logAnalyticsWorkspace.d.ts +11 -0
  28. package/lib/bicep/resources/azure/logAnalyticsWorkspace.js +26 -0
  29. package/lib/bicep/resources/azure/managedIdentity.d.ts +13 -0
  30. package/lib/bicep/resources/azure/managedIdentity.js +24 -0
  31. package/lib/bicep/resources/azure/roleAssignment.d.ts +18 -0
  32. package/lib/bicep/resources/azure/roleAssignment.js +34 -0
  33. package/lib/bicep/resources/azure/storageAccount.d.ts +11 -0
  34. package/lib/bicep/resources/azure/storageAccount.js +28 -0
  35. package/lib/bicep/resources/graph/appRoleAssignment.d.ts +25 -0
  36. package/lib/bicep/resources/graph/appRoleAssignment.js +33 -0
  37. package/lib/bicep/resources/graph/application.d.ts +51 -0
  38. package/lib/bicep/resources/graph/application.js +88 -0
  39. package/lib/bicep/resources/graph/bicepConstruct.d.ts +14 -0
  40. package/lib/bicep/resources/graph/bicepConstruct.js +29 -0
  41. package/lib/bicep/resources/graph/existingServicePrincipal.d.ts +19 -0
  42. package/lib/bicep/resources/graph/existingServicePrincipal.js +26 -0
  43. package/lib/bicep/resources/graph/federatedIdentityCredential.d.ts +29 -0
  44. package/lib/bicep/resources/graph/federatedIdentityCredential.js +31 -0
  45. package/lib/bicep/resources/graph/group.d.ts +26 -0
  46. package/lib/bicep/resources/graph/group.js +31 -0
  47. package/lib/bicep/resources/graph/index.d.ts +8 -0
  48. package/lib/bicep/resources/graph/index.js +25 -0
  49. package/lib/bicep/resources/graph/servicePrincipal.d.ts +22 -0
  50. package/lib/bicep/resources/graph/servicePrincipal.js +27 -0
  51. package/lib/bicep/resources/graph/types/index.d.ts +1 -0
  52. package/lib/bicep/resources/graph/types/index.js +18 -0
  53. package/lib/bicep/resources/graph/types/permissions.d.ts +54 -0
  54. package/lib/bicep/resources/graph/types/permissions.js +73 -0
  55. package/lib/bicep/resources/index.d.ts +2 -0
  56. package/lib/bicep/resources/index.js +39 -0
  57. package/lib/cloudfront/auth/authLambdaFunctions.d.ts +20 -0
  58. package/lib/cloudfront/auth/authLambdaFunctions.js +159 -0
  59. package/lib/cloudfront/auth/authSecretManager.d.ts +19 -0
  60. package/lib/cloudfront/auth/authSecretManager.js +92 -0
  61. package/lib/cloudfront/auth/cognitoAuthSecretManager.d.ts +20 -0
  62. package/lib/cloudfront/auth/cognitoAuthSecretManager.js +93 -0
  63. package/lib/cloudfront/auth/index.d.ts +3 -0
  64. package/lib/cloudfront/auth/index.js +20 -0
  65. package/lib/cloudfront/authSecurityTable.d.ts +10 -0
  66. package/lib/cloudfront/authSecurityTable.js +78 -0
  67. package/lib/cloudfront/cloudfront-functions/function-composer.d.ts +21 -0
  68. package/lib/cloudfront/cloudfront-functions/function-composer.js +132 -0
  69. package/lib/cloudfront/cloudfrontCertificate.d.ts +40 -0
  70. package/lib/cloudfront/cloudfrontCertificate.js +116 -0
  71. package/lib/cloudfront/cloudfrontWebAcl.d.ts +72 -0
  72. package/lib/cloudfront/cloudfrontWebAcl.js +249 -0
  73. package/lib/cloudfront/countries.d.ts +260 -0
  74. package/lib/cloudfront/countries.js +263 -0
  75. package/lib/cloudfront/deployment/viteFrontendDeployment.d.ts +12 -0
  76. package/lib/cloudfront/deployment/viteFrontendDeployment.js +63 -0
  77. package/lib/cloudfront/index.d.ts +11 -0
  78. package/lib/cloudfront/index.js +28 -0
  79. package/lib/cloudfront/jwtDecoder.d.ts +5 -0
  80. package/lib/cloudfront/jwtDecoder.js +57 -0
  81. package/lib/cloudfront/logging/auditLogArchive.d.ts +18 -0
  82. package/lib/cloudfront/logging/auditLogArchive.js +205 -0
  83. package/lib/cloudfront/logging/index.d.ts +1 -0
  84. package/lib/cloudfront/logging/index.js +18 -0
  85. package/lib/cloudfront/oauthEdgeRole.d.ts +9 -0
  86. package/lib/cloudfront/oauthEdgeRole.js +56 -0
  87. package/lib/cloudfront/patterns/authInfrastructure.d.ts +34 -0
  88. package/lib/cloudfront/patterns/authInfrastructure.js +140 -0
  89. package/lib/cloudfront/patterns/cognito-secured-cloudfront.d.ts +36 -0
  90. package/lib/cloudfront/patterns/cognito-secured-cloudfront.js +285 -0
  91. package/lib/cloudfront/patterns/cognitoAuthInfrastructure.d.ts +28 -0
  92. package/lib/cloudfront/patterns/cognitoAuthInfrastructure.js +157 -0
  93. package/lib/cloudfront/patterns/index.d.ts +4 -0
  94. package/lib/cloudfront/patterns/index.js +21 -0
  95. package/lib/cloudfront/patterns/securedCloudFront.d.ts +73 -0
  96. package/lib/cloudfront/patterns/securedCloudFront.js +416 -0
  97. package/lib/cloudfront/ssmCrossRegionWriter.d.ts +9 -0
  98. package/lib/cloudfront/ssmCrossRegionWriter.js +65 -0
  99. package/lib/cloudfront/syncSecretToKvs.d.ts +9 -0
  100. package/lib/cloudfront/syncSecretToKvs.js +89 -0
  101. package/lib/index.d.ts +2 -0
  102. package/lib/index.js +19 -0
  103. package/package.json +105 -0
@@ -0,0 +1,317 @@
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.AzureAdApplicationFederated = exports.OidcAudience = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const core = __importStar(require("aws-cdk-lib"));
40
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
41
+ const constructs_1 = require("constructs");
42
+ const bicep = __importStar(require("../deploy"));
43
+ const azure = __importStar(require("../resources/azure"));
44
+ const graph = __importStar(require("../resources/graph"));
45
+ /**
46
+ * Well-known OIDC audience values for common providers
47
+ */
48
+ var OidcAudience;
49
+ (function (OidcAudience) {
50
+ /** AWS Security Token Service */
51
+ OidcAudience["AWS_STS"] = "sts.amazonaws.com";
52
+ /** Azure AD Token Exchange for Workload Identity Federation */
53
+ OidcAudience["AZURE_AD_TOKEN_EXCHANGE"] = "api://AzureADTokenExchange";
54
+ /** Microsoft Graph API */
55
+ OidcAudience["MICROSOFT_GRAPH"] = "https://graph.microsoft.com";
56
+ /** Kubernetes default service account */
57
+ OidcAudience["KUBERNETES"] = "https://kubernetes.default.svc";
58
+ })(OidcAudience || (exports.OidcAudience = OidcAudience = {}));
59
+ class AzureAdApplicationFederated extends constructs_1.Construct {
60
+ constructor(scope, id, props) {
61
+ super(scope, id);
62
+ if (props.enableAwsSessionTagMapping && (!props.groups || props.groups.length === 0)) {
63
+ throw new Error('enableAwsSessionTagMapping requires groups to be defined. ' +
64
+ 'Custom Claims Provider maps Azure AD groups/roles to AWS session tags.');
65
+ }
66
+ this.trustedTokenRequester = props.trustedTokenRequester;
67
+ const stack = core.Stack.of(this);
68
+ const cloudformationArn = `arn:aws:cloudformation:${stack.region}:${stack.account}:stack/${stack.stackName}`;
69
+ let claimsProviderResult;
70
+ const { template, outputKeys } = new bicep.BicepTemplateBuilder()
71
+ .withMetadata({
72
+ name: props.appName,
73
+ description: 'Azure AD Application with federated credentials for AWS integration',
74
+ cloudformation: {
75
+ stackArn: cloudformationArn,
76
+ },
77
+ })
78
+ .withExtensions(bicep.BicepExtension.MICROSOFT_GRAPH_STABLE)
79
+ .withResources(builder => {
80
+ claimsProviderResult = this.buildResources(builder, props);
81
+ })
82
+ .withOutputs({
83
+ appId: 'Application.appId',
84
+ tenantId: 'tenant().tenantId',
85
+ ...(props.enableAwsSessionTagMapping ? {
86
+ functionAppName: 'Functionapp.name',
87
+ } : {}),
88
+ })
89
+ .build();
90
+ const deployment = new bicep.BicepDeployment(this, 'Deployment', {
91
+ template: template.synthesize(),
92
+ resourceGroupName: props.resourceGroupName,
93
+ azureFederatedCredentials: props.deploymentCredentials,
94
+ cloudformationStackArn: cloudformationArn,
95
+ parameters: {
96
+ deploymentSpObjectId: props.deploymentCredentials.spObjectId,
97
+ },
98
+ functionCode: claimsProviderResult ? {
99
+ s3BucketName: claimsProviderResult.functionCodeAsset.s3BucketName,
100
+ s3ObjectKey: claimsProviderResult.functionCodeAsset.s3ObjectKey,
101
+ } : undefined,
102
+ });
103
+ if (claimsProviderResult) {
104
+ claimsProviderResult.functionCodeAsset.grantRead(deployment.lambdaRole);
105
+ }
106
+ this.outputs = {};
107
+ outputKeys.forEach(key => {
108
+ this.outputs[key] = deployment.getOutput(key);
109
+ });
110
+ }
111
+ buildResources(template, props) {
112
+ const appRoles = props.groups?.map((groupName) => {
113
+ const roleId = `guid('${groupName}-role')`;
114
+ return {
115
+ id: roleId,
116
+ displayName: groupName,
117
+ description: `${groupName} role for ${props.appName}`,
118
+ value: groupName,
119
+ allowedMemberTypes: [graph.AllowedMemberType.USER],
120
+ isEnabled: true,
121
+ };
122
+ }) || [];
123
+ const application = new graph.Application(template, 'application', {
124
+ displayName: props.appName,
125
+ redirectUris: props.redirectUris,
126
+ signInAudience: props.signInAudience ?? graph.SignInAudience.AZURE_AD_MY_ORG,
127
+ appRoles: appRoles,
128
+ optionalClaims: appRoles.length > 0 ? {
129
+ idToken: [
130
+ {
131
+ name: 'roles',
132
+ essential: false,
133
+ },
134
+ ...(props.enableAwsSessionTagMapping ? [{
135
+ name: 'https://aws.amazon.com/tags/principal_tags/Roles',
136
+ essential: false,
137
+ source: 'customClaimsProvider',
138
+ }] : []),
139
+ ],
140
+ } : undefined,
141
+ });
142
+ const servicePrincipal = new graph.ServicePrincipal(template, 'servicePrincipal', {
143
+ application: application,
144
+ appRoleAssignmentRequired: false,
145
+ });
146
+ const federatedCredential = new graph.FederatedIdentityCredential(template, 'federatedCredential', {
147
+ application: application,
148
+ name: `${props.appName}-aws-credential`,
149
+ issuer: props.trustedTokenRequester.issuer,
150
+ subject: props.trustedTokenRequester.sub,
151
+ audiences: props.trustedTokenRequester.aud,
152
+ description: `Federated credential for ${props.appName} AWS integration`,
153
+ });
154
+ if (props.groups) {
155
+ props.groups.forEach((groupName) => {
156
+ const sanitizedName = this.sanitizeIdentifier(groupName);
157
+ const group = new graph.Group(template, `group${sanitizedName}`, {
158
+ displayName: groupName,
159
+ description: `${groupName} group for ${props.appName}`,
160
+ });
161
+ const appRoleId = `guid('${groupName}-role')`;
162
+ const assignment = new graph.AppRoleAssignment(template, `groupAssignment${sanitizedName}`, {
163
+ resourceServicePrincipal: servicePrincipal,
164
+ principal: group,
165
+ appRoleId: appRoleId,
166
+ });
167
+ group.synthesize();
168
+ assignment.synthesize();
169
+ });
170
+ }
171
+ application.synthesize();
172
+ servicePrincipal.synthesize();
173
+ federatedCredential.synthesize();
174
+ if (!props.enableAwsSessionTagMapping) {
175
+ return undefined;
176
+ }
177
+ return this.buildCustomClaimsProvider(template, props);
178
+ }
179
+ buildCustomClaimsProvider(template, props) {
180
+ template.addStringParameter('location', 'Azure region for resources', "'australiaeast'");
181
+ template.addStringParameter('deploymentSpObjectId', 'Object ID of the SP deploying this template (needs Storage Blob Data Contributor)', '');
182
+ const namePrefix = props.appName.toLowerCase();
183
+ const uniqueSuffix = 'substring(uniqueString(resourceGroup().id), 0, 8)';
184
+ const managedIdentity = new azure.ManagedIdentity(template, 'managedIdentity', {
185
+ name: `'${namePrefix}-claims-identity-\${${uniqueSuffix}}'`,
186
+ });
187
+ const storageAccount = new azure.StorageAccount(template, 'storageAccount', {
188
+ name: `'${namePrefix}claims\${${uniqueSuffix}}'`,
189
+ });
190
+ const appServicePlan = new azure.AppServicePlan(template, 'appServicePlan', {
191
+ name: `'${namePrefix}-claims-plan-\${${uniqueSuffix}}'`,
192
+ });
193
+ const logAnalyticsWorkspace = new azure.LogAnalyticsWorkspace(template, 'logAnalyticsWorkspace', {
194
+ name: `'${namePrefix}-claims-logs-\${${uniqueSuffix}}'`,
195
+ });
196
+ const applicationInsights = new azure.ApplicationInsights(template, 'applicationInsights', {
197
+ name: `'${namePrefix}-claims-insights-\${${uniqueSuffix}}'`,
198
+ logAnalyticsWorkspace: logAnalyticsWorkspace,
199
+ });
200
+ const functionApp = new azure.FunctionApp(template, 'functionApp', {
201
+ name: `'${namePrefix}-claims-func-\${${uniqueSuffix}}'`,
202
+ managedIdentity: managedIdentity,
203
+ appServicePlan: appServicePlan,
204
+ storageAccount: storageAccount,
205
+ applicationInsights: applicationInsights,
206
+ });
207
+ const roleAssignment = new azure.RoleAssignment(template, 'managedIdentityContributor', {
208
+ name: `guid('${props.appName}-mi-contributor')`,
209
+ roleDefinitionId: azure.AzureBuiltInRole.WEBSITE_CONTRIBUTOR,
210
+ principalId: managedIdentity,
211
+ });
212
+ const spBlobRoleAssignment = new azure.RoleAssignment(template, 'deploymentSpBlobContributor', {
213
+ name: `guid('${props.appName}-sp-blob-contributor')`,
214
+ roleDefinitionId: azure.AzureBuiltInRole.STORAGE_BLOB_DATA_CONTRIBUTOR,
215
+ principalId: 'deploymentSpObjectId',
216
+ });
217
+ spBlobRoleAssignment.addDependency(storageAccount);
218
+ const functionCodeAsset = new aws_cdk_lib_1.aws_s3_assets.Asset(this, 'FunctionCodeAsset', {
219
+ path: path.join(__dirname, '..', 'azure-functions', 'custom-claims-provider'),
220
+ bundling: {
221
+ image: core.DockerImage.fromRegistry('python:3.12-slim'),
222
+ command: [
223
+ 'bash', '-c',
224
+ 'pip install -r /asset-input/requirements.txt -t /asset-output/ && cp /asset-input/function_app.py /asset-input/host.json /asset-input/requirements.txt /asset-output/',
225
+ ],
226
+ },
227
+ });
228
+ const functionAppRegistration = new graph.Application(template, 'functionAppRegistration', {
229
+ displayName: `${namePrefix}-claims-func-app`,
230
+ redirectUris: [],
231
+ requiredResourceAccess: [
232
+ {
233
+ resourceAppId: graph.ResourceAppId.MICROSOFT_GRAPH,
234
+ resourceAccess: [
235
+ {
236
+ id: graph.MicrosoftGraphPermission.CUSTOM_AUTH_EXT_RECEIVE_PAYLOAD,
237
+ type: graph.PermissionType.ROLE,
238
+ },
239
+ ],
240
+ },
241
+ ],
242
+ });
243
+ const graphServicePrincipal = new graph.ExistingServicePrincipal(template, 'graphServicePrincipal', {
244
+ appId: '00000003-0000-0000-c000-000000000000',
245
+ });
246
+ const miPolicyReadPermission = new graph.AppRoleAssignment(template, 'miPolicyReadPermission', {
247
+ resourceServicePrincipal: graphServicePrincipal,
248
+ principal: `${managedIdentity.principalId}`,
249
+ appRoleId: '\'246dd0d5-5bd0-4def-940b-0421030a5b68\'',
250
+ });
251
+ const miPolicyPermission = new graph.AppRoleAssignment(template, 'miPolicyPermission', {
252
+ resourceServicePrincipal: graphServicePrincipal,
253
+ principal: `${managedIdentity.principalId}`,
254
+ appRoleId: '\'be74164b-cff1-491c-8741-e671cb536e13\'',
255
+ });
256
+ const miCustomAuthExtPermission = new graph.AppRoleAssignment(template, 'miCustomAuthExtPermission', {
257
+ resourceServicePrincipal: graphServicePrincipal,
258
+ principal: `${managedIdentity.principalId}`,
259
+ appRoleId: '\'c2667967-7050-4e7e-b059-4cbbb3811d03\'',
260
+ });
261
+ const miEventListenerPermission = new graph.AppRoleAssignment(template, 'miEventListenerPermission', {
262
+ resourceServicePrincipal: graphServicePrincipal,
263
+ principal: `${managedIdentity.principalId}`,
264
+ appRoleId: '\'0edf5e9e-4ce8-468a-8432-d08631d18c43\'',
265
+ });
266
+ const miAppReadWritePermission = new graph.AppRoleAssignment(template, 'miAppReadWritePermission', {
267
+ resourceServicePrincipal: graphServicePrincipal,
268
+ principal: `${managedIdentity.principalId}`,
269
+ appRoleId: `'${graph.MicrosoftGraphPermission.APPLICATION_READ_WRITE_ALL}'`,
270
+ });
271
+ const wireCustomClaimsExtension = new azure.DeploymentScript(template, 'wireCustomClaimsExtension', {
272
+ name: "'wire-custom-claims-extension'",
273
+ managedIdentity: managedIdentity,
274
+ scriptContent: fs.readFileSync(path.join(__dirname, 'scripts', 'wire-custom-claims-extension.sh'), 'utf8'),
275
+ environmentVariables: {
276
+ FUNCTION_HOSTNAME: 'Functionapp.properties.defaultHostName',
277
+ FUNCTION_APP_ID: 'Functionappregistration.appId',
278
+ CLF_APP_ID: 'Application.appId',
279
+ EXT_DISPLAY_NAME: `'${namePrefix}-claims-provider'`,
280
+ },
281
+ });
282
+ wireCustomClaimsExtension.addDependency(miPolicyReadPermission);
283
+ wireCustomClaimsExtension.addDependency(miPolicyPermission);
284
+ wireCustomClaimsExtension.addDependency(miCustomAuthExtPermission);
285
+ wireCustomClaimsExtension.addDependency(miEventListenerPermission);
286
+ wireCustomClaimsExtension.addDependency(miAppReadWritePermission);
287
+ managedIdentity.synthesize();
288
+ storageAccount.synthesize();
289
+ appServicePlan.synthesize();
290
+ logAnalyticsWorkspace.synthesize();
291
+ applicationInsights.synthesize();
292
+ functionApp.synthesize();
293
+ roleAssignment.synthesize();
294
+ spBlobRoleAssignment.synthesize();
295
+ functionAppRegistration.synthesize();
296
+ graphServicePrincipal.synthesize();
297
+ miPolicyReadPermission.synthesize();
298
+ miPolicyPermission.synthesize();
299
+ miCustomAuthExtPermission.synthesize();
300
+ miEventListenerPermission.synthesize();
301
+ miAppReadWritePermission.synthesize();
302
+ wireCustomClaimsExtension.synthesize();
303
+ return {
304
+ functionCodeAsset: functionCodeAsset,
305
+ };
306
+ }
307
+ sanitizeIdentifier(name) {
308
+ return name
309
+ .split(/[-_\s]+/)
310
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
311
+ .join('')
312
+ .replace(/[^a-zA-Z0-9]/g, '')
313
+ .replace(/^[0-9]/, '_$&');
314
+ }
315
+ }
316
+ exports.AzureAdApplicationFederated = AzureAdApplicationFederated;
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp1cmVBZEFwcGxpY2F0aW9uRmVkZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpY2VwL3BhdHRlcm5zL2F6dXJlQWRBcHBsaWNhdGlvbkZlZGVyYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLGtEQUFvQztBQUNwQyw2Q0FFcUI7QUFDckIsMkNBQXVDO0FBQ3ZDLGlEQUFtQztBQUNuQywwREFBNEM7QUFDNUMsMERBQTRDO0FBRTVDOztHQUVHO0FBQ0gsSUFBWSxZQVNYO0FBVEQsV0FBWSxZQUFZO0lBQ3RCLGlDQUFpQztJQUNqQyw2Q0FBNkIsQ0FBQTtJQUM3QiwrREFBK0Q7SUFDL0Qsc0VBQXNELENBQUE7SUFDdEQsMEJBQTBCO0lBQzFCLCtEQUErQyxDQUFBO0lBQy9DLHlDQUF5QztJQUN6Qyw2REFBNkMsQ0FBQTtBQUMvQyxDQUFDLEVBVFcsWUFBWSw0QkFBWixZQUFZLFFBU3ZCO0FBb0NELE1BQWEsMkJBQTRCLFNBQVEsc0JBQVM7SUFNeEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1QztRQUMvRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksS0FBSyxDQUFDLDBCQUEwQixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDckYsTUFBTSxJQUFJLEtBQUssQ0FDYiw0REFBNEQ7Z0JBQzVELHdFQUF3RSxDQUN6RSxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMscUJBQXFCLENBQUM7UUFFekQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFB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YUFDaEIsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3ZFLElBQUksQ0FBQyxFQUFFLENBQUM7YUFDUixPQUFPLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQzthQUM1QixPQUFPLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDRjtBQXZURCxrRUF1VEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY29yZSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge1xuICBhd3NfczNfYXNzZXRzIGFzIHMzYXNzZXRzLFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGJpY2VwIGZyb20gJy4uL2RlcGxveSc7XG5pbXBvcnQgKiBhcyBhenVyZSBmcm9tICcuLi9yZXNvdXJjZXMvYXp1cmUnO1xuaW1wb3J0ICogYXMgZ3JhcGggZnJvbSAnLi4vcmVzb3VyY2VzL2dyYXBoJztcblxuLyoqXG4gKiBXZWxsLWtub3duIE9JREMgYXVkaWVuY2UgdmFsdWVzIGZvciBjb21tb24gcHJvdmlkZXJzXG4gKi9cbmV4cG9ydCBlbnVtIE9pZGNBdWRpZW5jZSB7XG4gIC8qKiBBV1MgU2VjdXJpdHkgVG9rZW4gU2VydmljZSAqL1xuICBBV1NfU1RTID0gJ3N0cy5hbWF6b25hd3MuY29tJyxcbiAgLyoqIEF6dXJlIEFEIFRva2VuIEV4Y2hhbmdlIGZvciBXb3JrbG9hZCBJZGVudGl0eSBGZWRlcmF0aW9uICovXG4gIEFaVVJFX0FEX1RPS0VOX0VYQ0hBTkdFID0gJ2FwaTovL0F6dXJlQURUb2tlbkV4Y2hhbmdlJyxcbiAgLyoqIE1pY3Jvc29mdCBHcmFwaCBBUEkgKi9cbiAgTUlDUk9TT0ZUX0dSQVBIID0gJ2h0dHBzOi8vZ3JhcGgubWljcm9zb2Z0LmNvbScsXG4gIC8qKiBLdWJlcm5ldGVzIGRlZmF1bHQgc2VydmljZSBhY2NvdW50ICovXG4gIEtVQkVSTkVURVMgPSAnaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjJyxcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBleHRlcm5hbCBpZGVudGl0eSB0cnVzdGVkIHRvIHJlcXVlc3QgdG9rZW5zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJ1c3RlZFRva2VuUmVxdWVzdGVyQ29uZmlnIHtcbiAgLyoqIE9JREMgaXNzdWVyIFVSTCB0aGF0IEF6dXJlIEFEIHRydXN0cyAqL1xuICByZWFkb25seSBpc3N1ZXI6IHN0cmluZztcbiAgLyoqIFN1YmplY3QgKHN1YikgY2xhaW0gaWRlbnRpZnlpbmcgdGhlIHRydXN0ZWQgd29ya2xvYWQgKi9cbiAgcmVhZG9ubHkgc3ViOiBzdHJpbmc7XG4gIC8qKiBBdWRpZW5jZSAoYXVkKSB2YWx1ZXMgZm9yIHRva2VuIHZhbGlkYXRpb24gLSB1c2UgT2lkY0F1ZGllbmNlIGVudW0gb3IgY3VzdG9tIHN0cmluZ3MgKi9cbiAgcmVhZG9ubHkgYXVkOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBBenVyZSBBRCBhcHBsaWNhdGlvbiB3aXRoIGZlZGVyYXRlZCBjcmVkZW50aWFscy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBenVyZUFkQXBwbGljYXRpb25GZWRlcmF0ZWRQcm9wcyB7XG4gIC8qKiBOYW1lIG9mIHRoZSBBenVyZSBBRCBhcHBsaWNhdGlvbiAqL1xuICByZWFkb25seSBhcHBOYW1lOiBzdHJpbmc7XG4gIC8qKiBSZWRpcmVjdCBVUklzIGZvciBPQXV0aCBjYWxsYmFja3MgKi9cbiAgcmVhZG9ubHkgcmVkaXJlY3RVcmlzOiBzdHJpbmdbXTtcbiAgLyoqIFN1cHBvcnRlZCBhY2NvdW50IHR5cGVzIGZvciBzaWduLWluIChkZWZhdWx0cyB0byBzaW5nbGUgdGVuYW50KSAqL1xuICByZWFkb25seSBzaWduSW5BdWRpZW5jZT86IGdyYXBoLlNpZ25JbkF1ZGllbmNlO1xuICAvKiogQXp1cmUgcmVzb3VyY2UgZ3JvdXAgbmFtZSAqL1xuICByZWFkb25seSByZXNvdXJjZUdyb3VwTmFtZTogc3RyaW5nO1xuICAvKiogQXp1cmUgQUQgZ3JvdXBzIHRvIGNyZWF0ZSAqL1xuICByZWFkb25seSBncm91cHM/OiBzdHJpbmdbXTtcbiAgLyoqIEF6dXJlIGZlZGVyYXRlZCBjcmVkZW50aWFscyBmb3IgZGVwbG95bWVudCAqL1xuICByZWFkb25seSBkZXBsb3ltZW50Q3JlZGVudGlhbHM6IGJpY2VwLkF6dXJlRmVkZXJhdGVkQ3JlZGVudGlhbHM7XG4gIC8qKiBFeHRlcm5hbCBpZGVudGl0eSB0cnVzdGVkIHRvIHJlcXVlc3QgdG9rZW5zICovXG4gIHJlYWRvbmx5IHRydXN0ZWRUb2tlblJlcXVlc3RlcjogVHJ1c3RlZFRva2VuUmVxdWVzdGVyQ29uZmlnO1xuICAvKiogRW5hYmxlIEFXUyBzZXNzaW9uIHRhZyBtYXBwaW5nIHZpYSBDdXN0b20gQ2xhaW1zIFByb3ZpZGVyIChyZXF1aXJlcyBncm91cHMgdG8gYmUgZGVmaW5lZCkgKi9cbiAgcmVhZG9ubHkgZW5hYmxlQXdzU2Vzc2lvblRhZ01hcHBpbmc/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQXp1cmVBZEFwcGxpY2F0aW9uRmVkZXJhdGVkIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqIEFsbCBkZXBsb3ltZW50IG91dHB1dHMgKi9cbiAgcHVibGljIHJlYWRvbmx5IG91dHB1dHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKiBUcnVzdGVkIHRva2VuIHJlcXVlc3RlciBjb25maWd1cmF0aW9uICovXG4gIHB1YmxpYyByZWFkb25seSB0cnVzdGVkVG9rZW5SZXF1ZXN0ZXI6IFRydXN0ZWRUb2tlblJlcXVlc3RlckNvbmZpZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXp1cmVBZEFwcGxpY2F0aW9uRmVkZXJhdGVkUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKHByb3BzLmVuYWJsZUF3c1Nlc3Npb25UYWdNYXBwaW5nICYmICghcHJvcHMuZ3JvdXBzIHx8IHByb3BzLmdyb3Vwcy5sZW5ndGggPT09IDApKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdlbmFibGVBd3NTZXNzaW9uVGFnTWFwcGluZyByZXF1aXJlcyBncm91cHMgdG8gYmUgZGVmaW5lZC4gJyArXG4gICAgICAgICdDdXN0b20gQ2xhaW1zIFByb3ZpZGVyIG1hcHMgQXp1cmUgQUQgZ3JvdXBzL3JvbGVzIHRvIEFXUyBzZXNzaW9uIHRhZ3MuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy50cnVzdGVkVG9rZW5SZXF1ZXN0ZXIgPSBwcm9wcy50cnVzdGVkVG9rZW5SZXF1ZXN0ZXI7XG5cbiAgICBjb25zdCBzdGFjayA9IGNvcmUuU3RhY2sub2YodGhpcyk7XG4gICAgY29uc3QgY2xvdWRmb3JtYXRpb25Bcm4gPSBgYXJuOmF3czpjbG91ZGZvcm1hdGlvbjoke3N0YWNrLnJlZ2lvbn06JHtzdGFjay5hY2NvdW50fTpzdGFjay8ke3N0YWNrLnN0YWNrTmFtZX1gO1xuXG4gICAgbGV0IGNsYWltc1Byb3ZpZGVyUmVzdWx0OiB7IGZ1bmN0aW9uQ29kZUFzc2V0OiBzM2Fzc2V0cy5Bc3NldCB9IHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgeyB0ZW1wbGF0ZSwgb3V0cHV0S2V5cyB9ID0gbmV3IGJpY2VwLkJpY2VwVGVtcGxhdGVCdWlsZGVyKClcbiAgICAgIC53aXRoTWV0YWRhdGEoe1xuICAgICAgICBuYW1lOiBwcm9wcy5hcHBOYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0F6dXJlIEFEIEFwcGxpY2F0aW9uIHdpdGggZmVkZXJhdGVkIGNyZWRlbnRpYWxzIGZvciBBV1MgaW50ZWdyYXRpb24nLFxuICAgICAgICBjbG91ZGZvcm1hdGlvbjoge1xuICAgICAgICAgIHN0YWNrQXJuOiBjbG91ZGZvcm1hdGlvbkFybixcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAud2l0aEV4dGVuc2lvbnMoYmljZXAuQmljZXBFeHRlbnNpb24uTUlDUk9TT0ZUX0dSQVBIX1NUQUJMRSlcbiAgICAgIC53aXRoUmVzb3VyY2VzKGJ1aWxkZXIgPT4ge1xuICAgICAgICBjbGFpbXNQcm92aWRlclJlc3VsdCA9IHRoaXMuYnVpbGRSZXNvdXJjZXMoYnVpbGRlciwgcHJvcHMpO1xuICAgICAgfSlcbiAgICAgIC53aXRoT3V0cHV0cyh7XG4gICAgICAgIGFwcElkOiAnQXBwbGljYXRpb24uYXBwSWQnLFxuICAgICAgICB0ZW5hbnRJZDogJ3RlbmFudCgpLnRlbmFudElkJyxcbiAgICAgICAgLi4uKHByb3BzLmVuYWJsZUF3c1Nlc3Npb25UYWdNYXBwaW5nID8ge1xuICAgICAgICAgIGZ1bmN0aW9uQXBwTmFtZTogJ0Z1bmN0aW9uYXBwLm5hbWUnLFxuICAgICAgICB9IDoge30pLFxuICAgICAgfSlcbiAgICAgIC5idWlsZCgpO1xuXG4gICAgY29uc3QgZGVwbG95bWVudCA9IG5ldyBiaWNlcC5CaWNlcERlcGxveW1lbnQodGhpcywgJ0RlcGxveW1lbnQnLCB7XG4gICAgICB0ZW1wbGF0ZTogdGVtcGxhdGUuc3ludGhlc2l6ZSgpLFxuICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHByb3BzLnJlc291cmNlR3JvdXBOYW1lLFxuICAgICAgYXp1cmVGZWRlcmF0ZWRDcmVkZW50aWFsczogcHJvcHMuZGVwbG95bWVudENyZWRlbnRpYWxzLFxuICAgICAgY2xvdWRmb3JtYXRpb25TdGFja0FybjogY2xvdWRmb3JtYXRpb25Bcm4sXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIGRlcGxveW1lbnRTcE9iamVjdElkOiBwcm9wcy5kZXBsb3ltZW50Q3JlZGVudGlhbHMuc3BPYmplY3RJZCxcbiAgICAgIH0sXG4gICAgICBmdW5jdGlvbkNvZGU6IGNsYWltc1Byb3ZpZGVyUmVzdWx0ID8ge1xuICAgICAgICBzM0J1Y2tldE5hbWU6IGNsYWltc1Byb3ZpZGVyUmVzdWx0LmZ1bmN0aW9uQ29kZUFzc2V0LnMzQnVja2V0TmFtZSxcbiAgICAgICAgczNPYmplY3RLZXk6IGNsYWltc1Byb3ZpZGVyUmVzdWx0LmZ1bmN0aW9uQ29kZUFzc2V0LnMzT2JqZWN0S2V5LFxuICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIGlmIChjbGFpbXNQcm92aWRlclJlc3VsdCkge1xuICAgICAgY2xhaW1zUHJvdmlkZXJSZXN1bHQuZnVuY3Rpb25Db2RlQXNzZXQuZ3JhbnRSZWFkKGRlcGxveW1lbnQubGFtYmRhUm9sZSk7XG4gICAgfVxuXG4gICAgdGhpcy5vdXRwdXRzID0ge307XG4gICAgb3V0cHV0S2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICB0aGlzLm91dHB1dHNba2V5XSA9IGRlcGxveW1lbnQuZ2V0T3V0cHV0KGtleSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkUmVzb3VyY2VzKFxuICAgIHRlbXBsYXRlOiBiaWNlcC5CaWNlcFRlbXBsYXRlLFxuICAgIHByb3BzOiBBenVyZUFkQXBwbGljYXRpb25GZWRlcmF0ZWRQcm9wcyxcbiAgKTogeyBmdW5jdGlvbkNvZGVBc3NldDogczNhc3NldHMuQXNzZXQgfSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYXBwUm9sZXMgPSBwcm9wcy5ncm91cHM/Lm1hcCgoZ3JvdXBOYW1lKSA9PiB7XG4gICAgICBjb25zdCByb2xlSWQgPSBgZ3VpZCgnJHtncm91cE5hbWV9LXJvbGUnKWA7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogcm9sZUlkLFxuICAgICAgICBkaXNwbGF5TmFtZTogZ3JvdXBOYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogYCR7Z3JvdXBOYW1lfSByb2xlIGZvciAke3Byb3BzLmFwcE5hbWV9YCxcbiAgICAgICAgdmFsdWU6IGdyb3VwTmFtZSxcbiAgICAgICAgYWxsb3dlZE1lbWJlclR5cGVzOiBbZ3JhcGguQWxsb3dlZE1lbWJlclR5cGUuVVNFUl0sXG4gICAgICAgIGlzRW5hYmxlZDogdHJ1ZSxcbiAgICAgIH07XG4gICAgfSkgfHwgW107XG5cbiAgICBjb25zdCBhcHBsaWNhdGlvbiA9IG5ldyBncmFwaC5BcHBsaWNhdGlvbih0ZW1wbGF0ZSwgJ2FwcGxpY2F0aW9uJywge1xuICAgICAgZGlzcGxheU5hbWU6IHByb3BzLmFwcE5hbWUsXG4gICAgICByZWRpcmVjdFVyaXM6IHByb3BzLnJlZGlyZWN0VXJpcyxcbiAgICAgIHNpZ25JbkF1ZGllbmNlOiBwcm9wcy5zaWduSW5BdWRpZW5jZSA/PyBncmFwaC5TaWduSW5BdWRpZW5jZS5BWlVSRV9BRF9NWV9PUkcsXG4gICAgICBhcHBSb2xlczogYXBwUm9sZXMsXG4gICAgICBvcHRpb25hbENsYWltczogYXBwUm9sZXMubGVuZ3RoID4gMCA/IHtcbiAgICAgICAgaWRUb2tlbjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdyb2xlcycsXG4gICAgICAgICAgICBlc3NlbnRpYWw6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4uKHByb3BzLmVuYWJsZUF3c1Nlc3Npb25UYWdNYXBwaW5nID8gW3tcbiAgICAgICAgICAgIG5hbWU6ICdodHRwczovL2F3cy5hbWF6b24uY29tL3RhZ3MvcHJpbmNpcGFsX3RhZ3MvUm9sZXMnLFxuICAgICAgICAgICAgZXNzZW50aWFsOiBmYWxzZSxcbiAgICAgICAgICAgIHNvdXJjZTogJ2N1c3RvbUNsYWltc1Byb3ZpZGVyJyxcbiAgICAgICAgICB9XSA6IFtdKSxcbiAgICAgICAgXSxcbiAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzZXJ2aWNlUHJpbmNpcGFsID0gbmV3IGdyYXBoLlNlcnZpY2VQcmluY2lwYWwodGVtcGxhdGUsICdzZXJ2aWNlUHJpbmNpcGFsJywge1xuICAgICAgYXBwbGljYXRpb246IGFwcGxpY2F0aW9uLFxuICAgICAgYXBwUm9sZUFzc2lnbm1lbnRSZXF1aXJlZDogZmFsc2UsXG4gICAgfSk7XG5cbiAgICBjb25zdCBmZWRlcmF0ZWRDcmVkZW50aWFsID0gbmV3IGdyYXBoLkZlZGVyYXRlZElkZW50aXR5Q3JlZGVudGlhbCh0ZW1wbGF0ZSwgJ2ZlZGVyYXRlZENyZWRlbnRpYWwnLCB7XG4gICAgICBhcHBsaWNhdGlvbjogYXBwbGljYXRpb24sXG4gICAgICBuYW1lOiBgJHtwcm9wcy5hcHBOYW1lfS1hd3MtY3JlZGVudGlhbGAsXG4gICAgICBpc3N1ZXI6IHByb3BzLnRydXN0ZWRUb2tlblJlcXVlc3Rlci5pc3N1ZXIsXG4gICAgICBzdWJqZWN0OiBwcm9wcy50cnVzdGVkVG9rZW5SZXF1ZXN0ZXIuc3ViLFxuICAgICAgYXVkaWVuY2VzOiBwcm9wcy50cnVzdGVkVG9rZW5SZXF1ZXN0ZXIuYXVkLFxuICAgICAgZGVzY3JpcHRpb246IGBGZWRlcmF0ZWQgY3JlZGVudGlhbCBmb3IgJHtwcm9wcy5hcHBOYW1lfSBBV1MgaW50ZWdyYXRpb25gLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLmdyb3Vwcykge1xuICAgICAgcHJvcHMuZ3JvdXBzLmZvckVhY2goKGdyb3VwTmFtZSkgPT4ge1xuICAgICAgICBjb25zdCBzYW5pdGl6ZWROYW1lID0gdGhpcy5zYW5pdGl6ZUlkZW50aWZpZXIoZ3JvdXBOYW1lKTtcblxuICAgICAgICBjb25zdCBncm91cCA9IG5ldyBncmFwaC5Hcm91cCh0ZW1wbGF0ZSwgYGdyb3VwJHtzYW5pdGl6ZWROYW1lfWAsIHtcbiAgICAgICAgICBkaXNwbGF5TmFtZTogZ3JvdXBOYW1lLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgJHtncm91cE5hbWV9IGdyb3VwIGZvciAke3Byb3BzLmFwcE5hbWV9YCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgYXBwUm9sZUlkID0gYGd1aWQoJyR7Z3JvdXBOYW1lfS1yb2xlJylgO1xuXG4gICAgICAgIGNvbnN0IGFzc2lnbm1lbnQgPSBuZXcgZ3JhcGguQXBwUm9sZUFzc2lnbm1lbnQodGVtcGxhdGUsIGBncm91cEFzc2lnbm1lbnQke3Nhbml0aXplZE5hbWV9YCwge1xuICAgICAgICAgIHJlc291cmNlU2VydmljZVByaW5jaXBhbDogc2VydmljZVByaW5jaXBhbCxcbiAgICAgICAgICBwcmluY2lwYWw6IGdyb3VwLFxuICAgICAgICAgIGFwcFJvbGVJZDogYXBwUm9sZUlkLFxuICAgICAgICB9KTtcblxuICAgICAgICBncm91cC5zeW50aGVzaXplKCk7XG4gICAgICAgIGFzc2lnbm1lbnQuc3ludGhlc2l6ZSgpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgYXBwbGljYXRpb24uc3ludGhlc2l6ZSgpO1xuICAgIHNlcnZpY2VQcmluY2lwYWwuc3ludGhlc2l6ZSgpO1xuICAgIGZlZGVyYXRlZENyZWRlbnRpYWwuc3ludGhlc2l6ZSgpO1xuXG4gICAgaWYgKCFwcm9wcy5lbmFibGVBd3NTZXNzaW9uVGFnTWFwcGluZykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5idWlsZEN1c3RvbUNsYWltc1Byb3ZpZGVyKHRlbXBsYXRlLCBwcm9wcyk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ3VzdG9tQ2xhaW1zUHJvdmlkZXIoXG4gICAgdGVtcGxhdGU6IGJpY2VwLkJpY2VwVGVtcGxhdGUsXG4gICAgcHJvcHM6IEF6dXJlQWRBcHBsaWNhdGlvbkZlZGVyYXRlZFByb3BzLFxuICApOiB7IGZ1bmN0aW9uQ29kZUFzc2V0OiBzM2Fzc2V0cy5Bc3NldCB9IHtcbiAgICB0ZW1wbGF0ZS5hZGRTdHJpbmdQYXJhbWV0ZXIoJ2xvY2F0aW9uJywgJ0F6dXJlIHJlZ2lvbiBmb3IgcmVzb3VyY2VzJywgXCInYXVzdHJhbGlhZWFzdCdcIik7XG4gICAgdGVtcGxhdGUuYWRkU3RyaW5nUGFyYW1ldGVyKCdkZXBsb3ltZW50U3BPYmplY3RJZCcsICdPYmplY3QgSUQgb2YgdGhlIFNQIGRlcGxveWluZyB0aGlzIHRlbXBsYXRlIChuZWVkcyBTdG9yYWdlIEJsb2IgRGF0YSBDb250cmlidXRvciknLCAnJyk7XG5cbiAgICBjb25zdCBuYW1lUHJlZml4ID0gcHJvcHMuYXBwTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHVuaXF1ZVN1ZmZpeCA9ICdzdWJzdHJpbmcodW5pcXVlU3RyaW5nKHJlc291cmNlR3JvdXAoKS5pZCksIDAsIDgpJztcblxuICAgIGNvbnN0IG1hbmFnZWRJZGVudGl0eSA9IG5ldyBhenVyZS5NYW5hZ2VkSWRlbnRpdHkodGVtcGxhdGUsICdtYW5hZ2VkSWRlbnRpdHknLCB7XG4gICAgICBuYW1lOiBgJyR7bmFtZVByZWZpeH0tY2xhaW1zLWlkZW50aXR5LVxcJHske3VuaXF1ZVN1ZmZpeH19J2AsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdG9yYWdlQWNjb3VudCA9IG5ldyBhenVyZS5TdG9yYWdlQWNjb3VudCh0ZW1wbGF0ZSwgJ3N0b3JhZ2VBY2NvdW50Jywge1xuICAgICAgbmFtZTogYCcke25hbWVQcmVmaXh9Y2xhaW1zXFwkeyR7dW5pcXVlU3VmZml4fX0nYCxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFwcFNlcnZpY2VQbGFuID0gbmV3IGF6dXJlLkFwcFNlcnZpY2VQbGFuKHRlbXBsYXRlLCAnYXBwU2VydmljZVBsYW4nLCB7XG4gICAgICBuYW1lOiBgJyR7bmFtZVByZWZpeH0tY2xhaW1zLXBsYW4tXFwkeyR7dW5pcXVlU3VmZml4fX0nYCxcbiAgICB9KTtcblxuICAgIGNvbnN0IGxvZ0FuYWx5dGljc1dvcmtzcGFjZSA9IG5ldyBhenVyZS5Mb2dBbmFseXRpY3NXb3Jrc3BhY2UodGVtcGxhdGUsICdsb2dBbmFseXRpY3NXb3Jrc3BhY2UnLCB7XG4gICAgICBuYW1lOiBgJyR7bmFtZVByZWZpeH0tY2xhaW1zLWxvZ3MtXFwkeyR7dW5pcXVlU3VmZml4fX0nYCxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFwcGxpY2F0aW9uSW5zaWdodHMgPSBuZXcgYXp1cmUuQXBwbGljYXRpb25JbnNpZ2h0cyh0ZW1wbGF0ZSwgJ2FwcGxpY2F0aW9uSW5zaWdodHMnLCB7XG4gICAgICBuYW1lOiBgJyR7bmFtZVByZWZpeH0tY2xhaW1zLWluc2lnaHRzLVxcJHske3VuaXF1ZVN1ZmZpeH19J2AsXG4gICAgICBsb2dBbmFseXRpY3NXb3Jrc3BhY2U6IGxvZ0FuYWx5dGljc1dvcmtzcGFjZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGZ1bmN0aW9uQXBwID0gbmV3IGF6dXJlLkZ1bmN0aW9uQXBwKHRlbXBsYXRlLCAnZnVuY3Rpb25BcHAnLCB7XG4gICAgICBuYW1lOiBgJyR7bmFtZVByZWZpeH0tY2xhaW1zLWZ1bmMtXFwkeyR7dW5pcXVlU3VmZml4fX0nYCxcbiAgICAgIG1hbmFnZWRJZGVudGl0eTogbWFuYWdlZElkZW50aXR5LFxuICAgICAgYXBwU2VydmljZVBsYW46IGFwcFNlcnZpY2VQbGFuLFxuICAgICAgc3RvcmFnZUFjY291bnQ6IHN0b3JhZ2VBY2NvdW50LFxuICAgICAgYXBwbGljYXRpb25JbnNpZ2h0czogYXBwbGljYXRpb25JbnNpZ2h0cyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJvbGVBc3NpZ25tZW50ID0gbmV3IGF6dXJlLlJvbGVBc3NpZ25tZW50KHRlbXBsYXRlLCAnbWFuYWdlZElkZW50aXR5Q29udHJpYnV0b3InLCB7XG4gICAgICBuYW1lOiBgZ3VpZCgnJHtwcm9wcy5hcHBOYW1lfS1taS1jb250cmlidXRvcicpYCxcbiAgICAgIHJvbGVEZWZpbml0aW9uSWQ6IGF6dXJlLkF6dXJlQnVpbHRJblJvbGUuV0VCU0lURV9DT05UUklCVVRPUixcbiAgICAgIHByaW5jaXBhbElkOiBtYW5hZ2VkSWRlbnRpdHksXG4gICAgfSk7XG5cbiAgICBjb25zdCBzcEJsb2JSb2xlQXNzaWdubWVudCA9IG5ldyBhenVyZS5Sb2xlQXNzaWdubWVudCh0ZW1wbGF0ZSwgJ2RlcGxveW1lbnRTcEJsb2JDb250cmlidXRvcicsIHtcbiAgICAgIG5hbWU6IGBndWlkKCcke3Byb3BzLmFwcE5hbWV9LXNwLWJsb2ItY29udHJpYnV0b3InKWAsXG4gICAgICByb2xlRGVmaW5pdGlvbklkOiBhenVyZS5BenVyZUJ1aWx0SW5Sb2xlLlNUT1JBR0VfQkxPQl9EQVRBX0NPTlRSSUJVVE9SLFxuICAgICAgcHJpbmNpcGFsSWQ6ICdkZXBsb3ltZW50U3BPYmplY3RJZCcsXG4gICAgfSk7XG4gICAgc3BCbG9iUm9sZUFzc2lnbm1lbnQuYWRkRGVwZW5kZW5jeShzdG9yYWdlQWNjb3VudCk7XG5cbiAgICBjb25zdCBmdW5jdGlvbkNvZGVBc3NldCA9IG5ldyBzM2Fzc2V0cy5Bc3NldCh0aGlzLCAnRnVuY3Rpb25Db2RlQXNzZXQnLCB7XG4gICAgICBwYXRoOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnYXp1cmUtZnVuY3Rpb25zJywgJ2N1c3RvbS1jbGFpbXMtcHJvdmlkZXInKSxcbiAgICAgIGJ1bmRsaW5nOiB7XG4gICAgICAgIGltYWdlOiBjb3JlLkRvY2tlckltYWdlLmZyb21SZWdpc3RyeSgncHl0aG9uOjMuMTItc2xpbScpLFxuICAgICAgICBjb21tYW5kOiBbXG4gICAgICAgICAgJ2Jhc2gnLCAnLWMnLFxuICAgICAgICAgICdwaXAgaW5zdGFsbCAtciAvYXNzZXQtaW5wdXQvcmVxdWlyZW1lbnRzLnR4dCAtdCAvYXNzZXQtb3V0cHV0LyAmJiBjcCAvYXNzZXQtaW5wdXQvZnVuY3Rpb25fYXBwLnB5IC9hc3NldC1pbnB1dC9ob3N0Lmpzb24gL2Fzc2V0LWlucHV0L3JlcXVpcmVtZW50cy50eHQgL2Fzc2V0LW91dHB1dC8nLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGZ1bmN0aW9uQXBwUmVnaXN0cmF0aW9uID0gbmV3IGdyYXBoLkFwcGxpY2F0aW9uKHRlbXBsYXRlLCAnZnVuY3Rpb25BcHBSZWdpc3RyYXRpb24nLCB7XG4gICAgICBkaXNwbGF5TmFtZTogYCR7bmFtZVByZWZpeH0tY2xhaW1zLWZ1bmMtYXBwYCxcbiAgICAgIHJlZGlyZWN0VXJpczogW10sXG4gICAgICByZXF1aXJlZFJlc291cmNlQWNjZXNzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICByZXNvdXJjZUFwcElkOiBncmFwaC5SZXNvdXJjZUFwcElkLk1JQ1JPU09GVF9HUkFQSCxcbiAgICAgICAgICByZXNvdXJjZUFjY2VzczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogZ3JhcGguTWljcm9zb2Z0R3JhcGhQZXJtaXNzaW9uLkNVU1RPTV9BVVRIX0VYVF9SRUNFSVZFX1BBWUxPQUQsXG4gICAgICAgICAgICAgIHR5cGU6IGdyYXBoLlBlcm1pc3Npb25UeXBlLlJPTEUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZ3JhcGhTZXJ2aWNlUHJpbmNpcGFsID0gbmV3IGdyYXBoLkV4aXN0aW5nU2VydmljZVByaW5jaXBhbCh0ZW1wbGF0ZSwgJ2dyYXBoU2VydmljZVByaW5jaXBhbCcsIHtcbiAgICAgIGFwcElkOiAnMDAwMDAwMDMtMDAwMC0wMDAwLWMwMDAtMDAwMDAwMDAwMDAwJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IG1pUG9saWN5UmVhZFBlcm1pc3Npb24gPSBuZXcgZ3JhcGguQXBwUm9sZUFzc2lnbm1lbnQodGVtcGxhdGUsICdtaVBvbGljeVJlYWRQZXJtaXNzaW9uJywge1xuICAgICAgcmVzb3VyY2VTZXJ2aWNlUHJpbmNpcGFsOiBncmFwaFNlcnZpY2VQcmluY2lwYWwsXG4gICAgICBwcmluY2lwYWw6IGAke21hbmFnZWRJZGVudGl0eS5wcmluY2lwYWxJZH1gLFxuICAgICAgYXBwUm9sZUlkOiAnXFwnMjQ2ZGQwZDUtNWJkMC00ZGVmLTk0MGItMDQyMTAzMGE1YjY4XFwnJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IG1pUG9saWN5UGVybWlzc2lvbiA9IG5ldyBncmFwaC5BcHBSb2xlQXNzaWdubWVudCh0ZW1wbGF0ZSwgJ21pUG9saWN5UGVybWlzc2lvbicsIHtcbiAgICAgIHJlc291cmNlU2VydmljZVByaW5jaXBhbDogZ3JhcGhTZXJ2aWNlUHJpbmNpcGFsLFxuICAgICAgcHJpbmNpcGFsOiBgJHttYW5hZ2VkSWRlbnRpdHkucHJpbmNpcGFsSWR9YCxcbiAgICAgIGFwcFJvbGVJZDogJ1xcJ2JlNzQxNjRiLWNmZjEtNDkxYy04NzQxLWU2NzFjYjUzNmUxM1xcJycsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtaUN1c3RvbUF1dGhFeHRQZXJtaXNzaW9uID0gbmV3IGdyYXBoLkFwcFJvbGVBc3NpZ25tZW50KHRlbXBsYXRlLCAnbWlDdXN0b21BdXRoRXh0UGVybWlzc2lvbicsIHtcbiAgICAgIHJlc291cmNlU2VydmljZVByaW5jaXBhbDogZ3JhcGhTZXJ2aWNlUHJpbmNpcGFsLFxuICAgICAgcHJpbmNpcGFsOiBgJHttYW5hZ2VkSWRlbnRpdHkucHJpbmNpcGFsSWR9YCxcbiAgICAgIGFwcFJvbGVJZDogJ1xcJ2MyNjY3OTY3LTcwNTAtNGU3ZS1iMDU5LTRjYmJiMzgxMWQwM1xcJycsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtaUV2ZW50TGlzdGVuZXJQZXJtaXNzaW9uID0gbmV3IGdyYXBoLkFwcFJvbGVBc3NpZ25tZW50KHRlbXBsYXRlLCAnbWlFdmVudExpc3RlbmVyUGVybWlzc2lvbicsIHtcbiAgICAgIHJlc291cmNlU2VydmljZVByaW5jaXBhbDogZ3JhcGhTZXJ2aWNlUHJpbmNpcGFsLFxuICAgICAgcHJpbmNpcGFsOiBgJHttYW5hZ2VkSWRlbnRpdHkucHJpbmNpcGFsSWR9YCxcbiAgICAgIGFwcFJvbGVJZDogJ1xcJzBlZGY1ZTllLTRjZTgtNDY4YS04NDMyLWQwODYzMWQxOGM0M1xcJycsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtaUFwcFJlYWRXcml0ZVBlcm1pc3Npb24gPSBuZXcgZ3JhcGguQXBwUm9sZUFzc2lnbm1lbnQodGVtcGxhdGUsICdtaUFwcFJlYWRXcml0ZVBlcm1pc3Npb24nLCB7XG4gICAgICByZXNvdXJjZVNlcnZpY2VQcmluY2lwYWw6IGdyYXBoU2VydmljZVByaW5jaXBhbCxcbiAgICAgIHByaW5jaXBhbDogYCR7bWFuYWdlZElkZW50aXR5LnByaW5jaXBhbElkfWAsXG4gICAgICBhcHBSb2xlSWQ6IGAnJHtncmFwaC5NaWNyb3NvZnRHcmFwaFBlcm1pc3Npb24uQVBQTElDQVRJT05fUkVBRF9XUklURV9BTEx9J2AsXG4gICAgfSk7XG5cbiAgICBjb25zdCB3aXJlQ3VzdG9tQ2xhaW1zRXh0ZW5zaW9uID0gbmV3IGF6dXJlLkRlcGxveW1lbnRTY3JpcHQodGVtcGxhdGUsICd3aXJlQ3VzdG9tQ2xhaW1zRXh0ZW5zaW9uJywge1xuICAgICAgbmFtZTogXCInd2lyZS1jdXN0b20tY2xhaW1zLWV4dGVuc2lvbidcIixcbiAgICAgIG1hbmFnZWRJZGVudGl0eTogbWFuYWdlZElkZW50aXR5LFxuICAgICAgc2NyaXB0Q29udGVudDogZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihfX2Rpcm5hbWUsICdzY3JpcHRzJywgJ3dpcmUtY3VzdG9tLWNsYWltcy1leHRlbnNpb24uc2gnKSwgJ3V0ZjgnKSxcbiAgICAgIGVudmlyb25tZW50VmFyaWFibGVzOiB7XG4gICAgICAgIEZVTkNUSU9OX0hPU1ROQU1FOiAnRnVuY3Rpb25hcHAucHJvcGVydGllcy5kZWZhdWx0SG9zdE5hbWUnLFxuICAgICAgICBGVU5DVElPTl9BUFBfSUQ6ICdGdW5jdGlvbmFwcHJlZ2lzdHJhdGlvbi5hcHBJZCcsXG4gICAgICAgIENMRl9BUFBfSUQ6ICdBcHBsaWNhdGlvbi5hcHBJZCcsXG4gICAgICAgIEVYVF9ESVNQTEFZX05BTUU6IGAnJHtuYW1lUHJlZml4fS1jbGFpbXMtcHJvdmlkZXInYCxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgd2lyZUN1c3RvbUNsYWltc0V4dGVuc2lvbi5hZGREZXBlbmRlbmN5KG1pUG9saWN5UmVhZFBlcm1pc3Npb24pO1xuICAgIHdpcmVDdXN0b21DbGFpbXNFeHRlbnNpb24uYWRkRGVwZW5kZW5jeShtaVBvbGljeVBlcm1pc3Npb24pO1xuICAgIHdpcmVDdXN0b21DbGFpbXNFeHRlbnNpb24uYWRkRGVwZW5kZW5jeShtaUN1c3RvbUF1dGhFeHRQZXJtaXNzaW9uKTtcbiAgICB3aXJlQ3VzdG9tQ2xhaW1zRXh0ZW5zaW9uLmFkZERlcGVuZGVuY3kobWlFdmVudExpc3RlbmVyUGVybWlzc2lvbik7XG4gICAgd2lyZUN1c3RvbUNsYWltc0V4dGVuc2lvbi5hZGREZXBlbmRlbmN5KG1pQXBwUmVhZFdyaXRlUGVybWlzc2lvbik7XG5cbiAgICBtYW5hZ2VkSWRlbnRpdHkuc3ludGhlc2l6ZSgpO1xuICAgIHN0b3JhZ2VBY2NvdW50LnN5bnRoZXNpemUoKTtcbiAgICBhcHBTZXJ2aWNlUGxhbi5zeW50aGVzaXplKCk7XG4gICAgbG9nQW5hbHl0aWNzV29ya3NwYWNlLnN5bnRoZXNpemUoKTtcbiAgICBhcHBsaWNhdGlvbkluc2lnaHRzLnN5bnRoZXNpemUoKTtcbiAgICBmdW5jdGlvbkFwcC5zeW50aGVzaXplKCk7XG4gICAgcm9sZUFzc2lnbm1lbnQuc3ludGhlc2l6ZSgpO1xuICAgIHNwQmxvYlJvbGVBc3NpZ25tZW50LnN5bnRoZXNpemUoKTtcbiAgICBmdW5jdGlvbkFwcFJlZ2lzdHJhdGlvbi5zeW50aGVzaXplKCk7XG4gICAgZ3JhcGhTZXJ2aWNlUHJpbmNpcGFsLnN5bnRoZXNpemUoKTtcbiAgICBtaVBvbGljeVJlYWRQZXJtaXNzaW9uLnN5bnRoZXNpemUoKTtcbiAgICBtaVBvbGljeVBlcm1pc3Npb24uc3ludGhlc2l6ZSgpO1xuICAgIG1pQ3VzdG9tQXV0aEV4dFBlcm1pc3Npb24uc3ludGhlc2l6ZSgpO1xuICAgIG1pRXZlbnRMaXN0ZW5lclBlcm1pc3Npb24uc3ludGhlc2l6ZSgpO1xuICAgIG1pQXBwUmVhZFdyaXRlUGVybWlzc2lvbi5zeW50aGVzaXplKCk7XG4gICAgd2lyZUN1c3RvbUNsYWltc0V4dGVuc2lvbi5zeW50aGVzaXplKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZnVuY3Rpb25Db2RlQXNzZXQ6IGZ1bmN0aW9uQ29kZUFzc2V0LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHNhbml0aXplSWRlbnRpZmllcihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBuYW1lXG4gICAgICAuc3BsaXQoL1stX1xcc10rLylcbiAgICAgIC5tYXAod29yZCA9PiB3b3JkLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKS50b0xvd2VyQ2FzZSgpKVxuICAgICAgLmpvaW4oJycpXG4gICAgICAucmVwbGFjZSgvW15hLXpBLVowLTldL2csICcnKVxuICAgICAgLnJlcGxhY2UoL15bMC05XS8sICdfJCYnKTtcbiAgfVxufVxuIl19
@@ -0,0 +1 @@
1
+ export * from './azureAdApplicationFederated';
@@ -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("./azureAdApplicationFederated"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmljZXAvcGF0dGVybnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdFQUE4QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXp1cmVBZEFwcGxpY2F0aW9uRmVkZXJhdGVkJztcbiJdfQ==
@@ -0,0 +1,11 @@
1
+ import { BicepTemplate } from '../../deploy/template';
2
+ import { BicepConstruct } from '../graph/bicepConstruct';
3
+ export interface AppServicePlanProps {
4
+ readonly name: string;
5
+ }
6
+ export declare class AppServicePlan extends BicepConstruct {
7
+ private props;
8
+ readonly id: string;
9
+ constructor(template: BicepTemplate, resourceName: string, props: AppServicePlanProps);
10
+ synthesize(): void;
11
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppServicePlan = void 0;
4
+ const bicepConstruct_1 = require("../graph/bicepConstruct");
5
+ class AppServicePlan extends bicepConstruct_1.BicepConstruct {
6
+ constructor(template, resourceName, props) {
7
+ super(template, resourceName);
8
+ this.props = props;
9
+ const pascalName = this.toPascalCase(resourceName);
10
+ this.id = `${pascalName}.id`;
11
+ }
12
+ synthesize() {
13
+ this.template.addResource(this.resourceName, {
14
+ type: 'Microsoft.Web/serverfarms',
15
+ apiVersion: '2022-09-01',
16
+ name: this.props.name,
17
+ location: 'location',
18
+ sku: { name: 'Y1', tier: 'Dynamic' },
19
+ properties: { reserved: true },
20
+ });
21
+ }
22
+ }
23
+ exports.AppServicePlan = AppServicePlan;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwU2VydmljZVBsYW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmljZXAvcmVzb3VyY2VzL2F6dXJlL2FwcFNlcnZpY2VQbGFuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDREQUF5RDtBQU16RCxNQUFhLGNBQWUsU0FBUSwrQkFBYztJQUdoRCxZQUFZLFFBQXVCLEVBQUUsWUFBb0IsRUFBVSxLQUEwQjtRQUMzRixLQUFLLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRG1DLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBRTNGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLFVBQVUsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUMzQyxJQUFJLEVBQUUsMkJBQTJCO1lBQ2pDLFVBQVUsRUFBRSxZQUFZO1lBQ3hCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7WUFDckIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3BDLFVBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7U0FDL0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBbkJELHdDQW1CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpY2VwVGVtcGxhdGUgfSBmcm9tICcuLi8uLi9kZXBsb3kvdGVtcGxhdGUnO1xuaW1wb3J0IHsgQmljZXBDb25zdHJ1Y3QgfSBmcm9tICcuLi9ncmFwaC9iaWNlcENvbnN0cnVjdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwU2VydmljZVBsYW5Qcm9wcyB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEFwcFNlcnZpY2VQbGFuIGV4dGVuZHMgQmljZXBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcih0ZW1wbGF0ZTogQmljZXBUZW1wbGF0ZSwgcmVzb3VyY2VOYW1lOiBzdHJpbmcsIHByaXZhdGUgcHJvcHM6IEFwcFNlcnZpY2VQbGFuUHJvcHMpIHtcbiAgICBzdXBlcih0ZW1wbGF0ZSwgcmVzb3VyY2VOYW1lKTtcbiAgICBjb25zdCBwYXNjYWxOYW1lID0gdGhpcy50b1Bhc2NhbENhc2UocmVzb3VyY2VOYW1lKTtcbiAgICB0aGlzLmlkID0gYCR7cGFzY2FsTmFtZX0uaWRgO1xuICB9XG5cbiAgc3ludGhlc2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlLmFkZFJlc291cmNlKHRoaXMucmVzb3VyY2VOYW1lLCB7XG4gICAgICB0eXBlOiAnTWljcm9zb2Z0LldlYi9zZXJ2ZXJmYXJtcycsXG4gICAgICBhcGlWZXJzaW9uOiAnMjAyMi0wOS0wMScsXG4gICAgICBuYW1lOiB0aGlzLnByb3BzLm5hbWUsXG4gICAgICBsb2NhdGlvbjogJ2xvY2F0aW9uJyxcbiAgICAgIHNrdTogeyBuYW1lOiAnWTEnLCB0aWVyOiAnRHluYW1pYycgfSxcbiAgICAgIHByb3BlcnRpZXM6IHsgcmVzZXJ2ZWQ6IHRydWUgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,13 @@
1
+ import { LogAnalyticsWorkspace } from './logAnalyticsWorkspace';
2
+ import { BicepTemplate } from '../../deploy/template';
3
+ import { BicepConstruct } from '../graph/bicepConstruct';
4
+ export interface ApplicationInsightsProps {
5
+ readonly name: string;
6
+ readonly logAnalyticsWorkspace: LogAnalyticsWorkspace;
7
+ }
8
+ export declare class ApplicationInsights extends BicepConstruct {
9
+ private props;
10
+ readonly connectionString: string;
11
+ constructor(template: BicepTemplate, resourceName: string, props: ApplicationInsightsProps);
12
+ synthesize(): void;
13
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApplicationInsights = void 0;
4
+ const bicepConstruct_1 = require("../graph/bicepConstruct");
5
+ class ApplicationInsights extends bicepConstruct_1.BicepConstruct {
6
+ constructor(template, resourceName, props) {
7
+ super(template, resourceName);
8
+ this.props = props;
9
+ const pascalName = this.toPascalCase(resourceName);
10
+ this.connectionString = `${pascalName}.properties.ConnectionString`;
11
+ }
12
+ synthesize() {
13
+ this.template.addResource(this.resourceName, {
14
+ type: 'Microsoft.Insights/components',
15
+ apiVersion: '2020-02-02',
16
+ name: this.props.name,
17
+ location: 'location',
18
+ kind: 'web',
19
+ properties: {
20
+ Application_Type: 'web',
21
+ WorkspaceResourceId: `${this.props.logAnalyticsWorkspace.id}`,
22
+ },
23
+ });
24
+ }
25
+ }
26
+ exports.ApplicationInsights = ApplicationInsights;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25JbnNpZ2h0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaWNlcC9yZXNvdXJjZXMvYXp1cmUvYXBwbGljYXRpb25JbnNpZ2h0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw0REFBeUQ7QUFPekQsTUFBYSxtQkFBb0IsU0FBUSwrQkFBYztJQUdyRCxZQUFZLFFBQXVCLEVBQUUsWUFBb0IsRUFBVSxLQUErQjtRQUNoRyxLQUFLLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRG1DLFVBQUssR0FBTCxLQUFLLENBQTBCO1FBRWhHLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsVUFBVSw4QkFBOEIsQ0FBQztJQUN0RSxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDM0MsSUFBSSxFQUFFLCtCQUErQjtZQUNyQyxVQUFVLEVBQUUsWUFBWTtZQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQ3JCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLElBQUksRUFBRSxLQUFLO1lBQ1gsVUFBVSxFQUFFO2dCQUNWLGdCQUFnQixFQUFFLEtBQUs7Z0JBQ3ZCLG1CQUFtQixFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLEVBQUU7YUFDOUQ7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF0QkQsa0RBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nQW5hbHl0aWNzV29ya3NwYWNlIH0gZnJvbSAnLi9sb2dBbmFseXRpY3NXb3Jrc3BhY2UnO1xuaW1wb3J0IHsgQmljZXBUZW1wbGF0ZSB9IGZyb20gJy4uLy4uL2RlcGxveS90ZW1wbGF0ZSc7XG5pbXBvcnQgeyBCaWNlcENvbnN0cnVjdCB9IGZyb20gJy4uL2dyYXBoL2JpY2VwQ29uc3RydWN0JztcblxuZXhwb3J0IGludGVyZmFjZSBBcHBsaWNhdGlvbkluc2lnaHRzUHJvcHMge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxvZ0FuYWx5dGljc1dvcmtzcGFjZTogTG9nQW5hbHl0aWNzV29ya3NwYWNlO1xufVxuXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25JbnNpZ2h0cyBleHRlbmRzIEJpY2VwQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25TdHJpbmc6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcih0ZW1wbGF0ZTogQmljZXBUZW1wbGF0ZSwgcmVzb3VyY2VOYW1lOiBzdHJpbmcsIHByaXZhdGUgcHJvcHM6IEFwcGxpY2F0aW9uSW5zaWdodHNQcm9wcykge1xuICAgIHN1cGVyKHRlbXBsYXRlLCByZXNvdXJjZU5hbWUpO1xuICAgIGNvbnN0IHBhc2NhbE5hbWUgPSB0aGlzLnRvUGFzY2FsQ2FzZShyZXNvdXJjZU5hbWUpO1xuICAgIHRoaXMuY29ubmVjdGlvblN0cmluZyA9IGAke3Bhc2NhbE5hbWV9LnByb3BlcnRpZXMuQ29ubmVjdGlvblN0cmluZ2A7XG4gIH1cblxuICBzeW50aGVzaXplKCk6IHZvaWQge1xuICAgIHRoaXMudGVtcGxhdGUuYWRkUmVzb3VyY2UodGhpcy5yZXNvdXJjZU5hbWUsIHtcbiAgICAgIHR5cGU6ICdNaWNyb3NvZnQuSW5zaWdodHMvY29tcG9uZW50cycsXG4gICAgICBhcGlWZXJzaW9uOiAnMjAyMC0wMi0wMicsXG4gICAgICBuYW1lOiB0aGlzLnByb3BzLm5hbWUsXG4gICAgICBsb2NhdGlvbjogJ2xvY2F0aW9uJyxcbiAgICAgIGtpbmQ6ICd3ZWInLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBBcHBsaWNhdGlvbl9UeXBlOiAnd2ViJyxcbiAgICAgICAgV29ya3NwYWNlUmVzb3VyY2VJZDogYCR7dGhpcy5wcm9wcy5sb2dBbmFseXRpY3NXb3Jrc3BhY2UuaWR9YCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { ManagedIdentity } from './managedIdentity';
2
+ import { BicepTemplate } from '../../deploy/template';
3
+ import { BicepConstruct } from '../graph/bicepConstruct';
4
+ export interface DeploymentScriptProps {
5
+ readonly name: string;
6
+ readonly managedIdentity: ManagedIdentity;
7
+ readonly scriptContent: string;
8
+ readonly forceUpdateTag?: string;
9
+ readonly environmentVariables?: Record<string, string>;
10
+ readonly secureEnvironmentVariables?: Record<string, string>;
11
+ }
12
+ export declare class DeploymentScript extends BicepConstruct {
13
+ readonly props: DeploymentScriptProps;
14
+ constructor(template: BicepTemplate, resourceName: string, props: DeploymentScriptProps);
15
+ synthesize(): void;
16
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeploymentScript = void 0;
4
+ const bicepConstruct_1 = require("../graph/bicepConstruct");
5
+ class DeploymentScript extends bicepConstruct_1.BicepConstruct {
6
+ constructor(template, resourceName, props) {
7
+ super(template, resourceName);
8
+ this.props = props;
9
+ }
10
+ synthesize() {
11
+ const envVars = this.props.environmentVariables || {};
12
+ const secureEnvVars = this.props.secureEnvironmentVariables || {};
13
+ const envList = [
14
+ ...Object.entries(envVars).map(([name, value]) => ({ name: `'${name}'`, value: value })),
15
+ ...Object.entries(secureEnvVars).map(([name, value]) => ({ name: `'${name}'`, secureValue: value })),
16
+ ];
17
+ this.template.addResource(this.resourceName, {
18
+ type: 'Microsoft.Resources/deploymentScripts',
19
+ apiVersion: '2023-08-01',
20
+ name: this.props.name,
21
+ location: 'location',
22
+ kind: 'AzureCLI',
23
+ identity: {
24
+ type: 'UserAssigned',
25
+ userAssignedIdentities: {
26
+ [`'\${${this.props.managedIdentity.id}}'`]: {},
27
+ },
28
+ },
29
+ properties: {
30
+ azCliVersion: "'2.67.0'",
31
+ retentionInterval: "'PT1H'",
32
+ timeout: "'PT10M'",
33
+ cleanupPreference: "'OnExpiration'",
34
+ forceUpdateTag: this.props.forceUpdateTag,
35
+ scriptContent: this.props.scriptContent,
36
+ environmentVariables: envList.length > 0 ? envList : undefined,
37
+ },
38
+ dependsOn: this.explicitDependencies.length > 0 ? this.explicitDependencies : undefined,
39
+ });
40
+ }
41
+ }
42
+ exports.DeploymentScript = DeploymentScript;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95bWVudFNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaWNlcC9yZXNvdXJjZXMvYXp1cmUvZGVwbG95bWVudFNjcmlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw0REFBeUQ7QUFXekQsTUFBYSxnQkFBaUIsU0FBUSwrQkFBYztJQUNsRCxZQUFZLFFBQXVCLEVBQUUsWUFBb0IsRUFBa0IsS0FBNEI7UUFDckcsS0FBSyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUQyQyxVQUFLLEdBQUwsS0FBSyxDQUF1QjtJQUV2RyxDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFDO1FBQ3RELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsMEJBQTBCLElBQUksRUFBRSxDQUFDO1FBRWxFLE1BQU0sT0FBTyxHQUFHO1lBQ2QsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDeEYsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDckcsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDM0MsSUFBSSxFQUFFLHVDQUF1QztZQUM3QyxVQUFVLEVBQUUsWUFBWTtZQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQ3JCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLElBQUksRUFBRSxVQUFVO1lBQ2hCLFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsY0FBYztnQkFDcEIsc0JBQXNCLEVBQUU7b0JBQ3RCLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7aUJBQy9DO2FBQ0Y7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFLFVBQVU7Z0JBQ3hCLGlCQUFpQixFQUFFLFFBQVE7Z0JBQzNCLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixpQkFBaUIsRUFBRSxnQkFBZ0I7Z0JBQ25DLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7Z0JBQ3pDLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWE7Z0JBQ3ZDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDL0Q7WUFDRCxTQUFTLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN4RixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF0Q0QsNENBc0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFuYWdlZElkZW50aXR5IH0gZnJvbSAnLi9tYW5hZ2VkSWRlbnRpdHknO1xuaW1wb3J0IHsgQmljZXBUZW1wbGF0ZSB9IGZyb20gJy4uLy4uL2RlcGxveS90ZW1wbGF0ZSc7XG5pbXBvcnQgeyBCaWNlcENvbnN0cnVjdCB9IGZyb20gJy4uL2dyYXBoL2JpY2VwQ29uc3RydWN0JztcblxuZXhwb3J0IGludGVyZmFjZSBEZXBsb3ltZW50U2NyaXB0UHJvcHMge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1hbmFnZWRJZGVudGl0eTogTWFuYWdlZElkZW50aXR5O1xuICByZWFkb25seSBzY3JpcHRDb250ZW50OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZvcmNlVXBkYXRlVGFnPzogc3RyaW5nO1xuICByZWFkb25seSBlbnZpcm9ubWVudFZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHJlYWRvbmx5IHNlY3VyZUVudmlyb25tZW50VmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuZXhwb3J0IGNsYXNzIERlcGxveW1lbnRTY3JpcHQgZXh0ZW5kcyBCaWNlcENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHRlbXBsYXRlOiBCaWNlcFRlbXBsYXRlLCByZXNvdXJjZU5hbWU6IHN0cmluZywgcHVibGljIHJlYWRvbmx5IHByb3BzOiBEZXBsb3ltZW50U2NyaXB0UHJvcHMpIHtcbiAgICBzdXBlcih0ZW1wbGF0ZSwgcmVzb3VyY2VOYW1lKTtcbiAgfVxuXG4gIHN5bnRoZXNpemUoKTogdm9pZCB7XG4gICAgY29uc3QgZW52VmFycyA9IHRoaXMucHJvcHMuZW52aXJvbm1lbnRWYXJpYWJsZXMgfHwge307XG4gICAgY29uc3Qgc2VjdXJlRW52VmFycyA9IHRoaXMucHJvcHMuc2VjdXJlRW52aXJvbm1lbnRWYXJpYWJsZXMgfHwge307XG5cbiAgICBjb25zdCBlbnZMaXN0ID0gW1xuICAgICAgLi4uT2JqZWN0LmVudHJpZXMoZW52VmFycykubWFwKChbbmFtZSwgdmFsdWVdKSA9PiAoeyBuYW1lOiBgJyR7bmFtZX0nYCwgdmFsdWU6IHZhbHVlIH0pKSxcbiAgICAgIC4uLk9iamVjdC5lbnRyaWVzKHNlY3VyZUVudlZhcnMpLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gKHsgbmFtZTogYCcke25hbWV9J2AsIHNlY3VyZVZhbHVlOiB2YWx1ZSB9KSksXG4gICAgXTtcblxuICAgIHRoaXMudGVtcGxhdGUuYWRkUmVzb3VyY2UodGhpcy5yZXNvdXJjZU5hbWUsIHtcbiAgICAgIHR5cGU6ICdNaWNyb3NvZnQuUmVzb3VyY2VzL2RlcGxveW1lbnRTY3JpcHRzJyxcbiAgICAgIGFwaVZlcnNpb246ICcyMDIzLTA4LTAxJyxcbiAgICAgIG5hbWU6IHRoaXMucHJvcHMubmFtZSxcbiAgICAgIGxvY2F0aW9uOiAnbG9jYXRpb24nLFxuICAgICAga2luZDogJ0F6dXJlQ0xJJyxcbiAgICAgIGlkZW50aXR5OiB7XG4gICAgICAgIHR5cGU6ICdVc2VyQXNzaWduZWQnLFxuICAgICAgICB1c2VyQXNzaWduZWRJZGVudGl0aWVzOiB7XG4gICAgICAgICAgW2AnXFwkeyR7dGhpcy5wcm9wcy5tYW5hZ2VkSWRlbnRpdHkuaWR9fSdgXToge30sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBhekNsaVZlcnNpb246IFwiJzIuNjcuMCdcIixcbiAgICAgICAgcmV0ZW50aW9uSW50ZXJ2YWw6IFwiJ1BUMUgnXCIsXG4gICAgICAgIHRpbWVvdXQ6IFwiJ1BUMTBNJ1wiLFxuICAgICAgICBjbGVhbnVwUHJlZmVyZW5jZTogXCInT25FeHBpcmF0aW9uJ1wiLFxuICAgICAgICBmb3JjZVVwZGF0ZVRhZzogdGhpcy5wcm9wcy5mb3JjZVVwZGF0ZVRhZyxcbiAgICAgICAgc2NyaXB0Q29udGVudDogdGhpcy5wcm9wcy5zY3JpcHRDb250ZW50LFxuICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlczogZW52TGlzdC5sZW5ndGggPiAwID8gZW52TGlzdCA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICBkZXBlbmRzT246IHRoaXMuZXhwbGljaXREZXBlbmRlbmNpZXMubGVuZ3RoID4gMCA/IHRoaXMuZXhwbGljaXREZXBlbmRlbmNpZXMgOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { ApplicationInsights } from './applicationInsights';
2
+ import { AppServicePlan } from './appServicePlan';
3
+ import { ManagedIdentity } from './managedIdentity';
4
+ import { StorageAccount } from './storageAccount';
5
+ import { BicepTemplate } from '../../deploy/template';
6
+ import { BicepConstruct } from '../graph/bicepConstruct';
7
+ export interface FunctionAppProps {
8
+ readonly name: string;
9
+ readonly managedIdentity: ManagedIdentity;
10
+ readonly appServicePlan: AppServicePlan;
11
+ readonly storageAccount: StorageAccount;
12
+ readonly applicationInsights?: ApplicationInsights;
13
+ }
14
+ export declare class FunctionApp extends BicepConstruct {
15
+ private props;
16
+ readonly name: string;
17
+ readonly defaultHostName: string;
18
+ constructor(template: BicepTemplate, resourceName: string, props: FunctionAppProps);
19
+ synthesize(): void;
20
+ }