import { Construct } from './construct.js'; import { Diagnostics } from './diagnostics.js'; import type { StatusPageTheme } from './status-page.js'; /** * The colors of one theme (light or dark) of a v3 status page. Each color is * a hex string such as `#FF0000` or `#F00`. Any color left out keeps * Checkly's default for that theme. */ export interface StatusPageV3ThemeColorGroup { /** * Background of the page. */ bodyBackgroundColor?: string; /** * Background of the page header. */ headerBackgroundColor?: string; /** * Text in the page header. */ headerFontColor?: string; /** * Titles and headings. */ titleFontColor?: string; /** * Regular body text. */ bodyFontColor?: string; /** * De-emphasized body text, such as timestamps. */ bodyFontColorMuted?: string; /** * Navigation links. */ navigationFontColor?: string; /** * Links in the page content. */ linkFontColor?: string; /** * Background of component and incident cards. */ cardBackgroundColor?: string; /** * Borders and dividers. */ borderColor?: string; /** * Background of primary buttons, such as "Subscribe". */ primaryButtonBackgroundColor?: string; /** * Text of primary buttons. */ primaryButtonFontColor?: string; } /** * Custom colors of a v3 status page, per theme. Either theme can be left out * to keep its defaults. */ export interface StatusPageV3ThemeColors { /** * Colors used when the page renders in light mode. */ light?: StatusPageV3ThemeColorGroup; /** * Colors used when the page renders in dark mode. */ dark?: StatusPageV3ThemeColorGroup; } export interface StatusPageV3Props { /** * The name of the status page. */ name: string; /** * The URL of the status page. */ url: string; /** * A custom user domain, e.g. "status.example.com". See the docs on updating your DNS and SSL usage. */ customDomain?: string; /** * A short description shown on the status page. */ description?: string; /** * A URL pointing to an image file that serves as the logo for the status page. */ logo?: string; /** * A URL pointing to an image file that serves as the logo in dark mode. */ logoDark?: string; /** * The URL that clicking the logo should redirect the user to. */ redirectTo?: string; /** * A URL pointing to an image file to be used as the favicon for the status page. */ favicon?: string; /** * The default theme of the status page. */ defaultTheme?: StatusPageTheme; /** * A link to your privacy policy, shown in the page footer. */ privacyPolicyLink?: string; /** * A link to your terms of service, shown in the page footer. */ termsOfServiceLink?: string; /** * A link to your support channel, shown in the page footer. */ supportLink?: string; /** * Free-form footer text. */ footerText?: string; /** * A Google Analytics tag ID (e.g. "G-XXXXXXXXXX") to embed on the public page. */ googleAnalyticsTag?: string; /** * Whether search engines may index the public page. Defaults to true. */ allowIndexing?: boolean; /** * Custom colors for the light and dark theme of the page. Only the colors * you set are changed; the rest keep Checkly's defaults. Requires custom * theme colors to be part of your plan. */ themeColors?: StatusPageV3ThemeColors; } /** * Creates a reference to an existing v3 Status Page. * * References link existing resources to a project without managing them — * typically so components and automation rules declared in code can attach * to a page that was created in the UI. * * Use {@link StatusPageV3.fromId()} instead of instantiating this class directly. */ export declare class StatusPageV3Ref extends Construct { constructor(logicalId: string, physicalId: string); describe(): string; validate(diagnostics: Diagnostics): Promise; synthesize(): null; } /** * Creates a v3 (components-based) Status Page. * * Unlike {@link StatusPage}, a v3 page has no cards or services. Its structure * is declared with {@link StatusPageV3Component} constructs that point at the * page, and incidents can be automated with {@link StatusPageV3AutomationRule}. * * A page's generation cannot change in place: a logical id that was deployed * as a `StatusPage` cannot be redeployed as a `StatusPageV3` (or vice versa). */ export declare class StatusPageV3 extends Construct { name: string; url: string; customDomain?: string; description?: string; logo?: string; logoDark?: string; redirectTo?: string; favicon?: string; defaultTheme?: StatusPageTheme; privacyPolicyLink?: string; termsOfServiceLink?: string; supportLink?: string; footerText?: string; googleAnalyticsTag?: string; allowIndexing?: boolean; themeColors?: StatusPageV3ThemeColors; static readonly __checklyType = "status-page"; /** * Constructs the v3 Status Page instance * * @param logicalId unique project-scoped resource name identification * @param props status page configuration properties * * {@link https://www.checklyhq.com/docs/constructs/status-page-v3/ Read more in the docs} */ constructor(logicalId: string, props: StatusPageV3Props); describe(): string; validate(diagnostics: Diagnostics): Promise; private validateThemeColors; /** * @param id - The UUID of the existing v3 status page */ static fromId(id: string): StatusPageV3Ref; synthesize(): any | null; }