PingOne Platform APIs - Early Access

Create Authorization Statement

 

POST {{apiPath}}/environments/{{envID}}/authorizationStatements

The POST {{apiPath}}/environments/{{envID}}/authorizationStatements request creates a new authorization statement resource.

Request Model

For property descriptions, refer to Authorization statements data model

Property Type? Required?

appliesif

String

Required

appliesTo

String

Required

attributes

Object

Required

code

String

Required

description

String

id

String

Required

name

String

Required

obligatory

Boolean

Optional

payload

String

Required

services

Object

Required

version

String

Required

Headers

Authorization      Bearer {{accessToken}}

Content-Type      application/json

Body

raw ( application/json )

{
  "name": "Authorization Statement1",
  "description": "Authorization Statement1 description",
  "code": "CODE1",
  "appliesTo": "PERMIT_OR_DENY",
  "appliesIf": "FINAL_DECISION_MATCHES",
  "payload": "Payload1",
  "obligatory": false,
  "attributes": [],
  "services": []
}

Example Request

  • cURL

  • C#

  • Go

  • HTTP

  • Java

  • jQuery

  • NodeJS

  • Python

  • PHP

  • Ruby

  • Swift

curl --location --globoff '{{apiPath}}/environments/{{envID}}/authorizationStatements' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
  "name": "Authorization Statement1",
  "description": "Authorization Statement1 description",
  "code": "CODE1",
  "appliesTo": "PERMIT_OR_DENY",
  "appliesIf": "FINAL_DECISION_MATCHES",
  "payload": "Payload1",
  "obligatory": false,
  "attributes": [],
  "services": []
}'
var options = new RestClientOptions("{{apiPath}}/environments/{{envID}}/authorizationStatements")
{
  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"": ""Authorization Statement1""," + "\n" +
@"  ""description"": ""Authorization Statement1 description""," + "\n" +
@"  ""code"": ""CODE1""," + "\n" +
@"  ""appliesTo"": ""PERMIT_OR_DENY""," + "\n" +
@"  ""appliesIf"": ""FINAL_DECISION_MATCHES""," + "\n" +
@"  ""payload"": ""Payload1""," + "\n" +
@"  ""obligatory"": false," + "\n" +
@"  ""attributes"": []," + "\n" +
@"  ""services"": []" + "\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}}/authorizationStatements"
  method := "POST"

  payload := strings.NewReader(`{
  "name": "Authorization Statement1",
  "description": "Authorization Statement1 description",
  "code": "CODE1",
  "appliesTo": "PERMIT_OR_DENY",
  "appliesIf": "FINAL_DECISION_MATCHES",
  "payload": "Payload1",
  "obligatory": false,
  "attributes": [],
  "services": []
}`)

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

{
  "name": "Authorization Statement1",
  "description": "Authorization Statement1 description",
  "code": "CODE1",
  "appliesTo": "PERMIT_OR_DENY",
  "appliesIf": "FINAL_DECISION_MATCHES",
  "payload": "Payload1",
  "obligatory": false,
  "attributes": [],
  "services": []
}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n  \"name\": \"Authorization Statement1\",\n  \"description\": \"Authorization Statement1 description\",\n  \"code\": \"CODE1\",\n  \"appliesTo\": \"PERMIT_OR_DENY\",\n  \"appliesIf\": \"FINAL_DECISION_MATCHES\",\n  \"payload\": \"Payload1\",\n  \"obligatory\": false,\n  \"attributes\": [],\n  \"services\": []\n}");
Request request = new Request.Builder()
  .url("{{apiPath}}/environments/{{envID}}/authorizationStatements")
  .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}}/authorizationStatements",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer {{accessToken}}"
  },
  "data": JSON.stringify({
    "name": "Authorization Statement1",
    "description": "Authorization Statement1 description",
    "code": "CODE1",
    "appliesTo": "PERMIT_OR_DENY",
    "appliesIf": "FINAL_DECISION_MATCHES",
    "payload": "Payload1",
    "obligatory": false,
    "attributes": [],
    "services": []
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var request = require('request');
var options = {
  'method': 'POST',
  'url': '{{apiPath}}/environments/{{envID}}/authorizationStatements',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer {{accessToken}}'
  },
  body: JSON.stringify({
    "name": "Authorization Statement1",
    "description": "Authorization Statement1 description",
    "code": "CODE1",
    "appliesTo": "PERMIT_OR_DENY",
    "appliesIf": "FINAL_DECISION_MATCHES",
    "payload": "Payload1",
    "obligatory": false,
    "attributes": [],
    "services": []
  })

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

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

payload = json.dumps({
  "name": "Authorization Statement1",
  "description": "Authorization Statement1 description",
  "code": "CODE1",
  "appliesTo": "PERMIT_OR_DENY",
  "appliesIf": "FINAL_DECISION_MATCHES",
  "payload": "Payload1",
  "obligatory": False,
  "attributes": [],
  "services": []
})
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}}/authorizationStatements');
$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": "Authorization Statement1",\n  "description": "Authorization Statement1 description",\n  "code": "CODE1",\n  "appliesTo": "PERMIT_OR_DENY",\n  "appliesIf": "FINAL_DECISION_MATCHES",\n  "payload": "Payload1",\n  "obligatory": false,\n  "attributes": [],\n  "services": []\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}}/authorizationStatements")

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": "Authorization Statement1",
  "description": "Authorization Statement1 description",
  "code": "CODE1",
  "appliesTo": "PERMIT_OR_DENY",
  "appliesIf": "FINAL_DECISION_MATCHES",
  "payload": "Payload1",
  "obligatory": false,
  "attributes": [],
  "services": []
})

response = http.request(request)
puts response.read_body
let parameters = "{\n  \"name\": \"Authorization Statement1\",\n  \"description\": \"Authorization Statement1 description\",\n  \"code\": \"CODE1\",\n  \"appliesTo\": \"PERMIT_OR_DENY\",\n  \"appliesIf\": \"FINAL_DECISION_MATCHES\",\n  \"payload\": \"Payload1\",\n  \"obligatory\": false,\n  \"attributes\": [],\n  \"services\": []\n}"
let postData = parameters.data(using: .utf8)

var request = URLRequest(url: URL(string: "{{apiPath}}/environments/{{envID}}/authorizationStatements")!,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/authorizationStatements/01207a28-74df-4967-8891-17b3135e02d6"
        },
        "environment": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
        }
    },
    "id": "01207a28-74df-4967-8891-17b3135e02d6",
    "name": "Authorization Statement1",
    "description": "Authorization Statement1 description",
    "code": "CODE1",
    "appliesTo": "PERMIT_OR_DENY",
    "appliesIf": "FINAL_DECISION_MATCHES",
    "payload": "Payload1",
    "obligatory": false,
    "attributes": [],
    "services": [],
    "version": "017f7fe7-05c2-4182-9607-8cad4a4e5dc6"
}