curl --request POST \
--url https://use.hoop.dev/api/attributes \
--header 'Content-Type: application/json' \
--data '
{
"name": "default-session-attribute",
"access_control_group_names": [
"engineering",
"sre"
],
"access_request_rule_names": [
"rule1",
"rule2"
],
"connection_names": [
"pgdemo",
"mysql-prod"
],
"datamasking_rule_names": [
"rule1",
"rule2"
],
"description": "Blocks high-risk SQL commands",
"guardrail_rule_names": [
"rule1",
"rule2"
]
}
'import requests
url = "https://use.hoop.dev/api/attributes"
payload = {
"name": "default-session-attribute",
"access_control_group_names": ["engineering", "sre"],
"access_request_rule_names": ["rule1", "rule2"],
"connection_names": ["pgdemo", "mysql-prod"],
"datamasking_rule_names": ["rule1", "rule2"],
"description": "Blocks high-risk SQL commands",
"guardrail_rule_names": ["rule1", "rule2"]
}
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({
name: 'default-session-attribute',
access_control_group_names: ['engineering', 'sre'],
access_request_rule_names: ['rule1', 'rule2'],
connection_names: ['pgdemo', 'mysql-prod'],
datamasking_rule_names: ['rule1', 'rule2'],
description: 'Blocks high-risk SQL commands',
guardrail_rule_names: ['rule1', 'rule2']
})
};
fetch('https://use.hoop.dev/api/attributes', 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://use.hoop.dev/api/attributes",
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([
'name' => 'default-session-attribute',
'access_control_group_names' => [
'engineering',
'sre'
],
'access_request_rule_names' => [
'rule1',
'rule2'
],
'connection_names' => [
'pgdemo',
'mysql-prod'
],
'datamasking_rule_names' => [
'rule1',
'rule2'
],
'description' => 'Blocks high-risk SQL commands',
'guardrail_rule_names' => [
'rule1',
'rule2'
]
]),
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://use.hoop.dev/api/attributes"
payload := strings.NewReader("{\n \"name\": \"default-session-attribute\",\n \"access_control_group_names\": [\n \"engineering\",\n \"sre\"\n ],\n \"access_request_rule_names\": [\n \"rule1\",\n \"rule2\"\n ],\n \"connection_names\": [\n \"pgdemo\",\n \"mysql-prod\"\n ],\n \"datamasking_rule_names\": [\n \"rule1\",\n \"rule2\"\n ],\n \"description\": \"Blocks high-risk SQL commands\",\n \"guardrail_rule_names\": [\n \"rule1\",\n \"rule2\"\n ]\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://use.hoop.dev/api/attributes")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"default-session-attribute\",\n \"access_control_group_names\": [\n \"engineering\",\n \"sre\"\n ],\n \"access_request_rule_names\": [\n \"rule1\",\n \"rule2\"\n ],\n \"connection_names\": [\n \"pgdemo\",\n \"mysql-prod\"\n ],\n \"datamasking_rule_names\": [\n \"rule1\",\n \"rule2\"\n ],\n \"description\": \"Blocks high-risk SQL commands\",\n \"guardrail_rule_names\": [\n \"rule1\",\n \"rule2\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://use.hoop.dev/api/attributes")
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 \"name\": \"default-session-attribute\",\n \"access_control_group_names\": [\n \"engineering\",\n \"sre\"\n ],\n \"access_request_rule_names\": [\n \"rule1\",\n \"rule2\"\n ],\n \"connection_names\": [\n \"pgdemo\",\n \"mysql-prod\"\n ],\n \"datamasking_rule_names\": [\n \"rule1\",\n \"rule2\"\n ],\n \"description\": \"Blocks high-risk SQL commands\",\n \"guardrail_rule_names\": [\n \"rule1\",\n \"rule2\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"access_control_group_names": [
"engineering",
"sre"
],
"access_request_rule_names": [
"rule1",
"rule2"
],
"connection_names": [
"pgdemo",
"mysql-prod"
],
"created_at": "2024-07-25T15:56:35.317601Z",
"datamasking_rule_names": [
"rule1",
"rule2"
],
"description": "Blocks high-risk SQL commands",
"guardrail_rule_names": [
"rule1",
"rule2"
],
"id": "15B5A2FD-0706-4A47-B1CF-B93CCFC5B3D7",
"managed_by": "hoop",
"name": "default-session-attribute",
"org_id": "37EEBC20-D8DF-416B-8AC2-01B6EB456318"
}{
"message": "the error description"
}{
"message": "the error description"
}{
"message": "the error description"
}Create Attribute
Create a new attribute for the organization.
curl --request POST \
--url https://use.hoop.dev/api/attributes \
--header 'Content-Type: application/json' \
--data '
{
"name": "default-session-attribute",
"access_control_group_names": [
"engineering",
"sre"
],
"access_request_rule_names": [
"rule1",
"rule2"
],
"connection_names": [
"pgdemo",
"mysql-prod"
],
"datamasking_rule_names": [
"rule1",
"rule2"
],
"description": "Blocks high-risk SQL commands",
"guardrail_rule_names": [
"rule1",
"rule2"
]
}
'import requests
url = "https://use.hoop.dev/api/attributes"
payload = {
"name": "default-session-attribute",
"access_control_group_names": ["engineering", "sre"],
"access_request_rule_names": ["rule1", "rule2"],
"connection_names": ["pgdemo", "mysql-prod"],
"datamasking_rule_names": ["rule1", "rule2"],
"description": "Blocks high-risk SQL commands",
"guardrail_rule_names": ["rule1", "rule2"]
}
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({
name: 'default-session-attribute',
access_control_group_names: ['engineering', 'sre'],
access_request_rule_names: ['rule1', 'rule2'],
connection_names: ['pgdemo', 'mysql-prod'],
datamasking_rule_names: ['rule1', 'rule2'],
description: 'Blocks high-risk SQL commands',
guardrail_rule_names: ['rule1', 'rule2']
})
};
fetch('https://use.hoop.dev/api/attributes', 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://use.hoop.dev/api/attributes",
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([
'name' => 'default-session-attribute',
'access_control_group_names' => [
'engineering',
'sre'
],
'access_request_rule_names' => [
'rule1',
'rule2'
],
'connection_names' => [
'pgdemo',
'mysql-prod'
],
'datamasking_rule_names' => [
'rule1',
'rule2'
],
'description' => 'Blocks high-risk SQL commands',
'guardrail_rule_names' => [
'rule1',
'rule2'
]
]),
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://use.hoop.dev/api/attributes"
payload := strings.NewReader("{\n \"name\": \"default-session-attribute\",\n \"access_control_group_names\": [\n \"engineering\",\n \"sre\"\n ],\n \"access_request_rule_names\": [\n \"rule1\",\n \"rule2\"\n ],\n \"connection_names\": [\n \"pgdemo\",\n \"mysql-prod\"\n ],\n \"datamasking_rule_names\": [\n \"rule1\",\n \"rule2\"\n ],\n \"description\": \"Blocks high-risk SQL commands\",\n \"guardrail_rule_names\": [\n \"rule1\",\n \"rule2\"\n ]\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://use.hoop.dev/api/attributes")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"default-session-attribute\",\n \"access_control_group_names\": [\n \"engineering\",\n \"sre\"\n ],\n \"access_request_rule_names\": [\n \"rule1\",\n \"rule2\"\n ],\n \"connection_names\": [\n \"pgdemo\",\n \"mysql-prod\"\n ],\n \"datamasking_rule_names\": [\n \"rule1\",\n \"rule2\"\n ],\n \"description\": \"Blocks high-risk SQL commands\",\n \"guardrail_rule_names\": [\n \"rule1\",\n \"rule2\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://use.hoop.dev/api/attributes")
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 \"name\": \"default-session-attribute\",\n \"access_control_group_names\": [\n \"engineering\",\n \"sre\"\n ],\n \"access_request_rule_names\": [\n \"rule1\",\n \"rule2\"\n ],\n \"connection_names\": [\n \"pgdemo\",\n \"mysql-prod\"\n ],\n \"datamasking_rule_names\": [\n \"rule1\",\n \"rule2\"\n ],\n \"description\": \"Blocks high-risk SQL commands\",\n \"guardrail_rule_names\": [\n \"rule1\",\n \"rule2\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"access_control_group_names": [
"engineering",
"sre"
],
"access_request_rule_names": [
"rule1",
"rule2"
],
"connection_names": [
"pgdemo",
"mysql-prod"
],
"created_at": "2024-07-25T15:56:35.317601Z",
"datamasking_rule_names": [
"rule1",
"rule2"
],
"description": "Blocks high-risk SQL commands",
"guardrail_rule_names": [
"rule1",
"rule2"
],
"id": "15B5A2FD-0706-4A47-B1CF-B93CCFC5B3D7",
"managed_by": "hoop",
"name": "default-session-attribute",
"org_id": "37EEBC20-D8DF-416B-8AC2-01B6EB456318"
}{
"message": "the error description"
}{
"message": "the error description"
}{
"message": "the error description"
}Body
The request body resource
"default-session-attribute"
["engineering", "sre"]
["rule1", "rule2"]
["pgdemo", "mysql-prod"]
["rule1", "rule2"]
The description of the attribute
"Blocks high-risk SQL commands"
["rule1", "rule2"]
Response
Created
Access control group names associated with this attribute
["engineering", "sre"]
Access request rule names associated with this attribute
["rule1", "rule2"]
Connection names associated with this attribute
["pgdemo", "mysql-prod"]
The time the resource was created
"2024-07-25T15:56:35.317601Z"
Datamasking rule names associated with this attribute
["rule1", "rule2"]
The description of the attribute
"Blocks high-risk SQL commands"
Guardrail rule names associated with this attribute
["rule1", "rule2"]
The resource identifier
"15B5A2FD-0706-4A47-B1CF-B93CCFC5B3D7"
Managed By is a read only field that indicates who manages this attribute. When set (e.g. "hoop" for protection profiles), the attribute cannot be modified or deleted directly.
"hoop"
The name of the attribute
"default-session-attribute"
Organization ID that owns this attribute
"37EEBC20-D8DF-416B-8AC2-01B6EB456318"
Was this page helpful?