Update OAS to version 3.1.0

Merge request reports

Loading
+2040 −1415
Changes for MecAppSupportApi.json: 2040 added lines, 1415 removed lines.
Original line number Diff line number Diff line
{
  "openapi": "3.0.2",
  "servers": [
    {
      "url": "http://127.0.0.1:8081/mec_app_support/v1"
    },
    {
      "url": "https://127.0.0.1:8081/mec_app_support/v1"
    }
  ],
  "openapi": "3.1.0",
  "info": {
    "title": "MEC Application Support API",
    "version": "2.1.1",
@@ -47,1766 +39,2399 @@
      "name": "callbacks"
    }
  ],
  "paths": {
    "/applications/{appInstanceId}/traffic_rules": {
      "parameters": [
        {
          "$ref": "#/components/parameters/Path.AppInstanceId"
        }
      ],
      "get": {
        "description": "This method retrieves information about all the traffic rules associated with a MEC application instance.",
        "operationId": "ApplicationsTrafficRules_GET",
        "tags": [
          "appTrafficRules"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ApplicationsTrafficRules.200"
          },
          "400": {
            "$ref": "#/components/responses/Error.400"
          },
          "403": {
            "$ref": "#/components/responses/Error.403"
          },
          "404": {
            "$ref": "#/components/responses/Error.404"
          }
        }
      }
    },
    "/applications/{appInstanceId}/traffic_rules/{trafficRuleId}": {
      "parameters": [
  "jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
  "servers": [
    {
          "$ref": "#/components/parameters/Path.AppInstanceId"
      "url": "http://127.0.0.1:8081/mec_app_support/v1",
      "variables": {}
    },
    {
          "$ref": "#/components/parameters/Path.TrafficRuleId"
      "url": "https://127.0.0.1:8081/mec_app_support/v1",
      "variables": {}
    }
  ],
  "paths": {
    "/applications/{appInstanceId}/traffic_rules": {
      "get": {
        "description": "This method retrieves information about all the traffic rules associated with a MEC application instance.",
        "operationId": "ApplicationsTrafficRule_GET",
        "tags": [
          "appTrafficRules"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ApplicationsTrafficRule.200"
          },
          "400": {
            "$ref": "#/components/responses/Error.400"
          },
          "403": {
            "$ref": "#/components/responses/Error.403"
          },
          "404": {
            "$ref": "#/components/responses/Error.404"
        "description": "This method retrieves information about all the traffic rules associated with a MEC application instance.",
        "operationId": "ApplicationsTrafficRules_GET",
        "parameters": [
          {
            "name": "appInstanceId",
            "in": "path",
            "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
      },
      "put": {
        "description": "This method retrieves information about all the traffic rules associated with a MEC application instance.",
        "operationId": "ApplicationsTrafficRule_PUT",
        "tags": [
          "appTrafficRules"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ApplicationsTrafficRule.200"
          },
          "400": {
            "$ref": "#/components/responses/Error.400"
          },
          "403": {
            "$ref": "#/components/responses/Error.403"
          },
          "404": {
            "$ref": "#/components/responses/Error.404"
          },
          "412": {
            "$ref": "#/components/responses/Error.412"
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/ApplicationsTrafficRule"
        }
      }
            "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "minItems": 0,
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TrafficRule"
                  },
    "/applications/{appInstanceId}/dns_rules": {
      "parameters": [
                  "description": "",
                  "examples": [
                    [
                      {
          "$ref": "#/components/parameters/Path.AppInstanceId"
        }
                        "trafficRuleId": "TrafficRule123",
                        "serName": "ExampleService",
                        "filterType": "FLOW",
                        "priority": 1,
                        "trafficFilter": [
                          {
                            "srcAddress": [
                              "192.168.2.0/24",
                              "192.168.3.0/24"
                            ],
      "get": {
        "description": "This method retrieves information about all the DNS rules associated with a MEC application instance.",
        "operationId": "ApplicationsDnsRules_GET",
        "tags": [
          "appDnsRules"
                            "dstAddress": [
                              "192.127.4.100/32"
                            ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ApplicationsDnsRules.200"
          },
          "400": {
            "$ref": "#/components/responses/Error.400"
          },
          "403": {
            "$ref": "#/components/responses/Error.403"
          },
          "404": {
            "$ref": "#/components/responses/Error.404"
          }
                            "dstPort": [
                              "80"
                            ]
                          }
                        ],
                        "action": "FORWARD_DECAPSULATED",
                        "dstInterface": {
                          "interfaceType": "IP",
                          "dstIpAddress": "20.1.1.1"
                        },
                        "state": "ACTIVE"
                      }
                    ]
                  ],
                  "contentMediaType": "application/json"
                },
    "/applications/{appInstanceId}/dns_rules/{dnsRuleId}": {
      "parameters": [
                "examples": {
                  "TrafficRules": {
                    "value": [
                      {
          "$ref": "#/components/parameters/Path.AppInstanceId"
        },
                        "trafficRuleId": "TrafficRule123",
                        "serName": "ExampleService",
                        "filterType": "FLOW",
                        "priority": 1,
                        "trafficFilter": [
                          {
          "$ref": "#/components/parameters/Path.DnsRuleId"
        }
                            "srcAddress": [
                              "192.168.2.0/24",
                              "192.168.3.0/24"
                            ],
      "get": {
        "description": "This method retrieves information about a DNS rule associated with a MEC application instance.",
        "operationId": "ApplicationsDnsRule_GET",
        "tags": [
          "appDnsRules"
                            "dstAddress": [
                              "192.127.4.100/32"
                            ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ApplicationsDnsRule.200"
          },
          "400": {
            "$ref": "#/components/responses/Error.400"
          },
          "403": {
            "$ref": "#/components/responses/Error.403"
          },
          "404": {
            "$ref": "#/components/responses/Error.404"
          }
                            "dstPort": [
                              "80"
                            ]
                          }
      },
      "put": {
        "description": "This method activates, de-activates or updates a traffic rule.",
        "operationId": "ApplicationsDnsRule_PUT",
        "tags": [
          "appDnsRules"
                        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ApplicationsDnsRule.200"
          },
          "400": {
            "$ref": "#/components/responses/Error.400"
          },
          "403": {
            "$ref": "#/components/responses/Error.403"
          },
          "404": {
            "$ref": "#/components/responses/Error.404"
                        "action": "FORWARD_DECAPSULATED",
                        "dstInterface": {
                          "interfaceType": "IP",
                          "dstIpAddress": "20.1.1.1"
                        },
          "412": {
            "$ref": "#/components/responses/Error.412"
                        "state": "ACTIVE"
                      }
                    ]
                  }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/ApplicationsDnsRule"
                }
              }
    },
    "/applications/{appInstanceId}/subscriptions": {
      "parameters": [
        {
          "$ref": "#/components/parameters/Path.AppInstanceId"
            }
      ],
      "get": {
        "description": "The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains entity body with all the subscriptions for the requestor.",
        "operationId": "ApplicationsSubscriptions_GET",
        "tags": [
          "appSubscriptions"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ApplicationsSubscriptions.200"
          },
          "400": {
            "$ref": "#/components/responses/Error.400"
          },
          "403": {
            "$ref": "#/components/responses/Error.403"
            "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
          "404": {
            "$ref": "#/components/responses/Error.404"
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
      },
      "post": {
        "description": "The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains entity body describing the created subscription.",
        "operationId": "ApplicationsSubscriptions_POST",
        "tags": [
          "appSubscriptions"
        ],
        "responses": {
          "201": {
            "$ref": "#/components/responses/ApplicationsSubscriptions.201"
          },
          "400": {
            "$ref": "#/components/responses/Error.400"
          },
          "403": {
            "$ref": "#/components/responses/Error.403"
            "description": "Forbidden. The operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/Error.404"
            "description": "Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
        "requestBody": {
          "$ref": "#/components/requestBodies/ApplicationsSubscriptions"
        },
        "callbacks": {
          "appTerminationNotification": {
            "$ref": "#/components/callbacks/AppTerminationNotification"
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        },
    "/applications/{appInstanceId}/subscriptions/{subscriptionId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/Path.AppInstanceId"
        "deprecated": false
      },
        {
          "$ref": "#/components/parameters/Path.SubscriptionId"
        }
      ],
      "parameters": []
    },
    "/applications/{appInstanceId}/traffic_rules/{trafficRuleId}": {
      "get": {
        "description": "The GET method requests information about a subscription for this requestor. Upon success, the response contains entity body with the subscription for the requestor.",
        "operationId": "ApplicationsSubscription_GET",
        "tags": [
          "appSubscriptions"
          "appTrafficRules"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ApplicationsSubscription.200"
          },
          "400": {
            "$ref": "#/components/responses/Error.400"
          },
          "403": {
            "$ref": "#/components/responses/Error.403"
          },
          "404": {
            "$ref": "#/components/responses/Error.404"
          }
        "description": "This method retrieves information about all the traffic rules associated with a MEC application instance.",
        "operationId": "ApplicationsTrafficRule_GET",
        "parameters": [
          {
            "name": "appInstanceId",
            "in": "path",
            "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
      "delete": {
        "description": "This method deletes a mecAppSuptApiSubscription. This method is typically used in \"Unsubscribing from service availability event notifications\" procedure.",
        "operationId": "ApplicationsSubscription_DELETE",
        "tags": [
          "appSubscriptions"
          {
            "name": "trafficRuleId",
            "in": "path",
            "description": "Represents a traffic rule.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          "200": {
            "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrafficRule"
                },
          "403": {
            "$ref": "#/components/responses/Error.403"
                "examples": {
                  "TrafficRule": {
                    "value": {
                      "trafficRuleId": "TrafficRule123",
                      "serName": "ExampleService",
                      "filterType": "FLOW",
                      "priority": 1,
                      "trafficFilter": [
                        {
                          "srcAddress": [
                            "192.168.2.0/24",
                            "192.168.3.0/24"
                          ],
                          "dstAddress": [
                            "192.127.4.100/32"
                          ],
                          "dstPort": [
                            "80"
                          ]
                        }
                      ],
                      "action": "FORWARD_DECAPSULATED",
                      "dstInterface": {
                        "interfaceType": "IP",
                        "dstIpAddress": "20.1.1.1"
                      },
          "404": {
            "$ref": "#/components/responses/Error.404"
                      "state": "ACTIVE"
                    }
                  }
                }
              }
            }
          },
    "/applications/{appInstanceId}/confirm_termination": {
      "parameters": [
        {
          "$ref": "#/components/parameters/Path.AppInstanceId"
          "400": {
            "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
      ],
      "post": {
        "description": "This method is used to confirm the application level termination  of an application instance.",
        "operationId": "ApplicationsConfirmTermination_POST",
        "tags": [
          "appConfirmTermination"
        ],
        "responses": {
          "204": {
            "description": "No Content"
              },
          "401": {
            "$ref": "#/components/responses/Error.401"
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/Error.403"
            "description": "Forbidden. The operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/Error.404"
          },
          "409": {
            "$ref": "#/components/responses/Error.409"
          },
          "429": {
            "$ref": "#/components/responses/Error.429"
            "description": "Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
        "requestBody": {
          "$ref": "#/components/requestBodies/ApplicationsConfirmTermination"
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        },
    "/applications/{appInstanceId}/confirm_ready": {
        "deprecated": false
      },
      "put": {
        "tags": [
          "appTrafficRules"
        ],
        "description": "This method retrieves information about all the traffic rules associated with a MEC application instance.",
        "operationId": "ApplicationsTrafficRule_PUT",
        "parameters": [
          {
          "$ref": "#/components/parameters/Path.AppInstanceId"
            "name": "appInstanceId",
            "in": "path",
            "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
      ],
      "post": {
        "description": "This method may be used by the MEC application instance to notify the MEC platform that it is up and running. ",
        "operationId": "ApplicationsConfirmReady_POST",
        "tags": [
          "appConfirmReady"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "$ref": "#/components/responses/Error.401"
          },
          "403": {
            "$ref": "#/components/responses/Error.403"
          },
          "404": {
            "$ref": "#/components/responses/Error.404"
          },
          "409": {
            "$ref": "#/components/responses/Error.409"
          },
          "429": {
            "$ref": "#/components/responses/Error.429"
          {
            "name": "trafficRuleId",
            "in": "path",
            "description": "Represents a traffic rule.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
        },
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ApplicationsConfirmReady"
          "description": "One or more updated attributes that are allowed to be changed",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrafficRule"
              }
            }
          },
    "/timing/timing_caps": {
      "get": {
        "description": "This method retrieves the information of the platform's timing capabilities which corresponds to the timing capabilities query",
        "operationId": "TimingCaps_GET",
        "tags": [
          "timing"
        ],
          "required": true
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/TimingCaps.200"
          },
          "400": {
            "$ref": "#/components/responses/Error.400"
            "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrafficRule"
                },
          "403": {
            "$ref": "#/components/responses/Error.403"
                "examples": {
                  "TrafficRule": {
                    "value": {
                      "trafficRuleId": "TrafficRule123",
                      "serName": "ExampleService",
                      "filterType": "FLOW",
                      "priority": 1,
                      "trafficFilter": [
                        {
                          "srcAddress": [
                            "192.168.2.0/24",
                            "192.168.3.0/24"
                          ],
                          "dstAddress": [
                            "192.127.4.100/32"
                          ],
                          "dstPort": [
                            "80"
                          ]
                        }
                      ],
                      "action": "FORWARD_DECAPSULATED",
                      "dstInterface": {
                        "interfaceType": "IP",
                        "dstIpAddress": "20.1.1.1"
                      },
          "404": {
            "$ref": "#/components/responses/Error.404"
                      "state": "ACTIVE"
                    }
                  }
                }
              }
            }
    },
    "/timing/current_time": {
      "get": {
        "description": "This method retrieves the information of the platform's current time which corresponds to the get platform time procedure",
        "operationId": "TimingCurrentTime_GET",
        "tags": [
          "timing"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/TimingCurrentTime.200"
          },
          "400": {
            "$ref": "#/components/responses/Error.400"
          },
          "403": {
            "$ref": "#/components/responses/Error.403"
            "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
          "404": {
            "$ref": "#/components/responses/Error.404"
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
  "components": {
    "schemas": {
      "Empty": {
        "description": "Empty schema"
          "404": {
            "description": "Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
      "AppReadyConfirmation": {
        "description": "This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running.",
              "text/plain": {
                "schema": {
                  "type": "object",
        "required": [
          "indication"
        ],
        "properties": {
          "indication": {
            "$ref": "#/components/schemas/ReadyIndicationType"
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
      "AppTerminationConfirmation": {
        "description": "This type represents the information that the MEC application instance provides to the MEC platform when informing it that the application has completed its application level related terminate/stop actions, e.g. retention of application state in the case of stop.",
        "type": "object",
        "required": [
          "operationAction"
          "412": {
            "description": "Precondition Failed. It is used when a condition has failed during conditional requests,  e.g. when using ETags to avoid write conflicts.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "parameters": []
    },
    "/applications/{appInstanceId}/dns_rules": {
      "get": {
        "tags": [
          "appDnsRules"
        ],
        "description": "This method retrieves information about all the DNS rules associated with a MEC application instance.",
        "operationId": "ApplicationsDnsRules_GET",
        "parameters": [
          {
            "name": "appInstanceId",
            "in": "path",
            "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "minItems": 0,
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DnsRule"
                  },
                  "description": "",
                  "examples": [
                    [
                      {
                        "dnsRuleId": "DnsRule1",
                        "domainName": "www.example.com",
                        "ipAddressType": "IP_V4",
                        "ipAddress": "146.241.7.3",
                        "ttl": 300,
                        "state": "ACTIVE"
                      },
                      {
                        "dnsRuleId": "DnsRule2",
                        "domainName": "www.example.com",
                        "ipAddressType": "IP_V4",
                        "ipAddress": "146.241.7.4",
                        "ttl": 300,
                        "state": "INACTIVE"
                      }
                    ]
                  ],
                  "contentMediaType": "application/json"
                },
                "examples": {
                  "DnsRules": {
                    "value": [
                      {
                        "dnsRuleId": "DnsRule1",
                        "domainName": "www.example.com",
                        "ipAddressType": "IP_V4",
                        "ipAddress": "146.241.7.3",
                        "ttl": 300,
                        "state": "ACTIVE"
                      },
                      {
                        "dnsRuleId": "DnsRule2",
                        "domainName": "www.example.com",
                        "ipAddressType": "IP_V4",
                        "ipAddress": "146.241.7.4",
                        "ttl": 300,
                        "state": "INACTIVE"
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "parameters": []
    },
    "/applications/{appInstanceId}/dns_rules/{dnsRuleId}": {
      "get": {
        "tags": [
          "appDnsRules"
        ],
        "description": "This method retrieves information about a DNS rule associated with a MEC application instance.",
        "operationId": "ApplicationsDnsRule_GET",
        "parameters": [
          {
            "name": "appInstanceId",
            "in": "path",
            "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dnsRuleId",
            "in": "path",
            "description": "Represents a DNS rule.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsRule"
                },
                "examples": {
                  "DnsRule": {
                    "value": {
                      "dnsRuleId": "DnsRule1",
                      "domainName": "www.example.com",
                      "ipAddressType": "IP_V4",
                      "ipAddress": "146.241.7.3",
                      "ttl": 300,
                      "state": "ACTIVE"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "put": {
        "tags": [
          "appDnsRules"
        ],
        "description": "This method activates, de-activates or updates a traffic rule.",
        "operationId": "ApplicationsDnsRule_PUT",
        "parameters": [
          {
            "name": "appInstanceId",
            "in": "path",
            "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dnsRuleId",
            "in": "path",
            "description": "Represents a DNS rule.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The updated state is included in the entity body of the request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DnsRule"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsRule"
                },
                "examples": {
                  "DnsRule": {
                    "value": {
                      "dnsRuleId": "DnsRule1",
                      "domainName": "www.example.com",
                      "ipAddressType": "IP_V4",
                      "ipAddress": "146.241.7.3",
                      "ttl": 300,
                      "state": "ACTIVE"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
          "412": {
            "description": "Precondition Failed. It is used when a condition has failed during conditional requests,  e.g. when using ETags to avoid write conflicts.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "parameters": []
    },
    "/applications/{appInstanceId}/subscriptions": {
      "get": {
        "tags": [
          "appSubscriptions"
        ],
        "description": "The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains entity body with all the subscriptions for the requestor.",
        "operationId": "ApplicationsSubscriptions_GET",
        "parameters": [
          {
            "name": "appInstanceId",
            "in": "path",
            "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Upon success, a response body containing the list of links to the requested subscriptions is returned.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MecAppSuptApiSubscriptionLinkList"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "post": {
        "tags": [
          "appSubscriptions"
        ],
        "properties": {
          "operationAction": {
            "$ref": "#/components/schemas/OperationActionType"
        "description": "The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains entity body describing the created subscription.",
        "operationId": "ApplicationsSubscriptions_POST",
        "parameters": [
          {
            "name": "appInstanceId",
            "in": "path",
            "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Entity body in the request contains a subscription to the MEC application termination notifications that is to be created.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppTerminationNotificationSubscription"
              }
            }
          },
      "AppTerminationNotification.Links": {
        "description": "Object containing hyperlinks related to the resource.",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Entity body in the request contains a subscription to the  MEC service availability notifications that is to be created.",
            "headers": {
              "location": {
                "description": "The resource URI of the created resource",
                "content": {
                  "text/plain": {
                    "schema": {
                      "type": "string",
                      "description": "The resource URI of the created resource",
                      "contentMediaType": "text/plain"
                    }
                  }
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppTerminationNotificationSubscription"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "object",
        "required": [
          "subscription"
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        },
        "deprecated": false,
        "callbacks": {
          "AppTerminationNotification": {
            "{$request.body#/callbackUri}": {
              "post": {
                "description": "Represents the information that the MEP notifies the subscribed application instance about the corresponding application instance termination/stop'",
                "operationId": "AppTerminationNotification_POST",
                "tags": [
                  "callbacks"
                ],
        "properties": {
          "subscription": {
            "$ref": "#/components/schemas/LinkType"
                "requestBody": {
                  "$ref": "#/components/requestBodies/AppTerminationNotification"
                },
          "confirmTermination": {
            "$ref": "#/components/schemas/LinkType.ConfirmTermination"
                "responses": {
                  "200": {
                    "description": "Expected responses from callback consumer, if it accepts the callback"
                  }
                }
              }
            }
          }
        }
      },
      "parameters": []
    },
    "/applications/{appInstanceId}/subscriptions/{subscriptionId}": {
      "get": {
        "tags": [
          "appSubscriptions"
        ],
        "description": "The GET method requests information about a subscription for this requestor. Upon success, the response contains entity body with the subscription for the requestor.",
        "operationId": "ApplicationsSubscription_GET",
        "parameters": [
          {
            "name": "appInstanceId",
            "in": "path",
            "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Represents a subscription to the notifications from the MEC platform.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Upon success, a response body containing the requested subscription is returned.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppTerminationNotificationSubscription"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden. The operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "delete": {
        "tags": [
          "appSubscriptions"
        ],
        "description": "This method deletes a mecAppSuptApiSubscription. This method is typically used in \"Unsubscribing from service availability event notifications\" procedure.",
        "operationId": "ApplicationsSubscription_DELETE",
        "parameters": [
          {
            "name": "appInstanceId",
            "in": "path",
            "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Represents a subscription to the notifications from the MEC platform.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {},
            "content": {}
          },
          "403": {
            "description": "Forbidden. The operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
      "AppTerminationNotification.MaxGracefulTimeout": {
        "description": "Maximum timeout value in seconds for graceful termination or graceful stop of an application instance.",
        "type": "integer",
        "format": "uint32",
        "example": 10
      },
      "AppTerminationNotification.NotificationType": {
        "description": "Shall be set to AppTerminationNotification.",
        "type": "string",
        "example": "AppTerminationNotification"
          "404": {
            "description": "Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
      "AppTerminationNotification": {
        "description": "This type represents the information that the MEC platform notifies the subscribed application instance about  the corresponding application instance termination/stop.",
              "text/plain": {
                "schema": {
                  "type": "object",
        "required": [
          "notificationType",
          "operationAction",
          "maxGracefulTimeout",
          "_links"
        ],
        "properties": {
          "notificationType": {
            "$ref": "#/components/schemas/AppTerminationNotification.NotificationType"
          },
          "operationAction": {
            "$ref": "#/components/schemas/OperationActionType"
          },
          "maxGracefulTimeout": {
            "$ref": "#/components/schemas/AppTerminationNotification.MaxGracefulTimeout"
          },
          "_links": {
            "$ref": "#/components/schemas/AppTerminationNotification.Links"
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        },
      "AppTerminationNotificationSubscription.AppInstanceId": {
        "description": "It is used as the filtering criterion for the subscribed events.",
        "type": "string",
        "example": "ID1"
        "deprecated": false
      },
      "AppTerminationNotificationSubscription.CallbackReference": {
        "description": "URI selected by the MEC application instance to receive notifications on the subscribed MEC application instance management information. This shall be included in both the request and the response.",
        "type": "string",
        "format": "uri"
      "parameters": []
    },
      "AppTerminationNotificationSubscription": {
        "description": "This type represents the information that the MEC platform notifies the subscribed application instance about  the corresponding application instance termination/stop.",
        "type": "object",
        "required": [
          "subscriptionType",
          "callbackReference",
          "_links",
          "appInstanceId"
    "/applications/{appInstanceId}/confirm_termination": {
      "post": {
        "tags": [
          "appConfirmTermination"
        ],
        "properties": {
          "subscriptionType": {
            "$ref": "#/components/schemas/AppTerminationNotificationSubscription.SubscriptionType"
          },
          "callbackReference": {
            "$ref": "#/components/schemas/AppTerminationNotificationSubscription.CallbackReference"
          },
          "_links": {
            "$ref": "#/components/schemas/Self"
          },
          "appInstanceId": {
            "$ref": "#/components/schemas/AppTerminationNotificationSubscription.AppInstanceId"
        "description": "This method is used to confirm the application level termination  of an application instance.",
        "operationId": "ApplicationsConfirmTermination_POST",
        "parameters": [
          {
            "name": "appInstanceId",
            "in": "path",
            "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
      },
      "AppTerminationNotificationSubscription.SubscriptionType": {
        "description": "Shall be set to AppTerminationNotificationSubscription.",
        "type": "string",
        "example": "AppTerminationNotificationSubscription"
      },
      "CurrentTime": {
        "description": "This type represents the information provided by the MEC platform in response to the Get Platform Time Request message.",
        "type": "object",
        "required": [
          "nanoSeconds",
          "seconds",
          "timeSourceStatus"
        ],
        "properties": {
          "seconds": {
            "type": "integer",
            "format": "uint32",
            "description": "The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC",
            "example": 1577836800
          },
          "nanoSeconds": {
            "type": "integer",
            "format": "uint32",
            "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC",
            "example": 0
          },
          "timeSourceStatus": {
            "type": "string",
            "enum": [
              "TRACEABLE",
              "NONTRACEABLE"
        ],
            "description": "Platform Time Source status. 1 = TRACEABLE - time source is locked to the UTC time source. 2 = NONTRACEABLE - time source is not locked to the UTC time source",
            "example": "TRACEABLE"
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppTerminationConfirmation"
              }
            }
          },
      "DestinationInterface.InterfaceType": {
        "description": "Type of the interface",
        "type": "string",
        "enum": [
          "TUNNEL",
          "MAC",
          "IP"
        ],
        "example": "TUNNEL"
          "required": false
        },
      "DestinationInterface.IpAddress": {
        "description": "IP address of the remote destination",
        "type": "string",
        "example": "192.0.2.0"
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {},
            "content": {}
          },
      "DestinationInterface.MacAddress": {
        "description": "Source address identifies the MAC address of the interface",
        "type": "string",
        "example": "02-00-00-00-00-00"
          "401": {
            "description": "Unauthorized. It is used when the client did not submit the appropriate credentials.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
      "DestinationInterface": {
        "description": "This type represents the destination interface. If the action is FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value shall be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, two values shall be provided. If the action is DROP, no value shall be provided.",
              "text/plain": {
                "schema": {
                  "type": "object",
        "required": [
          "interfaceType"
        ],
        "properties": {
          "interfaceType": {
            "$ref": "#/components/schemas/DestinationInterface.InterfaceType"
          },
          "tunnelInfo": {
            "$ref": "#/components/schemas/TunnelInfo"
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
          "srcMacAddress": {
            "$ref": "#/components/schemas/DestinationInterface.MacAddress"
          "403": {
            "description": "Forbidden. The operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "dstMacAddress": {
            "$ref": "#/components/schemas/DestinationInterface.MacAddress"
          "404": {
            "description": "Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
          "dstIpAddress": {
            "$ref": "#/components/schemas/DestinationInterface.IpAddress"
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
      "DnsRule.DomainName": {
        "description": "FQDN resolved by the DNS rule",
        "type": "string",
        "example": "www.example.com"
          "409": {
            "description": "Conflict. The operation cannot be executed currently, due to a conflict with  the state of the resource. Typically, this is because the application  instance resource is in NOT_INSTANTIATED state.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
      "DnsRule.Id": {
        "description": "Identifies the DNS Rule",
        "type": "string",
        "example": "dnsRule1"
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
      "DnsRule.IpAddress": {
        "description": "IP address associated with the FQDN resolved by the DNS rule",
        "type": "string",
        "example": "192.0.2.0"
          "429": {
            "description": "Too Many Requests. It is used when a rate limiter has triggered.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
      "DnsRule.IpAddressType": {
        "description": "IP address type",
        "type": "string",
        "enum": [
          "IP_V6",
          "IP_V4"
        ],
        "example": "IP_V6"
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        },
      "DnsRule.State": {
        "description": "DNS rule state. This attribute may be updated using HTTP PUT method",
        "type": "string",
        "enum": [
          "ACTIVE",
          "INACTIVE"
        ],
        "example": "ACTIVE"
        "deprecated": false
      },
      "DnsRule.Ttl": {
        "description": "Time to live value",
        "type": "integer",
        "format": "uint32",
        "example": "?"
      "parameters": []
    },
      "DnsRule": {
        "description": "This type represents the general information of a DNS rule.",
        "type": "object",
        "required": [
          "dnsRuleId",
          "domainName",
          "ipAddressType",
          "ipAddress",
          "state"
    "/applications/{appInstanceId}/confirm_ready": {
      "post": {
        "tags": [
          "appConfirmReady"
        ],
        "properties": {
          "dnsRuleId": {
            "$ref": "#/components/schemas/DnsRule.Id"
          },
          "domainName": {
            "$ref": "#/components/schemas/DnsRule.DomainName"
          },
          "ipAddressType": {
            "$ref": "#/components/schemas/DnsRule.IpAddressType"
        "description": "This method may be used by the MEC application instance to notify the MEC platform that it is up and running. ",
        "operationId": "ApplicationsConfirmReady_POST",
        "parameters": [
          {
            "name": "appInstanceId",
            "in": "path",
            "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppReadyConfirmation"
              }
            }
          },
          "ipAddress": {
            "$ref": "#/components/schemas/DnsRule.IpAddress"
          "required": false
        },
          "ttl": {
            "$ref": "#/components/schemas/DnsRule.Ttl"
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {},
            "content": {}
          },
          "state": {
            "$ref": "#/components/schemas/DnsRule.State"
          }
          "401": {
            "description": "Unauthorized. It is used when the client did not submit the appropriate credentials.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
      "LinkType": {
        "description": "This type represents a type of link and may be referenced from data structures",
              "text/plain": {
                "schema": {
                  "type": "object",
        "properties": {
          "href": {
            "$ref": "#/components/schemas/Href"
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
      "LinkType.ConfirmTermination": {
        "description": "Link to the task resource where to confirm termination in case the  application is ready to be terminated before expiry of the timeout.",
        "type": "object",
        "properties": {
          "href": {
            "$ref": "#/components/schemas/Href"
          "403": {
            "description": "Forbidden. The operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
      "Href": {
        "description": "URI referring to a resource",
        "type": "string",
        "format": "uri",
        "example": "/mecAppSuptApi/example"
          "404": {
            "description": "Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
      "MecAppSuptApiSubscriptionLinkList.Links": {
        "description": "Self-referring URI.",
              "text/plain": {
                "schema": {
                  "type": "object",
        "required": [
          "self"
        ],
        "properties": {
          "self": {
            "$ref": "#/components/schemas/LinkType"
          },
          "subscriptions": {
            "description": "The MEC application instance's subscriptions",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MecAppSuptApiSubscriptionLinkList.Subscription"
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
      "MecAppSuptApiSubscriptionLinkList.Subscription": {
        "description": "A link to a subscription.",
        "type": "object",
        "required": [
          "href",
          "rel"
        ],
        "properties": {
          "href": {
            "$ref": "#/components/schemas/Href"
          },
          "rel": {
            "description": "The values shall be set to AppTerminationNotificationSubscription.",
            "type": "string"
          }
          "409": {
            "description": "Conflict. The operation cannot be executed currently, due to a conflict with  the state of the resource. Typically, this is because the application  instance resource is in NOT_INSTANTIATED state.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
      "MecAppSuptApiSubscriptionLinkList": {
        "description": "This type represents a list of links related to currently existing subscriptions for a MEC application instance. This information is returned when sending a request to receive current subscriptions.",
              "text/plain": {
                "schema": {
                  "type": "object",
        "required": [
          "_links"
        ],
        "properties": {
          "_links": {
            "$ref": "#/components/schemas/MecAppSuptApiSubscriptionLinkList.Links"
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
      "OperationActionType": {
        "description": "Operation that is being performed on the MEC application instance.",
        "type": "string",
        "enum": [
          "STOPPING",
          "TERMINATING"
        ],
        "example": "TERMINATING"
          "429": {
            "description": "Too Many Requests. It is used when a rate limiter has triggered.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
      "ProblemDetails": {
              "text/plain": {
                "schema": {
                  "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/Problem.type"
          },
          "title": {
            "$ref": "#/components/schemas/Problem.title"
          },
          "status": {
            "$ref": "#/components/schemas/Problem.status"
          },
          "detail": {
            "$ref": "#/components/schemas/Problem.detail"
          },
          "instance": {
            "$ref": "#/components/schemas/Problem.instance"
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
      },
      "Problem.detail": {
        "type": "string",
        "description": "A human-readable explanation specific to this occurrence of the problem"
      },
      "Problem.instance": {
        "type": "string",
        "format": "uri",
        "description": "A URI reference that identifies the specific occurrence of the problem"
      },
      "Problem.status": {
        "type": "integer",
        "format": "uint32",
        "description": "The HTTP status code for this occurrence of the problem"
      },
      "Problem.title": {
        "type": "string",
        "description": "A short, human-readable summary of the problem type"
      },
      "Problem.type": {
        "type": "string",
        "format": "uri",
        "description": "A URI reference according to IETF RFC 3986 that identifies the problem type"
      },
      "ReadyIndicationType": {
        "description": "Indication about the MEC application instance.",
        "type": "string",
        "enum": [
          "READY"
        ],
        "example": "READY"
      },
      "Self": {
        "description": "Self-referring URI.",
        "type": "object",
        "required": [
          "self"
        ],
        "properties": {
          "self": {
            "$ref": "#/components/schemas/LinkType"
          }
        },
        "readOnly": true
        "deprecated": false
      },
      "TimingCaps.NtpServers.AuthenticationKeyNum": {
        "description": "Authentication key number",
        "type": "integer",
        "format": "uint32",
        "example": 1
      "parameters": []
    },
      "TimingCaps.NtpServers.AuthenticationOption": {
        "description": "NTP authentication option",
        "type": "string",
        "enum": [
          "NONE",
          "SYMMETRIC_KEY",
          "AUTO_KEY"
    "/timing/timing_caps": {
      "get": {
        "tags": [
          "timing"
        ],
        "example": "NONE"
      },
      "TimingCaps.NtpServers.DelayReqMaxRate": {
        "description": "Acceptable maximum rate of the Delay_Req messages in packets per second",
        "type": "integer",
        "format": "uint32",
        "example": 10
      },
      "TimingCaps.NtpServers.LocalPriority": {
        "description": "NTP server local priority",
        "type": "integer",
        "format": "uint32",
        "example": 1
      },
      "TimingCaps.NtpServers.MaxPollingInterval": {
        "description": "Maximum poll interval for NTP messages, in seconds as a power of two. Range 3...17",
        "type": "integer",
        "format": "uint32",
        "example": 17
      },
      "TimingCaps.NtpServers.MinPollingInterval": {
        "description": "Minimum poll interval for NTP messages, in seconds as a power of two. Range 3...17",
        "type": "integer",
        "format": "uint32",
        "example": 3
        "description": "This method retrieves the information of the platform's timing capabilities which corresponds to the timing capabilities query",
        "operationId": "TimingCaps_GET",
        "parameters": [],
        "responses": {
          "200": {
            "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimingCaps"
                }
              }
            }
          },
      "TimingCaps.NtpServers.NtpServerAddr": {
        "description": "NTP server address",
        "type": "string",
        "example": "192.0.2.0"
          "400": {
            "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
      "TimingCaps.NtpServers.NtpServerAddrType": {
        "description": "Address type of NTP server",
        "type": "string",
        "enum": [
          "IP_ADDRESS",
          "DNS_NAME"
        ],
        "example": "IP_ADDRESS"
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
      "TimingCaps.NtpServers_PtpMasterIpAddress": {
        "description": "PTP Master IP Address",
        "type": "string",
        "example": "192.0.2.0"
          "403": {
            "description": "Forbidden. The operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
      "TimingCaps.NtpServers_PtpMasterLocalPriority": {
        "description": "PTP Master local priority",
        "type": "integer",
        "format": "uint32",
        "example": 1
          "404": {
            "description": "Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
      "TimingCaps.NtpServers": {
        "description": "NTP server detail.",
              "text/plain": {
                "schema": {
                  "type": "object",
        "required": [
          "ntpServerAddrType",
          "ntpServerAddr",
          "minPollingInterval",
          "maxPollingInterval",
          "localPriority",
          "authenticationOption",
          "authenticationKeyNum"
        ],
        "properties": {
          "ntpServerAddrType": {
            "$ref": "#/components/schemas/TimingCaps.NtpServers.NtpServerAddrType"
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        },
          "ntpServerAddr": {
            "$ref": "#/components/schemas/TimingCaps.NtpServers.NtpServerAddr"
        "deprecated": false
      },
          "minPollingInterval": {
            "$ref": "#/components/schemas/TimingCaps.NtpServers.MinPollingInterval"
      "parameters": []
    },
          "maxPollingInterval": {
            "$ref": "#/components/schemas/TimingCaps.NtpServers.MaxPollingInterval"
    "/timing/current_time": {
      "get": {
        "tags": [
          "timing"
        ],
        "description": "This method retrieves the information of the platform's current time which corresponds to the get platform time procedure",
        "operationId": "TimingCurrentTime_GET",
        "parameters": [],
        "responses": {
          "200": {
            "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentTime"
                }
              }
            }
          },
          "localPriority": {
            "$ref": "#/components/schemas/TimingCaps.NtpServers.LocalPriority"
          "400": {
            "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
          "authenticationOption": {
            "$ref": "#/components/schemas/TimingCaps.NtpServers.AuthenticationOption"
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          },
          "authenticationKeyNum": {
            "$ref": "#/components/schemas/TimingCaps.NtpServers.AuthenticationKeyNum"
          "403": {
            "description": "Forbidden. The operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
      "TimingCaps_PtpMasters": {
        "description": "NTP server detail.",
          "404": {
            "description": "Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "object",
        "required": [
          "ptpMasterIpAddress",
          "ptpMasterLocalPriority",
          "delayReqMaxRate"
        ],
        "properties": {
          "ptpMasterIpAddress": {
            "$ref": "#/components/schemas/TimingCaps.NtpServers_PtpMasterIpAddress"
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        },
          "ptpMasterLocalPriority": {
            "$ref": "#/components/schemas/TimingCaps.NtpServers_PtpMasterLocalPriority"
        "deprecated": false
      },
          "delayReqMaxRate": {
            "$ref": "#/components/schemas/TimingCaps.NtpServers.DelayReqMaxRate"
          }
      "parameters": []
    }
  },
      "TimingCaps.TimeStamp": {
        "description": "time",
        "type": "object",
  "components": {
    "schemas": {
      "AppReadyConfirmation": {
        "title": "AppReadyConfirmation",
        "required": [
          "nanoSeconds",
          "seconds"
          "indication"
        ],
        "type": "object",
        "properties": {
          "seconds": {
            "type": "integer",
            "format": "uint32",
            "description": "The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC",
            "example": 1577836800
          },
          "nanoSeconds": {
            "type": "integer",
            "format": "uint32",
            "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC",
            "example": 0
          }
          "indication": {
            "const": "READY",
            "type": "string",
            "description": "Indication about the MEC application instance.",
            "examples": [
              "READY"
            ]
          }
        },
      "TimingCaps": {
        "description": "This type represents the information provided by the MEC platform in response to the Timing capabilities Query message.",
        "description": "This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running."
      },
      "AppTerminationConfirmation": {
        "title": "AppTerminationConfirmation",
        "required": [
          "operationAction"
        ],
        "type": "object",
        "properties": {
          "timeStamp": {
            "$ref": "#/components/schemas/TimingCaps.TimeStamp"
          },
          "ntpServers": {
            "description": "Available NTP servers",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimingCaps.NtpServers"
          "operationAction": {
            "$ref": "#/components/schemas/OperationActionType"
          }
        },
          "ptpMasters": {
            "description": "Available PTP Masters",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimingCaps_PtpMasters"
            }
          }
        }
        "description": "This type represents the information that the MEC application instance provides to the MEC platform when informing it that the application has completed its application level related terminate/stop actions, e.g. retention of application state in the case of stop."
      },
      "TrafficFilter.Address": {
        "description": "Identify the traffic ip address.",
        "type": "string",
        "example": "192.168.1.1"
      "AppTerminationNotification.Links": {
        "title": "AppTerminationNotification.Links",
        "required": [
          "subscription"
        ],
        "type": "object",
        "properties": {
          "subscription": {
            "$ref": "#/components/schemas/LinkType"
          },
      "TrafficFilter.DSCP": {
        "description": "Used to match all IPv4 packets that have the same Differentiated Services Code Point (DSCP)",
        "type": "integer",
        "format": "uint32",
        "example": 0
          "confirmTermination": {
            "$ref": "#/components/schemas/LinkType.ConfirmTermination"
          }
        },
      "TrafficFilter.Port": {
        "description": "A port",
        "type": "string",
        "example": "8080"
        "description": "Object containing hyperlinks related to the resource."
      },
      "TrafficFilter.Protocol": {
        "description": "Protocol of the traffic filter",
      "AppTerminationNotification": {
        "title": "AppTerminationNotification",
        "required": [
          "notificationType",
          "operationAction",
          "maxGracefulTimeout",
          "_links"
        ],
        "type": "object",
        "properties": {
          "notificationType": {
            "type": "string",
        "example": "?"
            "description": "Shall be set to AppTerminationNotification.",
            "examples": [
              "AppTerminationNotification"
            ]
          },
      "TrafficFilter.QCI": {
        "description": "Used to match all packets that have the same Quality Class Indicator (QCI).",
        "type": "integer",
        "format": "uint32",
        "example": 1
          "operationAction": {
            "$ref": "#/components/schemas/OperationActionType"
          },
      "TrafficFilter.TC": {
        "description": "Used to match all IPv6 packets that have the same Traffic Class.",
          "maxGracefulTimeout": {
            "type": "integer",
        "format": "uint32",
        "example": 1
      },
      "TrafficFilter.Token": {
        "description": "Used for token based traffic rule",
        "type": "string",
        "example": "?"
            "description": "Maximum timeout value in seconds for graceful termination or graceful stop of an application instance.",
            "contentEncoding": "int32",
            "examples": [
              10
            ]
          },
      "TrafficFilter.TunnelAddress": {
        "description": "Used for GTP tunnel based traffic rule",
        "type": "string",
        "example": "?"
          "_links": {
            "$ref": "#/components/schemas/AppTerminationNotification.Links"
          }
        },
      "TrafficFilter.TunnelPort": {
        "description": "Used for GTP tunnel based traffic rule",
        "type": "string",
        "example": "?"
        "description": "This type represents the information that the MEC platform notifies the subscribed application instance about  the corresponding application instance termination/stop."
      },
      "TrafficFilter": {
        "description": "This type represents the traffic filter.",
      "AppTerminationNotificationSubscription": {
        "title": "AppTerminationNotificationSubscription",
        "required": [
          "subscriptionType",
          "callbackReference",
          "_links",
          "appInstanceId"
        ],
        "type": "object",
        "properties": {
          "srcAddress": {
            "description": "An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrafficFilter.Address"
            }
          },
          "dstAddress": {
            "description": "An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrafficFilter.Address"
            }
          "subscriptionType": {
            "type": "string",
            "description": "Shall be set to AppTerminationNotificationSubscription.",
            "examples": [
              "AppTerminationNotificationSubscription"
            ]
          },
          "srcPort": {
            "description": "A port or a range of ports",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrafficFilter.Port"
            }
          "callbackReference": {
            "type": "string",
            "description": "URI selected by the MEC application instance to receive notifications on the subscribed MEC application instance management information. This shall be included in both the request and the response."
          },
          "dstPort": {
            "description": "A port or a range of ports",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrafficFilter.Port"
            }
          "_links": {
            "$ref": "#/components/schemas/Self"
          },
          "protocol": {
            "description": "Specify the protocol of the traffic filter",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrafficFilter.Protocol"
          "appInstanceId": {
            "type": "string",
            "description": "It is used as the filtering criterion for the subscribed events.",
            "examples": [
              "ID1"
            ]
          }
        },
          "token": {
            "description": "Used for token based traffic rule",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrafficFilter.Token"
            }
        "description": "This type represents the information that the MEC platform notifies the subscribed application instance about  the corresponding application instance termination/stop."
      },
          "srcTunnelAddress": {
            "description": "Used for GTP tunnel based traffic rule",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrafficFilter.TunnelAddress"
            }
      "CurrentTime": {
        "title": "CurrentTime",
        "required": [
          "seconds",
          "nanoSeconds",
          "timeSourceStatus"
        ],
        "type": "object",
        "properties": {
          "seconds": {
            "type": "integer",
            "description": "The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC",
            "contentEncoding": "int32",
            "examples": [
              1577836800
            ]
          },
          "tgtTunnelAddress": {
            "description": "Used for GTP tunnel based traffic rule",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrafficFilter.TunnelAddress"
            }
          "nanoSeconds": {
            "type": "integer",
            "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC",
            "contentEncoding": "int32",
            "examples": [
              0
            ]
          },
          "srcTunnelPort": {
            "description": "Used for GTP tunnel based traffic rule",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrafficFilter.TunnelPort"
          "timeSourceStatus": {
            "$ref": "#/components/schemas/TimeSourceStatus"
          }
        },
          "dstTunnelPort": {
            "description": "Used for GTP tunnel based traffic rule",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrafficFilter.TunnelPort"
            }
        "description": "This type represents the information provided by the MEC platform in response to the Get Platform Time Request message."
      },
          "qCI": {
            "$ref": "#/components/schemas/TrafficFilter.QCI"
      "DestinationInterface.InterfaceType": {
        "title": "DestinationInterface.InterfaceType",
        "enum": [
          "TUNNEL",
          "MAC",
          "IP"
        ],
        "type": "string",
        "description": "Type of the interface",
        "examples": [
          "TUNNEL"
        ]
      },
          "dSCP": {
            "$ref": "#/components/schemas/TrafficFilter.DSCP"
      "DestinationInterface": {
        "title": "DestinationInterface",
        "required": [
          "interfaceType"
        ],
        "type": "object",
        "properties": {
          "interfaceType": {
            "$ref": "#/components/schemas/DestinationInterface.InterfaceType"
          },
          "tC": {
            "$ref": "#/components/schemas/TrafficFilter.TC"
          }
        }
          "tunnelInfo": {
            "$ref": "#/components/schemas/TunnelInfo"
          },
      "TrafficRule.Action": {
        "description": "The action of the MEC host data plane when a packet matches the trafficFilter\n   ",
          "srcMacAddress": {
            "type": "string",
        "enum": [
          "DROP",
          "FORWARD_DECAPSULATED",
          "FORWARD_ENCAPSULATED",
          "PASSTHROUGH",
          "DUPLICATE_DECAPSULATED",
          "DUPLICATE_ENCAPSULATED"
        ],
        "example": "DROP"
            "description": "Source address identifies the MAC address of the interface",
            "examples": [
              "02-00-00-00-00-00"
            ]
          },
      "TrafficRule.FilterType": {
        "description": "Definition of filter per FLOW or PACKET. If flow the filter match UE->EPC packet and the reverse packet is handled in the same context",
          "dstMacAddress": {
            "type": "string",
        "enum": [
          "FLOW",
          "PACKET"
        ],
        "example": "FLOW"
            "description": "Source address identifies the MAC address of the interface",
            "examples": [
              "02-00-00-00-00-00"
            ]
          },
      "TrafficRule.Id": {
        "description": "Identify the traffic rule.",
          "dstIpAddress": {
            "type": "string",
        "example": "TrafficRule1"
            "description": "IP address of the remote destination",
            "examples": [
              "192.0.2.0"
            ]
          }
        },
      "TrafficRule_Priority": {
        "description": "Priority of this traffic rule. If traffic rule conflicts, the one with higher priority take precedence",
        "type": "integer",
        "format": "uint32",
        "example": 1
        "description": "This type represents the destination interface. If the action is FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value shall be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, two values shall be provided. If the action is DROP, no value shall be provided."
      },
      "TrafficRule.State": {
        "description": "Contains the traffic rule state. This attribute may be updated using HTTP PUT method",
      "DnsRule.IpAddressType": {
        "title": "DnsRule.IpAddressType",
        "enum": [
          "IP_V6",
          "IP_V4"
        ],
        "type": "string",
        "description": "IP address type",
        "examples": [
          "IP_V6"
        ]
      },
      "DnsRule.State": {
        "title": "DnsRule.State",
        "enum": [
          "ACTIVE",
          "INACTIVE"
        ],
        "example": "ACTIVE"
        "type": "string",
        "description": "DNS rule state. This attribute may be updated using HTTP PUT method",
        "examples": [
          "ACTIVE"
        ]
      },
      "TrafficRule": {
        "description": "This type represents the general information of a traffic rule.",
        "type": "object",
      "DnsRule": {
        "title": "DnsRule",
        "required": [
          "trafficRuleId",
          "filterType",
          "priority",
          "trafficFilter",
          "action",
          "dnsRuleId",
          "domainName",
          "ipAddressType",
          "ipAddress",
          "state"
        ],
        "type": "object",
        "properties": {
          "trafficRuleId": {
            "$ref": "#/components/schemas/TrafficRule.Id"
          },
          "filterType": {
            "$ref": "#/components/schemas/TrafficRule.FilterType"
          "dnsRuleId": {
            "type": "string",
            "description": "Identifies the DNS Rule",
            "examples": [
              "dnsRule1"
            ]
          },
          "priority": {
            "$ref": "#/components/schemas/TrafficRule_Priority"
          "domainName": {
            "type": "string",
            "description": "FQDN resolved by the DNS rule",
            "examples": [
              "www.example.com"
            ]
          },
          "trafficFilter": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrafficFilter"
            }
          "ipAddressType": {
            "$ref": "#/components/schemas/DnsRule.IpAddressType"
          },
          "action": {
            "$ref": "#/components/schemas/TrafficRule.Action"
          "ipAddress": {
            "type": "string",
            "description": "IP address associated with the FQDN resolved by the DNS rule",
            "examples": [
              "192.0.2.0"
            ]
          },
          "dstInterface": {
            "$ref": "#/components/schemas/DestinationInterface"
          "ttl": {
            "type": "integer",
            "description": "Time to live value",
            "contentEncoding": "int32"
          },
          "state": {
            "$ref": "#/components/schemas/TrafficRule.State"
          }
            "$ref": "#/components/schemas/DnsRule.State"
          }
        },
      "TunnelInfo.TunnelDstAddress": {
        "description": "Destination address of the tunnel",
        "type": "string",
        "example": "?"
        "description": "This type represents the general information of a DNS rule."
      },
      "TunnelInfo.TunnelSrcAddress": {
        "description": "Source address of the tunnel",
      "LinkType": {
        "title": "LinkType",
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
        "example": "?"
            "description": "URI referring to a resource",
            "examples": [
              "/mecAppSuptApi/example"
            ]
          }
        },
      "TunnelInfo.TunnelType": {
        "description": "This type represents the tunnel information.",
        "type": "string",
        "enum": [
          "GTP_U",
          "GRE"
        ],
        "example": "GTP_U"
        "description": "This type represents a type of link and may be referenced from data structures"
      },
      "TunnelInfo": {
        "description": "This type represents the tunnel information.",
      "LinkType.ConfirmTermination": {
        "title": "LinkType.ConfirmTermination",
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "URI referring to a resource",
            "examples": [
              "/mecAppSuptApi/example"
            ]
          }
        },
        "description": "Link to the task resource where to confirm termination in case the  application is ready to be terminated before expiry of the timeout."
      },
      "MecAppSuptApiSubscriptionLinkList.Links": {
        "title": "MecAppSuptApiSubscriptionLinkList.Links",
        "required": [
          "tunnelType"
          "self"
        ],
        "type": "object",
        "properties": {
          "tunnelType": {
            "$ref": "#/components/schemas/TunnelInfo.TunnelType"
          "self": {
            "$ref": "#/components/schemas/LinkType"
          },
          "tunnelDstAddress": {
            "$ref": "#/components/schemas/TunnelInfo.TunnelDstAddress"
          "subscriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MecAppSuptApiSubscriptionLinkList.Subscription"
            },
          "tunnelSrcAddress": {
            "$ref": "#/components/schemas/TunnelInfo.TunnelSrcAddress"
          }
        }
            "description": "The MEC application instance's subscriptions"
          }
        },
    "parameters": {
      "Path.AppInstanceId": {
        "name": "appInstanceId",
        "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
        "description": "Self-referring URI."
      },
      "Path.DnsRuleId": {
        "name": "dnsRuleId",
        "description": "Represents a DNS rule.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      "MecAppSuptApiSubscriptionLinkList.Subscription": {
        "title": "MecAppSuptApiSubscriptionLinkList.Subscription",
        "required": [
          "href",
          "rel"
        ],
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "URI referring to a resource",
            "examples": [
              "/mecAppSuptApi/example"
            ]
          },
      "Path.SubscriptionId": {
        "name": "subscriptionId",
        "description": "Represents a subscription to the notifications from the MEC platform.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
          "rel": {
            "type": "string",
            "description": "The values shall be set to AppTerminationNotificationSubscription."
          }
        },
      "Path.TrafficRuleId": {
        "name": "trafficRuleId",
        "description": "Represents a traffic rule.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
        "description": "A link to a subscription."
      },
    "responses": {
      "ApplicationsDnsRules.200": {
        "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
        "content": {
          "application/json": {
            "schema": {
              "type": "array",
              "minItems": 0,
              "items": {
                "$ref": "#/components/schemas/DnsRule"
      "MecAppSuptApiSubscriptionLinkList": {
        "title": "MecAppSuptApiSubscriptionLinkList",
        "required": [
          "_links"
        ],
        "type": "object",
        "properties": {
          "_links": {
            "$ref": "#/components/schemas/MecAppSuptApiSubscriptionLinkList.Links"
          }
        },
            "examples": {
              "DnsRules": {
                "$ref": "#/components/examples/DnsRules"
              }
            }
          }
        "description": "This type represents a list of links related to currently existing subscriptions for a MEC application instance. This information is returned when sending a request to receive current subscriptions."
      },
        "links": {
          "getIndividualMeDNSRule": {
            "$ref": "#/components/links/GetIndividualMeDNSRule"
      "OperationActionType": {
        "title": "OperationActionType",
        "enum": [
          "STOPPING",
          "TERMINATING"
        ],
        "type": "string",
        "description": "Operation that is being performed on the MEC application instance.",
        "examples": [
          "TERMINATING"
        ]
      },
          "putIndividualMeDNSRule": {
            "$ref": "#/components/links/PutIndividualMeDNSRule"
          }
        }
      "ProblemDetails": {
        "title": "ProblemDetails",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "A URI reference according to IETF RFC 3986 that identifies the problem type"
          },
      "ApplicationsDnsRule.200": {
        "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DnsRule"
          "title": {
            "type": "string",
            "description": "A short, human-readable summary of the problem type"
          },
            "examples": {
              "DnsRule": {
                "$ref": "#/components/examples/DnsRule"
              }
          "status": {
            "type": "integer",
            "description": "The HTTP status code for this occurrence of the problem",
            "contentEncoding": "int32"
          },
          "detail": {
            "type": "string",
            "description": "A human-readable explanation specific to this occurrence of the problem"
          },
          "instance": {
            "type": "string",
            "description": "A URI reference that identifies the specific occurrence of the problem"
          }
        }
      },
      "Self": {
        "title": "Self",
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/LinkType"
          }
        },
      "ApplicationsSubscriptions.200": {
        "description": "Upon success, a response body containing the list of links to the requested subscriptions is returned.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MecAppSuptApiSubscriptionLinkList"
            }
          }
        "description": "Self-referring URI."
      },
      "TimingCaps.NtpServers.AuthenticationOption": {
        "title": "TimingCaps.NtpServers.AuthenticationOption",
        "enum": [
          "NONE",
          "SYMMETRIC_KEY",
          "AUTO_KEY"
        ],
        "type": "string",
        "description": "NTP authentication option",
        "examples": [
          "NONE"
        ]
      },
      "TimingCaps.NtpServers.NtpServerAddrType": {
        "title": "TimingCaps.NtpServers.NtpServerAddrType",
        "enum": [
          "IP_ADDRESS",
          "DNS_NAME"
        ],
        "type": "string",
        "description": "Address type of NTP server",
        "examples": [
          "IP_ADDRESS"
        ]
      },
      "TimingCaps.NtpServers": {
        "title": "TimingCaps.NtpServers",
        "required": [
          "ntpServerAddrType",
          "ntpServerAddr",
          "minPollingInterval",
          "maxPollingInterval",
          "localPriority",
          "authenticationOption",
          "authenticationKeyNum"
        ],
        "type": "object",
        "properties": {
          "ntpServerAddrType": {
            "$ref": "#/components/schemas/TimingCaps.NtpServers.NtpServerAddrType"
          },
          "ntpServerAddr": {
            "type": "string",
            "description": "NTP server address",
            "examples": [
              "192.0.2.0"
            ]
          },
          "minPollingInterval": {
            "type": "integer",
            "description": "Minimum poll interval for NTP messages, in seconds as a power of two. Range 3...17",
            "contentEncoding": "int32",
            "examples": [
              3
            ]
          },
          "maxPollingInterval": {
            "type": "integer",
            "description": "Maximum poll interval for NTP messages, in seconds as a power of two. Range 3...17",
            "contentEncoding": "int32",
            "examples": [
              17
            ]
          },
          "localPriority": {
            "type": "integer",
            "description": "NTP server local priority",
            "contentEncoding": "int32",
            "examples": [
              1
            ]
          },
        "links": {
          "getIndividualmecAppSuptApiSubscriptionLinkList": {
            "$ref": "#/components/links/GetIndividualmecAppSuptApiSubscriptionLinkList"
          "authenticationOption": {
            "$ref": "#/components/schemas/TimingCaps.NtpServers.AuthenticationOption"
          },
          "delIndividualmecAppSuptApiSubscriptionLinkList": {
            "$ref": "#/components/links/DelIndividualmecAppSuptApiSubscriptionLinkList"
          }
          "authenticationKeyNum": {
            "type": "integer",
            "description": "Authentication key number",
            "contentEncoding": "int32",
            "examples": [
              1
            ]
          }
        },
      "ApplicationsSubscriptions.201": {
        "description": "Entity body in the request contains a subscription to the  MEC service availability notifications that is to be created.",
        "headers": {
          "location": {
            "description": "The resource URI of the created resource",
            "schema": {
              "type": "string",
              "format": "uri"
            }
          }
        "description": "NTP server detail."
      },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AppTerminationNotificationSubscription"
            }
          }
      "TimingCaps_PtpMasters": {
        "title": "TimingCaps_PtpMasters",
        "required": [
          "ptpMasterIpAddress",
          "ptpMasterLocalPriority",
          "delayReqMaxRate"
        ],
        "type": "object",
        "properties": {
          "ptpMasterIpAddress": {
            "type": "string",
            "description": "PTP Master IP Address",
            "examples": [
              "192.0.2.0"
            ]
          },
        "links": {
          "getIndividualmecAppSuptApiSubscription": {
            "$ref": "#/components/links/GetIndividualmecAppSuptApiSubscription"
          "ptpMasterLocalPriority": {
            "type": "integer",
            "description": "PTP Master local priority",
            "contentEncoding": "int32",
            "examples": [
              1
            ]
          },
          "delIndividualmecAppSuptApiSubscription": {
            "$ref": "#/components/links/DelIndividualmecAppSuptApiSubscription"
          }
          "delayReqMaxRate": {
            "type": "integer",
            "description": "Acceptable maximum rate of the Delay_Req messages in packets per second",
            "contentEncoding": "int32",
            "examples": [
              10
            ]
          }
        },
      "ApplicationsSubscription.200": {
        "description": "Upon success, a response body containing the requested subscription is returned.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AppTerminationNotificationSubscription"
            }
          }
        }
        "description": "NTP server detail."
      },
      "ApplicationsTrafficRules.200": {
        "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
        "content": {
          "application/json": {
            "schema": {
              "type": "array",
              "minItems": 0,
              "items": {
                "$ref": "#/components/schemas/TrafficRule"
              }
      "TimingCaps.TimeStamp": {
        "title": "TimingCaps.TimeStamp",
        "required": [
          "seconds",
          "nanoSeconds"
        ],
        "type": "object",
        "properties": {
          "seconds": {
            "type": "integer",
            "description": "The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC",
            "contentEncoding": "int32",
            "examples": [
              1577836800
            ]
          },
            "examples": {
              "TrafficRules": {
                "$ref": "#/components/examples/TrafficRules"
              }
            }
          "nanoSeconds": {
            "type": "integer",
            "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC",
            "contentEncoding": "int32",
            "examples": [
              0
            ]
          }
        },
        "links": {
          "getIndividualMeTrafficRule": {
            "$ref": "#/components/links/GetIndividualMeTrafficRule"
        "description": "time"
      },
          "putIndividualMeTrafficRule": {
            "$ref": "#/components/links/PutIndividualMeTrafficRule"
          }
        }
      "TimingCaps": {
        "title": "TimingCaps",
        "type": "object",
        "properties": {
          "timeStamp": {
            "$ref": "#/components/schemas/TimingCaps.TimeStamp"
          },
      "ApplicationsTrafficRule.200": {
        "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TrafficRule"
          "ntpServers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimingCaps.NtpServers"
            },
            "examples": {
              "TrafficRule": {
                "$ref": "#/components/examples/TrafficRule"
              }
            }
          }
        }
            "description": "Available NTP servers"
          },
      "TimingCurrentTime.200": {
        "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CurrentTime"
            }
          }
        }
          "ptpMasters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimingCaps_PtpMasters"
            },
      "TimingCaps.200": {
        "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TimingCaps"
            }
          }
            "description": "Available PTP Masters"
          }
        },
      "Error.400": {
        "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
        "description": "This type represents the information provided by the MEC platform in response to the Timing capabilities Query message."
      },
          "text/plain": {
            "schema": {
              "$ref": "#/components/schemas/Empty"
            }
          }
        }
      "TrafficFilter": {
        "title": "TrafficFilter",
        "type": "object",
        "properties": {
          "srcAddress": {
            "type": "array",
            "items": {
              "type": "string"
            },
      "Error.401": {
        "description": "Unauthorized. It is used when the client did not submit the appropriate credentials.",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
            "description": "An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes."
          },
          "text/plain": {
            "schema": {
              "$ref": "#/components/schemas/Empty"
            }
          }
        }
          "dstAddress": {
            "type": "array",
            "items": {
              "type": "string"
            },
      "Error.403": {
        "description": "Forbidden. The operation is not allowed given the current status of the resource. ",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
            "description": "An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes."
          },
      "Error.404": {
        "description": "Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          "srcPort": {
            "type": "array",
            "items": {
              "type": "string"
            },
          "text/plain": {
            "schema": {
              "$ref": "#/components/schemas/Empty"
            }
          }
        }
            "description": "A port or a range of ports"
          },
      "Error.409": {
        "description": "Conflict. The operation cannot be executed currently, due to a conflict with  the state of the resource. Typically, this is because the application  instance resource is in NOT_INSTANTIATED state.",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          "dstPort": {
            "type": "array",
            "items": {
              "type": "string"
            },
          "text/plain": {
            "schema": {
              "$ref": "#/components/schemas/Empty"
            }
          }
        }
            "description": "A port or a range of ports"
          },
      "Error.412": {
        "description": "Precondition Failed. It is used when a condition has failed during conditional requests,  e.g. when using ETags to avoid write conflicts.",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          "protocol": {
            "type": "array",
            "items": {
              "type": "string"
            },
          "text/plain": {
            "schema": {
              "$ref": "#/components/schemas/Empty"
            }
          }
        }
            "description": "Specify the protocol of the traffic filter"
          },
      "Error.429": {
        "description": "Too Many Requests. It is used when a rate limiter has triggered.",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          "token": {
            "type": "array",
            "items": {
              "type": "string"
            },
          "text/plain": {
            "schema": {
              "$ref": "#/components/schemas/Empty"
            }
          }
        }
      }
            "description": "Used for token based traffic rule"
          },
    "requestBodies": {
      "ApplicationsConfirmReady": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AppReadyConfirmation"
            }
          }
        }
          "srcTunnelAddress": {
            "type": "array",
            "items": {
              "type": "string"
            },
      "ApplicationsConfirmTermination": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AppTerminationConfirmation"
            }
          }
        }
            "description": "Used for GTP tunnel based traffic rule"
          },
          "tgtTunnelAddress": {
            "type": "array",
            "items": {
              "type": "string"
            },
      "ApplicationsDnsRule": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DnsRule"
            }
          }
            "description": "Used for GTP tunnel based traffic rule"
          },
        "description": "The updated state is included in the entity body of the request.",
        "required": true
          "srcTunnelPort": {
            "type": "array",
            "items": {
              "type": "string"
            },
      "ApplicationsSubscriptions": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AppTerminationNotificationSubscription"
            }
          }
            "description": "Used for GTP tunnel based traffic rule"
          },
        "description": "Entity body in the request contains a subscription to the MEC application termination notifications that is to be created.",
        "required": true
          "dstTunnelPort": {
            "type": "array",
            "items": {
              "type": "string"
            },
      "ApplicationsTrafficRule": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TrafficRule"
            }
          }
            "description": "Used for GTP tunnel based traffic rule"
          },
        "description": "One or more updated attributes that are allowed to be changed",
        "required": true
          "qCI": {
            "type": "integer",
            "description": "Used to match all packets that have the same Quality Class Indicator (QCI).",
            "contentEncoding": "int32",
            "examples": [
              1
            ]
          },
      "AppTerminationNotification": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AppTerminationNotification"
            }
          }
          "dSCP": {
            "type": "integer",
            "description": "Used to match all IPv4 packets that have the same Differentiated Services Code Point (DSCP)",
            "contentEncoding": "int32",
            "examples": [
              0
            ]
          },
        "required": true
          "tC": {
            "type": "integer",
            "description": "Used to match all IPv6 packets that have the same Traffic Class.",
            "contentEncoding": "int32",
            "examples": [
              1
            ]
          }
        },
    "callbacks": {
      "AppTerminationNotification": {
        "{$request.body#/callbackReference}": {
          "post": {
            "description": "Represents the information that the MEP notifies the subscribed application instance about the corresponding  application instance termination/stop",
            "operationId": "AppTerminationNotification_POST",
            "tags": [
              "callbacks"
        "description": "This type represents the traffic filter."
      },
      "TrafficRule.Action": {
        "title": "TrafficRule.Action",
        "enum": [
          "DROP",
          "FORWARD_DECAPSULATED",
          "FORWARD_ENCAPSULATED",
          "PASSTHROUGH",
          "DUPLICATE_DECAPSULATED",
          "DUPLICATE_ENCAPSULATED"
        ],
            "requestBody": {
              "$ref": "#/components/requestBodies/AppTerminationNotification"
        "type": "string",
        "description": "The action of the MEC host data plane when a packet matches the trafficFilter",
        "examples": [
          "DROP"
        ]
      },
            "responses": {
              "200": {
                "description": "Expected responses from callback consumer, if it accepts the callback"
              }
            }
          }
        }
      }
      "TrafficRule.FilterType": {
        "title": "TrafficRule.FilterType",
        "enum": [
          "FLOW",
          "PACKET"
        ],
        "type": "string",
        "description": "Definition of filter per FLOW or PACKET. If flow the filter match UE->EPC packet and the reverse packet is handled in the same context",
        "examples": [
          "FLOW"
        ]
      },
    "links": {
      "GetIndividualMeDNSRule": {
        "operationId": "ApplicationsDnsRule_GET",
        "description": "The `dnsRuleId` value returned in the response can be used as the `dnsRuleId` parameter in `GET /applications/{appInstanceId}/dns_rules/{dnsRuleId}`",
        "parameters": {
          "dnsRuleId": "$response.body#/dnsRuleId"
        }
      "TrafficRule.State": {
        "title": "TrafficRule.State",
        "enum": [
          "ACTIVE",
          "INACTIVE"
        ],
        "type": "string",
        "description": "Contains the traffic rule state. This attribute may be updated using HTTP PUT method",
        "examples": [
          "ACTIVE"
        ]
      },
      "PutIndividualMeDNSRule": {
        "operationId": "ApplicationsDnsRule_PUT",
        "description": "The `dnsRuleId` value returned in the response can be used as the `dnsRuleId` parameter in `PUT /applications/{appInstanceId}/dns_rules/{dnsRuleId}`",
        "parameters": {
          "dnsRuleId": "$response.body#/dnsRuleId"
        }
      "TrafficRule": {
        "title": "TrafficRule",
        "required": [
          "trafficRuleId",
          "filterType",
          "priority",
          "trafficFilter",
          "action",
          "state"
        ],
        "type": "object",
        "properties": {
          "trafficRuleId": {
            "type": "string",
            "description": "Identify the traffic rule.",
            "examples": [
              "TrafficRule1"
            ]
          },
      "GetIndividualMeTrafficRule": {
        "operationId": "ApplicationsTrafficRule_GET",
        "description": "The `trafficRuleId` value returned in the response can be used as the `trafficRuleId` parameter in `GET /applications/{appInstanceId}/traffic_rules/{trafficRuleId}`",
        "parameters": {
          "trafficRuleId": "$response.body#/trafficRuleId"
        }
          "filterType": {
            "$ref": "#/components/schemas/TrafficRule.FilterType"
          },
      "PutIndividualMeTrafficRule": {
        "operationId": "ApplicationsTrafficRule_PUT",
        "description": "The `trafficRuleId` value returned in the response can be used as the `trafficRuleId` parameter in `PUT /applications/{appInstanceId}/traffic_rules/{trafficRuleId}`",
        "parameters": {
          "trafficRuleId": "$response.body#/trafficRuleId"
        }
          "priority": {
            "type": "integer",
            "description": "Priority of this traffic rule. If traffic rule conflicts, the one with higher priority take precedence",
            "contentEncoding": "int32",
            "examples": [
              1
            ]
          },
      "GetIndividualmecAppSuptApiSubscription": {
        "operationId": "ApplicationsSubscription_GET",
        "description": "The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}`",
        "parameters": {
          "description": "regex = \\/mec_app_support\\/v1\\/applications\\/.*\\/subscriptions\\/.*\\/(.*);subscriptionId = href.match(regex)[1];// where \"href\" is an attribute within the subscription attribute within the _links attribute",
          "subscriptionId": "TBC"
        }
          "trafficFilter": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrafficFilter"
            },
      "DelIndividualmecAppSuptApiSubscription": {
        "operationId": "ApplicationsSubscription_DELETE",
        "description": "The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}`",
        "parameters": {
          "description": "regex = \\/mec_app_support\\/v1\\/applications\\/.*\\/subscriptions\\/(.*);subscriptionId = href.match(regex)[1];// where \"href\" is an attribute within the subscription attribute within the _links attribute",
          "subscriptionId": "TBC"
        }
            "description": ""
          },
      "GetIndividualmecAppSuptApiSubscriptionLinkList": {
        "operationId": "ApplicationsSubscription_GET",
        "description": "The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}`",
        "parameters": {
          "description": "regex = \\/mec_app_support\\/v1\\/applications\\/.*\\/subscriptions\\/(.*);subscriptionId = href.match(regex)[1];// where \"href\" is an attribute within the subscription attribute within the _links attribute",
          "subscriptionId": "TBC"
        }
          "action": {
            "$ref": "#/components/schemas/TrafficRule.Action"
          },
      "DelIndividualmecAppSuptApiSubscriptionLinkList": {
        "operationId": "ApplicationsSubscription_DELETE",
        "description": "The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}`",
        "parameters": {
          "description": "regex = \\/mec_app_support\\/v1\\/applications\\/.*\\/subscriptions\\/(.*);subscriptionId = href.match(regex)[1];// where \"href\" is an attribute within the subscription attribute within the _links attribute",
          "subscriptionId": "TBC"
        }
      }
          "dstInterface": {
            "$ref": "#/components/schemas/DestinationInterface"
          },
    "examples": {
      "DnsRule": {
        "value": {
          "dnsRuleId": "DnsRule1",
          "domainName": "www.example.com",
          "ipAddressType": "IP_V4",
          "ipAddress": "146.241.7.3",
          "ttl": 300,
          "state": "ACTIVE"
          "state": {
            "$ref": "#/components/schemas/TrafficRule.State"
          }
        },
      "DnsRules": {
        "value": [
          {
            "dnsRuleId": "DnsRule1",
            "domainName": "www.example.com",
            "ipAddressType": "IP_V4",
            "ipAddress": "146.241.7.3",
            "ttl": 300,
            "state": "ACTIVE"
        "description": "This type represents the general information of a traffic rule."
      },
          {
            "dnsRuleId": "DnsRule2",
            "domainName": "www.example.com",
            "ipAddressType": "IP_V4",
            "ipAddress": "146.241.7.4",
            "ttl": 300,
            "state": "INACTIVE"
          }
      "TunnelInfo.TunnelType": {
        "title": "TunnelInfo.TunnelType",
        "enum": [
          "GTP_U",
          "GRE"
        ],
        "type": "string",
        "description": "This type represents the tunnel information.",
        "examples": [
          "GTP_U"
        ]
      },
      "TrafficRule": {
        "value": {
          "trafficRuleId": "TrafficRule123",
          "serName": "ExampleService",
          "filterType": "FLOW",
          "priority": 1,
          "trafficFilter": [
            {
              "srcAddress": [
                "192.168.2.0/24",
                "192.168.3.0/24"
              ],
              "dstAddress": [
                "192.127.4.100/32"
      "TunnelInfo": {
        "title": "TunnelInfo",
        "required": [
          "tunnelType"
        ],
              "dstPort": [
                "80"
        "type": "object",
        "properties": {
          "tunnelType": {
            "$ref": "#/components/schemas/TunnelInfo.TunnelType"
          },
          "tunnelDstAddress": {
            "type": "string",
            "description": "Destination address of the tunnel",
            "examples": [
              "?"
            ]
            }
          ],
          "action": "FORWARD_DECAPSULATED",
          "dstInterface": {
            "interfaceType": "IP",
            "dstIpAddress": "20.1.1.1"
          },
          "state": "ACTIVE"
          "tunnelSrcAddress": {
            "type": "string",
            "description": "Source address of the tunnel",
            "examples": [
              "?"
            ]
          }
        },
      "TrafficRules": {
        "value": [
          {
            "trafficRuleId": "TrafficRule123",
            "serName": "ExampleService",
            "filterType": "FLOW",
            "priority": 1,
            "trafficFilter": [
              {
                "srcAddress": [
                  "192.168.2.0/24",
                  "192.168.3.0/24"
                ],
                "dstAddress": [
                  "192.127.4.100/32"
        "description": "This type represents the tunnel information."
      },
      "TimeSourceStatus": {
        "title": "TimeSourceStatus",
        "enum": [
          "TRACEABLE",
          "NONTRACEABLE"
        ],
                "dstPort": [
                  "80"
        "type": "string",
        "description": "Platform Time Source status. 1 = TRACEABLE - time source is locked to the UTC time source. 2 = NONTRACEABLE - time source is not locked to the UTC time source",
        "examples": [
          "TRACEABLE"
        ]
      }
            ],
            "action": "FORWARD_DECAPSULATED",
            "dstInterface": {
              "interfaceType": "IP",
              "dstIpAddress": "20.1.1.1"
    },
            "state": "ACTIVE"
    "requestBodies": {
      "AppTerminationNotification": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AppTerminationNotification"
            }
        ]
          }
        },
        "required": true
      }
    }
  },
  "security": [
    {}
  ]
}
 No newline at end of file
+1233 −924

File changed.

Preview size limit exceeded, changes collapsed.

+1887 −1295

File changed.

Preview size limit exceeded, changes collapsed.

+1279 −972

File changed.

Preview size limit exceeded, changes collapsed.

+4 −4
Changes for README.md: 4 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -5,10 +5,10 @@ This repository contains OpenAPIs descriptions for the interfaces specified in E
## Online resources

* [Specification document](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf)
* [Navigate the MEC Application Support API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/gitlab/mec/gs011-app-enablement-api/raw/master/MecAppSupportApi.yaml).
* [Navigate the MEC Service Management API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/gitlab/mec/gs011-app-enablement-api/raw/master/MecServiceMgmtApi.yaml).
* [Edit the MEC Application Support API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/gitlab/mec/gs011-app-enablement-api/raw/master/MecAppSupportApi.yaml).
* [Edit the MEC Service Management API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/gitlab/mec/gs011-app-enablement-api/raw/master/MecServiceMgmtApi.yaml).
* [Navigate the MEC Application Support API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/gitlab/mec/gs011-app-enablement-api/raw/stf606-final/MecAppSupportApi.yaml).
* [Navigate the MEC Service Management API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/gitlab/mec/gs011-app-enablement-api/raw/stf606-final/MecServiceMgmtApi.yaml).
* [Edit the MEC Application Support API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/gitlab/mec/gs011-app-enablement-api/raw/stf606-final/MecAppSupportApi.yaml).
* [Edit the MEC Service Management API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/gitlab/mec/gs011-app-enablement-api/raw/stf606-final/MecServiceMgmtApi.yaml).

## License

Loading