-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathazureClients.ts
More file actions
36 lines (29 loc) · 2.42 KB
/
azureClients.ts
File metadata and controls
36 lines (29 loc) · 2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { ContainerAppsAPIClient } from "@azure/arm-appcontainers";
import { ContainerRegistryManagementClient, ContainerRegistryManagementModels } from '@azure/arm-containerregistry';
import { OperationalInsightsManagementClient } from '@azure/arm-operationalinsights';
import { ContainerRegistryClient, KnownContainerRegistryAudience } from '@azure/container-registry';
import { AzExtClientContext, createAzureClient, parseClientContext } from '@microsoft/vscode-azext-azureutils';
// Lazy-load @azure packages to improve startup performance.
// NOTE: The client is the only import that matters, the rest of the types disappear when compiled to JavaScript
export async function createContainerAppsAPIClient(context: AzExtClientContext): Promise<ContainerAppsAPIClient> {
return createAzureClient(context, (await import('@azure/arm-appcontainers')).ContainerAppsAPIClient)
}
export async function createContainerRegistryManagementClient(context: AzExtClientContext): Promise<ContainerRegistryManagementClient> {
return createAzureClient(context, (await import('@azure/arm-containerregistry')).ContainerRegistryManagementClient);
}
export function createContainerRegistryClient(context: AzExtClientContext, registry: ContainerRegistryManagementModels.Registry): ContainerRegistryClient {
const clientContext = parseClientContext(context);
// @azure/container-registry doesn't support ADAL tokens at all. If it sees `signRequest` is defined
// it errors, but we don't actually need `signRequest` because this is a T2 package
const credential = clientContext.credentials as { signRequest: unknown };
credential.signRequest = undefined;
return new ContainerRegistryClient(`https://${registry.loginServer}`, clientContext.credentials,
{ audience: KnownContainerRegistryAudience.AzureResourceManagerPublicCloud });
}
export async function createOperationalInsightsManagementClient(context: AzExtClientContext): Promise<OperationalInsightsManagementClient> {
return createAzureClient(context, (await import('@azure/arm-operationalinsights')).OperationalInsightsManagementClient);
}