MEC029_FAI.yaml 80 KB
Newer Older
Muhammad Hamza's avatar
Muhammad Hamza committed
1
openapi: 3.1.0
Elian Kraja's avatar
Elian Kraja committed
2
3
info:
  title: "ETSI GS MEC 029 Fixed Access Information API"
4
  version: 2.2.1
Elian Kraja's avatar
Elian Kraja committed
5
6
7
  description: "ETSI GS MEC 029 Fixed Access Information API described using OpenAPI."
  license:
    name: BSD-3-Clause
Muhammad Hamza's avatar
Muhammad Hamza committed
8
    url: "https://forge.etsi.org/legal-matters"
Elian Kraja's avatar
Elian Kraja committed
9
  contact:
Elian Kraja's avatar
Elian Kraja committed
10
11
    name: ETSI Forge
    email: cti_support@etsi.org
Muhammad Hamza's avatar
Muhammad Hamza committed
12
    url: https://forge.etsi.org/rep/mec/gs029-fai-api
Elian Kraja's avatar
Elian Kraja committed
13
externalDocs:
14
15
  description: "ETSI GS MEC 029 Fixed Access Information API, v2.2.1"
  url: "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/029/02.02.01_60/gs_mec029v020201p.pdf"
Elian Kraja's avatar
Elian Kraja committed
16
servers:
Muhammad Hamza's avatar
Muhammad Hamza committed
17
  - url: "https://localhost/fai/v1"
Elian Kraja's avatar
Elian Kraja committed
18
tags:
19
  - name: Queries
Muhammad Hamza's avatar
Muhammad Hamza committed
20
  - name: Subscription
21
22
  - name: "Cable line info"
  - name: "Optical network info"
Elian Kraja's avatar
Elian Kraja committed
23
paths:
Muhammad Hamza's avatar
Muhammad Hamza committed
24
25
26
27
28
29
30
31
  /queries/fa_info:
    get:
      tags:
        - "Queries"
      summary: "Retrieve information on the available fixed access networks."
      description: "Retrieve information on the available fixed access networks."
      operationId: fa_infoGET
      parameters:
Elian Kraja's avatar
Elian Kraja committed
32
33
34
        - in: query
          name: customerPremisesInfo
          schema:
Muhammad Hamza's avatar
Muhammad Hamza committed
35
36
37
            type: array
            items:
              $ref: "#/components/schemas/CpInfo"
Elian Kraja's avatar
Elian Kraja committed
38
          required: false
Muhammad Hamza's avatar
Muhammad Hamza committed
39
          description: "Comma separated list of customer premises information"
Elian Kraja's avatar
Elian Kraja committed
40
41
42
43
44
        - in: query
          name: lastMileTech
          schema:
            type: array
            items:
Muhammad Hamza's avatar
Muhammad Hamza committed
45
              type: integer
Elian Kraja's avatar
Elian Kraja committed
46
          required: false
Muhammad Hamza's avatar
Muhammad Hamza committed
47
          description: "Comma separated list of last mile technologies."
Elian Kraja's avatar
Elian Kraja committed
48
49
50
51
52
        - in: query
          name: interfaceType
          schema:
            type: array
            items:
Muhammad Hamza's avatar
Muhammad Hamza committed
53
54
              type: integer
          description: "Comma separated list of interface types."
Elian Kraja's avatar
Elian Kraja committed
55
56
57
58
59
        - in: query
          name: dsbw
          schema:
            type: array
            items:
Muhammad Hamza's avatar
Muhammad Hamza committed
60
              type: integer
Elian Kraja's avatar
Elian Kraja committed
61
          required: false
Muhammad Hamza's avatar
Muhammad Hamza committed
62
          description: "Comma separated list of the bandwidth (in Mbps) from the network towards the customer site."
Elian Kraja's avatar
Elian Kraja committed
63
64
65
66
67
        - in: query
          name: usbw
          schema:
            type: array
            items:
Muhammad Hamza's avatar
Muhammad Hamza committed
68
              type: integer
Elian Kraja's avatar
Elian Kraja committed
69
          required: false
Muhammad Hamza's avatar
Muhammad Hamza committed
70
          description: "Comma separated list of the bandwidth (in Mbps) from the customer site towards the network."
Elian Kraja's avatar
Elian Kraja committed
71
72
73
74
75
        - in: query
          name: latency
          schema:
            type: array
            items:
Muhammad Hamza's avatar
Muhammad Hamza committed
76
              type: integer
Elian Kraja's avatar
Elian Kraja committed
77
          required: false
Muhammad Hamza's avatar
Muhammad Hamza committed
78
79
80
81
          description: "Comma separated list of the maximum baseline latency (in ms) between customer site and service edge node."
      responses:
        "200":
          description: "A response body containing the FAI is returned. "
Elian Kraja's avatar
Elian Kraja committed
82
83
84
          content:
            application/json:
              schema:
85
86
87
                type: array
                items:
                  $ref: "#/components/schemas/FaInfo"
Muhammad Hamza's avatar
Muhammad Hamza committed
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"

  /queries/device_info:
    get:
      tags:
        - "Queries"
      summary: "retrieve information on the devices that are connected to a fixed access network."
      description: "retrieve information on the devices that are connected to a fixed access network."
      operationId: device_infoGET
      parameters:
Elian Kraja's avatar
Elian Kraja committed
103
104
105
        - in: query
          name: gwId
          schema:
Muhammad Hamza's avatar
Muhammad Hamza committed
106
107
108
            type: array
            items:
              type: string
Elian Kraja's avatar
Elian Kraja committed
109
          required: false
Muhammad Hamza's avatar
Muhammad Hamza committed
110
          description: "Comma separated list of gateway identifier"
Elian Kraja's avatar
Elian Kraja committed
111
112
113
114
115
        - in: query
          name: deviceId
          schema:
            type: array
            items:
Muhammad Hamza's avatar
Muhammad Hamza committed
116
              type: string
Elian Kraja's avatar
Elian Kraja committed
117
          required: false
Muhammad Hamza's avatar
Muhammad Hamza committed
118
          description: "Comma separated list of device identifier."
Elian Kraja's avatar
Elian Kraja committed
119
120
121
122
123
        - in: query
          name: deviceStatus
          schema:
            type: array
            items:
Muhammad Hamza's avatar
Muhammad Hamza committed
124
125
126
127
128
              type: integer
          description: "Comma separated list of device status."

      responses:
        "200":
129
          description: "Upon success, a response body containing the information of zero or more devices is returned."
Elian Kraja's avatar
Elian Kraja committed
130
131
132
          content:
            application/json:
              schema:
133
134
135
                type: array
                items:
                 $ref: "#/components/schemas/DeviceInfo"
Muhammad Hamza's avatar
Muhammad Hamza committed
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "406":
          $ref: "#/components/responses/406"
        "429":
          $ref: "#/components/responses/429"

  /queries/cable_line_info:
    get:
      tags:
        - "Cable line info"
      summary: "It Queries information about the cable line of a fixed access network."
      description: "It Queries information about the cable line of a fixed access network."
      operationId: cable_line_infoGET
      parameters:
157
158
159
        - in: query
          name: customerPremisesInfo
          schema:
Muhammad Hamza's avatar
Muhammad Hamza committed
160
161
162
            type: array
            items:
              $ref: "#/components/schemas/CpInfo"
163
          required: false
Muhammad Hamza's avatar
Muhammad Hamza committed
164
          description: "Comma separated list of customer premises information"
165
166
167
168
169
        - in: query
          name: cmId
          schema:
            type: array
            items:
Muhammad Hamza's avatar
Muhammad Hamza committed
170
              type: string
171
          required: false
Muhammad Hamza's avatar
Muhammad Hamza committed
172
173
174
175
          description: "Comma separated list of Cable Modem identifiers."

      responses:
        "200":
176
          description: "Upon success, a response body containing the information of zero or more cable lines is returned."
177
178
179
          content:
            application/json:
              schema:
Muhammad Hamza's avatar
Muhammad Hamza committed
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
                $ref: "#/components/schemas/CableLineInfo"
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "406":
          $ref: "#/components/responses/406"
        "429":
          $ref: "#/components/responses/429"
  /queries/optical_network_info:
    get:
      tags:
        - "Optical network info"
      summary: "used to query information about the optical network."
      description: "used to query information about the optical network."
      operationId: optical_network_infoGET
      parameters:
201
202
203
        - in: query
          name: customerPremisesInfo
          schema:
Muhammad Hamza's avatar
Muhammad Hamza committed
204
205
206
            type: array
            items:
              $ref: "#/components/schemas/CpInfo"
207
          required: false
Muhammad Hamza's avatar
Muhammad Hamza committed
208
          description: "Comma separated list of customer premises information"
209
210
211
212
213
        - in: query
          name: ponYS_ID
          schema:
            type: array
            items:
Muhammad Hamza's avatar
Muhammad Hamza committed
214
              type: string
215
          required: false
Muhammad Hamza's avatar
Muhammad Hamza committed
216
          description: "Comma separated list of optical system identifiers."
217
218
219
220
221
        - in: query
          name: onuId
          schema:
            type: array
            items:
Muhammad Hamza's avatar
Muhammad Hamza committed
222
              type: string
223
          required: false
Muhammad Hamza's avatar
Muhammad Hamza committed
224
225
226
227
          description: "Comma separated list of optical network unit identifiers."

      responses:
        "200":
228
          description: "Upon success, a response body containing the information of zero or more optical networks is returned"
229
230
231
232
233
          content:
            application/json:
              schema:
                type: array
                items:
Muhammad Hamza's avatar
Muhammad Hamza committed
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
                  $ref: "#/components/schemas/PonInfo"
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "406":
          $ref: "#/components/responses/406"
        "429":
          $ref: "#/components/responses/429"

  /subscriptions:
    get:
      tags:
        - "Subscription"
      summary: "request information about the subscriptions for this requestor."
      description: "request information about the subscriptions for this requestor."
      operationId: subGET
      parameters:
256
257
258
        - in: query
          name: subscription_type
          schema:
Muhammad Hamza's avatar
Muhammad Hamza committed
259
            type: string
260
          required: false
Muhammad Hamza's avatar
Muhammad Hamza committed
261

262
          description: "Query parameter to filter on a specific subscription type. Permitted values onu_alarm Optical Network Unit alarm  device_abnormal_alert Device abnormal alert - cm_connectivity_state Cable Modem connectivity state - ani_alarm Access Node Interface alarm"
Muhammad Hamza's avatar
Muhammad Hamza committed
263
264
265
      responses:
        "200":
          description: "A response body containing the list of links to requestor subscriptions is returned."
266
267
268
          content:
            application/json:
              schema:
Muhammad Hamza's avatar
Muhammad Hamza committed
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
                $ref: "#/components/schemas/SubscriptionLinkList"
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "406":
          $ref: "#/components/responses/406"
        "429":
          $ref: "#/components/responses/429"
    post:
      tags:
        - "Subscription"
      summary: " create a new subscription to FAI notifications."
      description: " create a new subscription to FAI notifications."
      operationId: subPOST
      requestBody:
289
290
291
292
293
        required: true
        content:
          application/json:
            schema:
              oneOf:
Muhammad Hamza's avatar
Muhammad Hamza committed
294
295
296
297
298
299
300
301
                - $ref: "#/components/schemas/OnuAlarmSubscription"
                - $ref: "#/components/schemas/DevInfoSubscription"
                - $ref: "#/components/schemas/CmConnSubscription"
                - $ref: "#/components/schemas/AniAlarmSubscription"

      responses:
        "201":
          description: "In the returned NotificationSubscription structure, the created subscription is described using the appropriate data type."
302
303
304
          content:
            application/json:
              schema:
Muhammad Hamza's avatar
Muhammad Hamza committed
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
                oneOf:
                  - $ref: "#/components/schemas/OnuAlarmSubscription"
                  - $ref: "#/components/schemas/DevInfoSubscription"
                  - $ref: "#/components/schemas/CmConnSubscription"
                  - $ref: "#/components/schemas/AniAlarmSubscription"
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "406":
          $ref: "#/components/responses/406"
        "415":
          $ref: "#/components/responses/415"
        "422":
          $ref: "#/components/responses/422"
        "429":
          $ref: "#/components/responses/429"

      callbacks:
        notification:
          "{$request.body#/callbackReference}":
330
            post:
Muhammad Hamza's avatar
Muhammad Hamza committed
331
332
              summary: "Callback POST used to send a notification"
              description: "A notification from FAIS."
333
334
335
336
337
338
339
340
              operationId: notificationPOST
              requestBody:
                description: Subscription notification
                required: true
                content:
                  application/json:
                    schema:
                      oneOf:
Muhammad Hamza's avatar
Muhammad Hamza committed
341
342
343
344
                        - $ref: "#/components/schemas/OnuAlarmNotification"
                        - $ref: "#/components/schemas/DevInfoNotification"
                        - $ref: "#/components/schemas/CmConnNotification"
                        - $ref: "#/components/schemas/AniAlarmNotification"
345
              responses:
Muhammad Hamza's avatar
Muhammad Hamza committed
346
347
                "204":
                  $ref: "#/components/responses/204"
348

Muhammad Hamza's avatar
Muhammad Hamza committed
349
350
351
352
353
354
355
356
  /subscriptions/{subscriptionId}:
    parameters:
      - in: path
        name: subscriptionId
        description: "Refers to created subscription, where the FAI API allocates a unique resource name for this subscription"
        schema:
          type: string
        required: true
357
358
359

    get:
      tags:
Muhammad Hamza's avatar
Muhammad Hamza committed
360
361
362
        - "Subscription"
      summary: "Retrieve information about this subscription."
      description: "Retrieve information about this subscription."
363
      operationId: individualSubscriptionGET
Muhammad Hamza's avatar
Muhammad Hamza committed
364

365
      responses:
Muhammad Hamza's avatar
Muhammad Hamza committed
366
367
        "200":
          description: "A response body containing data type describing the specific FAI event subscription is returned"
368
369
370
          content:
            application/json:
              schema:
Muhammad Hamza's avatar
Muhammad Hamza committed
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
                oneOf:
                  - $ref: "#/components/schemas/OnuAlarmSubscription"
                  - $ref: "#/components/schemas/DevInfoSubscription"
                  - $ref: "#/components/schemas/CmConnSubscription"
                  - $ref: "#/components/schemas/AniAlarmSubscription"
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "406":
          $ref: "#/components/responses/406"
        "429":
          $ref: "#/components/responses/429"
388
389
390

    put:
      tags:
Muhammad Hamza's avatar
Muhammad Hamza committed
391
392
393
        - "Subscription"
      summary: "Used to update the existing subscription."
      description: "Used to update the existing subscription."
394
395
396
397
398
399
400
      operationId: individualSubscriptionPUT
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
Muhammad Hamza's avatar
Muhammad Hamza committed
401
402
403
404
                - $ref: "#/components/schemas/OnuAlarmSubscription"
                - $ref: "#/components/schemas/DevInfoSubscription"
                - $ref: "#/components/schemas/CmConnSubscription"
                - $ref: "#/components/schemas/AniAlarmSubscription"
405
      responses:
Muhammad Hamza's avatar
Muhammad Hamza committed
406
407
        "200":
          description: "A response body containing data type describing the updated subscription is returned"
408
409
410
          content:
            application/json:
              schema:
Muhammad Hamza's avatar
Muhammad Hamza committed
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
                oneOf:
                  - $ref: "#/components/schemas/OnuAlarmSubscription"
                  - $ref: "#/components/schemas/DevInfoSubscription"
                  - $ref: "#/components/schemas/CmConnSubscription"
                  - $ref: "#/components/schemas/AniAlarmSubscription"
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"

        "403":
          $ref: "#/components/responses/403"

        "404":
          $ref: "#/components/responses/404"

        "406":
          $ref: "#/components/responses/406"

        "412":
          $ref: "#/components/responses/412"

        "422":
          $ref: "#/components/responses/422"

        "429":
          $ref: "#/components/responses/429"
438
439
    delete:
      tags:
Muhammad Hamza's avatar
Muhammad Hamza committed
440
441
442
        - "Subscription"
      summary: "Used to cancel the existing subscription."
      description: "Used to cancel the existing subscription."
443
444
      operationId: individualSubscriptionDELETE
      responses:
Muhammad Hamza's avatar
Muhammad Hamza committed
445
446
447
448
449
450
451
452
453
454
455
        "204":
          $ref: "#/components/responses/204"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "429":
          $ref: "#/components/responses/429"

Elian Kraja's avatar
Elian Kraja committed
456
457
458
components:
  schemas:
    AniAlarmNotification.alarm:
Muhammad Hamza's avatar
Muhammad Hamza committed
459
460
461
462
463
464
465
466
467
468
469
470
471
      description: "Indicates the alarm of the ANI: 0 = LowReceivedOpticalPower. 1 = HighReceivedOpticalPower. 2 = SignalFailure. 3 = SignalDegrade. 4 = LowTransmitOpticalPower.5 = HighTransmitOpticalPower.6 = LaserBiasCurrent."
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
      type: integer
      x-etsi-mec-cardinality: "1"
      x-etsi-mec-origin-type: Enum

Elian Kraja's avatar
Elian Kraja committed
472
473
    AniAlarmNotification.aniId:
      properties:
Muhammad Hamza's avatar
Muhammad Hamza committed
474
        onuId:
Elian Kraja's avatar
Elian Kraja committed
475
476
          description: The unique identifiers for the optical network unit.
          type: string
Muhammad Hamza's avatar
Muhammad Hamza committed
477
          x-etsi-mec-cardinality: "1"
Elian Kraja's avatar
Elian Kraja committed
478
          x-etsi-mec-origin-type: String
Muhammad Hamza's avatar
Muhammad Hamza committed
479
        aniIndex:
Elian Kraja's avatar
Elian Kraja committed
480
481
          description: The index of an access network interface supported by the optical network unit.
          type: string
Muhammad Hamza's avatar
Muhammad Hamza committed
482
483
          x-etsi-mec-cardinality: "1"
          x-etsi-mec-origin-type: String
Elian Kraja's avatar
Elian Kraja committed
484
      required:
Muhammad Hamza's avatar
Muhammad Hamza committed
485
486
487
        - onuId
        - aniIndex

Elian Kraja's avatar
Elian Kraja committed
488
489
490
    AniAlarmNotification:
      properties:
        alarm:
Muhammad Hamza's avatar
Muhammad Hamza committed
491
          $ref: "#/components/schemas/AniAlarmNotification.alarm"
Elian Kraja's avatar
Elian Kraja committed
492
        aniId:
Muhammad Hamza's avatar
Muhammad Hamza committed
493
494
          $ref: "#/components/schemas/AniAlarmNotification.aniId"

Elian Kraja's avatar
Elian Kraja committed
495
496
497
        customerPremisesInfo:
          description: The physical location of the related customer sites.
          items:
Muhammad Hamza's avatar
Muhammad Hamza committed
498
            $ref: "#/components/schemas/CpInfo"
Elian Kraja's avatar
Elian Kraja committed
499
500
501
502
503
504
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: CpInfo
        notificationType:
          description: Shall be set to "AniAlarmNotification".
          type: string
Muhammad Hamza's avatar
Muhammad Hamza committed
505
          x-etsi-mec-cardinality: "1"
Elian Kraja's avatar
Elian Kraja committed
506
507
508
509
510
511
512
          x-etsi-mec-origin-type: String
        onuId:
          type: string
        timeStamp:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
Muhammad Hamza's avatar
Muhammad Hamza committed
513
          $ref: "#/components/schemas/TimeStamp"
Elian Kraja's avatar
Elian Kraja committed
514
      required:
Muhammad Hamza's avatar
Muhammad Hamza committed
515
516
517
        - notificationType
        - aniIndex
        - alarm
Elian Kraja's avatar
Elian Kraja committed
518
519
      type: object
      x-etsi-ref: 6.4.6
Muhammad Hamza's avatar
Muhammad Hamza committed
520

Elian Kraja's avatar
Elian Kraja committed
521
    AniAlarmSubscription.filterCriteriaAniAlarm.alarms:
Muhammad Hamza's avatar
Muhammad Hamza committed
522
523
524
525
526
527
528
529
530
531
532
533
      description: "In case alarms is not included in the subscription request, the default value -1 = All shall be used and included in the response:\n0  =\tLowReceivedOpticalPower.\n(Received downstream optical power below threshold.)\n1  =\tHighReceivedOpticalPower.\n\t(Received downstream optical power above threshold.)\n2  =\tSignalFalure.\n(Bit error-based signal fail.)\n3  =\tSignalDegrade.\n(Bit error-based signal degrade.)\n4  =\tLowTransmitOpticalPower.\n(Transmit optical power below lower threshold.)\n5  =\tHighTransmitOpticalPower.\n(Transmit optical power above upper threshold.)\n6  =\tLaserBiasCurrent.\n(Laser bias current above threshold determined by vendor.)\n-1 =\tAll."
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - -1
      type: integer

Elian Kraja's avatar
Elian Kraja committed
534
    AniAlarmSubscription.links:
Muhammad Hamza's avatar
Muhammad Hamza committed
535
536
537
538
539
540
541
542
543
      properties:
        self:
          # description': Self referring URI. The URI shall be unique within the FAI API as it acts as an ID for the subscription.
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': LinkType
          $ref: "#/components/schemas/LinkType"
      required:
        - self

Elian Kraja's avatar
Elian Kraja committed
544
    AniAlarmSubscription.filterCriteriaAniAlarm:
Muhammad Hamza's avatar
Muhammad Hamza committed
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
      description: "List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response."
      required:
        - onuId
        - aniId
      properties:
        customerPremisesInfo:
          required:
            - onuId
            - aniId
          description: 0 to N physical locations of the customer sites.
          type: array
          items:
            $ref: "#/components/schemas/CpInfo"

          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: CpInfo
        onuId:
          description: "1 to N unique identifiers for the optical network units.  Typical it is the unique serial number for each ONU, which contains the vendor ID and version number. The first four bytes are an ASCII-encoded four-letter vendor ID. The second four bytes are a binary encoded serial number, under the control of the ONU vendor."
          type: array
          items:
            type: string
            x-etsi-mec-cardinality: "1..N"
            x-etsi-mec-origin-type: String

        aniId:
          description: ""
          type: object
Elian Kraja's avatar
Elian Kraja committed
572
          required:
Muhammad Hamza's avatar
Muhammad Hamza committed
573
574
            - onuId
            - aniIndex
Elian Kraja's avatar
Elian Kraja committed
575
576
          properties:
            onuId:
Muhammad Hamza's avatar
Muhammad Hamza committed
577
578
579
580
581
582
583
584
585
586
              description: "The unique identifiers for the optical network unit"
              type: string
            aniIndex:
              description: "The index of an access network interface supported by the optical network unit"
              type: string
        alarms:
          type: array
          items:
            $ref: "#/components/schemas/AniAlarmSubscription.filterCriteriaAniAlarm.alarms"

Elian Kraja's avatar
Elian Kraja committed
587
588
589
    AniAlarmSubscription:
      properties:
        subscriptionType:
Muhammad Hamza's avatar
Muhammad Hamza committed
590
591
          description: 'Shall be set to \"AniAlarmSubscription\"'
          type: string
Elian Kraja's avatar
Elian Kraja committed
592
        _links:
Muhammad Hamza's avatar
Muhammad Hamza committed
593
          $ref: "#/components/schemas/AniAlarmSubscription.links"
Elian Kraja's avatar
Elian Kraja committed
594
595
596
        aniIndex:
          description: The index of an access network interface supported by the optical network unit.
          type: string
Muhammad Hamza's avatar
Muhammad Hamza committed
597
          x-etsi-mec-cardinality: "1"
Elian Kraja's avatar
Elian Kraja committed
598
599
          x-etsi-mec-origin-type: String
        callbackReference:
600
          description: URI exposed by the client on which to receive notifications via HTTP. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.
Elian Kraja's avatar
Elian Kraja committed
601
602
          format: uri
          type: string
Muhammad Hamza's avatar
Muhammad Hamza committed
603
          x-etsi-mec-cardinality: "1"
Elian Kraja's avatar
Elian Kraja committed
604
          x-etsi-mec-origin-type: URI
605
606
607
608
609
610
        requestTestNotification:
          description: Shall be set to TRUE by the service consumer to request
          type: boolean      
        websockNotifConfig:
          description: Provides details to negotiate and signal the use of a Websocket connection between FAIS and the service consumer for notifications. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.
          $ref: "#/components/schemas/WebsockNotifConfig" 
Elian Kraja's avatar
Elian Kraja committed
611
612
613
614
        expiryDeadline:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
Muhammad Hamza's avatar
Muhammad Hamza committed
615
          $ref: "#/components/schemas/TimeStamp"
Elian Kraja's avatar
Elian Kraja committed
616
        filterCriteriaAniAlarm:
Muhammad Hamza's avatar
Muhammad Hamza committed
617
          $ref: "#/components/schemas/AniAlarmSubscription.filterCriteriaAniAlarm"
Elian Kraja's avatar
Elian Kraja committed
618
      required:
Muhammad Hamza's avatar
Muhammad Hamza committed
619
620
621
622
623
        - subscriptionType
        - callbackReference
        - filterCriteriaAniAlarm
        - onuId
        - aniIndex
Elian Kraja's avatar
Elian Kraja committed
624
625
      type: object
      x-etsi-ref: 6.3.6
Muhammad Hamza's avatar
Muhammad Hamza committed
626
627


628
629
630
    CableLineInfo.cmStatus:
      description: "It provides CM connectivity status information of the CM."
      type: object
Muhammad Hamza's avatar
Muhammad Hamza committed
631
632
      required:
        - ifIndex
633
634
635
636
637
638
        - cmRegState
        - resets
        - lostSyncs
        - invalidRegRsps
        - energyMgt1x1OperStatus
        - emDlsOperStatus
Muhammad Hamza's avatar
Muhammad Hamza committed
639
640
      properties:
        ifIndex:
641
          description: "It denotes the MAC Domain interface index of the CM."
Muhammad Hamza's avatar
Muhammad Hamza committed
642
          type: string
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
        cmRegState:
          type: integer
          description: "It indicates the CM connectivity state. Enumeration of:  1 = notReady. 2 = notSynchronized. 3 = phySynchronized. 4 = dsTopologyResolutionInProgress.5 = usParametersAcquired. 6 = rangingInProgress.7 = rangingComplete. 8 = eaeInProgress.9 = dhcpv4InProgress. 10 = dhcpv6InProgress.11 = dhcpV4Complete.12 = dhcpV6Complete.13 = todEstablished.14 = securityEstablished.15 = configFileDownloadComplete.16 = registrationInProgress.17 = registrationComplete. 18 = accessDenied. 19 =operational. 20 = bpiInit.21 =forwardingDisabled. 22 = rangingInProgress. 23 = rfMuteAll."
          enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23   
        resets:
          description: "It denotes the number of times the CM reset or initialized this interface."
Muhammad Hamza's avatar
Muhammad Hamza committed
672
673
          type: integer
        lostSyncs:
674
          description: "It denotes the number of times the CM lost synchronization with the downstream channel."
Muhammad Hamza's avatar
Muhammad Hamza committed
675
          type: integer
676
677
        invalidRegRsps:
          description: "It denotes the number of times the CM received invalid registration response messages."
Muhammad Hamza's avatar
Muhammad Hamza committed
678
          type: integer
679
680
681
682
683
684
685
686
687
688
        energyMgt1x1OperStatus:
          description: "It indicates whether the CM is currently operating in Energy Management 1x1 Mode."
          type: boolean
        emDlsOperStatus:
          description: "It indicates whether the CM is currently operating in Energy Management DLS Mode."
          type: boolean          



    CableLineInfo.cmDpvStats:
Muhammad Hamza's avatar
Muhammad Hamza committed
689
690
      required:
        - ifIndex
691
692
693
694
695
696
        - lastMeasLatency
        - lastMeasTime
        - minLatency
        - maxLatency
        - avgLatency
        - numMeas
Muhammad Hamza's avatar
Muhammad Hamza committed
697
698
699
700
701
      properties:
        ifIndex:
          description: It represents the interface Index of the Downstream Interface where the measurements are taken.
          type: string
        lastMeasLatency:
702
          description: The last latency measurement
Muhammad Hamza's avatar
Muhammad Hamza committed
703
704
          type: integer
        lastMeasTime:
705
706
707
708
         $ref: "#/components/schemas/TimeStamp"
        minLatency:
          description: The minimum latency measurement.
          type: integer
Muhammad Hamza's avatar
Muhammad Hamza committed
709
710
711
        maxLatency:
          description: The maximum latency measurement.
          type: integer
712
713
        avgLatency:
          description: The average latency measurement.
Muhammad Hamza's avatar
Muhammad Hamza committed
714
715
716
717
718
          type: integer
        numMeas:
          description: The number of latency measurements made.
          type: integer

719
720
721
722
723
724
725
726
727
728
    CableLineInfo.serviceFlowStats.serviceFlowInfo:
      type: object
      required:
         - serviceFlowId
         - description
         - timeCreated
         - timeActive
         - policedDropPkts
         - policedDelayPkts
         - aqmDroppedPkts
Muhammad Hamza's avatar
Muhammad Hamza committed
729
      properties:
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
          serviceFlowId:
            description: It represents an identifier assigned to a Service Flow by CMTS within a MAC Domain.
            type: integer
          pkts:
            description: For outgoing Service Flows, this attribute counts the number of Packet Data PDUs forwarded to this Service Flow. For incoming upstream CMTS service flows, this attribute counts the number of Packet Data PDUs actually received on the Service Flow identified by the SID for which the packet was scheduled.
            type: integer
          timeCreated:
            description: For outgoing Service Flows, this attribute counts the number of Packet Data PDUs forwarded to this Service Flow. For incoming upstream CMTS service flows, this attribute counts the number of Packet Data PDUs actually received on the Service Flow identified by the SID for which the packet was scheduled.
            $ref: "#/components/schemas/TimeStamp"
          timeActive:
            description: FIt indicates the number of seconds that the service flow has been active
            type: integer
          policedDropPkts:
            description: For upstream service flows, this attribute counts the number of Packet Data PDUs classified to this service flow dropped due to 1) exceeding the selected Buffer Size for the service flow; or 2) UGS packets dropped due to exceeding the Unsolicited Grant Size with a Request/Transmission policy that requires such packets to be dropped.
            type: integer
          policedDelayPkts:
            description: It counts only outgoing packets delayed in order to maintain the Maximum Sustained Traffic Rate.
            type: integer
          aqmDroppedPkts:
            description: For upstream service flows on which AQM is enabled, this attribute counts the number of Packet Data PDUs classified to this service flow dropped due to Active Queue Management drop decisions.
            type: integer

    CableLineInfo.serviceFlowStats:
      type: object
      required:
        - ifIndex
        - serviceFlowInfo
      ifIndex:
          description: It represents the interface index of the MAC Domain of the Service Flow.
Muhammad Hamza's avatar
Muhammad Hamza committed
759
          type: string
760
761
      serviceFlowInfo:
          description: It represents the information of a Service Flow.
Muhammad Hamza's avatar
Muhammad Hamza committed
762
763
          type: array
          items:
764
              $ref: "#/components/schemas/CableLineInfo.serviceFlowStats.serviceFlowInfo"
Muhammad Hamza's avatar
Muhammad Hamza committed
765

766
767
    CableLineInfo:
      type: object
Muhammad Hamza's avatar
Muhammad Hamza committed
768
      required:
769
        - customerPremisesInfo
Muhammad Hamza's avatar
Muhammad Hamza committed
770
771
772
773
774
775
776
        - cmId
      properties:
        timeStamp:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
          $ref: "#/components/schemas/TimeStamp"
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
        customerPremisesInfo:
          # description': The physical location of a customer site.
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': CpInfo
          $ref: "#/components/schemas/CpInfo"          
        cmId:
          type: string
          description: Information (typically the serial number) to identify a Cable Modem at subscriber locations intended for use in conveying data communications on a cable data system.
                        This value SHALL remain fixed over the lifetime of the device, including across firmware updates.        
        cmStatus:
          $ref: "#/components/schemas/CableLineInfo.cmStatus"
        cmDpvStats:
           $ref: "#/components/schemas/CableLineInfo.cmDpvStats"
        serviceFlowStats:
          $ref: "#/components/schemas/CableLineInfo.serviceFlowStats"
Muhammad Hamza's avatar
Muhammad Hamza committed
792
793
      x-etsi-ref: 6.2.4

794
    CmConnNotification.cmIf.cmRegState:
795
      description: "It indicates the CM connectivity state. Enumeration of  1 = notReady. 2 = notSynchronized. 3 = phySynchronized. 4 = dsTopologyResolutionInProgress.5 = usParametersAcquired. 6 = rangingInProgress.7 = rangingComplete. 8 = eaeInProgress.9 = dhcpv4InProgress. 10 = dhcpv6InProgress.11 = dhcpV4Complete.12 = dhcpV6Complete.13 = todEstablished.14 = securityEstablished.15 = configFileDownloadComplete.16 = registrationInProgress.17 = registrationComplete. 18 = accessDenied. 19 =operational. 20 = bpiInit.21 =forwardingDisabled. 22 = rangingInProgress. 23 = rfMuteAll."
Muhammad Hamza's avatar
Muhammad Hamza committed
796
      enum:
Elian Kraja's avatar
Elian Kraja committed
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
        - 9
        - 10
        - 11
        - 12
        - 13
        - 14
        - 15
        - 16
        - 17
        - 18
        - 19
        - 20
        - 21
Muhammad Hamza's avatar
Muhammad Hamza committed
818
819
      type: integer

Elian Kraja's avatar
Elian Kraja committed
820
    CmConnNotification.cmIf:
Muhammad Hamza's avatar
Muhammad Hamza committed
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
      description: ""
      properties:
        cmId:
          description: The Cable Modem identifier.
          type: string
          x-etsi-mec-cardinality: "1"
          x-etsi-mec-origin-type: String
        cmRegState:
          items:
            $ref: "#/components/schemas/CmConnNotification.cmIf.cmRegState"
          minItems: 1
          type: array
          x-etsi-mec-cardinality: 1..N
          x-etsi-mec-origin-type: Enum
        ifIndex:
          description: The MAC Domain interface index of the CM.
          items:
            type: string
          minItems: 1
          type: array
          x-etsi-mec-cardinality: 1..N
          x-etsi-mec-origin-type: String
      required:
        - cmId
        - ifIndex
        - cmRegState

Elian Kraja's avatar
Elian Kraja committed
848
    CmConnNotification:
Muhammad Hamza's avatar
Muhammad Hamza committed
849
      required:
Elian Kraja's avatar
Elian Kraja committed
850
851
        - notificationType
        - cmIf
Muhammad Hamza's avatar
Muhammad Hamza committed
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
      properties:
        cmIf:
          type: array
          items:
            $ref: "#/components/schemas/CmConnNotification.cmIf"
        customerPremisesInfo:
          # description': The physical location of a customer site.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': CpInfo
          $ref: "#/components/schemas/CpInfo"
        notificationType:
          description: 'Shall be set to \"CmconnNotification\".'
          type: string
          x-etsi-mec-cardinality: "1"
          x-etsi-mec-origin-type: String
        timeStamp:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
          $ref: "#/components/schemas/TimeStamp"
      type: object

      x-etsi-ref: 6.4.4

Elian Kraja's avatar
Elian Kraja committed
876
    CmConnSubscription.links:
Muhammad Hamza's avatar
Muhammad Hamza committed
877
878
879
880
881
882
883
884
885
886
887
      description: Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests.
      properties:
        self:
          # description': Self referring URI. The URI shall be unique within the FAI API as it acts as an ID for the subscription.
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': LinkType
          $ref: "#/components/schemas/LinkType"
      required:
        - self
      type: object
      x-etsi-mec-cardinality: 0..1
888
889

    CmConnSubscription.filterCriteriaCmConn.cmIf.cmRegState:
Muhammad Hamza's avatar
Muhammad Hamza committed
890
891
      description: "It indicates the CM connectivity state. Enumeration of:  1 = notReady. 2 = notSynchronized. 3 = phySynchronized. 4 = dsTopologyResolutionInProgress.5 = usParametersAcquired. 6 = rangingInProgress.7 = rangingComplete. 8 = eaeInProgress.9 = dhcpv4InProgress. 10 = dhcpv6InProgress.11 = dhcpV4Complete.12 = dhcpV6Complete.13 = todEstablished.14 = securityEstablished.15 = configFileDownloadComplete.16 = registrationInProgress.17 = registrationComplete. 18 = accessDenied. 19 =operational. 20 = bpiInit.21 =forwardingDisabled."
      enum:
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
        - 9
        - 10
        - 11
        - 12
        - 13
        - 14
        - 15
        - 16
        - 17
        - 18
        - 19
        - 20
        - 21
Muhammad Hamza's avatar
Muhammad Hamza committed
913
914
      type: integer

Elian Kraja's avatar
Elian Kraja committed
915
    CmConnSubscription.filterCriteriaCmConn.cmIf:
Muhammad Hamza's avatar
Muhammad Hamza committed
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
      description: ""
      properties:
        cmId:
          description: The identifier of a Cable Modem at subscriber locations intended for use in conveying data communications on a cable data system.
          type: string
          x-etsi-mec-cardinality: "1"
          x-etsi-mec-origin-type: String
        cmRegState:
          items:
            $ref: "#/components/schemas/CmConnSubscription.filterCriteriaCmConn.cmIf.cmRegState"
          minItems: 1
          type: array
          x-etsi-mec-cardinality: 1..N
          x-etsi-mec-origin-type: Enum
        ifIndex:
          description: The MAC Domain interface index of the CM.
          items:
            type: string
          minItems: 1
          type: array
          x-etsi-mec-cardinality: 1..N
          x-etsi-mec-origin-type: String
      required:
        - cmId
        - ifIndex
        - cmRegState
    CmConnSubscription.filterCriteriaCmConn:
      description: List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response.
      properties:
        cmIf:
          type: array
          items:
            $ref: "#/components/schemas/CmConnSubscription.filterCriteriaCmConn.cmIf"
        customerPremisesInfo:
          # description': The physical location of a customer site.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': CpInfo
          $ref: "#/components/schemas/CpInfo"

      type: object
      x-etsi-mec-cardinality: "1"

Elian Kraja's avatar
Elian Kraja committed
958
959
960
    CmConnSubscription:
      properties:
        _links:
Muhammad Hamza's avatar
Muhammad Hamza committed
961
          $ref: "#/components/schemas/CmConnSubscription.links"
Elian Kraja's avatar
Elian Kraja committed
962
        callbackReference:
963
          description: URI exposed by the client on which to receive notifications via HTTP. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.
Elian Kraja's avatar
Elian Kraja committed
964
965
          format: uri
          type: string
Muhammad Hamza's avatar
Muhammad Hamza committed
966
          x-etsi-mec-cardinality: "1"
Elian Kraja's avatar
Elian Kraja committed
967
          x-etsi-mec-origin-type: URI
968
969
970
971
972
973
        requestTestNotification:
          description: Shall be set to TRUE by the service consumer to request
          type: boolean      
        websockNotifConfig:
          description: Provides details to negotiate and signal the use of a Websocket connection between FAIS and the service consumer for notifications. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.
          $ref: "#/components/schemas/WebsockNotifConfig" 
Elian Kraja's avatar
Elian Kraja committed
974
975
976
977
        expiryDeadline:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
Muhammad Hamza's avatar
Muhammad Hamza committed
978
          $ref: "#/components/schemas/TimeStamp"
Elian Kraja's avatar
Elian Kraja committed
979
        filterCriteriaCmConn:
Muhammad Hamza's avatar
Muhammad Hamza committed
980
          $ref: "#/components/schemas/CmConnSubscription.filterCriteriaCmConn"
Elian Kraja's avatar
Elian Kraja committed
981
982
983
        subscriptionType:
          description: Shall be set to "CmConnSubscription".
          type: string
Muhammad Hamza's avatar
Muhammad Hamza committed
984
          x-etsi-mec-cardinality: "1"
Elian Kraja's avatar
Elian Kraja committed
985
986
          x-etsi-mec-origin-type: String
      required:
Muhammad Hamza's avatar
Muhammad Hamza committed
987
988
        - subscriptionType
        - filterCriteriaCmConn
Elian Kraja's avatar
Elian Kraja committed
989
990
991
992
993
994
      type: object
      x-etsi-notes: "NOTE:\t'notReady' indicates that the CM has not started the registration process yet.\n\t'notSynchronized' indicates that the CM has not initiated or completed the synchronization of the downstream physical layer.\n\t'phySynchronized' indicates that the CM has completed the synchronization of the downstream physical layer.\n\t'dsTopologyResolutionInProgress' indicates that the CM is attempting to determine its MD-DS-SG.\n\t'usParametersAcquired' indicates that the CM has completed the upstream parameters acquisition or have completed the downstream and upstream service groups resolution.\n\t'rangingInProgress' indicates that the CM has initiated the initial ranging process.\n\t'rangingComplete' indicates that the CM has completed initial ranging and received a Ranging Status of success from the CMTS in the RNG-RSP message.\n\t'eaeInProgress' indicates that the CM has sent an Auth Info message for EAE.\n\t'dhcpv4InProgress' indicates that the CM has sent a DHCPv4 DISCOVER to gain IP connectivity.\n\t'dhcpv6InProgress' indicates that the CM has sent a DHCPv6 Solicit message.\n\t'dhcpv4Complete' indicates that the CM has received a DHCPv4 ACK message from the CMTS.\n\t'dhcpv6Complete' indicates that the CM has received a DHCPv6 Reply message from the CMTS.\n\t'todEstablished' indicates that the CM has successfully acquired time of day.\n\t'securityEstablished' indicates that the CM has successfully completed the BPI initialization process.\n\t'configFileDownloadComplete' indicates that the CM has completed the config file download process.\n\t'registrationInProgress' indicates that the CM has sent a Registration Request.\n\t'registrationComplete' indicates that the CM has successfully completed the Registration process with the CMTS.\n\t'accessDenied' indicates that the CM has received a registration aborted notification from the CMTS.\n\t'operational' indicates that the CM has completed all necessary initialization steps and is operational.\n\t'bpiInit' indicates that the CM has started the BPI initialization process as indicated in the CM config file.\n\t'forwardingDisabled' indicates that the registration process was completed, but the network access option in the received configuration file prohibits forwarding."
      x-etsi-ref: 6.3.4
    CpInfo:
      properties:
        latitude:
995
          description: "Latitude (DATUM=WGS84) -90 to 90 in decimal degree format DDD.ddd"
Elian Kraja's avatar
Elian Kraja committed
996
997
998
999
1000
          format: Float
          type: number
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Float
        longitude:
1001
          description: "Longitude (DATUM=WGS84) -180 to 180 in decimal degree format DDD.ddd"
Elian Kraja's avatar
Elian Kraja committed
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
          format: Float
          type: number
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Float
        postalCode:
          description: Postal code for the location
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
      type: object
      x-etsi-ref: 6.5.3
    DevInfoNotification:
      properties:
        deviceErrStatus:
Muhammad Hamza's avatar
Muhammad Hamza committed
1016
          $ref: "#/components/schemas/deviceErrStatus"
Elian Kraja's avatar
Elian Kraja committed
1017
        #  x-etsi-mec-cardinality: '1'
Muhammad Hamza's avatar
Muhammad Hamza committed
1018
        # x-etsi-mec-origin-type: Enum
Elian Kraja's avatar
Elian Kraja committed
1019
1020
1021
        deviceId:
          description: The identifier for a device.
          type: string
Muhammad Hamza's avatar
Muhammad Hamza committed
1022
          x-etsi-mec-cardinality: "1"
Elian Kraja's avatar
Elian Kraja committed
1023
1024
1025
1026
          x-etsi-mec-origin-type: String
        notificationType:
          description: Shall be set to "DevInfoNotification".
          type: string
Muhammad Hamza's avatar
Muhammad Hamza committed
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
          x-etsi-mec-cardinality: "1"
          x-etsi-mec-origin-type: String
        timeStamp:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
          $ref: "#/components/schemas/TimeStamp"
      required:
        - notificationType
        - deviceId
        - deviceErrStatus
      type: object
      x-etsi-ref: 6.4.3

    deviceErrStatus:
      description: "The abnormal operational status of the device. Enumeration of:  1 = Error. 2 = Disabled."
      enum:
        - 1
        - 2
      type: integer

    DevInfoSubscription.links:
      description: Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests.
      properties:
        self:
          # description': Self referring URI. The URI shall be unique within the FAI API as it acts as an ID for the subscription.
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': LinkType
          $ref: "#/components/schemas/LinkType"
      required:
        - self
      type: object
      x-etsi-mec-cardinality: 0..1

    DevInfoSubscription.filterCriteriaDevInfo:
      description: List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response.
      properties:
        deviceErrStatus:
          items:
            $ref: "#/components/schemas/deviceErrStatus"
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: Enum
        deviceId:
          description: The device identifier.
          items:
            type: string
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: String
        gwId:
          description: The identifier of an Internet Gateway Device through which the customer premises device is connected.
          items:
            type: string
          type: array
          x-etsi-mec-cardinality: 0..N
Elian Kraja's avatar
Elian Kraja committed
1083
1084
          x-etsi-mec-origin-type: String
      type: object
Muhammad Hamza's avatar
Muhammad Hamza committed
1085
1086
      x-etsi-mec-cardinality: "1"

Elian Kraja's avatar
Elian Kraja committed
1087
1088
1089
    DevInfoSubscription:
      properties:
        _links:
Muhammad Hamza's avatar
Muhammad Hamza committed
1090
          $ref: "#/components/schemas/DevInfoSubscription.links"
Elian Kraja's avatar
Elian Kraja committed
1091
        callbackReference:
1092
          description: URI exposed by the client on which to receive notifications via HTTP. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.
Elian Kraja's avatar
Elian Kraja committed
1093
1094
          format: uri
          type: string
Muhammad Hamza's avatar
Muhammad Hamza committed
1095
          x-etsi-mec-cardinality: "1"
Elian Kraja's avatar
Elian Kraja committed
1096
          x-etsi-mec-origin-type: URI
1097
1098
1099
1100
1101
1102
        requestTestNotification:
          description: Shall be set to TRUE by the service consumer to request
          type: boolean      
        websockNotifConfig:
          description: Provides details to negotiate and signal the use of a Websocket connection between FAIS and the service consumer for notifications. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.
          $ref: "#/components/schemas/WebsockNotifConfig" 
Elian Kraja's avatar
Elian Kraja committed
1103
1104
1105
1106
        expiryDeadline:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
Muhammad Hamza's avatar
Muhammad Hamza committed
1107
          $ref: "#/components/schemas/TimeStamp"
Elian Kraja's avatar
Elian Kraja committed
1108
        filterCriteriaDevInfo:
Muhammad Hamza's avatar
Muhammad Hamza committed
1109
          $ref: "#/components/schemas/DevInfoSubscription.filterCriteriaDevInfo"
Elian Kraja's avatar
Elian Kraja committed
1110
1111
1112
        subscriptionType:
          description: Shall be set to "DevInfoSubscription".
          type: string
Muhammad Hamza's avatar
Muhammad Hamza committed
1113
          x-etsi-mec-cardinality: "1"
Elian Kraja's avatar
Elian Kraja committed
1114
1115
          x-etsi-mec-origin-type: String
      required:
Muhammad Hamza's avatar
Muhammad Hamza committed
1116
1117
1118
        - subscriptionType
        - callbackReference
        - filterCriteriaDevInfo
Elian Kraja's avatar
Elian Kraja committed
1119
1120
      type: object
      x-etsi-ref: 6.3.3
Muhammad Hamza's avatar
Muhammad Hamza committed
1121

Elian Kraja's avatar
Elian Kraja committed
1122
    DeviceInfo.deviceStatus:
Muhammad Hamza's avatar
Muhammad Hamza committed
1123
1124
1125
1126
1127
1128
1129
1130
1131
      description: "Current operational status of the device. Enumeration of: 1 = Up. 2 = Initializing. 3 = Error. 4 = Disabled."
      enum:
        - 1
        - 2
        - 3
        - 4
      type: integer
      x-etsi-mec-cardinality: "1"
      x-etsi-mec-origin-type: Enum
Elian Kraja's avatar
Elian Kraja committed
1132
1133
1134
    DeviceInfo:
      properties:
        deviceId:
Muhammad Hamza's avatar
Muhammad Hamza committed
1135
          description: "Typically, the serial number of the device.This value shall remain fixed over the lifetime of the device, including across firmware updates."
1136
          type: string
1137
          x-etsi-mec-cardinality: 0..1
Elian Kraja's avatar
Elian Kraja committed
1138
1139
          x-etsi-mec-origin-type: String
        deviceStatus:
Muhammad Hamza's avatar
Muhammad Hamza committed
1140
          $ref: "#/components/schemas/DeviceInfo.deviceStatus"
Elian Kraja's avatar
Elian Kraja committed
1141
1142
1143
1144
        downloadDiagnostics:
          # description': The result of a HTTP and FTP DownloadDiagnostics Test.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': DownloadDiagnostics
Muhammad Hamza's avatar
Muhammad Hamza committed
1145
          $ref: "#/components/schemas/DownloadDiagnostics"
Elian Kraja's avatar
Elian Kraja committed
1146
        gwId:
Muhammad Hamza's avatar
Muhammad Hamza committed
1147
          description:
1148
            "Information (typically the serial number) to identify an Internet Gateway Device through which the customer premises device is connected. This value shall remain fixed over the lifetime of the device, including across firmware updates."
Elian Kraja's avatar
Elian Kraja committed
1149
1150
1151
1152
1153
1154
1155
1156
1157
          items:
            type: string
          minItems: 1
          type: array
          x-etsi-mec-cardinality: 1..N
          x-etsi-mec-origin-type: String
        iPConnectionUpTime:
          description: The time in seconds that the IP interface has been connected.
          type: integer
Muhammad Hamza's avatar
Muhammad Hamza committed
1158
          x-etsi-mec-cardinality: "1"
Elian Kraja's avatar
Elian Kraja committed
1159
1160
1161
1162
1163
          x-etsi-mec-origin-type: Integer
        iPPingDiagnostics:
          # description': The result of an IP-layer ping test.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': IPPingDiagnostics
Muhammad Hamza's avatar
Muhammad Hamza committed
1164
          $ref: "#/components/schemas/IPPingDiagnostics"
Elian Kraja's avatar
Elian Kraja committed
1165
1166
1167
1168
        timeStamp:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
Muhammad Hamza's avatar
Muhammad Hamza committed
1169
          $ref: "#/components/schemas/TimeStamp"
Elian Kraja's avatar
Elian Kraja committed
1170
1171
1172
        totalBytesReceived:
          description: Total number of IP payload bytes received since the device was last restarted.
          type: integer
Muhammad Hamza's avatar
Muhammad Hamza committed
1173
          x-etsi-mec-cardinality: "1"
Elian Kraja's avatar
Elian Kraja committed
1174
1175
1176
1177
          x-etsi-mec-origin-type: Integer
        totalBytesSent:
          description: Total number of IP payload bytes sent since the device was last restarted.
          type: integer
Muhammad Hamza's avatar
Muhammad Hamza committed
1178
          x-etsi-mec-cardinality: "1"
Elian Kraja's avatar
Elian Kraja committed
1179
1180
1181
1182
          x-etsi-mec-origin-type: Integer
        totalPacketsReceived:
          description: Total number of packets received since the device was last restarted.
          type: integer
Muhammad Hamza's avatar
Muhammad Hamza committed
1183
          x-etsi-mec-cardinality: "1"
Elian Kraja's avatar
Elian Kraja committed
1184
1185
1186
1187
          x-etsi-mec-origin-type: Integer
        totalPacketsSent:
          description: Total number of packets sent since the device was last restarted.
          type: integer
Muhammad Hamza's avatar
Muhammad Hamza committed
1188
          x-etsi-mec-cardinality: "1"
Elian Kraja's avatar
Elian Kraja committed
1189
1190
1191
1192
1193
          x-etsi-mec-origin-type: Integer
        traceRouteDiagnostics:
          # description': The result of an IP-layer trace-route test.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TraceRouteDiagnostics
Muhammad Hamza's avatar
Muhammad Hamza committed
1194
          $ref: "#/components/schemas/TraceRouteDiagnostics"
Elian Kraja's avatar
Elian Kraja committed
1195
1196
1197
        upTime:
          description: Time in seconds since the device was last restarted.
          type: integer
Muhammad Hamza's avatar
Muhammad Hamza committed
1198
          x-etsi-mec-cardinality: "1"
Elian Kraja's avatar
Elian Kraja committed
1199
1200
1201
1202
1203
          x-etsi-mec-origin-type: Integer
        uploadDiagnostics:
          # description': The result of a HTTP and FTP UploadDiagnostics Test.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': UploadDiagnostics
Muhammad Hamza's avatar
Muhammad Hamza committed
1204
          $ref: "#/components/schemas/UploadDiagnostics"
Elian Kraja's avatar
Elian Kraja committed
1205
      required:
Muhammad Hamza's avatar
Muhammad Hamza committed
1206
        - gwId
1207
        - deviceId
Muhammad Hamza's avatar
Muhammad Hamza committed
1208
1209
1210
1211
1212
1213
1214
        - deviceStatus
        - upTime
        - iPConnectionUpTime
        - totalBytesSent
        - totalBytesReceived
        - totalPacketsSent
        - totalPacketsReceived
Elian Kraja's avatar
Elian Kraja committed
1215
1216
1217
      type: object
      x-etsi-ref: 6.2.3
    DownloadDiagnostics.diagnosticsState:
Muhammad Hamza's avatar
Muhammad Hamza committed
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
      description: "The state of the HTTP and FTP download test. Enumeration of:1 = None.2 = Requested.3 = Completed.4 = Error_InitConnectionFailed.5 = Error_NoResponse.6 = Error_TransferFailed. 7 = Error_PasswordRequestFailed.8 = Error_LoginFailed.9 = Error_NoTransferMode.10 = Error_NoPASV.11 = Error_IncorrectSize.12 = Error_Timeout."
      enum:
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
        - 9
        - 10
        - 11
        - 12
      type: integer
      x-etsi-mec-cardinality: "1"
      x-etsi-mec-origin-type: Enum
Elian Kraja's avatar
Elian Kraja committed
1235
1236
1237
1238
1239
1240
    DownloadDiagnostics:
      properties:
        bOMTime:
          # description': Begin of transmission time in UTC, which shall be specified to microsecond precision.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
Muhammad Hamza's avatar
Muhammad Hamza committed
1241
          $ref: "#/components/schemas/TimeStamp"
Elian Kraja's avatar
Elian Kraja committed
1242
        diagnosticsState:
Muhammad Hamza's avatar
Muhammad Hamza committed
1243
          $ref: "#/components/schemas/DownloadDiagnostics.diagnosticsState"
Elian Kraja's avatar
Elian Kraja committed
1244
1245
1246
        downloadURI:
          description: The URI for the device to perform the download on.
          format: uri
1247
          type: uri
Elian Kraja's avatar
Elian Kraja committed
1248
1249
1250
1251
1252
1253
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: URI
        eOMTime:
          # description': End of transmission in UTC, which shall be specified to microsecond precision.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
Muhammad Hamza's avatar
Muhammad Hamza committed
1254
          $ref: "#/components/schemas/TimeStamp"
Elian Kraja's avatar
Elian Kraja committed
1255
1256
1257
1258
        rOMTime:
          # description': Request time in UTC, which shall be specified to microsecond precision.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
Muhammad Hamza's avatar
Muhammad Hamza committed
1259
          $ref: "#/components/schemas/TimeStamp"
Elian Kraja's avatar
Elian Kraja committed
1260
1261
1262
1263
        tCPOpenReponseTime:
          # description': Response time in UTC, which shall be specified to microsecond precision.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
Muhammad Hamza's avatar
Muhammad Hamza committed
1264
          $ref: "#/components/schemas/TimeStamp"
Elian Kraja's avatar
Elian Kraja committed
1265
1266
1267
1268
        tCPOpenRequestTime:
          # description': Request time in UTC, which shall be specified to microsecond precision.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
Muhammad Hamza's avatar
Muhammad Hamza committed
1269
          $ref: "#/components/schemas/TimeStamp"
Elian Kraja's avatar
Elian Kraja committed
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
        testBytesReceived:
          description: The test traffic received in bytes during the FTP/HTTP transaction including FTP/HTTP headers, between bOMTime and eOMTime.
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Integer
        totalBytesReceived:
          description: The total number of bytes received on the Interface between bOMTime and eOMTime.