curl --request POST \
--url https://developer.synq.io/api/entities/service-accounts/v1alpha/plan \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"changes": {
"upsertServiceAccounts": [
{
"id": "<string>",
"name": "<string>",
"toolEntityId": "<string>",
"policy": {
"countsTowardPopularity": true,
"listedAsFrequentUser": true,
"countsTowardPopularityResolved": true,
"listedAsFrequentUserResolved": true
},
"priority": 123,
"matchers": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"platformUserIds": [
"<string>"
],
"logins": [
"<string>"
],
"emails": [
"<string>"
],
"advanced": {
"platforms": [],
"platformRootEntityIds": [
"<string>"
],
"userTypes": [
"<string>"
],
"emailDomains": [
"<string>"
],
"issuers": [],
"minIssuerShare": 0.5,
"footprints": [],
"minFootprintShare": 0.5
},
"internalOnly": true
}
],
"builtIn": true,
"excludedPlatformUserIds": [
"<string>"
],
"etag": "<string>",
"updatedBy": {
"name": "<string>",
"email": {
"userEmail": "jsmith@example.com"
}
},
"createdAt": "2023-01-15T01:30:15.01Z",
"updatedAt": "2023-01-15T01:30:15.01Z"
}
],
"deleteServiceAccountIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"upsertPersonLinks": [
{
"matcher": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"platformUserIds": [
"<string>"
],
"logins": [
"<string>"
],
"emails": [
"<string>"
],
"advanced": {
"platforms": [],
"platformRootEntityIds": [
"<string>"
],
"userTypes": [
"<string>"
],
"emailDomains": [
"<string>"
],
"issuers": [],
"minIssuerShare": 0.5,
"footprints": [],
"minFootprintShare": 0.5
},
"internalOnly": true
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"priority": 123,
"identityPattern": "<string>",
"etag": "<string>",
"updatedBy": {
"name": "<string>",
"email": {
"userEmail": "jsmith@example.com"
}
},
"createdAt": "2023-01-15T01:30:15.01Z",
"updatedAt": "2023-01-15T01:30:15.01Z"
}
],
"deletePersonLinkIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"builtInPolicies": [
{
"policy": {
"countsTowardPopularity": true,
"listedAsFrequentUser": true,
"countsTowardPopularityResolved": true,
"listedAsFrequentUserResolved": true
},
"builtInId": "<string>"
}
],
"coalesceLogins": [
{
"platformUserId": "<string>",
"excluded": true
}
]
},
"windowDays": 91
}
'import requests
url = "https://developer.synq.io/api/entities/service-accounts/v1alpha/plan"
payload = {
"changes": {
"upsertServiceAccounts": [
{
"id": "<string>",
"name": "<string>",
"toolEntityId": "<string>",
"policy": {
"countsTowardPopularity": True,
"listedAsFrequentUser": True,
"countsTowardPopularityResolved": True,
"listedAsFrequentUserResolved": True
},
"priority": 123,
"matchers": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"platformUserIds": ["<string>"],
"logins": ["<string>"],
"emails": ["<string>"],
"advanced": {
"platforms": [],
"platformRootEntityIds": ["<string>"],
"userTypes": ["<string>"],
"emailDomains": ["<string>"],
"issuers": [],
"minIssuerShare": 0.5,
"footprints": [],
"minFootprintShare": 0.5
},
"internalOnly": True
}
],
"builtIn": True,
"excludedPlatformUserIds": ["<string>"],
"etag": "<string>",
"updatedBy": {
"name": "<string>",
"email": { "userEmail": "jsmith@example.com" }
},
"createdAt": "2023-01-15T01:30:15.01Z",
"updatedAt": "2023-01-15T01:30:15.01Z"
}
],
"deleteServiceAccountIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"upsertPersonLinks": [
{
"matcher": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"platformUserIds": ["<string>"],
"logins": ["<string>"],
"emails": ["<string>"],
"advanced": {
"platforms": [],
"platformRootEntityIds": ["<string>"],
"userTypes": ["<string>"],
"emailDomains": ["<string>"],
"issuers": [],
"minIssuerShare": 0.5,
"footprints": [],
"minFootprintShare": 0.5
},
"internalOnly": True
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"priority": 123,
"identityPattern": "<string>",
"etag": "<string>",
"updatedBy": {
"name": "<string>",
"email": { "userEmail": "jsmith@example.com" }
},
"createdAt": "2023-01-15T01:30:15.01Z",
"updatedAt": "2023-01-15T01:30:15.01Z"
}
],
"deletePersonLinkIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"builtInPolicies": [
{
"policy": {
"countsTowardPopularity": True,
"listedAsFrequentUser": True,
"countsTowardPopularityResolved": True,
"listedAsFrequentUserResolved": True
},
"builtInId": "<string>"
}
],
"coalesceLogins": [
{
"platformUserId": "<string>",
"excluded": True
}
]
},
"windowDays": 91
}
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({
changes: {
upsertServiceAccounts: [
{
id: '<string>',
name: '<string>',
toolEntityId: '<string>',
policy: {
countsTowardPopularity: true,
listedAsFrequentUser: true,
countsTowardPopularityResolved: true,
listedAsFrequentUserResolved: true
},
priority: 123,
matchers: [
{
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
platformUserIds: ['<string>'],
logins: ['<string>'],
emails: ['<string>'],
advanced: {
platforms: [],
platformRootEntityIds: ['<string>'],
userTypes: ['<string>'],
emailDomains: ['<string>'],
issuers: [],
minIssuerShare: 0.5,
footprints: [],
minFootprintShare: 0.5
},
internalOnly: true
}
],
builtIn: true,
excludedPlatformUserIds: ['<string>'],
etag: '<string>',
updatedBy: {name: '<string>', email: {userEmail: 'jsmith@example.com'}},
createdAt: '2023-01-15T01:30:15.01Z',
updatedAt: '2023-01-15T01:30:15.01Z'
}
],
deleteServiceAccountIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
upsertPersonLinks: [
{
matcher: {
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
platformUserIds: ['<string>'],
logins: ['<string>'],
emails: ['<string>'],
advanced: {
platforms: [],
platformRootEntityIds: ['<string>'],
userTypes: ['<string>'],
emailDomains: ['<string>'],
issuers: [],
minIssuerShare: 0.5,
footprints: [],
minFootprintShare: 0.5
},
internalOnly: true
},
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
title: '<string>',
priority: 123,
identityPattern: '<string>',
etag: '<string>',
updatedBy: {name: '<string>', email: {userEmail: 'jsmith@example.com'}},
createdAt: '2023-01-15T01:30:15.01Z',
updatedAt: '2023-01-15T01:30:15.01Z'
}
],
deletePersonLinkIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
builtInPolicies: [
{
policy: {
countsTowardPopularity: true,
listedAsFrequentUser: true,
countsTowardPopularityResolved: true,
listedAsFrequentUserResolved: true
},
builtInId: '<string>'
}
],
coalesceLogins: [{platformUserId: '<string>', excluded: true}]
},
windowDays: 91
})
};
fetch('https://developer.synq.io/api/entities/service-accounts/v1alpha/plan', 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://developer.synq.io/api/entities/service-accounts/v1alpha/plan",
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([
'changes' => [
'upsertServiceAccounts' => [
[
'id' => '<string>',
'name' => '<string>',
'toolEntityId' => '<string>',
'policy' => [
'countsTowardPopularity' => true,
'listedAsFrequentUser' => true,
'countsTowardPopularityResolved' => true,
'listedAsFrequentUserResolved' => true
],
'priority' => 123,
'matchers' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'platformUserIds' => [
'<string>'
],
'logins' => [
'<string>'
],
'emails' => [
'<string>'
],
'advanced' => [
'platforms' => [
],
'platformRootEntityIds' => [
'<string>'
],
'userTypes' => [
'<string>'
],
'emailDomains' => [
'<string>'
],
'issuers' => [
],
'minIssuerShare' => 0.5,
'footprints' => [
],
'minFootprintShare' => 0.5
],
'internalOnly' => true
]
],
'builtIn' => true,
'excludedPlatformUserIds' => [
'<string>'
],
'etag' => '<string>',
'updatedBy' => [
'name' => '<string>',
'email' => [
'userEmail' => 'jsmith@example.com'
]
],
'createdAt' => '2023-01-15T01:30:15.01Z',
'updatedAt' => '2023-01-15T01:30:15.01Z'
]
],
'deleteServiceAccountIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'upsertPersonLinks' => [
[
'matcher' => [
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'platformUserIds' => [
'<string>'
],
'logins' => [
'<string>'
],
'emails' => [
'<string>'
],
'advanced' => [
'platforms' => [
],
'platformRootEntityIds' => [
'<string>'
],
'userTypes' => [
'<string>'
],
'emailDomains' => [
'<string>'
],
'issuers' => [
],
'minIssuerShare' => 0.5,
'footprints' => [
],
'minFootprintShare' => 0.5
],
'internalOnly' => true
],
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'title' => '<string>',
'priority' => 123,
'identityPattern' => '<string>',
'etag' => '<string>',
'updatedBy' => [
'name' => '<string>',
'email' => [
'userEmail' => 'jsmith@example.com'
]
],
'createdAt' => '2023-01-15T01:30:15.01Z',
'updatedAt' => '2023-01-15T01:30:15.01Z'
]
],
'deletePersonLinkIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'builtInPolicies' => [
[
'policy' => [
'countsTowardPopularity' => true,
'listedAsFrequentUser' => true,
'countsTowardPopularityResolved' => true,
'listedAsFrequentUserResolved' => true
],
'builtInId' => '<string>'
]
],
'coalesceLogins' => [
[
'platformUserId' => '<string>',
'excluded' => true
]
]
],
'windowDays' => 91
]),
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://developer.synq.io/api/entities/service-accounts/v1alpha/plan"
payload := strings.NewReader("{\n \"changes\": {\n \"upsertServiceAccounts\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"toolEntityId\": \"<string>\",\n \"policy\": {\n \"countsTowardPopularity\": true,\n \"listedAsFrequentUser\": true,\n \"countsTowardPopularityResolved\": true,\n \"listedAsFrequentUserResolved\": true\n },\n \"priority\": 123,\n \"matchers\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"platformUserIds\": [\n \"<string>\"\n ],\n \"logins\": [\n \"<string>\"\n ],\n \"emails\": [\n \"<string>\"\n ],\n \"advanced\": {\n \"platforms\": [],\n \"platformRootEntityIds\": [\n \"<string>\"\n ],\n \"userTypes\": [\n \"<string>\"\n ],\n \"emailDomains\": [\n \"<string>\"\n ],\n \"issuers\": [],\n \"minIssuerShare\": 0.5,\n \"footprints\": [],\n \"minFootprintShare\": 0.5\n },\n \"internalOnly\": true\n }\n ],\n \"builtIn\": true,\n \"excludedPlatformUserIds\": [\n \"<string>\"\n ],\n \"etag\": \"<string>\",\n \"updatedBy\": {\n \"name\": \"<string>\",\n \"email\": {\n \"userEmail\": \"jsmith@example.com\"\n }\n },\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\n }\n ],\n \"deleteServiceAccountIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"upsertPersonLinks\": [\n {\n \"matcher\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"platformUserIds\": [\n \"<string>\"\n ],\n \"logins\": [\n \"<string>\"\n ],\n \"emails\": [\n \"<string>\"\n ],\n \"advanced\": {\n \"platforms\": [],\n \"platformRootEntityIds\": [\n \"<string>\"\n ],\n \"userTypes\": [\n \"<string>\"\n ],\n \"emailDomains\": [\n \"<string>\"\n ],\n \"issuers\": [],\n \"minIssuerShare\": 0.5,\n \"footprints\": [],\n \"minFootprintShare\": 0.5\n },\n \"internalOnly\": true\n },\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"title\": \"<string>\",\n \"priority\": 123,\n \"identityPattern\": \"<string>\",\n \"etag\": \"<string>\",\n \"updatedBy\": {\n \"name\": \"<string>\",\n \"email\": {\n \"userEmail\": \"jsmith@example.com\"\n }\n },\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\n }\n ],\n \"deletePersonLinkIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"builtInPolicies\": [\n {\n \"policy\": {\n \"countsTowardPopularity\": true,\n \"listedAsFrequentUser\": true,\n \"countsTowardPopularityResolved\": true,\n \"listedAsFrequentUserResolved\": true\n },\n \"builtInId\": \"<string>\"\n }\n ],\n \"coalesceLogins\": [\n {\n \"platformUserId\": \"<string>\",\n \"excluded\": true\n }\n ]\n },\n \"windowDays\": 91\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://developer.synq.io/api/entities/service-accounts/v1alpha/plan")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"changes\": {\n \"upsertServiceAccounts\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"toolEntityId\": \"<string>\",\n \"policy\": {\n \"countsTowardPopularity\": true,\n \"listedAsFrequentUser\": true,\n \"countsTowardPopularityResolved\": true,\n \"listedAsFrequentUserResolved\": true\n },\n \"priority\": 123,\n \"matchers\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"platformUserIds\": [\n \"<string>\"\n ],\n \"logins\": [\n \"<string>\"\n ],\n \"emails\": [\n \"<string>\"\n ],\n \"advanced\": {\n \"platforms\": [],\n \"platformRootEntityIds\": [\n \"<string>\"\n ],\n \"userTypes\": [\n \"<string>\"\n ],\n \"emailDomains\": [\n \"<string>\"\n ],\n \"issuers\": [],\n \"minIssuerShare\": 0.5,\n \"footprints\": [],\n \"minFootprintShare\": 0.5\n },\n \"internalOnly\": true\n }\n ],\n \"builtIn\": true,\n \"excludedPlatformUserIds\": [\n \"<string>\"\n ],\n \"etag\": \"<string>\",\n \"updatedBy\": {\n \"name\": \"<string>\",\n \"email\": {\n \"userEmail\": \"jsmith@example.com\"\n }\n },\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\n }\n ],\n \"deleteServiceAccountIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"upsertPersonLinks\": [\n {\n \"matcher\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"platformUserIds\": [\n \"<string>\"\n ],\n \"logins\": [\n \"<string>\"\n ],\n \"emails\": [\n \"<string>\"\n ],\n \"advanced\": {\n \"platforms\": [],\n \"platformRootEntityIds\": [\n \"<string>\"\n ],\n \"userTypes\": [\n \"<string>\"\n ],\n \"emailDomains\": [\n \"<string>\"\n ],\n \"issuers\": [],\n \"minIssuerShare\": 0.5,\n \"footprints\": [],\n \"minFootprintShare\": 0.5\n },\n \"internalOnly\": true\n },\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"title\": \"<string>\",\n \"priority\": 123,\n \"identityPattern\": \"<string>\",\n \"etag\": \"<string>\",\n \"updatedBy\": {\n \"name\": \"<string>\",\n \"email\": {\n \"userEmail\": \"jsmith@example.com\"\n }\n },\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\n }\n ],\n \"deletePersonLinkIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"builtInPolicies\": [\n {\n \"policy\": {\n \"countsTowardPopularity\": true,\n \"listedAsFrequentUser\": true,\n \"countsTowardPopularityResolved\": true,\n \"listedAsFrequentUserResolved\": true\n },\n \"builtInId\": \"<string>\"\n }\n ],\n \"coalesceLogins\": [\n {\n \"platformUserId\": \"<string>\",\n \"excluded\": true\n }\n ]\n },\n \"windowDays\": 91\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.synq.io/api/entities/service-accounts/v1alpha/plan")
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 \"changes\": {\n \"upsertServiceAccounts\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"toolEntityId\": \"<string>\",\n \"policy\": {\n \"countsTowardPopularity\": true,\n \"listedAsFrequentUser\": true,\n \"countsTowardPopularityResolved\": true,\n \"listedAsFrequentUserResolved\": true\n },\n \"priority\": 123,\n \"matchers\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"platformUserIds\": [\n \"<string>\"\n ],\n \"logins\": [\n \"<string>\"\n ],\n \"emails\": [\n \"<string>\"\n ],\n \"advanced\": {\n \"platforms\": [],\n \"platformRootEntityIds\": [\n \"<string>\"\n ],\n \"userTypes\": [\n \"<string>\"\n ],\n \"emailDomains\": [\n \"<string>\"\n ],\n \"issuers\": [],\n \"minIssuerShare\": 0.5,\n \"footprints\": [],\n \"minFootprintShare\": 0.5\n },\n \"internalOnly\": true\n }\n ],\n \"builtIn\": true,\n \"excludedPlatformUserIds\": [\n \"<string>\"\n ],\n \"etag\": \"<string>\",\n \"updatedBy\": {\n \"name\": \"<string>\",\n \"email\": {\n \"userEmail\": \"jsmith@example.com\"\n }\n },\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\n }\n ],\n \"deleteServiceAccountIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"upsertPersonLinks\": [\n {\n \"matcher\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"platformUserIds\": [\n \"<string>\"\n ],\n \"logins\": [\n \"<string>\"\n ],\n \"emails\": [\n \"<string>\"\n ],\n \"advanced\": {\n \"platforms\": [],\n \"platformRootEntityIds\": [\n \"<string>\"\n ],\n \"userTypes\": [\n \"<string>\"\n ],\n \"emailDomains\": [\n \"<string>\"\n ],\n \"issuers\": [],\n \"minIssuerShare\": 0.5,\n \"footprints\": [],\n \"minFootprintShare\": 0.5\n },\n \"internalOnly\": true\n },\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"title\": \"<string>\",\n \"priority\": 123,\n \"identityPattern\": \"<string>\",\n \"etag\": \"<string>\",\n \"updatedBy\": {\n \"name\": \"<string>\",\n \"email\": {\n \"userEmail\": \"jsmith@example.com\"\n }\n },\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\n }\n ],\n \"deletePersonLinkIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"builtInPolicies\": [\n {\n \"policy\": {\n \"countsTowardPopularity\": true,\n \"listedAsFrequentUser\": true,\n \"countsTowardPopularityResolved\": true,\n \"listedAsFrequentUserResolved\": true\n },\n \"builtInId\": \"<string>\"\n }\n ],\n \"coalesceLogins\": [\n {\n \"platformUserId\": \"<string>\",\n \"excluded\": true\n }\n ]\n },\n \"windowDays\": 91\n}"
response = http.request(request)
puts response.read_body{
"sliceChanges": [
{
"platformUserId": "<string>",
"login": "<string>",
"issuer": "DATA_PLATFORM_TYPE_UNSPECIFIED",
"before": {
"classification": "CLASSIFICATION_UNSPECIFIED",
"serviceAccountIds": [
"<string>"
],
"personIdentity": "<string>",
"countsTowardPopularity": true,
"listedAsFrequentUser": true
},
"after": {
"classification": "CLASSIFICATION_UNSPECIFIED",
"serviceAccountIds": [
"<string>"
],
"personIdentity": "<string>",
"countsTowardPopularity": true,
"listedAsFrequentUser": true
},
"countedReadsDelta": 123
}
],
"countedReadsDelta": 123,
"rankChanges": [
{
"entityId": "<string>",
"pool": "POPULARITY_POOL_UNSPECIFIED",
"platform": "DATA_PLATFORM_TYPE_UNSPECIFIED",
"instance": "<string>",
"readsBefore": 123,
"readsAfter": 123,
"percentileBefore": 123,
"percentileAfter": 123
}
],
"ranksUnavailable": true,
"planToken": "<string>",
"from": "2023-01-15T01:30:15.01Z",
"to": "2023-01-15T01:30:15.01Z"
}PlanServiceAccountChanges
Report what a change set would change, without writing it: every login slice whose classification moves, how many counted reads each adds or removes, and the entities whose rank moves most. The plan_token it returns is what ApplyServiceAccountChanges takes.
curl --request POST \
--url https://developer.synq.io/api/entities/service-accounts/v1alpha/plan \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"changes": {
"upsertServiceAccounts": [
{
"id": "<string>",
"name": "<string>",
"toolEntityId": "<string>",
"policy": {
"countsTowardPopularity": true,
"listedAsFrequentUser": true,
"countsTowardPopularityResolved": true,
"listedAsFrequentUserResolved": true
},
"priority": 123,
"matchers": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"platformUserIds": [
"<string>"
],
"logins": [
"<string>"
],
"emails": [
"<string>"
],
"advanced": {
"platforms": [],
"platformRootEntityIds": [
"<string>"
],
"userTypes": [
"<string>"
],
"emailDomains": [
"<string>"
],
"issuers": [],
"minIssuerShare": 0.5,
"footprints": [],
"minFootprintShare": 0.5
},
"internalOnly": true
}
],
"builtIn": true,
"excludedPlatformUserIds": [
"<string>"
],
"etag": "<string>",
"updatedBy": {
"name": "<string>",
"email": {
"userEmail": "jsmith@example.com"
}
},
"createdAt": "2023-01-15T01:30:15.01Z",
"updatedAt": "2023-01-15T01:30:15.01Z"
}
],
"deleteServiceAccountIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"upsertPersonLinks": [
{
"matcher": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"platformUserIds": [
"<string>"
],
"logins": [
"<string>"
],
"emails": [
"<string>"
],
"advanced": {
"platforms": [],
"platformRootEntityIds": [
"<string>"
],
"userTypes": [
"<string>"
],
"emailDomains": [
"<string>"
],
"issuers": [],
"minIssuerShare": 0.5,
"footprints": [],
"minFootprintShare": 0.5
},
"internalOnly": true
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"priority": 123,
"identityPattern": "<string>",
"etag": "<string>",
"updatedBy": {
"name": "<string>",
"email": {
"userEmail": "jsmith@example.com"
}
},
"createdAt": "2023-01-15T01:30:15.01Z",
"updatedAt": "2023-01-15T01:30:15.01Z"
}
],
"deletePersonLinkIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"builtInPolicies": [
{
"policy": {
"countsTowardPopularity": true,
"listedAsFrequentUser": true,
"countsTowardPopularityResolved": true,
"listedAsFrequentUserResolved": true
},
"builtInId": "<string>"
}
],
"coalesceLogins": [
{
"platformUserId": "<string>",
"excluded": true
}
]
},
"windowDays": 91
}
'import requests
url = "https://developer.synq.io/api/entities/service-accounts/v1alpha/plan"
payload = {
"changes": {
"upsertServiceAccounts": [
{
"id": "<string>",
"name": "<string>",
"toolEntityId": "<string>",
"policy": {
"countsTowardPopularity": True,
"listedAsFrequentUser": True,
"countsTowardPopularityResolved": True,
"listedAsFrequentUserResolved": True
},
"priority": 123,
"matchers": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"platformUserIds": ["<string>"],
"logins": ["<string>"],
"emails": ["<string>"],
"advanced": {
"platforms": [],
"platformRootEntityIds": ["<string>"],
"userTypes": ["<string>"],
"emailDomains": ["<string>"],
"issuers": [],
"minIssuerShare": 0.5,
"footprints": [],
"minFootprintShare": 0.5
},
"internalOnly": True
}
],
"builtIn": True,
"excludedPlatformUserIds": ["<string>"],
"etag": "<string>",
"updatedBy": {
"name": "<string>",
"email": { "userEmail": "jsmith@example.com" }
},
"createdAt": "2023-01-15T01:30:15.01Z",
"updatedAt": "2023-01-15T01:30:15.01Z"
}
],
"deleteServiceAccountIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"upsertPersonLinks": [
{
"matcher": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"platformUserIds": ["<string>"],
"logins": ["<string>"],
"emails": ["<string>"],
"advanced": {
"platforms": [],
"platformRootEntityIds": ["<string>"],
"userTypes": ["<string>"],
"emailDomains": ["<string>"],
"issuers": [],
"minIssuerShare": 0.5,
"footprints": [],
"minFootprintShare": 0.5
},
"internalOnly": True
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"priority": 123,
"identityPattern": "<string>",
"etag": "<string>",
"updatedBy": {
"name": "<string>",
"email": { "userEmail": "jsmith@example.com" }
},
"createdAt": "2023-01-15T01:30:15.01Z",
"updatedAt": "2023-01-15T01:30:15.01Z"
}
],
"deletePersonLinkIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"builtInPolicies": [
{
"policy": {
"countsTowardPopularity": True,
"listedAsFrequentUser": True,
"countsTowardPopularityResolved": True,
"listedAsFrequentUserResolved": True
},
"builtInId": "<string>"
}
],
"coalesceLogins": [
{
"platformUserId": "<string>",
"excluded": True
}
]
},
"windowDays": 91
}
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({
changes: {
upsertServiceAccounts: [
{
id: '<string>',
name: '<string>',
toolEntityId: '<string>',
policy: {
countsTowardPopularity: true,
listedAsFrequentUser: true,
countsTowardPopularityResolved: true,
listedAsFrequentUserResolved: true
},
priority: 123,
matchers: [
{
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
platformUserIds: ['<string>'],
logins: ['<string>'],
emails: ['<string>'],
advanced: {
platforms: [],
platformRootEntityIds: ['<string>'],
userTypes: ['<string>'],
emailDomains: ['<string>'],
issuers: [],
minIssuerShare: 0.5,
footprints: [],
minFootprintShare: 0.5
},
internalOnly: true
}
],
builtIn: true,
excludedPlatformUserIds: ['<string>'],
etag: '<string>',
updatedBy: {name: '<string>', email: {userEmail: 'jsmith@example.com'}},
createdAt: '2023-01-15T01:30:15.01Z',
updatedAt: '2023-01-15T01:30:15.01Z'
}
],
deleteServiceAccountIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
upsertPersonLinks: [
{
matcher: {
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
platformUserIds: ['<string>'],
logins: ['<string>'],
emails: ['<string>'],
advanced: {
platforms: [],
platformRootEntityIds: ['<string>'],
userTypes: ['<string>'],
emailDomains: ['<string>'],
issuers: [],
minIssuerShare: 0.5,
footprints: [],
minFootprintShare: 0.5
},
internalOnly: true
},
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
title: '<string>',
priority: 123,
identityPattern: '<string>',
etag: '<string>',
updatedBy: {name: '<string>', email: {userEmail: 'jsmith@example.com'}},
createdAt: '2023-01-15T01:30:15.01Z',
updatedAt: '2023-01-15T01:30:15.01Z'
}
],
deletePersonLinkIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
builtInPolicies: [
{
policy: {
countsTowardPopularity: true,
listedAsFrequentUser: true,
countsTowardPopularityResolved: true,
listedAsFrequentUserResolved: true
},
builtInId: '<string>'
}
],
coalesceLogins: [{platformUserId: '<string>', excluded: true}]
},
windowDays: 91
})
};
fetch('https://developer.synq.io/api/entities/service-accounts/v1alpha/plan', 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://developer.synq.io/api/entities/service-accounts/v1alpha/plan",
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([
'changes' => [
'upsertServiceAccounts' => [
[
'id' => '<string>',
'name' => '<string>',
'toolEntityId' => '<string>',
'policy' => [
'countsTowardPopularity' => true,
'listedAsFrequentUser' => true,
'countsTowardPopularityResolved' => true,
'listedAsFrequentUserResolved' => true
],
'priority' => 123,
'matchers' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'platformUserIds' => [
'<string>'
],
'logins' => [
'<string>'
],
'emails' => [
'<string>'
],
'advanced' => [
'platforms' => [
],
'platformRootEntityIds' => [
'<string>'
],
'userTypes' => [
'<string>'
],
'emailDomains' => [
'<string>'
],
'issuers' => [
],
'minIssuerShare' => 0.5,
'footprints' => [
],
'minFootprintShare' => 0.5
],
'internalOnly' => true
]
],
'builtIn' => true,
'excludedPlatformUserIds' => [
'<string>'
],
'etag' => '<string>',
'updatedBy' => [
'name' => '<string>',
'email' => [
'userEmail' => 'jsmith@example.com'
]
],
'createdAt' => '2023-01-15T01:30:15.01Z',
'updatedAt' => '2023-01-15T01:30:15.01Z'
]
],
'deleteServiceAccountIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'upsertPersonLinks' => [
[
'matcher' => [
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'platformUserIds' => [
'<string>'
],
'logins' => [
'<string>'
],
'emails' => [
'<string>'
],
'advanced' => [
'platforms' => [
],
'platformRootEntityIds' => [
'<string>'
],
'userTypes' => [
'<string>'
],
'emailDomains' => [
'<string>'
],
'issuers' => [
],
'minIssuerShare' => 0.5,
'footprints' => [
],
'minFootprintShare' => 0.5
],
'internalOnly' => true
],
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'title' => '<string>',
'priority' => 123,
'identityPattern' => '<string>',
'etag' => '<string>',
'updatedBy' => [
'name' => '<string>',
'email' => [
'userEmail' => 'jsmith@example.com'
]
],
'createdAt' => '2023-01-15T01:30:15.01Z',
'updatedAt' => '2023-01-15T01:30:15.01Z'
]
],
'deletePersonLinkIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'builtInPolicies' => [
[
'policy' => [
'countsTowardPopularity' => true,
'listedAsFrequentUser' => true,
'countsTowardPopularityResolved' => true,
'listedAsFrequentUserResolved' => true
],
'builtInId' => '<string>'
]
],
'coalesceLogins' => [
[
'platformUserId' => '<string>',
'excluded' => true
]
]
],
'windowDays' => 91
]),
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://developer.synq.io/api/entities/service-accounts/v1alpha/plan"
payload := strings.NewReader("{\n \"changes\": {\n \"upsertServiceAccounts\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"toolEntityId\": \"<string>\",\n \"policy\": {\n \"countsTowardPopularity\": true,\n \"listedAsFrequentUser\": true,\n \"countsTowardPopularityResolved\": true,\n \"listedAsFrequentUserResolved\": true\n },\n \"priority\": 123,\n \"matchers\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"platformUserIds\": [\n \"<string>\"\n ],\n \"logins\": [\n \"<string>\"\n ],\n \"emails\": [\n \"<string>\"\n ],\n \"advanced\": {\n \"platforms\": [],\n \"platformRootEntityIds\": [\n \"<string>\"\n ],\n \"userTypes\": [\n \"<string>\"\n ],\n \"emailDomains\": [\n \"<string>\"\n ],\n \"issuers\": [],\n \"minIssuerShare\": 0.5,\n \"footprints\": [],\n \"minFootprintShare\": 0.5\n },\n \"internalOnly\": true\n }\n ],\n \"builtIn\": true,\n \"excludedPlatformUserIds\": [\n \"<string>\"\n ],\n \"etag\": \"<string>\",\n \"updatedBy\": {\n \"name\": \"<string>\",\n \"email\": {\n \"userEmail\": \"jsmith@example.com\"\n }\n },\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\n }\n ],\n \"deleteServiceAccountIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"upsertPersonLinks\": [\n {\n \"matcher\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"platformUserIds\": [\n \"<string>\"\n ],\n \"logins\": [\n \"<string>\"\n ],\n \"emails\": [\n \"<string>\"\n ],\n \"advanced\": {\n \"platforms\": [],\n \"platformRootEntityIds\": [\n \"<string>\"\n ],\n \"userTypes\": [\n \"<string>\"\n ],\n \"emailDomains\": [\n \"<string>\"\n ],\n \"issuers\": [],\n \"minIssuerShare\": 0.5,\n \"footprints\": [],\n \"minFootprintShare\": 0.5\n },\n \"internalOnly\": true\n },\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"title\": \"<string>\",\n \"priority\": 123,\n \"identityPattern\": \"<string>\",\n \"etag\": \"<string>\",\n \"updatedBy\": {\n \"name\": \"<string>\",\n \"email\": {\n \"userEmail\": \"jsmith@example.com\"\n }\n },\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\n }\n ],\n \"deletePersonLinkIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"builtInPolicies\": [\n {\n \"policy\": {\n \"countsTowardPopularity\": true,\n \"listedAsFrequentUser\": true,\n \"countsTowardPopularityResolved\": true,\n \"listedAsFrequentUserResolved\": true\n },\n \"builtInId\": \"<string>\"\n }\n ],\n \"coalesceLogins\": [\n {\n \"platformUserId\": \"<string>\",\n \"excluded\": true\n }\n ]\n },\n \"windowDays\": 91\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://developer.synq.io/api/entities/service-accounts/v1alpha/plan")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"changes\": {\n \"upsertServiceAccounts\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"toolEntityId\": \"<string>\",\n \"policy\": {\n \"countsTowardPopularity\": true,\n \"listedAsFrequentUser\": true,\n \"countsTowardPopularityResolved\": true,\n \"listedAsFrequentUserResolved\": true\n },\n \"priority\": 123,\n \"matchers\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"platformUserIds\": [\n \"<string>\"\n ],\n \"logins\": [\n \"<string>\"\n ],\n \"emails\": [\n \"<string>\"\n ],\n \"advanced\": {\n \"platforms\": [],\n \"platformRootEntityIds\": [\n \"<string>\"\n ],\n \"userTypes\": [\n \"<string>\"\n ],\n \"emailDomains\": [\n \"<string>\"\n ],\n \"issuers\": [],\n \"minIssuerShare\": 0.5,\n \"footprints\": [],\n \"minFootprintShare\": 0.5\n },\n \"internalOnly\": true\n }\n ],\n \"builtIn\": true,\n \"excludedPlatformUserIds\": [\n \"<string>\"\n ],\n \"etag\": \"<string>\",\n \"updatedBy\": {\n \"name\": \"<string>\",\n \"email\": {\n \"userEmail\": \"jsmith@example.com\"\n }\n },\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\n }\n ],\n \"deleteServiceAccountIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"upsertPersonLinks\": [\n {\n \"matcher\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"platformUserIds\": [\n \"<string>\"\n ],\n \"logins\": [\n \"<string>\"\n ],\n \"emails\": [\n \"<string>\"\n ],\n \"advanced\": {\n \"platforms\": [],\n \"platformRootEntityIds\": [\n \"<string>\"\n ],\n \"userTypes\": [\n \"<string>\"\n ],\n \"emailDomains\": [\n \"<string>\"\n ],\n \"issuers\": [],\n \"minIssuerShare\": 0.5,\n \"footprints\": [],\n \"minFootprintShare\": 0.5\n },\n \"internalOnly\": true\n },\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"title\": \"<string>\",\n \"priority\": 123,\n \"identityPattern\": \"<string>\",\n \"etag\": \"<string>\",\n \"updatedBy\": {\n \"name\": \"<string>\",\n \"email\": {\n \"userEmail\": \"jsmith@example.com\"\n }\n },\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\n }\n ],\n \"deletePersonLinkIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"builtInPolicies\": [\n {\n \"policy\": {\n \"countsTowardPopularity\": true,\n \"listedAsFrequentUser\": true,\n \"countsTowardPopularityResolved\": true,\n \"listedAsFrequentUserResolved\": true\n },\n \"builtInId\": \"<string>\"\n }\n ],\n \"coalesceLogins\": [\n {\n \"platformUserId\": \"<string>\",\n \"excluded\": true\n }\n ]\n },\n \"windowDays\": 91\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.synq.io/api/entities/service-accounts/v1alpha/plan")
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 \"changes\": {\n \"upsertServiceAccounts\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"toolEntityId\": \"<string>\",\n \"policy\": {\n \"countsTowardPopularity\": true,\n \"listedAsFrequentUser\": true,\n \"countsTowardPopularityResolved\": true,\n \"listedAsFrequentUserResolved\": true\n },\n \"priority\": 123,\n \"matchers\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"platformUserIds\": [\n \"<string>\"\n ],\n \"logins\": [\n \"<string>\"\n ],\n \"emails\": [\n \"<string>\"\n ],\n \"advanced\": {\n \"platforms\": [],\n \"platformRootEntityIds\": [\n \"<string>\"\n ],\n \"userTypes\": [\n \"<string>\"\n ],\n \"emailDomains\": [\n \"<string>\"\n ],\n \"issuers\": [],\n \"minIssuerShare\": 0.5,\n \"footprints\": [],\n \"minFootprintShare\": 0.5\n },\n \"internalOnly\": true\n }\n ],\n \"builtIn\": true,\n \"excludedPlatformUserIds\": [\n \"<string>\"\n ],\n \"etag\": \"<string>\",\n \"updatedBy\": {\n \"name\": \"<string>\",\n \"email\": {\n \"userEmail\": \"jsmith@example.com\"\n }\n },\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\n }\n ],\n \"deleteServiceAccountIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"upsertPersonLinks\": [\n {\n \"matcher\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"platformUserIds\": [\n \"<string>\"\n ],\n \"logins\": [\n \"<string>\"\n ],\n \"emails\": [\n \"<string>\"\n ],\n \"advanced\": {\n \"platforms\": [],\n \"platformRootEntityIds\": [\n \"<string>\"\n ],\n \"userTypes\": [\n \"<string>\"\n ],\n \"emailDomains\": [\n \"<string>\"\n ],\n \"issuers\": [],\n \"minIssuerShare\": 0.5,\n \"footprints\": [],\n \"minFootprintShare\": 0.5\n },\n \"internalOnly\": true\n },\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"title\": \"<string>\",\n \"priority\": 123,\n \"identityPattern\": \"<string>\",\n \"etag\": \"<string>\",\n \"updatedBy\": {\n \"name\": \"<string>\",\n \"email\": {\n \"userEmail\": \"jsmith@example.com\"\n }\n },\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\n }\n ],\n \"deletePersonLinkIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"builtInPolicies\": [\n {\n \"policy\": {\n \"countsTowardPopularity\": true,\n \"listedAsFrequentUser\": true,\n \"countsTowardPopularityResolved\": true,\n \"listedAsFrequentUserResolved\": true\n },\n \"builtInId\": \"<string>\"\n }\n ],\n \"coalesceLogins\": [\n {\n \"platformUserId\": \"<string>\",\n \"excluded\": true\n }\n ]\n },\n \"windowDays\": 91\n}"
response = http.request(request)
puts response.read_body{
"sliceChanges": [
{
"platformUserId": "<string>",
"login": "<string>",
"issuer": "DATA_PLATFORM_TYPE_UNSPECIFIED",
"before": {
"classification": "CLASSIFICATION_UNSPECIFIED",
"serviceAccountIds": [
"<string>"
],
"personIdentity": "<string>",
"countsTowardPopularity": true,
"listedAsFrequentUser": true
},
"after": {
"classification": "CLASSIFICATION_UNSPECIFIED",
"serviceAccountIds": [
"<string>"
],
"personIdentity": "<string>",
"countsTowardPopularity": true,
"listedAsFrequentUser": true
},
"countedReadsDelta": 123
}
],
"countedReadsDelta": 123,
"rankChanges": [
{
"entityId": "<string>",
"pool": "POPULARITY_POOL_UNSPECIFIED",
"platform": "DATA_PLATFORM_TYPE_UNSPECIFIED",
"instance": "<string>",
"readsBefore": 123,
"readsAfter": 123,
"percentileBefore": 123,
"percentileAfter": 123
}
],
"ranksUnavailable": true,
"planToken": "<string>",
"from": "2023-01-15T01:30:15.01Z",
"to": "2023-01-15T01:30:15.01Z"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
ServiceAccountChanges is any mix of changes to a workspace's service accounts, person links and policies, planned and applied as one.
Show child attributes
Show child attributes
The days of query history the plan is read over, back from the current hour. Unset is 30.
x <= 92Response
Success
By the size of counted_reads_delta, largest first, then login and issuer.
Show child attributes
Show child attributes
The counted reads the change set adds, negative when it removes them.
At most 20, in the SYSTEM pool, by how far the percentile moves, largest first. Empty when the ranks could not be computed, with ranks_unavailable set.
Show child attributes
Show child attributes
What ApplyServiceAccountChanges takes for exactly this change set.
The window planned over, [from, to).
"2023-01-15T01:30:15.01Z"
"2024-12-25T12:00:00Z"
A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one.
All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap second table is needed for interpretation, using a 24-hour linear smear.
The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings.
Examples
Example 1: Compute Timestamp from POSIX time().
Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
Example 2: Compute Timestamp from POSIX gettimeofday().
struct timeval tv; gettimeofday(&tv, NULL); Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
Example 3: Compute Timestamp from Win32 GetSystemTimeAsFileTime().
FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
Example 4: Compute Timestamp from Java System.currentTimeMillis().
long millis = System.currentTimeMillis(); Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
Example 5: Compute Timestamp from Java Instant.now().
Instant now = Instant.now(); Timestamp timestamp = Timestamp.newBuilder().setSeconds(now.getEpochSecond()) .setNanos(now.getNano()).build();
Example 6: Compute Timestamp from current time in Python.
timestamp = Timestamp() timestamp.GetCurrentTime()
JSON Mapping
In JSON format, the Timestamp type is encoded as a string in the RFC 3339 format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required. A proto3 JSON serializer should always use UTC (as indicated by "Z") when printing the Timestamp type and a proto3 JSON parser should be able to accept both UTC and other timezones (as indicated by an offset).
For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
In JavaScript, one can convert a Date object to this format using the
standard
toISOString()
method. In Python, a standard datetime.datetime object can be converted
to this format using
strftime with
the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
the Joda Time's ISODateTimeFormat.dateTime() to obtain a formatter capable of generating timestamps in this format.
"2023-01-15T01:30:15.01Z"
"2024-12-25T12:00:00Z"