Change the Parent DN
PUT {{apiPath}}/directory/v1/{{dn}}
You can also change the parent DN, in addition to or independent of the RDN, in order to move the entry. The new parent DN must point to an existing entry and the naming attribute must still be provided, even if the RDN does not change.
Example Request
-
cURL
-
C#
-
Go
-
HTTP
-
Java
-
jQuery
-
NodeJS
-
Python
-
PHP
-
Ruby
-
Swift
curl --location --globoff --request PUT '{{apiPath}}/directory/v1/{{dn}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
"_dn": "cn=Linda Brown,ou=employees,dc=example,dc=com",
"cn": [
"Linda Brown"
]
}'
var options = new RestClientOptions("{{apiPath}}/directory/v1/{{dn}}")
{
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" +
@" ""_dn"": ""cn=Linda Brown,ou=employees,dc=example,dc=com""," + "\n" +
@" ""cn"": [" + "\n" +
@" ""Linda Brown""" + "\n" +
@" ]" + "\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 := "{{apiPath}}/directory/v1/{{dn}}"
method := "PUT"
payload := strings.NewReader(`{
"_dn": "cn=Linda Brown,ou=employees,dc=example,dc=com",
"cn": [
"Linda Brown"
]
}`)
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 /directory/v1/{{dn}} HTTP/1.1
Host: {{apiPath}}
Content-Type: application/json
Authorization: Bearer {{accessToken}}
{
"_dn": "cn=Linda Brown,ou=employees,dc=example,dc=com",
"cn": [
"Linda Brown"
]
}
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"_dn\": \"cn=Linda Brown,ou=employees,dc=example,dc=com\",\n \"cn\": [\n \"Linda Brown\"\n ]\n}");
Request request = new Request.Builder()
.url("{{apiPath}}/directory/v1/{{dn}}")
.method("PUT", body)
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{accessToken}}")
.build();
Response response = client.newCall(request).execute();
var settings = {
"url": "{{apiPath}}/directory/v1/{{dn}}",
"method": "PUT",
"timeout": 0,
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer {{accessToken}}"
},
"data": JSON.stringify({
"_dn": "cn=Linda Brown,ou=employees,dc=example,dc=com",
"cn": [
"Linda Brown"
]
}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
var request = require('request');
var options = {
'method': 'PUT',
'url': '{{apiPath}}/directory/v1/{{dn}}',
'headers': {
'Content-Type': 'application/json',
'Authorization': 'Bearer {{accessToken}}'
},
body: JSON.stringify({
"_dn": "cn=Linda Brown,ou=employees,dc=example,dc=com",
"cn": [
"Linda Brown"
]
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
import json
url = "{{apiPath}}/directory/v1/{{dn}}"
payload = json.dumps({
"_dn": "cn=Linda Brown,ou=employees,dc=example,dc=com",
"cn": [
"Linda Brown"
]
})
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('{{apiPath}}/directory/v1/{{dn}}');
$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 "_dn": "cn=Linda Brown,ou=employees,dc=example,dc=com",\n "cn": [\n "Linda Brown"\n ]\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("{{apiPath}}/directory/v1/{{dn}}")
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({
"_dn": "cn=Linda Brown,ou=employees,dc=example,dc=com",
"cn": [
"Linda Brown"
]
})
response = http.request(request)
puts response.read_body
let parameters = "{\n \"_dn\": \"cn=Linda Brown,ou=employees,dc=example,dc=com\",\n \"cn\": [\n \"Linda Brown\"\n ]\n}"
let postData = parameters.data(using: .utf8)
var request = URLRequest(url: URL(string: "{{apiPath}}/directory/v1/{{dn}}")!,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
{
"_dn": "cn=Linda Brown,ou=employees,dc=example,dc=com",
"objectClass": [
"top",
"person",
"organizationalPerson",
"inetOrgPerson"
],
"uid": [
"lindabrown"
],
"cn": [
"Linda Brown"
],
"sn": [
"Brown"
],
"ubidEmailJSON": [
{
"type": "home",
"value": "user@example.com",
"verified": true
}
],
"_links": {
"schemas": [
{
"href": "https://ds.example.com/directory/v1/schemas/inetOrgPerson"
}
],
"self": {
"href": "https://ds.example.com/directory/v1/cn=Linda+Brown,ou=employees,dc=example,dc=com"
}
}
}