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:InviteAccountToOrganization`.
7 *
8 * Sends an invitation (handshake) to another account to join the organization as a member account.
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.InviteAccountToOrganizationHttp)`.
12 * ### Handshakes & Invitations
13 * **Example:** Invite an Account
14 * ```typescript
15 * // init — account-level binding, no resource argument
16 * const inviteAccountToOrganization = yield* AWS.Organizations.InviteAccountToOrganization();
17 *
18 * // runtime
19 * const { Handshake } = yield* inviteAccountToOrganization({
20 * Target: { Id: "111122223333", Type: "ACCOUNT" },
21 * });
22 * ```
23 *
24 * @binding
25 */
26export interface InviteAccountToOrganization extends Binding.Service<
27 InviteAccountToOrganization,
28 "AWS.Organizations.InviteAccountToOrganization",
29 () => Effect.Effect<
30 (
31 request: organizations.InviteAccountToOrganizationRequest,
32 ) => Effect.Effect<
33 organizations.InviteAccountToOrganizationResponse,
34 organizations.InviteAccountToOrganizationError
35 >
36 >
37> {}
38export const InviteAccountToOrganization =
39 Binding.Service<InviteAccountToOrganization>(
40 "AWS.Organizations.InviteAccountToOrganization",
41 );