分享方式:


無程式代碼連接器平臺的 RestApiPoller 資料連接器參考

RestApiPoller若要使用無程式代碼連接器平臺建立數據連接器(CCP),請使用此參考做為 Data Connectors 檔Microsoft Sentinel REST API 的補充

每個 dataConnector 都代表Microsoft Sentinel 數據連接器的特定 連線 。 一個數據連接器可能會有多個連線,可從不同的端點擷取數據。 使用此參考檔建置的 JSON 組態可用來完成 CCP 數據連接器的部署範本。

如需詳細資訊,請參閱為 Microsoft Sentinel 建立無程式碼連接器

數據連接器 - 建立或更新

參考 REST API 檔中的建立或更新作業,以尋找最新的穩定或預覽 API 版本。 建立和更新作業之間的差異在於更新需要 etag 值。

PUT 方法

https://management.azure.com/subscriptions/{{subscriptionId}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.OperationalInsights/workspaces/{{workspaceName}}/providers/Microsoft.SecurityInsights/dataConnectors/{{dataConnectorId}}?api-version={{apiVersion}}

URI 參數

如需最新 API 版本的詳細資訊,請參閱 數據連接器 - 建立或更新 URI 參數

名稱 描述
dataConnectorId 數據連接器標識碼必須是唯一的名稱,而且與name要求主體中的 參數相同。
resourceGroupName 資源群組的名稱,不區分大小寫。
subscriptionId 目標訂用帳戶的標識碼。
workspaceName 工作區 的名稱 ,而非標識符。
Regex 模式: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$
api-version 用於此作業的 API 版本。

要求本文

CCP 資料連接器的要求本文 RestApiPoller 具有下列結構:

{
   "name": "{{dataConnectorId}}",
   "kind": "RestApiPoller",
   "etag": "",
   "properties": {
        "connectorDefinitionName": "",
        "auth": {},
        "request": {},
        "response": {},
        "paging": "",
        "dcrConfig": ""
   }
}

RestApiPoller

RestApiPoller 代表 API Poller CCP 數據連接器,您可以在其中自定義數據源的分頁、授權和要求/回應承載。

名稱 必要 類型​ Description
name True 字串 符合 URI 參數之連線的唯一名稱
種類 True 字串 必須是 RestApiPoller
etag GUID 保留空白以建立新的連接器。 針對更新作業,etag 必須符合現有連接器的 etag (GUID)。
properties.connectorDefinitionName 字串 定義數據連接器 UI 組態的 DataConnectorDefinition 資源名稱。 如需詳細資訊,請參閱 數據連接器定義
性能。認證 True 巢狀 JSON 描述用於輪詢資料的驗證屬性。 如需詳細資訊,請參閱 驗證組態
性能。請求 True 巢狀 JSON 描述用於輪詢資料的要求承載,例如 API 端點。 如需詳細資訊,請參閱要求設定
性能。回應 True 巢狀 JSON 描述輪詢資料時從 API 傳回的回應物件和巢狀訊息。 如需詳細資訊,請參閱回應設定
性能。尋呼 巢狀 JSON 描述輪詢資料時的分頁承載。 如需詳細資訊,請參閱分頁設定
性能。dcrConfig 巢狀 JSON 將數據傳送至數據收集規則時的必要參數(DCR)。 如需詳細資訊,請參閱 DCR 組態

驗證設定

CCP 支援下列驗證類型:

注意

CCP OAuth2 實作不支援客戶端憑證認證。

最佳做法是在驗證區段中使用參數,而不是硬式編碼認證。 如需詳細資訊,請參閱 保護機密輸入

若要建立也會使用參數的部署範本,您必須在本節中逸出參數,並額外啟動 [。 這可讓參數根據使用者與連接器的互動來指派值。 如需詳細資訊,請參閱範本運算式逸出字元

若要啟用要從 UI 輸入的認證,區 connectorUIConfig 段需要 instructions 具有所需的參數。 如需詳細資訊,請參閱 無程式代碼連接器平臺的數據連接器定義參考。

基本驗證

欄位 必要 類型
UserName True 字串
密碼 True 字串

使用 中 connectorUIconfig定義的參數進行基本身份驗證範例:

"auth": {
    "type": "Basic",
    "UserName": "[[parameters('username')]",
    "Password": "[[parameters('password')]"
}

APIKey

欄位 必要 類型​ 描述 預設值
ApiKey True 字串 使用者秘密金鑰
ApiKeyName 字串 包含 ApiKey 值的 URI 標頭名稱 Authorization
ApiKeyIdentifier 字串 要加上標記的字串值 token
IsApiKeyInPostPayload boolean 在POST主體中傳送秘密,而不是標頭 false

APIKey 驗證範例:

"auth": {
    "type": "APIKey",
    "ApiKey": "[[parameters('apikey')]",
    "ApiKeyName": "X-MyApp-Auth-Header",
    "ApiKeyIdentifier": "Bearer"
}

此範例會產生下列標頭中傳送的使用者輸入所定義的秘密: X-MyApp-Auth-Header:Bearer apikey

"auth": { 
    "type": "APIKey",
    "ApiKey": "123123123",
}

此範例會使用預設值,併產生下列標頭: 授權:令牌123123123

"auth": { 
    "type": "APIKey",
    "ApiKey": "123123123",
    "ApiKeyName": ""
}

ApiKeyName由於 已明確設定為 "",因此結果是下列標頭:Authorization:123123123

OAuth2

無程式代碼連接器平台支援 OAuth 2.0 授權碼授與和客戶端認證。 機密和公用用戶端會使用授權碼授與類型來交換存取權杖的授權碼。 在使用者透過重新導向 URL 返回用戶端之後,應用程式會從 URL 取得授權碼,並使用此授權碼來要求存取權杖。

欄位 必要 類型​ 描述
ClientId True String 用戶端識別碼
ClientSecret True String 用戶端密碼
AuthorizationCode 當 grantType = 時為 True authorization_code String 如果授與類型是 authorization_code 這個域值,則為從驗證服務傳回的授權碼。
Scope True 表示授與 authorization_code 類型
授與 client_credentials 類型的選擇性
String 使用者同意範圍的空間分隔清單。 如需詳細資訊,請參閱 OAuth2 範圍和許可權
RedirectUri 當 grantType = 時為 True authorization_code String 重新導向的 URL 必須是 https://portal.azure.com/TokenAuthorize/ExtensionName/Microsoft_Azure_Security_Insights
GrantType True String authorization_codeclient_credentials
TokenEndpoint True String URL,以授與中有效的令牌 authorization_code 交換程式碼,或以授與中有效令牌 client_credentials 的用戶端標識碼和秘密交換程式碼。
TokenEndpointHeaders Object 選擇性索引鍵值物件,用來將自定義標頭傳送至令牌伺服器
TokenEndpointQueryParameters Object 選擇性索引鍵值物件,以將自定義查詢參數傳送至令牌伺服器
AuthorizationEndpoint True String 流程的使用者同意 authorization_code URL
AuthorizationEndpointHeaders Object 選擇性索引鍵值物件,用來將自定義標頭傳送至驗證伺服器
AuthorizationEndpointQueryParameters Object OAuth2 授權碼流程要求中使用的選擇性密鑰值組

驗證程式代碼流程是代表使用者的許可權擷取數據,而客戶端認證則是用來擷取具有應用程式許可權的數據。 數據伺服器會授與應用程式的存取權。 由於客戶端認證流程中沒有任何使用者,因此不需要授權端點,只需要令牌端點。

範例:OAuth2 authorization_code 授與類型

"auth": {
    "type": "OAuth2",
    "ClientId": "[[parameters('appId')]",
    "ClientSecret": "[[parameters('appSecret')]",
    "tokenEndpoint": "https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/token",
    "authorizationEndpoint": "https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/authorize",
    "authorizationEndpointHeaders": {},
    "authorizationEndpointQueryParameters": {
        "prompt": "consent"
    },
    "redirectUri": "https://portal.azure.com/TokenAuthorize/ExtensionName/Microsoft_Azure_Security_Insights",
    "tokenEndpointHeaders": {
        "Accept": "application/json",
        "Content-Type": "application/x-www-form-urlencoded"
    },
    "TokenEndpointQueryParameters": {},
    "scope": "openid offline_access some_scope",
    "grantType": "authorization_code"
}

範例:OAuth2 client_credentials 授與類型

"auth": {
    "type": "OAuth2",
    "ClientId": "[[parameters('appId')]",
    "ClientSecret": "[[parameters('appSecret')]",
    "tokenEndpoint": "https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/token",
    "tokenEndpointHeaders": {
        "Accept": "application/json",
        "Content-Type": "application/x-www-form-urlencoded"
    },
    "TokenEndpointQueryParameters": {},
    "scope": "openid offline_access some_scope",
    "grantType": "client_credentials"
}

Jwt

範例:JSON Web 令牌 (JWT)

"auth": {
    "type": "JwtToken",
    "userName": {
        "key":"username",
        "value":"[[parameters('UserName')]"
    },
    "password": {
        "key":"password",
        "value":"[[parameters('Password')]"
    },
    "TokenEndpoint": {"https://token_endpoint.contoso.com"},
    "IsJsonRequest": true
}

要求設定

要求區段會定義 CCP 數據連接器如何將要求傳送至您的數據源,例如 API 端點,以及輪詢該端點的頻率。

欄位 必要 類型​ 描述
ApiEndpoint True String 遠端伺服器的 URL。 定義要從中提取資料的端點。
RateLimitQPS 整數 定義一秒內允許的呼叫或查詢數目。
QueryWindowInMin 整數 以分鐘為單位定義可用的查詢視窗。 最小值為1分鐘。 預設值為 5 分鐘。
HttpMethod String 定義 API 方法: GET(預設值) 或 POST
QueryTimeFormat String 定義端點 (遠端伺服器) 預期的日期和時間格式。 CCP 會使用目前日期和時間,無論使用這個變數。 可能的值為常數: UnixTimestampUnixTimestampInMills 或任何其他有效的日期時間表示法,例如: yyyy-MM-ddMM/dd/yyyy HH:mm:ss
預設值為 ISO 8601 UTC
RetryCount 整數 (1...6) 1定義以6重試允許從失敗復原的重試。 預設值為 3
TimeoutInSeconds 整數 (1...180) 定義要求逾時,以秒為單位。 預設為 20
IsPostPayloadJson 布林值 判斷 POST 承載是否採取 JSON 格式。 預設為 false
標題 Object 定義要求標頭的索引鍵值組。
QueryParameters Object 定義要求查詢參數的索引鍵值組。
StartTimeAttributeName 設定時 EndTimeAttributeName 為 True String 定義查詢開始時間的查詢參數名稱。 請參閱 範例
EndTimeAttributeName 設定時 StartTimeAttributeName 為 True String 定義查詢結束時間的查詢參數名稱。
QueryTimeIntervalAttributeName String 如果端點需要特殊格式來查詢時間範圍內的數據,請搭配 QueryTimeIntervalPrependQueryTimeIntervalDelimiter 參數使用這個屬性。 請參閱 範例
QueryTimeIntervalPrepend 設定時 QueryTimeIntervalAttributeName 為 True String 請參閱QueryTimeIntervalAttributeName
QueryTimeIntervalDelimiter 設定時 QueryTimeIntervalAttributeName 為 True String 請參閱QueryTimeIntervalAttributeName
QueryParametersTemplate String 在進階案例中傳遞參數時要使用的查詢範本。
br>例如: "queryParametersTemplate": "{'cid': 1234567, 'cmd': 'reporting', 'format': 'siem', 'data': { 'from': '{_QueryWindowStartTime}', 'to': '{_QueryWindowEndTime}'}, '{_APIKeyName}': '{_APIKey}'}"

當 API 需要複雜的參數時,請使用 queryParametersqueryParametersTemplate ,其中包含一些內建變數。

內建變數 用於 queryParameters 用於 queryParametersTemplate
_QueryWindowStartTime
_QueryWindowEndTime
_APIKeyName
_APIKey

StartTimeAttributeName 範例

請考慮此範例:

  • StartTimeAttributeName = from
  • EndTimeAttributeName = until
  • ApiEndpoint = https://www.example.com

傳送至遠端伺服器的查詢如下: https://www.example.com?from={QueryTimeFormat}&until={QueryTimeFormat + QueryWindowInMin}

QueryTimeIntervalAttributeName 範例

請考慮此範例:

  • QueryTimeIntervalAttributeName = interval
  • QueryTimeIntervalPrepend = time:
  • QueryTimeIntervalDelimiter = ..
  • ApiEndpoint = https://www.example.com

傳送至遠端伺服器的查詢如下: https://www.example.com?interval=time:{QueryTimeFormat}..{QueryTimeFormat + QueryWindowInMin}

使用 Microsoft Graph 作為數據源 API 的要求範例

此範例會使用篩選查詢參數來查詢訊息。 如需詳細資訊,請參閱 Microsoft圖形 API 查詢參數

"request": {
  "apiEndpoint": "https://graph.microsoft.com/v1.0/me/messages",
  "httpMethod": "Get",
  "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
  "queryWindowInMin": 10,
  "retryCount": 3,
  "rateLimitQPS": 20,
  "headers": {
    "Accept": "application/json",
    "User-Agent": "Example-app-agent"
  },
  "QueryTimeIntervalAttributeName": "filter",
  "QueryTimeIntervalPrepend": "receivedDateTime gt ",
  "QueryTimeIntervalDelimiter": " and receivedDateTime lt "
}

上一個範例會將 GET 要求傳送至 https://graph.microsoft.com/v1.0/me/messages?filter=receivedDateTime gt {time of request} and receivedDateTime lt 2019-09-01T17:00:00.0000000。 時間戳會每次 queryWindowInMin 更新。

此範例會達成相同的結果:

"request": {
  "apiEndpoint": "https://graph.microsoft.com/v1.0/me/messages",
  "httpMethod": "Get",
  "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
  "queryWindowInMin": 10,
  "retryCount": 3,
  "rateLimitQPS": 20,
  "headers": {
    "Accept": "application/json",
  },
  "queryParameters": {
    "filter": "receivedDateTime gt {_QueryWindowStartTime} and receivedDateTime lt {_QueryWindowEndTime}"
  }
}

另一個選項是數據源預期有 2 個查詢參數,一個用於開始時間和一個用於結束時間。

範例:

"request": {
  "apiEndpoint": "https://graph.microsoft.com/v1.0/me/calendarView",
  "httpMethod": "Get",
  "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
  "queryWindowInMin": 10,
  "retryCount": 3,
  "rateLimitQPS": 20,
  "headers": {
    "Accept": "application/json",
  },
  "StartTimeAttributeName": "startDateTime",
  "EndTimeAttributeName": "endDateTime",
}

這會將要求傳送 GEThttps://graph.microsoft.com/me/calendarView?startDateTime=2019-09-01T09:00:00.0000000&endDateTime=2019-09-01T17:00:00.0000000

針對複雜的查詢,請使用 QueryParametersTemplate。 下一個範例會在 POST 本文中傳送具有參數的要求。

範例:

request: {
  "apiEndpoint": "https://graph.microsoft.com/v1.0/me/messages",
  "httpMethod": "POST",
  "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
  "queryWindowInMin": 10,
  "retryCount": 3,
  "rateLimitQPS": 20,
  "headers": {
    "Accept": "application/json",
  },
  "isPostPayloadJson": true,
  "queryParametersTemplate": "{\"query":"TableName | where createdTimestamp between (datetime({_QueryWindowStartTime}) .. datetime({_QueryWindowEndTime}))\"}"
}

回應設定

使用下列參數定義資料連接器的回應處理:

欄位 必要 類型​ 描述
EventsJsonPaths True 字串清單 定義回應 JSON 中訊息的路徑。 JSON 路徑運算式會指定 JSON 結構中一個元素或一組元素的路徑
SuccessStatusJsonPath String 定義回應 JSON 中成功訊息的路徑。 定義此參數時, SuccessStatusValue 也應該定義 參數。
SuccessStatusValue String 定義回應 JSON 中成功訊息值的路徑
IsGzipCompressed 布林值 判斷回應是否壓縮在 gzip 檔案中
format True String jsoncsvxml
CompressionAlgo String 壓縮演算法,或 multi-gzip deflate。 針對 gzip 壓縮演算法,只要設定 IsGzipCompressedTrue ,而不是設定此參數的值即可。
CsvDelimiter String 如果回應格式為 CSV,而且您想要變更 的預設 CSV 分隔符 ","
HasCsvBoundary 布林值 指出 CSV 數據是否有界限
HasCsvHeader 布林值 指出 CSV 數據是否有標頭,預設值為 True
CsvEscape String 欄位界限的逸出字元,預設值為 "

例如,具有標頭 id,name,avg 的 CSV 和包含空格的數據列,例如 1,"my name",5.5 需要 " 字段界限。
ConvertChildPropertiesToArray 布林值 特殊情況下,遠端伺服器會傳回 物件,而不是事件清單,其中每個屬性都有其中的數據。

注意

CSV 格式類型是由 RFC4180 規格剖析。

回應組態範例

預期會有 JSON 格式的伺服器回應,且屬性值中有要求的數據。 只有在值為 success時,回應屬性狀態才會指出擷取數據。

"response": {
  "EventsJsonPaths ": ["$.value"],
  "format": "json",
  "SuccessStatusJsonPath": "$.status",
  "SuccessStatusValue": "success",
  "IsGzipCompressed: true
 }

此範例中預期的回應會針對沒有標頭的 CSV 進行準備。

"response": {
  "EventsJsonPaths ": ["$"],
  "format": "csv",
  "HasCsvHeader": false
 }

分頁設定

當數據源無法一次傳送整個響應承載時,CCP 數據連接器必須知道如何在回應 頁面中接收部分數據。 要從選擇的分頁類型包括:

分頁類型 決策因素
API 回應是否有下一頁和上一頁的連結?
API 回應是否有下一頁和上一頁的令牌或數據指標?
API 回應是否支持參數,以便分頁時要略過的物件數目?

設定 LinkHeader 或 PersistentLinkHeader

最常見的分頁類型是伺服器數據源 API 提供下一頁和先前數據頁的 URL 時。 如需連結標頭規格的詳細資訊,請參閱 RFC 5988

LinkHeader 分頁表示 API 回應包括:

  • Link HTTP 回應標頭
  • 或 JSON 路徑,可從回應本文擷取連結。

PersistentLinkHeader 分頁的屬性與 相同 LinkHeader,但鏈接標頭會保存在後端記憶體中。 這個選項可跨查詢視窗啟用分頁連結。 例如,某些 API 不支援查詢開始時間或結束時間。 相反地,它們支援伺服器端 數據指標。 持續性頁面類型可用來記住伺服器端 數據指標。 如需詳細資訊,請參閱 什麼是數據指標?

注意

只有一個查詢會針對具有 PersistentLinkHeader 的連接器執行,以避免伺服器端 數據指標上的競爭狀況。 這可能會影響延遲。

欄位 必要 類型​ 描述
LinkHeaderTokenJsonPath False String 使用這個屬性來指出在回應本文中取得值的位置。

例如,如果數據源傳回下列 JSON: { nextPage: "foo", value: [{data}]}LinkHeaderTokenJsonPath$.nextPage
PageSize False 整數 每個頁面的事件數
PageSizeParameterName False String 頁面大小的查詢參數名稱

以下列出一些範例:

Paging: {
  "pagingType": "LinkHeader",
  "linkHeaderTokenJsonPath" : "$.metadata.links.next"
}
Paging: {
 "pagingType" : "PersistentLinkHeader", 
 "pageSizeParameterName" : "limit", 
 "pageSize" : 500 
}

設定 NextPageUrl

NextPageUrl 分頁表示 API 回應包含類似 LinkHeader之響應主體中的複雜連結,但 URL 會包含在回應本文中,而不是標頭。

欄位 必要 類型​ 描述
PageSize False 整數 每個頁面的事件數
PageSizeParameterName False String 頁面大小的查詢參數名稱
NextPageUrl False String 只有當連接器適用於 Coralogix API 時
NextPageUrlQueryParameters False 物件索引鍵值組 – 將自定義查詢參數新增至下一頁的每個要求
NextPageParaName False String 決定要求中的「下一頁」名稱。
HasNextFlagJsonPath False String 定義 HasNextPage 旗標屬性的路徑
NextPageRequestHeader False String 決定要求中的「下一頁」標頭名稱。
NextPageUrlQueryParametersTemplate False String 只有當連接器適用於 Coralogix API 時

範例:

Paging: {
 "pagingType" : "NextPageUrl", 
  "nextPageTokenJsonPath" : "$.data.repository.pageInfo.endCursor", 
  "hasNextFlagJsonPath" : "$.data.repository.pageInfo.hasNextPage", 
  "nextPageUrl" : "https://api.github.com/graphql", 
  "nextPageUrlQueryParametersTemplate" : "{'query':'query{repository(owner:\"xyz\")}" 
}

設定 NextPageToken 或 PersistentToken

NextPageToken 分頁會使用代表目前頁面狀態的令牌(哈希或游標)。 令牌包含在 API 回應中,用戶端會將令牌附加至下一個要求以擷取下一頁。 當伺服器需要維護要求之間的確切狀態時,通常會使用此方法。

PersistentToken 分頁會使用保存伺服器端的令牌。 伺服器會記住用戶端擷取的最後一個令牌,並在後續要求中提供下一個令牌。 即使用戶端稍後提出新的要求,用戶端仍會繼續離開該用戶端。

欄位 必要 類型​ 描述
PageSize False 整數 每個頁面的事件數
PageSizeParameterName False 字串 頁面大小的查詢參數名稱
NextPageTokenJsonPath False 字串 回應本文中下一頁令牌的 JSON 路徑。
NextPageTokenResponseHeader False 字串 如果 NextPageTokenJsonPath 是空的,請使用令牌位於下一頁的這個標頭名稱中。
NextPageParaName False 字串 決定要求中的「下一頁」名稱。
HasNextFlagJsonPath False 字串 在判斷回應中是否剩下更多頁面時,定義 HasNextPage 旗標屬性的路徑
NextPageRequestHeader False 字串 決定要求中的「下一頁」標頭名稱。

範例:

Paging: {
 "pagingType" : "NextPageToken", 
 "nextPageRequestHeader" : "ETag", 
 "nextPageTokenResponseHeader" : "ETag" 
}
Paging: {
 "pagingType" : "PersistentToken", 
    "nextPageParaName" : "gta", 
    "nextPageTokenJsonPath" : "$.alerts[-1:]._id" 
}

設定 Offset

Offset 分頁會指定要略過的頁數,以及要求中每個頁面要擷取的事件數目限制。 用戶端會從數據集擷取特定範圍的專案。

欄位 必要 類型​ 描述
PageSize False 整數 每個頁面的事件數
PageSizeParameterName False String 頁面大小的查詢參數名稱
OffsetParaName False String 下一個要求查詢參數名稱。 CCP 會計算每個要求的位移值(所有擷取的事件 + 1)

範例:

Paging: {
   
       "pagingType": "Offset", 
        "offsetParaName": "offset" 
 }

DCR 組態

欄位 必要 類型​ 描述
DataCollectionEndpoint True String DCE (資料收集端點)例如: https://example.ingest.monitor.azure.com
DataCollectionRuleImmutableId True String DCR 不可變標識碼。 檢視 DCR 建立回應或使用 DCR API 來尋找它
StreamName True 字串 此值是 streamDeclaration DCR 中定義的 (前置詞開頭必須是 Custom-

CCP 資料連接器範例

以下是 CCP 資料連接器 JSON 的所有元件範例。

{
   "kind": "RestApiPoller",
   "properties": {
      "connectorDefinitionName": "ConnectorDefinitionExample",
      "dcrConfig": {
           "streamName": "Custom-ExampleConnectorInput",
           "dataCollectionEndpoint": "https://example-dce-sbsr.location.ingest.monitor.azure.com",
           "dataCollectionRuleImmutableId": "dcr-32_character_hexadecimal_id"
            },
      "dataType": "ExampleLogs",
      "auth": {
         "type": "Basic",
         "password": "[[parameters('username')]",
         "userName": "[[parameters('password')]"
      },
      "request": {
         "apiEndpoint": "https://rest.contoso.com/example",
         "rateLimitQPS": 10,
         "queryWindowInMin": 5,
         "httpMethod": "GET",
         "queryTimeFormat": "UnixTimestamp",
         "startTimeAttributeName": "t0",
         "endTimeAttributeName": "t1",
         "retryCount": 3,
         "timeoutInSeconds": 60,
         "headers": {
            "Accept": "application/json",
            "User-Agent": "Example-app-agent"
         } 
      },
      "paging": {
         "pagingType": "LinkHeader"
      },
      "response": {
         "eventsJsonPaths": ["$"]
      }
   }
}