1import type * as rma from "@distilled.cloud/gcp/rapidmigrationassessment_v1";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { RuntimeContext } from "../../RuntimeContext.ts";
5import type { Collector } from "./Collector.ts";
6
7export interface ResumeCollectorRequest extends Omit<
8 rma.ResumeProjectsLocationsCollectorsRequest,
9 "name"
10> {}
11
12/**
13 * Runtime binding for Rapid Migration Assessment `collectors.resume`.
14 *
15 * Bind this operation to a {@link Collector} in a Function/Action init
16 * phase. Provide {@link ResumeCollectorHttp}.
17 *
18 * Grants `roles/rma.runner` on the project: Rapid Migration Assessment
19 * has no resource-level IAM.
20 *
21 * ### Resuming Collectors
22 * **Example:** Resume the bound collector
23 * ```typescript
24 * const resumeCollector = yield* GCP.RapidMigrationAssessment.ResumeCollector(
25 * onPrem,
26 * );
27 * yield* resumeCollector();
28 * ```
29 *
30 * @binding
31 * @category RapidMigrationAssessment
32 */
33export interface ResumeCollector extends Binding.Service<
34 ResumeCollector,
35 "GCP.RapidMigrationAssessment.ResumeCollector",
36 (
37 collector: Collector,
38 ) => Effect.Effect<
39 (
40 request?: ResumeCollectorRequest,
41 ) => Effect.Effect<
42 rma.Operation,
43 rma.ResumeProjectsLocationsCollectorsError,
44 RuntimeContext
45 >
46 >
47> {}
48
49export const ResumeCollector = Binding.Service<ResumeCollector>(
50 "GCP.RapidMigrationAssessment.ResumeCollector",
51);