1import type * as organizations from "@distilled.cloud/aws/organizations";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `organizations:DescribeHandshake`.
7 *
8 * Returns the details and current state of a handshake — accepted, declined, or canceled handshakes stay readable for 30 days.
9 * Account-level operation — Organizations is a management-account-scoped
10 * global service, so the binding takes no resource argument. Provide the
11 * implementation with `Effect.provide(AWS.Organizations.DescribeHandshakeHttp)`.
12 * ### Handshakes & Invitations
13 * **Example:** Read a Handshake
14 * ```typescript
15 * // init — account-level binding, no resource argument
16 * const describeHandshake = yield* AWS.Organizations.DescribeHandshake();
17 *
18 * // runtime
19 * const { Handshake } = yield* describeHandshake({ HandshakeId: handshakeId });
20 * ```
21 *
22 * @binding
23 */
24export interface DescribeHandshake extends Binding.Service<
25 DescribeHandshake,
26 "AWS.Organizations.DescribeHandshake",
27 () => Effect.Effect<
28 (
29 request: organizations.DescribeHandshakeRequest,
30 ) => Effect.Effect<
31 organizations.DescribeHandshakeResponse,
32 organizations.DescribeHandshakeError
33 >
34 >
35> {}
36export const DescribeHandshake = Binding.Service<DescribeHandshake>(
37 "AWS.Organizations.DescribeHandshake",
38);