// AUTO-GENERATED by scripts/generate.ts from .generated-specs. Do not edit. import * as S from "@distilled.cloud/core/schema"; import * as API from "@distilled.cloud/core/api"; import * as T from "../traits.ts"; import { CloudflareProtocol, type CloudflareOpError, type CloudflareOpContext, } from "../protocol.ts"; import { CloudflareError, CloudflareRateLimited } from "../errors.ts"; import * as Retry from "../retry.ts"; export type { CloudflareOpError, CloudflareOpContext }; /** Fallback camelCase→wire mapping for opaque content (mined from the distilled SDK). */ const KEY_DICTIONARY: Record> = { authenticationSettings: "authentication_settings", failureCriteria: "failure_criteria", statusCodes: "status_codes", successCriteria: "success_criteria", userProfiles: "user_profiles", usernameExpressions: "username_expressions", }; export class Forbidden extends /*@__PURE__*/ T.applyErrorMatchers( /*@__PURE__*/ S.TaggedError()("Forbidden", { code: S.Number, message: S.String, }), [{ status: 403 }], ) {} export class FraudDetectionNotEntitled extends /*@__PURE__*/ T.applyErrorMatchers( /*@__PURE__*/ S.TaggedError()( "FraudDetectionNotEntitled", { code: S.Number, message: S.String, }, ), [{ code: 10400 }], ) {} export interface GetFraudRequest { /** Identifier. */ zoneId: string; } export const GetFraudRequest = /*@__PURE__*/ S.suspend(() => S.Struct({ zoneId: S.String.pipe(T.Label("zone_id")), }) .pipe( T.Http({ method: "GET", uri: "/zones/{zone_id}/fraud_detection/settings", code: 200, }), ) .pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "GetFraudRequest", }) as any as S.Schema; export type GetResponseAuthenticationSettingsFailureCriteriaKind = "status_code"; export const GetResponseAuthenticationSettingsFailureCriteriaKind = /*@__PURE__*/ S.String; export type GetResponseAuthenticationSettingsFailureCriteriaStatusCodesList = Array; export const GetResponseAuthenticationSettingsFailureCriteriaStatusCodesList = /*@__PURE__*/ S.Array( S.Number, ) as any as S.Schema; export interface GetResponseAuthenticationSettingsFailureCriteria { /** The type of criterion. Currently only `status_code` is supported. */ kind: GetResponseAuthenticationSettingsFailureCriteriaKind; /** HTTP status codes to match against the origin response. */ statusCodes?: GetResponseAuthenticationSettingsFailureCriteriaStatusCodesList | null; } export const GetResponseAuthenticationSettingsFailureCriteria = /*@__PURE__*/ S.suspend(() => S.Struct({ kind: GetResponseAuthenticationSettingsFailureCriteriaKind, statusCodes: S.optional( S.NullOr( GetResponseAuthenticationSettingsFailureCriteriaStatusCodesList, ).pipe(T.Body("status_codes")), ), }), ).annotate({ identifier: "GetResponseAuthenticationSettingsFailureCriteria", }) as any as S.Schema; export type GetResponseAuthenticationSettingsSuccessCriteriaKind = "status_code"; export const GetResponseAuthenticationSettingsSuccessCriteriaKind = /*@__PURE__*/ S.String; export type GetResponseAuthenticationSettingsSuccessCriteriaStatusCodesList = Array; export const GetResponseAuthenticationSettingsSuccessCriteriaStatusCodesList = /*@__PURE__*/ S.Array( S.Number, ) as any as S.Schema; export interface GetResponseAuthenticationSettingsSuccessCriteria { /** The type of criterion. Currently only `status_code` is supported. */ kind: GetResponseAuthenticationSettingsSuccessCriteriaKind; /** HTTP status codes to match against the origin response. */ statusCodes?: GetResponseAuthenticationSettingsSuccessCriteriaStatusCodesList | null; } export const GetResponseAuthenticationSettingsSuccessCriteria = /*@__PURE__*/ S.suspend(() => S.Struct({ kind: GetResponseAuthenticationSettingsSuccessCriteriaKind, statusCodes: S.optional( S.NullOr( GetResponseAuthenticationSettingsSuccessCriteriaStatusCodesList, ).pipe(T.Body("status_codes")), ), }), ).annotate({ identifier: "GetResponseAuthenticationSettingsSuccessCriteria", }) as any as S.Schema; export interface GetResponseAuthenticationSettings { /** Criterion for identifying failed login responses. */ failureCriteria?: GetResponseAuthenticationSettingsFailureCriteria | null; /** Criterion for identifying successful login responses. */ successCriteria?: GetResponseAuthenticationSettingsSuccessCriteria | null; } export const GetResponseAuthenticationSettings = /*@__PURE__*/ S.suspend(() => S.Struct({ failureCriteria: S.optional( S.NullOr(GetResponseAuthenticationSettingsFailureCriteria).pipe( T.Body("failure_criteria"), ), ), successCriteria: S.optional( S.NullOr(GetResponseAuthenticationSettingsSuccessCriteria).pipe( T.Body("success_criteria"), ), ), }), ).annotate({ identifier: "GetResponseAuthenticationSettings", }) as any as S.Schema; export type GetResponseUserProfiles = "enabled" | "disabled"; export const GetResponseUserProfiles = /*@__PURE__*/ S.String; export type GetResponseUsernameExpressionsList = Array; export const GetResponseUsernameExpressionsList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; /** Unwrapped `result` payload of the Cloudflare v4 response envelope. */ export interface GetFraudResponse { /** Configuration for classifying login authentication outcomes based on the origin response. */ authenticationSettings?: GetResponseAuthenticationSettings | null; /** Whether Fraud User Profiles is enabled for the zone. */ userProfiles?: GetResponseUserProfiles | null; /** List of expressions to detect usernames in write HTTP requests. */ usernameExpressions?: GetResponseUsernameExpressionsList | null; } export const GetFraudResponse = /*@__PURE__*/ S.suspend(() => S.Struct({ authenticationSettings: S.optional( S.NullOr(GetResponseAuthenticationSettings).pipe( T.Body("authentication_settings"), ), ), userProfiles: S.optional( S.NullOr(GetResponseUserProfiles).pipe(T.Body("user_profiles")), ), usernameExpressions: S.optional( S.NullOr(GetResponseUsernameExpressionsList).pipe( T.Body("username_expressions"), ), ), }).pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "GetFraudResponse", }) as any as S.Schema; export type UpdateRequestAuthenticationSettingsFailureCriteriaKind = "status_code"; export const UpdateRequestAuthenticationSettingsFailureCriteriaKind = /*@__PURE__*/ S.String; export type UpdateRequestAuthenticationSettingsFailureCriteriaStatusCodesList = Array; export const UpdateRequestAuthenticationSettingsFailureCriteriaStatusCodesList = /*@__PURE__*/ S.Array( S.Number, ) as any as S.Schema; export interface UpdateRequestAuthenticationSettingsFailureCriteria { /** The type of criterion. Currently only `status_code` is supported. */ kind: UpdateRequestAuthenticationSettingsFailureCriteriaKind | (string & {}); /** HTTP status codes to match against the origin response. */ statusCodes?: UpdateRequestAuthenticationSettingsFailureCriteriaStatusCodesList; } export const UpdateRequestAuthenticationSettingsFailureCriteria = /*@__PURE__*/ S.suspend(() => S.Struct({ kind: UpdateRequestAuthenticationSettingsFailureCriteriaKind, statusCodes: S.optional( UpdateRequestAuthenticationSettingsFailureCriteriaStatusCodesList.pipe( T.Body("status_codes"), ), ), }), ).annotate({ identifier: "UpdateRequestAuthenticationSettingsFailureCriteria", }) as any as S.Schema; export type UpdateRequestAuthenticationSettingsSuccessCriteriaKind = "status_code"; export const UpdateRequestAuthenticationSettingsSuccessCriteriaKind = /*@__PURE__*/ S.String; export type UpdateRequestAuthenticationSettingsSuccessCriteriaStatusCodesList = Array; export const UpdateRequestAuthenticationSettingsSuccessCriteriaStatusCodesList = /*@__PURE__*/ S.Array( S.Number, ) as any as S.Schema; export interface UpdateRequestAuthenticationSettingsSuccessCriteria { /** The type of criterion. Currently only `status_code` is supported. */ kind: UpdateRequestAuthenticationSettingsSuccessCriteriaKind | (string & {}); /** HTTP status codes to match against the origin response. */ statusCodes?: UpdateRequestAuthenticationSettingsSuccessCriteriaStatusCodesList; } export const UpdateRequestAuthenticationSettingsSuccessCriteria = /*@__PURE__*/ S.suspend(() => S.Struct({ kind: UpdateRequestAuthenticationSettingsSuccessCriteriaKind, statusCodes: S.optional( UpdateRequestAuthenticationSettingsSuccessCriteriaStatusCodesList.pipe( T.Body("status_codes"), ), ), }), ).annotate({ identifier: "UpdateRequestAuthenticationSettingsSuccessCriteria", }) as any as S.Schema; export interface UpdateRequestAuthenticationSettings { /** Criterion for identifying failed login responses. */ failureCriteria?: UpdateRequestAuthenticationSettingsFailureCriteria; /** Criterion for identifying successful login responses. */ successCriteria?: UpdateRequestAuthenticationSettingsSuccessCriteria; } export const UpdateRequestAuthenticationSettings = /*@__PURE__*/ S.suspend(() => S.Struct({ failureCriteria: S.optional( UpdateRequestAuthenticationSettingsFailureCriteria.pipe( T.Body("failure_criteria"), ), ), successCriteria: S.optional( UpdateRequestAuthenticationSettingsSuccessCriteria.pipe( T.Body("success_criteria"), ), ), }), ).annotate({ identifier: "UpdateRequestAuthenticationSettings", }) as any as S.Schema; export type UpdateRequestUserProfiles = "enabled" | "disabled"; export const UpdateRequestUserProfiles = /*@__PURE__*/ S.String; export type UpdateRequestUsernameExpressionsList = Array; export const UpdateRequestUsernameExpressionsList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export interface PutFraudRequest { /** Identifier. */ zoneId: string; /** Configuration for classifying login authentication outcomes based on the origin response. */ authenticationSettings?: UpdateRequestAuthenticationSettings; /** Whether Fraud User Profiles is enabled for the zone. */ userProfiles?: UpdateRequestUserProfiles | (string & {}); /** List of expressions to detect usernames in write HTTP requests. */ usernameExpressions?: UpdateRequestUsernameExpressionsList; } export const PutFraudRequest = /*@__PURE__*/ S.suspend(() => S.Struct({ zoneId: S.String.pipe(T.Label("zone_id")), authenticationSettings: S.optional( UpdateRequestAuthenticationSettings.pipe( T.Body("authentication_settings"), ), ), userProfiles: S.optional( UpdateRequestUserProfiles.pipe(T.Body("user_profiles")), ), usernameExpressions: S.optional( UpdateRequestUsernameExpressionsList.pipe(T.Body("username_expressions")), ), }) .pipe( T.Http({ method: "PUT", uri: "/zones/{zone_id}/fraud_detection/settings", code: 200, }), ) .pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "PutFraudRequest", }) as any as S.Schema; export type UpdateResponseAuthenticationSettingsFailureCriteriaKind = "status_code"; export const UpdateResponseAuthenticationSettingsFailureCriteriaKind = /*@__PURE__*/ S.String; export type UpdateResponseAuthenticationSettingsFailureCriteriaStatusCodesList = Array; export const UpdateResponseAuthenticationSettingsFailureCriteriaStatusCodesList = /*@__PURE__*/ S.Array( S.Number, ) as any as S.Schema; export interface UpdateResponseAuthenticationSettingsFailureCriteria { /** The type of criterion. Currently only `status_code` is supported. */ kind: UpdateResponseAuthenticationSettingsFailureCriteriaKind; /** HTTP status codes to match against the origin response. */ statusCodes?: UpdateResponseAuthenticationSettingsFailureCriteriaStatusCodesList | null; } export const UpdateResponseAuthenticationSettingsFailureCriteria = /*@__PURE__*/ S.suspend(() => S.Struct({ kind: UpdateResponseAuthenticationSettingsFailureCriteriaKind, statusCodes: S.optional( S.NullOr( UpdateResponseAuthenticationSettingsFailureCriteriaStatusCodesList, ).pipe(T.Body("status_codes")), ), }), ).annotate({ identifier: "UpdateResponseAuthenticationSettingsFailureCriteria", }) as any as S.Schema; export type UpdateResponseAuthenticationSettingsSuccessCriteriaKind = "status_code"; export const UpdateResponseAuthenticationSettingsSuccessCriteriaKind = /*@__PURE__*/ S.String; export type UpdateResponseAuthenticationSettingsSuccessCriteriaStatusCodesList = Array; export const UpdateResponseAuthenticationSettingsSuccessCriteriaStatusCodesList = /*@__PURE__*/ S.Array( S.Number, ) as any as S.Schema; export interface UpdateResponseAuthenticationSettingsSuccessCriteria { /** The type of criterion. Currently only `status_code` is supported. */ kind: UpdateResponseAuthenticationSettingsSuccessCriteriaKind; /** HTTP status codes to match against the origin response. */ statusCodes?: UpdateResponseAuthenticationSettingsSuccessCriteriaStatusCodesList | null; } export const UpdateResponseAuthenticationSettingsSuccessCriteria = /*@__PURE__*/ S.suspend(() => S.Struct({ kind: UpdateResponseAuthenticationSettingsSuccessCriteriaKind, statusCodes: S.optional( S.NullOr( UpdateResponseAuthenticationSettingsSuccessCriteriaStatusCodesList, ).pipe(T.Body("status_codes")), ), }), ).annotate({ identifier: "UpdateResponseAuthenticationSettingsSuccessCriteria", }) as any as S.Schema; export interface UpdateResponseAuthenticationSettings { /** Criterion for identifying failed login responses. */ failureCriteria?: UpdateResponseAuthenticationSettingsFailureCriteria | null; /** Criterion for identifying successful login responses. */ successCriteria?: UpdateResponseAuthenticationSettingsSuccessCriteria | null; } export const UpdateResponseAuthenticationSettings = /*@__PURE__*/ S.suspend( () => S.Struct({ failureCriteria: S.optional( S.NullOr(UpdateResponseAuthenticationSettingsFailureCriteria).pipe( T.Body("failure_criteria"), ), ), successCriteria: S.optional( S.NullOr(UpdateResponseAuthenticationSettingsSuccessCriteria).pipe( T.Body("success_criteria"), ), ), }), ).annotate({ identifier: "UpdateResponseAuthenticationSettings", }) as any as S.Schema; export type UpdateResponseUserProfiles = "enabled" | "disabled"; export const UpdateResponseUserProfiles = /*@__PURE__*/ S.String; export type UpdateResponseUsernameExpressionsList = Array; export const UpdateResponseUsernameExpressionsList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; /** Unwrapped `result` payload of the Cloudflare v4 response envelope. */ export interface PutFraudResponse { /** Configuration for classifying login authentication outcomes based on the origin response. */ authenticationSettings?: UpdateResponseAuthenticationSettings | null; /** Whether Fraud User Profiles is enabled for the zone. */ userProfiles?: UpdateResponseUserProfiles | null; /** List of expressions to detect usernames in write HTTP requests. */ usernameExpressions?: UpdateResponseUsernameExpressionsList | null; } export const PutFraudResponse = /*@__PURE__*/ S.suspend(() => S.Struct({ authenticationSettings: S.optional( S.NullOr(UpdateResponseAuthenticationSettings).pipe( T.Body("authentication_settings"), ), ), userProfiles: S.optional( S.NullOr(UpdateResponseUserProfiles).pipe(T.Body("user_profiles")), ), usernameExpressions: S.optional( S.NullOr(UpdateResponseUsernameExpressionsList).pipe( T.Body("username_expressions"), ), ), }).pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "PutFraudResponse", }) as any as S.Schema; export type GetFraudError = Forbidden | CloudflareOpError; /** Retrieve Fraud Detection settings for a zone. */ export const getFraud: API.OperationMethod< GetFraudRequest, GetFraudResponse, GetFraudError, CloudflareOpContext > = /*@__PURE__*/ API.make(() => ({ input: GetFraudRequest, output: GetFraudResponse, errors: [Forbidden, CloudflareRateLimited, CloudflareError], protocol: CloudflareProtocol, retry: Retry.Retry, })); export type PutFraudError = | Forbidden | FraudDetectionNotEntitled | CloudflareOpError; /** Update Fraud Detection settings for a zone. Notes on `username_expressions` behavior: - If omitted or set to null, expressions are not modified. - If provided as an empty array `[]`, all expressions will be cleared. */ export const putFraud: API.OperationMethod< PutFraudRequest, PutFraudResponse, PutFraudError, CloudflareOpContext > = /*@__PURE__*/ API.make(() => ({ input: PutFraudRequest, output: PutFraudResponse, errors: [ Forbidden, FraudDetectionNotEntitled, CloudflareRateLimited, CloudflareError, ], protocol: CloudflareProtocol, retry: Retry.Retry, }));