LocationAPI.yaml 39.1 KB
Newer Older
1
2
swagger: '2.0'
info:
3
4
5
  title: MEC-012 Location API
  version: 1.1.1
  description: 'The MEC-012 Location API described using OpenAPI, which is based on the Open Mobile Alliance''s specification RESTful Network API for Zonal Presence'
6
  license:
Michele Carignani's avatar
Michele Carignani committed
7
8
    name: ETSI Forge copyright notice
    url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt'
9
externalDocs:
10
11
  description: ETSI MEC013 V1.1.1 Location Service API
  url: 'http://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/01.01.01_60/gs_mec013v010101p.pdf'
12
13
14
15
16
17
18
19
20
21
host: '127.0.0.1:8081'
basePath: /exampleAPI/location/v1/
schemes:
  - http
  - https
consumes:
  - application/json
produces:
  - application/json
parameters:
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
  Body.UserTrackingSubscription:
    name: userTrackingSubscription
    in: body
    description: User Tracking Subscription
    required: true
    schema:
      $ref: '#/definitions/UserTrackingSubscription'
  Body.ZonalTrafficSubscription:
    name: zonalTrafficSubscription
    in: body
    description: Zonal Traffic Subscription
    required: true
    schema:
      $ref: '#/definitions/ZonalTrafficSubscription'
  Body.ZoneStatusSubscription:
    name: zoneStatusSubscription
    in: body
    description: Zone Status Subscription
    required: true
    schema:
      $ref: '#/definitions/ZoneStatusSubscription'
  Path.AccessPointId:
    name: accessPointId
    in: path
    description: Access Point ID
    required: true
    type: string
  Path.SubscriptionId:
    name: subscriptionId
    in: path
    description: Subscription ID
    required: true
    type: string
  Path.UserId:
    name: userId
    in: path
    description: User ID
    required: true
    type: string
  Path.ZoneId:
62
    name: zoneId
63
    in: path
64
65
66
    description: Zone ID
    required: true
    type: string
67
  Query.AccessPointId:
68
69
70
71
72
    name: accessPointId
    in: query
    description: 'Identifier of access point, reference "definitions" for string format'
    required: false
    type: string
73
  Query.InterestRealm:
74
75
    name: interestRealm
    in: query
76
    description: 'Interest realm of access point (e.g. geographical area, a type of industry etc.).'
77
78
    required: false
    type: string
79
80
81
82
83
84
  Query.ZoneId:
    name: zoneId
    in: query
    description: Zone ID
    required: true
    type: string
85
86
87
paths:
  /zones:
    get:
88
      description: Used to get a list of identifiers for zones authorized for use by the application.
89
90
91
92
93
94
95
96
      produces:
        - application/json
      responses:
        '200':
          description: Successful response to a query regarding the status of a zone
          schema:
            properties:
              zoneList:
97
                $ref: '#/definitions/ZoneList'
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
          examples:
            application/json:
              zoneList:
                zone:
                  - zoneId: zone01
                    numberOfAccessPoints: '3'
                    numberOfUnserviceableAccessPoints: '1'
                    numberOfUsers: '10'
                    resourceURL: 'http://example.com/exampleAPI/location/v1/zones/zone01'
                  - zoneId: zone02
                    numberOfAccessPoints: '12'
                    numberOfUnserviceableAccessPoints: '0'
                    numberOfUsers: '36'
                    resourceURL: 'http://example.com/exampleAPI/location/v1/zones/zone02'
                resourceURL: 'http://example.com/exampleAPI/location/v1/zones'
  '/zones/{zoneId}':
    get:
      description: Used to get the status of a zone.
      produces:
        - application/json
      parameters:
119
        - $ref: '#/parameters/Path.ZoneId'
120
121
122
123
124
125
      responses:
        '200':
          description: Successful response to a query regarding the status of a zone
          schema:
            properties:
              zoneInfo:
126
                $ref: '#/definitions/ZoneInfo'
127
128
129
130
131
132
133
134
135
136
          examples:
            application/json:
              zoneInfo:
                zoneId: zone01
                numberOfAccessPoints: '3'
                numberOfUnserviceableAccessPoints: '1'
                numberOfUsers: '10'
                resourceURL: 'http://example.com/exampleAPI/location/v1/zones/zone01'
  '/zones/{zoneId}/accessPoints':
    get:
137
      description: Access point status can be retrieved for sets of access points matching attribute in the request.
138
139
140
      produces:
        - application/json
      parameters:
141
142
        - $ref: '#/parameters/Path.ZoneId'
        - $ref: '#/parameters/Query.InterestRealm'
143
144
      responses:
        '200':
145
          description: Successful response to a query a named set of access point status request
146
147
148
          schema:
            properties:
              accessPointList:
149
                $ref: '#/definitions/AccessPointList'
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
          examples:
            application/json:
              accessPointList:
                zoneId: zone01
                accessPoint:
                  - accessPointId: '001010000000000000000000000000001'
                    locationInfo:
                      latitude: '90.123'
                      longitude: '80.123'
                      altitude: '10.0'
                      accuracy: '0'
                    connectionType: Macro
                    operationStatus: Serviceable
                    numberOfUsers: '5'
                    interestRealm: LA
165
                    resourceURL: 'http://example.com/exampleAPI/location/v1/zones/zone01/accessPoints/ap001'
166
167
168
169
170
171
172
173
174
175
                  - accessPointId: '001010000000000000000000000000010'
                    locationInfo:
                      latitude: '91.123'
                      longitude: '81.123'
                      altitude: '12.0'
                      accuracy: '1'
                    connectionType: Macro
                    operationStatus: Unserviceable
                    numberOfUsers: '0'
                    interestRealm: DC
176
                    resourceURL: 'http://example.com/exampleAPI/location/v1/zones/zone01/accessPoints/ap002'
177
178
179
180
181
182
183
184
185
186
                  - accessPointId: '001010000000000000000000000000011'
                    locationInfo:
                      latitude: '93.123'
                      longitude: '83.123'
                      altitude: '16.0'
                      accuracy: '3'
                    connectionType: Macro
                    operationStatus: Serviceable
                    numberOfUsers: '5'
                    interestRealm: NJ
187
188
                    resourceURL: 'http://example.com/exampleAPI/location/v1/zones/zone01/accessPoints/ap003'
                resourceURL: 'http://example.com/exampleAPI/location/v1/zones/zone01/accessPoints'
189
190
  '/zones/{zoneId}/accessPoints/{accessPointId}':
    get:
191
      description: Access point status can be retrieved for sets of access points matching attribute in the request.
192
193
194
      produces:
        - application/json
      parameters:
195
196
        - $ref: '#/parameters/Path.ZoneId'
        - $ref: '#/parameters/Path.AccessPointId'
197
198
      responses:
        '200':
199
          description: Successful response to a query a named set of access point status request
200
201
202
          schema:
            properties:
              accessPointInfo:
203
                $ref: '#/definitions/AccessPointInfo'
204
205
206
207
208
209
210
211
212
213
214
215
216
          examples:
            application/json:
              accessPointInfo:
                accessPointId: '001010000000000000000000000000001'
                locationInfo:
                  latitude: '90.123'
                  longitude: '80.123'
                  altitude: '10.0'
                  accuracy: '0'
                connectionType: Macro
                operationStatus: Serviceable
                numberOfUsers: '5'
                interestRealm: LA
217
                resourceURL: 'http://example.com/exampleAPI/location/v1/zones/zone001/accessPoints/ap001'
218
219
  /users:
    get:
220
      description: Users currently using a zone may be retrieved for sets of access points matching attribute in the request
221
222
223
      produces:
        - application/json
      parameters:
224
225
        - $ref: '#/parameters/Query.ZoneId'
        - $ref: '#/parameters/Query.AccessPointId'
226
227
228
229
230
231
      responses:
        '200':
          description: Successful response to a query users within a zone request
          schema:
            properties:
              userList:
232
                $ref: '#/definitions/UserList'
233
234
235
236
237
238
239
          examples:
            application/json:
              userList:
                user:
                  - address: 'acr:192.0.2.1'
                    accessPointId: '001010000000000000000000000000001'
                    zoneId: zone01
240
                    resourceURL: 'http://example.com/exampleAPI/location/v1/users/acr%3A192.0.2.1'
241
242
243
                  - address: 'acr:192.0.2.2'
                    accessPointId: '001010000000000000000000000000001'
                    zoneId: zone01
244
                    resourceURL: 'http://example.com/exampleAPI/location/v1/users/acr%3A192.0.2.2'
245
246
247
                  - address: 'acr:192.0.2.3'
                    accessPointId: '001010000000000000000000000000010'
                    zoneId: zone01
248
                    resourceURL: 'http://example.com/exampleAPI/location/v1/users/acr%3A192.0.2.3'
249
250
251
                  - address: 'acr:192.0.2.4'
                    accessPointId: '001010000000000000000000000000001'
                    zoneId: zone02
252
                    resourceURL: 'http://example.com/exampleAPI/location/v1/users/acr%3A192.0.2.4'
253
254
255
                  - address: 'acr:192.0.2.5'
                    accessPointId: '001010000000000000000000000000010'
                    zoneId: zone02
256
                    resourceURL: 'http://example.com/exampleAPI/location/v1/users/acr%3A192.0.2.5'
257
258
259
                resourceURL: 'http://example.com/exampleAPI/location/v1/users'
  '/users/{userId}':
    get:
260
      description: Users currently using a zone may be retrieved for sets of access points matching attribute in the request
261
262
263
      produces:
        - application/json
      parameters:
264
        - $ref: '#/parameters/Path.UserId'
265
266
267
268
269
270
      responses:
        '200':
          description: Successful response to a query users within a zone request
          schema:
            properties:
              userInfo:
271
                $ref: '#/definitions/UserInfo'
272
273
274
275
276
277
          examples:
            application/json:
              userInfo:
                address: 'acr:192.0.2.1'
                accessPointId: '001010000000000000000000000000001'
                zoneId: zone01
278
                resourceURL: 'http://example.com/exampleAPI/location/v1/users/acr%3A192.0.2.1'
279
280
281
282
283
284
285
286
                locationInfo:
                  latitude: '90.123'
                  longitude: '80.123'
                  altitude: '10.0'
                  accuracy: '0'
                contextLocationInfo: GroundFloor
  /subscriptions/zonalTraffic:
    get:
287
      description: This operation is used for retrieving all active subscriptions to zonal traffic change notifications.
288
289
290
291
292
293
294
295
296
297
298
299
300
301
      produces:
        - application/json
      responses:
        '200':
          description: Response to retrieve zonal traffic subscriptions
          schema:
            type: object
            properties:
              notificationSubscriptionList:
                type: object
                properties:
                  zonalTrafficSubscription:
                    type: array
                    items:
302
                      $ref: '#/definitions/ZonalTrafficSubscription'
303
                  resourceURL:
304
                    $ref: '#/definitions/ResourceURL'
305
306
307
308
309
          examples:
            application/json:
              notificationSubscriptionList:
                zonalTrafficSubscription:
                  - clientCorrelator: '0123'
310
                    resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zonalTraffic/subscription123'
311
                    callbackReference:
312
                      notifyURL: 'http://clientApp.example.com/location_notifications/123456'
313
314
315
316
                    zoneId: zone01
                    interestRealm: LA
                    userEventCriteria: Transferring
                  - clientCorrelator: '0124'
317
                    resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zonalTraffic/subscription124'
318
                    callbackReference:
319
                      notifyURL: 'http://clientApp.example.com/location_notifications/123457'
320
321
322
323
324
                    zoneId: zone02
                    interestRealm: LA
                    userEventCriteria: Transferring
                resourceURL: 'http://example.com/exampleAPI/location/v1/zonalTraffic'
    post:
325
      description: This operation is used for creating a new subscription to zonal traffic change notification.
326
327
328
      produces:
        - application/json
      parameters:
329
        - $ref: '#/parameters/Body.ZonalTrafficSubscription'
330
331
332
333
334
335
      responses:
        '201':
          description: Response to create new zonal traffic subscription
          schema:
            properties:
              zonalTrafficSubscription:
336
                $ref: '#/definitions/ZonalTrafficSubscription'
337
338
339
340
          examples:
            application/json:
              zonalTrafficSubscription:
                clientCorrelator: '0123'
341
                resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zonalTraffic/subscription123'
342
343
344
345
346
347
348
                callbackReference:
                  notifyURL: 'http://clientApp.example.com/location_notifications/123456'
                zoneId: zone01
                interestRealm: LA
                userEventCriteria: Transferring
  '/subscriptions/zonalTraffic/{subscriptionId}':
    get:
349
      description: This operation is used for updating an individual subscription to zonal traffic change notification.
350
351
352
      produces:
        - application/json
      parameters:
353
        - $ref: '#/parameters/Path.SubscriptionId'
354
355
356
357
358
359
      responses:
        '200':
          description: Response to retrieve individual zonal traffic subscription
          schema:
            properties:
              zonalTrafficSubscription:
360
                $ref: '#/definitions/ZonalTrafficSubscription'
361
362
363
364
          examples:
            application/json:
              zonalTrafficSubscription:
                clientCorrelator: '0123'
365
                resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zonalTraffic/subscription123'
366
367
368
369
370
371
                callbackReference:
                  notifyURL: 'http://clientApp.example.com/location_notifications/123456'
                zoneId: zone01
                interestRealm: LA
                userEventCriteria: Transferring
    put:
372
      description: This operation is used for updating an individual subscription to zonal traffic change notification.
373
374
375
      produces:
        - application/json
      parameters:
376
377
        - $ref: '#/parameters/Path.SubscriptionId'
        - $ref: '#/parameters/Body.ZonalTrafficSubscription'
378
379
380
381
382
383
      responses:
        '200':
          description: Response to update individual zonal traffic subscription
          schema:
            properties:
              zonalTrafficSubscription:
384
                $ref: '#/definitions/ZonalTrafficSubscription'
385
386
387
388
          examples:
            application/json:
              zonalTrafficSubscription:
                clientCorrelator: '0123'
389
                resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zonalTraffic/subscription123'
390
391
392
393
394
395
                callbackReference:
                  notifyURL: 'http://clientApp.example.com/location_notifications/123456'
                zoneId: zone01
                interestRealm: LA
                userEventCriteria: Transferring
    delete:
396
      description: This operation is used for cancelling a subscription and stopping corresponding notifications.
397
398
399
      produces:
        - application/json
      parameters:
400
        - $ref: '#/parameters/Path.SubscriptionId'
401
402
403
404
405
      responses:
        '204':
          description: No content
  /subscriptions/userTracking:
    get:
406
      description: This operation is used for retrieving all active subscriptions to user tracking change notifications.
407
408
409
410
411
412
413
414
415
416
417
418
419
420
      produces:
        - application/json
      responses:
        '200':
          description: Response to retrieve user tracking subscriptions
          schema:
            type: object
            properties:
              notificationSubscriptionList:
                type: object
                properties:
                  userTrackingSubscription:
                    type: array
                    items:
421
                      $ref: '#/definitions/UserTrackingSubscription'
422
                  resourceURL:
423
                    $ref: '#/definitions/ResourceURL'
424
425
426
427
428
          examples:
            application/json:
              notificationSubscriptionList:
                userTrackingSubscription:
                  - clientCorrelator: '0123'
429
                    resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/userTracking/subscription123'
430
                    callbackReference:
431
                      notifyURL: 'http://clientApp.example.com/location_notifications/123456'
432
433
434
                    address: 'acr:192.0.2.1'
                    userEventCriteria: Transferring
                  - clientCorrelator: '0124'
435
                    resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/userTracking/subscription124'
436
                    callbackReference:
437
                      notifyURL: 'http://clientApp.example.com/location_notifications/123456'
438
439
                    address: 'acr:192.0.2.2'
                    userEventCriteria: Transferring
440
                resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/userTracking'
441
    post:
442
      description: This operation is used for creating a new subscription to user tracking change notification
443
444
445
      produces:
        - application/json
      parameters:
446
        - $ref: '#/parameters/Body.UserTrackingSubscription'
447
448
449
450
451
452
      responses:
        '201':
          description: Response to create new user tracking subscription
          schema:
            properties:
              userTrackingSubscription:
453
                $ref: '#/definitions/UserTrackingSubscription'
454
455
456
457
          examples:
            application/json:
              userTrackingSubscription:
                clientCorrelator: '0123'
458
                resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/userTracking/subscription123'
459
460
461
462
463
464
                callbackReference:
                  notifyURL: 'http://clientApp.example.com/location_notifications/123456'
                address: 'acr:192.0.2.1'
                userEventCriteria: Transferring
  '/subscriptions/userTracking/{subscriptionId}':
    get:
465
      description: This operation is used for retrieving an individual subscription to user tracking change notification.
466
467
468
      produces:
        - application/json
      parameters:
469
        - $ref: '#/parameters/Path.SubscriptionId'
470
471
472
473
474
475
      responses:
        '200':
          description: Response to retrieve individual user tracking subscription
          schema:
            properties:
              userTrackingSubscription:
476
                $ref: '#/definitions/UserTrackingSubscription'
477
478
479
480
          examples:
            application/json:
              userTrackingSubscription:
                clientCorrelator: '0123'
481
                resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/userTracking/subscription123'
482
483
484
485
486
                callbackReference:
                  notifyURL: 'http://clientApp.example.com/location_notifications/123456'
                address: 'acr:192.0.2.1'
                userEventCriteria: Transferring
    put:
487
      description: This operation is used for updating an individual subscription to user tracking change notification.
488
489
490
      produces:
        - application/json
      parameters:
491
492
        - $ref: '#/parameters/Path.SubscriptionId'
        - $ref: '#/parameters/Body.UserTrackingSubscription'
493
494
495
496
497
498
      responses:
        '200':
          description: Response to update individual user tracking subscription
          schema:
            properties:
              userTrackingSubscription:
499
                $ref: '#/definitions/UserTrackingSubscription'
500
501
502
503
          examples:
            application/json:
              userTrackingSubscription:
                clientCorrelator: '0123'
504
                resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/userTracking/subscription123'
505
506
507
508
509
                callbackReference:
                  notifyURL: 'http://clientApp.example.com/location_notifications/123456'
                address: 'acr:192.0.2.1'
                userEventCriteria: Transferring
    delete:
510
      description: This operation is used for retrieving an individual subscription to user tracking change notification.
511
512
513
      produces:
        - application/json
      parameters:
514
        - $ref: '#/parameters/Path.SubscriptionId'
515
516
517
518
519
      responses:
        '204':
          description: No Content
  /subscriptions/zonalStatus:
    get:
520
      description: This operation is used for creating a new subscription to zone status change notification.
521
522
523
524
525
526
527
528
529
530
531
532
533
534
      produces:
        - application/json
      responses:
        '200':
          description: Response to retrieve zone status subscriptions
          schema:
            type: object
            properties:
              notificationSubscriptionList:
                type: object
                properties:
                  zonalTrafficSubscription:
                    type: array
                    items:
535
                      $ref: '#/definitions/ZoneStatusSubscription'
536
                  resourceURL:
537
                    $ref: '#/definitions/ResourceURL'
538
539
540
541
542
          examples:
            application/json:
              notificationSubscriptionList:
                zoneStatusSubscription:
                  - clientCorrelator: '0123'
543
                    resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zoneStatus/subscription123'
544
                    callbackReference:
545
                      notifyURL: 'http://clientApp.example.com/location_notifications/123456'
546
547
548
549
                    zoneId: zone01
                    numberOfUsersZoneThreshold: '500'
                    operationStatus: Serviceable
                  - clientCorrelator: '0124'
550
                    resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zoneStatus/subscription124'
551
                    callbackReference:
552
                      notifyURL: 'http://clientApp.example.com/location_notifications/123457'
553
554
555
                    zoneId: zone02
                    numberOfUsersAPThreshold: '50'
                    operationStatus: Serviceable
556
                resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zoneStatus'
557
    post:
558
      description: This operation is used for creating a new subscription to zone status change notification.
559
560
561
      produces:
        - application/json
      parameters:
562
        - $ref: '#/parameters/Body.ZoneStatusSubscription'
563
564
565
566
567
568
      responses:
        '201':
          description: Response to create new zone status subscription
          schema:
            properties:
              zonalTrafficSubscription:
569
                $ref: '#/definitions/ZoneStatusSubscription'
570
571
572
573
          examples:
            application/json:
              zoneStatusSubscription:
                clientCorrelator: '0123'
574
                resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zoneStatus/subscription123'
575
576
577
578
579
580
581
                callbackReference:
                  notifyURL: 'http://clientApp.example.com/location_notifications/123456'
                zoneId: zone01
                numberOfUsersZoneThreshold: '500'
                operationStatus: Serviceable
  '/subscriptions/zoneStatus/{subscriptionId}':
    get:
582
      description: This operation is used for retrieving an individual subscription to zone status change notification.
583
584
585
      produces:
        - application/json
      parameters:
586
        - $ref: '#/parameters/Path.SubscriptionId'
587
588
589
590
591
592
      responses:
        '200':
          description: Response to retrieve individual zone status subscription
          schema:
            properties:
              zoneStatusSubscription:
593
                $ref: '#/definitions/ZoneStatusSubscription'
594
595
596
597
          examples:
            application/json:
              zoneStatusSubscription:
                clientCorrelator: '0123'
598
                resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zoneStatus/subscription123'
599
600
601
602
603
604
                callbackReference:
                  notifyURL: 'http://clientApp.example.com/location_notifications/123456'
                zoneId: zone01
                numberOfUsersZoneThreshold: '500'
                operationStatus: Serviceable
    put:
605
      description: This operation is used for updating an individual subscription to zone status change notification.
606
607
608
      produces:
        - application/json
      parameters:
609
610
        - $ref: '#/parameters/Path.SubscriptionId'
        - $ref: '#/parameters/Body.ZoneStatusSubscription'
611
612
613
614
615
616
      responses:
        '200':
          description: Response to update individual zone status subscription
          schema:
            properties:
              zoneStatusSubscription:
617
                $ref: '#/definitions/ZoneStatusSubscription'
618
619
620
621
          examples:
            application/json:
              zoneStatusSubscription:
                clientCorrelator: '0123'
622
                resourceURL: 'http://example.com/exampleAPI/location/v1/subscriptions/zoneStatus/subscription123'
623
624
625
626
627
                callbackReference:
                  notifyURL: 'http://clientApp.example.com/location_notifications/123456'
                zoneId: zone01
                numberOfUsersZoneThreshold: '500'
                operationStatus: Serviceable
628
629
630
631
632
633
634
635
636
    delete:
      description: This operation is used for cancelling a subscription and stopping corresponding notifications.
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Path.SubscriptionId'
      responses:
        '204':
          description: No content
637
638
definitions:
  AccessPointId:
639
    description: 'Identifier of access point, <E-CGI><Cell Portion ID> (reference ETSI TS 129 171). Where the E-CGI is made up of the PLMN and Cell Identity (28 bit string). Then the PLMN is made up of the 3 digit MCC & 2 or 3 digit MNC. The Cell Portion is an optional element'
640
641
642
    type: string
    example: '001010000000000000000000000000001'
  AccessPointInfo:
643
644
    description: A type containing access point information.
    type: object
645
646
647
648
649
650
651
652
    required:
      - accessPointId
      - connectionType
      - operationStatus
      - numberOfUsers
      - resourceURL
    properties:
      accessPointId:
653
        $ref: '#/definitions/AccessPointId'
654
      locationInfo:
655
        $ref: '#/definitions/LocationInfo'
656
      connectionType:
657
        $ref: '#/definitions/ConnectionType'
658
      operationStatus:
659
        $ref: '#/definitions/OperationStatus'
660
      numberOfUsers:
661
        $ref: '#/definitions/NumberOfUsers'
662
      timezone:
663
        $ref: '#/definitions/Timezone'
664
      interestRealm:
665
        $ref: '#/definitions/InterestRealm'
666
      resourceURL:
667
        $ref: '#/definitions/ResourceURL'
668
  AccessPointList:
669
670
    description: A type containing list of access points.
    type: object
671
672
673
674
675
    required:
      - zoneId
      - resourceURL
    properties:
      zoneId:
676
        $ref: '#/definitions/ZoneId'
677
678
679
680
      accessPoint:
        description: Collection of the access point information list.
        type: array
        items:
681
          $ref: '#/definitions/AccessPointInfo'
682
      resourceURL:
683
        $ref: '#/definitions/ResourceURL'
684
685
686
687
688
689
  Address:
    description: 'Address of user (e.g. "sip" URI, "tel" URI, "acr" URI).'
    type: string
    format: uri
    example: 'acr:192.0.2.1'
  AncillaryInfo:
690
691
    description: Reserved for future use.
    type: string
692
  CallbackData:
693
    description: 'CallBackData if passed by the application during the associated ZonalTrafficSubscription and UserTrackingSubscription operation. See [REST_NetAPI_Common].'
694
695
696
    type: string
    example: '1234'
  CallbackReference:
697
698
    description: Notification callback definition.
    type: object
699
700
701
702
    required:
      - notifyURL
    properties:
      notifyURL:
703
        $ref: '#/definitions/NotifyURL'
704
  ClientCorrelator:
705
    description: 'Uniquely identifies this create subscription request. If there is a communication failure during the request, using the same clientCorrelator when retrying the request allows the operator to avoid creating a duplicate subscription.'
706
707
708
709
710
711
712
    type: string
    example: '0123'
  ConnectionType:
    description: The connection type for the access point
    type: string
    example: Macro
  ContextLocationInfo:
713
    description: 'Contextual information of a user location (e.g., aisle, floor, room number, etc.)'
714
    type: string
715
    example: GroundFloor
716
717
718
719
720
  CurrentAccessPointId:
    description: Zone ID
    type: string
    example: zone01
  Duration:
721
    description: 'Period (in seconds) of time notifications are provided for. If set to "0" (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications. This element MAY be given by the client during resource creation in order to signal the desired lifetime of the subscription. The server MUST return in this element the period of time for which the subscription will still be valid.'
722
723
724
    type: string
    example: '0'
  InterestRealm:
725
    description: 'Interest realm of access point (e.g. geographical area, a type of industry etc.).'
726
727
728
    type: string
    example: LA
  Link:
729
730
    description: Link to other resources
    type: object
731
732
733
734
735
736
737
738
739
740
741
742
743
    required:
      - rel
      - href
    properties:
      rel:
        description: Describes the relationship between the URI and the resource.
        type: object
        format: string
      href:
        description: URI
        type: object
        format: anyURI
  LocationInfo:
744
    description: 'A type containing location information with latitude, longitude and altitude, in addition the accuracy of the information are provided.'
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
    type: object
    required:
      - latitude
      - longitude
      - accuracy
    properties:
      latitude:
        type: number
        format: float
        example: '80.123'
      longitude:
        type: number
        format: float
        example: '70.123'
      altitude:
        type: number
        format: float
        example: '10.0'
      accuracy:
        type: integer
        format: int32
        example: '10'
  NotifyURL:
    description: The URL of your own listener application.
    type: string
    format: url
    example: 'http://clientApp.example.com/location_notifications/123456'
  NumberOfAccessPoints:
    description: The number of access points within the zone
    type: integer
    format: uint32
    example: '10'
  NumberOfUnserviceableAccessPoints:
    description: Number of inoperable access points within the zone.
    type: integer
    format: uint32
    example: '9'
  NumberOfUsers:
    description: The number of users currently on the access point.
    type: integer
    format: uint32
    example: '7'
  NumberOfUsersAPThreshold:
788
    description: Threshold number of users in an access point which if crossed shall cause a notification.
789
790
791
792
    type: integer
    format: uint32
    example: '20'
  NumberOfUsersInAP:
793
    description: This element shall be present when ZoneStatusSubscription includes numberOfUsersAPThreshold element and the number of users in an access point exceeds the threshold defined in the subscription.
794
795
796
797
    type: integer
    format: uint32
    example: '12'
  NumberOfUsersInZone:
798
    description: This element shall be present when ZoneStatusSubscription includes numberOfUsersZoneThreshold element and the number of users in a zone exceeds the threshold defined in this subscription.
799
800
801
802
    type: integer
    format: uint32
    example: '20'
  NumberOfUsersZoneThreshold:
803
    description: Threshold number of users in a zone which if crossed shall cause a notification.
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
    type: integer
    format: uint32
    example: '40'
  OperationStatus:
    description: The operation status of the access point
    type: string
    example: Serviceable
  PreviousAccessPointId:
    description: Zone ID
    type: string
    example: zone02
  ResourceURL:
    description: Self referring URL.
    type: string
    format: uri
819
    example: 'http://example.com/exampleAPI/location/v1/subscriptions/userTracking/subscription123'
820
821
822
823
824
825
826
827
828
829
830
  Timestamp:
    description: Indicates the time of day for zonal presence notification.
    type: string
    format: date-time
    example: '2017-01-01T02:51:43Z'
  Timezone:
    description: Time zone of access point
    type: string
    format: date-time
    example: '2017-01-01T02:51:43Z'
  UserEventCriteria:
831
    description: 'List of user event values to generate notifications for (these apply to address specified). If this element is missing, a notification is requested to be generated for any change in user event.'
832
833
    type: array
    items:
834
      $ref: '#/definitions/UserEventType'
835
836
837
838
839
  UserEventType:
    description: User event
    type: string
    example: Entering
  UserInfo:
840
841
    description: A type containing user information.
    type: object
842
843
844
845
846
847
848
    required:
      - address
      - accessPointId
      - zoneId
      - resourceURL
    properties:
      address:
849
        $ref: '#/definitions/Address'
850
      accessPointId:
851
        $ref: '#/definitions/AccessPointId'
852
      zoneId:
853
        $ref: '#/definitions/ZoneId'
854
      resourceURL:
855
        $ref: '#/definitions/ResourceURL'
856
      locationInfo:
857
        $ref: '#/definitions/LocationInfo'
858
      contextLocationInfo:
859
        $ref: '#/definitions/ContextLocationInfo'
860
      ancillaryInfo:
861
        $ref: '#/definitions/AncillaryInfo'
862
863
  UserList:
    description: A type containing list of users.
864
    type: object
865
866
867
868
869
870
871
    required:
      - resourceURL
    properties:
      user:
        description: Collection of the zone information list.
        type: array
        items:
872
          $ref: '#/definitions/UserInfo'
873
      resourceURL:
874
        $ref: '#/definitions/ResourceURL'
875
  UserTrackingSubscription:
876
877
    description: A type containing user tracking subscription.
    type: object
878
879
880
881
882
    required:
      - callbackReference
      - address
    properties:
      clientCorrelator:
883
        $ref: '#/definitions/ClientCorrelator'
884
      callbackReference:
885
        $ref: '#/definitions/CallbackReference'
886
      address:
887
        $ref: '#/definitions/Address'
888
      userEventCriteria:
889
        $ref: '#/definitions/UserEventCriteria'
890
      resourceURL:
891
        $ref: '#/definitions/ResourceURL'
892
  ZonalPresenceNotification:
893
894
    description: A type containing zonal presence notification
    type: object
895
896
897
898
899
900
901
902
    required:
      - zoneId
      - address
      - userEventType
      - currentAccessPointId
      - timestamp
    properties:
      callbackData:
903
        $ref: '#/definitions/CallbackData'
904
      zoneId:
905
        $ref: '#/definitions/ZoneId'
906
      address:
907
        $ref: '#/definitions/Address'
908
      interestRealm:
909
        $ref: '#/definitions/InterestRealm'
910
      userEventType:
911
        $ref: '#/definitions/UserEventType'
912
      currentAccessPointId:
913
        $ref: '#/definitions/CurrentAccessPointId'
914
      previousAccessPointId:
915
        $ref: '#/definitions/PreviousAccessPointId'
916
      timestamp:
917
        $ref: '#/definitions/Timestamp'
918
      link:
919
        description: Link to other resources that are in relationship with this notification. The server SHOULD include a link to the related subscription. No other links are required or suggested by this specification.
920
921
        type: array
        items:
922
923
          $ref: '#/definitions/Link'
        example: 'rel="ZonalTrafficSubscription" href="http://example.com/exampleAPI/location/v1/subscriptions/zonalTraffic/sub123"/'
924
925
926
927
928
929
930
931
  ZonalTrafficSubscription:
    description: A type containing zonal traffic subscription
    type: object
    required:
      - callbackReference
      - zoneId
    properties:
      clientCorrelator:
932
        $ref: '#/definitions/ClientCorrelator'
933
      callbackReference:
934
        $ref: '#/definitions/CallbackReference'
935
      zoneId:
936
        $ref: '#/definitions/ZoneId'
937
      interestRealm:
938
        description: 'Interest realms of access points within a zone (e.g. geographical area, a type of industry etc.).'
939
940
        type: array
        items:
941
          $ref: '#/definitions/InterestRealm'
942
      userEventCriteria:
943
        description: 'List of user event values to generate notifications for (these apply to zone identifier or all interest realms within zone identifier specified). If this element is missing, a notification is requested to be generated for any change in user event.'
944
945
        type: array
        items:
946
          $ref: '#/definitions/UserEventType'
947
      duration:
948
        $ref: '#/definitions/Duration'
949
      resourceURL:
950
        $ref: '#/definitions/ResourceURL'
951
952
953
954
955
956
  ZoneId:
    description: Identifier of zone
    type: string
    example: zone01
  ZoneInfo:
    description: A type containing zone information.
957
    type: object
958
959
960
961
962
963
964
965
    required:
      - zoneId
      - numberOfAccessPoints
      - numberOfUnservicableAccessPoints
      - numberOfUsers
      - resourceURL
    properties:
      zoneId:
966
        $ref: '#/definitions/ZoneId'
967
      numberOfAccessPoints:
968
        $ref: '#/definitions/NumberOfAccessPoints'
969
      numberOfUnservicableAccessPoints:
970
        $ref: '#/definitions/NumberOfUnserviceableAccessPoints'
971
      numberOfUsers:
972
        $ref: '#/definitions/NumberOfUsers'
973
      resourceURL:
974
        $ref: '#/definitions/ResourceURL'
975
976
  ZoneList:
    description: Collection of the zone information list.
977
    type: object
978
979
980
981
982
983
984
    required:
      - resourceURL
    properties:
      zone:
        description: Collection of the zone information list.
        type: array
        items:
985
          $ref: '#/definitions/ZoneInfo'
986
      resourceURL:
987
        $ref: '#/definitions/ResourceURL'
988
  ZoneStatusNotification:
989
990
    description: A type containing zone status notification.
    type: object
991
992
993
994
995
    required:
      - zoneId
      - timestamp
    properties:
      callbackData:
996
        $ref: '#/definitions/CallbackData'
997
      zoneId:
998
        $ref: '#/definitions/ZoneId'
999
      accessPointId:
1000
        $ref: '#/definitions/AccessPointId'
1001
      numberOfUsersInZone:
1002
        $ref: '#/definitions/NumberOfUsersInZone'
1003
      numberOfUsersInAP:
1004
        $ref: '#/definitions/NumberOfUsersInAP'
1005
      operationStatus:
1006
        $ref: '#/definitions/OperationStatus'
1007
      timestamp:
1008
        $ref: '#/definitions/Timestamp'
1009
      link:
1010
        description: Link to other resources that are in relationship with this notification. The server SHOULD include a link to the related subscription. No other links are required or suggested by this specification.
1011
1012
        type: array
        items:
1013
1014
          $ref: '#/definitions/Link'
        example: 'rel="ZonalStatusSubscription" href="http://example.com/exampleAPI/location/v1/subscriptions/zonalStatus/sub123"'
1015
  ZoneStatusSubscription:
1016
1017
    description: A type containing zone status subscription.
    type: object
1018
1019
1020
1021
1022
    required:
      - callbackReference
      - zoneId
    properties:
      clientCorrelator:
1023
        $ref: '#/definitions/ClientCorrelator'
1024
      resourceURL:
1025
        $ref: '#/definitions/ResourceURL'
1026
      callbackReference:
1027
        $ref: '#/definitions/CallbackReference'
1028
      zoneId:
1029
        $ref: '#/definitions/ZoneId'
1030
<