import { BaseServiceError } from "../../types/errors/ServiceError.js"; import type { ECSCompleteEvent } from "../../types/events.js"; /** * A rollback whose image-tag parameter update CloudFormation failed or * cancelled, which the rollout could not hold to the images it rolled to * (FJL-1014): a service or function CloudFormation's rollback moved that the * rollout could not restore, could not read, or could not tell was moved by * that rollback, or a stack it could not see come to rest. `ecsFailure` is the * strongest failed completion of the rollout's own restores, the one the * deploy's failure is classified from. * * Messages are pre-masked at construction, in `rollbackHoldMessages.ts`, from * text masked before it arrives there, as each producer's JSDoc says: * * - The reconcile's failure is a `CloudFormationError` message. The class has * no masking contract on this line, so the hold masks it where it builds * its facts, by `reason: maskSensitiveOutput(result.error.message)` in * `rollbackHold.ts`, whatever the arm that built it did. A stack read's * reason is pre-masked as `aws/utils/stackOperationRead.ts` and * `aws/utils/stackEventsRead.ts` say. * - A service whose restore did not land carries * `rollServiceToTaskDefinition`'s message, pre-masked as its JSDoc in * `taskDefinitionRoll.ts` says: a rollout failure by * `const maskedReason = maskSensitiveOutput(message);` there, and a refused * update around `EcsService.updateService`'s * `const errorMessage = maskSensitiveOutput(rawErrorMessage);` in * `services/infrastructure/EcsService.ts`. * - A function the hold could not read, could not restore or could not read * back after restoring it carries a `LambdaError`'s message, pre-masked as * its JSDoc in `services/infrastructure/LambdaService.ts` says: a refused * GetFunction around `sdkFailureReason(error, abortSignal)`, which is * `maskSensitiveOutput(getErrorMessage(error))` in * `aws/utils/sdkCallTimeout.ts`; a refused UpdateFunctionCode by * `const errorMessage = maskSensitiveOutput(rawErrorMessage);`; a failed * read of the update's completion by `maskSensitiveOutput(rawErrorMessage)`; * and an update Lambda reports failed by * `maskSensitiveOutput(statusReason ?? "no reason reported")`. That file * also masks a function's `lastUpdateStatusReason` where * `getFunctionImage` reads it, by * `maskSensitiveOutput(lastUpdateStatusReason)`. * - CloudFormation's own reasons and ECS's are masked where each is * interpolated, by `maskSensitiveOutput` in `rollbackHoldMessages.ts`, * `rollbackRestore.ts` and `rollbackRestoreRun.ts`. * * Everything else is fixed text, a stack, service or function name, a * CloudFormation logical id, a task definition ARN, an image digest, a status * or a duration. Consumers surface `.message` directly. */ export declare class RollbackNotHeldError extends BaseServiceError { readonly ecsFailure?: ECSCompleteEvent | undefined; constructor(message: string, ecsFailure?: ECSCompleteEvent | undefined); }