curl --request GET \
--url 'http://localhost:7575/v2/package-vetting' \
--header 'Authorization: Bearer $TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}'
import json
import requests
url = "http://localhost:7575/v2/package-vetting"
headers = {'Authorization': 'Bearer <token>', 'Content-Type': 'application/json'}
payload = json.loads(r'''{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}''')
response = requests.request(
"GET", url, headers=headers, json=payload
)
print(response.text)
const response = await fetch('http://localhost:7575/v2/package-vetting', {
method: 'GET',
headers: {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}),
});
console.log(await response.text());
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:7575/v2/package-vetting',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_POSTFIELDS => <<<'JSON'
{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}
JSON,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
echo $response;
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "http://localhost:7575/v2/package-vetting", bytes.NewBufferString(`{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}`))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
response, _ := http.DefaultClient.Do(req)
defer response.Body.Close()
body, _ := io.ReadAll(response.Body)
fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var request = HttpRequest.newBuilder()
.uri(URI.create("http://localhost:7575/v2/package-vetting"))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.method("GET", HttpRequest.BodyPublishers.ofString("""
{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}
"""))
.build();
var response = HttpClient.newHttpClient().send(
request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
require 'net/http'
require 'uri'
uri = URI('http://localhost:7575/v2/package-vetting')
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer <token>'
request['Content-Type'] = 'application/json'
request.body = <<~JSON
{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
http.request(request)
end
puts response.body
{
"vettedPackages": [
{
"packages": [
{
"packageId": "<string>",
"validFromInclusive": "<string>",
"validUntilExclusive": "<string>",
"packageName": "<string>",
"packageVersion": "<string>"
}
],
"participantId": "<string>",
"synchronizerId": "<string>",
"topologySerial": 123
}
],
"nextPageToken": "<string>"
}
<string>
{
"code": "<string>",
"cause": "<string>",
"correlationId": "<string>",
"traceId": "<string>",
"context": {},
"resources": [
[
"<string>"
]
],
"errorCategory": 123,
"grpcCodeValue": 123,
"retryInfo": "<string>",
"definiteAnswer": false
}
GET /v2/package-vetting
Lists which participant node vetted what packages on which synchronizer. This endpoint (GET /package-vetting) is deprecated and will be removed in a future release. Please use POST /package-vetting/list instead.
GET
/
v2
/
package-vetting
curl --request GET \
--url 'http://localhost:7575/v2/package-vetting' \
--header 'Authorization: Bearer $TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}'
import json
import requests
url = "http://localhost:7575/v2/package-vetting"
headers = {'Authorization': 'Bearer <token>', 'Content-Type': 'application/json'}
payload = json.loads(r'''{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}''')
response = requests.request(
"GET", url, headers=headers, json=payload
)
print(response.text)
const response = await fetch('http://localhost:7575/v2/package-vetting', {
method: 'GET',
headers: {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}),
});
console.log(await response.text());
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:7575/v2/package-vetting',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_POSTFIELDS => <<<'JSON'
{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}
JSON,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
echo $response;
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "http://localhost:7575/v2/package-vetting", bytes.NewBufferString(`{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}`))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
response, _ := http.DefaultClient.Do(req)
defer response.Body.Close()
body, _ := io.ReadAll(response.Body)
fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var request = HttpRequest.newBuilder()
.uri(URI.create("http://localhost:7575/v2/package-vetting"))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.method("GET", HttpRequest.BodyPublishers.ofString("""
{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}
"""))
.build();
var response = HttpClient.newHttpClient().send(
request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
require 'net/http'
require 'uri'
uri = URI('http://localhost:7575/v2/package-vetting')
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer <token>'
request['Content-Type'] = 'application/json'
request.body = <<~JSON
{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
http.request(request)
end
puts response.body
{
"vettedPackages": [
{
"packages": [
{
"packageId": "<string>",
"validFromInclusive": "<string>",
"validUntilExclusive": "<string>",
"packageName": "<string>",
"packageVersion": "<string>"
}
],
"participantId": "<string>",
"synchronizerId": "<string>",
"topologySerial": 123
}
],
"nextPageToken": "<string>"
}
<string>
{
"code": "<string>",
"cause": "<string>",
"correlationId": "<string>",
"traceId": "<string>",
"context": {},
"resources": [
[
"<string>"
]
],
"errorCategory": 123,
"grpcCodeValue": 123,
"retryInfo": "<string>",
"definiteAnswer": false
}
Lists which participant node vetted what packages on which synchronizer. This endpoint (GET /package-vetting) is deprecated and will be removed in a future release. Please use POST /package-vetting/list instead.
curl --request GET \
--url 'http://localhost:7575/v2/package-vetting' \
--header 'Authorization: Bearer $TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}'
import json
import requests
url = "http://localhost:7575/v2/package-vetting"
headers = {'Authorization': 'Bearer <token>', 'Content-Type': 'application/json'}
payload = json.loads(r'''{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}''')
response = requests.request(
"GET", url, headers=headers, json=payload
)
print(response.text)
const response = await fetch('http://localhost:7575/v2/package-vetting', {
method: 'GET',
headers: {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}),
});
console.log(await response.text());
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost:7575/v2/package-vetting',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_POSTFIELDS => <<<'JSON'
{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}
JSON,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
echo $response;
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "http://localhost:7575/v2/package-vetting", bytes.NewBufferString(`{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}`))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
response, _ := http.DefaultClient.Do(req)
defer response.Body.Close()
body, _ := io.ReadAll(response.Body)
fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var request = HttpRequest.newBuilder()
.uri(URI.create("http://localhost:7575/v2/package-vetting"))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.method("GET", HttpRequest.BodyPublishers.ofString("""
{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}
"""))
.build();
var response = HttpClient.newHttpClient().send(
request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
require 'net/http'
require 'uri'
uri = URI('http://localhost:7575/v2/package-vetting')
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer <token>'
request['Content-Type'] = 'application/json'
request.body = <<~JSON
{
"packageMetadataFilter": {
"packageIds": [
"<string>"
],
"packageNamePrefixes": [
"<string>"
]
},
"topologyStateFilter": {
"participantIds": [
"<string>"
],
"synchronizerIds": [
"<string>"
]
},
"pageToken": "<string>",
"pageSize": 123
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
http.request(request)
end
puts response.body
{
"vettedPackages": [
{
"packages": [
{
"packageId": "<string>",
"validFromInclusive": "<string>",
"validUntilExclusive": "<string>",
"packageName": "<string>",
"packageVersion": "<string>"
}
],
"participantId": "<string>",
"synchronizerId": "<string>",
"topologySerial": 123
}
],
"nextPageToken": "<string>"
}
<string>
{
"code": "<string>",
"cause": "<string>",
"correlationId": "<string>",
"traceId": "<string>",
"context": {},
"resources": [
[
"<string>"
]
],
"errorCategory": 123,
"grpcCodeValue": 123,
"retryInfo": "<string>",
"definiteAnswer": false
}
Authorizations
httpAuth
string
required
HTTP bearer authentication. Send the token as
Authorization: Bearer <token>. Ledger API standard JWT tokenapiKeyAuth
string
required
API key authentication in the header. Ledger API standard JWT token (websocket)
Body
application/json
object
OpenAPI type:
PackageMetadataFilter.Filter the VettedPackages by package metadata. A PackageMetadataFilter without package_ids and without package_name_prefixes matches any vetted package. Non-empty fields specify candidate values of which at least one must match. If both fields are set, then a candidate is returned if it matches one of the fields.Show child attributes
Show child attributes
object
OpenAPI type:
TopologyStateFilter.Filter the vetted packages by the participant and synchronizer that they are hosted on. Empty fields are ignored, such that a TopologyStateFilter without participant_ids and without synchronizer_ids matches a vetted package hosted on any participant and synchronizer. Non-empty fields specify candidate values of which at least one must match. If both fields are set then at least one candidate value must match from each field.Show child attributes
Show child attributes
string[]
If this list is non-empty, only vetted packages hosted on participants listed in this field match the filter. Query the current Ledger API’s participant’s ID via the public
GetParticipantId command in PartyManagementService. Optional: can be emptystring[]
If this list is non-empty, only vetted packages from the topology state of the synchronizers in this list match the filter. Optional: can be empty
string
Pagination token to determine the specific page to fetch. Using the token guarantees that
VettedPackages on a subsequent page are all greater (VettedPackages are sorted by synchronizer ID then participant ID) than the last VettedPackages on a previous page. The server does not store intermediate results between calls chained by a series of page tokens. As a consequence, if new vetted packages are being added and a page is requested twice using the same token, more packages can be returned on the second call. Leave unspecified (i.e. as empty string) to fetch the first page. Optionalnumber
OpenAPI type:
integer (int32).Maximum number of VettedPackages results to return in a single page. If the page_size is unspecified (i.e. left as 0), the server will decide the number of results to be returned. If the page_size exceeds the maximum supported by the server, an error will be returned. To obtain the server’s maximum consult the PackageService descriptor available in the VersionService. OptionalResponses
200
application/json
VettedPackages[]
All
VettedPackages that contain at least one VettedPackage matching both a PackageMetadataFilter and a TopologyStateFilter. Sorted by synchronizer_id then participant_id. Optional: can be emptyShow child attributes
Show child attributes
VettedPackage[]
required
Sorted by package_name and package_version where known, and package_id as a last resort. Required: must be non-empty
Show child attributes
Show child attributes
string
required
Package ID of this package Required
string
The time from which this package is vetted. Empty if vetting time has no lower bound. Optional
string
The time until which this package is vetted. Empty if vetting time has no upper bound. Optional
string
Name of this package. Only available if the package has been uploaded to the current participant. Optional
string
Version of this package. Only available if the package has been uploaded to the current participant. Optional
string
required
Participant on which these packages are vetted. Required
string
required
Synchronizer on which these packages are vetted. Required
integer (int32)
required
Serial of last
VettedPackages topology transaction of this participant and on this synchronizer. Requiredstring
Pagination token to retrieve the next page. Empty string if there are no further results. Optional
400
Invalid value, Invalid value for: bodytext/plain
string
required
default
application/json
string
required
string
required
string
string
Map_String
required
Tuple2_String_String[]
integer (int32)
required
integer (int32)
string
boolean
History
Updated
3.5The GET /v2/package-vetting operation changed in this snapshot.
Deprecated
3.4