App Resource Role API
Create App Resource Role
Create a new app resource role for a resource.
POST
/
v2
/
app-resource-roles
Create App Resource Role
curl --request POST \
--url https://public.api.serval.com/v2/app-resource-roles \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"resourceId": "<string>",
"name": "<string>",
"provisioningMethod": {
"builtinWorkflow": {}
},
"description": "<string>",
"requestsEnabled": true,
"accessPolicyId": "<string>",
"externalId": "<string>",
"externalData": "<string>",
"owners": [
{
"targetId": "<string>"
}
]
}
'import requests
url = "https://public.api.serval.com/v2/app-resource-roles"
payload = {
"resourceId": "<string>",
"name": "<string>",
"provisioningMethod": { "builtinWorkflow": {} },
"description": "<string>",
"requestsEnabled": True,
"accessPolicyId": "<string>",
"externalId": "<string>",
"externalData": "<string>",
"owners": [{ "targetId": "<string>" }]
}
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({
resourceId: '<string>',
name: '<string>',
provisioningMethod: {builtinWorkflow: {}},
description: '<string>',
requestsEnabled: true,
accessPolicyId: '<string>',
externalId: '<string>',
externalData: '<string>',
owners: [{targetId: '<string>'}]
})
};
fetch('https://public.api.serval.com/v2/app-resource-roles', 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/app-resource-roles",
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([
'resourceId' => '<string>',
'name' => '<string>',
'provisioningMethod' => [
'builtinWorkflow' => [
]
],
'description' => '<string>',
'requestsEnabled' => true,
'accessPolicyId' => '<string>',
'externalId' => '<string>',
'externalData' => '<string>',
'owners' => [
[
'targetId' => '<string>'
]
]
]),
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/app-resource-roles"
payload := strings.NewReader("{\n \"resourceId\": \"<string>\",\n \"name\": \"<string>\",\n \"provisioningMethod\": {\n \"builtinWorkflow\": {}\n },\n \"description\": \"<string>\",\n \"requestsEnabled\": true,\n \"accessPolicyId\": \"<string>\",\n \"externalId\": \"<string>\",\n \"externalData\": \"<string>\",\n \"owners\": [\n {\n \"targetId\": \"<string>\"\n }\n ]\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/app-resource-roles")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"resourceId\": \"<string>\",\n \"name\": \"<string>\",\n \"provisioningMethod\": {\n \"builtinWorkflow\": {}\n },\n \"description\": \"<string>\",\n \"requestsEnabled\": true,\n \"accessPolicyId\": \"<string>\",\n \"externalId\": \"<string>\",\n \"externalData\": \"<string>\",\n \"owners\": [\n {\n \"targetId\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public.api.serval.com/v2/app-resource-roles")
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 \"resourceId\": \"<string>\",\n \"name\": \"<string>\",\n \"provisioningMethod\": {\n \"builtinWorkflow\": {}\n },\n \"description\": \"<string>\",\n \"requestsEnabled\": true,\n \"accessPolicyId\": \"<string>\",\n \"externalId\": \"<string>\",\n \"externalData\": \"<string>\",\n \"owners\": [\n {\n \"targetId\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"resourceId": "<string>",
"name": "<string>",
"description": "<string>",
"requestsEnabled": true,
"accessPolicyId": "<string>",
"provisioningMethod": {
"builtinWorkflow": {}
},
"externalId": "<string>",
"externalData": "<string>",
"requireFormConfirmation": true,
"tagIds": [
"<string>"
],
"isIngested": 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 resource.
The name of the role.
Provisioning configuration. Exactly one method should be set.
- Builtin Workflow
- Custom Workflow
- Linked Roles
- Manual
Show child attributes
Show child attributes
A description of the role.
Whether requests are enabled for the role.
The default access policy for the role (optional).
The external ID of the role in the external system (optional).
Data from the external system as a JSON string (optional).
Owners (users/groups) to set on the created role (optional).
Show child attributes
Show child attributes
Response
Success
The created role.
Show child attributes
Show child attributes
Was this page helpful?
⌘I
Create App Resource Role
curl --request POST \
--url https://public.api.serval.com/v2/app-resource-roles \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"resourceId": "<string>",
"name": "<string>",
"provisioningMethod": {
"builtinWorkflow": {}
},
"description": "<string>",
"requestsEnabled": true,
"accessPolicyId": "<string>",
"externalId": "<string>",
"externalData": "<string>",
"owners": [
{
"targetId": "<string>"
}
]
}
'import requests
url = "https://public.api.serval.com/v2/app-resource-roles"
payload = {
"resourceId": "<string>",
"name": "<string>",
"provisioningMethod": { "builtinWorkflow": {} },
"description": "<string>",
"requestsEnabled": True,
"accessPolicyId": "<string>",
"externalId": "<string>",
"externalData": "<string>",
"owners": [{ "targetId": "<string>" }]
}
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({
resourceId: '<string>',
name: '<string>',
provisioningMethod: {builtinWorkflow: {}},
description: '<string>',
requestsEnabled: true,
accessPolicyId: '<string>',
externalId: '<string>',
externalData: '<string>',
owners: [{targetId: '<string>'}]
})
};
fetch('https://public.api.serval.com/v2/app-resource-roles', 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/app-resource-roles",
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([
'resourceId' => '<string>',
'name' => '<string>',
'provisioningMethod' => [
'builtinWorkflow' => [
]
],
'description' => '<string>',
'requestsEnabled' => true,
'accessPolicyId' => '<string>',
'externalId' => '<string>',
'externalData' => '<string>',
'owners' => [
[
'targetId' => '<string>'
]
]
]),
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/app-resource-roles"
payload := strings.NewReader("{\n \"resourceId\": \"<string>\",\n \"name\": \"<string>\",\n \"provisioningMethod\": {\n \"builtinWorkflow\": {}\n },\n \"description\": \"<string>\",\n \"requestsEnabled\": true,\n \"accessPolicyId\": \"<string>\",\n \"externalId\": \"<string>\",\n \"externalData\": \"<string>\",\n \"owners\": [\n {\n \"targetId\": \"<string>\"\n }\n ]\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/app-resource-roles")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"resourceId\": \"<string>\",\n \"name\": \"<string>\",\n \"provisioningMethod\": {\n \"builtinWorkflow\": {}\n },\n \"description\": \"<string>\",\n \"requestsEnabled\": true,\n \"accessPolicyId\": \"<string>\",\n \"externalId\": \"<string>\",\n \"externalData\": \"<string>\",\n \"owners\": [\n {\n \"targetId\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public.api.serval.com/v2/app-resource-roles")
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 \"resourceId\": \"<string>\",\n \"name\": \"<string>\",\n \"provisioningMethod\": {\n \"builtinWorkflow\": {}\n },\n \"description\": \"<string>\",\n \"requestsEnabled\": true,\n \"accessPolicyId\": \"<string>\",\n \"externalId\": \"<string>\",\n \"externalData\": \"<string>\",\n \"owners\": [\n {\n \"targetId\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"resourceId": "<string>",
"name": "<string>",
"description": "<string>",
"requestsEnabled": true,
"accessPolicyId": "<string>",
"provisioningMethod": {
"builtinWorkflow": {}
},
"externalId": "<string>",
"externalData": "<string>",
"requireFormConfirmation": true,
"tagIds": [
"<string>"
],
"isIngested": true
}
}{
"message": "<string>",
"detail": {
"type": "<string>",
"value": "<string>",
"debug": {}
}
}
