// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from '../../resource';
import * as Core from '../../core';
export class Screenshot extends APIResource {
/**
* Takes a screenshot of a webpage from provided URL or HTML. Control page loading
* with `gotoOptions` and `waitFor*` options. Customize screenshots with
* `viewport`, `fullPage`, `clip` and others.
*
* @example
* ```ts
* const screenshot =
* await client.browserRendering.screenshot.create({
* account_id: 'account_id',
* html: '
Hello World!
',
* });
* ```
*/
create(
params: ScreenshotCreateParams,
options?: Core.RequestOptions,
): Core.APIPromise {
const { account_id, cacheTTL, ...body } = params;
return this._client.post(`/accounts/${account_id}/browser-rendering/screenshot`, {
query: { cacheTTL },
body,
...options,
});
}
}
export interface ScreenshotCreateResponse {
/**
* Response status.
*/
success: boolean;
errors?: Array;
}
export namespace ScreenshotCreateResponse {
export interface Error {
/**
* Error code.
*/
code: number;
/**
* Error message.
*/
message: string;
}
}
export type ScreenshotCreateParams = ScreenshotCreateParams.Variant0 | ScreenshotCreateParams.Variant1;
export declare namespace ScreenshotCreateParams {
export interface Variant0 {
/**
* Path param: Account ID.
*/
account_id: string;
/**
* Body param: Set the content of the page, eg: `Hello World!!
`. Either
* `html` or `url` must be set.
*/
html: string;
/**
* Query param: Cache TTL default is 5s. Set to 0 to disable.
*/
cacheTTL?: number;
/**
* Body param: The maximum duration allowed for the browser action to complete
* after the page has loaded (such as taking screenshots, extracting content, or
* generating PDFs). If this time limit is exceeded, the action stops and returns a
* timeout error.
*/
actionTimeout?: number;
/**
* Body param: Adds a `