PingOne Platform APIs

Update Direct-mapped User

 

PUT {{scimPath}}/environments/{{envID}}/v2/DirectMappedUsers/{{userID}}

The PUT {{scimPath}}/environments/{{envID}}/v2/DirectMappedUsers/{{userID}} operation updates all information about the specified user in the specified environment. All attributes of the user are replaced by the attributes in the body.

Prerequisites

Request Model

Refer to the Direct-mapped user data model for full property descriptions.

Property Type Required

accountId

String

Optional

address.countryCode

String

Optional

address.locality

String

Optional

address.postalCode

String

Optional

address.region

String

Optional

address.streetAddress

String

Optional

email

String

Optional

externalId

String

Optional

locale

String

Optional

mobilePhone

String

Optional

name.familyName

String

Optional

name.formatted

String

Optional

name.givenName

String

Optional

name.honorificPrefix

String

Optional

name.honorificSuffix

String

Optional

name.middleName

String

Optional

nickname

String

Optional

password

String

Optional

photo.href

String

Optional

population.id

String

Required/Optional

preferredLanguage

String

Optional

primaryPhone

String

Optional

resourceType

String

Required

timezone

String

Optional

title

String

Optional

type

String

Optional

username

String

Required

Headers

Authorization      Bearer {{accessToken}}

Content-Type      application/json

Body

raw ( application/json )

{
    "schemas": [
        "urn:pingidentity:schemas:2.0:DirectMappedUser"
    ],
    "name": {
        "formatted": "Rawnald Gregory Erickson II",
        "given": "Rawnald",
        "family": "Erickson",
        "honorificPrefix": "Mr.",
        "honorificSuffix": "II"
    },
    "nickname": "Ronnie",
    "population": {
        "id": "{{popID}}"
    },
    "primaryPhone": "1234567890",
    "username": "tmp-dm-user-1-UPDATED"
}

Example Request

  • cURL

  • C#

  • Go

  • HTTP

  • Java

  • jQuery

  • NodeJS

  • Python

  • PHP

  • Ruby

  • Swift

curl --location --globoff --request PUT '{{scimPath}}/environments/{{envID}}/v2/DirectMappedUsers/{{userID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
    "schemas": [
        "urn:pingidentity:schemas:2.0:DirectMappedUser"
    ],
    "name": {
        "formatted": "Rawnald Gregory Erickson II",
        "given": "Rawnald",
        "family": "Erickson",
        "honorificPrefix": "Mr.",
        "honorificSuffix": "II"
    },
    "nickname": "Ronnie",
    "population": {
        "id": "{{popID}}"
    },
    "primaryPhone": "1234567890",
    "username": "tmp-dm-user-1-UPDATED"
}'
var options = new RestClientOptions("{{scimPath}}/environments/{{envID}}/v2/DirectMappedUsers/{{userID}}")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Put);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Bearer {{accessToken}}");
var body = @"{" + "\n" +
@"    ""schemas"": [" + "\n" +
@"        ""urn:pingidentity:schemas:2.0:DirectMappedUser""" + "\n" +
@"    ]," + "\n" +
@"    ""name"": {" + "\n" +
@"        ""formatted"": ""Rawnald Gregory Erickson II""," + "\n" +
@"        ""given"": ""Rawnald""," + "\n" +
@"        ""family"": ""Erickson""," + "\n" +
@"        ""honorificPrefix"": ""Mr.""," + "\n" +
@"        ""honorificSuffix"": ""II""" + "\n" +
@"    }," + "\n" +
@"    ""nickname"": ""Ronnie""," + "\n" +
@"    ""population"": {" + "\n" +
@"        ""id"": ""{{popID}}""" + "\n" +
@"    }," + "\n" +
@"    ""primaryPhone"": ""1234567890""," + "\n" +
@"    ""username"": ""tmp-dm-user-1-UPDATED""" + "\n" +
@"}";
request.AddStringBody(body, DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io"
)

func main() {

  url := "{{scimPath}}/environments/{{envID}}/v2/DirectMappedUsers/{{userID}}"
  method := "PUT"

  payload := strings.NewReader(`{
    "schemas": [
        "urn:pingidentity:schemas:2.0:DirectMappedUser"
    ],
    "name": {
        "formatted": "Rawnald Gregory Erickson II",
        "given": "Rawnald",
        "family": "Erickson",
        "honorificPrefix": "Mr.",
        "honorificSuffix": "II"
    },
    "nickname": "Ronnie",
    "population": {
        "id": "{{popID}}"
    },
    "primaryPhone": "1234567890",
    "username": "tmp-dm-user-1-UPDATED"
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Content-Type", "application/json")
  req.Header.Add("Authorization", "Bearer {{accessToken}}")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
PUT /environments/{{envID}}/v2/DirectMappedUsers/{{userID}} HTTP/1.1
Host: {{scimPath}}
Content-Type: application/json
Authorization: Bearer {{accessToken}}

{
    "schemas": [
        "urn:pingidentity:schemas:2.0:DirectMappedUser"
    ],
    "name": {
        "formatted": "Rawnald Gregory Erickson II",
        "given": "Rawnald",
        "family": "Erickson",
        "honorificPrefix": "Mr.",
        "honorificSuffix": "II"
    },
    "nickname": "Ronnie",
    "population": {
        "id": "{{popID}}"
    },
    "primaryPhone": "1234567890",
    "username": "tmp-dm-user-1-UPDATED"
}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n    \"schemas\": [\n        \"urn:pingidentity:schemas:2.0:DirectMappedUser\"\n    ],\n    \"name\": {\n        \"formatted\": \"Rawnald Gregory Erickson II\",\n        \"given\": \"Rawnald\",\n        \"family\": \"Erickson\",\n        \"honorificPrefix\": \"Mr.\",\n        \"honorificSuffix\": \"II\"\n    },\n    \"nickname\": \"Ronnie\",\n    \"population\": {\n        \"id\": \"{{popID}}\"\n    },\n    \"primaryPhone\": \"1234567890\",\n    \"username\": \"tmp-dm-user-1-UPDATED\"\n}");
Request request = new Request.Builder()
  .url("{{scimPath}}/environments/{{envID}}/v2/DirectMappedUsers/{{userID}}")
  .method("PUT", body)
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "Bearer {{accessToken}}")
  .build();
Response response = client.newCall(request).execute();
var settings = {
  "url": "{{scimPath}}/environments/{{envID}}/v2/DirectMappedUsers/{{userID}}",
  "method": "PUT",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer {{accessToken}}"
  },
  "data": JSON.stringify({
    "schemas": [
      "urn:pingidentity:schemas:2.0:DirectMappedUser"
    ],
    "name": {
      "formatted": "Rawnald Gregory Erickson II",
      "given": "Rawnald",
      "family": "Erickson",
      "honorificPrefix": "Mr.",
      "honorificSuffix": "II"
    },
    "nickname": "Ronnie",
    "population": {
      "id": "{{popID}}"
    },
    "primaryPhone": "1234567890",
    "username": "tmp-dm-user-1-UPDATED"
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var request = require('request');
var options = {
  'method': 'PUT',
  'url': '{{scimPath}}/environments/{{envID}}/v2/DirectMappedUsers/{{userID}}',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer {{accessToken}}'
  },
  body: JSON.stringify({
    "schemas": [
      "urn:pingidentity:schemas:2.0:DirectMappedUser"
    ],
    "name": {
      "formatted": "Rawnald Gregory Erickson II",
      "given": "Rawnald",
      "family": "Erickson",
      "honorificPrefix": "Mr.",
      "honorificSuffix": "II"
    },
    "nickname": "Ronnie",
    "population": {
      "id": "{{popID}}"
    },
    "primaryPhone": "1234567890",
    "username": "tmp-dm-user-1-UPDATED"
  })

};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
import requests
import json

url = "{{scimPath}}/environments/{{envID}}/v2/DirectMappedUsers/{{userID}}"

payload = json.dumps({
  "schemas": [
    "urn:pingidentity:schemas:2.0:DirectMappedUser"
  ],
  "name": {
    "formatted": "Rawnald Gregory Erickson II",
    "given": "Rawnald",
    "family": "Erickson",
    "honorificPrefix": "Mr.",
    "honorificSuffix": "II"
  },
  "nickname": "Ronnie",
  "population": {
    "id": "{{popID}}"
  },
  "primaryPhone": "1234567890",
  "username": "tmp-dm-user-1-UPDATED"
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer {{accessToken}}'
}

response = requests.request("PUT", url, headers=headers, data=payload)

print(response.text)
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{scimPath}}/environments/{{envID}}/v2/DirectMappedUsers/{{userID}}');
$request->setMethod(HTTP_Request2::METHOD_PUT);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer {{accessToken}}'
));
$request->setBody('{\n    "schemas": [\n        "urn:pingidentity:schemas:2.0:DirectMappedUser"\n    ],\n    "name": {\n        "formatted": "Rawnald Gregory Erickson II",\n        "given": "Rawnald",\n        "family": "Erickson",\n        "honorificPrefix": "Mr.",\n        "honorificSuffix": "II"\n    },\n    "nickname": "Ronnie",\n    "population": {\n        "id": "{{popID}}"\n    },\n    "primaryPhone": "1234567890",\n    "username": "tmp-dm-user-1-UPDATED"\n}');
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
require "uri"
require "json"
require "net/http"

url = URI("{{scimPath}}/environments/{{envID}}/v2/DirectMappedUsers/{{userID}}")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Put.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer {{accessToken}}"
request.body = JSON.dump({
  "schemas": [
    "urn:pingidentity:schemas:2.0:DirectMappedUser"
  ],
  "name": {
    "formatted": "Rawnald Gregory Erickson II",
    "given": "Rawnald",
    "family": "Erickson",
    "honorificPrefix": "Mr.",
    "honorificSuffix": "II"
  },
  "nickname": "Ronnie",
  "population": {
    "id": "{{popID}}"
  },
  "primaryPhone": "1234567890",
  "username": "tmp-dm-user-1-UPDATED"
})

response = http.request(request)
puts response.read_body
let parameters = "{\n    \"schemas\": [\n        \"urn:pingidentity:schemas:2.0:DirectMappedUser\"\n    ],\n    \"name\": {\n        \"formatted\": \"Rawnald Gregory Erickson II\",\n        \"given\": \"Rawnald\",\n        \"family\": \"Erickson\",\n        \"honorificPrefix\": \"Mr.\",\n        \"honorificSuffix\": \"II\"\n    },\n    \"nickname\": \"Ronnie\",\n    \"population\": {\n        \"id\": \"{{popID}}\"\n    },\n    \"primaryPhone\": \"1234567890\",\n    \"username\": \"tmp-dm-user-1-UPDATED\"\n}"
let postData = parameters.data(using: .utf8)

var request = URLRequest(url: URL(string: "{{scimPath}}/environments/{{envID}}/v2/DirectMappedUsers/{{userID}}")!,timeoutInterval: Double.infinity)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("Bearer {{accessToken}}", forHTTPHeaderField: "Authorization")

request.httpMethod = "PUT"
request.httpBody = postData

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}

task.resume()

Example Response

200 OK

{
    "schemas": [
        "urn:pingidentity:schemas:2.0:DirectMappedUser"
    ],
    "id": "f0a13f5d-3314-49c8-aede-86a059461728",
    "meta": {
        "created": "2022-09-15T15:48:51.428Z",
        "lastModified": "2023-03-07T19:19:52.924Z",
        "resourceType": "User",
        "location": "https://scim-api.pingone.com/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/v2/DirectMappedUsers/f0a13f5d-3314-49c8-aede-86a059461728"
    },
    "environment": {
        "id": "abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
    },
    "account": {
        "canAuthenticate": true,
        "status": "OK"
    },
    "enabled": true,
    "identityProvider": {
        "type": "PING_ONE"
    },
    "lifecycle": {
        "status": "ACCOUNT_OK"
    },
    "mfaEnabled": false,
    "name": {
        "formatted": "Rawnald Gregory Erickson II",
        "given": "Rawnald",
        "family": "Erickson",
        "honorificPrefix": "Mr.",
        "honorificSuffix": "II"
    },
    "nickname": "Ronnie",
    "population": {
        "id": "cb3ef0a0-0ff5-4f60-ae82-4ae65d9d0e3a"
    },
    "primaryPhone": "1234567890",
    "username": "tmp-dm-user-1-UPDATED",
    "verifyStatus": "NOT_INITIATED"
}