1import type * as mq from "@distilled.cloud/aws/mq";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Broker } from "./Broker.ts";
5
6/**
7 * Runtime binding for the `RebootBroker` operation (IAM action
8 * `mq:RebootBroker`), scoped to one {@link Broker}.
9 *
10 * Reboots the broker to apply pending modifications (engine version,
11 * host instance type, configuration revision, user changes). The reboot is
12 * asynchronous — the broker transitions through `REBOOT_IN_PROGRESS` back to
13 * `RUNNING`. Provide the implementation with
14 * `Effect.provide(AWS.MQ.RebootBrokerHttp)`.
15 * ### Managing a Broker
16 * **Example:** Apply Pending Changes with a Reboot
17 * ```typescript
18 * const rebootBroker = yield* MQ.RebootBroker(broker);
19 *
20 * yield* rebootBroker();
21 * ```
22 *
23 * @binding
24 */
25export interface RebootBroker extends Binding.Service<
26 RebootBroker,
27 "AWS.MQ.RebootBroker",
28 (
29 broker: Broker,
30 ) => Effect.Effect<
31 () => Effect.Effect<mq.RebootBrokerResponse, mq.RebootBrokerError>
32 >
33> {}
34export const RebootBroker = Binding.Service<RebootBroker>(
35 "AWS.MQ.RebootBroker",
36);