1import * as Kinesis from "@distilled.cloud/aws/kinesis";
2import * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5export interface DescribeLimitsRequest extends Kinesis.DescribeLimitsInput {}
6
7/**
8 * Runtime binding for `kinesis:DescribeLimits`.
9 *
10 * An account-level operation (no stream argument) that reports shard quotas
11 * and current usage for the region. Provide the implementation with
12 * `Effect.provide(AWS.Kinesis.DescribeLimitsHttp)`.
13 * ### Account Settings
14 * **Example:** Check Shard Quota Headroom
15 * ```typescript
16 * // init — account-level binding takes no resource
17 * const describeLimits = yield* AWS.Kinesis.DescribeLimits();
18 *
19 * // runtime
20 * const limits = yield* describeLimits();
21 * const headroom = (limits.ShardLimit ?? 0) - (limits.OpenShardCount ?? 0);
22 * ```
23 *
24 * @binding
25 */
26export interface DescribeLimits extends Binding.Service<
27 DescribeLimits,
28 "AWS.Kinesis.DescribeLimits",
29 () => Effect.Effect<
30 (
31 request?: DescribeLimitsRequest,
32 ) => Effect.Effect<
33 Kinesis.DescribeLimitsOutput,
34 Kinesis.DescribeLimitsError
35 >
36 >
37> {}
38
39export const DescribeLimits = Binding.Service<DescribeLimits>(
40 "AWS.Kinesis.DescribeLimits",
41);