1import type * as servicequotas from "@distilled.cloud/aws/service-quotas";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `servicequotas:GetServiceQuota` — read the applied
7 * value of any Service Quotas quota (account-level or resource-level) from
8 * inside a Function.
9 *
10 * Service Quotas is a read-mostly control-plane service with no resource to
11 * manage for reads: the binding takes no arguments and grants the function
12 * `servicequotas:GetServiceQuota` (the action has no resource-level IAM).
13 * Pass the raw distilled request — no marshalling.
14 *
15 * ### Reading Quotas
16 * **Example:** Read the Lambda concurrent-executions quota
17 * ```typescript
18 * // init
19 * const getServiceQuota = yield* AWS.ServiceQuotas.GetServiceQuota();
20 *
21 * // runtime
22 * const { Quota } = yield* getServiceQuota({
23 * ServiceCode: "lambda",
24 * QuotaCode: "L-B99A9384",
25 * });
26 * const applied = Quota?.Value;
27 * ```
28 *
29 * @binding
30 */
31export interface GetServiceQuota extends Binding.Service<
32 GetServiceQuota,
33 "AWS.ServiceQuotas.GetServiceQuota",
34 () => Effect.Effect<
35 (
36 request: servicequotas.GetServiceQuotaRequest,
37 ) => Effect.Effect<
38 servicequotas.GetServiceQuotaResponse,
39 servicequotas.GetServiceQuotaError
40 >
41 >
42> {}
43export const GetServiceQuota = Binding.Service<GetServiceQuota>(
44 "AWS.ServiceQuotas.GetServiceQuota",
45);