1import * as Kinesis from "@distilled.cloud/aws/kinesis";
2import * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Stream } from "./Stream.ts";
5
6export interface GetResourcePolicyRequest extends Omit<
7 Kinesis.GetResourcePolicyInput,
8 "ResourceARN"
9> {}
10
11/**
12 * Runtime binding for `kinesis:GetResourcePolicy`.
13 *
14 * Bind this operation to a `Stream` to read the resource policy attached to
15 * it (set via the stream's `resourcePolicy` prop) — the stream ARN is
16 * injected automatically. Provide the implementation with
17 * `Effect.provide(AWS.Kinesis.GetResourcePolicyHttp)`.
18 * ### Inspecting Streams
19 * **Example:** Read the Stream's Resource Policy
20 * ```typescript
21 * // init
22 * const getResourcePolicy = yield* AWS.Kinesis.GetResourcePolicy(stream);
23 *
24 * // runtime
25 * const result = yield* getResourcePolicy();
26 * const policy = JSON.parse(result.Policy);
27 * ```
28 *
29 * @binding
30 */
31export interface GetResourcePolicy extends Binding.Service<
32 GetResourcePolicy,
33 "AWS.Kinesis.GetResourcePolicy",
34 (
35 stream: Stream,
36 ) => Effect.Effect<
37 (
38 request?: GetResourcePolicyRequest,
39 ) => Effect.Effect<
40 Kinesis.GetResourcePolicyOutput,
41 Kinesis.GetResourcePolicyError
42 >
43 >
44> {}
45
46export const GetResourcePolicy = Binding.Service<GetResourcePolicy>(
47 "AWS.Kinesis.GetResourcePolicy",
48);