TRN APIs
API change historyB2B REST APIs for the TRN Environment
getHoldingsReport
Generates and returns an AVCS holdings report. This report contains the latest edition and update numbers available for all of the cells that the licence holds
Try itRequest
Request URL
Request parameters
-
integer
Unique Fleet Manager Licence Identifier
Request headers
-
string
Authorisation JWT acquired from /auth/
-
(optional)string
Media type(s) that is/are acceptable for the response. Currently only accepts application/json
Request body
Responses
200 OK
OK - Holdings report returned
Response headers
-
(optional)string
GUID for the request for logging/tracing
-
(optional)string
The MIME type of this content. This will be application/json
Representations
[
{
"productCode": "P2139",
"productTitle": "Great Yarmouth",
"expiryDate": "2024-01-31T23:59:00Z",
"cells": [
{
"cellCode": "GB40304A",
"cellTitle": "Approaches to Great Yarmouth & Lowestoft",
"latestEditionNumber": "3",
"latestUpdateNumber": "46"
},
{
"cellCode": "GB40304B",
"cellTitle": "Great Yarmouth Havens",
"latestEditionNumber": "3",
"latestUpdateNumber": "30"
}
]
}
]
{
"type": "array",
"items": {
"type": "object",
"properties": {
"productCode": {
"type": "string"
},
"productTitle": {
"type": "string"
},
"expiryDate": {
"type": "string",
"format": "date-time"
},
"cells": {
"type": "array",
"items": {
"type": "object",
"properties": {
"cellCode": {
"type": "string"
},
"cellTitle": {
"type": "string"
},
"latestEditionNumber": {
"type": "string"
},
"latestUpdateNumber": {
"type": "string"
}
}
}
}
}
}
}
204 No Content
No Content - Indicates that the licence has no holdings.
Response headers
-
(optional)string
GUID for the request for logging/tracing
Representations
400 Bad Request
Invalid Licence ID, or Licence has no AVCS tab.
Response headers
-
(optional)string
GUID for the request for logging/tracing
Representations
{
"correlationId": "6c254109-8a0f-4446-8649-721775ba9de2",
"errors": [
{
"source": "licenceId",
"description": "Invalid Licence ID."
}
]
}
{
"type": "object",
"properties": {
"correlationId": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"description": {
"type": "string"
}
}
}
}
}
}
401 Unauthorized
Token Authentication Failed
Response headers
-
(optional)string
GUID for the request for logging/tracing
Representations
403 Forbidden
Forbidden or Quota Exceeded.
This will either be because:
- you have no permission to use this API (in which case the body will be empty)
- another distributor is responsible for AVCS on this licence
- the quota has been exceeded
Response headers
-
(optional)string
GUID for the request for logging/tracing
Representations
{
"correlationId": "6c254109-8a0f-4446-8649-721775ba9de2",
"errors": [
{
"source": "licenceId",
"description": "You are not the distributor for AVCS on this licence."
}
]
}
{
"type": "object",
"properties": {
"correlationId": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"description": {
"type": "string"
}
}
}
}
}
}
404 Not Found
Licence not found or Licence ID not provided.
Response headers
-
(optional)string
GUID for the request for logging/tracing
Representations
{
"correlationId": "6c254109-8a0f-4446-8649-721775ba9de2",
"errors": [
{
"source": "licenceId",
"description": "Licence ID not found."
}
]
}
{
"type": "object",
"properties": {
"correlationId": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"description": {
"type": "string"
}
}
}
}
}
}
406 Not Acceptable
The content type requested in the Accept header can not be provided.
Response headers
-
(optional)string
GUID for the request for logging/tracing
Representations
429 Too many requests
Too Many Requests
Representations
{
"statusCode": 429,
"message": "Rate limit is exceeded. Try again in 1 seconds."
}
{
"type": "object",
"properties": {
"statusCode": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
500 Internal Server Error
Internal Server Error.
Response headers
-
(optional)string
GUID for the request for logging/tracing
Representations
{
"correlationId": "string",
"message": "string"
}
{
"type": "object",
"properties": {
"correlationId": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
503 Service Unavailable
Service Unavailable
Response headers
-
(optional)string
GUID for the request for logging/tracing
Representations
Code samples
@ECHO OFF
curl -v -X GET "https://admiralty.azure-api.net/trn/reports/holdings/AVCS/{licenceId}"
-H "token: "
-H "Accept: "
-H "Ocp-Apim-Subscription-Key: {subscription key}"
--data-ascii "{body}"
using System;
using System.Net.Http.Headers;
using System.Text;
using System.Net.Http;
using System.Web;
namespace CSHttpClientSample
{
static class Program
{
static void Main()
{
MakeRequest();
Console.WriteLine("Hit ENTER to exit...");
Console.ReadLine();
}
static async void MakeRequest()
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
// Request headers
client.DefaultRequestHeaders.Add("token", "");
client.DefaultRequestHeaders.Accept.Add(MediaTypeWithQualityHeaderValue.Parse(""));
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "{subscription key}");
var uri = "https://admiralty.azure-api.net/trn/reports/holdings/AVCS/{licenceId}?" + queryString;
var response = await client.GetAsync(uri);
}
}
}
// // This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
import java.net.URI;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class JavaSample
{
public static void main(String[] args)
{
HttpClient httpclient = HttpClients.createDefault();
try
{
URIBuilder builder = new URIBuilder("https://admiralty.azure-api.net/trn/reports/holdings/AVCS/{licenceId}");
URI uri = builder.build();
HttpGet request = new HttpGet(uri);
request.setHeader("token", "");
request.setHeader("Accept", "");
request.setHeader("Ocp-Apim-Subscription-Key", "{subscription key}");
// Request body
StringEntity reqEntity = new StringEntity("{body}");
request.setEntity(reqEntity);
HttpResponse response = httpclient.execute(request);
HttpEntity entity = response.getEntity();
if (entity != null)
{
System.out.println(EntityUtils.toString(entity));
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
<!DOCTYPE html>
<html>
<head>
<title>JSSample</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function() {
var params = {
// Request parameters
};
$.ajax({
url: "https://admiralty.azure-api.net/trn/reports/holdings/AVCS/{licenceId}?" + $.param(params),
beforeSend: function(xhrObj){
// Request headers
xhrObj.setRequestHeader("token","");
xhrObj.setRequestHeader("Accept","");
xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","{subscription key}");
},
type: "GET",
// Request body
data: "{body}",
})
.done(function(data) {
alert("success");
})
.fail(function() {
alert("error");
});
});
</script>
</body>
</html>
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString* path = @"https://admiralty.azure-api.net/trn/reports/holdings/AVCS/{licenceId}";
NSArray* array = @[
// Request parameters
@"entities=true",
];
NSString* string = [array componentsJoinedByString:@"&"];
path = [path stringByAppendingFormat:@"?%@", string];
NSLog(@"%@", path);
NSMutableURLRequest* _request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:path]];
[_request setHTTPMethod:@"GET"];
// Request headers
[_request setValue:@"" forHTTPHeaderField:@"token"];
[_request setValue:@"" forHTTPHeaderField:@"Accept"];
[_request setValue:@"{subscription key}" forHTTPHeaderField:@"Ocp-Apim-Subscription-Key"];
// Request body
[_request setHTTPBody:[@"{body}" dataUsingEncoding:NSUTF8StringEncoding]];
NSURLResponse *response = nil;
NSError *error = nil;
NSData* _connectionData = [NSURLConnection sendSynchronousRequest:_request returningResponse:&response error:&error];
if (nil != error)
{
NSLog(@"Error: %@", error);
}
else
{
NSError* error = nil;
NSMutableDictionary* json = nil;
NSString* dataString = [[NSString alloc] initWithData:_connectionData encoding:NSUTF8StringEncoding];
NSLog(@"%@", dataString);
if (nil != _connectionData)
{
json = [NSJSONSerialization JSONObjectWithData:_connectionData options:NSJSONReadingMutableContainers error:&error];
}
if (error || !json)
{
NSLog(@"Could not parse loaded json with error:%@", error);
}
NSLog(@"%@", json);
_connectionData = nil;
}
[pool drain];
return 0;
}
<?php
// This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
require_once 'HTTP/Request2.php';
$request = new Http_Request2('https://admiralty.azure-api.net/trn/reports/holdings/AVCS/{licenceId}');
$url = $request->getUrl();
$headers = array(
// Request headers
'token' => '',
'Accept' => '',
'Ocp-Apim-Subscription-Key' => '{subscription key}',
);
$request->setHeader($headers);
$parameters = array(
// Request parameters
);
$url->setQueryVariables($parameters);
$request->setMethod(HTTP_Request2::METHOD_GET);
// Request body
$request->setBody("{body}");
try
{
$response = $request->send();
echo $response->getBody();
}
catch (HttpException $ex)
{
echo $ex;
}
?>
########### Python 2.7 #############
import httplib, urllib, base64
headers = {
# Request headers
'token': '',
'Accept': '',
'Ocp-Apim-Subscription-Key': '{subscription key}',
}
params = urllib.urlencode({
})
try:
conn = httplib.HTTPSConnection('admiralty.azure-api.net')
conn.request("GET", "/trn/reports/holdings/AVCS/{licenceId}?%s" % params, "{body}", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
####################################
########### Python 3.2 #############
import http.client, urllib.request, urllib.parse, urllib.error, base64
headers = {
# Request headers
'token': '',
'Accept': '',
'Ocp-Apim-Subscription-Key': '{subscription key}',
}
params = urllib.parse.urlencode({
})
try:
conn = http.client.HTTPSConnection('admiralty.azure-api.net')
conn.request("GET", "/trn/reports/holdings/AVCS/{licenceId}?%s" % params, "{body}", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
####################################
require 'net/http'
uri = URI('https://admiralty.azure-api.net/trn/reports/holdings/AVCS/{licenceId}')
request = Net::HTTP::Get.new(uri.request_uri)
# Request headers
request['token'] = ''
# Request headers
request['Accept'] = ''
# Request headers
request['Ocp-Apim-Subscription-Key'] = '{subscription key}'
# Request body
request.body = "{body}"
response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
http.request(request)
end
puts response.body