/** Schedule target (an SQS queue) + delivery policy. */
export interface ScheduleTarget {
  arn: string;
  /** IAM role Scheduler assumes to invoke the target. */
  roleArn: string;
  /** JSON payload delivered to the target. */
  input: string;
  retry?: { maxAttempts: number; maxEventAgeSeconds: number };
}

/** One one-time schedule definition. */
export interface OneTimeScheduleParams {
  /** Deterministic name → idempotent upsert/delete. */
  name: string;
  /** Fire time (ISO 8601, UTC). */
  fireAtIso: string;
  groupName?: string;
  target: ScheduleTarget;
  /** Self-delete after firing. Default true. */
  deleteAfterCompletion?: boolean;
}
