PingOne Platform APIs

Step 3: Get a list of integration versions

GET {{apiPath}}/environments/{{envID}}/integrations/{{integrationID}}/versions

Now that you have the integrations list, you need to retrieve a list of integration versions associated with one specific integration. Each integration can have several versions.

The {{apiPath}}/environments/{{envID}}/integrations/{{integrationID}}/versions, endpoint returns the list of version associated with the integration specified by its ID in the request URL.

The example response contains the information we want. For the purpose of this exercise, we will assume the first integration version is the one we want.

Headers

Authorization      Bearer {{accessToken}}

Example Request

  • cURL

  • C#

  • Go

  • HTTP

  • Java

  • jQuery

  • NodeJS

  • Python

  • PHP

  • Ruby

  • Swift

curl --location --globoff '{{apiPath}}/environments/{{envID}}/integrations/{{integrationID}}/versions' \
--header 'Authorization: Bearer {{accessToken}}'
var options = new RestClientOptions("{{apiPath}}/environments/{{envID}}/integrations/{{integrationID}}/versions")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Get);
request.AddHeader("Authorization", "Bearer {{accessToken}}");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
package main

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

func main() {

  url := "{{apiPath}}/environments/{{envID}}/integrations/{{integrationID}}/versions"
  method := "GET"

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

  if err != nil {
    fmt.Println(err)
    return
  }
  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))
}
GET /environments/{{envID}}/integrations/{{integrationID}}/versions HTTP/1.1
Host: {{apiPath}}
Authorization: Bearer {{accessToken}}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("{{apiPath}}/environments/{{envID}}/integrations/{{integrationID}}/versions")
  .method("GET", body)
  .addHeader("Authorization", "Bearer {{accessToken}}")
  .build();
Response response = client.newCall(request).execute();
var settings = {
  "url": "{{apiPath}}/environments/{{envID}}/integrations/{{integrationID}}/versions",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer {{accessToken}}"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var request = require('request');
var options = {
  'method': 'GET',
  'url': '{{apiPath}}/environments/{{envID}}/integrations/{{integrationID}}/versions',
  'headers': {
    'Authorization': 'Bearer {{accessToken}}'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
import requests

url = "{{apiPath}}/environments/{{envID}}/integrations/{{integrationID}}/versions"

payload = {}
headers = {
  'Authorization': 'Bearer {{accessToken}}'
}

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

print(response.text)
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{apiPath}}/environments/{{envID}}/integrations/{{integrationID}}/versions');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Authorization' => 'Bearer {{accessToken}}'
));
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 "net/http"

url = URI("{{apiPath}}/environments/{{envID}}/integrations/{{integrationID}}/versions")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer {{accessToken}}"

response = http.request(request)
puts response.read_body
var request = URLRequest(url: URL(string: "{{apiPath}}/environments/{{envID}}/integrations/{{integrationID}}/versions")!,timeoutInterval: Double.infinity)
request.addValue("Bearer {{accessToken}}", forHTTPHeaderField: "Authorization")

request.httpMethod = "GET"

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

{
    "_links": {
        "self": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/integrations/bb09759c-8940-4b85-b68b-90455e405390/versions"
        }
    },
    "_embedded": {
        "versions": [
            {
                "_links": {
                    "self": {
                        "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/integrations/bb09759c-8940-4b85-b68b-90455e405390/versions/1642c2ac-5016-4e94-ac30-efe6a3802704"
                    },
                    "integration": {
                        "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/integrations/bb09759c-8940-4b85-b68b-90455e405390"
                    }
                },
                "id": "1642c2ac-5016-4e94-ac30-efe6a3802704",
                "name": "PingID Integration Kit",
                "description": "Integrate PingID as an authentication solution with PingFederate either as a federation solution or as an identity bridge. The PingFederate PingID Connector enables user life cycle management (including updates, disabling users, and deleting users) with PingID.",
                "integration": {
                    "id": "bb09759c-8940-4b85-b68b-90455e405390"
                },
                "type": "PRODUCT_INTEGRATION_KIT",
                "number": "2.11.0",
                "releasedOn": "2020-11-30",
                "integratedWith": {
                    "name": "PINGFEDERATE"
                },
                "documentationUrl": "https://docs.pingidentity.com/bundle/pingid/page/kor1564020462373.html"
            }
        ]
    },
    "size": 1
}