Access Policy API
Create Access Policy
Create a new access policy for a team.
POST
/
v2
/
access-policies
Create Access Policy
curl --request POST \
--url https://public.api.serval.com/v2/access-policies \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"teamId": "<string>",
"name": "<string>",
"description": "<string>",
"maxAccessMinutes": 123,
"requireBusinessJustification": true,
"recommendedAccessMinutes": 123,
"requireOnBehalfOfConfirmation": true
}
'import requests
url = "https://public.api.serval.com/v2/access-policies"
payload = {
"teamId": "<string>",
"name": "<string>",
"description": "<string>",
"maxAccessMinutes": 123,
"requireBusinessJustification": True,
"recommendedAccessMinutes": 123,
"requireOnBehalfOfConfirmation": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
teamId: '<string>',
name: '<string>',
description: '<string>',
maxAccessMinutes: 123,
requireBusinessJustification: true,
recommendedAccessMinutes: 123,
requireOnBehalfOfConfirmation: true
})
};
fetch('https://public.api.serval.com/v2/access-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://public.api.serval.com/v2/access-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([
'teamId' => '<string>',
'name' => '<string>',
'description' => '<string>',
'maxAccessMinutes' => 123,
'requireBusinessJustification' => true,
'recommendedAccessMinutes' => 123,
'requireOnBehalfOfConfirmation' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://public.api.serval.com/v2/access-policies"
payload := strings.NewReader("{\n \"teamId\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"maxAccessMinutes\": 123,\n \"requireBusinessJustification\": true,\n \"recommendedAccessMinutes\": 123,\n \"requireOnBehalfOfConfirmation\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://public.api.serval.com/v2/access-policies")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"teamId\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"maxAccessMinutes\": 123,\n \"requireBusinessJustification\": true,\n \"recommendedAccessMinutes\": 123,\n \"requireOnBehalfOfConfirmation\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public.api.serval.com/v2/access-policies")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"teamId\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"maxAccessMinutes\": 123,\n \"requireBusinessJustification\": true,\n \"recommendedAccessMinutes\": 123,\n \"requireOnBehalfOfConfirmation\": true\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"teamId": "<string>",
"name": "<string>",
"description": "<string>",
"maxAccessMinutes": 123,
"requireBusinessJustification": true,
"recommendedAccessMinutes": 123,
"requireOnBehalfOfConfirmation": true
}
}{
"message": "<string>",
"detail": {
"type": "<string>",
"value": "<string>",
"debug": {}
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
The ID of the team.
The name of the access policy.
A description of the access policy.
The maximum number of minutes that access can be granted for (optional).
Whether a business justification is required when requesting access (optional).
The recommended duration in minutes for access requests (optional).
Whether requests made on behalf of others require the target user's confirmation (optional).
Response
Success
The created access policy.
Show child attributes
Show child attributes
Was this page helpful?
⌘I
Create Access Policy
curl --request POST \
--url https://public.api.serval.com/v2/access-policies \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"teamId": "<string>",
"name": "<string>",
"description": "<string>",
"maxAccessMinutes": 123,
"requireBusinessJustification": true,
"recommendedAccessMinutes": 123,
"requireOnBehalfOfConfirmation": true
}
'import requests
url = "https://public.api.serval.com/v2/access-policies"
payload = {
"teamId": "<string>",
"name": "<string>",
"description": "<string>",
"maxAccessMinutes": 123,
"requireBusinessJustification": True,
"recommendedAccessMinutes": 123,
"requireOnBehalfOfConfirmation": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
teamId: '<string>',
name: '<string>',
description: '<string>',
maxAccessMinutes: 123,
requireBusinessJustification: true,
recommendedAccessMinutes: 123,
requireOnBehalfOfConfirmation: true
})
};
fetch('https://public.api.serval.com/v2/access-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://public.api.serval.com/v2/access-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([
'teamId' => '<string>',
'name' => '<string>',
'description' => '<string>',
'maxAccessMinutes' => 123,
'requireBusinessJustification' => true,
'recommendedAccessMinutes' => 123,
'requireOnBehalfOfConfirmation' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://public.api.serval.com/v2/access-policies"
payload := strings.NewReader("{\n \"teamId\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"maxAccessMinutes\": 123,\n \"requireBusinessJustification\": true,\n \"recommendedAccessMinutes\": 123,\n \"requireOnBehalfOfConfirmation\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://public.api.serval.com/v2/access-policies")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"teamId\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"maxAccessMinutes\": 123,\n \"requireBusinessJustification\": true,\n \"recommendedAccessMinutes\": 123,\n \"requireOnBehalfOfConfirmation\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public.api.serval.com/v2/access-policies")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"teamId\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"maxAccessMinutes\": 123,\n \"requireBusinessJustification\": true,\n \"recommendedAccessMinutes\": 123,\n \"requireOnBehalfOfConfirmation\": true\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"teamId": "<string>",
"name": "<string>",
"description": "<string>",
"maxAccessMinutes": 123,
"requireBusinessJustification": true,
"recommendedAccessMinutes": 123,
"requireOnBehalfOfConfirmation": true
}
}{
"message": "<string>",
"detail": {
"type": "<string>",
"value": "<string>",
"debug": {}
}
}
