Create an App Access Role
Create a Role on an application. Provisioning actions default to a manual task assigned to the app owner.
curl --request POST \
--url https://api.siit.io/v1/app_access/roles \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"application": "<string>",
"approval_policy": "<string>",
"approval_mode": "approval_policy",
"business_reason_required": true,
"is_restricted_to_audience": true,
"audience": {
"matchers": [
{
"values": [
"<string>"
]
}
]
},
"duration": "none",
"max_duration_minutes": 123,
"provisioning_actions": [
{}
],
"deprovisioning_actions": [
{}
]
}
'import requests
url = "https://api.siit.io/v1/app_access/roles"
payload = {
"name": "<string>",
"application": "<string>",
"approval_policy": "<string>",
"approval_mode": "approval_policy",
"business_reason_required": True,
"is_restricted_to_audience": True,
"audience": { "matchers": [{ "values": ["<string>"] }] },
"duration": "none",
"max_duration_minutes": 123,
"provisioning_actions": [{}],
"deprovisioning_actions": [{}]
}
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({
name: '<string>',
application: '<string>',
approval_policy: '<string>',
approval_mode: 'approval_policy',
business_reason_required: true,
is_restricted_to_audience: true,
audience: {matchers: [{values: ['<string>']}]},
duration: 'none',
max_duration_minutes: 123,
provisioning_actions: [{}],
deprovisioning_actions: [{}]
})
};
fetch('https://api.siit.io/v1/app_access/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://api.siit.io/v1/app_access/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([
'name' => '<string>',
'application' => '<string>',
'approval_policy' => '<string>',
'approval_mode' => 'approval_policy',
'business_reason_required' => true,
'is_restricted_to_audience' => true,
'audience' => [
'matchers' => [
[
'values' => [
'<string>'
]
]
]
],
'duration' => 'none',
'max_duration_minutes' => 123,
'provisioning_actions' => [
[
]
],
'deprovisioning_actions' => [
[
]
]
]),
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://api.siit.io/v1/app_access/roles"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"application\": \"<string>\",\n \"approval_policy\": \"<string>\",\n \"approval_mode\": \"approval_policy\",\n \"business_reason_required\": true,\n \"is_restricted_to_audience\": true,\n \"audience\": {\n \"matchers\": [\n {\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n },\n \"duration\": \"none\",\n \"max_duration_minutes\": 123,\n \"provisioning_actions\": [\n {}\n ],\n \"deprovisioning_actions\": [\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://api.siit.io/v1/app_access/roles")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"application\": \"<string>\",\n \"approval_policy\": \"<string>\",\n \"approval_mode\": \"approval_policy\",\n \"business_reason_required\": true,\n \"is_restricted_to_audience\": true,\n \"audience\": {\n \"matchers\": [\n {\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n },\n \"duration\": \"none\",\n \"max_duration_minutes\": 123,\n \"provisioning_actions\": [\n {}\n ],\n \"deprovisioning_actions\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.siit.io/v1/app_access/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 \"name\": \"<string>\",\n \"application\": \"<string>\",\n \"approval_policy\": \"<string>\",\n \"approval_mode\": \"approval_policy\",\n \"business_reason_required\": true,\n \"is_restricted_to_audience\": true,\n \"audience\": {\n \"matchers\": [\n {\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n },\n \"duration\": \"none\",\n \"max_duration_minutes\": 123,\n \"provisioning_actions\": [\n {}\n ],\n \"deprovisioning_actions\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"result": {
"uid": "<string>",
"name": "<string>",
"application": "<string>",
"approval_policy": "<string>",
"approval_mode": "approval_policy",
"business_reason_required": true,
"is_restricted_to_audience": true,
"audience": {
"matchers": [
{
"data_point": "contract_type",
"comparator": "=",
"values": [
"<string>"
]
}
]
},
"duration": "fixed",
"max_duration_minutes": 123,
"max_duration_unit": "days",
"provisioning_actions": [
{}
],
"deprovisioning_actions": [
{}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"error": "<string>",
"troubleshoot": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Request body for creating or updating an App Access Role. Pass UIDs (not objects) for relationship fields.
The application this Role grants access to. Required on create, immutable afterwards. Pass the UID of the related object.
The approval policy used when approval_mode is approval_policy. Defaults to the company default policy. Pass the UID of the related object.
approval_policy, auto_approve, auto_reject, skip_approval People who can see the record when is_restricted_to_audience is true. A person matches when every matcher matches. Without a status matcher, status = employee is added. Writing it replaces all the matchers.
Show child attributes
Show child attributes
fixed, none, optional, required, required_and_limited Required when duration is required_and_limited or fixed
days, hours, minutes, months, weeks Replaces the actions run when access is granted: a single action, or an automated action followed by one manual action. At least one is required. Validate against GET /v1/app_access/roles/provisioning_actions_schema.
Replaces the actions run when access is revoked: none, a single action, or an automated action followed by one manual action. Validate against GET /v1/app_access/roles/provisioning_actions_schema.
Response
App Access Role created
Show child attributes
Show child attributes
curl --request POST \
--url https://api.siit.io/v1/app_access/roles \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"application": "<string>",
"approval_policy": "<string>",
"approval_mode": "approval_policy",
"business_reason_required": true,
"is_restricted_to_audience": true,
"audience": {
"matchers": [
{
"values": [
"<string>"
]
}
]
},
"duration": "none",
"max_duration_minutes": 123,
"provisioning_actions": [
{}
],
"deprovisioning_actions": [
{}
]
}
'import requests
url = "https://api.siit.io/v1/app_access/roles"
payload = {
"name": "<string>",
"application": "<string>",
"approval_policy": "<string>",
"approval_mode": "approval_policy",
"business_reason_required": True,
"is_restricted_to_audience": True,
"audience": { "matchers": [{ "values": ["<string>"] }] },
"duration": "none",
"max_duration_minutes": 123,
"provisioning_actions": [{}],
"deprovisioning_actions": [{}]
}
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({
name: '<string>',
application: '<string>',
approval_policy: '<string>',
approval_mode: 'approval_policy',
business_reason_required: true,
is_restricted_to_audience: true,
audience: {matchers: [{values: ['<string>']}]},
duration: 'none',
max_duration_minutes: 123,
provisioning_actions: [{}],
deprovisioning_actions: [{}]
})
};
fetch('https://api.siit.io/v1/app_access/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://api.siit.io/v1/app_access/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([
'name' => '<string>',
'application' => '<string>',
'approval_policy' => '<string>',
'approval_mode' => 'approval_policy',
'business_reason_required' => true,
'is_restricted_to_audience' => true,
'audience' => [
'matchers' => [
[
'values' => [
'<string>'
]
]
]
],
'duration' => 'none',
'max_duration_minutes' => 123,
'provisioning_actions' => [
[
]
],
'deprovisioning_actions' => [
[
]
]
]),
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://api.siit.io/v1/app_access/roles"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"application\": \"<string>\",\n \"approval_policy\": \"<string>\",\n \"approval_mode\": \"approval_policy\",\n \"business_reason_required\": true,\n \"is_restricted_to_audience\": true,\n \"audience\": {\n \"matchers\": [\n {\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n },\n \"duration\": \"none\",\n \"max_duration_minutes\": 123,\n \"provisioning_actions\": [\n {}\n ],\n \"deprovisioning_actions\": [\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://api.siit.io/v1/app_access/roles")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"application\": \"<string>\",\n \"approval_policy\": \"<string>\",\n \"approval_mode\": \"approval_policy\",\n \"business_reason_required\": true,\n \"is_restricted_to_audience\": true,\n \"audience\": {\n \"matchers\": [\n {\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n },\n \"duration\": \"none\",\n \"max_duration_minutes\": 123,\n \"provisioning_actions\": [\n {}\n ],\n \"deprovisioning_actions\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.siit.io/v1/app_access/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 \"name\": \"<string>\",\n \"application\": \"<string>\",\n \"approval_policy\": \"<string>\",\n \"approval_mode\": \"approval_policy\",\n \"business_reason_required\": true,\n \"is_restricted_to_audience\": true,\n \"audience\": {\n \"matchers\": [\n {\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n },\n \"duration\": \"none\",\n \"max_duration_minutes\": 123,\n \"provisioning_actions\": [\n {}\n ],\n \"deprovisioning_actions\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"result": {
"uid": "<string>",
"name": "<string>",
"application": "<string>",
"approval_policy": "<string>",
"approval_mode": "approval_policy",
"business_reason_required": true,
"is_restricted_to_audience": true,
"audience": {
"matchers": [
{
"data_point": "contract_type",
"comparator": "=",
"values": [
"<string>"
]
}
]
},
"duration": "fixed",
"max_duration_minutes": 123,
"max_duration_unit": "days",
"provisioning_actions": [
{}
],
"deprovisioning_actions": [
{}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"error": "<string>",
"troubleshoot": "<string>"
}
