{ "openapi": "3.0.0", "info": { "title": "Conga MAX REST APIs", "description": "Welcome to the Max REST API. You can find out more about MAX at the [Conga MAX website](https://apttus.com/solutions/artificial-intelligence-quote-to-cash/). In order to explore the REST API you need a API key and a valid tenant registered with MAX.", "termsOfService": "https://apttus.com/company/legal/apttus-general-terms-of-use/", "contact": { "email": "maxcustomersupport@conga.com" }, "version": "1.0.0" }, "servers": [ { "url": "https://maxazdev.apttuscloud.io/api/v1", "description": "Max APIs" } ], "tags": [ { "name": "ichronos", "description": "Resolve natural language based time phrase, currency & numerical expressions" }, { "name": "search", "description": "Search for business objects using natural language queries" }, { "name": "admin", "description": "Admin queries" } ], "paths": { "/{tenantId}/ichronos/resolvephrase": { "get": { "tags": [ "ichronos" ], "summary": "Extracts date, currency, and numbers from natural language text.", "description": "Extracts date, currency, and numbers from natural language text. This API accepts Tenant Name, Input Phrase, and Time Zone as input parameters and returns date, currency, and time as output, with options to modify the date format of the output. For example, <UL> <LI><B>Input:</B> <P><I>The Acme agreement is expected to start on the first Monday of 2021 and end two years since then and it is valued at Fifty Thousand Dollars payable within the first 3 months of next year.</I> <LI><B>Output:</B> <OL> <LI>first Monday of 2021 = 2021-01-04 <LI>two years since then = 2023-01-04 <LI>Fifty Thousand Dollars = USD 50000 <LI>the first 3 months of next year = 2021-01-01 to 2021-03-31 </OL> </UL>", "operationId": "ichronosResolvePhrase", "parameters": [ { "name": "tenantId", "in": "path", "description": "Tenant name", "required": true, "style": "simple", "explode": false, "schema": { "type": "string" }, "example": "max or apttussfdc or any tenant name" }, { "name": "input", "in": "query", "description": "Input phrase to be resolved", "required": true, "style": "form", "explode": true, "schema": { "type": "string" }, "example": "effective as of 01 / 01/ 2019" }, { "name": "timezone", "in": "query", "description": "Timezone [SID key](https://www.salesforceben.com/list-timezonesidkey-salesforce/)", "required": false, "style": "form", "explode": true, "schema": { "type": "string" }, "example": "America/Los_Angeles" }, { "name": "options", "in": "query", "description": "Stringified form of JSON representing the iChronosOptions", "required": false, "schema": { "type": "string" }, "example": { "objectName": "Apttus__APTS_Agreement__c", "fullNLUResult": false, "format": "mm-dd-yyyy" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/entityResponseList" } } } } }, "security": [ { "APIKeyAuth": [] } ] } }, "/{tenantId}/ichronos/resolvetemplate": { "get": { "tags": [ "ichronos" ], "summary": "Extracts date and time parameters from natural language queries containing variables or templates.", "description": "Extracts date and time parameters from natural language queries containing variables or templates. This API accepts Tenant Name, Template Phrase, Time Zone, Data Map and Options as input parameters. For example, <B><I>if you provide input query as 6 weeks from contract start date and specify the contract start date as 1/1/2021 under Data Map field, it returns the output as 2/12/2021. </B></I> This API works in combination with resolvephrase API.", "operationId": "ichronosResolveTemplate", "parameters": [ { "name": "tenantId", "in": "path", "description": "Tenant name", "required": true, "style": "simple", "explode": false, "schema": { "type": "string" }, "example": "max or apttussfdc or any tenant name" }, { "name": "input", "in": "query", "description": "Input templated phrase to be resolved.", "required": true, "style": "form", "explode": true, "schema": { "type": "string" }, "example": "90 days from the ${Apttus__Contract_Start_Date__c}" }, { "name": "timezone", "in": "query", "description": "Timezone [SID key](https://www.salesforceben.com/list-timezonesidkey-salesforce/)", "required": false, "style": "form", "explode": true, "schema": { "type": "string" }, "example": "America/Los_Angeles" }, { "name": "dataMap", "in": "query", "description": "Stringified form of JSON representing the dataMap to resolve the template", "required": false, "style": "form", "explode": true, "schema": { "type": "string" }, "example": { "Apttus__Contract_Start_Date__c": "2019-10-01", "Apttus__Contract_End_Date__c": "2020-10-01" } }, { "name": "options", "in": "query", "description": "Stringified form of JSON representing the iChronosOptions", "required": false, "schema": { "type": "string" }, "example": { "objectName": "Apttus__APTS_Agreement__c", "fullNLUResult": false, "format": "mm-dd-yyyy" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/entityResponseList" } } } } }, "security": [ { "APIKeyAuth": [] } ] } }, "/{tenantId}/ichronos/feedback": { "post": { "tags": [ "ichronos" ], "summary": "Logs app level feedback event on prior iChronos resolution", "description": "Logs app level feedback event on prior iChronos resolution. This API can be used by a client application to log analytics events that will help us understand how iChronos resolutions are performing. The API accepts Tenant Name, Prior API Response, along with the application level resolved value and the actual user specified correct value as input parameters.", "operationId": "ichronosFeedback", "parameters": [ { "name": "tenantId", "in": "path", "description": "Tenant name", "required": true, "style": "simple", "explode": false, "schema": { "type": "string" }, "example": "max or apttussfdc or any tenant name" }, { "name": "phrase", "in": "query", "description": "Input phrase that was used in recent iChronos API request.", "required": true, "style": "form", "explode": true, "schema": { "type": "string" }, "example": "the term is three (3) years" }, { "name": "response", "in": "query", "description": "Stringified form of JSON response returned by iChronos", "required": false, "style": "form", "explode": true, "schema": { "type": "string" }, "example": { "phrase": "the term is three (3) years", "entities": [ { "entity": "three (3) years", "startIndex": 12, "endIndex": 26, "type": "duration", "resolution": { "values": [ { "type": "duration", "value": 94608000000 } ] } } ] } }, { "name": "correctResolution", "in": "query", "description": "Indicates whether the iChronos resolution was accepted as is by the user. If true, user accepted as is. Else it should be set to false.", "required": true, "style": "form", "explode": true, "schema": { "type": "boolean" }, "example": "true" }, { "name": "resolvedValue", "in": "query", "description": "Stringified JSON or just string describing how app resolved the value", "required": true, "style": "form", "explode": true, "schema": { "type": "string" }, "example": "36" }, { "name": "correctValue", "in": "query", "description": "Stringified JSON or just string describing how user corrected the value", "required": true, "style": "form", "explode": true, "schema": { "type": "string" }, "example": "48" }, { "name": "options", "in": "query", "description": "Stringified form of JSON representing the iChronosOptions. You need to pass in the context parameter with the below properties <UL> <LI>instanceUrl to identify the SFDC org originating the request. <LI>userId SFDC userId identifying the user. <LI>userName SFDC user name identifying the user. <LI>requestId indicating the x-request-id returned by the original iChronos request for which feedback is provided <LI>field such as Apttus__Contract_Start_Date__c for which the feedback is provided <LI>sessionId a unique Id identifying a set of iChronos resolutions for a single user session (eg: If start date, end date & term are resolved for a single user document, this could be set to the documentId) </UL>", "required": false, "schema": { "type": "string" }, "example": { "context": { "instanceUrl": "https://max1.my.salesforce.com", "userId": "0054T000000dqllQAB", "userName": "Jeremy Jones", "requestId": "29080e70-3993-437a-a923-fa59700cc07e", "field": "Apttus__Contract_Start_Date__c", "sessionId": "a0h4T000000iuqjQAA" } } } ], "responses": { "200": { "description": "OK" } }, "security": [ { "APIKeyAuth": [] } ] } }, "/{tenantId}/search/resolvephrase": { "get": { "tags": [ "search" ], "summary": "Finds business objects from natural language text.", "description": "Finds business objects from natural language text. It accepts Tenant Name, Input Query, SFDC User ID of the logged-in user and Instance URL of the SFDC Org as input parameters. For example, <UL> <LI><B>Input:</B> <P><I>Pull up quotes expiring next week</I> <LI><B>Output:</B> <P>Returns a list of quote Ids of quotes that have an expiration date as next week </UL>", "operationId": "searchResolvePhrase", "parameters": [ { "name": "tenantId", "in": "path", "description": "Tenant name", "required": true, "style": "simple", "explode": false, "schema": { "type": "string" }, "example": "apttussfdc or any tenant name" }, { "name": "input", "in": "query", "description": "Input phrase to be resolved", "required": true, "style": "form", "explode": true, "schema": { "type": "string" }, "example": "pull up quotes expiring this year" }, { "name": "userId", "in": "query", "description": "SFDC UserID of the logged in user", "required": true, "style": "form", "explode": true, "schema": { "type": "string" }, "example": "0054T000000dqllQBB" }, { "name": "userName", "in": "query", "description": "Full name of the logged in SFDC user", "required": true, "style": "form", "explode": true, "schema": { "type": "string" }, "example": "Jeremy Jones" }, { "name": "instanceUrl", "in": "query", "description": "Instance URL of the SFDC org", "required": true, "style": "form", "explode": true, "schema": { "type": "string" }, "example": "https://max1.my.salesforce.com" }, { "name": "limit", "in": "query", "description": "Record count for the query", "required": false, "schema": { "type": "integer" }, "example": 25 }, { "name": "options", "in": "query", "description": "Stringified form of JSON representing the searchOptions", "required": false, "explode": true, "schema": { "type": "string" }, "example": { "fetchResults": true, "sessionTreatment": "clear" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/searchResponse" } } } } }, "security": [ { "APIKeyAuth": [], "BearerAuth": [] } ], "x-swagger-router-controller": "Search" } }, "/max/admin/apikey": { "get": { "tags": [ "admin" ], "summary": "Generates a unique API key that you can use to access Max APIs.", "description": "Generates a unique API key that you can use to access Max APIs. You can also activate the API Key using Max Admin Console.", "operationId": "genAPIKey", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "string", "x-content-type": "text/plain" } } } } }, "security": [ { "APIKeyAuth": [] } ], "x-swagger-router-controller": "Admin" } }, "/{tenantId}/admin/version": { "get": { "tags": [ "admin" ], "summary": "Returns software version and config details for a tenant.", "description": "Returns software version and config details for a tenant. You can call this API to obtain the version, environment, tenant configuration, build information and other details about your Max instance.", "operationId": "adminVersion", "parameters": [ { "name": "tenantId", "in": "path", "description": "Tenant name", "required": true, "style": "simple", "explode": false, "schema": { "type": "string" }, "example": "max or apttussfdc or any tenant name" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/versionResponse" } } } } }, "security": [ { "APIKeyAuth": [] } ] } } }, "components": { "schemas": { "entityResponse": { "type": "object", "properties": { "entity": { "type": "string", "description": "sub phrase", "format": "string" }, "startIndex": { "type": "integer", "description": "Start index of the sub phrase", "format": "int32" }, "endIndex": { "type": "integer", "description": "End index of the sub phrase", "format": "int32" }, "type": { "type": "string", "description": "Entity resolution type", "format": "string" }, "resolution": { "$ref": "#/components/schemas/entityResolutionResultList" } } }, "entityResponseList": { "type": "object", "properties": { "phrase": { "type": "string", "description": "input phrase" }, "entities": { "type": "array", "items": null, "$ref": "#/components/schemas/entityResponse" } }, "example": { "phrase": "pull up quotes expiring in the next 90 days that are starting next week", "entities": [ { "entity": "in the next 90 days", "startIndex": 24, "endIndex": 42, "type": "daterange", "resolution": { "values": [ { "type": "daterange", "start": "2020-09-11", "end": "2020-12-10" } ] } }, { "entity": "starting next week", "startIndex": 53, "endIndex": 70, "type": "daterange", "resolution": { "values": [ { "type": "daterange", "Mod": "since", "start": "2020-09-14" } ], "altValues": [ { "type": "daterange", "start": "2020-09-14", "end": "2020-09-20", "notes": "starting" } ] } } ] } }, "searchResponse": { "type": "object", "properties": { "query": { "type": "string", "description": "SFDC SOQL query capturing the NL phrase", "format": "string" }, "phrase": { "type": "string", "description": "NL phrase input" }, "whereClauseFields": { "type": "array", "description": "List of fields in the where clause", "items": { "type": "string", "description": "DB field" } }, "selectFields": { "type": "array", "description": "List of select fields in the query", "items": { "type": "string", "description": "DB field" } }, "orderByFields": { "type": "array", "description": "List of fields in the order by clause", "items": { "type": "string", "description": "DB field" } }, "questionClauseFields": { "type": "array", "description": "List of fields in the question clause", "items": { "type": "string", "description": "DB field" } }, "result": { "$ref": "#/components/schemas/searchResponseResult" }, "explanation": { "$ref": "#/components/schemas/explanationResult" } }, "example": { "orderByFields": null, "result": { "query": "SELECT Id,RecordTypeId,Apttus_Proposal__ReadyToGenerate__c ,...,Apttus_Proposal__Payment_Term__c,Apttus_Proposal__Valid_Until_Date__c,APTSMD_Initial_Price__c,APTSMD_Discounted_Price__c, (SELECT Id,Name,Apttus_QPConfig__ChargeType__c,Apttus_QPConfig__PriceUom__c,Apttus_QPConfig__Frequency__c FROM Apttus_Proposal__R00N70000001yUfBEAU__r ), (SELECT Id,Name FROM Apttus_QPConfig__ProposalSummary__r ), (SELECT Id,Name,ParentId,ContentType FROM Attachments ) FROM Apttus_Proposal__Proposal__c WHERE ((Apttus_Proposal__Proposal_Name__c LIKE '%fastpower%' OR Apttus_Proposal__Account__r.Name LIKE '%fastpower%')) AND Apttus_Proposal__Valid_Until_Date__c >= 2020-09-17 AND Apttus_Proposal__Valid_Until_Date__c <= 2020-12-31 ORDER BY Apttus_Proposal__Valid_Until_Date__c DESC NULLS LAST LIMIT 500", "phrase": "Are the fastpower quotes expiring this year?", "whereClauseFields": [ "Apttus_Proposal__Account__r.Name", "Apttus_Proposal__Proposal_Name__c", "Apttus_Proposal__Valid_Until_Date__c" ], "selectFields": [], "orderByFields": [ "Apttus_Proposal__Valid_Until_Date__c" ], "questionClauseFields": [ "Apttus_Proposal__Valid_Until_Date__c" ], "result": { "object": "Apttus_Proposal__Proposal__c", "records": [ { "Id": "a1X4T000000XyrxUAC", "Apttus_Proposal__Valid_Until_Date__c": "2020-09-30", "match": true }, { "Id": "a1X4T000000XxjUUAS", "Apttus_Proposal__Valid_Until_Date__c": "2019-12-31", "match": false }, { "Id": "a1X4T000000Xxb9UAC", "Apttus_Proposal__Valid_Until_Date__c": "2019-12-31", "match": false } ], "size": 3 }, "explanation": { "mainClause": { "object": "Apttus_Proposal__Proposal__c", "annotation": [ { "subphrase": "'fastpower'", "whereClause": "((Apttus_Proposal__Proposal_Name__c LIKE '%fastpower%' OR Apttus_Proposal__Account__r.Name LIKE '%fastpower%'))", "annotation": "(('Quote Name' contains 'fastpower' OR 'Account' contains 'fastpower'))", "questionClause": false }, { "subphrase": "expiring this year?", "whereClause": "Apttus_Proposal__Valid_Until_Date__c >= 2020-09-17 AND Apttus_Proposal__Valid_Until_Date__c <= 2020-12-31", "annotation": "'Valid Until Date' is more than 2020-09-17 AND 'Valid Until Date' is less than 2020-12-31", "questionClause": true }, { "subphrase": "implicit sort criteria", "whereClause": "Apttus_Proposal__Valid_Until_Date__c DESC NULLS LAST", "annotation": "Sort by valid until date in DESC order", "questionClause": false }, { "subphrase": "record count", "whereClause": "LIMIT 500", "annotation": "Maximum number of records fetched: 500", "questionClause": false } ] } } } } }, "iChronosOptions": { "type": "object", "format": "string", "properties": { "fullNLUResult": { "type": "boolean", "description": "If true, returns the full result (NLU + iChronos results). Otherwise only iChronos results are returned", "format": "boolean", "default": false }, "objectName": { "type": "string", "description": "Table name of the object. This is used to generate template expressions for relative time phrases", "example": "Apttus__APTS_Agreement__c" }, "resolveRelativeReference": { "type": "boolean", "description": "Indicates whether to resolve relative reference expressions to templates", "format": "boolean", "default": true }, "context": { "type": "object", "description": "Any JSON object that will be logged in analytics payload associated with this request. SFDC instanceUrl will be a helpful context setting to pass in." }, "format": { "type": "string", "description": "Date format such as mm/dd/yyyy (where m=month, d=day, y=year)", "default": "yyyy-mm-dd" }, "startOfQuarter": { "type": "string", "default": "01-01-current", "description": "There are a few variations of this <OL> <LI>Current Fiscal Year starts and ends on calendar schedule => No config needed <LI>Current Fiscal Year begins previous calendar year and runs into current year and ends during the calendar year and the next fiscal begins during the calendar year. This is typical. In this case configure the StartOfQuarter as below. An example: <UL> <LI>Current calendar year = 2019, Fiscal Year = 2019 <LI>FY 2019 began 06/15/2018 and ends 06/14/2019 <LI>Q1: 06/15/2018 to 09/14/2018 <LI>Q2: 09/15/2018 to 12/14/2018 <LI>Q3: 12/15/2018 to 03/14/2019 <LI>Q4: 03/15/2019 to 06/14/2019 <LI>startOfQuarter = \"06-15-next\" ← We are telling MAX that the next fiscal year begins on 06/15 during calendar year 2019. With this hint, MAX will automatically compute the current and next fiscal years </UL> <LI>Current Fiscal Year begins in the middle of the calendar year and runs into next year and ends during the next calendar year while the prior fiscal ends during the current calendar year. This is somewhat unsual but possible. In this case configure the StartOfQuarter as below. An example: <UL> <LI>Current calendar year = 2019, Fiscal Year = 2019 <LI>FY 2019 began 06/15/2019 and ends 06/14/2020 <LI>Q1: 06/15/2019 to 09/14/2019 <LI>Q2: 09/15/2019 to 12/14/2019 <LI>Q3: 12/15/2019 to 03/14/2020 <LI>Q4: 03/15/2020 to 06/14/2020 <LI>startOfQuarter = \"06-15-current\" ← We are telling MAX that the current fiscal year begins on 06/15 during the calendar year 2019. With this hint, MAX will automatically compute the current and next fiscal years </UL> <LI>Prior Fiscal Year begins in the middle of the calendar year and runs into next year and ends during the next calendar year. This is very rare and unsual but theoreticallypossible. In this case configure the StartOfQuarter as below. An example: <UL> <LI>Current calendar year = 2019, Fiscal Year = 2018 <LI>FY 2018 began 06/15/2019 and ends 06/14/2020 <LI>Q1: 06/15/2019 to 09/14/2019 <LI>Q2: 09/15/2019 to 12/14/2019 <LI>Q3: 12/15/2019 to 03/14/2020 <LI>Q4: 03/15/2020 to 06/14/2020 <LI>startOfQuarter = \"06-15-prior\" ← We are telling MAX that the prior fiscal year begins on 06/15 during the calendar year 2019. With this hint, MAX will automatically compute the current and next fiscal years </UL> </OL>", "example": "a) 03-15-current (FY20 begins 03-15-2020 and ends 03-14-2021) b) 03-15-next (FY 21 begins on 03-15-2020 and ends 03-14-2021) or c) 01-15-prior (FY 19 begins 03-15-2020 and ends 03-14-2021)" }, "startOfWeek": { "type": "string", "default": "monday", "description": "Weekday that marks the beginning of the week.", "example": "sunday or saturday (any day of the week)" } } }, "dataMap": { "type": "object", "format": "string", "additionalProperties": { "type": "string", "description": "Map of key-value pairs that contains values for keys to be substituted in the templated expression" }, "example": { "Apttus__Contract_Start_Date__c": "2019-10-01", "Apttus__Contract_End_Date__c": "2020-10-01" } }, "searchOptions": { "type": "object", "format": "string", "properties": { "fetchResults": { "type": "boolean", "description": "If true, resolve query and return object Ids matching the query", "format": "boolean", "default": false }, "sessionTreatment": { "type": "string", "description": "'clear' => Clears the session, 'keep-alive' => Does not alter the session, 'terminate' (or any other value) => Terminates the session", "format": "string", "default": "terminate" }, "context": { "type": "object", "description": "Any JSON object that will be logged in analytics payload" } } }, "searchResponseResult": { "type": "object", "properties": { "object": { "type": "string", "description": "Object returned in results" }, "records": { "type": "array", "description": "Object record data", "items": { "$ref": "#/components/schemas/recordData" } }, "size": { "type": "integer", "description": "Number of results" }, "questionClauseMatchSize": { "type": "integer", "description": "Number of question clause matches (if question clause is present)" } }, "example": { "size": 0, "records": {}, "object": "object" } }, "recordData": { "type": "object", "description": "Entity resolution", "properties": { "Id": { "type": "string", "description": "Object ID" }, "field": { "type": "string", "description": "Field name and value in the record" }, "match": { "type": "boolean", "description": "If true, this record matches question clause." } } }, "entityResolutionResultList": { "type": "object", "description": "Entity resolution", "properties": { "values": { "type": "array", "items": { "$ref": "#/components/schemas/entityResolutionResult" } } } }, "entityResolutionResult": { "type": "object", "description": "Explanation of query clause", "properties": { "type": { "type": "string", "description": "Entity type" }, "Mod": { "type": "string", "description": "Modifier" }, "start": { "type": "string", "description": "Start date of time period", "format": "datetime" }, "end": { "type": "string", "description": "End date of time period", "format": "datetime" } } }, "explanationResult": { "type": "object", "description": "Explanation of query", "properties": { "mainClause": { "type": "object", "description": "Main object clause list", "properties": { "object": { "type": "string", "description": "Object returned in results" }, "annotation": { "type": "array", "description": "Annotation of clauses", "items": { "$ref": "#/components/schemas/annotationItem" } } } }, "nestedClause": { "type": "object", "description": "Nested object clause list", "properties": { "object": { "type": "string", "description": "Object returned in results" }, "annotation": { "type": "array", "description": "Annotation of clauses", "items": { "$ref": "#/components/schemas/annotationItem" } } } } } }, "annotationItem": { "type": "object", "description": "Explanation of query clause", "properties": { "subphrase": { "type": "object", "description": "User NL subphrase" }, "whereClause": { "type": "object", "description": "Actual where clause" }, "annotation": { "type": "object", "description": "Annotation of where clause" }, "questionClause": { "type": "boolean", "description": "Is this a question clause?" } } }, "versionResponse": { "type": "object", "description": "Max platform and tenant version info", "properties": { "version": { "type": "string", "description": "Max platform version" }, "buildTime": { "type": "string", "description": "Time the version was built" }, "platformSubroutines": { "type": "string", "description": "Last update time for platform subroutines" }, "platformDialogs": { "type": "string", "description": "Last update time for platform dialogs" }, "platformConversations": { "type": "string", "description": "Last update time for platform conversations" }, "tenantSubroutines": { "type": "string", "description": "Last update time for tenant subroutines" }, "tenantDialogs": { "type": "string", "description": "Last update time for tenant dialogs" }, "tenantConversations": { "type": "string", "description": "Last update time for tenant conversations" }, "tenantConfig": { "type": "string", "description": "Last update time for tenant configuration" } }, "example": { "version": "4.0.0.472", "buildTime": "2020-10-15T02:14:45.000Z (2 hours ago)", "currentTimeUTC": "2020-10-15T05:11:39.527Z (now)", "startTime": "2020-10-15T03:21:12.910Z (1 hours ago)", "platformConversations": "2020-10-15T03:21:23.664Z (1 hours ago)", "platformDialogs": "2020-10-15T03:19:56.994Z (1 hours ago)", "platformSubroutines": "2020-10-15T03:20:42.958Z (1 hours ago)", "tenant": "ApttusSFDC", "tenantDialogs": "2020-10-15T03:21:13.598Z (1 hours ago)", "tenantConversations": "2020-10-15T03:21:13.598Z (1 hours ago)", "tenantSubroutines": "2020-10-15T03:21:37.994Z (1 hours ago)", "tenantConfig": "2020-10-15T03:21:05.678Z (1 hours ago)", "env": "Azure_qa" } } }, "securitySchemes": { "BearerAuth": { "type": "apiKey", "name": "Authorization", "in": "header" }, "APIKeyAuth": { "type": "apiKey", "name": "X-API-Key", "in": "header" } } } }