PingOne Platform APIs - Early Access

Create Authorization Service

 

POST {{apiPath}}/environments/{{envID}}/authorizationServices

The following sample shows the POST /environments/{{envID}}/authorizationServices` operation to create a new authorization service resource.

Request Model
Property Type? Required?

description

String

Optional

fullName

String

Required

name

String

Required

parent

Object

Optional

parent.id

String

Optional

serviceType

String

Required

type

String

Required

Headers

Authorization      Bearer {{accessToken}}

Content-Type      application/json

Body

raw ( application/json )

{
    "name": "Invoice Tracking Service",
    "type": "SERVICE",
    "description": "Auth service description.",
    "parent": {
        "id": "{{authParentID}}"
    },
    "serviceType": "NONE"
}

Example Request

  • cURL

  • C#

  • Go

  • HTTP

  • Java

  • jQuery

  • NodeJS

  • Python

  • PHP

  • Ruby

  • Swift

curl --location --globoff '{{apiPath}}/environments/{{envID}}/authorizationServices' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
    "name": "Invoice Tracking Service",
    "type": "SERVICE",
    "description": "Auth service description.",
    "parent": {
        "id": "{{authParentID}}"
    },
    "serviceType": "NONE"
}'
var options = new RestClientOptions("{{apiPath}}/environments/{{envID}}/authorizationServices")
{
  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"": ""Invoice Tracking Service""," + "\n" +
@"    ""type"": ""SERVICE""," + "\n" +
@"    ""description"": ""Auth service description.""," + "\n" +
@"    ""parent"": {" + "\n" +
@"        ""id"": ""{{authParentID}}""" + "\n" +
@"    }," + "\n" +
@"    ""serviceType"": ""NONE""" + "\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}}/authorizationServices"
  method := "POST"

  payload := strings.NewReader(`{
    "name": "Invoice Tracking Service",
    "type": "SERVICE",
    "description": "Auth service description.",
    "parent": {
        "id": "{{authParentID}}"
    },
    "serviceType": "NONE"
}`)

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

{
    "name": "Invoice Tracking Service",
    "type": "SERVICE",
    "description": "Auth service description.",
    "parent": {
        "id": "{{authParentID}}"
    },
    "serviceType": "NONE"
}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n    \"name\": \"Invoice Tracking Service\",\n    \"type\": \"SERVICE\",\n    \"description\": \"Auth service description.\",\n    \"parent\": {\n        \"id\": \"{{authParentID}}\"\n    },\n    \"serviceType\": \"NONE\"\n}");
Request request = new Request.Builder()
  .url("{{apiPath}}/environments/{{envID}}/authorizationServices")
  .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}}/authorizationServices",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer {{accessToken}}"
  },
  "data": JSON.stringify({
    "name": "Invoice Tracking Service",
    "type": "SERVICE",
    "description": "Auth service description.",
    "parent": {
      "id": "{{authParentID}}"
    },
    "serviceType": "NONE"
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var request = require('request');
var options = {
  'method': 'POST',
  'url': '{{apiPath}}/environments/{{envID}}/authorizationServices',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer {{accessToken}}'
  },
  body: JSON.stringify({
    "name": "Invoice Tracking Service",
    "type": "SERVICE",
    "description": "Auth service description.",
    "parent": {
      "id": "{{authParentID}}"
    },
    "serviceType": "NONE"
  })

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

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

payload = json.dumps({
  "name": "Invoice Tracking Service",
  "type": "SERVICE",
  "description": "Auth service description.",
  "parent": {
    "id": "{{authParentID}}"
  },
  "serviceType": "NONE"
})
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}}/authorizationServices');
$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": "Invoice Tracking Service",\n    "type": "SERVICE",\n    "description": "Auth service description.",\n    "parent": {\n        "id": "{{authParentID}}"\n    },\n    "serviceType": "NONE"\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}}/authorizationServices")

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": "Invoice Tracking Service",
  "type": "SERVICE",
  "description": "Auth service description.",
  "parent": {
    "id": "{{authParentID}}"
  },
  "serviceType": "NONE"
})

response = http.request(request)
puts response.read_body
let parameters = "{\n    \"name\": \"Invoice Tracking Service\",\n    \"type\": \"SERVICE\",\n    \"description\": \"Auth service description.\",\n    \"parent\": {\n        \"id\": \"{{authParentID}}\"\n    },\n    \"serviceType\": \"NONE\"\n}"
let postData = parameters.data(using: .utf8)

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

{
    "serviceType": "NONE",
    "_links": {
        "self": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/authorizationServices/981f2eb7-ff26-41ef-b0ac-29f5af835530"
        },
        "environment": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
        },
        "parent": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/authorizationServices/7dadff8c-795d-4a5a-95f8-7942d3e49e70"
        }
    },
    "id": "981f2eb7-ff26-41ef-b0ac-29f5af835530",
    "version": "d1c0880b-a6fe-4920-ad31-b33899669bcf",
    "name": "Invoice Tracking Service",
    "fullName": "PingOne.API Access Management.Invoice Tracking Service",
    "description": "Auth service description.",
    "parent": {
        "id": "7dadff8c-795d-4a5a-95f8-7942d3e49e70"
    },
    "type": "SERVICE"
}