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:DescribeEffectivePolicy`.
7 *
8 * Returns the contents of the effective policy of the specified type for an account — the aggregation of inherited plus directly attached management policies (tag, backup, AI-services opt-out, …).
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.DescribeEffectivePolicyHttp)`.
12 * ### Policies & Effective Policy
13 * **Example:** Read an Account's Effective Tag Policy
14 * ```typescript
15 * // init — account-level binding, no resource argument
16 * const describeEffectivePolicy = yield* AWS.Organizations.DescribeEffectivePolicy();
17 *
18 * // runtime
19 * const { EffectivePolicy } = yield* describeEffectivePolicy({
20 * PolicyType: "TAG_POLICY",
21 * TargetId: accountId,
22 * });
23 * ```
24 *
25 * @binding
26 */
27export interface DescribeEffectivePolicy extends Binding.Service<
28 DescribeEffectivePolicy,
29 "AWS.Organizations.DescribeEffectivePolicy",
30 () => Effect.Effect<
31 (
32 request: organizations.DescribeEffectivePolicyRequest,
33 ) => Effect.Effect<
34 organizations.DescribeEffectivePolicyResponse,
35 organizations.DescribeEffectivePolicyError
36 >
37 >
38> {}
39export const DescribeEffectivePolicy = Binding.Service<DescribeEffectivePolicy>(
40 "AWS.Organizations.DescribeEffectivePolicy",
41);