| 1 | import * as fis from "@distilled.cloud/aws/fis"; |
| 2 | import * as Layer from "effect/Layer"; |
| 3 | import { makeFisTemplateHttpBinding } from "./BindingHttp.ts"; |
| 4 | import { StartExperiment } from "./StartExperiment.ts"; |
| 5 | |
| 6 | export const StartExperimentHttp = Layer.effect( |
| 7 | StartExperiment, |
| 8 | makeFisTemplateHttpBinding({ |
| 9 | tag: "AWS.FIS.StartExperiment", |
| 10 | operation: fis.startExperiment, |
| 11 | // Starting also tags the created experiment (internal or caller-supplied |
| 12 | // tags), which FIS authorizes as fis:TagResource on the experiment ARN. |
| 13 | actions: ["fis:StartExperiment", "fis:TagResource"], |
| 14 | requestKey: "experimentTemplateId", |
| 15 | grantExperimentWildcard: true, |
| 16 | // The first StartExperiment in an account creates AWSServiceRoleForFIS. |
| 17 | grantServiceLinkedRole: true, |
| 18 | }), |
| 19 | ); |