import { Construct } from './construct.js'; import { Diagnostics } from './diagnostics.js'; import { StatusPageV3, StatusPageV3Ref } from './status-page-v3.js'; export type StatusPageV3ComponentType = 'SERVICE' | 'GROUP'; interface StatusPageV3ComponentBaseProps { /** * The v3 status page this component belongs to. A component belongs to * exactly one page and cannot be moved to another one later. */ statusPage: StatusPageV3 | StatusPageV3Ref; /** * The name shown on the status page. */ name: string; /** * An optional description shown next to the name. */ description?: string; /** * Hide the component from the public page while keeping it available for * incidents and automation. Defaults to false. */ hidden?: boolean; /** * Position among its siblings; lower comes first. */ displayOrder: number; /** * The GROUP component to nest this component under. Must be on the same * status page. */ parent?: StatusPageV3Component | StatusPageV3ComponentRef; } export interface StatusPageV3ServiceComponentProps extends StatusPageV3ComponentBaseProps { /** * `SERVICE`: a monitored thing with its own status. This is the default. */ type?: 'SERVICE'; /** * Show the historical status (the uptime bar) of the component on the * status page. Defaults to true. */ showHistoricalData?: boolean; /** * Only available on a `GROUP` component. */ expandedByDefault?: never; } export interface StatusPageV3GroupComponentProps extends StatusPageV3ComponentBaseProps { /** * `GROUP`: a container for other components. */ type: 'GROUP'; /** * Render the group expanded when the status page loads. Defaults to false. */ expandedByDefault?: boolean; /** * Show the historical status (the uptime bar) of the group on the status * page. Defaults to true. */ showHistoricalData?: boolean; } /** * Discriminated on `type`: `expandedByDefault` is only available with * `type: 'GROUP'`. The type-specific settings are sent to the backend as the * component's `configuration`; an omitted setting takes the backend default. */ export type StatusPageV3ComponentProps = StatusPageV3ServiceComponentProps | StatusPageV3GroupComponentProps; /** * Creates a reference to an existing v3 Status Page Component. * * Use {@link StatusPageV3Component.fromId()} instead of instantiating this class directly. */ export declare class StatusPageV3ComponentRef extends Construct { constructor(logicalId: string, physicalId: string); describe(): string; validate(diagnostics: Diagnostics): Promise; synthesize(): null; } /** * Creates a Component of a v3 Status Page */ export declare class StatusPageV3Component extends Construct { statusPage: StatusPageV3 | StatusPageV3Ref; componentType: StatusPageV3ComponentType; name: string; description?: string; hidden?: boolean; displayOrder: number; parent?: StatusPageV3Component | StatusPageV3ComponentRef; showHistoricalData?: boolean; expandedByDefault?: boolean; static readonly __checklyType = "status-page-component"; /** * Constructs the Status Page Component instance * * @param logicalId unique project-scoped resource name identification * @param props component configuration properties * * {@link https://www.checklyhq.com/docs/constructs/status-page-v3-component/ Read more in the docs} */ constructor(logicalId: string, props: StatusPageV3ComponentProps); describe(): string; /** * @param id - The UUID of the existing status page component */ static fromId(id: string): StatusPageV3ComponentRef; validate(diagnostics: Diagnostics): Promise; private settings; private configuration; private validateSettings; synthesize(): any | null; } export {};