src/webview-contract/webviewDefinitions/createCluster.ts (50 lines of code) (raw):

import { WebviewDefinition } from "../webviewTypes"; export interface InitialState { subscriptionId: string; subscriptionName: string; } export interface ResourceGroup { name: string; location: string; } export enum ProgressEventType { InProgress, Cancelled, Failed, Success, } export type CreatedCluster = { portalUrl: string; }; export interface CreateClusterParams { isNewResourceGroup: boolean; resourceGroupName: string; location: string; name: string; preset: PresetType; } export enum PresetType { Dev, Automatic, } export type ToVsCodeMsgDef = { getLocationsRequest: void; getResourceGroupsRequest: void; createClusterRequest: CreateClusterParams; }; export type ToWebViewMsgDef = { getLocationsResponse: { locations: string[]; }; getResourceGroupsResponse: { groups: ResourceGroup[]; }; progressUpdate: { operationDescription: string; event: ProgressEventType; errorMessage: string | null; deploymentPortalUrl: string | null; createdCluster: CreatedCluster | null; }; }; export type CreateClusterDefinition = WebviewDefinition<InitialState, ToVsCodeMsgDef, ToWebViewMsgDef>;