import { APIResource } from "../../resource.js"; import * as Core from "../../core.js"; export declare class Traces extends APIResource { /** * Request Trace * * @example * ```ts * const trace = await client.requestTracers.traces.create({ * account_id: '023e105f4ecef8ad9ca31a8372d0c353', * method: 'PUT', * url: 'https://some.zone/some_path', * body: { base64: 'c29tZV9yZXF1ZXN0X2JvZHk=' }, * context: { * geoloc: { city: 'London' }, * skip_challenge: true, * }, * cookies: { * cookie_name_1: 'cookie_value_1', * cookie_name_2: 'cookie_value_2', * }, * headers: { * header_name_1: 'header_value_1', * header_name_2: 'header_value_2', * }, * protocol: 'HTTP/1.1', * }); * ``` */ create(params: TraceCreateParams, options?: Core.RequestOptions): Core.APIPromise; } export type Trace = Array; /** * List of steps acting on request/response */ export interface TraceItem { /** * If step type is rule, then action performed by this rule */ action?: string; /** * If step type is rule, then action parameters of this rule as JSON */ action_parameters?: unknown; /** * If step type is rule or ruleset, the description of this entity */ description?: string; /** * If step type is rule, then expression used to match for this rule */ expression?: string; /** * If step type is ruleset, then kind of this ruleset */ kind?: string; /** * Whether tracing step affected tracing request/response */ matched?: boolean; /** * If step type is ruleset, then name of this ruleset */ name?: string; /** * Tracing step identifying name */ step_name?: string; trace?: Trace; /** * Tracing step type */ type?: string; } /** * Trace result with an origin status code */ export interface TraceCreateResponse { /** * HTTP Status code of zone response */ status_code?: number; trace?: Trace; } export interface TraceCreateParams { /** * Path param: Identifier */ account_id: string; /** * Body param: HTTP Method of tracing request */ method: string; /** * Body param: URL to which perform tracing request */ url: string; /** * Body param: */ body?: TraceCreateParams.Body; /** * Body param: Additional request parameters */ context?: TraceCreateParams.Context; /** * Body param: Cookies added to tracing request */ cookies?: { [key: string]: string; }; /** * Body param: Headers added to tracing request */ headers?: { [key: string]: string; }; /** * Body param: HTTP Protocol of tracing request */ protocol?: string; /** * Body param: Skip sending the request to the Origin server after all rules * evaluation */ skip_response?: boolean; } export declare namespace TraceCreateParams { interface Body { /** * Base64 encoded request body */ base64?: string; /** * Arbitrary json as request body */ json?: unknown; /** * Request body as plain text */ plain_text?: string; } /** * Additional request parameters */ interface Context { /** * Bot score used for evaluating tracing request processing */ bot_score?: number; /** * Geodata for tracing request */ geoloc?: Context.Geoloc; /** * Whether to skip any challenges for tracing request (e.g.: captcha) */ skip_challenge?: boolean; /** * Threat score used for evaluating tracing request processing */ threat_score?: number; } namespace Context { /** * Geodata for tracing request */ interface Geoloc { city?: string; continent?: string; is_eu_country?: boolean; iso_code?: string; latitude?: number; longitude?: number; postal_code?: string; region_code?: string; subdivision_2_iso_code?: string; timezone?: string; } } } export declare namespace Traces { export { type Trace as Trace, type TraceItem as TraceItem, type TraceCreateResponse as TraceCreateResponse, type TraceCreateParams as TraceCreateParams, }; } //# sourceMappingURL=traces.d.ts.map