Skip to content
Start here

Create custom profile

client.zeroTrust.dlp.profiles.custom.create(CustomCreateParams { account_id, name, ai_context_enabled, 10 more } params, RequestOptionsoptions?): Profile
POST/accounts/{account_id}/dlp/profiles/custom

Creates a DLP custom profile.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Zero Trust Write
ParametersExpand Collapse
params: CustomCreateParams { account_id, name, ai_context_enabled, 10 more }
account_id: string

Path param

name: string

Body param

ai_context_enabled?: boolean

Body param

allowed_match_count?: number

Body param: Related DLP policies will trigger when the match count exceeds the number set.

formatint32
maximum1000
minimum0
confidence_threshold?: string | null

Body param

Deprecatedcontext_awareness?: ContextAwareness { enabled, skip }

Body param: Scan the context of predefined entries to only return matches surrounded by keywords.

enabled: boolean

If true, scan the context of predefined entries to only return matches surrounded by keywords.

data_classes?: Array<string>

Body param: Data class IDs to associate with the profile.

data_tags?: Array<string>

Body param: Data tag IDs to associate with the profile.

description?: string | null

Body param: The description of the profile.

entries?: Array<DLPNewCustomEntry { enabled, name, pattern, description } | DLPNewWordListEntry { enabled, name, words } >

Body param

One of the following:
DLPNewCustomEntry { enabled, name, pattern, description }
enabled: boolean
name: string
pattern: Pattern { regex, validation }
regex: string
Deprecatedvalidation?: "luhn"
description?: string | null
DLPNewWordListEntry { enabled, name, words }
enabled: boolean
name: string
words: Array<string>
ocr_enabled?: boolean

Body param

sensitivity_levels?: Array<SensitivityLevel>

Body param: Sensitivity levels to associate with the profile.

group_id: string
formatuuid
level_id: string
formatuuid
shared_entries?: Array<SharedEntry>

Body param: Entries from other profiles (e.g. pre-defined Cloudflare profiles, or your Microsoft Information Protection profiles).

enabled: boolean
entry_id: string
formatuuid
ReturnsExpand Collapse
Profile = CustomProfile { id, allowed_match_count, created_at, 13 more } | PredefinedProfile { id, allowed_match_count, entries, 7 more } | IntegrationProfile { id, created_at, entries, 5 more }
One of the following:
CustomProfile { id, allowed_match_count, created_at, 13 more }
id: string

The id of the profile (uuid).

formatuuid
allowed_match_count: number

Related DLP policies will trigger when the match count exceeds the number set.

formatint32
maximum1000
minimum0
created_at: string

When the profile was created.

formatdate-time
name: string

The name of the profile.

ocr_enabled: boolean
type: "custom"
updated_at: string

When the profile was lasted updated.

formatdate-time
ai_context_enabled?: boolean
confidence_threshold?: "low" | "medium" | "high" | "very_high"
One of the following:
"low"
"medium"
"high"
"very_high"
Deprecatedcontext_awareness?: ContextAwareness { enabled, skip }

Scan the context of predefined entries to only return matches surrounded by keywords.

enabled: boolean

If true, scan the context of predefined entries to only return matches surrounded by keywords.

data_classes?: Array<string>

Data classes associated with this profile.

data_tags?: Array<string>

Data tags associated with this profile.

description?: string | null

The description of the profile.

Deprecatedentries?: Array<CustomEntry { id, created_at, enabled, 6 more } | CustomPromptTopicEntry { id, created_at, enabled, 4 more } | PredefinedEntry { id, confidence, enabled, 4 more } | 4 more>
One of the following:
CustomEntry { id, created_at, enabled, 6 more }
id: string
formatuuid
created_at: string
formatdate-time
Deprecatedenabled: boolean
name: string
pattern: Pattern { regex, validation }
regex: string
Deprecatedvalidation?: "luhn"
type: "custom"
updated_at: string
formatdate-time
description?: string | null
Deprecatedprofile_id?: string | null
formatuuid
CustomPromptTopicEntry { id, created_at, enabled, 4 more }
id: string
formatuuid
created_at: string
formatdate-time
Deprecatedenabled: boolean
name: string
type: "custom_prompt_topic"
updated_at: string
formatdate-time
description?: string | null

The optional description of the custom prompt topic entry.

PredefinedEntry { id, confidence, enabled, 4 more }
id: string
formatuuid
confidence: Confidence { ai_context_available, available }
ai_context_available: boolean

Indicates whether this entry has AI remote service validation.

available: boolean

Indicates whether this entry has any form of validation that is not an AI remote service.

enabled: boolean
name: string
type: "predefined"
Deprecatedprofile_id?: string | null
formatuuid
variant?: UnionMember0 { topic_type, type, description } | UnionMember1 { type, description }

A Predefined AI prompt classification topic entry.

One of the following:
UnionMember0 { topic_type, type, description }

A Predefined AI prompt classification topic entry.

topic_type: "Intent" | "Content"
One of the following:
"Intent"
"Content"
type: "PromptTopic"
description?: string | null

A customer-facing explanation of what this predefined AI prompt topic represents.

UnionMember1 { type, description }

A general predefined entry.

type: "General"
description?: string | null

A customer-facing explanation of what this predefined entry represents.

IntegrationEntry { id, created_at, enabled, 4 more }
id: string
formatuuid
created_at: string
formatdate-time
enabled: boolean
name: string
type: "integration"
updated_at: string
formatdate-time
profile_id?: string | null
formatuuid
ExactDataEntry { id, case_sensitive, created_at, 6 more }
id: string
formatuuid
case_sensitive: boolean

Only applies to custom word lists. Determines if the words should be matched in a case-sensitive manner Cannot be set to false if secret is true

created_at: string
formatdate-time
enabled: boolean
name: string
secret: boolean
type: "exact_data"
updated_at: string
formatdate-time
description?: string | null

The optional description of the exact data entry.

DocumentFingerprintEntry { id, created_at, enabled, 4 more }
id: string
formatuuid
created_at: string
formatdate-time
enabled: boolean
name: string
type: "document_fingerprint"
updated_at: string
formatdate-time
description?: string | null

The optional description of the document fingerprint entry.

WordListEntry { id, created_at, enabled, 5 more }
id: string
formatuuid
created_at: string
formatdate-time
enabled: boolean
name: string
type: "word_list"
updated_at: string
formatdate-time
word_list: unknown
profile_id?: string | null
formatuuid
sensitivity_levels?: Array<SensitivityLevel>

Sensitivity levels associated with this profile.

group_id: string
formatuuid
level_id: string
formatuuid
shared_entries?: Array<CustomEntry { id, created_at, enabled, 6 more } | CustomPromptTopicEntry { id, created_at, enabled, 4 more } | PredefinedEntry { id, confidence, enabled, 4 more } | 4 more>
One of the following:
CustomEntry { id, created_at, enabled, 6 more }
id: string
formatuuid
created_at: string
formatdate-time
Deprecatedenabled: boolean
name: string
pattern: Pattern { regex, validation }
regex: string
Deprecatedvalidation?: "luhn"
type: "custom"
updated_at: string
formatdate-time
description?: string | null
Deprecatedprofile_id?: string | null
formatuuid
CustomPromptTopicEntry { id, created_at, enabled, 4 more }
id: string
formatuuid
created_at: string
formatdate-time
Deprecatedenabled: boolean
name: string
type: "custom_prompt_topic"
updated_at: string
formatdate-time
description?: string | null

The optional description of the custom prompt topic entry.

PredefinedEntry { id, confidence, enabled, 4 more }
id: string
formatuuid
confidence: Confidence { ai_context_available, available }
ai_context_available: boolean

Indicates whether this entry has AI remote service validation.

available: boolean

Indicates whether this entry has any form of validation that is not an AI remote service.

enabled: boolean
name: string
type: "predefined"
Deprecatedprofile_id?: string | null
formatuuid
variant?: UnionMember0 { topic_type, type, description } | UnionMember1 { type, description }

A Predefined AI prompt classification topic entry.

One of the following:
UnionMember0 { topic_type, type, description }

A Predefined AI prompt classification topic entry.

topic_type: "Intent" | "Content"
One of the following:
"Intent"
"Content"
type: "PromptTopic"
description?: string | null

A customer-facing explanation of what this predefined AI prompt topic represents.

UnionMember1 { type, description }

A general predefined entry.

type: "General"
description?: string | null

A customer-facing explanation of what this predefined entry represents.

IntegrationEntry { id, created_at, enabled, 4 more }
id: string
formatuuid
created_at: string
formatdate-time
enabled: boolean
name: string
type: "integration"
updated_at: string
formatdate-time
profile_id?: string | null
formatuuid
ExactDataEntry { id, case_sensitive, created_at, 6 more }
id: string
formatuuid
case_sensitive: boolean

Only applies to custom word lists. Determines if the words should be matched in a case-sensitive manner Cannot be set to false if secret is true

created_at: string
formatdate-time
enabled: boolean
name: string
secret: boolean
type: "exact_data"
updated_at: string
formatdate-time
description?: string | null

The optional description of the exact data entry.

DocumentFingerprintEntry { id, created_at, enabled, 4 more }
id: string
formatuuid
created_at: string
formatdate-time
enabled: boolean
name: string
type: "document_fingerprint"
updated_at: string
formatdate-time
description?: string | null

The optional description of the document fingerprint entry.

WordListEntry { id, created_at, enabled, 5 more }
id: string
formatuuid
created_at: string
formatdate-time
enabled: boolean
name: string
type: "word_list"
updated_at: string
formatdate-time
word_list: unknown
profile_id?: string | null
formatuuid
PredefinedProfile { id, allowed_match_count, entries, 7 more }
id: string

The id of the predefined profile (uuid).

formatuuid
allowed_match_count: number
formatint32
Deprecatedentries: Array<CustomEntry { id, created_at, enabled, 6 more } | CustomPromptTopicEntry { id, created_at, enabled, 4 more } | PredefinedEntry { id, confidence, enabled, 4 more } | 4 more>
One of the following:
CustomEntry { id, created_at, enabled, 6 more }
id: string
formatuuid
created_at: string
formatdate-time
Deprecatedenabled: boolean
name: string
pattern: Pattern { regex, validation }
regex: string
Deprecatedvalidation?: "luhn"
type: "custom"
updated_at: string
formatdate-time
description?: string | null
Deprecatedprofile_id?: string | null
formatuuid
CustomPromptTopicEntry { id, created_at, enabled, 4 more }
id: string
formatuuid
created_at: string
formatdate-time
Deprecatedenabled: boolean
name: string
type: "custom_prompt_topic"
updated_at: string
formatdate-time
description?: string | null

The optional description of the custom prompt topic entry.

PredefinedEntry { id, confidence, enabled, 4 more }
id: string
formatuuid
confidence: Confidence { ai_context_available, available }
ai_context_available: boolean

Indicates whether this entry has AI remote service validation.

available: boolean

Indicates whether this entry has any form of validation that is not an AI remote service.

enabled: boolean
name: string
type: "predefined"
Deprecatedprofile_id?: string | null
formatuuid
variant?: UnionMember0 { topic_type, type, description } | UnionMember1 { type, description }

A Predefined AI prompt classification topic entry.

One of the following:
UnionMember0 { topic_type, type, description }

A Predefined AI prompt classification topic entry.

topic_type: "Intent" | "Content"
One of the following:
"Intent"
"Content"
type: "PromptTopic"
description?: string | null

A customer-facing explanation of what this predefined AI prompt topic represents.

UnionMember1 { type, description }

A general predefined entry.

type: "General"
description?: string | null

A customer-facing explanation of what this predefined entry represents.

IntegrationEntry { id, created_at, enabled, 4 more }
id: string
formatuuid
created_at: string
formatdate-time
enabled: boolean
name: string
type: "integration"
updated_at: string
formatdate-time
profile_id?: string | null
formatuuid
ExactDataEntry { id, case_sensitive, created_at, 6 more }
id: string
formatuuid
case_sensitive: boolean

Only applies to custom word lists. Determines if the words should be matched in a case-sensitive manner Cannot be set to false if secret is true

created_at: string
formatdate-time
enabled: boolean
name: string
secret: boolean
type: "exact_data"
updated_at: string
formatdate-time
description?: string | null

The optional description of the exact data entry.

DocumentFingerprintEntry { id, created_at, enabled, 4 more }
id: string
formatuuid
created_at: string
formatdate-time
enabled: boolean
name: string
type: "document_fingerprint"
updated_at: string
formatdate-time
description?: string | null

The optional description of the document fingerprint entry.

WordListEntry { id, created_at, enabled, 5 more }
id: string
formatuuid
created_at: string
formatdate-time
enabled: boolean
name: string
type: "word_list"
updated_at: string
formatdate-time
word_list: unknown
profile_id?: string | null
formatuuid
name: string

The name of the predefined profile.

type: "predefined"
ai_context_enabled?: boolean
confidence_threshold?: "low" | "medium" | "high" | "very_high"
One of the following:
"low"
"medium"
"high"
"very_high"
Deprecatedcontext_awareness?: ContextAwareness { enabled, skip }

Scan the context of predefined entries to only return matches surrounded by keywords.

enabled: boolean

If true, scan the context of predefined entries to only return matches surrounded by keywords.

ocr_enabled?: boolean
open_access?: boolean

Whether this profile can be accessed by anyone.

IntegrationProfile { id, created_at, entries, 5 more }
id: string
formatuuid
created_at: string
formatdate-time
Deprecatedentries: Array<CustomEntry { id, created_at, enabled, 6 more } | CustomPromptTopicEntry { id, created_at, enabled, 4 more } | PredefinedEntry { id, confidence, enabled, 4 more } | 4 more>
One of the following:
CustomEntry { id, created_at, enabled, 6 more }
id: string
formatuuid
created_at: string
formatdate-time
Deprecatedenabled: boolean
name: string
pattern: Pattern { regex, validation }
regex: string
Deprecatedvalidation?: "luhn"
type: "custom"
updated_at: string
formatdate-time
description?: string | null
Deprecatedprofile_id?: string | null
formatuuid
CustomPromptTopicEntry { id, created_at, enabled, 4 more }
id: string
formatuuid
created_at: string
formatdate-time
Deprecatedenabled: boolean
name: string
type: "custom_prompt_topic"
updated_at: string
formatdate-time
description?: string | null

The optional description of the custom prompt topic entry.

PredefinedEntry { id, confidence, enabled, 4 more }
id: string
formatuuid
confidence: Confidence { ai_context_available, available }
ai_context_available: boolean

Indicates whether this entry has AI remote service validation.

available: boolean

Indicates whether this entry has any form of validation that is not an AI remote service.

enabled: boolean
name: string
type: "predefined"
Deprecatedprofile_id?: string | null
formatuuid
variant?: UnionMember0 { topic_type, type, description } | UnionMember1 { type, description }

A Predefined AI prompt classification topic entry.

One of the following:
UnionMember0 { topic_type, type, description }

A Predefined AI prompt classification topic entry.

topic_type: "Intent" | "Content"
One of the following:
"Intent"
"Content"
type: "PromptTopic"
description?: string | null

A customer-facing explanation of what this predefined AI prompt topic represents.

UnionMember1 { type, description }

A general predefined entry.

type: "General"
description?: string | null

A customer-facing explanation of what this predefined entry represents.

IntegrationEntry { id, created_at, enabled, 4 more }
id: string
formatuuid
created_at: string
formatdate-time
enabled: boolean
name: string
type: "integration"
updated_at: string
formatdate-time
profile_id?: string | null
formatuuid
ExactDataEntry { id, case_sensitive, created_at, 6 more }
id: string
formatuuid
case_sensitive: boolean

Only applies to custom word lists. Determines if the words should be matched in a case-sensitive manner Cannot be set to false if secret is true

created_at: string
formatdate-time
enabled: boolean
name: string
secret: boolean
type: "exact_data"
updated_at: string
formatdate-time
description?: string | null

The optional description of the exact data entry.

DocumentFingerprintEntry { id, created_at, enabled, 4 more }
id: string
formatuuid
created_at: string
formatdate-time
enabled: boolean
name: string
type: "document_fingerprint"
updated_at: string
formatdate-time
description?: string | null

The optional description of the document fingerprint entry.

WordListEntry { id, created_at, enabled, 5 more }
id: string
formatuuid
created_at: string
formatdate-time
enabled: boolean
name: string
type: "word_list"
updated_at: string
formatdate-time
word_list: unknown
profile_id?: string | null
formatuuid
name: string
shared_entries: Array<CustomEntry { id, created_at, enabled, 6 more } | CustomPromptTopicEntry { id, created_at, enabled, 4 more } | PredefinedEntry { id, confidence, enabled, 4 more } | 4 more>
One of the following:
CustomEntry { id, created_at, enabled, 6 more }
id: string
formatuuid
created_at: string
formatdate-time
Deprecatedenabled: boolean
name: string
pattern: Pattern { regex, validation }
regex: string
Deprecatedvalidation?: "luhn"
type: "custom"
updated_at: string
formatdate-time
description?: string | null
Deprecatedprofile_id?: string | null
formatuuid
CustomPromptTopicEntry { id, created_at, enabled, 4 more }
id: string
formatuuid
created_at: string
formatdate-time
Deprecatedenabled: boolean
name: string
type: "custom_prompt_topic"
updated_at: string
formatdate-time
description?: string | null

The optional description of the custom prompt topic entry.

PredefinedEntry { id, confidence, enabled, 4 more }
id: string
formatuuid
confidence: Confidence { ai_context_available, available }
ai_context_available: boolean

Indicates whether this entry has AI remote service validation.

available: boolean

Indicates whether this entry has any form of validation that is not an AI remote service.

enabled: boolean
name: string
type: "predefined"
Deprecatedprofile_id?: string | null
formatuuid
variant?: UnionMember0 { topic_type, type, description } | UnionMember1 { type, description }

A Predefined AI prompt classification topic entry.

One of the following:
UnionMember0 { topic_type, type, description }

A Predefined AI prompt classification topic entry.

topic_type: "Intent" | "Content"
One of the following:
"Intent"
"Content"
type: "PromptTopic"
description?: string | null

A customer-facing explanation of what this predefined AI prompt topic represents.

UnionMember1 { type, description }

A general predefined entry.

type: "General"
description?: string | null

A customer-facing explanation of what this predefined entry represents.

IntegrationEntry { id, created_at, enabled, 4 more }
id: string
formatuuid
created_at: string
formatdate-time
enabled: boolean
name: string
type: "integration"
updated_at: string
formatdate-time
profile_id?: string | null
formatuuid
ExactDataEntry { id, case_sensitive, created_at, 6 more }
id: string
formatuuid
case_sensitive: boolean

Only applies to custom word lists. Determines if the words should be matched in a case-sensitive manner Cannot be set to false if secret is true

created_at: string
formatdate-time
enabled: boolean
name: string
secret: boolean
type: "exact_data"
updated_at: string
formatdate-time
description?: string | null

The optional description of the exact data entry.

DocumentFingerprintEntry { id, created_at, enabled, 4 more }
id: string
formatuuid
created_at: string
formatdate-time
enabled: boolean
name: string
type: "document_fingerprint"
updated_at: string
formatdate-time
description?: string | null

The optional description of the document fingerprint entry.

WordListEntry { id, created_at, enabled, 5 more }
id: string
formatuuid
created_at: string
formatdate-time
enabled: boolean
name: string
type: "word_list"
updated_at: string
formatdate-time
word_list: unknown
profile_id?: string | null
formatuuid
type: "integration"
updated_at: string
formatdate-time
description?: string | null

The description of the profile.

Create custom profile

import Cloudflare from 'cloudflare';

const client = new Cloudflare({
  apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});

const profile = await client.zeroTrust.dlp.profiles.custom.create({
  account_id: 'account_id',
  name: 'name',
});

console.log(profile);
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "allowed_match_count": 5,
    "created_at": "2019-12-27T18:11:19.117Z",
    "name": "name",
    "ocr_enabled": true,
    "type": "custom",
    "updated_at": "2019-12-27T18:11:19.117Z",
    "ai_context_enabled": true,
    "confidence_threshold": "low",
    "context_awareness": {
      "enabled": true,
      "skip": {
        "files": true
      }
    },
    "data_classes": [
      "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
    ],
    "data_tags": [
      "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
    ],
    "description": "description",
    "entries": [
      {
        "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "created_at": "2019-12-27T18:11:19.117Z",
        "enabled": true,
        "name": "name",
        "pattern": {
          "regex": "regex",
          "validation": "luhn"
        },
        "type": "custom",
        "updated_at": "2019-12-27T18:11:19.117Z",
        "description": "description",
        "profile_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
      }
    ],
    "sensitivity_levels": [
      {
        "group_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "level_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
      }
    ],
    "shared_entries": [
      {
        "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "created_at": "2019-12-27T18:11:19.117Z",
        "enabled": true,
        "name": "name",
        "pattern": {
          "regex": "regex",
          "validation": "luhn"
        },
        "type": "custom",
        "updated_at": "2019-12-27T18:11:19.117Z",
        "description": "description",
        "profile_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
      }
    ]
  }
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "allowed_match_count": 5,
    "created_at": "2019-12-27T18:11:19.117Z",
    "name": "name",
    "ocr_enabled": true,
    "type": "custom",
    "updated_at": "2019-12-27T18:11:19.117Z",
    "ai_context_enabled": true,
    "confidence_threshold": "low",
    "context_awareness": {
      "enabled": true,
      "skip": {
        "files": true
      }
    },
    "data_classes": [
      "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
    ],
    "data_tags": [
      "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
    ],
    "description": "description",
    "entries": [
      {
        "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "created_at": "2019-12-27T18:11:19.117Z",
        "enabled": true,
        "name": "name",
        "pattern": {
          "regex": "regex",
          "validation": "luhn"
        },
        "type": "custom",
        "updated_at": "2019-12-27T18:11:19.117Z",
        "description": "description",
        "profile_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
      }
    ],
    "sensitivity_levels": [
      {
        "group_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "level_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
      }
    ],
    "shared_entries": [
      {
        "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "created_at": "2019-12-27T18:11:19.117Z",
        "enabled": true,
        "name": "name",
        "pattern": {
          "regex": "regex",
          "validation": "luhn"
        },
        "type": "custom",
        "updated_at": "2019-12-27T18:11:19.117Z",
        "description": "description",
        "profile_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
      }
    ]
  }
}