UNPKG

cloudflare

Version:

The official TypeScript library for the Cloudflare API

488 lines (420 loc) 11.1 kB
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import * as Core from "../../../../core"; import { APIResource } from "../../../../resource"; import * as CustomAPI from "./custom"; export class Custom extends APIResource { /** * Creates a set of DLP custom profiles. */ create( params: CustomCreateParams, options?: Core.RequestOptions, ): Core.APIPromise<CustomCreateResponse | null> { const { account_id, ...body } = params; return ( this._client.post(`/accounts/${account_id}/dlp/profiles/custom`, { body, ...options, }) as Core.APIPromise<{ result: CustomCreateResponse | null }> )._thenUnwrap((obj) => obj.result); } /** * Updates a DLP custom profile. */ update( profileId: string, params: CustomUpdateParams, options?: Core.RequestOptions, ): Core.APIPromise<DLPCustomProfile> { const { account_id, ...body } = params; return this._client.put(`/accounts/${account_id}/dlp/profiles/custom/${profileId}`, { body, ...options }); } /** * Deletes a DLP custom profile. */ delete( profileId: string, params: CustomDeleteParams, options?: Core.RequestOptions, ): Core.APIPromise<CustomDeleteResponse> { const { account_id } = params; return ( this._client.delete( `/accounts/${account_id}/dlp/profiles/custom/${profileId}`, options, ) as Core.APIPromise<{ result: CustomDeleteResponse }> )._thenUnwrap((obj) => obj.result); } /** * Fetches a custom DLP profile. */ get( profileId: string, params: CustomGetParams, options?: Core.RequestOptions, ): Core.APIPromise<DLPCustomProfile> { const { account_id } = params; return ( this._client.get( `/accounts/${account_id}/dlp/profiles/custom/${profileId}`, options, ) as Core.APIPromise<{ result: DLPCustomProfile }> )._thenUnwrap((obj) => obj.result); } } export interface DLPCustomProfile { /** * The ID for this profile */ id?: string; /** * Related DLP policies will trigger when the match count exceeds the number set. */ allowed_match_count?: number; /** * Scan the context of predefined entries to only return matches surrounded by * keywords. */ context_awareness?: DLPCustomProfile.ContextAwareness; created_at?: string; /** * The description of the profile. */ description?: string; /** * The entries for this profile. */ entries?: Array<DLPCustomProfile.Entry>; /** * The name of the profile. */ name?: string; /** * If true, scan images via OCR to determine if any text present matches filters. */ ocr_enabled?: boolean; /** * The type of the profile. */ type?: 'custom'; updated_at?: string; } export namespace DLPCustomProfile { /** * Scan the context of predefined entries to only return matches surrounded by * keywords. */ export interface ContextAwareness { /** * If true, scan the context of predefined entries to only return matches * surrounded by keywords. */ enabled: boolean; /** * Content types to exclude from context analysis and return all matches. */ skip: ContextAwareness.Skip; } export namespace ContextAwareness { /** * Content types to exclude from context analysis and return all matches. */ export interface Skip { /** * If the content type is a file, skip context analysis and return all matches. */ files: boolean; } } /** * A custom entry that matches a profile */ export interface Entry { /** * The ID for this entry */ id?: string; created_at?: string; /** * Whether the entry is enabled or not. */ enabled?: boolean; /** * The name of the entry. */ name?: string; /** * A pattern that matches an entry */ pattern?: Entry.Pattern; /** * ID of the parent profile */ profile_id?: unknown; updated_at?: string; } export namespace Entry { /** * A pattern that matches an entry */ export interface Pattern { /** * The regex pattern. */ regex: string; /** * Validation algorithm for the pattern. This algorithm will get run on potential * matches, and if it returns false, the entry will not be matched. */ validation?: 'luhn'; } } } export type CustomCreateResponse = Array<DLPCustomProfile>; export type CustomDeleteResponse = unknown | string | null; export interface CustomCreateParams { /** * Path param: Identifier */ account_id: string; /** * Body param: */ profiles: Array<CustomCreateParams.Profile>; } export namespace CustomCreateParams { export interface Profile { /** * Related DLP policies will trigger when the match count exceeds the number set. */ allowed_match_count?: number; /** * Scan the context of predefined entries to only return matches surrounded by * keywords. */ context_awareness?: Profile.ContextAwareness; /** * The description of the profile. */ description?: string; /** * The entries for this profile. */ entries?: Array<Profile.Entry>; /** * The name of the profile. */ name?: string; /** * If true, scan images via OCR to determine if any text present matches filters. */ ocr_enabled?: boolean; } export namespace Profile { /** * Scan the context of predefined entries to only return matches surrounded by * keywords. */ export interface ContextAwareness { /** * If true, scan the context of predefined entries to only return matches * surrounded by keywords. */ enabled: boolean; /** * Content types to exclude from context analysis and return all matches. */ skip: ContextAwareness.Skip; } export namespace ContextAwareness { /** * Content types to exclude from context analysis and return all matches. */ export interface Skip { /** * If the content type is a file, skip context analysis and return all matches. */ files: boolean; } } /** * A custom entry create payload */ export interface Entry { /** * Whether the entry is enabled or not. */ enabled: boolean; /** * The name of the entry. */ name: string; /** * A pattern that matches an entry */ pattern: Entry.Pattern; } export namespace Entry { /** * A pattern that matches an entry */ export interface Pattern { /** * The regex pattern. */ regex: string; /** * Validation algorithm for the pattern. This algorithm will get run on potential * matches, and if it returns false, the entry will not be matched. */ validation?: 'luhn'; } } } } export interface CustomUpdateParams { /** * Path param: Identifier */ account_id: string; /** * Body param: Related DLP policies will trigger when the match count exceeds the * number set. */ allowed_match_count?: number; /** * Body param: Scan the context of predefined entries to only return matches * surrounded by keywords. */ context_awareness?: CustomUpdateParams.ContextAwareness; /** * Body param: The description of the profile. */ description?: string; /** * Body param: The custom entries for this profile. Array elements with IDs are * modifying the existing entry with that ID. Elements without ID will create new * entries. Any entry not in the list will be deleted. */ entries?: Array<CustomUpdateParams.Entry>; /** * Body param: The name of the profile. */ name?: string; /** * Body param: If true, scan images via OCR to determine if any text present * matches filters. */ ocr_enabled?: boolean; /** * Body param: Entries from other profiles (e.g. pre-defined Cloudflare profiles, * or your Microsoft Information Protection profiles). */ shared_entries?: Array< CustomUpdateParams.DLPSharedEntryUpdatePredefined | CustomUpdateParams.DLPSharedEntryUpdateIntegration >; } export namespace CustomUpdateParams { /** * Scan the context of predefined entries to only return matches surrounded by * keywords. */ export interface ContextAwareness { /** * If true, scan the context of predefined entries to only return matches * surrounded by keywords. */ enabled: boolean; /** * Content types to exclude from context analysis and return all matches. */ skip: ContextAwareness.Skip; } export namespace ContextAwareness { /** * Content types to exclude from context analysis and return all matches. */ export interface Skip { /** * If the content type is a file, skip context analysis and return all matches. */ files: boolean; } } /** * A custom entry that matches a profile */ export interface Entry { /** * Whether the entry is enabled or not. */ enabled?: boolean; /** * The name of the entry. */ name?: string; /** * A pattern that matches an entry */ pattern?: Entry.Pattern; /** * ID of the parent profile */ profile_id?: unknown; } export namespace Entry { /** * A pattern that matches an entry */ export interface Pattern { /** * The regex pattern. */ regex: string; /** * Validation algorithm for the pattern. This algorithm will get run on potential * matches, and if it returns false, the entry will not be matched. */ validation?: 'luhn'; } } /** * Properties of a predefined entry in a custom profile */ export interface DLPSharedEntryUpdatePredefined { /** * Whether the entry is enabled or not. */ enabled?: boolean; } /** * Properties of an integration entry in a custom profile */ export interface DLPSharedEntryUpdateIntegration { /** * Whether the entry is enabled or not. */ enabled?: boolean; } } export interface CustomDeleteParams { /** * Identifier */ account_id: string; } export interface CustomGetParams { /** * Identifier */ account_id: string; } export namespace Custom { export import DLPCustomProfile = CustomAPI.DLPCustomProfile; export import CustomCreateResponse = CustomAPI.CustomCreateResponse; export import CustomDeleteResponse = CustomAPI.CustomDeleteResponse; export import CustomCreateParams = CustomAPI.CustomCreateParams; export import CustomUpdateParams = CustomAPI.CustomUpdateParams; export import CustomDeleteParams = CustomAPI.CustomDeleteParams; export import CustomGetParams = CustomAPI.CustomGetParams; }