1import type * as opensearch from "@distilled.cloud/aws/opensearch";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `StartDomainMaintenance` operation (IAM action
7 * `es:StartDomainMaintenance`).
8 *
9 * Starts a maintenance action on a domain — reboot a node, restart the search process, or restart Dashboards — e.g. remediation triggered by a health alarm. Provide the implementation with
10 * `Effect.provide(AWS.OpenSearch.StartDomainMaintenanceHttp)`.
11 * ### Domain Maintenance
12 * **Example:** Reboot a Data Node
13 * ```typescript
14 * const startDomainMaintenance = yield* OpenSearch.StartDomainMaintenance();
15 *
16 * const result = yield* startDomainMaintenance({
17 * DomainName: name,
18 * Action: "REBOOT_NODE",
19 * NodeId: nodeId,
20 * });
21 * // result.MaintenanceId → track with GetDomainMaintenanceStatus
22 * ```
23 *
24 * @binding
25 */
26export interface StartDomainMaintenance extends Binding.Service<
27 StartDomainMaintenance,
28 "AWS.OpenSearch.StartDomainMaintenance",
29 () => Effect.Effect<
30 (
31 request: opensearch.StartDomainMaintenanceRequest,
32 ) => Effect.Effect<
33 opensearch.StartDomainMaintenanceResponse,
34 opensearch.StartDomainMaintenanceError
35 >
36 >
37> {}
38export const StartDomainMaintenance = Binding.Service<StartDomainMaintenance>(
39 "AWS.OpenSearch.StartDomainMaintenance",
40);