Configuration of the Apptio Connector

📘

Before you start

Please read steps needed from Apptio side

Apptio configuration JSON

Apptio configuration JSON contains the credentials needed to connect to the user's Apptio environment and configurations per table needed for read (download) and write (upload) to these tables.

Apptio example configuration:

{
 "configId": "lxApptio",
 "data": {
  "apptioConnectionConfig": {
   "loginUrl": "https://frontdoor.apptio.com/service/apikeylogin",
   "keyAccess": "{{pub}}",
   "keySecret": "{{secret}}",
   "domain": "leanixpartner.com",
   "environmentName": "sandbox",
   "ulsUrl": "https://datalink.apptio.com/uls/api/v1"
  },
  "apptioWriteConfigs": [
   {
    "type": "detailed",
    "host": "bizdev-r12.apptio.com",
    "project": "Cost Transparency",
    "tableName": "Mainframe Data",
    "period": "Jun:FY2018",
    "overwrite": true
   }
  ],
  "dataProvider": {
   "type": "url",
   "url": "https://input_file_url"
  },
  "apptioReadConfigs": [
   {
    "type": "url",
    "url": "https://bizdev-r12.apptio.com/biit/api/v2.tsv?date=Jul:FY2020&[email protected]%3ACost+Transparency2/Data/.DateGoesHere/Data+Center+Detail/ExecutionSteps/Output/!SORT/!LIMIT%5B0%2C2147483647%5D/!LIMIT_COLUMNS%5B%5D&environment=stg",
    "tableName": "Data Center Detail"
   }
  ],
  "dataConsumer": {
   "type": "leanixStorage"
  }
 },
 "active": true
}

General Configuration parts

Mandatory configuration fields are:

1

"configId" (optional): string identifier for each configuration. Default value is "lxApptio" if not included

2

"active": true/false. Activates/deactivates the configuration. A configuration must be active in order to use it for a run, and only valid configurations can be saved as active=true

3

"data": main section containing connection, read and write configuration. The field *apptioConnectionConfig* needs to be specified at least

apptioConnectionConfig

This section defines the credentials and URLs needed for connecting to Apptio systems.

1

"loginUrl": login url for Apptio systems using API keys. Value is different depending on the region. EU customers, US and other customers

2

"keyAccess": API key access generated on Apptio for the environment to be used

3

"keySecret": API key secret generated on Apptio for the environment to be used

4

"domain": domain name containing the tables to be used

5

"environmentName": environment name containing the tables to be used

6

"ulsUrl": Apptio Uploader Service url, used for writing to Apptio tables. Note that it is a different url depending on the zone your Apptio environment is located. EU, North America, APAC

Read data from Apptio (download)

If data is to be read from Apptio, the "apptioReadConfigs" section must contain data.

apptioReadConfigs

This array contains one or more Apptio read configurations for downloading data. Each read configuration has the following structure:

{
 "type": "url",
 "url": "https://bizdev-r12.apptio.com/biit/api/v2.tsv?date=Jul:FY2020&[email protected]%3ACost+Transparency2/Data/.DateGoesHere/Data+Center+Detail/ExecutionSteps/Output/!SORT/!LIMIT%5B0%2C2147483647%5D/!LIMIT_COLUMNS%5B%5D&environment=stg",
 "tableName": "Data Center Detail"
}
1

"type": must be "url"

2

"url": Apptio target table url from where the data will be read. This API url can be generated in Apptio TBM Studio for the desired table. The format used is the tsv format or the legacy tsv format from the tables in TBM Studio

3

"tableName": name of the table to be used as "type" for the resulting LDIF content items

📘

Apptio API Integration and format

This integration is designed to pull and read from the tables within TBM studio only.
The format used is the tsv format or the legacy tsv format from the tables in TBM Studio.

📘

Apptio period to download/upload

In the URL for the table where to download data from, a period must be specified indicating the month and year for that target table (it can be part of the URL or the "date" query parameter depending on the URL format).
A period uses the MMM:'FY'yyyy format (Three characters month, colon, FY literal string, 4-digit year). Also, the keyword "CURRENT" can be used to download from the current month period.

dataConsumer

If a "dataConsumer" (optional) section is defined (see example configuration), the "type" must always be set to "leanixStorage". For this configuration the resulting LDIF will be stored into the database and is accessible via API call (/runs//results). If no "dataConsumer" is specified, the resulting LDIF is stored on Azure storage. The url to this LDIF is provided via API (/runs//resultsUrl).

Write data to Apptio (upload)

In case data should be uploaded to Apptio, the "apptioWriteConfigs" needs to be specified.

apptioWriteConfigs

This array contains one or more Apptio write configurations for uploading data. Each write configuration has the following structure:

{
 "type": "detailed",
 "host": "bizdev-r12.apptio.com",
 "project": "Cost Transparency",
 "tableName": "Mainframe Data",
 "period": "Jun:FY2018",
 "overwrite": true
}
1

"type": must be "detailed"

2

"host": the url host section for the Apptio environment being used

3

"project": project name containing the target table

4

"tableName": name of the target table

5

"period": the period where to upload the data for that table. Like downloading data from Apptio, it uses the MMM:'FY'yyyy format (Three characters month, colon, FY literal string, 4-digit year). The keyword "CURRENT" can be used also to upload to the current month period

6

"overwrite": true/false. If true, all previous table contents will be deleted and replaced with the new content uploaded. If false, previous contents will be kept and new content will be added to the target table

dataProvider

If a "dataProvider" (optional) section is defined (see example configuration), for the current version, "type" must be "url". The "url" field next must define an url for an Ldif file to be read and used as input for the upload process.