1import * as ecrpublic from "@distilled.cloud/aws/ecr-public";
2import * as Layer from "effect/Layer";
3import { makePublicRegistryHttpBinding } from "./BindingHttp.ts";
4import { GetAuthorizationToken } from "./GetAuthorizationToken.ts";
5
6export const GetAuthorizationTokenHttp = Layer.effect(
7 GetAuthorizationToken,
8 makePublicRegistryHttpBinding({
9 capability: "GetAuthorizationToken",
10 // The API requires both permissions; see the GetAuthorizationToken docs.
11 iamActions: [
12 "ecr-public:GetAuthorizationToken",
13 "sts:GetServiceBearerToken",
14 ],
15 operation: ecrpublic.getAuthorizationToken,
16 }),
17);