coder/site/e2e/provisionerGenerated.ts

1037 lines
27 KiB
TypeScript

/* eslint-disable */
import * as _m0 from "protobufjs/minimal";
import { Observable } from "rxjs";
export const protobufPackage = "provisioner";
/** LogLevel represents severity of the log. */
export enum LogLevel {
TRACE = 0,
DEBUG = 1,
INFO = 2,
WARN = 3,
ERROR = 4,
UNRECOGNIZED = -1,
}
export enum AppSharingLevel {
OWNER = 0,
AUTHENTICATED = 1,
PUBLIC = 2,
UNRECOGNIZED = -1,
}
/** WorkspaceTransition is the desired outcome of a build */
export enum WorkspaceTransition {
START = 0,
STOP = 1,
DESTROY = 2,
UNRECOGNIZED = -1,
}
/** Empty indicates a successful request/response. */
export interface Empty {}
/** TemplateVariable represents a Terraform variable. */
export interface TemplateVariable {
name: string;
description: string;
type: string;
defaultValue: string;
required: boolean;
sensitive: boolean;
}
/** RichParameterOption represents a singular option that a parameter may expose. */
export interface RichParameterOption {
name: string;
description: string;
value: string;
icon: string;
}
/** RichParameter represents a variable that is exposed. */
export interface RichParameter {
name: string;
description: string;
type: string;
mutable: boolean;
defaultValue: string;
icon: string;
options: RichParameterOption[];
validationRegex: string;
validationError: string;
validationMin?: number | undefined;
validationMax?: number | undefined;
validationMonotonic: string;
required: boolean;
/** legacy_variable_name was removed (= 14) */
displayName: string;
order: number;
ephemeral: boolean;
}
/** RichParameterValue holds the key/value mapping of a parameter. */
export interface RichParameterValue {
name: string;
value: string;
}
/** VariableValue holds the key/value mapping of a Terraform variable. */
export interface VariableValue {
name: string;
value: string;
sensitive: boolean;
}
/** Log represents output from a request. */
export interface Log {
level: LogLevel;
output: string;
}
export interface InstanceIdentityAuth {
instanceId: string;
}
export interface ExternalAuthProviderResource {
id: string;
optional: boolean;
}
export interface ExternalAuthProvider {
id: string;
accessToken: string;
}
/** Agent represents a running agent on the workspace. */
export interface Agent {
id: string;
name: string;
env: { [key: string]: string };
/** Field 4 was startup_script, now removed. */
operatingSystem: string;
architecture: string;
directory: string;
apps: App[];
token?: string | undefined;
instanceId?: string | undefined;
connectionTimeoutSeconds: number;
troubleshootingUrl: string;
motdFile: string;
/**
* Field 14 was bool login_before_ready = 14, now removed.
* Field 15, 16, 17 were related to scripts, which are now removed.
*/
metadata: Agent_Metadata[];
/** Field 19 was startup_script_behavior, now removed. */
displayApps: DisplayApps | undefined;
scripts: Script[];
extraEnvs: Env[];
order: number;
}
export interface Agent_Metadata {
key: string;
displayName: string;
script: string;
interval: number;
timeout: number;
order: number;
}
export interface Agent_EnvEntry {
key: string;
value: string;
}
export interface DisplayApps {
vscode: boolean;
vscodeInsiders: boolean;
webTerminal: boolean;
sshHelper: boolean;
portForwardingHelper: boolean;
}
export interface Env {
name: string;
value: string;
}
/** Script represents a script to be run on the workspace. */
export interface Script {
displayName: string;
icon: string;
script: string;
cron: string;
startBlocksLogin: boolean;
runOnStart: boolean;
runOnStop: boolean;
timeoutSeconds: number;
logPath: string;
}
/** App represents a dev-accessible application on the workspace. */
export interface App {
/**
* slug is the unique identifier for the app, usually the name from the
* template. It must be URL-safe and hostname-safe.
*/
slug: string;
displayName: string;
command: string;
url: string;
icon: string;
subdomain: boolean;
healthcheck: Healthcheck | undefined;
sharingLevel: AppSharingLevel;
external: boolean;
order: number;
}
/** Healthcheck represents configuration for checking for app readiness. */
export interface Healthcheck {
url: string;
interval: number;
threshold: number;
}
/** Resource represents created infrastructure. */
export interface Resource {
name: string;
type: string;
agents: Agent[];
metadata: Resource_Metadata[];
hide: boolean;
icon: string;
instanceType: string;
dailyCost: number;
}
export interface Resource_Metadata {
key: string;
value: string;
sensitive: boolean;
isNull: boolean;
}
/** Metadata is information about a workspace used in the execution of a build */
export interface Metadata {
coderUrl: string;
workspaceTransition: WorkspaceTransition;
workspaceName: string;
workspaceOwner: string;
workspaceId: string;
workspaceOwnerId: string;
workspaceOwnerEmail: string;
templateName: string;
templateVersion: string;
workspaceOwnerOidcAccessToken: string;
workspaceOwnerSessionToken: string;
templateId: string;
workspaceOwnerName: string;
}
/** Config represents execution configuration shared by all subsequent requests in the Session */
export interface Config {
/** template_source_archive is a tar of the template source files */
templateSourceArchive: Uint8Array;
/** state is the provisioner state (if any) */
state: Uint8Array;
provisionerLogLevel: string;
}
/** ParseRequest consumes source-code to produce inputs. */
export interface ParseRequest {}
/** ParseComplete indicates a request to parse completed. */
export interface ParseComplete {
error: string;
templateVariables: TemplateVariable[];
readme: Uint8Array;
}
/** PlanRequest asks the provisioner to plan what resources & parameters it will create */
export interface PlanRequest {
metadata: Metadata | undefined;
richParameterValues: RichParameterValue[];
variableValues: VariableValue[];
externalAuthProviders: ExternalAuthProvider[];
}
/** PlanComplete indicates a request to plan completed. */
export interface PlanComplete {
error: string;
resources: Resource[];
parameters: RichParameter[];
externalAuthProviders: ExternalAuthProviderResource[];
}
/**
* ApplyRequest asks the provisioner to apply the changes. Apply MUST be preceded by a successful plan request/response
* in the same Session. The plan data is not transmitted over the wire and is cached by the provisioner in the Session.
*/
export interface ApplyRequest {
metadata: Metadata | undefined;
}
/** ApplyComplete indicates a request to apply completed. */
export interface ApplyComplete {
state: Uint8Array;
error: string;
resources: Resource[];
parameters: RichParameter[];
externalAuthProviders: ExternalAuthProviderResource[];
}
/** CancelRequest requests that the previous request be canceled gracefully. */
export interface CancelRequest {}
export interface Request {
config?: Config | undefined;
parse?: ParseRequest | undefined;
plan?: PlanRequest | undefined;
apply?: ApplyRequest | undefined;
cancel?: CancelRequest | undefined;
}
export interface Response {
log?: Log | undefined;
parse?: ParseComplete | undefined;
plan?: PlanComplete | undefined;
apply?: ApplyComplete | undefined;
}
export const Empty = {
encode(_: Empty, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
return writer;
},
};
export const TemplateVariable = {
encode(
message: TemplateVariable,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.name !== "") {
writer.uint32(10).string(message.name);
}
if (message.description !== "") {
writer.uint32(18).string(message.description);
}
if (message.type !== "") {
writer.uint32(26).string(message.type);
}
if (message.defaultValue !== "") {
writer.uint32(34).string(message.defaultValue);
}
if (message.required === true) {
writer.uint32(40).bool(message.required);
}
if (message.sensitive === true) {
writer.uint32(48).bool(message.sensitive);
}
return writer;
},
};
export const RichParameterOption = {
encode(
message: RichParameterOption,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.name !== "") {
writer.uint32(10).string(message.name);
}
if (message.description !== "") {
writer.uint32(18).string(message.description);
}
if (message.value !== "") {
writer.uint32(26).string(message.value);
}
if (message.icon !== "") {
writer.uint32(34).string(message.icon);
}
return writer;
},
};
export const RichParameter = {
encode(
message: RichParameter,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.name !== "") {
writer.uint32(10).string(message.name);
}
if (message.description !== "") {
writer.uint32(18).string(message.description);
}
if (message.type !== "") {
writer.uint32(26).string(message.type);
}
if (message.mutable === true) {
writer.uint32(32).bool(message.mutable);
}
if (message.defaultValue !== "") {
writer.uint32(42).string(message.defaultValue);
}
if (message.icon !== "") {
writer.uint32(50).string(message.icon);
}
for (const v of message.options) {
RichParameterOption.encode(v!, writer.uint32(58).fork()).ldelim();
}
if (message.validationRegex !== "") {
writer.uint32(66).string(message.validationRegex);
}
if (message.validationError !== "") {
writer.uint32(74).string(message.validationError);
}
if (message.validationMin !== undefined) {
writer.uint32(80).int32(message.validationMin);
}
if (message.validationMax !== undefined) {
writer.uint32(88).int32(message.validationMax);
}
if (message.validationMonotonic !== "") {
writer.uint32(98).string(message.validationMonotonic);
}
if (message.required === true) {
writer.uint32(104).bool(message.required);
}
if (message.displayName !== "") {
writer.uint32(122).string(message.displayName);
}
if (message.order !== 0) {
writer.uint32(128).int32(message.order);
}
if (message.ephemeral === true) {
writer.uint32(136).bool(message.ephemeral);
}
return writer;
},
};
export const RichParameterValue = {
encode(
message: RichParameterValue,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.name !== "") {
writer.uint32(10).string(message.name);
}
if (message.value !== "") {
writer.uint32(18).string(message.value);
}
return writer;
},
};
export const VariableValue = {
encode(
message: VariableValue,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.name !== "") {
writer.uint32(10).string(message.name);
}
if (message.value !== "") {
writer.uint32(18).string(message.value);
}
if (message.sensitive === true) {
writer.uint32(24).bool(message.sensitive);
}
return writer;
},
};
export const Log = {
encode(message: Log, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.level !== 0) {
writer.uint32(8).int32(message.level);
}
if (message.output !== "") {
writer.uint32(18).string(message.output);
}
return writer;
},
};
export const InstanceIdentityAuth = {
encode(
message: InstanceIdentityAuth,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.instanceId !== "") {
writer.uint32(10).string(message.instanceId);
}
return writer;
},
};
export const ExternalAuthProviderResource = {
encode(
message: ExternalAuthProviderResource,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.id !== "") {
writer.uint32(10).string(message.id);
}
if (message.optional === true) {
writer.uint32(16).bool(message.optional);
}
return writer;
},
};
export const ExternalAuthProvider = {
encode(
message: ExternalAuthProvider,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.id !== "") {
writer.uint32(10).string(message.id);
}
if (message.accessToken !== "") {
writer.uint32(18).string(message.accessToken);
}
return writer;
},
};
export const Agent = {
encode(message: Agent, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.id !== "") {
writer.uint32(10).string(message.id);
}
if (message.name !== "") {
writer.uint32(18).string(message.name);
}
Object.entries(message.env).forEach(([key, value]) => {
Agent_EnvEntry.encode(
{ key: key as any, value },
writer.uint32(26).fork(),
).ldelim();
});
if (message.operatingSystem !== "") {
writer.uint32(42).string(message.operatingSystem);
}
if (message.architecture !== "") {
writer.uint32(50).string(message.architecture);
}
if (message.directory !== "") {
writer.uint32(58).string(message.directory);
}
for (const v of message.apps) {
App.encode(v!, writer.uint32(66).fork()).ldelim();
}
if (message.token !== undefined) {
writer.uint32(74).string(message.token);
}
if (message.instanceId !== undefined) {
writer.uint32(82).string(message.instanceId);
}
if (message.connectionTimeoutSeconds !== 0) {
writer.uint32(88).int32(message.connectionTimeoutSeconds);
}
if (message.troubleshootingUrl !== "") {
writer.uint32(98).string(message.troubleshootingUrl);
}
if (message.motdFile !== "") {
writer.uint32(106).string(message.motdFile);
}
for (const v of message.metadata) {
Agent_Metadata.encode(v!, writer.uint32(146).fork()).ldelim();
}
if (message.displayApps !== undefined) {
DisplayApps.encode(
message.displayApps,
writer.uint32(162).fork(),
).ldelim();
}
for (const v of message.scripts) {
Script.encode(v!, writer.uint32(170).fork()).ldelim();
}
for (const v of message.extraEnvs) {
Env.encode(v!, writer.uint32(178).fork()).ldelim();
}
if (message.order !== 0) {
writer.uint32(184).int64(message.order);
}
return writer;
},
};
export const Agent_Metadata = {
encode(
message: Agent_Metadata,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.key !== "") {
writer.uint32(10).string(message.key);
}
if (message.displayName !== "") {
writer.uint32(18).string(message.displayName);
}
if (message.script !== "") {
writer.uint32(26).string(message.script);
}
if (message.interval !== 0) {
writer.uint32(32).int64(message.interval);
}
if (message.timeout !== 0) {
writer.uint32(40).int64(message.timeout);
}
if (message.order !== 0) {
writer.uint32(48).int64(message.order);
}
return writer;
},
};
export const Agent_EnvEntry = {
encode(
message: Agent_EnvEntry,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.key !== "") {
writer.uint32(10).string(message.key);
}
if (message.value !== "") {
writer.uint32(18).string(message.value);
}
return writer;
},
};
export const DisplayApps = {
encode(
message: DisplayApps,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.vscode === true) {
writer.uint32(8).bool(message.vscode);
}
if (message.vscodeInsiders === true) {
writer.uint32(16).bool(message.vscodeInsiders);
}
if (message.webTerminal === true) {
writer.uint32(24).bool(message.webTerminal);
}
if (message.sshHelper === true) {
writer.uint32(32).bool(message.sshHelper);
}
if (message.portForwardingHelper === true) {
writer.uint32(40).bool(message.portForwardingHelper);
}
return writer;
},
};
export const Env = {
encode(message: Env, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.name !== "") {
writer.uint32(10).string(message.name);
}
if (message.value !== "") {
writer.uint32(18).string(message.value);
}
return writer;
},
};
export const Script = {
encode(
message: Script,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.displayName !== "") {
writer.uint32(10).string(message.displayName);
}
if (message.icon !== "") {
writer.uint32(18).string(message.icon);
}
if (message.script !== "") {
writer.uint32(26).string(message.script);
}
if (message.cron !== "") {
writer.uint32(34).string(message.cron);
}
if (message.startBlocksLogin === true) {
writer.uint32(40).bool(message.startBlocksLogin);
}
if (message.runOnStart === true) {
writer.uint32(48).bool(message.runOnStart);
}
if (message.runOnStop === true) {
writer.uint32(56).bool(message.runOnStop);
}
if (message.timeoutSeconds !== 0) {
writer.uint32(64).int32(message.timeoutSeconds);
}
if (message.logPath !== "") {
writer.uint32(74).string(message.logPath);
}
return writer;
},
};
export const App = {
encode(message: App, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.slug !== "") {
writer.uint32(10).string(message.slug);
}
if (message.displayName !== "") {
writer.uint32(18).string(message.displayName);
}
if (message.command !== "") {
writer.uint32(26).string(message.command);
}
if (message.url !== "") {
writer.uint32(34).string(message.url);
}
if (message.icon !== "") {
writer.uint32(42).string(message.icon);
}
if (message.subdomain === true) {
writer.uint32(48).bool(message.subdomain);
}
if (message.healthcheck !== undefined) {
Healthcheck.encode(
message.healthcheck,
writer.uint32(58).fork(),
).ldelim();
}
if (message.sharingLevel !== 0) {
writer.uint32(64).int32(message.sharingLevel);
}
if (message.external === true) {
writer.uint32(72).bool(message.external);
}
if (message.order !== 0) {
writer.uint32(80).int64(message.order);
}
return writer;
},
};
export const Healthcheck = {
encode(
message: Healthcheck,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.url !== "") {
writer.uint32(10).string(message.url);
}
if (message.interval !== 0) {
writer.uint32(16).int32(message.interval);
}
if (message.threshold !== 0) {
writer.uint32(24).int32(message.threshold);
}
return writer;
},
};
export const Resource = {
encode(
message: Resource,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.name !== "") {
writer.uint32(10).string(message.name);
}
if (message.type !== "") {
writer.uint32(18).string(message.type);
}
for (const v of message.agents) {
Agent.encode(v!, writer.uint32(26).fork()).ldelim();
}
for (const v of message.metadata) {
Resource_Metadata.encode(v!, writer.uint32(34).fork()).ldelim();
}
if (message.hide === true) {
writer.uint32(40).bool(message.hide);
}
if (message.icon !== "") {
writer.uint32(50).string(message.icon);
}
if (message.instanceType !== "") {
writer.uint32(58).string(message.instanceType);
}
if (message.dailyCost !== 0) {
writer.uint32(64).int32(message.dailyCost);
}
return writer;
},
};
export const Resource_Metadata = {
encode(
message: Resource_Metadata,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.key !== "") {
writer.uint32(10).string(message.key);
}
if (message.value !== "") {
writer.uint32(18).string(message.value);
}
if (message.sensitive === true) {
writer.uint32(24).bool(message.sensitive);
}
if (message.isNull === true) {
writer.uint32(32).bool(message.isNull);
}
return writer;
},
};
export const Metadata = {
encode(
message: Metadata,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.coderUrl !== "") {
writer.uint32(10).string(message.coderUrl);
}
if (message.workspaceTransition !== 0) {
writer.uint32(16).int32(message.workspaceTransition);
}
if (message.workspaceName !== "") {
writer.uint32(26).string(message.workspaceName);
}
if (message.workspaceOwner !== "") {
writer.uint32(34).string(message.workspaceOwner);
}
if (message.workspaceId !== "") {
writer.uint32(42).string(message.workspaceId);
}
if (message.workspaceOwnerId !== "") {
writer.uint32(50).string(message.workspaceOwnerId);
}
if (message.workspaceOwnerEmail !== "") {
writer.uint32(58).string(message.workspaceOwnerEmail);
}
if (message.templateName !== "") {
writer.uint32(66).string(message.templateName);
}
if (message.templateVersion !== "") {
writer.uint32(74).string(message.templateVersion);
}
if (message.workspaceOwnerOidcAccessToken !== "") {
writer.uint32(82).string(message.workspaceOwnerOidcAccessToken);
}
if (message.workspaceOwnerSessionToken !== "") {
writer.uint32(90).string(message.workspaceOwnerSessionToken);
}
if (message.templateId !== "") {
writer.uint32(98).string(message.templateId);
}
if (message.workspaceOwnerName !== "") {
writer.uint32(106).string(message.workspaceOwnerName);
}
return writer;
},
};
export const Config = {
encode(
message: Config,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.templateSourceArchive.length !== 0) {
writer.uint32(10).bytes(message.templateSourceArchive);
}
if (message.state.length !== 0) {
writer.uint32(18).bytes(message.state);
}
if (message.provisionerLogLevel !== "") {
writer.uint32(26).string(message.provisionerLogLevel);
}
return writer;
},
};
export const ParseRequest = {
encode(
_: ParseRequest,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
return writer;
},
};
export const ParseComplete = {
encode(
message: ParseComplete,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.error !== "") {
writer.uint32(10).string(message.error);
}
for (const v of message.templateVariables) {
TemplateVariable.encode(v!, writer.uint32(18).fork()).ldelim();
}
if (message.readme.length !== 0) {
writer.uint32(26).bytes(message.readme);
}
return writer;
},
};
export const PlanRequest = {
encode(
message: PlanRequest,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.metadata !== undefined) {
Metadata.encode(message.metadata, writer.uint32(10).fork()).ldelim();
}
for (const v of message.richParameterValues) {
RichParameterValue.encode(v!, writer.uint32(18).fork()).ldelim();
}
for (const v of message.variableValues) {
VariableValue.encode(v!, writer.uint32(26).fork()).ldelim();
}
for (const v of message.externalAuthProviders) {
ExternalAuthProvider.encode(v!, writer.uint32(34).fork()).ldelim();
}
return writer;
},
};
export const PlanComplete = {
encode(
message: PlanComplete,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.error !== "") {
writer.uint32(10).string(message.error);
}
for (const v of message.resources) {
Resource.encode(v!, writer.uint32(18).fork()).ldelim();
}
for (const v of message.parameters) {
RichParameter.encode(v!, writer.uint32(26).fork()).ldelim();
}
for (const v of message.externalAuthProviders) {
ExternalAuthProviderResource.encode(
v!,
writer.uint32(34).fork(),
).ldelim();
}
return writer;
},
};
export const ApplyRequest = {
encode(
message: ApplyRequest,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.metadata !== undefined) {
Metadata.encode(message.metadata, writer.uint32(10).fork()).ldelim();
}
return writer;
},
};
export const ApplyComplete = {
encode(
message: ApplyComplete,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.state.length !== 0) {
writer.uint32(10).bytes(message.state);
}
if (message.error !== "") {
writer.uint32(18).string(message.error);
}
for (const v of message.resources) {
Resource.encode(v!, writer.uint32(26).fork()).ldelim();
}
for (const v of message.parameters) {
RichParameter.encode(v!, writer.uint32(34).fork()).ldelim();
}
for (const v of message.externalAuthProviders) {
ExternalAuthProviderResource.encode(
v!,
writer.uint32(42).fork(),
).ldelim();
}
return writer;
},
};
export const CancelRequest = {
encode(
_: CancelRequest,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
return writer;
},
};
export const Request = {
encode(
message: Request,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.config !== undefined) {
Config.encode(message.config, writer.uint32(10).fork()).ldelim();
}
if (message.parse !== undefined) {
ParseRequest.encode(message.parse, writer.uint32(18).fork()).ldelim();
}
if (message.plan !== undefined) {
PlanRequest.encode(message.plan, writer.uint32(26).fork()).ldelim();
}
if (message.apply !== undefined) {
ApplyRequest.encode(message.apply, writer.uint32(34).fork()).ldelim();
}
if (message.cancel !== undefined) {
CancelRequest.encode(message.cancel, writer.uint32(42).fork()).ldelim();
}
return writer;
},
};
export const Response = {
encode(
message: Response,
writer: _m0.Writer = _m0.Writer.create(),
): _m0.Writer {
if (message.log !== undefined) {
Log.encode(message.log, writer.uint32(10).fork()).ldelim();
}
if (message.parse !== undefined) {
ParseComplete.encode(message.parse, writer.uint32(18).fork()).ldelim();
}
if (message.plan !== undefined) {
PlanComplete.encode(message.plan, writer.uint32(26).fork()).ldelim();
}
if (message.apply !== undefined) {
ApplyComplete.encode(message.apply, writer.uint32(34).fork()).ldelim();
}
return writer;
},
};
export interface Provisioner {
/**
* Session represents provisioning a single template import or workspace. The daemon always sends Config followed
* by one of the requests (ParseRequest, PlanRequest, ApplyRequest). The provisioner should respond with a stream
* of zero or more Logs, followed by the corresponding complete message (ParseComplete, PlanComplete,
* ApplyComplete). The daemon may then send a new request. A request to apply MUST be preceded by a request plan,
* and the provisioner should store the plan data on the Session after a successful plan, so that the daemon may
* request an apply. If the daemon closes the Session without an apply, the plan data may be safely discarded.
*
* The daemon may send a CancelRequest, asynchronously to ask the provisioner to cancel the previous ParseRequest,
* PlanRequest, or ApplyRequest. The provisioner MUST reply with a complete message corresponding to the request
* that was canceled. If the provisioner has already completed the request, it may ignore the CancelRequest.
*/
Session(request: Observable<Request>): Observable<Response>;
}