FLRT JSON API Documentation

FLRT JSON API Documentation

FLRT JSON API Documentation

Dive into DevOps by automating your Power Systems reports using our JSON APIs. This page will be updated as we provide more APIs in the future.
If you find any bugs or errors, please report them through our Feedback Tool.


API Reference



Power Systems Recommendations

The API used to access FLRT data is a REST style interface implemented using the HTTPS protocol. This enables faster development because API queries can be tested using a browser. You can begin to get familiar with this API interface by building a query URL using FLRTs Report Input page on the Web:
https://esupport.ibm.com/customercare/flrt/power

The FLRT Report input page provides a form to specify your system. This is the preferred method if you have one or two systems. The HTTP request built by the FLRT input page is almost identical to that needed by the API.

To access FLRT programmatically you could use the curl command or you can use the axios package in NodeJS or Python's request library.
The Power software that FLRT has data for is listed on this page: Products and Codes

API

If you have many systems, you may want to automate the query through scripting. This section will describe how to manually construct a URL to query FLRT Recommendations.

Example query to get a JSON-formatted report using an HTTP GET request:
https://esupport.ibm.com/customercare/flrt/report?format=json&plat=power&p0.mtm=9119-MHE&p0.fw=SC860_160&p0.hmc=V9+R1+M921&p0.hmchost=7042-CR9&p1.parnm=Partition+1&p1.os=ibmi&p1.ibmi=V7R3M4&p2.parnm=Partition+2&p2.os=aix&p2.aix=7200-03-01

GET https://esupport.ibm.com/customercare/flrt/report

GET https://esupport.ibm.com/customercare/flrt/query


GET Parameters


Format Type

GET Parameter Options Required
format json, xml, text, html Required to use JSON
reportname User specified name for this report Optional
ucode Your application code name
(i.e. myCompanyReport)
Used for tracking API usage
Required

System Definitions

GET Parameter Options Required
plat power , pure, blade Required
p0.mtm Supported MTMs Required
p0.fw Supported Firmware Versions Required
p0.hmc Supported HMC Versions Optional
p0.hmchost Supported HMCHost Versions Optional
P0.fsm Supported FSM Versions Optional, only Required for plat=pure

Partition Definitions

Partitions must be prefixed with p#, where # must start from 1 and can go up to 999 partitions. The limitation is mainly based on the maximum URL length of 2048 characters. Partitions 1000 and 1001 have special meaning and should not be used here.
For example: p1.os=aix&p1.aix=7100-01-01

GET Parameter Options Required
p#.parnm User specified name for this partition Optional
p#.os aix, ibmi, vios, rhel, sles, ubuntu, linux Required, requires subsequent p#.<os value>
p#.aix Supported AIX Versions Required if OS specified
p#.ibmi Supported IBMi Versions Required if OS specified
p#.vios Supported VIOS Versions Required if OS specified
p#.rhel Supported RHEL Versions Required if OS specified
p#.sles Supported SLES Versions Required if OS specified
p#.ubuntu Supported Ubuntu Versions Required if OS specified
p#.[product] See Chart below for Product Code and Supported versions Optional

Partition Product Codes

Software products are attached to a partition, as they will be linked to a specific operating system.

GET Parameter Title
p#.aix52wp AIX 5.2 Workload Partitions for AIX 7
p#.aix53wp AIX 5.3 Workload Partitions for AIX 7
p#.sgs882 Cluster Systems Management
p#.sgs8em or p#.ssfhy8 Engineering and Scientific Subroutine Library
p#.sg6msp or p#.ssfkcn General Parallel File System
p#.gpfsae General Parallel File System Advanced Edition
p#.gpfsee General Parallel File System Express Edition
p#.gpfsse General Parallel File System Standard Edition
p#.sgs8dd or p#.ssfjtw LoadLeveler
p#.sg4psl or p#.ssnr5k Parallel Engineering and Scientific Subroutine Library
p#.sg6mu7 or p#.ssfjzb Parallel Environment
p#.ssfk5s Parallel Environment Developer Edition for AIX
p#.ssmn4z Parallel Environment Developer Edition for Linux on Power
p#.ssmnzr Parallel Environment Developer Edition for Linux on x86
p#.sslqjp or p#.ssfk3v Parallel Environment Runtime Edition for AIX
p#.ssrjvu Parallel Environment Runtime Edition for Linux on Power
p#.ssmq58 Parallel Environment Runtime Edition for Linux on x86
p#.sgl4g4 or p#.ssphqg PowerHA SystemMirror
p#.pwree PowerSC Express Edition
p#.pwrscts PowerSC Trusted Surveyor
p#.ssxk2n PowerVC Standard Edition
p#.sgs8l3 PowerVM Lx86 for x86 Linux Applications
p#.ssxlmv PowerVP Standard Edition
p#.spectrum Spectrum Scale
p#.sgz2z3 Systems Director

JSON Response

The JSON response returns an object with the "flrtReport" key that holds an array of objects, where System is first that contains MTM, FW, HMC, and the Partitions with OS information follow.

High level structure of JSON response


flrtReport (array of partition)

	System (partition object)
		fw (product object)
		hmc (product object)
		hmchost (product object)
		kvm (product object)
		fsm (product object)
		mtm (product object)
	
	Partition 1 (partition object)
		[OS Name] (product object)

Each product object under System or Partitions will have the following structure:

fw (product object)
	name (string)
	nickname (string)
	key (string)
	code (string)
	input (version object)
	update (version object) - only if exists
	upgrade (version object) - only if exists
	minimum (version object) - only if exists

Each version object is used for input, update, upgrade, and minimum and will have the following structure:

input (version object)
	name (string)
	version (string)
	releaseDate (string date)
	eosps (string date) - if available
	url (string url) - if available
	download (string url) - if available
	fixDetails (string url) - if available
	reboot (Boolean) - aix only
	notes (array) - array of objects with key of note or fix
	latest (array) - version object
	apars (object) - aix only

Notes array will have the following structures

notes (array of notes/fixes)
	(notes object)
		note (string)
	(fixes object)
		fix (object)
			version (string)
			description (string)
			url (string url)
			download (string url)
			rerleaseDate (string date)

APAR objects which appear for partitions with AIX, have the following structure:

apars (object)
	OTHER (object)
		[CVE | APAR] (apar object)
			url (string url)
			bulletin (string url)
			download (string url)
			filesets (string)
			fixedIn (string)
			fixedInLink (string)
			abstract (string)
			ifixes (string)
			issued (string date)
			updated (string date)
			reboot (string bool)
	HIPER (object)
		(apar objects)
	SECURITY (object)
		(apar objects)




FLRT Lite

FLRT Lite is our raw list of version data. There is no dependency logic in FLRT Lite, but it may be used to validate your version strings when using them as input in our queries.

FLRT Lite website:
https://esupport.ibm.com/customercare/flrt/liteHome

Here is an example for Hardware Management Consoles (HMC):
https://esupport.ibm.com/customercare/flrt/liteTable?prodKey=hmc

GET Parameters

GET Parameter Options Required
format json, csv, csvdl Required to use JSON
prodKey Supported Product Codes Required

JSON Response

JSON response structure has the following:

results (array of version)
	(version object)
		input (string)
		inputurl (string url)
		update (string)
		updateurl (string)
		ga (string date)
		eosps (string date)




FLRT Power Systems Prerequisites

Power Systems Prerequisites help you identify dependencies between Machine-Type Model and Feature Codes. This may report the required operating systems or other dependency for the Feature Code to be compatible with the MTM.

FLRT Power Systems Prerequisite website:
https://esupport.ibm.com/customercare/iprt/home

HTML Report example:
https://esupport.ibm.com/customercare/iprt/prq-table?mtm=8231-E2B&fc=0047%2C0265%2C0839&os=

GET Parameters

GET Parameter Options Required
format json, csv Required to use JSON
mtm Machine-Type Model Required
fc Feature Codes, separated by URL encoded comma (%2C) Optional, if not used returns all Feature Codes
os aix, ibmi, rhel, sles, ubuntu, vios Optional, filters the prerequisites by operating system

JSON Response

prqSet (array of prereq)
	(prereq object)
		machineType (string)
		model (string)
		featureCode (string)
		featureCodeDesc (string)
		featurerCodeAnnounceDate (string date)
		productName (string)
		releaseId (string)
		fixLevel (string)
		externalInfo (string)



FLRT Power Devices Adapter Microcode

Microcode Discovery Service (MDS) as it is also called, is used to determine if microcode installed on your IBM Power Systems is at the latest level. Microcode is a device driver used by Power Systems.

FLRT MDS website:
https://esupport.ibm.com/customercare/mds/

API

This API requires a *.mup file from your AIX partition, which may be generated using the Inventory Scout tool ( invscout ).

JSON Response example
Download inventoryScoutExample.mup (zipped) , and run the following cURL command after unzipping:

curl -F "mdsData=@inventoryScoutExample.mup;ype=multipart/form" -H "Expect:" "http//esupport.ibm.com/customercare/mds/mds" -F "format=json"

This sets the filename field to name "mdsData", with format=json in the POST data.

POST http//esupport.ibm.com/customercare/mds/mds

POST Parameters

POST Parameter Options Required
format json Required to use JSON
mdsData File *.mup Required

JSON Response (object)

High level JSON structure:

MdsReport (object)
	title (string)
	systems (array of system)
		(system object)
	microcodes (array of microcode)
		(microcode object)

The system object has the following structure:

(system object)
	model (string)
	serial (string)
	hosts (array of host)
		(host object)

The host object has the following structure:

(host object)
	name (string)
	ipAddr (string)
	parId (string)
	aix (string version)
	isService (boolean)
	catalog (object)
		report (string date)
		survey (string date)
	devices (array of device)
		(device object)

The device object has the following structure:

(device object)
	ids (array of strings)
	pkgName (string)
	installed (string version)
	latest (string version)
	recommend (string version)
	errors (array of strings)

The microcode object has the following structure:

(microcode object)
	pkgName (string)
	latest (string version)
	reldate (string date)
	impact (string)
	severity (string)
	download (string url)