1import type * as account from "@distilled.cloud/aws/account";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `account:GetAlternateContact`.
7 *
8 * Reads one of the calling account's alternate contacts (`BILLING`,
9 * `OPERATIONS`, or `SECURITY`). When the requested contact type has never
10 * been set, the operation fails with the typed
11 * `ResourceNotFoundException`. Account Management is an account singleton,
12 * so the binding takes no resource argument. Provide the implementation with
13 * `Effect.provide(AWS.Account.GetAlternateContactHttp)`.
14 * ### Reading Account Settings
15 * **Example:** Read the Billing Contact
16 * ```typescript
17 * // init — account-level binding, no resource argument
18 * const getAlternateContact = yield* AWS.Account.GetAlternateContact();
19 *
20 * // runtime
21 * const billing = yield* getAlternateContact({
22 * AlternateContactType: "BILLING",
23 * }).pipe(
24 * Effect.catchTag("ResourceNotFoundException", () =>
25 * Effect.succeed({ AlternateContact: undefined }),
26 * ),
27 * );
28 * ```
29 *
30 * @binding
31 */
32export interface GetAlternateContact extends Binding.Service<
33 GetAlternateContact,
34 "AWS.Account.GetAlternateContact",
35 () => Effect.Effect<
36 (
37 request: account.GetAlternateContactRequest,
38 ) => Effect.Effect<
39 account.GetAlternateContactResponse,
40 account.GetAlternateContactError
41 >
42 >
43> {}
44export const GetAlternateContact = Binding.Service<GetAlternateContact>(
45 "AWS.Account.GetAlternateContact",
46);