Files
azuredatastudio/extensions/resource-deployment/src/interfaces.ts
Alan Ren 0bc9849ad8 more test cases (#5545)
* toolsservice test

* resource type tests

* pr comments

* comments
2019-05-20 17:09:10 -07:00

78 lines
1.7 KiB
TypeScript

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
export interface ResourceType {
name: string;
displayName: string;
description: string;
platforms: string[];
icon: { light: string; dark: string };
options: ResourceTypeOption[];
providers: DeploymentProvider[];
getProvider(selectedOptions: { option: string, value: string }[]): DeploymentProvider | undefined;
}
export interface ResourceTypeOption {
name: string;
displayName: string;
values: ResourceTypeOptionValue[];
}
export interface ResourceTypeOptionValue {
name: string;
displayName: string;
}
export interface DeploymentProvider {
notebook: string | NotebookInfo;
requiredTools: ToolRequirementInfo[];
when: string;
}
export interface NotebookInfo {
win32: string;
darwin: string;
linux: string;
}
export interface ToolRequirementInfo {
name: string;
version: string;
}
export enum ToolType {
AzCli,
KubeCtl,
Docker,
Python,
MSSQLCtl
}
export interface ToolStatusInfo {
type: ToolType;
name: string;
description: string;
version: string;
status: ToolInstallationStatus;
}
export interface ITool {
readonly name: string;
readonly displayName: string;
readonly description: string;
readonly type: ToolType;
readonly supportAutoInstall: boolean;
getInstallationStatus(versionExpression: string): Thenable<ToolInstallationStatus>;
install(version: string): Thenable<void>;
}
export enum ToolInstallationStatus {
NotInstalled,
Installed,
Installing,
FailedToInstall
}