PingOne Platform APIs

Create Authorize Gateway

 

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

The POST /environments/{{envID}}/gateways operation adds a new Authorize gateway resource to the specified environment.

Prerequisites

For Authorize gateways, the type parameter must be set to AUTHORIZE in the body of the request.

Request Model

For descriptions of general parameters in the body of the request, see Gateway base data model.

Property Type Required?

description

String

Optional

enabled

Boolean

Required

name

String

Required

type

String

Required

For descriptions of Authorize-specific parameters in the body of the request, see Authorize gateway data model.

Property Type Required?

authorizationVersionId

UUID

Required

Headers

Authorization      Bearer {{accessToken}}

Content-Type      application/json

Body

raw ( application/json )

{
  "name": "My new Authorize Gateway",
  "type": "AUTHORIZE",
  "authorizationVersion": {
    "id": "{{authorizationVersionID}}"
  },
  "description": "A new authorize gateway",
  "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": "My new Authorize Gateway",
  "type": "AUTHORIZE",
  "authorizationVersion": {
    "id": "{{authorizationVersionID}}"
  },
  "description": "A new authorize gateway",
  "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"": ""My new Authorize Gateway""," + "\n" +
@"  ""type"": ""AUTHORIZE""," + "\n" +
@"  ""authorizationVersion"": {" + "\n" +
@"    ""id"": ""{{authorizationVersionID}}""" + "\n" +
@"  }," + "\n" +
@"  ""description"": ""A new authorize gateway""," + "\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": "My new Authorize Gateway",
  "type": "AUTHORIZE",
  "authorizationVersion": {
    "id": "{{authorizationVersionID}}"
  },
  "description": "A new authorize gateway",
  "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": "My new Authorize Gateway",
  "type": "AUTHORIZE",
  "authorizationVersion": {
    "id": "{{authorizationVersionID}}"
  },
  "description": "A new authorize gateway",
  "enabled": true
}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n  \"name\": \"My new Authorize Gateway\",\n  \"type\": \"AUTHORIZE\",\n  \"authorizationVersion\": {\n    \"id\": \"{{authorizationVersionID}}\"\n  },\n  \"description\": \"A new authorize gateway\",\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": "My new Authorize Gateway",
    "type": "AUTHORIZE",
    "authorizationVersion": {
      "id": "{{authorizationVersionID}}"
    },
    "description": "A new authorize gateway",
    "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": "My new Authorize Gateway",
    "type": "AUTHORIZE",
    "authorizationVersion": {
      "id": "{{authorizationVersionID}}"
    },
    "description": "A new authorize gateway",
    "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": "My new Authorize Gateway",
  "type": "AUTHORIZE",
  "authorizationVersion": {
    "id": "{{authorizationVersionID}}"
  },
  "description": "A new authorize gateway",
  "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": "My new Authorize Gateway",\n  "type": "AUTHORIZE",\n  "authorizationVersion": {\n    "id": "{{authorizationVersionID}}"\n  },\n  "description": "A new authorize gateway",\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": "My new Authorize Gateway",
  "type": "AUTHORIZE",
  "authorizationVersion": {
    "id": "{{authorizationVersionID}}"
  },
  "description": "A new authorize gateway",
  "enabled": true
})

response = http.request(request)
puts response.read_body
let parameters = "{\n  \"name\": \"My new Authorize Gateway\",\n  \"type\": \"AUTHORIZE\",\n  \"authorizationVersion\": {\n    \"id\": \"{{authorizationVersionID}}\"\n  },\n  \"description\": \"A new authorize gateway\",\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/a2d77ba7-4880-4c96-bfab-845c474e6095"
        },
        "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/a2d77ba7-4880-4c96-bfab-845c474e6095/instances"
        },
        "credentials": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/gateways/a2d77ba7-4880-4c96-bfab-845c474e6095/credentials"
        },
        "authorizationVersion": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/authorizationVersions/7fa0fab0-45a9-11ee-9111-ad9ff6c3fac0"
        }
    },
    "id": "a2d77ba7-4880-4c96-bfab-845c474e6095",
    "environment": {
        "id": "abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
    },
    "name": "My new Authorize Gateway",
    "description": "A new authorize gateway",
    "type": "AUTHORIZE",
    "enabled": true,
    "supportedVersions": [
        {
            "version": "1.0.0",
            "image": "pingidentity/pingone-authorize-gateway:1.0.0",
            "recommended": true,
            "latest": true
        }
    ],
    "currentAlerts": [
        {
            "category": "No Instances Connected",
            "detail": "No gateway instances are connected. All operations that require access to this gateway will fail.",
            "severity": "ERROR"
        }
    ],
    "authorizationVersion": {
        "id": "7fa0fab0-45a9-11ee-9111-ad9ff6c3fac0"
    }
}