PingOne Platform APIs

Update Risk Evaluation

 

PUT {{apiPath}}/environments/{{envID}}/riskEvaluations/{{riskEvalID}}/event

Use PUT {{apiPath}}/environments/{{envID}}/riskEvaluations/{{riskID}}/event to update the risk evaluation configuration, and to modify the completion status of the resource when the risk evaluation is still in progress.

The update operation is important to provide more accurate risk evaluations.

You can update the transaction up to 30 minutes after the successful POST request. Transactions that are not updated maintain a completionStatus of IN_PROGRESS. If you attempt to update the transaction after 30 minutes, the response returns an error.

Prerequisites

Request Model

For complete property descriptions, refer to Risk Evaluations.

The completionStatus property required in the request body can be modified in a PUT request only if the value is IN_PROGRESS. The risk evaluation resource cannot be updated if the current value is SUCCESS or FAILED.

Property Type Required?

completionStatus

String

Required

Headers

Authorization      Bearer {{accessToken}}

Content-Type      application/json

Body

raw ( application/json )

{
    "completionStatus": "SUCCESS"
}

Example Request

  • cURL

  • C#

  • Go

  • HTTP

  • Java

  • jQuery

  • NodeJS

  • Python

  • PHP

  • Ruby

  • Swift

curl --location --globoff --request PUT '{{apiPath}}/environments/{{envID}}/riskEvaluations/{{riskEvalID}}/event' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
    "completionStatus": "SUCCESS"
}'
var options = new RestClientOptions("{{apiPath}}/environments/{{envID}}/riskEvaluations/{{riskEvalID}}/event")
{
  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" +
@"    ""completionStatus"": ""SUCCESS""" + "\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}}/riskEvaluations/{{riskEvalID}}/event"
  method := "PUT"

  payload := strings.NewReader(`{
    "completionStatus": "SUCCESS"
}`)

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

{
    "completionStatus": "SUCCESS"
}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n    \"completionStatus\": \"SUCCESS\"\n}");
Request request = new Request.Builder()
  .url("{{apiPath}}/environments/{{envID}}/riskEvaluations/{{riskEvalID}}/event")
  .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}}/riskEvaluations/{{riskEvalID}}/event",
  "method": "PUT",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer {{accessToken}}"
  },
  "data": JSON.stringify({
    "completionStatus": "SUCCESS"
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var request = require('request');
var options = {
  'method': 'PUT',
  'url': '{{apiPath}}/environments/{{envID}}/riskEvaluations/{{riskEvalID}}/event',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer {{accessToken}}'
  },
  body: JSON.stringify({
    "completionStatus": "SUCCESS"
  })

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

url = "{{apiPath}}/environments/{{envID}}/riskEvaluations/{{riskEvalID}}/event"

payload = json.dumps({
  "completionStatus": "SUCCESS"
})
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}}/riskEvaluations/{{riskEvalID}}/event');
$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    "completionStatus": "SUCCESS"\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}}/riskEvaluations/{{riskEvalID}}/event")

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({
  "completionStatus": "SUCCESS"
})

response = http.request(request)
puts response.read_body
let parameters = "{\n    \"completionStatus\": \"SUCCESS\"\n}"
let postData = parameters.data(using: .utf8)

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

{
    "_links": {
        "self": {
            "href": "https://api.pingone.eu/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/riskEvaluations/9be12e1a-0a45-4baf-93a5-bcc0c626d656/event"
        },
        "riskEvaluation": {
            "href": "https://api.pingone.eu/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/riskEvaluations/9be12e1a-0a45-4baf-93a5-bcc0c626d656"
        },
        "environment": {
            "href": "https://api.pingone.eu/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
        }
    },
    "completionStatus": "SUCCESS",
    "targetResource": {
        "id": "969e4a59-5cf9-44c3-a1ba-9f392bf7f622",
        "name": "Jira"
    },
    "ip": "156.35.85.124",
    "flow": {
        "type": "AUTHENTICATION"
    },
    "session": {
        "id": "31618b01-08cd-4bee-b0d3-90b895671bb4"
    },
    "user": {
        "id": "john",
        "name": "John DeMock",
        "type": "EXTERNAL",
        "groups": [
            {
                "name": "dev"
            },
            {
                "name": "sre"
            }
        ]
    },
    "sharingType": "SHARED",
    "browser": {
        "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36"
    }
}