PingOne Platform APIs - Early Access

Update Authorization Service

 

PUT {{apiPath}}/environments/{{envID}}/authorizationServices/{{authServicesID}}

The PUT /environments/{{envID}}/authorizationServices/{{authServicesID}}` modifies the configuration settings for the specified authorization service.

The update action requires that you specify the authorization services ID and the version ID in the request body.

Request Model
Property Type? Required?

description

String

Optional

fullName

String

Required

id

String

Required

name

String

Required

parent

Object

Optional

parent.id

String

Optional

serviceType

String

Required

type

String

Required

version

String

Required

Headers

Authorization      Bearer {{accessToken}}

Content-Type      application/json

Body

raw ( application/json )

{
    "id": "{{authServicesID}}",
    "version": "{{authServicesVersionID}}",
    "name": "Invoice Tracking Service",
    "type": "SERVICE",
    "description": "Invoice tracking service description.",
    "parent": {
        "id": "{{authParentID}}"
    },
    "serviceType": "NONE"
}

Example Request

  • cURL

  • C#

  • Go

  • HTTP

  • Java

  • jQuery

  • NodeJS

  • Python

  • PHP

  • Ruby

  • Swift

curl --location --globoff --request PUT '{{apiPath}}/environments/{{envID}}/authorizationServices/{{authServicesID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
    "id": "{{authServicesID}}",
    "version": "{{authServicesVersionID}}",
    "name": "Invoice Tracking Service",
    "type": "SERVICE",
    "description": "Invoice tracking service description.",
    "parent": {
        "id": "{{authParentID}}"
    },
    "serviceType": "NONE"
}'
var options = new RestClientOptions("{{apiPath}}/environments/{{envID}}/authorizationServices/{{authServicesID}}")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Put);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Bearer {{accessToken}}");
var body = @"{" + "\n" +
@"    ""id"": ""{{authServicesID}}""," + "\n" +
@"    ""version"": ""{{authServicesVersionID}}""," + "\n" +
@"    ""name"": ""Invoice Tracking Service""," + "\n" +
@"    ""type"": ""SERVICE""," + "\n" +
@"    ""description"": ""Invoice tracking 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/{{authServicesID}}"
  method := "PUT"

  payload := strings.NewReader(`{
    "id": "{{authServicesID}}",
    "version": "{{authServicesVersionID}}",
    "name": "Invoice Tracking Service",
    "type": "SERVICE",
    "description": "Invoice tracking 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))
}
PUT /environments/{{envID}}/authorizationServices/{{authServicesID}} HTTP/1.1
Host: {{apiPath}}
Content-Type: application/json
Authorization: Bearer {{accessToken}}

{
    "id": "{{authServicesID}}",
    "version": "{{authServicesVersionID}}",
    "name": "Invoice Tracking Service",
    "type": "SERVICE",
    "description": "Invoice tracking 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    \"id\": \"{{authServicesID}}\",\n    \"version\": \"{{authServicesVersionID}}\",\n    \"name\": \"Invoice Tracking Service\",\n    \"type\": \"SERVICE\",\n    \"description\": \"Invoice tracking service description.\",\n    \"parent\": {\n        \"id\": \"{{authParentID}}\"\n    },\n    \"serviceType\": \"NONE\"\n}");
Request request = new Request.Builder()
  .url("{{apiPath}}/environments/{{envID}}/authorizationServices/{{authServicesID}}")
  .method("PUT", body)
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "Bearer {{accessToken}}")
  .build();
Response response = client.newCall(request).execute();
var settings = {
  "url": "{{apiPath}}/environments/{{envID}}/authorizationServices/{{authServicesID}}",
  "method": "PUT",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer {{accessToken}}"
  },
  "data": JSON.stringify({
    "id": "{{authServicesID}}",
    "version": "{{authServicesVersionID}}",
    "name": "Invoice Tracking Service",
    "type": "SERVICE",
    "description": "Invoice tracking service description.",
    "parent": {
      "id": "{{authParentID}}"
    },
    "serviceType": "NONE"
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var request = require('request');
var options = {
  'method': 'PUT',
  'url': '{{apiPath}}/environments/{{envID}}/authorizationServices/{{authServicesID}}',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer {{accessToken}}'
  },
  body: JSON.stringify({
    "id": "{{authServicesID}}",
    "version": "{{authServicesVersionID}}",
    "name": "Invoice Tracking Service",
    "type": "SERVICE",
    "description": "Invoice tracking 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/{{authServicesID}}"

payload = json.dumps({
  "id": "{{authServicesID}}",
  "version": "{{authServicesVersionID}}",
  "name": "Invoice Tracking Service",
  "type": "SERVICE",
  "description": "Invoice tracking service description.",
  "parent": {
    "id": "{{authParentID}}"
  },
  "serviceType": "NONE"
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer {{accessToken}}'
}

response = requests.request("PUT", url, headers=headers, data=payload)

print(response.text)
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{apiPath}}/environments/{{envID}}/authorizationServices/{{authServicesID}}');
$request->setMethod(HTTP_Request2::METHOD_PUT);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer {{accessToken}}'
));
$request->setBody('{\n    "id": "{{authServicesID}}",\n    "version": "{{authServicesVersionID}}",\n    "name": "Invoice Tracking Service",\n    "type": "SERVICE",\n    "description": "Invoice tracking 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/{{authServicesID}}")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Put.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer {{accessToken}}"
request.body = JSON.dump({
  "id": "{{authServicesID}}",
  "version": "{{authServicesVersionID}}",
  "name": "Invoice Tracking Service",
  "type": "SERVICE",
  "description": "Invoice tracking service description.",
  "parent": {
    "id": "{{authParentID}}"
  },
  "serviceType": "NONE"
})

response = http.request(request)
puts response.read_body
let parameters = "{\n    \"id\": \"{{authServicesID}}\",\n    \"version\": \"{{authServicesVersionID}}\",\n    \"name\": \"Invoice Tracking Service\",\n    \"type\": \"SERVICE\",\n    \"description\": \"Invoice tracking 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/{{authServicesID}}")!,timeoutInterval: Double.infinity)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("Bearer {{accessToken}}", forHTTPHeaderField: "Authorization")

request.httpMethod = "PUT"
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

200 OK

{
    "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": "456a0d86-9c0d-434a-948f-8bdbb20c98c9",
    "name": "Invoice Tracking Service",
    "fullName": "PingOne.API Access Management.Invoice Tracking Service",
    "description": "Invoice tracking service description.",
    "parent": {
        "id": "7dadff8c-795d-4a5a-95f8-7942d3e49e70"
    },
    "type": "SERVICE"
}