curl --request POST \
--url https://{region}.api.plerion.com/v1/organization/scim/v2/Groups \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/scim+json' \
--data '
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"externalId": "3c9e1d2f-4a7b-4c8d-9e0f-1a2b3c4d5e6f",
"displayName": "cloudsec-prod",
"members": [
{
"value": "0e8e8d5a-6a1b-4c1e-9f0d-2b7c8a9d3e4f"
}
]
}
'import requests
url = "https://{region}.api.plerion.com/v1/organization/scim/v2/Groups"
payload = {
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
"externalId": "3c9e1d2f-4a7b-4c8d-9e0f-1a2b3c4d5e6f",
"displayName": "cloudsec-prod",
"members": [{ "value": "0e8e8d5a-6a1b-4c1e-9f0d-2b7c8a9d3e4f" }]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/scim+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/scim+json'},
body: JSON.stringify({
schemas: ['urn:ietf:params:scim:schemas:core:2.0:Group'],
externalId: '3c9e1d2f-4a7b-4c8d-9e0f-1a2b3c4d5e6f',
displayName: 'cloudsec-prod',
members: [{value: '0e8e8d5a-6a1b-4c1e-9f0d-2b7c8a9d3e4f'}]
})
};
fetch('https://{region}.api.plerion.com/v1/organization/scim/v2/Groups', 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://{region}.api.plerion.com/v1/organization/scim/v2/Groups",
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([
'schemas' => [
'urn:ietf:params:scim:schemas:core:2.0:Group'
],
'externalId' => '3c9e1d2f-4a7b-4c8d-9e0f-1a2b3c4d5e6f',
'displayName' => 'cloudsec-prod',
'members' => [
[
'value' => '0e8e8d5a-6a1b-4c1e-9f0d-2b7c8a9d3e4f'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/scim+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://{region}.api.plerion.com/v1/organization/scim/v2/Groups"
payload := strings.NewReader("{\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:Group\"\n ],\n \"externalId\": \"3c9e1d2f-4a7b-4c8d-9e0f-1a2b3c4d5e6f\",\n \"displayName\": \"cloudsec-prod\",\n \"members\": [\n {\n \"value\": \"0e8e8d5a-6a1b-4c1e-9f0d-2b7c8a9d3e4f\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/scim+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://{region}.api.plerion.com/v1/organization/scim/v2/Groups")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/scim+json")
.body("{\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:Group\"\n ],\n \"externalId\": \"3c9e1d2f-4a7b-4c8d-9e0f-1a2b3c4d5e6f\",\n \"displayName\": \"cloudsec-prod\",\n \"members\": [\n {\n \"value\": \"0e8e8d5a-6a1b-4c1e-9f0d-2b7c8a9d3e4f\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{region}.api.plerion.com/v1/organization/scim/v2/Groups")
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/scim+json'
request.body = "{\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:Group\"\n ],\n \"externalId\": \"3c9e1d2f-4a7b-4c8d-9e0f-1a2b3c4d5e6f\",\n \"displayName\": \"cloudsec-prod\",\n \"members\": [\n {\n \"value\": \"0e8e8d5a-6a1b-4c1e-9f0d-2b7c8a9d3e4f\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"displayName": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"externalId": "<string>",
"members": [
{
"value": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "<unknown>",
"format": "<unknown>",
"readOnly": "<unknown>",
"display": "<string>"
}
],
"meta": {
"resourceType": "User",
"created": "2023-11-07T05:31:56Z",
"lastModified": "2023-11-07T05:31:56Z",
"version": "<string>",
"location": "<string>"
}
}{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:Error"
],
"status": "409",
"scimType": "invalidSyntax",
"detail": "A user with this userName already exists."
}{
"message": "Unauthorized"
}{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:Error"
],
"status": "409",
"scimType": "invalidSyntax",
"detail": "A user with this userName already exists."
}{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:Error"
],
"status": "409",
"scimType": "invalidSyntax",
"detail": "A user with this userName already exists."
}{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:Error"
],
"status": "409",
"scimType": "invalidSyntax",
"detail": "A user with this userName already exists."
}Create a group
Creates a user group. Grant it roles in the Plerion console.
curl --request POST \
--url https://{region}.api.plerion.com/v1/organization/scim/v2/Groups \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/scim+json' \
--data '
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"externalId": "3c9e1d2f-4a7b-4c8d-9e0f-1a2b3c4d5e6f",
"displayName": "cloudsec-prod",
"members": [
{
"value": "0e8e8d5a-6a1b-4c1e-9f0d-2b7c8a9d3e4f"
}
]
}
'import requests
url = "https://{region}.api.plerion.com/v1/organization/scim/v2/Groups"
payload = {
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
"externalId": "3c9e1d2f-4a7b-4c8d-9e0f-1a2b3c4d5e6f",
"displayName": "cloudsec-prod",
"members": [{ "value": "0e8e8d5a-6a1b-4c1e-9f0d-2b7c8a9d3e4f" }]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/scim+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/scim+json'},
body: JSON.stringify({
schemas: ['urn:ietf:params:scim:schemas:core:2.0:Group'],
externalId: '3c9e1d2f-4a7b-4c8d-9e0f-1a2b3c4d5e6f',
displayName: 'cloudsec-prod',
members: [{value: '0e8e8d5a-6a1b-4c1e-9f0d-2b7c8a9d3e4f'}]
})
};
fetch('https://{region}.api.plerion.com/v1/organization/scim/v2/Groups', 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://{region}.api.plerion.com/v1/organization/scim/v2/Groups",
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([
'schemas' => [
'urn:ietf:params:scim:schemas:core:2.0:Group'
],
'externalId' => '3c9e1d2f-4a7b-4c8d-9e0f-1a2b3c4d5e6f',
'displayName' => 'cloudsec-prod',
'members' => [
[
'value' => '0e8e8d5a-6a1b-4c1e-9f0d-2b7c8a9d3e4f'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/scim+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://{region}.api.plerion.com/v1/organization/scim/v2/Groups"
payload := strings.NewReader("{\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:Group\"\n ],\n \"externalId\": \"3c9e1d2f-4a7b-4c8d-9e0f-1a2b3c4d5e6f\",\n \"displayName\": \"cloudsec-prod\",\n \"members\": [\n {\n \"value\": \"0e8e8d5a-6a1b-4c1e-9f0d-2b7c8a9d3e4f\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/scim+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://{region}.api.plerion.com/v1/organization/scim/v2/Groups")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/scim+json")
.body("{\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:Group\"\n ],\n \"externalId\": \"3c9e1d2f-4a7b-4c8d-9e0f-1a2b3c4d5e6f\",\n \"displayName\": \"cloudsec-prod\",\n \"members\": [\n {\n \"value\": \"0e8e8d5a-6a1b-4c1e-9f0d-2b7c8a9d3e4f\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{region}.api.plerion.com/v1/organization/scim/v2/Groups")
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/scim+json'
request.body = "{\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:Group\"\n ],\n \"externalId\": \"3c9e1d2f-4a7b-4c8d-9e0f-1a2b3c4d5e6f\",\n \"displayName\": \"cloudsec-prod\",\n \"members\": [\n {\n \"value\": \"0e8e8d5a-6a1b-4c1e-9f0d-2b7c8a9d3e4f\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"displayName": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"externalId": "<string>",
"members": [
{
"value": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "<unknown>",
"format": "<unknown>",
"readOnly": "<unknown>",
"display": "<string>"
}
],
"meta": {
"resourceType": "User",
"created": "2023-11-07T05:31:56Z",
"lastModified": "2023-11-07T05:31:56Z",
"version": "<string>",
"location": "<string>"
}
}{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:Error"
],
"status": "409",
"scimType": "invalidSyntax",
"detail": "A user with this userName already exists."
}{
"message": "Unauthorized"
}{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:Error"
],
"status": "409",
"scimType": "invalidSyntax",
"detail": "A user with this userName already exists."
}{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:Error"
],
"status": "409",
"scimType": "invalidSyntax",
"detail": "A user with this userName already exists."
}{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:Error"
],
"status": "409",
"scimType": "invalidSyntax",
"detail": "A user with this userName already exists."
}Authorizations
Plerion organization API key (plerion_oak_…), created by an organization admin in the Plerion console. Write operations require a key with readWrite access level; GET and .search work with read access level.
Body
SCIM core Group. A Plerion organization admin grants the group its roles in the console. A group maintained outside Plerion, by an identity provider sync or by calls to this API, is badged SCIM managed there; the badge does not stop this API from changing the group, but the next sync may overwrite the change.
Response
Group created.
SCIM core Group. A Plerion organization admin grants the group its roles in the console. A group maintained outside Plerion, by an identity provider sync or by calls to this API, is badged SCIM managed there; the badge does not stop this API from changing the group, but the next sync may overwrite the change.
[
"urn:ietf:params:scim:schemas:core:2.0:Group"
]
Required. Shown as the user group's name in the Plerion console.
The identity provider's identifier for the group. Filterable.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?