Create policy
Creates a structured redaction policy for the workspace. A labels body creates (or reuses) a one-shot policy and returns 200 when an identical one already exists; a template or inline body always creates a new policy and returns 201.
curl --request POST \
--url https://api.example.com/workspaces/{workspaceId}/policies \
--header 'Content-Type: application/json' \
--data '
{
"source": "template",
"template": {
"kind": "hipaa_deidentification",
"method": "safe_harbor",
"accounts": "standard"
},
"description": "<string>",
"displayName": "<string>"
}
'import requests
url = "https://api.example.com/workspaces/{workspaceId}/policies"
payload = {
"source": "template",
"template": {
"kind": "hipaa_deidentification",
"method": "safe_harbor",
"accounts": "standard"
},
"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: {kind: 'hipaa_deidentification', method: 'safe_harbor', accounts: 'standard'},
description: '<string>',
displayName: '<string>'
})
};
fetch('https://api.example.com/workspaces/{workspaceId}/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/{workspaceId}/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' => [
'kind' => 'hipaa_deidentification',
'method' => 'safe_harbor',
'accounts' => 'standard'
],
'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/{workspaceId}/policies"
payload := strings.NewReader("{\n \"source\": \"template\",\n \"template\": {\n \"kind\": \"hipaa_deidentification\",\n \"method\": \"safe_harbor\",\n \"accounts\": \"standard\"\n },\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/{workspaceId}/policies")
.header("Content-Type", "application/json")
.body("{\n \"source\": \"template\",\n \"template\": {\n \"kind\": \"hipaa_deidentification\",\n \"method\": \"safe_harbor\",\n \"accounts\": \"standard\"\n },\n \"description\": \"<string>\",\n \"displayName\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/workspaces/{workspaceId}/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 \"kind\": \"hipaa_deidentification\",\n \"method\": \"safe_harbor\",\n \"accounts\": \"standard\"\n },\n \"description\": \"<string>\",\n \"displayName\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"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"
}
},
"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>",
"attribution": {
"name": "<string>",
"kind": "freeform",
"description": "<string>"
},
"description": "<string>"
}
],
"scopes": [
{
"labels": [
"<string>"
],
"name": "<string>",
"attribution": {
"name": "<string>",
"kind": "freeform",
"description": "<string>"
},
"description": "<string>"
}
],
"template": {
"id": "<string>",
"version": "<string>"
}
},
"displayName": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "authored",
"updatedAt": "2023-11-07T05:31:56Z",
"versionNumber": 123,
"workspaceHandle": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"description": "<string>"
}{
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"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"
}
},
"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>",
"attribution": {
"name": "<string>",
"kind": "freeform",
"description": "<string>"
},
"description": "<string>"
}
],
"scopes": [
{
"labels": [
"<string>"
],
"name": "<string>",
"attribution": {
"name": "<string>",
"kind": "freeform",
"description": "<string>"
},
"description": "<string>"
}
],
"template": {
"id": "<string>",
"version": "<string>"
}
},
"displayName": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "authored",
"updatedAt": "2023-11-07T05:31:56Z",
"versionNumber": 123,
"workspaceHandle": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"description": "<string>"
}{
"message": "<string>",
"name": "<string>"
}{
"message": "<string>",
"name": "<string>"
}{
"message": "<string>",
"name": "<string>"
}<string><string>Path Parameters
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
- Option 3
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
Show child attributes
Show child attributes
Optional description override. Defaults to the policy's own description.
4096Optional display name override. Defaults to the policy's own name. Ignored for a one-shot (labels) body, whose name is generated.
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 (the current version).
Show child attributes
Show child attributes
Human-readable policy display name.
Unique identifier of the policy.
How the policy came to exist. A one-shot policy (minted from labels) is content-addressed, deduplicated, and immutable; an authored policy is a normal, editable policy.
"authored"When the policy was last updated.
The current version number of the policy's definition.
URL-safe workspace handle. Display-only.
3 - 32^[a-z0-9]+(?:-[a-z0-9]+)*$Unique identifier of the workspace.
Policy description.
curl --request POST \
--url https://api.example.com/workspaces/{workspaceId}/policies \
--header 'Content-Type: application/json' \
--data '
{
"source": "template",
"template": {
"kind": "hipaa_deidentification",
"method": "safe_harbor",
"accounts": "standard"
},
"description": "<string>",
"displayName": "<string>"
}
'import requests
url = "https://api.example.com/workspaces/{workspaceId}/policies"
payload = {
"source": "template",
"template": {
"kind": "hipaa_deidentification",
"method": "safe_harbor",
"accounts": "standard"
},
"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: {kind: 'hipaa_deidentification', method: 'safe_harbor', accounts: 'standard'},
description: '<string>',
displayName: '<string>'
})
};
fetch('https://api.example.com/workspaces/{workspaceId}/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/{workspaceId}/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' => [
'kind' => 'hipaa_deidentification',
'method' => 'safe_harbor',
'accounts' => 'standard'
],
'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/{workspaceId}/policies"
payload := strings.NewReader("{\n \"source\": \"template\",\n \"template\": {\n \"kind\": \"hipaa_deidentification\",\n \"method\": \"safe_harbor\",\n \"accounts\": \"standard\"\n },\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/{workspaceId}/policies")
.header("Content-Type", "application/json")
.body("{\n \"source\": \"template\",\n \"template\": {\n \"kind\": \"hipaa_deidentification\",\n \"method\": \"safe_harbor\",\n \"accounts\": \"standard\"\n },\n \"description\": \"<string>\",\n \"displayName\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/workspaces/{workspaceId}/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 \"kind\": \"hipaa_deidentification\",\n \"method\": \"safe_harbor\",\n \"accounts\": \"standard\"\n },\n \"description\": \"<string>\",\n \"displayName\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"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"
}
},
"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>",
"attribution": {
"name": "<string>",
"kind": "freeform",
"description": "<string>"
},
"description": "<string>"
}
],
"scopes": [
{
"labels": [
"<string>"
],
"name": "<string>",
"attribution": {
"name": "<string>",
"kind": "freeform",
"description": "<string>"
},
"description": "<string>"
}
],
"template": {
"id": "<string>",
"version": "<string>"
}
},
"displayName": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "authored",
"updatedAt": "2023-11-07T05:31:56Z",
"versionNumber": 123,
"workspaceHandle": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"description": "<string>"
}{
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"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"
}
},
"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>",
"attribution": {
"name": "<string>",
"kind": "freeform",
"description": "<string>"
},
"description": "<string>"
}
],
"scopes": [
{
"labels": [
"<string>"
],
"name": "<string>",
"attribution": {
"name": "<string>",
"kind": "freeform",
"description": "<string>"
},
"description": "<string>"
}
],
"template": {
"id": "<string>",
"version": "<string>"
}
},
"displayName": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "authored",
"updatedAt": "2023-11-07T05:31:56Z",
"versionNumber": 123,
"workspaceHandle": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"description": "<string>"
}{
"message": "<string>",
"name": "<string>"
}{
"message": "<string>",
"name": "<string>"
}{
"message": "<string>",
"name": "<string>"
}<string><string>