1import type * as aoss from "@distilled.cloud/aws/opensearchserverless";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `GetAccountSettings` operation (IAM action
7 * `aoss:GetAccountSettings`; the action does not support resource-level
8 * scoping, so the grant is on `*`).
9 *
10 * Reads the account-level OpenSearch Serverless settings — the OCU capacity
11 * limits that cap the account's spend. Provide the implementation with
12 * `Effect.provide(AWS.OpenSearchServerless.GetAccountSettingsHttp)`.
13 * ### Account Settings
14 * **Example:** Read the account's OCU capacity limits
15 * ```typescript
16 * const getAccountSettings = yield* AWS.OpenSearchServerless.GetAccountSettings();
17 *
18 * const settings = yield* getAccountSettings();
19 * const limits = settings.accountSettingsDetail?.capacityLimits;
20 * yield* Effect.log(`max indexing OCUs: ${limits?.maxIndexingCapacityInOCU}`);
21 * ```
22 *
23 * @binding
24 */
25export interface GetAccountSettings extends Binding.Service<
26 GetAccountSettings,
27 "AWS.OpenSearchServerless.GetAccountSettings",
28 () => Effect.Effect<
29 (
30 request?: aoss.GetAccountSettingsRequest,
31 ) => Effect.Effect<
32 aoss.GetAccountSettingsResponse,
33 aoss.GetAccountSettingsError
34 >
35 >
36> {}
37export const GetAccountSettings = Binding.Service<GetAccountSettings>(
38 "AWS.OpenSearchServerless.GetAccountSettings",
39);