KSC Open API
Kaspersky Security Center API description
|
KSC Open API is a http interface to KSC server management
Each message is transmitted over HTTP in JSON format. Messages are divided into requests and responses. The client application sends the server requests and receives responses. Connection is established with the server and the client doesn't close it throughout the work with the server. Each connection supports only synchronous calls, that is, the client may not send a request to the server while has not yet received an answer from the previous request on the same connection.
Each request contains the name and arguments of KSC method. To make a request the client uses HTTP POST method.
POST /api/v1.0/TestInterface.ScMethod1 HTTP/1.1 Content-Type: application/json Content-Length: 56 Accept-Encoding: gzip, deflate
{ "arg1":"value1" }
{ "arg1":"value2", "arg2":43 }
{ }
The KSC server sends a HTTP response with body contains results in JSON format.
{ "PxgRetVal": 15, "OutVar1": "value1", "OutVar2": "value2" }
{ "PxgRetVal": "abc" }
{ }
PxgError (params) Container with error description +---code (paramInt) Error code +---subcode (paramInt) Error subcode (since Kaspersky Security Center version 12.2) +---module (paramString) Binary module name +---file (paramString) Source file name +---line (paramInt) Line number where exception occurs +---message (paramString) Not localized error message +---locdata (paramParams) Container which contains localized information about error, optional +---format-id (paramInt) Localization format string id +---format (paramString) Localization format string, may contain templates: %1, %2 ... +---locmodule (paramString) Localized module name +---args (paramArray) Array of strings with type paramString which contains values to templates from format field
JSON objects examples:
{ "PxgError": { "code": 1681, "module": "KLFT", "file": "kca/ft/filetransferimp.cpp", "line": 1234, "message": "File not found. File name - 'JobId-5771bdab-dfdd-4e6a-ad52-536ef095813f'." } }
KlAkOAPI Python package offers high-level implementation of client-side KLOAPI protocol in Python. With KlAkOAPI Python package calls to KSC server are performed as calls for methods of provided classes. Some samples in Python are provided beneath.
KLOAPI type | JSON presentation | Description | Value format |
---|---|---|---|
int | JSON number/null | Signed 32-bit integer | As is, example: 1234 |
unsignedInt | JSON number/null | Unsigned 32-bit integer | As is, example: 1234 |
long | JSON number/null | Signed 64-bit integer | As is, example: 1234 |
unsignedLong | JSON number/null | Unsigned 64-bit integer | As is, example: 1234 |
wstring | JSON string/null | Wide character string | String encoded by UTF-8. Double quotes contained in the string must be escaped by backslash, example: "Some text with \"double quotes\" must be like this" |
boolean | JSON boolean/null | Boolean type | Takes one of two values: true or false |
datetime | JSON string/null | Time in UTC | Represented as string in format "YYYY-MM-DDTHH:MM:SSZ". Example:"2016-09-19T15:22:35Z" |
double | JSON number/null | Real number with double precision | As is, example: 1.23 |
float | JSON number/null | Real number | As is, example: 1.23 |
binary | JSON string/null | Binary data | Data must be encoded in base64 and represented as string. Example:"c29tZXRleHQ=" |
array | JSON array/null | Ordered collection of different types of values | May contain elements of the following types: null, paramString, paramBool, paramInt, paramLong, paramDateTime, paramDate, paramBinary, paramFloat, paramDouble, paramArray, paramParams. Example: [{"type": "date", "value": "2016-09-19"}, {"type": "datetime", "value": "2016-09-19T15:22:35Z"}] |
params | JSON object/null | Universal container | Each item of container contains a pair of "name":"value", where "value" can be one of the following types: paramString, paramBool, paramInt, paramLong, paramDateTime, paramDate, paramBinary, paramFloat, paramDouble, paramArray, paramParams. Example: {"var1": 23, "var2": "str12", "var3": {"type": "date", "value": "2016-09-19"}}
|
KLOAPI type | JSON presentation | Description | Value format |
---|---|---|---|
paramString | JSON string | Wide character string | string encoded by UTF-8. Double quotes contained in the string must be escaped by backslash, example: "Some text with \"double quotes\" must be like this" |
paramBool | JSON boolean | Boolean type | Takes one of two values: true or false |
paramInt | JSON number | Signed 32-bit integer | As is, example: 1234 |
paramLong | JSON object | Signed 64-bit integer | Contains two fields: the field "type" with a value of "long" and the field "value" with a value represented as signed 64-bit integer. Example:{"type": "long", "value": 13} |
paramDateTime | JSON object | Time in UTC | Contains two fields: the field "type" with a value of "datetime" and the field "value" with a value represented as string in format "YYYY-MM-DDTHH:MM:SSZ". Example:{"type": "datetime", "value": "2016-09-19T15:22:35Z"} |
paramDate | JSON object | Date in format "YYYY-MM-DD" | Contains two fields: the field "type" with a value of "date" and the field "value" with a value represented as string in format "YYYY-MM-DD". Example:{"type": "date", "value": "2016-09-19"} |
paramBinary | JSON object | Binary data | Contains two fields: the field "type" with a value of "binary" and the field "value" with a value represented as string with base64 encoded binary data. Example:{"type": "binary", "value": "c29tZXRleHQ="} |
paramFloat | JSON object | Real number | Contains two fields: the field "type" with a value of "float" and the field "value" with a value represented as real number. Example:{"type": "float", "value": 1.23} |
paramDouble | JSON object | Real number with double precision | Contains two fields: the field "type" with a value of "double" and the field "value" with a value represented as real number with double precision. Example:{"type": "double", "value": 1.23} |
paramArray | JSON array | Ordered collection of different types of values | May contains elements of the following types:null, paramString, paramBool, paramInt, paramLong, paramDateTime, paramDate, paramBinary, paramFloat, paramDouble, paramArray, paramParams. Example:[{"type": "date", "value": "2016-09-19"}, {"type": "datetime", "value": "2016-09-19T15:22:35Z"}] |
paramParams | JSON object | Universal container | Contains two fields: the field "type" with a value of "params" and the field "value" with a value represented as container (or null if container is empty) with pairs of "name":"value", where "value" can be one of the following types: paramString, paramBool, paramInt, paramLong, paramDateTime, paramDate, paramBinary, paramFloat, paramDouble, paramArray, paramParams. Example:{"type": "params", "value": {"var1": 23, "var2": "str12", "var3": {"type": "date", "value": "2016-09-19"}}}
|
Client may choose one of two ways of authentication: either authenticate a TCP connection, and all requests made on this connection will be authenticated, or create an authenticated session and provide session id with each call. These methods may not be used simultaneously on same TCP connection.
To authenticate a connection client should use "login" method as a first call on the connection. The authentication information is sent in the HTTP "Authorization" header in the format described in RFC2617, RFC2616, RFC2047.
Name of the virtual server is sent as UTF-8 string encoded by Base64 in the header "X-KSC-VServer".
Method "login" doesn't have any input parameters so request body must contain an empty JSON object '{}'.
Typical responses are:
To create a session client must call method Session.StartSession. Authentication information, as with "login" method, is provided in Authorization header.
Name of the virtual server is sent as UTF-8 string encoded by Base64 in the header "X-KSC-VServer".
If authentication was successful, server replies with 200 status code and provides session id in response:
POST /api/v1.0/Session.StartSession HTTP/1.1 Accept-Encoding: gzip, deflate Authorization: KSCBasic user="0LvQvtCz0LjQvQ==", pass="0L/QsNGA0L7Qu9GM", internal="0" Content-Type: application/json Content-Length: 2 {} HTTP/1.1 200 OK Transfer-Encoding: chunked Content-Length: 41 {"PxgRetVal":"n4QFPNjYK2oXRMYkis5CMcg=="}
Typical responses are:
POST /api/v1.0/HostGroup.GetStaticInfo HTTP/1.1 Content-Type: application/json Transfer-Encoding: chunked X-KSC-Session: n4QFPNjYK2oXRMYkis5CMcg== Content-Length: 16 {"pValues":null}
Authenticated session id is not bound to any TCP connection and calls within opened session may be done on any connection, except that gateway calls may not overlap.
Client must call Session.EndSession method to close authenticated session.
Sessions have limited life time, and may expire after several hours of timeout or several minutes of inactive timeout.
Following authentication methods supported:
POST /api/v1.0/login HTTP/1.1 Authorization: KSCBasic user="0LvQvtCz0LjQvQ==", pass="0L/QsNGA0L7Qu9GM", internal="0" Content-Type: application/json X-KSC-VServer: 0LLQuNGA0YLRgdC10YDQstC1MQ== Content-Length: 2 {}
# main server connection: server_main = KlAkOAPI.AdmServer.KlAkAdmServer.Create('https://ksc.example.com', 'username', 'password', verify = False) # virtual server connection: server_vs1 = KlAkOAPI.AdmServer.KlAkAdmServer.Create('https://ksc.example.com', 'username', 'password', verify = False, vserver = 'vs1')
POST /api/v1.0/login HTTP/1.1 Authorization: NTLM TlRM.... Content-Length: 0 HTTP/1.1 401 Unauthorized Content-Length: 27 Content-Type: text/plain WWW-Authenticate: NTLM TlRM.... Authentication not finished POST /api/v1.0/login HTTP/1.1 Authorization: NTLM TlRM.... Content-Length: 0 HTTP/1.1 200 OK Content-Length: 0
POST /api/v1.0/login HTTP/1.1 Authorization: Negotiate YY..... Content-Length: 0 HTTP/1.1 200 OK Content-Length: 27 Content-Type: text/plain
POST /api/v1.0/gssprobe HTTP/1.1 Content-Length: 0 HTTP/1.1 401 Unauthorized Content-Length: 23 Content-Type: text/plain WWW-Authenticate: Negotiate WWW-Authenticate: NTLM WWW-Authenticate: KSCBasic Authentication required
POST /api/v1.0/login HTTP/1.1
Authorization: KSCMFA totp="499754"
Content-Length: 0
POST /api/v1.0/login HTTP/1.1 Authorization: KSCT bHNsZmlIU0pTRkxsc2xzbGRm Content-Type: application/json Content-Length: 2 {}
POST /api/v1.0/login HTTP/1.1 Authorization: KSCWT ZXlKaGJHY2lPaUpJVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0o5LmV5SnBaQ0k2SWpFeU16UTFOamM0T1RBaWZRLlRuMEdhSEtoQVpaQjlZM2Zad1A0UURHLXl2alVYTXgzZHpBYkxLakNYOU0= Content-Type: application/json Content-Length: 2 {}
KSCNT {"AuthType": "AdfsAuthCode", "AdfsAuthCode": "AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq", "AdfsClientId": "Client Id", "WorkspaceId": "hostedinst_0207132feccc4cba834d76518cdc5005", "UserSessionId": "4adee13b-0b25-4956-b74e-57fbd6baef24", "UserSessionState": "076D0A24AE082858740E13FE1E5F7BA5", "AdfsIssuer": "http://localhost:63076/adfs"}
POST /api/v1.0/login HTTP/1.1 Authorization: KSCNT ZXlKaGJHY2lPaUpJVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0o5LmV5SnBaQ0k2SWpFeU16UTFOamM0T1RBaWZRLlRuMEdhSEtoQVpaQjlZM2Zad1A0UURHLXl2alVYTXgzZHpBYkxLakNYOU0= Content-Type: application/json Content-Length: 2 {}
POST /api/v1.0/login HTTP/1.1 Authorization: KSCGW YmpMYmI4cEFkTktlQ3NLcmpueUcwMA== Content-Type: application/json Content-Length: 2 {}
Typical error codes are:
Files download is performed using HTTP GET and HEAD methods.
GET /RESOURCE_PREFIX/path/file HTTP/1.1
See Some typical values for RESOURCE_PREFIX
Download may be performed on same connection where POST methods are called.
Authentication should be performed prior to starting files download.
Analyzed request headers:
Sent response headers which are required to be analyzed:
File download request example:
GET /PRFX/Some/test/file HTTP/1.1 Accept-Encoding: identity Range: bytes=0-99
Response example:
HTTP/1.1 206 Partial Content Content-Length: 3 Content-Range: bytes=0-2/1024 Content-Type: application/octet-stream XYZ
In KlAkOAPI Python package details of implementation are hidden in a high-level method DownloadFile:
server = KlAkOAPI.AdmServer.KlAkAdmServer.Create(...) ... server.DownloadFile('/FTSF/klsctunnel', './klsctunnel.exe')
Files upload is performed using HTTP PUT method.
PUT /RESOURCE_PREFIX/path/file HTTP/1.1
See Some typical values for RESOURCE_PREFIX
Upload may be performed on same connection where POST methods are called.
Authentication should be performed prior to starting files upload.
In order to upload file client should prepare request and send only request headers, including 'Expect: 100-continue' header. Client must NOT send request body until receiving response from server. Server will analyze headers and decide if he is willing to accept the file. After making checks server may send final response containing error or success status code. In this case client must NOT send request body. Otherwise if server decides to accept the file he sends intermediate response with '100 Continue' status code. After receiving such code client must send request body. After receiving a body server will respond with final response. If some error occurs during file upload server will respond with non-2xx status code or will close the connection.
Analyzed request headers:
Sent response headers which are required to be analyzed:
File upload request example. Step 1 - client sends headers without body
PUT /FTUR/1b20a383-9ae7-49e3-b0ad-1e5edfe5926d HTTP/1.1
Content-Length: 5
Content-Range: 0-4/20
Expect: 100-continue
Step 2 - server sends intermediate response
HTTP/1.1 100 Continue
Step 3 - client sends request body.
ABCDE
Step 4 - server sends final response
HTTP/1.1 201 Created Content-Length: 0
In KlAkOAPI Python package details of implementation are hidden in high-level method UploadFile:
server = KlAkOAPI.AdmServer.KlAkAdmServer.CreateGateway('https://ksc.example.com', token_to_nagent, verify = False) ... upload_url = KlAkOAPI.NagRdu.KlAkNagRdu(server).GetUrlToUploadFileToHost().RetVal() server.UploadFile(upload_url, full_archive_filename)
The following rules are accepted for the backward compatibility:
KLOAPI type | Default value |
---|---|
int | 0 |
unsignedInt | 0 |
long | 0 |
unsignedLong | 0 |
wstring | "" |
boolean | false |
datetime | null |
date | null |
double | 0.0 |
float | 0.0 |
binary | null |
array | null |
params | null |
You must send the "X-KSC-RequestId" attribute in the HTTP header in every request to support request tracing. This attribute contains two UID-strings devided by the '_' symbol. The first UID is called "trace_id" and corresponds to the thread from which the request is invoked. The second one is called "span_id" and must be unique for each request. Each UID is a HEX UPPERCASE string containig 8 bytes. Example: X-KSC-RequestId: 39C49236A51C334C_86659DDD6960D6E2
Method login - Request:
POST /api/v1.0/login HTTP/1.1 Authorization: KSCBasic user="S0xTUlZPQVBJXzIxYWRkY2FiLTNlYjgtNDQ1Ni05Yjc3LTFiYWRkYzg4NWMxNQ==", pass="QXM1JExpNiFGaDF8RmU2Xw==", internal="0" X-KSC-RequestId: 39C49236A51C334C_86659DDD6960D6E2 Content-Length: 2 Content-Type: application/json {}
Method login - Response:
HTTP/1.1 200 OK Content-Length: 2 Content-Type: application/json {}
Method TestApi.TestMethod0 - Request:
POST /api/v1.0/KlsrvoapiTestApi.TestMethod0 HTTP/1.1
X-KSC-RequestId: 39C49236A51C334C_98969A4853053FEC
Content-Length: 15
Content-Type: application/json
{"arg1":102030}
Method TestApi.TestMethod0 - Response:
HTTP/1.1 200 OK
Content-Length: 20
Content-Type: application/json
{"PxgRetVal":123456}
Method TestApi.TestMethod1 - Request:
POST /api/v1.0/KlsrvoapiTestApi.TestMethod1 HTTP/1.1 X-KSC-RequestId: 39C49236A51C334C_AE60F2F5161FD22F Content-Length: 79 Content-Type: application/json {"Par1":{"var1":23,"var2":"str12","var3":{"type":"date","value":"2016-09-19"}}}
Method TestApi.TestMethod1 - Response:
HTTP/1.1 200 OK Content-Length: 103 Content-Type: application/json {"ResArray":[{"type":"date","value": "2016-09-19"},{"type":"datetime","value":"2016-09-19T15:22:35Z"}]}
Method TestApi.TestError - Request:
POST /api/v1.0/TestApi.TestError HTTP/1.1 X-KSC-RequestId: 39C49236A51C334C_B382CB21DB5A1605 Content-Length: 2 Content-Type: application/json {}
Method TestApi.TestError - Response:
HTTP/1.1 200 OK Content-Length: 137 Content-Type: application/json {"PxgError":{"code":1199,"file":".\\klsrvoapi_test\\klsrvoapi_test_impl.cpp","line":314,"message":"Operation canceled","module":"KLSTD"}}
Method SrvView.ResetIterator - Request:
POST /api/v1.0/SrvView.ResetIterator HTTP/1.1 X-KSC-RequestId: 39C49236A51C334C_AEF632ED183A4372 Content-Type: application/json Transfer-Encoding: chunked b8 {"wstrViewName":"UmdmDevices","wstrFilter":"(&(Dev_Model=\"*\"))","vecFieldsToReturn":["Dev_Id","Dev_ProtocolId","Dev_Model"],"vecFieldsToOrder":null,"pParams":null,"lifetimeSec":7200} 0
Method SrvView.ResetIterator - Response:
HTTP/1.1 200 OK Transfer-Encoding: chunked 2b {"wstrIteratorId":"adevrrPQ9BKk9XI4amr0k3"} 0
Method SrvView.GetRecordCount - Request:
POST /api/v1.0/SrvView.GetRecordCount HTTP/1.1 X-KSC-RequestId: 39C49236A51C334C_BCF89A84E34BDD9F Content-Type: application/json Transfer-Encoding: chunked 2b {"wstrIteratorId":"adevrrPQ9BKk9XI4amr0k3"} 0
Method "SrvView.GetRecordCount" - Response:
HTTP/1.1 200 OK
Transfer-Encoding: chunked
11
{"PxgRetVal":177}
0
Method SrvView.GetRecordRange - Request:
POST /api/v1.0/SrvView.GetRecordRange HTTP/1.1 X-KSC-RequestId: 39C49236A51C334C_83E4966196918669 Content-Type: application/json Transfer-Encoding: chunked 41 {"wstrIteratorId":"adevrrPQ9BKk9XI4amr0k3","nStart":0,"nEnd":177} 0
Method SrvView.GetRecordRange - Response:
HTTP/1.1 200 OK Transfer-Encoding: chunked 1000 {"pRecords":{"KLCSP_ITERATOR_ARRAY":[{"type":"params","value":{"Dev_Id":1,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":2,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":3,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":4,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":5,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":6,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":7,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":8,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":9,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":10,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":11,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":12,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":13,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":14,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":15,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":16,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":17,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":18,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":19,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":20,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":21,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":22,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":23,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":24,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":25,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":26,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":27,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":28,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":29,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":30,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":31,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":32,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":33,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":34,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":35,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":36,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":37,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":38,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":39,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":40,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":41,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":42,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":43,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":44,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":45,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":46,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":47,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":48,"Dev_Model":"ActiveSync Device","Dev_Prot 1000 ocolId":4}},{"type":"params","value":{"Dev_Id":49,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":50,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":51,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":52,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":53,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":54,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":55,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":56,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":57,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":58,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":59,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":60,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":61,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":62,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":63,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":64,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":65,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":66,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":67,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":68,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":69,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":70,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":71,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":72,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":73,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":74,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":75,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":76,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":77,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":78,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":79,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":80,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":81,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":82,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":83,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":84,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":85,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":86,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":87,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":88,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":89,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":90,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":91,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":92,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":93,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":94,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":95,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":96,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"ty 1000 pe":"params","value":{"Dev_Id":97,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":98,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":99,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":100,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":101,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":102,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":103,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":104,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":105,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":106,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":107,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":108,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":109,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":110,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":111,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":112,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":113,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":114,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":115,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":116,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":117,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":118,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":119,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":120,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":121,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":122,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":123,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":124,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":125,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":126,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":127,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":128,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":129,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":130,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":131,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":132,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":133,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":134,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":135,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":136,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":137,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":138,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":139,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":140,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":141,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":142,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":143,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":144,"Dev_Model":"ActiveSync Devi b31 ce","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":145,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":146,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":147,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":148,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":149,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":150,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":151,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":152,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":153,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":154,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":155,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":156,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":157,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":158,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":159,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":160,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":161,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":162,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":163,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":164,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":165,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":166,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":167,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":168,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":169,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":170,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":171,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":172,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":173,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":174,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}},{"type":"params","value":{"Dev_Id":175,"Dev_Model":"iPhone","Dev_ProtocolId":1}},{"type":"params","value":{"Dev_Id":176,"Dev_Model":"KES Device","Dev_ProtocolId":2}},{"type":"params","value":{"Dev_Id":177,"Dev_Model":"ActiveSync Device","Dev_ProtocolId":4}}]}} 0
Method SrvView.ReleaseIterator - Request:
POST /api/v1.0/SrvView.ReleaseIterator HTTP/1.1 X-KSC-RequestId: 39C49236A51C334C_BA0363FD42D63DB2 Content-Type: application/json Transfer-Encoding: chunked 2b {"wstrIteratorId":"adevrrPQ9BKk9XI4amr0k3"} 0
Method SrvView.ReleaseIterator - Response:
HTTP/1.1 200 OK Transfer-Encoding: chunked 2 {} 0