PingOne Platform APIs

Create Store (LdapGateway)

 

POST {{apiPath}}/environments/{{envID}}/propagation/stores

The POST {{apiPath}}/environments/{{envID}}/propagation/stores operation adds a new identity store resource to the specified environment resource.

The only valid LDAP_TYPE values are PingDirectory and Microsoft Active Directory.

Request Model
Property Type Required?

configuration.ATTRIBUTE_METADATA

String

Optional

configuration.CLIENT_ID

String

Required

configuration.CLIENT_SECRET

String

Required

configuration.CREATE_USERS

Boolean

Optional

configuration.DELETE_USERS

Boolean

Optional

configuration.ENVIRONMENT_ID

String

Required

configuration.GATEWAY_BASE_URL

String

Required

configuration.GATEWAY_ID

String

Required

configuration.LDAP_TYPE

String

Required

configuration.OAUTH_URL

String

Required

configuration.UPDATE_USERS

Boolean

Optional

description

String

Optional

image.href

String

Optional

managed

Boolean

Optional

name

String

Required

type

String

Required

This operation sends and returns the connection properties for an identity store with "type":"LdapGateway". For information on the available and required keys in the request body, review the response to POST Identity Propagation Store Metadata (LdapGateway).

Headers

Authorization      Bearer {{accessToken}}

Content-Type      application/json

Body

raw ( application/json )

{
    "configuration": {
        "CREATE_USERS": false,
        "UPDATE_USERS": true,
        "DEPROVISION_USERS": false,
        "DISABLE_USERS": true,
        "ENVIRONMENT_ID": "{{envID}}",
        "GATEWAY_ID": "{{gatewayID}}",
        "LDAP_TYPE": "PingDirectory",
        "REMOVE_ACTION": "Disable"
    },
    "type": "LdapGateway",
    "image": {
        "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
    },
    "name": "PingOne Gateway (PingOne)"
}

Example Request

  • cURL

  • C#

  • Go

  • HTTP

  • Java

  • jQuery

  • NodeJS

  • Python

  • PHP

  • Ruby

  • Swift

curl --location --globoff '{{apiPath}}/environments/{{envID}}/propagation/stores' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
    "configuration": {
        "CREATE_USERS": false,
        "UPDATE_USERS": true,
        "DEPROVISION_USERS": false,
        "DISABLE_USERS": true,
        "ENVIRONMENT_ID": "{{envID}}",
        "GATEWAY_ID": "{{gatewayID}}",
        "LDAP_TYPE": "PingDirectory",
        "REMOVE_ACTION": "Disable"
    },
    "type": "LdapGateway",
    "image": {
        "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
    },
    "name": "PingOne Gateway (PingOne)"
}'
var options = new RestClientOptions("{{apiPath}}/environments/{{envID}}/propagation/stores")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Post);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Bearer {{accessToken}}");
var body = @"{" + "\n" +
@"    ""configuration"": {" + "\n" +
@"        ""CREATE_USERS"": false," + "\n" +
@"        ""UPDATE_USERS"": true," + "\n" +
@"        ""DEPROVISION_USERS"": false," + "\n" +
@"        ""DISABLE_USERS"": true," + "\n" +
@"        ""ENVIRONMENT_ID"": ""{{envID}}""," + "\n" +
@"        ""GATEWAY_ID"": ""{{gatewayID}}""," + "\n" +
@"        ""LDAP_TYPE"": ""PingDirectory""," + "\n" +
@"        ""REMOVE_ACTION"": ""Disable""" + "\n" +
@"    }," + "\n" +
@"    ""type"": ""LdapGateway""," + "\n" +
@"    ""image"": {" + "\n" +
@"        ""href"": ""https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png""" + "\n" +
@"    }," + "\n" +
@"    ""name"": ""PingOne Gateway (PingOne)""" + "\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}}/environments/{{envID}}/propagation/stores"
  method := "POST"

  payload := strings.NewReader(`{
    "configuration": {
        "CREATE_USERS": false,
        "UPDATE_USERS": true,
        "DEPROVISION_USERS": false,
        "DISABLE_USERS": true,
        "ENVIRONMENT_ID": "{{envID}}",
        "GATEWAY_ID": "{{gatewayID}}",
        "LDAP_TYPE": "PingDirectory",
        "REMOVE_ACTION": "Disable"
    },
    "type": "LdapGateway",
    "image": {
        "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
    },
    "name": "PingOne Gateway (PingOne)"
}`)

  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))
}
POST /environments/{{envID}}/propagation/stores HTTP/1.1
Host: {{apiPath}}
Content-Type: application/json
Authorization: Bearer {{accessToken}}

{
    "configuration": {
        "CREATE_USERS": false,
        "UPDATE_USERS": true,
        "DEPROVISION_USERS": false,
        "DISABLE_USERS": true,
        "ENVIRONMENT_ID": "{{envID}}",
        "GATEWAY_ID": "{{gatewayID}}",
        "LDAP_TYPE": "PingDirectory",
        "REMOVE_ACTION": "Disable"
    },
    "type": "LdapGateway",
    "image": {
        "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
    },
    "name": "PingOne Gateway (PingOne)"
}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n    \"configuration\": {\n        \"CREATE_USERS\": false,\n        \"UPDATE_USERS\": true,\n        \"DEPROVISION_USERS\": false,\n        \"DISABLE_USERS\": true,\n        \"ENVIRONMENT_ID\": \"{{envID}}\",\n        \"GATEWAY_ID\": \"{{gatewayID}}\",\n        \"LDAP_TYPE\": \"PingDirectory\",\n        \"REMOVE_ACTION\": \"Disable\"\n    },\n    \"type\": \"LdapGateway\",\n    \"image\": {\n        \"href\": \"https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png\"\n    },\n    \"name\": \"PingOne Gateway (PingOne)\"\n}");
Request request = new Request.Builder()
  .url("{{apiPath}}/environments/{{envID}}/propagation/stores")
  .method("POST", body)
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "Bearer {{accessToken}}")
  .build();
Response response = client.newCall(request).execute();
var settings = {
  "url": "{{apiPath}}/environments/{{envID}}/propagation/stores",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer {{accessToken}}"
  },
  "data": JSON.stringify({
    "configuration": {
      "CREATE_USERS": false,
      "UPDATE_USERS": true,
      "DEPROVISION_USERS": false,
      "DISABLE_USERS": true,
      "ENVIRONMENT_ID": "{{envID}}",
      "GATEWAY_ID": "{{gatewayID}}",
      "LDAP_TYPE": "PingDirectory",
      "REMOVE_ACTION": "Disable"
    },
    "type": "LdapGateway",
    "image": {
      "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
    },
    "name": "PingOne Gateway (PingOne)"
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var request = require('request');
var options = {
  'method': 'POST',
  'url': '{{apiPath}}/environments/{{envID}}/propagation/stores',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer {{accessToken}}'
  },
  body: JSON.stringify({
    "configuration": {
      "CREATE_USERS": false,
      "UPDATE_USERS": true,
      "DEPROVISION_USERS": false,
      "DISABLE_USERS": true,
      "ENVIRONMENT_ID": "{{envID}}",
      "GATEWAY_ID": "{{gatewayID}}",
      "LDAP_TYPE": "PingDirectory",
      "REMOVE_ACTION": "Disable"
    },
    "type": "LdapGateway",
    "image": {
      "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
    },
    "name": "PingOne Gateway (PingOne)"
  })

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

url = "{{apiPath}}/environments/{{envID}}/propagation/stores"

payload = json.dumps({
  "configuration": {
    "CREATE_USERS": False,
    "UPDATE_USERS": True,
    "DEPROVISION_USERS": False,
    "DISABLE_USERS": True,
    "ENVIRONMENT_ID": "{{envID}}",
    "GATEWAY_ID": "{{gatewayID}}",
    "LDAP_TYPE": "PingDirectory",
    "REMOVE_ACTION": "Disable"
  },
  "type": "LdapGateway",
  "image": {
    "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
  },
  "name": "PingOne Gateway (PingOne)"
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer {{accessToken}}'
}

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

print(response.text)
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{apiPath}}/environments/{{envID}}/propagation/stores');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer {{accessToken}}'
));
$request->setBody('{\n    "configuration": {\n        "CREATE_USERS": false,\n        "UPDATE_USERS": true,\n        "DEPROVISION_USERS": false,\n        "DISABLE_USERS": true,\n        "ENVIRONMENT_ID": "{{envID}}",\n        "GATEWAY_ID": "{{gatewayID}}",\n        "LDAP_TYPE": "PingDirectory",\n        "REMOVE_ACTION": "Disable"\n    },\n    "type": "LdapGateway",\n    "image": {\n        "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"\n    },\n    "name": "PingOne Gateway (PingOne)"\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}}/environments/{{envID}}/propagation/stores")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer {{accessToken}}"
request.body = JSON.dump({
  "configuration": {
    "CREATE_USERS": false,
    "UPDATE_USERS": true,
    "DEPROVISION_USERS": false,
    "DISABLE_USERS": true,
    "ENVIRONMENT_ID": "{{envID}}",
    "GATEWAY_ID": "{{gatewayID}}",
    "LDAP_TYPE": "PingDirectory",
    "REMOVE_ACTION": "Disable"
  },
  "type": "LdapGateway",
  "image": {
    "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
  },
  "name": "PingOne Gateway (PingOne)"
})

response = http.request(request)
puts response.read_body
let parameters = "{\n    \"configuration\": {\n        \"CREATE_USERS\": false,\n        \"UPDATE_USERS\": true,\n        \"DEPROVISION_USERS\": false,\n        \"DISABLE_USERS\": true,\n        \"ENVIRONMENT_ID\": \"{{envID}}\",\n        \"GATEWAY_ID\": \"{{gatewayID}}\",\n        \"LDAP_TYPE\": \"PingDirectory\",\n        \"REMOVE_ACTION\": \"Disable\"\n    },\n    \"type\": \"LdapGateway\",\n    \"image\": {\n        \"href\": \"https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png\"\n    },\n    \"name\": \"PingOne Gateway (PingOne)\"\n}"
let postData = parameters.data(using: .utf8)

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

request.httpMethod = "POST"
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

201 Created

{
    "id": "0d5d21bb-d857-4c61-ad97-3e212ed33da3",
    "environment": {
        "id": "abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
    },
    "createdAt": "2022-11-28T20:52:44.497Z",
    "updatedAt": "2022-11-28T20:52:44.497Z",
    "image": {
        "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
    },
    "type": "LdapGateway",
    "status": "INACTIVE",
    "configuration": {
        "CREATE_USERS": false,
        "UPDATE_USERS": true,
        "DEPROVISION_USERS": false,
        "DISABLE_USERS": true,
        "ENVIRONMENT_ID": "abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6",
        "GATEWAY_ID": "41eccc83-df4c-4708-9214-c9b275f721b1",
        "LDAP_TYPE": "PingDirectory",
        "REMOVE_ACTION": "Disable"
    },
    "name": "PingOne Gateway (PingOne)",
    "_links": {
        "self": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/propagation/stores/0d5d21bb-d857-4c61-ad97-3e212ed33da3"
        },
        "update": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/propagation/stores/0d5d21bb-d857-4c61-ad97-3e212ed33da3"
        },
        "delete": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/propagation/stores/0d5d21bb-d857-4c61-ad97-3e212ed33da3"
        }
    }
}