| 1 | import * as SSM from "@distilled.cloud/aws/ssm"; |
| 2 | import * as Layer from "effect/Layer"; |
| 3 | import { makeParameterHttpBinding } from "./BindingHttp.ts"; |
| 4 | import { PutParameter } from "./PutParameter.ts"; |
| 5 | |
| 6 | export 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 | ); |