154 lines
8.2 KiB
TypeScript
154 lines
8.2 KiB
TypeScript
import { RequireAtLeastOne } from '@temporalio/common/lib/type-helpers';
|
|
import { temporal } from '@temporalio/proto';
|
|
import { BaseClient, BaseClientOptions, LoadedWithDefaults } from './base-client';
|
|
import { WorkflowService } from './types';
|
|
import { BuildIdOperation, WorkerBuildIdVersionSets } from './build-id-types';
|
|
type GetWorkerTaskReachabilityResponse = temporal.api.workflowservice.v1.GetWorkerTaskReachabilityResponse;
|
|
/**
|
|
* @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
|
|
*/
|
|
export type TaskQueueClientOptions = BaseClientOptions;
|
|
/**
|
|
* @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
|
|
*/
|
|
export type LoadedTaskQueueClientOptions = LoadedWithDefaults<TaskQueueClientOptions>;
|
|
/**
|
|
* A stand-in for a Build Id for unversioned Workers
|
|
*
|
|
* @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
|
|
*/
|
|
export declare const UnversionedBuildId: unique symbol;
|
|
export type UnversionedBuildIdType = typeof UnversionedBuildId;
|
|
/**
|
|
* Client for starting Workflow executions and creating Workflow handles
|
|
*
|
|
* @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
|
|
*/
|
|
export declare class TaskQueueClient extends BaseClient {
|
|
readonly options: LoadedTaskQueueClientOptions;
|
|
constructor(options?: TaskQueueClientOptions);
|
|
/**
|
|
* Raw gRPC access to the Temporal service.
|
|
*
|
|
* **NOTE**: The namespace provided in {@link options} is **not** automatically set on requests
|
|
* using this service attribute.
|
|
*/
|
|
get workflowService(): WorkflowService;
|
|
/**
|
|
* Used to add new Build Ids or otherwise update the relative compatibility of Build Ids as
|
|
* defined on a specific task queue for the Worker Versioning feature. For more on this feature,
|
|
* see https://docs.temporal.io/workers#worker-versioning
|
|
*
|
|
* @param taskQueue The task queue to make changes to.
|
|
* @param operation The operation to be performed.
|
|
*
|
|
* @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
|
|
*/
|
|
updateBuildIdCompatibility(taskQueue: string, operation: BuildIdOperation): Promise<void>;
|
|
/**
|
|
* Fetch the sets of compatible Build Ids for a given task queue.
|
|
*
|
|
* @param taskQueue The task queue to fetch the compatibility information for.
|
|
* @returns The sets of compatible Build Ids for the given task queue, or undefined if the queue
|
|
* has no Build Ids defined on it.
|
|
*
|
|
* @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
|
|
*/
|
|
getBuildIdCompatability(taskQueue: string): Promise<WorkerBuildIdVersionSets | undefined>;
|
|
/**
|
|
* Fetches task reachability to determine whether a worker may be retired. The request may specify
|
|
* task queues to query for or let the server fetch all task queues mapped to the given build IDs.
|
|
*
|
|
* When requesting a large number of task queues or all task queues associated with the given
|
|
* build ids in a namespace, all task queues will be listed in the response but some of them may
|
|
* not contain reachability information due to a server enforced limit. When reaching the limit,
|
|
* task queues that reachability information could not be retrieved for will be marked with a
|
|
* `NotFetched` entry in {@link BuildIdReachability.taskQueueReachability}. The caller may issue
|
|
* another call to get the reachability for those task queues.
|
|
*
|
|
* @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
|
|
*/
|
|
getReachability(options: ReachabilityOptions): Promise<ReachabilityResponse>;
|
|
protected rethrowGrpcError(err: unknown, fallbackMessage: string): never;
|
|
}
|
|
/**
|
|
* Options for {@link TaskQueueClient.getReachability}
|
|
*
|
|
* @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
|
|
*/
|
|
export type ReachabilityOptions = RequireAtLeastOne<BaseReachabilityOptions, 'buildIds' | 'taskQueues'>;
|
|
/**
|
|
* There are different types of reachability:
|
|
* - `NEW_WORKFLOWS`: The Build Id might be used by new workflows
|
|
* - `EXISTING_WORKFLOWS` The Build Id might be used by open workflows and/or closed workflows.
|
|
* - `OPEN_WORKFLOWS` The Build Id might be used by open workflows
|
|
* - `CLOSED_WORKFLOWS` The Build Id might be used by closed workflows
|
|
*
|
|
* @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
|
|
*/
|
|
export declare const ReachabilityType: {
|
|
/** The Build Id might be used by new workflows. */
|
|
readonly NEW_WORKFLOWS: "NEW_WORKFLOWS";
|
|
/** The Build Id might be used by open workflows and/or closed workflows. */
|
|
readonly EXISTING_WORKFLOWS: "EXISTING_WORKFLOWS";
|
|
/** The Build Id might be used by open workflows. */
|
|
readonly OPEN_WORKFLOWS: "OPEN_WORKFLOWS";
|
|
/** The Build Id might be used by closed workflows. */
|
|
readonly CLOSED_WORKFLOWS: "CLOSED_WORKFLOWS";
|
|
};
|
|
export type ReachabilityType = (typeof ReachabilityType)[keyof typeof ReachabilityType];
|
|
export declare const encodeTaskReachability: (input: temporal.api.enums.v1.TaskReachability | "NEW_WORKFLOWS" | "EXISTING_WORKFLOWS" | "OPEN_WORKFLOWS" | "CLOSED_WORKFLOWS" | "TASK_REACHABILITY_NEW_WORKFLOWS" | "TASK_REACHABILITY_EXISTING_WORKFLOWS" | "TASK_REACHABILITY_OPEN_WORKFLOWS" | "TASK_REACHABILITY_CLOSED_WORKFLOWS" | null | undefined) => temporal.api.enums.v1.TaskReachability | undefined, decodeTaskReachability: (input: temporal.api.enums.v1.TaskReachability | null | undefined) => "NEW_WORKFLOWS" | "EXISTING_WORKFLOWS" | "OPEN_WORKFLOWS" | "CLOSED_WORKFLOWS" | undefined;
|
|
/**
|
|
* See {@link ReachabilityOptions}
|
|
*
|
|
* @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
|
|
*/
|
|
export interface BaseReachabilityOptions {
|
|
/**
|
|
* A list of build ids to query the reachability of. Currently, at least one Build Id must be
|
|
* specified, but this restriction may be lifted in the future.
|
|
*/
|
|
buildIds: (string | UnversionedBuildIdType)[];
|
|
/**
|
|
* A list of task queues with Build Ids defined on them that the request is
|
|
* concerned with.
|
|
*/
|
|
taskQueues?: string[];
|
|
/** The kind of reachability this request is concerned with. */
|
|
reachability?: ReachabilityType;
|
|
}
|
|
/**
|
|
* @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
|
|
*/
|
|
export interface ReachabilityResponse {
|
|
/** Maps Build Ids to their reachability information. */
|
|
buildIdReachability: Record<string | UnversionedBuildIdType, BuildIdReachability>;
|
|
}
|
|
/**
|
|
* @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
|
|
*/
|
|
export type ReachabilityTypeResponse = ReachabilityType | 'NOT_FETCHED';
|
|
/**
|
|
* @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
|
|
*/
|
|
export interface BuildIdReachability {
|
|
/**
|
|
* Maps Task Queue names to how the Build Id may be reachable from them. If they are not
|
|
* reachable, the map value will be an empty array.
|
|
*/
|
|
taskQueueReachability: Record<string, ReachabilityTypeResponse[]>;
|
|
}
|
|
export declare function reachabilityResponseFromProto(resp: GetWorkerTaskReachabilityResponse): ReachabilityResponse;
|
|
/**
|
|
* Thrown when one or more Build Ids are not found while using the {@link TaskQueueClient}.
|
|
*
|
|
* It could be because:
|
|
* - Id passed is incorrect
|
|
* - Build Id has been scavenged by the server.
|
|
*
|
|
* @deprecated Worker Versioning is now deprecated. Please use the Worker Deployment API instead: https://docs.temporal.io/worker-deployments
|
|
*/
|
|
export declare class BuildIdNotFoundError extends Error {
|
|
}
|
|
export {};
|