/
Admin API

Admin API


Die Admin API stellt Schnittstellen zum Benutzer-, Profil- und Organisations-Management zur Verfügung.

Authentifizierung

Um die Admin APIs aufzurufen, muss in der primedocs.config solch ein Client registriert sein, siehe hierfür https://primesoft-group.atlassian.net/wiki/spaces/PDT/pages/193593367.

Nach der Registrierung kann damit ein AccessToken vom IdS angefordert werden.

Dieses PowerShell-Beispiel zeigt den Bezug des AccessTokens:

# Configuration $datasourceId = "b78c3707-d7c7-4fc7-b97f-87d70f63c1ac" $tokenUrl = "https://customerserver.local/ids/connect/token" $clientID = "CustomApiClient" $clientSecret = "CustomClient_Secret_123" $scope = "pd_AdminWebApi" $tokenRequestHeaders = @{ "Content-Type" = "application/x-www-form-urlencoded" } $tokenRequestBody = @{ client_id = $clientID client_secret = $clientSecret grant_type = "client_credentials" scope = $scope } # Request the access token try { $tokenResponse = Invoke-RestMethod -Uri $tokenUrl -Method POST -Headers $tokenRequestHeaders -Body $tokenRequestBody } catch { Write-Error "Error making the request: $_" exit 1; } if (-not $tokenResponse.access_token) { Write-Error "Failed to obtain an access token!" exit 1 } # Access token information Write-Host "Access Token: $($tokenResponse.access_token)" $accessToken = $tokenResponse.access_token

Beispiele

Dieses AccessToken muss bei allen Aufrufen in den Authorization-Header mitgegeben werden. Die API lässt aktuell das Auflisten, Anlegen und Bearbeiten von Benutzern zu. Nachfolgend sind Beispiele zu finden:

Benutzer auflisten

Damit werden vorhandene Benutzer aufgelistet:

# Prepare headers for request $apiRequestHeaders = @{ "Authorization" = "Bearer $accessToken" } Write-Host "Getting users..." $pageSize = Read-Host "Enter pagesize" $page = Read-Host "Enter page" try { $apiUrl = "https://customerserver.local/webapi/api/v3/$($datasourceId)/Admin/Users?pageSize=$($pageSize)&page=$($page)" $response = Invoke-RestMethod -Uri $apiUrl -Method GET -Headers $apiRequestHeaders foreach ($user in $response.data) { Write-Output "$($user.id): '$($user.title)'" } Write-Output "Page: $($response.pagingDetails.page) / $($response.pagingDetails.totalPages)" } catch { Write-Error "Error making the request: $_" exit 1; }

Benutzer-Onboarding

Über diesen Aufruf kann ein neuer Benutzer anhand der SID hinzugefügt werden. Es wird dann automatisch der https://primesoft-group.atlassian.net/wiki/spaces/PDT/pages/67272705 Prozess durchlaufen.

# Prepare headers for request $apiRequestHeaders = @{ "Authorization" = "Bearer $accessToken" } $sid = Read-Host "Enter SID" Write-Host "Creating and onboarding user with SID: $sid" try { $apiUrl = "https://customerserver.local/webapi/api/v3/$($datasourceId)/Admin/Users?sid=" + $sid; $user = Invoke-RestMethod -Uri $apiUrl -Method POST -Headers $apiRequestHeaders Write-Output "Onboarded '$($user.title)' with id '$($user.id)'"; } catch { Write-Error "Error making the request: $_" exit 1; }

PowerShell Script

Nachfolgend finden Sie ein vollständiges Beispiel PowerShell Script (für die Version 4.0.20181), welches verschiedene UseCases abdeckt.

Die datasourceId, clientId und clientSecret samt allen Vorkommen der URL https://localhost:.. muss geändert werden auf die Einstellung von Ihrer Umgebung.

# Configuration $datasourceId = "b78c3707-d7c7-4fc7-b97f-87d70f63c1ac" $tokenUrl = "https://localhost:5020/connect/token" $clientID = "ApiClient" $clientSecret = "Client_Secret_123" $scope = "pd_AdminWebApi" $tokenRequestHeaders = @{ "Content-Type" = "application/x-www-form-urlencoded" } $tokenRequestBody = @{ client_id = $clientID client_secret = $clientSecret grant_type = "client_credentials" scope = $scope } # Request the access token try { $tokenResponse = Invoke-RestMethod -Uri $tokenUrl -Method POST -Headers $tokenRequestHeaders -Body $tokenRequestBody } catch { Write-Error "Error making the request: $_" exit 1; } if (-not $tokenResponse.access_token) { Write-Error "Failed to obtain an access token!" exit 1 } # Access token information Write-Host "Access Token: $($tokenResponse.access_token)" $accessToken = $tokenResponse.access_token # Prepare headers for request $apiRequestHeaders = @{ "Authorization" = "Bearer $accessToken" } $putBodyRequestHeaders = @{ "Content-Type" = "application/json" "Authorization" = "Bearer $accessToken" } function Show-Menu { Write-Host "================ Main Menu ================" Write-Host "1: Get Users" Write-Host "2: Get User Details" Write-Host "3: Update User" Write-Host "4: Create and Onboard User" Write-Host "5: Get Profile" Write-Host "6: Profile Update" Write-Host "7: Add Profile Share" Write-Host "8: Delete Profile Share" Write-Host "9: Create and Onboard Group" Write-Host "10: Get Groups" Write-Host "11: Get Organization Units" Write-Host "12: Get Organization Unit Details" Write-Host "13: Get Organization Unit Children" Write-Host "14: Update Organization Unit" Write-Host "Q: Exit" } function GetUsers { Write-Host "Getting users..." $pageSize = Read-Host "Enter pagesize" $page = Read-Host "Enter page" try { $apiUrl = "https://localhost:5001/api/v3/$($datasourceId)/Admin/Users?pageSize=$($pageSize)&page=$($page)" $response = Invoke-RestMethod -Uri $apiUrl -Method GET -Headers $apiRequestHeaders foreach ($user in $response.data) { Write-Output "$($user.id): '$($user.title)'" } Write-Output "Page: $($response.pagingDetails.page) / $($response.pagingDetails.totalPages)" } catch { Write-Error "Error making the request: $_" exit 1; } } function GetUserDetails { $userId = Read-Host "Enter UserId" Write-Host "Getting details for user: $userId" try { $apiUrl = "https://localhost:5001/api/v3/$($datasourceId)/Admin/Users/" + $userId; $user = Invoke-RestMethod -Uri $apiUrl -Method GET -Headers $apiRequestHeaders Write-Output "Id: '$($user.id)'" Write-Output "Title: '$($user.title)'"; Write-Output "Profiles: " foreach ($profile in $user.profiles) { Write-Output "'$($profile.id)': '$($profile.title) (Profile OU: '$($profile.organizationUnitId)')" } } catch { Write-Error "Error making the request: $_" exit 1; } } function CreateAndOnBoardUser { $sid = Read-Host "Enter SID" Write-Host "Creating and onboarding user with SID: $sid" try { $apiUrl = "https://localhost:5001/api/v3/$($datasourceId)/Admin/Users?sid=" + $sid; $user = Invoke-RestMethod -Uri $apiUrl -Method POST -Headers $apiRequestHeaders Write-Output "Onboarded '$($user.title)' with id '$($user.id)'"; } catch { Write-Error "Error making the request: $_" exit 1; } } function CreateAndOnBoardGroup { $sid = Read-Host "Enter SID" Write-Host "Creating and onboarding Group with SID: $sid" try { $apiUrl = "https://localhost:5001/api/v3/$($datasourceId)/Admin/Groups?sid=" + $sid; $group = Invoke-RestMethod -Uri $apiUrl -Method POST -Headers $apiRequestHeaders Write-Output "Onboarded '$($group.title)' with id '$($group.id)'"; } catch { Write-Error "Error making the request: $_" exit 1; } } function GetGroups { Write-Host "Getting Groups..." $pageSize = Read-Host "Enter pagesize" $page = Read-Host "Enter page" try { $apiUrl = "https://localhost:5001/api/v3/$($datasourceId)/Admin/Groups?pageSize=$($pageSize)&page=$($page)" $response = Invoke-RestMethod -Uri $apiUrl -Method GET -Headers $apiRequestHeaders foreach ($group in $response.data) { Write-Output "$($group.id): '$($group.title)'" } Write-Output "Page: $($response.pagingDetails.page) / $($response.pagingDetails.totalPages)" } catch { Write-Error "Error making the request: $_" exit 1; } } function ProfileUpdate { $userId = Read-Host "Enter User ID" $profileId = Read-Host "Enter Profile ID" $title = Read-Host "Enter Title" $organizationUnitId = Read-Host "Enter New Organization Unit ID" $lcid = 1031 #Read-Host "Enter lcid" $field = "Org.Title" # Read-Host "Enter Field" $field2 = "User.FirstName" # Read-Host "Enter Field" $text = Read-Host "Enter New Org.Title Value (Empty = delete)" $text2 = Read-Host "Enter New User.FirstName Value (Empty = delete)" Write-Host "Updating profile for User ID: $userId, Profile ID: $profileId, Title: $title, Organization Unit ID: $organizationUnitId" try { $body = @{ Title = $title; OrganizationUnitId = $organizationUnitId ? [System.Guid]::Parse($organizationUnitId) : $null FieldChanges = @( @{ Lcid = $lcid Field = $field Text = $text Purge = ($text -eq "") }, @{ Lcid = $lcid Field = $field2 Text = $text2 Purge = ($text2 -eq "") } ) } $apiUrl = "https://localhost:5001/api/v3/$($datasourceId)/Admin/Users/$($userId)/Profiles/$($profileId)"; # Ensure UTF-8 Encoding $utf8body = ([System.Text.Encoding]::UTF8.GetBytes(($body | ConvertTo-Json))) Invoke-RestMethod -Uri $apiUrl -Method PUT -Headers $putBodyRequestHeaders -Body $utf8body } catch { Write-Error "Error making the request: $_" exit 1; } } function GetProfile { $userId = Read-Host "Enter User ID" $profileId = Read-Host "Enter Profile ID" Write-Host "Getting profile for User ID: $userId, Profile ID: $profileId" try { $apiUrl = "https://localhost:5001/api/v3/$($datasourceId)/Admin/Users/" + $userId + "/Profiles/" + $profileId; $userProfile = Invoke-RestMethod -Uri $apiUrl -Method GET -Headers $apiRequestHeaders Write-Output "Id: '$($userProfile.id)'" Write-Output "Title: '$($userProfile.title)'"; Write-Output "ProfileShares: " foreach ($share in $userProfile.profileShares) { if ($share.userId -ne $null) { Write-Output "'$($share.id)': UserId:'$($share.userId)', ProfilePermissionLevel:'$($share.profilePermissionLevel)', SignaturePermissionLevel:'$($share.signaturePermissionLevel)'" } if ($share.groupId -ne $null) { Write-Output "'$($share.id)': GroupId:'$($share.groupId)', ProfilePermissionLevel:'$($share.profilePermissionLevel)', SignaturePermissionLevel:'$($share.signaturePermissionLevel)'" } if ($share.appUserGroupId -ne $null) { Write-Output "'$($share.id)': AppUserGroupId:'$($share.appUserGroupId)', ProfilePermissionLevel:'$($share.profilePermissionLevel)', SignaturePermissionLevel:'$($share.signaturePermissionLevel)'" } } } catch { Write-Error "Error making the request: $_" exit 1; } } function AddProfileShare { $userId = Read-Host "Enter User ID" $profileId = Read-Host "Enter Profile ID" Write-Host "Enter either User ID or Group ID or AppUserGroup ID to access the profile. Leave two of them empty." $shareUserId = Read-Host "Enter User ID (or empty)" $shareGroupId = Read-Host "Enter Group ID (or empty)" $shareAppUserGroupId = Read-Host "Enter AppUserGroup ID (or empty)" Write-Host " " Write-Host "0: Profile share cannot be used as 'regular' profile" Write-Host "1: Profile share can be used as 'regular' profile, but will be marked 'on behalf'" Write-Host "2: Profile share can be used as 'regular' profile and impersonation is allowed" $profilePermissionLevel = Read-Host "Enter Profile Permission Level" Write-Host " " Write-Host "0: Signature share cannot be used for document signing" Write-Host "1: Signature share can be used for document signing, but without real signature image" Write-Host "2: Signature share can be used for document signing with real signature image" $signaturePermissionLevel = Read-Host "Enter Signature Permission Level" try { $body = @{ UserId = $shareUserId -eq "" ? $null : $shareUserId GroupId = $shareGroupId -eq "" ? $null : $shareGroupId AppUserGroupId = $shareAppUserGroupId -eq "" ? $null : $shareAppUserGroupId profilePermissionLevel = $profilePermissionLevel; signaturePermissionLevel = $signaturePermissionLevel } $apiUrl = "https://localhost:5001/api/v3/$($datasourceId)/Admin/Users/$($userId)/Profiles/$($profileId)/ProfileShares"; # Ensure UTF-8 Encoding $utf8body = ([System.Text.Encoding]::UTF8.GetBytes(($body | ConvertTo-Json))) Invoke-RestMethod -Uri $apiUrl -Method POST -Headers $putBodyRequestHeaders -Body $utf8body } catch { Write-Error "Error making the request: $_" exit 1; } } function DeleteProfileShare { $userId = Read-Host "Enter User ID" $profileId = Read-Host "Enter Profile ID" $profileShareId = Read-Host "Enter Profile Share ID" Write-Host "Deleting profile share for User ID: $userId, Profile ID: $profileId, Profile Share ID: $profileShareId" try { $apiUrl = "https://localhost:5001/api/v3/$($datasourceId)/Admin/Users/$($userId)/Profiles/$($profileId)/ProfileShares/$($profileShareId)"; Invoke-RestMethod -Uri $apiUrl -Method DELETE -Headers $putBodyRequestHeaders } catch { Write-Error "Error making the request: $_" exit 1; } } function GetOrganizationUnits { Write-Host "Getting organization units..." $pageSize = Read-Host "Enter pagesize" $page = Read-Host "Enter page" try { $apiUrl = "https://localhost:5001/api/v3/$($datasourceId)/Admin/OrganizationUnits?pageSize=$($pageSize)&page=$($page)"; $response = Invoke-RestMethod -Uri $apiUrl -Method GET -Headers $apiRequestHeaders foreach ($organizationUnit in $response.data) { Write-Output "$($organizationUnit.id): '$($organizationUnit.title)'" } Write-Output "Page: $($response.pagingDetails.page) / $($response.pagingDetails.totalPages)" } catch { Write-Error "Error making the request: $_" exit 1; } } function GetOrganizationUnitDetails { $organizationUnitId = Read-Host "Enter Organization Unit ID" Write-Host "Getting details for organization unit: $organizationUnitId" try { $apiUrl = "https://localhost:5001/api/v3/$($datasourceId)/Admin/OrganizationUnits/" + $organizationUnitId; $organizationUnit = Invoke-RestMethod -Uri $apiUrl -Method GET -Headers $apiRequestHeaders Write-Output "Id: '$($organizationUnit.id)'" Write-Output "Title: '$($organizationUnit.title)'"; Write-Output "ParentId: '$($organizationUnit.parentId)'"; } catch { Write-Error "Error making the request: $_" exit 1; } } function GetOrganizationUnitChildren { $organizationUnitId = Read-Host "Enter Organization Unit ID" Write-Host "Getting children for organization unit: $organizationUnitId" try { $apiUrl = "https://localhost:5001/api/v3/$($datasourceId)/Admin/OrganizationUnits/" + $organizationUnitId + "/Children"; $response = Invoke-RestMethod -Uri $apiUrl -Method GET -Headers $apiRequestHeaders foreach ($organizationUnit in $response.data) { Write-Output "$($organizationUnit.id): '$($organizationUnit.title)'" } Write-Output "Page: $($response.pagingDetails.page) / $($response.pagingDetails.totalPages)" } catch { Write-Error "Error making the request: $_" exit 1; } } function UpdateOrganizationUnit { Write-Host "Updating organization unit" $organizationUnitId = Read-Host "Enter Organization Unit ID" $title = Read-Host "Enter New Title" $parentOrganizationUnitId = Read-Host "Enter New Parent Organization Unit ID" $lcid = 1031 #Read-Host "Enter lcid" $field = "Org.Title" # Read-Host "Enter Field" $field2 = "Org.Claim" # Read-Host "Enter Field" $text = Read-Host "Enter New Org.Title Value (Empty = delete)" $text2 = Read-Host "Enter New Org.Claim Value (Empty = delete)" Write-Host "Updating organization unit, Title: $title, Organization Unit ID: $organizationUnitId" try { $body = @{ Title = $title OrganizationUnitParentId = $parentOrganizationUnitId ? [System.Guid]::Parse($parentOrganizationUnitId) : $null FieldChanges = @( @{ Lcid = $lcid Field = $field Text = $text Purge = ($text -eq "") }, @{ Lcid = $lcid Field = $field2 Text = $text2 Purge = ($text2 -eq "") } ) } $apiUrl = "https://localhost:5001/api/v3/$($datasourceId)/Admin/OrganizationUnits/$($organizationUnitId)"; # Ensure UTF-8 Encoding $utf8body = ([System.Text.Encoding]::UTF8.GetBytes(($body | ConvertTo-Json))) Invoke-RestMethod -Uri $apiUrl -Method PUT -Headers $putBodyRequestHeaders -Body $utf8body } catch { Write-Error "Error making the request: $_" exit 1; } } function UpdateUser { $userId = Read-Host "Enter User ID" $title = Read-Host "Enter New Title" $lcid = 1031 #Read-Host "Enter lcid" $field = "User.FirstName" # Read-Host "Enter Field" $field2 = "User.LastName" # Read-Host "Enter Field" $text = Read-Host "Enter New User.FirstName Value (Empty = delete)" $text2 = Read-Host "Enter New User.LastName Value (Empty = delete)" Write-Host "Updating user, Title: $title, User ID: $userId" try { $body = @{ Title = $title FieldChanges = @( @{ Lcid = $lcid Field = $field Text = $text Purge = ($text -eq "") }, @{ Lcid = $lcid Field = $field2 Text = $text2 Purge = ($text2 -eq "") } ) } $apiUrl = "https://localhost:5001/api/v3/$($datasourceId)/Admin/Users/$($userId)"; # Ensure UTF-8 Encoding $utf8body = ([System.Text.Encoding]::UTF8.GetBytes(($body | ConvertTo-Json))) Invoke-RestMethod -Uri $apiUrl -Method PUT -Headers $putBodyRequestHeaders -Body $utf8body } catch { Write-Error "Error making the request: $_" exit 1; } } do { Show-Menu $selection = Read-Host "Please select an option" switch ($selection) { '1' { GetUsers } '2' { GetUserDetails } '3' { UpdateUser } '4' { CreateAndOnBoardUser } '5' { GetProfile } '6' { ProfileUpdate } '7' { AddProfileShare } '8' { DeleteProfileShare } '9' { CreateAndOnBoardGroup } '10' { GetGroups } '11' { GetOrganizationUnits } '12' { GetOrganizationUnitDetails } '13' { GetOrganizationUnitChildren } '14' { UpdateOrganizationUnit } 'Q' { break; } Default { Write-Host "Invalid option selected" } } } while ($selection -ne 'Q')

Swagger / Open API

Die aktuelle Admin API Open API sieht in der Version 4.0.20171 folgendermassen aus. Sie können diese Beschreibung z.B. über den Swagger Editor visualisieren.

{ "openapi": "3.0.1", "info": { "title": "primedocs WebApi", "version": "v3" }, "servers": [ { "url": "/webapi" } ], "paths": { "/api/v3/{datasourceId}/Admin/Groups": { "get": { "tags": [ "AdminGroup" ], "parameters": [ { "name": "PageSize", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "Page", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "datasourceId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PagedResponse`1<AdminGroupInfo[]v3>" } } } } } }, "post": { "tags": [ "AdminGroup" ], "parameters": [ { "name": "sid", "in": "query", "schema": { "type": "string" } }, { "name": "datasourceId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminGroupInfoV3" } } } } } } }, "/api/v3/{datasourceId}/Admin/OrganizationUnits": { "get": { "tags": [ "AdminOrganizationUnit" ], "parameters": [ { "name": "PageSize", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "Page", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "datasourceId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PagedResponse`1<AdminOrganizationUnitInfo[]v3>" } } } } } } }, "/api/v3/{datasourceId}/Admin/OrganizationUnits/{organizationUnitId}": { "get": { "tags": [ "AdminOrganizationUnit" ], "parameters": [ { "name": "organizationUnitId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "datasourceId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrganizationUnitDetailInfoV3" } } } } } }, "put": { "tags": [ "AdminOrganizationUnit" ], "parameters": [ { "name": "organizationUnitId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "datasourceId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOrganizationUnitEditV3" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AdminOrganizationUnitEditV3" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/AdminOrganizationUnitEditV3" } } } }, "responses": { "200": { "description": "Success" } } } }, "/api/v3/{datasourceId}/Admin/OrganizationUnits/{organizationUnitId}/Children": { "get": { "tags": [ "AdminOrganizationUnit" ], "parameters": [ { "name": "organizationUnitId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "PageSize", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "Page", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "datasourceId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PagedResponse`1<AdminOrganizationUnitInfo[]v3>" } } } } } } }, "/api/v3/{datasourceId}/Admin/Users": { "get": { "tags": [ "AdminUser" ], "parameters": [ { "name": "PageSize", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "Page", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "datasourceId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PagedResponse`1<AdminUserInfo[]v3>" } } } } } }, "post": { "tags": [ "AdminUser" ], "parameters": [ { "name": "sid", "in": "query", "schema": { "type": "string" } }, { "name": "datasourceId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUserDetailInfoV3" } } } } } } }, "/api/v3/{datasourceId}/Admin/Users/{userId}": { "get": { "tags": [ "AdminUser" ], "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "datasourceId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUserDetailInfoV3" } } } } } }, "put": { "tags": [ "AdminUser" ], "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "datasourceId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminUserUpdateEditV3" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AdminUserUpdateEditV3" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/AdminUserUpdateEditV3" } } } }, "responses": { "200": { "description": "Success" } } } }, "/api/v3/{datasourceId}/Admin/Users/{userId}/Profiles/{profileId}": { "put": { "tags": [ "AdminUser" ], "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "profileId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "datasourceId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProfileUpdateEditV3" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AdminProfileUpdateEditV3" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/AdminProfileUpdateEditV3" } } } }, "responses": { "200": { "description": "Success" } } }, "get": { "tags": [ "AdminUser" ], "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "profileId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "datasourceId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProfileDetailInfoV3" } } } } } } }, "/api/v3/{datasourceId}/Admin/Users/{userId}/Profiles/{profileId}/ProfileShares": { "post": { "tags": [ "AdminUser" ], "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "profileId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "datasourceId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminProfileShareEditV3" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AdminProfileShareEditV3" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/AdminProfileShareEditV3" } } } }, "responses": { "200": { "description": "Success" } } } }, "/api/v3/{datasourceId}/Admin/Users/{userId}/Profiles/{profileId}/ProfileShares/{profileShareId}": { "delete": { "tags": [ "AdminUser" ], "parameters": [ { "name": "userId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "profileId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "profileShareId", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "datasourceId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" } } } } }, "components": { "schemas": { "AdminGroupInfoV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "title": { "type": "string", "nullable": true }, "primarySid": { "type": "string", "nullable": true } }, "additionalProperties": false }, "AdminOrganizationUnitDetailInfoV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "title": { "type": "string", "nullable": true }, "parentId": { "type": "string", "format": "uuid", "nullable": true } }, "additionalProperties": false }, "AdminOrganizationUnitEditV3": { "type": "object", "properties": { "title": { "type": "string", "nullable": true }, "organizationUnitParentId": { "type": "string", "format": "uuid", "nullable": true }, "fieldChanges": { "type": "array", "items": { "$ref": "#/components/schemas/FieldEdit" }, "nullable": true } }, "additionalProperties": false }, "AdminOrganizationUnitInfoV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "title": { "type": "string", "nullable": true } }, "additionalProperties": false }, "AdminProfileDetailInfoV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "title": { "type": "string", "nullable": true }, "organizationUnitId": { "type": "string", "format": "uuid", "nullable": true }, "organizationUnitTitle": { "type": "string", "nullable": true }, "profileShares": { "type": "array", "items": { "$ref": "#/components/schemas/AdminProfileShareV3" }, "nullable": true } }, "additionalProperties": false }, "AdminProfileInfoV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "title": { "type": "string", "nullable": true }, "organizationUnitId": { "type": "string", "format": "uuid", "nullable": true }, "organizationUnitTitle": { "type": "string", "nullable": true } }, "additionalProperties": false }, "AdminProfileShareEditV3": { "type": "object", "properties": { "userId": { "type": "string", "format": "uuid", "nullable": true }, "groupId": { "type": "string", "format": "uuid", "nullable": true }, "appUserGroupId": { "type": "string", "format": "uuid", "nullable": true }, "profilePermissionLevel": { "type": "integer", "format": "int32" }, "signaturePermissionLevel": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "AdminProfileShareV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "userId": { "type": "string", "format": "uuid", "nullable": true }, "groupId": { "type": "string", "format": "uuid", "nullable": true }, "appUserGroupId": { "type": "string", "format": "uuid", "nullable": true }, "profilePermissionLevel": { "type": "integer", "format": "int32" }, "signaturePermissionLevel": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "AdminProfileUpdateEditV3": { "type": "object", "properties": { "title": { "type": "string", "nullable": true }, "organizationUnitId": { "type": "string", "format": "uuid" }, "fieldChanges": { "type": "array", "items": { "$ref": "#/components/schemas/FieldEdit" }, "nullable": true } }, "additionalProperties": false }, "AdminUserDetailInfoV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "primarySid": { "type": "string", "nullable": true }, "title": { "type": "string", "nullable": true }, "profiles": { "type": "array", "items": { "$ref": "#/components/schemas/AdminProfileInfoV3" }, "nullable": true } }, "additionalProperties": false }, "AdminUserInfoV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "primarySID": { "type": "string", "nullable": true }, "title": { "type": "string", "nullable": true } }, "additionalProperties": false }, "AdminUserUpdateEditV3": { "type": "object", "properties": { "title": { "type": "string", "nullable": true }, "fieldChanges": { "type": "array", "items": { "$ref": "#/components/schemas/FieldEdit" }, "nullable": true } }, "additionalProperties": false }, "EmailMessageTypeV3": { "enum": [ 0, 1, 2 ], "type": "integer", "format": "int32" }, "FieldEdit": { "type": "object", "properties": { "field": { "type": "string", "nullable": true }, "text": { "type": "string", "nullable": true }, "imageAsBase64": { "type": "string", "nullable": true }, "lcid": { "type": "integer", "format": "int32" }, "purge": { "type": "boolean" } }, "additionalProperties": false }, "FlatFieldInfoV2": { "type": "object", "properties": { "field": { "type": "string", "nullable": true }, "text": { "type": "string", "nullable": true }, "inheritance": { "type": "string", "nullable": true }, "isImage": { "type": "boolean" }, "lcid": { "type": "integer", "format": "int32" }, "profileId": { "type": "string", "format": "uuid", "nullable": true }, "_links": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/LinkV2" }, "nullable": true, "readOnly": true } }, "additionalProperties": false }, "LinkV2": { "type": "object", "properties": { "href": { "type": "string", "nullable": true }, "type": { "type": "string", "nullable": true }, "id": { "type": "string", "nullable": true } }, "additionalProperties": false }, "PagedResponse`1<AdminGroupInfo[]v3>": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/AdminGroupInfoV3" }, "nullable": true }, "pagingDetails": { "$ref": "#/components/schemas/PagingDetails" } }, "additionalProperties": false }, "PagedResponse`1<AdminOrganizationUnitInfo[]v3>": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/AdminOrganizationUnitInfoV3" }, "nullable": true }, "pagingDetails": { "$ref": "#/components/schemas/PagingDetails" } }, "additionalProperties": false }, "PagedResponse`1<AdminUserInfo[]v3>": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/AdminUserInfoV3" }, "nullable": true }, "pagingDetails": { "$ref": "#/components/schemas/PagingDetails" } }, "additionalProperties": false }, "PagedResponse`1<SharedProfileInfo[]v2>": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/SharedProfileInfoV2" }, "nullable": true }, "pagingDetails": { "$ref": "#/components/schemas/PagingDetails" } }, "additionalProperties": false }, "PagingDetails": { "type": "object", "properties": { "pageSize": { "type": "integer", "format": "int32" }, "page": { "type": "integer", "format": "int32" }, "totalPages": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "SearchInputFieldsResponseModel": { "type": "object", "properties": { "dataProviderDisplayName": { "type": "string", "nullable": true }, "searchParametersConfigurationXmlSerialized": { "type": "string", "nullable": true } }, "additionalProperties": false }, "SharedProfileInfoV2": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "title": { "type": "string", "nullable": true }, "hasProfileImage": { "type": "boolean" }, "_links": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/LinkV2" }, "nullable": true, "readOnly": true }, "organizationUnitId": { "type": "string", "format": "uuid" }, "organizationUnit": { "type": "string", "nullable": true }, "isDefault": { "type": "boolean" }, "organizationUnitPath": { "type": "string", "nullable": true }, "localizedFlatFields": { "type": "object", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/FlatFieldInfoV2" } }, "nullable": true }, "isForeignProfile": { "type": "boolean" }, "isPinned": { "type": "boolean" }, "organizationUnitThemes": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true } }, "additionalProperties": false }, "SignatureContentV3": { "type": "object", "properties": { "content": { "type": "string", "nullable": true } }, "additionalProperties": false }, "SignatureV3": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string", "nullable": true } }, "additionalProperties": false } }, "securitySchemes": { "oauth2": { "type": "oauth2", "flows": { "implicit": { "authorizationUrl": "https://{TENANTURL}/ids/connect/authorize", "scopes": { "oo_WebApi": "Web API" } } } } } }, "security": [ { "oauth2": [ "oo_WebApi" ] } ] }

PrimeSoft AG, Bahnhofstrasse 4, 8360 Eschlikon, Switzerland