1import type * as ecrpublic from "@distilled.cloud/aws/ecr-public";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/** Request for {@link DescribeRegistries}. */
6export interface DescribeRegistriesRequest
7 extends ecrpublic.DescribeRegistriesRequest {}
8
9/**
10 * Runtime binding for `ecr-public:DescribeRegistries`.
11 *
12 * Reads the account's public registry details — most usefully the registry
13 * aliases that form public pull URIs (`public.ecr.aws/<alias>/<repo>`).
14 * Provide the implementation with
15 * `Effect.provide(AWS.ECRPublic.DescribeRegistriesHttp)`.
16 *
17 * ### Registry Access
18 * **Example:** Look Up The Registry Alias
19 * ```typescript
20 * // init — registry-level binding takes no resource
21 * const describeRegistries = yield* AWS.ECRPublic.DescribeRegistries();
22 *
23 * // runtime
24 * const result = yield* describeRegistries();
25 * const alias = result.registries?.[0]?.aliases?.[0]?.name;
26 * ```
27 *
28 * @binding
29 */
30export interface DescribeRegistries extends Binding.Service<
31 DescribeRegistries,
32 "AWS.ECRPublic.DescribeRegistries",
33 () => Effect.Effect<
34 (
35 request?: DescribeRegistriesRequest,
36 ) => Effect.Effect<
37 ecrpublic.DescribeRegistriesResponse,
38 ecrpublic.DescribeRegistriesError
39 >
40 >
41> {}
42
43export const DescribeRegistries = Binding.Service<DescribeRegistries>(
44 "AWS.ECRPublic.DescribeRegistries",
45);