MEC029_FAI.json 91.9 KB
Newer Older
            "description": "Set by FAIS to indicate to the service consumer the Websocket URI to be used for delivering notifications.",
            "type": "uri"
          },
          "requestWebsocketUri": {
            "description": "Set to true by the service consumer to indicate that Websocket delivery is requested.",
            "type": "boolean"
          }
        }
      },
      "OnuAlarmSubscription": {
        "properties": {
          "_links": {
            "$ref": "#/components/schemas/OnuAlarmSubscription.links"
          },
          "callbackReference": {
            "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.",
            "format": "uri",
            "type": "string",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "URI"
          },
          "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"
          },
          "expiryDeadline": {
            "$ref": "#/components/schemas/TimeStamp"
          },
          "filterCriteriaOnuAlarm": {
            "$ref": "#/components/schemas/OnuAlarmSubscription.filterCriteriaOnuAlarm"
          },
          "subscriptionType": {
            "description": "Shall be set to \\\"OnuAlarmSubscription\\\".",
            "type": "string",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "String"
          }
        "required": [
          "subscriptionType",
          "filterCriteriaOnuAlarm"
        ],
        "type": "object",
        "x-etsi-ref": "6.3.2"
      },
      "PonInfo.opticalNetworkInfo.dsRate": {
        "description": "Downstream line rate, valid values are:\n1 =\t2,48832 Gbit/s: G-PON [i.9]; or\nNG-PON2 option 2 [i.8].\n2 =\t9,95328 Gbit/s:  XG-PON [i.10]; or\n XGS-PON [i.11]; or\nNG-PON2 option 1 [i.8].",
        "enum": [
          1,
          2
        ],
        "type": "integer",
        "x-etsi-mec-cardinality": "1",
        "x-etsi-mec-origin-type": "Enum"
      },
      "PonInfo.opticalNetworkInfo.operationalState": {
        "description": "It reports whether the ONU is currently capable of performing its function. Valid values are: 0 = enabled 1 = disabled",
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "x-etsi-mec-cardinality": "1",
        "x-etsi-mec-origin-type": "Enum"
      },
      "PonInfo.opticalNetworkInfo.ponTech": {
        "description": "An informative field identifying the optical technology used. The valid values are: 1 = GPON. 2 = XGPON.3 = NGPON2. 4 = XGSPON.",
        "enum": [
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "x-etsi-mec-cardinality": "1",
        "x-etsi-mec-origin-type": "Enum"
      },
      "PonInfo.opticalNetworkInfo.usRate": {
        "description": "Upstream line rate, valid values are:\n1 =\t1,24416 Gbit/s: G-PON option 1 [i.9].\n2 =\t2,48832 Gbit/s: G-PON option 2 [i.9]; or\nXG-PON [i.10]; or\nNG-PON2 option 2 [i.8].\n3 =\t9,95328 Gbit/s: XGS-PON [i.11]; or\nNG-PON2 option 1 [i.8].",
        "enum": [
          1,
          2,
          3
        ],
        "type": "integer",
        "x-etsi-mec-cardinality": "1",
        "x-etsi-mec-origin-type": "Enum"
      },
      "PonInfo": {
        "properties": {
          "timeStamp": {
            "$ref": "#/components/schemas/TimeStamp"
          },
          "customerPremisesInfo": {
            "description": "The physical location of a customer site.",
piscione's avatar
piscione committed
            "items": {
              "$ref": "#/components/schemas/CpInfo"
            },
            "minItems": 1,
            "type": "array",
            "x-etsi-mec-cardinality": "1..N",
            "x-etsi-mec-origin-type": "CpInfo"
          },
          "ponSYS_ID": {
            "description": "The 20-bit identity of the optical system within a certain domain.This is a reference value set by the OSS.",
            "type": "string",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "String"
          },
          "onuId": {
            "description": "Information to identify an Optical Network Unit.",
            "type": "string",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "String"
          },
          "ponTech": {
            "$ref": "#/components/schemas/PonInfo.opticalNetworkInfo.ponTech"
          },
          "operationalState": {
            "$ref": "#/components/schemas/PonInfo.opticalNetworkInfo.operationalState"
          },
          "dsRate": {
            "$ref": "#/components/schemas/PonInfo.opticalNetworkInfo.dsRate"
          },
          "usRate": {
            "$ref": "#/components/schemas/PonInfo.opticalNetworkInfo.usRate"
          }
        "required": [
          "customerPremisesInfo",
          "ponSYS_ID",
          "opticalNetworkInfo",
          "onuId",
          "ponTech",
          "operationalState",
          "dsRate",
          "usRate"
        ],
        "type": "object",
        "x-etsi-ref": "6.2.5"
      },
      "SubscriptionLinkList.links.subscription.subscriptionType": {
        "description": "Type of the subscription. The string shall be set according to the \"subscriptionType\" attribute of the associated subscription data type defined in clauses 6.3.2, 6.3.3, 6.3.4 and 6.3.6 \"OnuAlarmSubscription\" \"DevInfoSubscription\" \"CmConnSubscription\" \"AniAlarmSubscription\"",
        "enum": [
          "OnuAlarmSubscription",
          "DevInfoSubscription",
          "CmConnSubscription",
          "AniAlarmSubscription\""
        ],
        "type": "string",
        "x-etsi-mec-cardinality": "1",
        "x-etsi-mec-origin-type": "Enum"
      },
      "SubscriptionLinkList.links.subscription": {
        "properties": {
          "href": {
            "description": "The URI referring to the subscription.",
            "format": "uri",
            "type": "uri",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "URI"
          "subscriptionType": {
            "$ref": "#/components/schemas/SubscriptionLinkList.links.subscription.subscriptionType"
          }
        "required": [
          "href",
          "subscriptionType"
        ]
      },
      "SubscriptionLinkList.links": {
        "description": "Hyperlinks related to the resource.",
        "type": "object",
        "required": [
          "self"
        ],
        "properties": {
          "self": {
            "$ref": "#/components/schemas/LinkType"
          },
          "subscriptions": {
            "description": "The service consumer's subscriptions.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionLinkList.links.subscription"
        }
      },
      "SubscriptionLinkList": {
        "properties": {
          "_links": {
            "$ref": "#/components/schemas/SubscriptionLinkList.links"
          }
        "required": [
          "_links"
        ],
        "type": "object",
        "x-etsi-ref": "6.3.5"
      },
      "TestNotification": {
        "type": "object",
        "required": [
          "notificationType",
          "_links"
        ],
        "properties": {
          "notificationType": {
            "description": "Shall be set to \"TestNotification",
            "type": "string"
          "_links": {
            "description": "Hyperlink related to the resource.",
            "type": "object",
            "required": [
              "subscription"
            ],
            "properties": {
              "subscription": {
                "$ref": "#/components/schemas/LinkType"
              }
          }
        }
      },
      "TimeStamp": {
        "properties": {
          "nanoSeconds": {
            "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.",
            "format": "Uint32",
            "type": "integer",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "Uint32"
          "seconds": {
            "description": "The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC.",
            "format": "Uint32",
            "type": "integer",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "Uint32"
          }
        "required": [
          "seconds",
          "nanoSeconds"
        ],
        "type": "object",
        "x-etsi-ref": "6.5.2"
      },
      "TraceRouteDiagnostics.diagnosticsState": {
        "description": "The state of the IP trace-route test. Enumeration of: 1 = None. 2 = Requested. 3 = Complete.  4 = Error_CannotResolveHostName. 5 = Error_MaxHopCountExceeded. 6 = Error_Internal. 7 = Error_Other.",
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "type": "integer",
        "x-etsi-mec-cardinality": "1",
        "x-etsi-mec-origin-type": "Enum"
      },
      "TraceRouteDiagnostics": {
        "properties": {
          "dataBlockSize": {
            "description": "Size of the data block in bytes to be sent for each trace route.",
            "type": "integer",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "Integer"
          "diagnosticsState": {
            "$ref": "#/components/schemas/TraceRouteDiagnostics.diagnosticsState"
          "host": {
            "description": "Host name or address of the host to find a route to.",
            "type": "string",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "String"
          },
          "maxHopCount": {
            "description": "The maximum number of hop used in outgoing probe packets. The default is 30 hops.",
            "type": "integer",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "Integer"
          },
          "numberOfRouteHops": {
            "description": "Result parameter indicating the number of hops within the discovered route.\n\nIf a route could not be determined, this value shall be zero.",
            "type": "integer",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "Integer"
          },
          "responseTime": {
            "description": "Result parameter indicating the response time in milliseconds the most recent trace route test.\n\nIf a route could not be determined, this value shall be zero.",
            "type": "integer",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "Integer"
          },
          "timeout": {
            "description": "Timeout in milliseconds for the trace route test.",
            "type": "integer",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "Integer"
        "required": [
          "diagnosticsState"
        ],
        "type": "object",
        "x-etsi-ref": "6.5.5"
      },
      "UploadDiagnostics.diagnosticsState": {
        "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_PasswordRequestFailed. 7 = Error_LoginFailed. 8 = Error_NoTransferMode. 9 = Error_NoPASV.  10 = Error_NoCWD. 11 = Error_NoSTOR.12 = Error_NoTransferComplete.",
        "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"
      },
      "UploadDiagnostics": {
        "properties": {
          "bOMTime": {
            "$ref": "#/components/schemas/TimeStamp"
          "diagnosticsState": {
            "$ref": "#/components/schemas/UploadDiagnostics.diagnosticsState"
          },
          "eOMTime": {
            "$ref": "#/components/schemas/TimeStamp"
          },
          "rOMTime": {
            "$ref": "#/components/schemas/TimeStamp"
          },
          "tCPOpenReponseTime": {
            "$ref": "#/components/schemas/TimeStamp"
          },
          "tCPOpenRequestTime": {
            "$ref": "#/components/schemas/TimeStamp"
          },
          "testBytesSent": {
            "description": "The test traffic sent 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"
          },
          "testFileLength": {
            "description": "The size of the file (in bytes) to be uploaded to the\nserver.",
            "type": "integer",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "Integer"
          },
          "uploadURI": {
            "description": "The URI for the device to perform the upload to.",
            "format": "uri",
            "type": "string",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "URI"
          }
        },
        "required": [
          "diagnosticsState"
        ],
        "type": "object",
        "x-etsi-ref": "6.5.7"
      },
      "LinkType": {
        "description": "'URI referring to a resource'",
        "type": "object",
        "required": [
          "href"
        ],
        "properties": {
          "href": {
            "$ref": "#/components/schemas/Href"
          }
      "Href": {
        "description": "The URI referring to the subscription.",
        "type": "string",
        "format": "uri"
      },
      "ProblemDetails": {
        "properties": {
          "detail": {
            "description": "A human-readable explanation specific to this occurrence of the problem",
            "type": "string",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "String"
          },
          "instance": {
            "description": "A URI reference that identifies the specific occurrence of the problem",
            "format": "uri",
            "type": "string",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "URI"
          },
          "status": {
            "description": "The HTTP status code for this occurrence of the problem",
            "format": "uint32",
            "type": "integer",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "Uint32"
          },
          "title": {
            "description": "A short, human-readable summary of the problem type",
            "type": "string",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "String"
          },
          "type": {
            "description": "A URI reference according to IETF RFC 3986 that identifies the problem type",
            "format": "uri",
            "type": "string",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "URI"
          }
        "type": "object"
      }
    },
    "responses": {
      "204": {
        "description": "No Content"
      },
      "206": {
        "description": "Partial content"
      },
      "400": {
        "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
        }
      },
      "401": {
        "description": "Unauthorized :  used when the client did not submit credentials.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
        }
      },
      "403": {
        "description": "Forbidden :  operation is not allowed given the current status of the resource.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
        }
      },
      "404": {
        "description": "Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
        }
      },
      "406": {
        "description": "Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
        }
      },
      "409": {
        "description": "Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
        }
      },
      "412": {
        "description": "Precondition failed :  used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts when using PUT",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
        }
      },
      "415": {
        "description": "Unsupported Media Type :  used to indicate that the server or the client does not support the content type of the entity body.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
        }
      },
      "422": {
        "description": "Unprocessable Entity : used to indicate that the server understands the content type of the request entity and that the syntax of the request entity is correct but that the server is unable to process the contained instructions. This error condition can occur if an JSON request body is syntactically correct but semantically incorrect, for example if the target area for the request is considered too large. This error condition can also occur if the capabilities required by the request are not supported.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
        }
      },
      "429": {
        "description": "Too Many Requests : used when a rate limiter has triggered.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"