Create policy
Creates a structured redaction policy for the workspace.
curl --request POST \
--url https://api.example.com/workspaces/{workspaceSlug}/policies/ \
--header 'Content-Type: application/json' \
--data '
{
"source": "template",
"template": {
"method": "safe_harbor",
"kind": "hipaa_deidentification",
"accounts": "standard"
},
"slug": "<string>",
"description": "<string>",
"displayName": "<string>"
}
'import requests
url = "https://api.example.com/workspaces/{workspaceSlug}/policies/"
payload = {
"source": "template",
"template": {
"method": "safe_harbor",
"kind": "hipaa_deidentification",
"accounts": "standard"
},
"slug": "<string>",
"description": "<string>",
"displayName": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
source: 'template',
template: {method: 'safe_harbor', kind: 'hipaa_deidentification', accounts: 'standard'},
slug: '<string>',
description: '<string>',
displayName: '<string>'
})
};
fetch('https://api.example.com/workspaces/{workspaceSlug}/policies/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/workspaces/{workspaceSlug}/policies/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'source' => 'template',
'template' => [
'method' => 'safe_harbor',
'kind' => 'hipaa_deidentification',
'accounts' => 'standard'
],
'slug' => '<string>',
'description' => '<string>',
'displayName' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/workspaces/{workspaceSlug}/policies/"
payload := strings.NewReader("{\n \"source\": \"template\",\n \"template\": {\n \"method\": \"safe_harbor\",\n \"kind\": \"hipaa_deidentification\",\n \"accounts\": \"standard\"\n },\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"displayName\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/workspaces/{workspaceSlug}/policies/")
.header("Content-Type", "application/json")
.body("{\n \"source\": \"template\",\n \"template\": {\n \"method\": \"safe_harbor\",\n \"kind\": \"hipaa_deidentification\",\n \"accounts\": \"standard\"\n },\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"displayName\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/workspaces/{workspaceSlug}/policies/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"source\": \"template\",\n \"template\": {\n \"method\": \"safe_harbor\",\n \"kind\": \"hipaa_deidentification\",\n \"accounts\": \"standard\"\n },\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"displayName\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": {
"username": "<string>",
"avatarUrl": "<string>",
"displayName": "<string>"
},
"definition": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>",
"fallback": {
"audio": {
"kind": "erase"
},
"image": {
"kind": "erase"
},
"tabular": {
"kind": "cell",
"spec": {
"kind": "erase"
}
},
"text": {
"kind": "erase"
}
},
"groups": [
{
"labels": [
"<string>"
],
"name": "<string>",
"description": "<string>"
}
],
"labels": {
"builtins": [
"<string>"
],
"custom": [
{
"id": "<string>",
"localizations": {},
"tags": [
"<string>"
],
"category": "<string>"
}
]
},
"rules": [
{
"action": {
"audio": {
"kind": "erase"
},
"image": {
"kind": "erase"
},
"tabular": {
"kind": "cell",
"spec": {
"kind": "erase"
}
},
"text": {
"kind": "erase"
}
},
"kind": "predicated",
"predicate": {
"kind": "confidence",
"min": 123
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>"
}
]
},
"displayName": "<string>",
"slug": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"workspaceSlug": "<string>",
"description": "<string>"
}{
"message": "<string>",
"name": "<string>",
"resource": "<string>",
"suggestion": "<string>",
"validation": [
{
"code": "<string>",
"field": "<string>",
"message": "<string>",
"params": {}
}
]
}{
"message": "<string>",
"name": "<string>",
"resource": "<string>",
"suggestion": "<string>",
"validation": [
{
"code": "<string>",
"field": "<string>",
"message": "<string>",
"params": {}
}
]
}{
"message": "<string>",
"name": "<string>",
"resource": "<string>",
"suggestion": "<string>",
"validation": [
{
"code": "<string>",
"field": "<string>",
"message": "<string>",
"params": {}
}
]
}"<string>""<string>"Path Parameters
URL-safe workspace identifier.
Body
Request payload for creating a new workspace policy.
The body comes from a template or an inline definition (see [PolicyBody]).
The body's name and description drive the stored columns unless
overridden here.
- Option 1
- Option 2
Request payload for creating a new workspace policy.
The body comes from a template or an inline definition (see [PolicyBody]).
The body's name and description drive the stored columns unless
overridden here.
"template"The built-in policy template to seed from.
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
Show child attributes
Show child attributes
URL slug, unique within the workspace and immutable after creation.
3 - 32^[a-z0-9]+(?:-[a-z0-9]+)*$Optional description override. Defaults to the policy's own description.
4096Optional display name override. Defaults to the policy's own name.
1 - 255Response
Response type for a workspace policy.
Response type for a workspace policy.
When the policy was created.
Account that created this policy.
Show child attributes
Show child attributes
The structured policy body consumed by the engine.
Show child attributes
Show child attributes
Human-readable policy display name.
URL slug of the policy, unique within its workspace.
3 - 32^[a-z0-9]+(?:-[a-z0-9]+)*$When the policy was last updated.
Handle of the workspace this policy belongs to.
3 - 32^[a-z0-9]+(?:-[a-z0-9]+)*$Policy description.
curl --request POST \
--url https://api.example.com/workspaces/{workspaceSlug}/policies/ \
--header 'Content-Type: application/json' \
--data '
{
"source": "template",
"template": {
"method": "safe_harbor",
"kind": "hipaa_deidentification",
"accounts": "standard"
},
"slug": "<string>",
"description": "<string>",
"displayName": "<string>"
}
'import requests
url = "https://api.example.com/workspaces/{workspaceSlug}/policies/"
payload = {
"source": "template",
"template": {
"method": "safe_harbor",
"kind": "hipaa_deidentification",
"accounts": "standard"
},
"slug": "<string>",
"description": "<string>",
"displayName": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
source: 'template',
template: {method: 'safe_harbor', kind: 'hipaa_deidentification', accounts: 'standard'},
slug: '<string>',
description: '<string>',
displayName: '<string>'
})
};
fetch('https://api.example.com/workspaces/{workspaceSlug}/policies/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/workspaces/{workspaceSlug}/policies/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'source' => 'template',
'template' => [
'method' => 'safe_harbor',
'kind' => 'hipaa_deidentification',
'accounts' => 'standard'
],
'slug' => '<string>',
'description' => '<string>',
'displayName' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/workspaces/{workspaceSlug}/policies/"
payload := strings.NewReader("{\n \"source\": \"template\",\n \"template\": {\n \"method\": \"safe_harbor\",\n \"kind\": \"hipaa_deidentification\",\n \"accounts\": \"standard\"\n },\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"displayName\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/workspaces/{workspaceSlug}/policies/")
.header("Content-Type", "application/json")
.body("{\n \"source\": \"template\",\n \"template\": {\n \"method\": \"safe_harbor\",\n \"kind\": \"hipaa_deidentification\",\n \"accounts\": \"standard\"\n },\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"displayName\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/workspaces/{workspaceSlug}/policies/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"source\": \"template\",\n \"template\": {\n \"method\": \"safe_harbor\",\n \"kind\": \"hipaa_deidentification\",\n \"accounts\": \"standard\"\n },\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"displayName\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": {
"username": "<string>",
"avatarUrl": "<string>",
"displayName": "<string>"
},
"definition": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>",
"fallback": {
"audio": {
"kind": "erase"
},
"image": {
"kind": "erase"
},
"tabular": {
"kind": "cell",
"spec": {
"kind": "erase"
}
},
"text": {
"kind": "erase"
}
},
"groups": [
{
"labels": [
"<string>"
],
"name": "<string>",
"description": "<string>"
}
],
"labels": {
"builtins": [
"<string>"
],
"custom": [
{
"id": "<string>",
"localizations": {},
"tags": [
"<string>"
],
"category": "<string>"
}
]
},
"rules": [
{
"action": {
"audio": {
"kind": "erase"
},
"image": {
"kind": "erase"
},
"tabular": {
"kind": "cell",
"spec": {
"kind": "erase"
}
},
"text": {
"kind": "erase"
}
},
"kind": "predicated",
"predicate": {
"kind": "confidence",
"min": 123
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>"
}
]
},
"displayName": "<string>",
"slug": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"workspaceSlug": "<string>",
"description": "<string>"
}{
"message": "<string>",
"name": "<string>",
"resource": "<string>",
"suggestion": "<string>",
"validation": [
{
"code": "<string>",
"field": "<string>",
"message": "<string>",
"params": {}
}
]
}{
"message": "<string>",
"name": "<string>",
"resource": "<string>",
"suggestion": "<string>",
"validation": [
{
"code": "<string>",
"field": "<string>",
"message": "<string>",
"params": {}
}
]
}{
"message": "<string>",
"name": "<string>",
"resource": "<string>",
"suggestion": "<string>",
"validation": [
{
"code": "<string>",
"field": "<string>",
"message": "<string>",
"params": {}
}
]
}"<string>""<string>"