cloudflare
Version:
The official TypeScript library for the Cloudflare API
216 lines (179 loc) • 5.85 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from '../../core/resource';
import { PagePromise, V4PagePaginationArray, type V4PagePaginationArrayParams } from '../../core/pagination';
import { RequestOptions } from '../../internal/request-options';
import { path } from '../../internal/utils/path';
export class BaseSubmissions extends APIResource {
static override readonly _key: readonly ['emailSecurity', 'submissions'] = Object.freeze([
'emailSecurity',
'submissions',
] as const);
/**
* Returns information for submissions made to reclassify emails. Shows the status,
* outcome, and disposition changes for reclassification requests made by users or
* the security team. Useful for tracking false positive/negative reports.
*
* @example
* ```ts
* // Automatically fetches more pages as needed.
* for await (const submissionListResponse of client.emailSecurity.submissions.list(
* { account_id: '023e105f4ecef8ad9ca31a8372d0c353' },
* )) {
* // ...
* }
* ```
*/
list(
params: SubmissionListParams,
options?: RequestOptions,
): PagePromise<SubmissionListResponsesV4PagePaginationArray, SubmissionListResponse> {
const { account_id, ...query } = params;
return this._client.getAPIList(
path`/accounts/${account_id}/email-security/submissions`,
V4PagePaginationArray<SubmissionListResponse>,
{ query, ...options },
);
}
}
export class Submissions extends BaseSubmissions {}
export type SubmissionListResponsesV4PagePaginationArray = V4PagePaginationArray<SubmissionListResponse>;
export interface SubmissionListResponse {
/**
* When the submission was requested (UTC).
*/
requested_at: string;
submission_id: string;
customer_status?: 'escalated' | 'reviewed' | 'unreviewed' | null;
/**
* The disposition a message is submitted to have.
*/
escalated_as?: 'MALICIOUS' | 'SUSPICIOUS' | 'SPOOF' | 'SPAM' | 'BULK' | 'NONE' | null;
/**
* When the submission was escalated to the security team.
*/
escalated_at?: string | null;
/**
* Email address of the user who escalated the submission.
*/
escalated_by?: string | null;
/**
* Submission ID of the escalated team submission, when this user submission was
* escalated.
*/
escalated_submission_id?: string | null;
/**
* The disposition a message is submitted to have.
*/
original_disposition?: 'MALICIOUS' | 'SUSPICIOUS' | 'SPOOF' | 'SPAM' | 'BULK' | 'NONE' | null;
/**
* EDF hash of the original message.
*/
original_edf_hash?: string | null;
/**
* The postfix ID of the original message that was submitted.
*/
original_postfix_id?: string | null;
/**
* Processing outcome of the submission.
*/
outcome?: string | null;
/**
* The disposition a message is submitted to have.
*/
outcome_disposition?: 'MALICIOUS' | 'SUSPICIOUS' | 'SPOOF' | 'SPAM' | 'BULK' | 'NONE' | null;
/**
* Email address of the user who requested the submission.
*/
requested_by?: string | null;
/**
* The disposition a message is submitted to have.
*/
requested_disposition?: 'MALICIOUS' | 'SUSPICIOUS' | 'SPOOF' | 'SPAM' | 'BULK' | 'NONE' | null;
/**
* @deprecated Use `requested_at` instead.
*/
requested_ts?: string;
/**
* Processing status of the submission.
*/
status?: string | null;
/**
* Subject line of the submitted message.
*/
subject?: string | null;
/**
* Indicates whether a team member or an end user created the submission.
*/
type?: 'Team' | 'User' | null;
}
export interface SubmissionListParams extends V4PagePaginationArrayParams {
/**
* Path param: Account identifier tag.
*/
account_id: string;
/**
* Query param: The sorting direction.
*/
direction?: 'asc' | 'desc';
/**
* Query param: The end of the search date range. Defaults to `now`.
*/
end?: string;
/**
* Query param: When true, return only submissions that were escalated by an end
* user (vs. by the security team). When false, return only submissions that were
* not escalated by an end user. When omitted, no filter is applied.
*/
escalated_from_user?: boolean;
/**
* Query param: Field to sort by.
*/
order?:
| 'submission_id'
| 'subject'
| 'original_disposition'
| 'requested_disposition'
| 'outcome_disposition'
| 'requested_at';
/**
* Query param: The disposition a message is submitted to have.
*/
original_disposition?: 'MALICIOUS' | 'SUSPICIOUS' | 'SPOOF' | 'SPAM' | 'BULK' | 'NONE';
/**
* Query param: The disposition a message is submitted to have.
*/
outcome_disposition?: 'MALICIOUS' | 'SUSPICIOUS' | 'SPOOF' | 'SPAM' | 'BULK' | 'NONE';
/**
* Query param: Search term for filtering submissions.
*/
query?: string | null;
/**
* Query param: The disposition a message is submitted to have.
*/
requested_disposition?: 'MALICIOUS' | 'SUSPICIOUS' | 'SPOOF' | 'SPAM' | 'BULK' | 'NONE';
/**
* Query param: The beginning of the search date range. Defaults to
* `now - 30 days`.
*/
start?: string;
/**
* Query param: Filter by review status — `escalated`, `reviewed`, or `unreviewed`.
*/
status?: string;
/**
* Query param: Filter by a specific submission ID.
*/
submission_id?: string;
/**
* Query param: Filter by who created the submission — `TEAM` for security team
* members or `USER` for end users.
*/
type?: 'TEAM' | 'USER';
}
export declare namespace Submissions {
export {
type SubmissionListResponse as SubmissionListResponse,
type SubmissionListResponsesV4PagePaginationArray as SubmissionListResponsesV4PagePaginationArray,
type SubmissionListParams as SubmissionListParams,
};
}