import type { Credentials } from "@distilled.cloud/aws/Credentials"; import type { Region } from "@distilled.cloud/aws/Region"; import type { HttpClient } from "effect/unstable/http/HttpClient"; import * as Provider from "../../Provider.ts"; import { Resource } from "../../Resource.ts"; import { AWSEnvironment } from "../Environment.ts"; import type { Providers } from "../Providers.ts"; declare const ReplicationSetNotActive_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & { readonly _tag: "ReplicationSetNotActive"; } & Readonly; /** * Raised when the replication set enters a terminal `FAILED` state (or does * not become `ACTIVE` within the bounded wait window) while reconciling. */ export declare class ReplicationSetNotActive extends ReplicationSetNotActive_base<{ message: string; status: string; }> { } export interface ReplicationSetProps { /** * The Regions that Incident Manager replicates your data to, keyed by * Region name. Each Region may specify a customer-managed KMS key for * encryption at rest via `sseKmsKeyId`; omit it to use an AWS-owned key. * * @default the ambient deployment Region with an AWS-owned key */ regions?: Record; /** * Whether deletion protection is enabled. When `true`, the replication set * cannot be deleted until protection is disabled. Alchemy automatically * disables protection before deleting the resource. * * @default false */ deletionProtected?: boolean; /** * Tags applied to the replication set. Alchemy ownership tags are merged * in automatically. */ tags?: Record; } /** @resource */ export interface ReplicationSet extends Resource<"AWS.SSMIncidents.ReplicationSet", ReplicationSetProps, { /** ARN of the replication set. */ arn: string; /** Current status (`ACTIVE`, `CREATING`, `UPDATING`, `DELETING`, `FAILED`). */ status: string; /** Names of the Regions in the replication set. */ regionNames: string[]; /** Whether deletion protection is currently enabled. */ deletionProtected: boolean; }, never, Providers> { } /** * The Incident Manager replication set — the account/region singleton that * onboards AWS Systems Manager Incident Manager. Creating it replicates and * encrypts Incident Manager data (response plans, incidents, contacts) to the * configured Regions; deleting it offboards Incident Manager and removes all * Incident Manager data account-wide. * * Only one replication set can exist per account, so this is a * capture-and-restore singleton: adopting a pre-existing replication set that * Alchemy did not create requires `--adopt`. * * ### Onboarding Incident Manager * **Example:** Replication set in the current Region * ```typescript * const replicationSet = yield* SSMIncidents.ReplicationSet("Incidents", {}); * ``` * * **Example:** Multi-Region replication with a KMS key * ```typescript * const replicationSet = yield* SSMIncidents.ReplicationSet("Incidents", { * regions: { * "us-east-1": {}, * "us-west-2": { sseKmsKeyId: key.keyArn }, * }, * deletionProtected: true, * }); * ``` */ declare const ReplicationSetResource: import("../../Resource.ts").ResourceClass; export { ReplicationSetResource as ReplicationSet }; type IncidentsDeps = Credentials | Region | HttpClient; export declare const ReplicationSetProvider: () => import("effect/Layer").Layer, never, AWSEnvironment | import("../../Stack.ts").Stack | import("../../Stage.ts").Stage | IncidentsDeps>; //# sourceMappingURL=ReplicationSet.d.ts.map