1import * as kms from "@distilled.cloud/gcp/cloudkms_v1";
2import * as Layer from "effect/Layer";
3import { makeCryptoKeyHttpBinding } from "./BindingHttp.ts";
4import { Encrypt } from "./Encrypt.ts";
5
6/**
7 * HTTP implementation of {@link Encrypt}.
8 *
9 * @layer
10 * @provides GCP.KMS.Encrypt
11 */
12export const EncryptHttp = Layer.effect(
13 Encrypt,
14 makeCryptoKeyHttpBinding({
15 tag: "GCP.KMS.Encrypt",
16 iam: { role: "roles/cloudkms.cryptoKeyEncrypter", on: "kms.cryptoKey" },
17 operation: kms.encryptProjectsLocationsKeyRingsCryptoKeys,
18 }),
19);