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
-
Refer to Authorize gateways for information about the advantages of Authorize gateways and how they work.
-
Refer to Gateway Management for important overview information.
-
Refer to Read policy decision service configuration data to get an
{{authorizationVersionID}}for the body. For more information, see Policy Decision Management.
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? |
|---|---|---|
|
String |
Optional |
|
Boolean |
Required |
|
String |
Required |
|
String |
Required |
For descriptions of Authorize-specific parameters in the body of the request, see Authorize gateway data model.
| Property | Type | Required? |
|---|---|---|
|
UUID |
Required |
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"
}
}