curl --request POST \
--url https://developer.synq.io/api/recommendations/v1/{recommendation_id}/restore \
--header 'Authorization: Bearer <token>'import requests
url = "https://developer.synq.io/api/recommendations/v1/{recommendation_id}/restore"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://developer.synq.io/api/recommendations/v1/{recommendation_id}/restore', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://developer.synq.io/api/recommendations/v1/{recommendation_id}/restore",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://developer.synq.io/api/recommendations/v1/{recommendation_id}/restore"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://developer.synq.io/api/recommendations/v1/{recommendation_id}/restore")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.synq.io/api/recommendations/v1/{recommendation_id}/restore")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"recommendation": {
"recommendationId": "<string>",
"target": {
"integration": {
"integrationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
},
"code": "<string>",
"subject": "<string>",
"message": "<string>",
"remediation": "<string>",
"details": [
"<string>"
],
"detailsOmitted": 123,
"actions": [
{
"editIntegration": {
"integrationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"configFields": [
"<string>"
]
}
}
],
"firstStatedAt": "2023-01-15T01:30:15.01Z",
"changedAt": "2023-01-15T01:30:15.01Z",
"state": "RECOMMENDATION_STATE_UNSPECIFIED",
"decision": {
"kind": "RECOMMENDATION_DECISION_KIND_UNSPECIFIED",
"decidedAt": "2023-01-15T01:30:15.01Z",
"decidedBy": {
"name": "<string>",
"email": {
"userEmail": "jsmith@example.com"
},
"via": "VIA_UNSPECIFIED"
}
}
}
}RestoreRecommendation
Remove the dismissal or ignore standing against a recommendation, so it is open again. Restoring a recommendation nobody decided about succeeds without change.
Returns NOT_FOUND when the recommendation does not exist in the workspace, and PERMISSION_DENIED when it concerns an integration the credential cannot edit.
curl --request POST \
--url https://developer.synq.io/api/recommendations/v1/{recommendation_id}/restore \
--header 'Authorization: Bearer <token>'import requests
url = "https://developer.synq.io/api/recommendations/v1/{recommendation_id}/restore"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://developer.synq.io/api/recommendations/v1/{recommendation_id}/restore', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://developer.synq.io/api/recommendations/v1/{recommendation_id}/restore",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://developer.synq.io/api/recommendations/v1/{recommendation_id}/restore"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://developer.synq.io/api/recommendations/v1/{recommendation_id}/restore")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.synq.io/api/recommendations/v1/{recommendation_id}/restore")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"recommendation": {
"recommendationId": "<string>",
"target": {
"integration": {
"integrationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
},
"code": "<string>",
"subject": "<string>",
"message": "<string>",
"remediation": "<string>",
"details": [
"<string>"
],
"detailsOmitted": 123,
"actions": [
{
"editIntegration": {
"integrationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"configFields": [
"<string>"
]
}
}
],
"firstStatedAt": "2023-01-15T01:30:15.01Z",
"changedAt": "2023-01-15T01:30:15.01Z",
"state": "RECOMMENDATION_STATE_UNSPECIFIED",
"decision": {
"kind": "RECOMMENDATION_DECISION_KIND_UNSPECIFIED",
"decidedAt": "2023-01-15T01:30:15.01Z",
"decidedBy": {
"name": "<string>",
"email": {
"userEmail": "jsmith@example.com"
},
"via": "VIA_UNSPECIFIED"
}
}
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Id of the recommendation (UUID).
Response
Success
Response with the recommendation as stored after the call.
Recommendation is a change Coalesce Quality recommends you make: a grant an integration's role is missing, a setting that stopped matching what runs, a feature worth enabling, a review waiting for you. Nothing is broken; making the change gets you more, or better, out of the product.
A recommendation stays for as long as the condition holds, and disappears on its own once it no longer does. You can dismiss it until something new is found, or ignore it for good.
Show child attributes
Show child attributes