export interface IDeploymentDescriptor { schema?: string; name: string; description: string; asmApiUrl: string; asmUIUrl: string; authTicket: string; messageTemplate?: string; messageHours?: number; zebraScenarios?: IZebraScenarios; browserScenarios?: any[]; checks: IChecksGroup[]; } export interface IBrowserScenario { name: string; browserName: string; minVersion: number; version?: string; locationMatch: string; url: string; run: boolean; } export declare type RunCheckType = 'none' | 'all' | 'scheduled'; export interface IChecksGroup { name: string; disabled?: boolean; run: RunCheckType; monitorGroups: string[]; alerts?: IAlert[]; locationMatch: string; tags?: any[]; zebraChecks?: IZebraChecks; urlChecks?: IUrlChecks; browserChecks?: IBrowserChecks; commandChecks?: ICommandChecks; } export declare type AlertType = 'email' | 'sms' | 'webhook'; export interface IAlert { type: AlertType; name: string; severity: string; } export interface ICheckTypeContainer { tags?: any[]; locationMatch?: string; } export interface IZebraChecks extends ICheckTypeContainer { config: ICheckConfig; checks: IZebraCheck[]; } export interface IUrlChecks extends ICheckTypeContainer { config: IUrlCheckConfig; checks: IUrlCheck[]; } export interface ICommandChecks extends ICheckTypeContainer { config: ICommandCheckConfig; checks: ICommandCheck[]; } export interface IBrowserChecks extends ICheckTypeContainer { browserName: string; minVersion: number; version?: string; config: IBrowserCheckConfig; checks: IBrowserCheck[]; } export interface ICheck { locationMatch?: string; id?: number; tags?: any[]; } export interface IZebraCheck extends ICheck { config: IZebraCheckConfig; } export interface IUrlCheck extends ICheck { config: IUrlCheckConfig; } export interface IArgument { name: string; value: string; } export declare type CommandCategoryType = 'Diagnostic' | 'DNS' | 'DNS v2' | 'Integrations' | 'FTP' | 'Security'; export interface ICommandCheck extends ICheck { config: ICommandCheckConfig; category: CommandCategoryType; name: string; arguments: IArgument[]; } export interface IBrowserCheck extends ICheck { config: IBrowserCheckConfig; scenario?: string; browserName?: string; minVersion?: number; version?: string; } export interface IZebraCheckConfig extends ICheckConfig { scenario_filename: string; scenario_file_type?: string; additional_options?: string; } export declare type ContentPatternType = 'literal' | 'regex'; export declare type RequestMethodType = 'CONNECT' | 'DELETE' | 'HEAD' | 'GET' | 'OPTIONS' | 'PATCH' | 'POST' | 'PUT' | 'TRACE'; export declare type AuthType = 'basic' | 'none'; export interface IUrlAuthentication { type: AuthType; username?: string; password?: string; } export interface IUrlCheckConfig extends ICheckConfig { url: string; request_method: RequestMethodType; authentication?: IUrlAuthentication; content_pattern_type?: ContentPatternType; content_pattern?: string; content_pattern_case_sensitive?: boolean; post_data?: string; custom_hdrs?: any; max_redirects?: number; disable_certificate_verification?: boolean; } export interface IBrowserCheckConfig extends ICheckConfig { url: string; } export interface ICommandCheckConfig extends ICheckConfig { unit?: string; } export interface ICheckConfig { name: string; description: string; interval_seconds: number; max_attempts: number; location_code: string; threshold_w?: number; threshold_w_set_0?: boolean; threshold_w_dynamic?: IThresholdDynamic; threshold_e?: number; threshold_e_set_0?: boolean; threshold_e_dynamic?: IThresholdDynamic; threshold_lo_w?: number; threshold_lo_w_set_0?: boolean; threshold_lo_w_dynamic?: IThresholdDynamic; threshold_lo_e?: number; threshold_lo_e_set_0?: boolean; threshold_lo_e_dynamic?: IThresholdDynamic; scheduled_inclusion?: string; scheduled_exclusion?: string; } export declare type BaseLineMeasureType = 'avg' | 'mdn' | 'std'; export interface IThresholdDynamic { baselineMeasure: string; baselinePeriodH: number; factor: number; offset: number; } export interface IZebraScenarios { compileOptions: IZebraCompileOptions; groups: IZebraScenarioGroup[]; } export declare type ContentTestType = 'heuristic' | 'size' | 'none'; export declare type TimeVarianceType = 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100; export declare type ExternalXmlSizeType = 0 | 1024 | 2048 | 4096 | 8192; export declare type NtlmProtocolType = 'lm' | 'v1' | 'v2'; export interface IZebraCompileOptions { ContentTest: ContentTestType; NeedContentFilter?: boolean; NeedErrorFilter?: boolean; PageThinkTime?: number; PageThinkTimeVariance?: TimeVarianceType; ExternalXmlAndSoapRequestSize?: ExternalXmlSizeType; PrxVersion: string; NtlmEnable?: boolean; NtlmProtocol?: NtlmProtocolType; NtlmDomain?: string; NtlmUsername?: string; NtlmPassword?: string; NtlmCyberArkCommand?: string; DisableHTTPProxyCache?: boolean; HttpHost?: string; HttpsHost?: string; HttpPort?: number; HttpsPort?: number; AuthUsername?: string; AuthPassword?: string; ExcludeNextProxyFor?: string; StripAcceptHeader?: boolean; StripReferrerHeader?: boolean; } export interface IZebraScenarioGroup { name: string; compileOptions: IZebraCompileOptions; scenarios: IZebraScenario[]; disabled?: boolean; directory?: string; } export declare type ZebraScenarioType = 'zip' | 'prxdat'; export interface IZebraScenario { name: string; type: ZebraScenarioType; plugins?: string[]; files?: string[]; subDirectory?: string; }