PingOne Platform APIs

Create PingFederate Connection

 

POST {{apiPath}}/environments/{{envID}}/gateways

The POST {{apiPath}}/environments/{{envID}}/gateways operation adds a new PingFederate connection to the specified environment resource.

Request Model

For property descriptions, refer to Gateway base data model.

Property Type Required?

description

String

Optional

enabled

Boolean

Required

name

String

Required

type

String

Required

Headers

Authorization      Bearer {{accessToken}}

Content-Type      application/json

Body

raw ( application/json )

{
    "name": "PingFed-Connection_{{$timestamp}}",
    "description": "Test Description - created via CREATE PingFed Connection request",
    "type": "PING_FEDERATE",
    "enabled": true
}

Example Request

  • cURL

  • C#

  • Go

  • HTTP

  • Java

  • jQuery

  • NodeJS

  • Python

  • PHP

  • Ruby

  • Swift

curl --location --globoff '{{apiPath}}/environments/{{envID}}/gateways' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
    "name": "PingFed-Connection_{{$timestamp}}",
    "description": "Test Description - created via CREATE PingFed Connection request",
    "type": "PING_FEDERATE",
    "enabled": true
}'
var options = new RestClientOptions("{{apiPath}}/environments/{{envID}}/gateways")
{
  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" +
@"    ""name"": ""PingFed-Connection_{{$timestamp}}""," + "\n" +
@"    ""description"": ""Test Description - created via CREATE PingFed Connection request""," + "\n" +
@"    ""type"": ""PING_FEDERATE""," + "\n" +
@"    ""enabled"": true" + "\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}}/gateways"
  method := "POST"

  payload := strings.NewReader(`{
    "name": "PingFed-Connection_{{$timestamp}}",
    "description": "Test Description - created via CREATE PingFed Connection request",
    "type": "PING_FEDERATE",
    "enabled": true
}`)

  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}}/gateways HTTP/1.1
Host: {{apiPath}}
Content-Type: application/json
Authorization: Bearer {{accessToken}}

{
    "name": "PingFed-Connection_{{$timestamp}}",
    "description": "Test Description - created via CREATE PingFed Connection request",
    "type": "PING_FEDERATE",
    "enabled": true
}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n    \"name\": \"PingFed-Connection_{{$timestamp}}\",\n    \"description\": \"Test Description - created via CREATE PingFed Connection request\",\n    \"type\": \"PING_FEDERATE\",\n    \"enabled\": true\n}");
Request request = new Request.Builder()
  .url("{{apiPath}}/environments/{{envID}}/gateways")
  .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}}/gateways",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer {{accessToken}}"
  },
  "data": JSON.stringify({
    "name": "PingFed-Connection_{{$timestamp}}",
    "description": "Test Description - created via CREATE PingFed Connection request",
    "type": "PING_FEDERATE",
    "enabled": true
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var request = require('request');
var options = {
  'method': 'POST',
  'url': '{{apiPath}}/environments/{{envID}}/gateways',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer {{accessToken}}'
  },
  body: JSON.stringify({
    "name": "PingFed-Connection_{{$timestamp}}",
    "description": "Test Description - created via CREATE PingFed Connection request",
    "type": "PING_FEDERATE",
    "enabled": true
  })

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

url = "{{apiPath}}/environments/{{envID}}/gateways"

payload = json.dumps({
  "name": "PingFed-Connection_{{$timestamp}}",
  "description": "Test Description - created via CREATE PingFed Connection request",
  "type": "PING_FEDERATE",
  "enabled": True
})
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}}/gateways');
$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    "name": "PingFed-Connection_{{$timestamp}}",\n    "description": "Test Description - created via CREATE PingFed Connection request",\n    "type": "PING_FEDERATE",\n    "enabled": true\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}}/gateways")

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({
  "name": "PingFed-Connection_{{\$timestamp}}",
  "description": "Test Description - created via CREATE PingFed Connection request",
  "type": "PING_FEDERATE",
  "enabled": true
})

response = http.request(request)
puts response.read_body
let parameters = "{\n    \"name\": \"PingFed-Connection_{{$timestamp}}\",\n    \"description\": \"Test Description - created via CREATE PingFed Connection request\",\n    \"type\": \"PING_FEDERATE\",\n    \"enabled\": true\n}"
let postData = parameters.data(using: .utf8)

var request = URLRequest(url: URL(string: "{{apiPath}}/environments/{{envID}}/gateways")!,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

{
    "_links": {
        "self": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/gateways/8607ebd6-79f7-4100-9ce6-293c16fa006c"
        },
        "environment": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
        },
        "instances": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/gateways/8607ebd6-79f7-4100-9ce6-293c16fa006c/instances"
        }
    },
    "id": "8607ebd6-79f7-4100-9ce6-293c16fa006c",
    "environment": {
        "id": "abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
    },
    "name": "PingFed-Connection_1690390565",
    "description": "Test Description - created via CREATE PingFed Connection request",
    "type": "PING_FEDERATE",
    "enabled": true
}