1import * as SSM from "@distilled.cloud/aws/ssm";
2import * as Layer from "effect/Layer";
3import { makeParameterHttpBinding } from "./BindingHttp.ts";
4import { PutParameter } from "./PutParameter.ts";
5
6export const PutParameterHttp = Layer.effect(
7 PutParameter,
8 makeParameterHttpBinding({
9 tag: "AWS.SSM.PutParameter",
10 operation: SSM.putParameter,
11 actions: ["ssm:PutParameter"],
12 // kms:Encrypt + kms:GenerateDataKey so SecureString writes work with the
13 // parameter's customer-managed key (GenerateDataKey covers Advanced-tier
14 // parameters, which envelope-encrypt).
15 kmsActions: ["kms:Encrypt", "kms:GenerateDataKey"],
16 }),
17);