-
Notifications
You must be signed in to change notification settings - Fork 0
/
swagger.yaml
389 lines (389 loc) · 9.43 KB
/
swagger.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
swagger: '2.0'
info:
title: Linkalytics API
description: Backend analytics to link together disparate data
version: 1.0.1
license:
name: Apache 2.0
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
contact:
name: Sang Han
email: sang@qadium.com
url: 'https://github.com/qadium-memex/linkalytics'
host: '104.197.144.112:8080'
basePath: /v1
schemes:
- http
- https
produces:
- application/json
consumes:
- application/json
securityDefinitions:
Authentication:
type: basic
description: 'Will send `Authenticated` if authentication is succesful, otherwise it will send `Unauthorized`'
paths:
/search:
post:
security:
- Authentication: []
summary: Search API
description: |
Search through the entity lists.
parameters:
- name: query
in: body
description: Search Query
required: true
schema:
$ref: '#/definitions/SearchQuery'
tags:
- Search
responses:
'200':
description: Response from elastic search
schema:
type: object
$ref: '#/definitions/SearchResults'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
/ngrams:
post:
security:
- Authentication: []
summary: n-gram distribution over documents
description: |
Create a Term Document Matrix containing n-grams
parameters:
- name: query
in: body
description: Search Query
required: true
schema:
$ref: '#/definitions/NgramQuery'
tags:
- Search
- N-Grams
responses:
'200':
description: Response from elastic search
schema:
type: object
$ref: '#/definitions/NgramResponse'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
/lsh:
post:
security:
- Authentication: []
summary: Locality Sensitive Hashing
description: |
Perform nearest neighbor search over documents
parameters:
- name: query
in: body
description: Search Query
required: true
schema:
$ref: '#/definitions/LSHQuery'
tags:
- Search
- Locality Sensitive Hashing
responses:
'200':
description: Response from elastic search
schema:
type: object
$ref: '#/definitions/LSHResponse'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
/coincidence:
post:
security:
- Authentication: []
summary: Check coincidences of phone number and post text
description: |
Provides justifications for inductive reasoning
parameters:
- name: query
in: body
description: Search Query
required: true
schema:
$ref: '#/definitions/CoincidenceQuery'
tags:
- Search
- Linking
responses:
'200':
description: Response linking phone numbers to post text
schema:
type: object
$ref: '#/definitions/CoincidenceResponse'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
/imgmeta:
post:
security:
- Authentication: []
summary: 'Search through camera by id'
description: |
'Search through camera by id'
parameters:
- name: query
in: body
description: Search Query
required: true
schema:
$ref: '#/definitions/ImageQuery'
tags:
- Search
- Images
responses:
'200':
description: Response linking similarities between images
schema:
type: object
$ref: '#/definitions/ImageResponse'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
'/enhance/{api}':
post:
summary: Enhance API Endpoint
security:
- Authentication: []
tags:
- Enhance
parameters:
- name: api
in: path
required: true
description: |
An API endpoint defined in `[twitter, youtube, phone, instagram]`
type: string
- name: text
in: body
required: true
description: |
Text to send to the enhance API endpoint
schema:
$ref: '#/definitions/Enhance'
responses:
'200':
description: Expected response to a valid request
schema:
$ref: '#/definitions/SearchResults'
default:
description: unexpected error
schema:
$ref: '#/definitions/Error'
definitions:
SearchQuery:
type: object
properties:
search:
type: string
description: Query string parameter
size:
type: integer
description: Size of elasticsearch query
title: SearchQuery
SearchResults:
type: object
properties:
results:
type: array
description: Result array
items:
$ref: '#/definitions/SearchItems'
title: SearchResults
SearchItems:
type: object
properties:
_id:
type: string
description: Unique identifier representing a group of entities
_index:
type: string
_source:
$ref: '#/definitions/SearchSource'
_type:
type: string
title: Search Items
SearchSource:
type: object
properties:
docs:
type: array
items:
$ref: '#/definitions/SearchDocs'
title: Search Source
SearchDocs:
type: object
properties:
_id:
type: string
description: Unique identifier representing an entity
_index:
type: string
_source:
type: object
title: SearchDocs
NgramQuery:
type: object
properties:
text:
type: string
description: Elasticsearch query string
size:
type: integer
description: Maximum size of the elasticsearch query
ngrams:
type: integer
description: Amount of n-grams to separate query
title: Ngram Query
NgramResponse:
type: object
properties:
results:
type: object
description: Response from querying ngrams
$ref: '#/definitions/NgramResults'
title: Ngram Response
NgramResults:
type: object
properties:
ngram:
type: array
description: A list of all ngrams containing this result
$ref: '#/definitions/NgramDocs'
title: Ngram Results
NgramDocs:
type: string
description: "Document ID's cooresponding to linked ngrams"
LSHQuery:
type: object
properties:
text:
type: string
description: Elasticsearch query string
size:
type: integer
description: Maximum size of the elasticsearch query
title: LSH Query
LSHResponse:
type: object
properties:
doc_id:
type: array
description: "Document ID's cooresponding to nearest neighbors"
$ref: '#/definitions/LSHResults'
LSHResults:
type: array
items:
$ref: '#/definitions/LSHItems'
LSHItems:
type: object
properties:
doc_id:
type: string
description: Body string from the document
CoincidenceQuery:
type: object
properties:
text:
type: string
description: Elasticsearch query string
size:
type: integer
description: Maximum size of the elasticsearch query
title: Coincidence Query
CoincidenceResponse:
type: object
properties:
final_date:
type: string
format: date
initial_date:
type: string
format: date
phrase:
type: string
results:
type: object
$ref: '#/definitions/CoincidenceResults'
CoincidenceResults:
type: object
properties:
doc_id:
type: object
description: Document ID
$ref: '#/definitions/CoincidenceDoc'
CoincidenceDoc:
type: object
properties:
date:
type: object
description: Dates of entry
$ref: '#/definitions/CoincidenceDates'
results:
type: object
description: Coincidence matches
$ref: '#/definitions/CoincidenceItems'
CoincidenceDates:
type: object
properties:
initial:
type: string
description: Initial Date
format: date
final:
type: string
description: Final Date
format: date
CoincidenceItems:
type: object
properties:
phone:
type: integer
description: Phone numbers from this query
both:
type: integer
description: Entries matching both same text and same phone number
ImageQuery:
type: object
properties:
id:
type: string
description: Model ID number
ImageResponse:
type: object
Enhance:
type: object
properties:
text:
type: string
description: Text to send to the enhance api endpoint
title: Enhance
Error:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string
title: Error