1import type * as controltower from "@distilled.cloud/aws/controltower";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `controltower:GetLandingZoneOperation`.
7 *
8 * An account-level operation that reads the status of an asynchronous
9 * landing zone operation (`CREATE`, `UPDATE`, `DELETE`, `RESET`). Pair it
10 * with {@link ResetLandingZone} to poll a drift-remediation run to
11 * completion. Provide the implementation with
12 * `Effect.provide(AWS.ControlTower.GetLandingZoneOperationHttp)`.
13 * ### Polling Asynchronous Operations
14 * **Example:** Poll a Landing Zone Operation
15 * ```typescript
16 * // init — account-level binding takes no resource
17 * const getLandingZoneOperation =
18 * yield* AWS.ControlTower.GetLandingZoneOperation();
19 *
20 * // runtime
21 * const { operationDetails } = yield* getLandingZoneOperation({
22 * operationIdentifier,
23 * });
24 * console.log(operationDetails.status);
25 * ```
26 *
27 * @binding
28 */
29export interface GetLandingZoneOperation extends Binding.Service<
30 GetLandingZoneOperation,
31 "AWS.ControlTower.GetLandingZoneOperation",
32 () => Effect.Effect<
33 (
34 request: controltower.GetLandingZoneOperationInput,
35 ) => Effect.Effect<
36 controltower.GetLandingZoneOperationOutput,
37 controltower.GetLandingZoneOperationError
38 >
39 >
40> {}
41
42export const GetLandingZoneOperation = Binding.Service<GetLandingZoneOperation>(
43 "AWS.ControlTower.GetLandingZoneOperation",
44);