STF593 - Milestone A - Merge v2.1.1 to Master branch

This is a STF593 - Milestone A deliverable for MEC015 v2.1.1

  • OAS3 (yaml + json)

Merge request reports

Loading
+8 −6
Changes for .jenkins.sh: 8 added lines, 6 removed lines.
Original line number Diff line number Diff line
#!/bin/bash

specfiles=$(ls | egrep "^[^.]*Api.(json|yaml)")
specfiles=$(ls | egrep "^[^.]*.(json|yaml)")

fres=0
for i in $specfiles ; do
    echo "-- Validating OpenAPI file $i..."
    swagger-tools validate $i
    echo "-- Validating and linting OpenAPI file $i..."
    swagger-cli validate $i
    res=$?
    fres=$(($fres||$res))
    echo -e "-- Validator returned $res.\n"
    speccy lint "$i"
    res2=$?
    fres=$(($fres||$res||$res2))
    echo "--- Validator returned $res, linter returned $res2."
done

echo "-- Final validator returns $fres."

exit $fres
+407 −451
Changes for BwManagementApi.json: 407 added lines, 451 removed lines.
Original line number Diff line number Diff line
{
    "swagger": "2.0",
  "openapi": "3.0.0",
  "info": {
      "description": "The ETSI MEC ISG MEC015 Bandwidth Management API described using OpenAPI",
      "version": "1.1.1",
      "title": "BWM API",
    "contact": {
      "url": "https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api"
    },
    "title": "ETSI GS MEC 015 Bandwidth Management API",
    "version": "2.1.1",
    "description": "The ETSI MEC ISG Bandwidth Management API described using OpenAPI.",
    "license": {
      "name": "BSD-3-Clause",
      "url": "https://forge.etsi.org/legal-matters"
    }
  },
  "externalDocs": {
      "description": "ETSI MEC015 V1.1.1 Bandwidth Management API",
      "url": "http://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/01.01.01_60/gs_MEC015v010101p.pdf"
    },
    "host": "127.0.0.1:8081",
    "basePath": "/bwm/v1",
    "schemes": [
      "http",
      "https"
    ],
    "consumes": [
      "application/json"
    ],
    "produces": [
      "application/json"
    ],
    "security": [
    "description": "ETSI GS MEC015 V2.1.1 Traffic Management APIs",
    "url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/02.01.01_60/gs_MEC015v020101p.pdf"
  },
  "servers": [
    {
        "OauthSecurity": [
          "all"
        ]
      "url": "https://localhost/bwm/v1"
    }
  ],
    "securityDefinitions": {
      "OauthSecurity": {
        "type": "oauth2",
        "flow": "application",
        "tokenUrl": "https://oauth.exampleAPI/token",
        "scopes": {
          "all": "Single oauth2 scope for API"
        }
      }
    },
    "parameters": {
      "Body.BwInfo": {
        "name": "bwInfo",
        "in": "body",
        "description": "BwInfo with updated information is included as entity body of the request",
        "required": true,
        "schema": {
          "$ref": "#/definitions/BwInfo"
        }
      },
      "Body.BwInfoDeltas": {
        "name": "bwInfoDeltas",
        "in": "body",
        "description": "Description of the changes to instruct the server how to modify the resource representation. ",
        "required": true,
        "schema": {
          "$ref": "#/definitions/BwInfoDeltas"
        }
      },
      "Path.AllocationId": {
        "name": "allocationId",
        "in": "path",
        "description": "Represents a bandwidth allocation instance",
        "required": true,
        "type": "string"
      },
      "Query.AppInstanceId": {
        "name": "app_instance_id",
        "in": "query",
        "description": "A mobile edge application instance may use multiple app_instance_ids as an input parameter to query the bandwidth allocation of a list of mobile edge application instances. ",
        "required": false,
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "Query.AppName": {
        "name": "app_name",
        "in": "query",
        "description": "A mobile edge application instance may use multiple ser_names as an input parameter to query the bandwidth allocation of a list of mobile edge application instances. ",
        "required": false,
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "Query.SessionId": {
        "name": "session_id",
        "in": "query",
        "description": "A mobile edge application instance may use session_id as an input parameter to query the bandwidth allocation of a list of sessions. ",
        "required": false,
        "type": "array",
        "items": {
          "type": "string"
        }
  "tags": [
    {
      "name": "bwm"
    }
    },
  ],
  "paths": {
    "/bw_allocations": {
      "get": {
          "description": "This method retrieves information about a list of bandwidthAllocation resources",
          "produces": [
            "application/json"
        "tags": [
          "bwm"
        ],
        "summary": "Retrieve information about a list of bandwidthAllocation resources",
        "description": "Retrieves information about a list of bandwidthAllocation resources. Typically used in 'Get configured bandwidth allocation from Bandwidth Management Service' procedure as described in clause 6.2.5.",
        "operationId": "bandwidthAllocationListGET",
        "parameters": [
          {
              "$ref": "#/parameters/Query.AppInstanceId"
            "$ref": "#/components/parameters/Query.app_instance_id"
          },
          {
              "$ref": "#/parameters/Query.AppName"
            "$ref": "#/components/parameters/Query.app_name"
          },
          {
              "$ref": "#/parameters/Query.SessionId"
            "$ref": "#/components/parameters/Query.session_id"
          }
        ],
        "responses": {
          "200": {
            "description": "Upon success, a response body containing an array of the bandwidthAllocations is returned.",
            "content": {
              "application/json": {
                "schema": {
                "required": [
                  "bwInfo"
                ],
                "properties": {
                  "bwInfo": {
                    "$ref": "#/definitions/BwInfo"
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BwInfo"
                  }
                }
              }
            }
          },
          "400": {
              "description": "It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
              "schema": {
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
                  }
                }
              }
            "$ref": "#/components/responses/400"
          },
          "403": {
              "description": "The operation is not allowed given the current status of the resource. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
              "schema": {
                "required": [
                  "ProblemDetails"
                ],
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
                  }
                }
              }
            "$ref": "#/components/responses/403"
          },
          "404": {
              "description": "It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
              "schema": {
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
                  }
                }
              }
            "$ref": "#/components/responses/404"
          }
        }
      },
      "post": {
          "description": "This method is used to create a bandwidthAllocation resource.",
          "produces": [
            "application/json"
        "tags": [
          "bwm"
        ],
          "parameters": [
            {
              "$ref": "#/parameters/Body.BwInfo"
            }
          ],
          "responses": {
            "201": {
              "description": "Upon success, the HTTP response shall include a \"Location\" HTTP header that contains the resource URI of the created resource.",
        "summary": "Create a bandwidthAllocation resource",
        "description": "Used to create a bandwidthAllocation resource. Typically used in 'Register to Bandwidth Management Service' procedure as described in clause 6.2.1.",
        "operationId": "bandwidthAllocationPOST",
        "parameters": [],
        "requestBody": {
          "description": "Entity body in the request contains BwInfo to be created.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "bwInfo"
                ],
                "properties": {
                  "bwInfo": {
                    "$ref": "#/definitions/BwInfo"
                "$ref": "#/components/schemas/BwInfo"
              }
            }
          }
        },
            "400": {
              "description": "It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
        "responses": {
          "201": {
            "description": "Upon success, the HTTP response shall include a 'Location' HTTP header that contains the resource URI of the created resource.",
            "content": {
              "application/json": {
                "schema": {
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
                  "$ref": "#/components/schemas/BwInfo"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
              "description": "The operation is not allowed given the current status of the resource. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
              "schema": {
                "required": [
                  "ProblemDetails"
                ],
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
                  }
                }
              }
            "$ref": "#/components/responses/403"
          },
          "404": {
              "description": "It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
              "schema": {
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
                  }
                }
              }
            "$ref": "#/components/responses/404"
          }
        }
      }
    },
    "/bw_allocations/{allocationId}": {
      "get": {
          "description": "This method retrieves information about a specific bandwidthAllocation resource. ",
          "produces": [
            "application/json"
        "tags": [
          "bwm"
        ],
        "summary": "Retrieve information about a specific bandwidthAllocation",
        "description": "Retrieves information about a bandwidthAllocation resource. Typically used in 'Get configured bandwidth allocation from Bandwidth Management Service' procedure as described in clause 6.2.5.",
        "operationId": "bandwidthAllocationGET",
        "parameters": [
          {
              "$ref": "#/parameters/Path.AllocationId"
            "$ref": "#/components/parameters/Path.allocationId"
          }
        ],
        "responses": {
          "200": {
              "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
            "description": "Used to indicate nonspecific success. The response body contains a representation of the resource.",
            "content": {
              "application/json": {
                "schema": {
                "required": [
                  "bwInfo"
                ],
                "properties": {
                  "bwInfo": {
                    "$ref": "#/definitions/BwInfo"
                  "$ref": "#/components/schemas/BwInfo"
                }
              }
            }
          },
          "400": {
              "description": "It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
              "schema": {
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
                  }
                }
              }
            "$ref": "#/components/responses/400"
          },
          "403": {
              "description": "The operation is not allowed given the current status of the resource. More information shall be provided in the \"detail\" attribute of the \"ProblemDetails\" structure. required:\n  - ProblemDetails\nproperties:\n  ProblemDetails:\n    $ref: '#/definitions/ProblemDetails'"
            "$ref": "#/components/responses/403"
          },
          "404": {
              "description": "It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
              "schema": {
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
            "$ref": "#/components/responses/404"
          }
        }
      },
      "put": {
        "tags": [
          "bwm"
        ],
        "summary": "Update the information about a specific bandwidthAllocation",
        "description": "Updates the information about a bandwidthAllocation resource. As specified in ETSI GS MEC 009 [6], the PUT HTTP method has 'replace' semantics.",
        "operationId": "bandwidthAllocationPUT",
        "requestBody": {
          "description": "BwInfo with updated information is included as entity body of the request.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BwInfo"
              }
            }
          }
        },
        "put": {
          "description": "This method updates the information about a specific bandwidthAllocation resource. ",
          "produces": [
            "application/json"
          ],
        "parameters": [
          {
              "$ref": "#/parameters/Path.AllocationId"
            },
            {
              "$ref": "#/parameters/Body.BwInfo"
            "$ref": "#/components/parameters/Path.allocationId"
          }
        ],
        "responses": {
          "200": {
              "description": "Upon success, a response body containing data type describing the updated BwInfo is returned.",
            "description": "Used to indicate nonspecific success. The response body contains a representation of the resource.",
            "content": {
              "application/json": {
                "schema": {
                "required": [
                  "bwInfo"
                ],
                "properties": {
                  "bwInfo": {
                    "$ref": "#/definitions/BwInfo"
                  "$ref": "#/components/schemas/BwInfo"
                }
              }
            }
          },
          "400": {
              "description": "It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
              "schema": {
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
                  }
                }
              }
            "$ref": "#/components/responses/400"
          },
          "403": {
              "description": "The operation is not allowed given the current status of the resource. More information shall be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
              "schema": {
                "required": [
                  "ProblemDetails"
                ],
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
                  }
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "412": {
            "$ref": "#/components/responses/412"
          }
        }
      },
            "404": {
              "description": "It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
      "patch": {
        "tags": [
          "bwm"
        ],
        "summary": "Modify the information about a specific existing bandwidthAllocation by sending updates on the data structure",
        "description": "Updates the information about a bandwidthAllocation resource. As specified in ETSI GS MEC 009 [6], the PATCH HTTP method updates a resource on top of the existing resource state by just including the changes ('deltas') in the request body.",
        "operationId": "bandwidthAllocationPATCH",
        "requestBody": {
          "description": "Description of the changes to instruct the server how to modify the resource representation.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
                "$ref": "#/components/schemas/BwInfoDeltas"
              }
            }
          }
        },
            "412": {
              "description": "It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Path.allocationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Used to indicate nonspecific success. The response body contains a representation of the resource.",
            "content": {
              "application/json": {
                "schema": {
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
                  "$ref": "#/components/schemas/BwInfo"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "412": {
            "$ref": "#/components/responses/412"
          }
        }
      },
        "patch": {
          "description": "This method updates the information about a specific bandwidthAllocation resource. ",
          "produces": [
            "application/json"
      "delete": {
        "tags": [
          "bwm"
        ],
        "summary": "Remove a specific bandwidthAllocation",
        "description": "Used in 'Unregister from Bandwidth Management Service' procedure as described in clause 6.2.3.",
        "operationId": "bandwidthAllocationDELETE",
        "parameters": [
          {
              "$ref": "#/parameters/Path.AllocationId"
            },
            {
              "$ref": "#/parameters/Body.BwInfoDeltas"
            "$ref": "#/components/parameters/Path.allocationId"
          }
        ],
        "responses": {
            "200": {
              "description": "Upon success, a response body containing data type describing the updated BwInfo is returned.",
              "schema": {
                "required": [
                  "bwInfo"
                ],
                "properties": {
                  "bwInfo": {
                    "$ref": "#/definitions/BwInfo"
          "204": {
            "$ref": "#/components/responses/204"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        }
      }
    }
  },
  "components": {
    "responses": {
      "204": {
        "description": "Upon success, a response 204 No Content without any response body is returned."
      },
      "400": {
              "description": "It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
        "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
        "content": {
          "application/problem+json": {
            "schema": {
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      },
      "403": {
              "description": "The operation is not allowed given the current status of the resource. More information shall be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
        "description": "Forbidden :  operation is not allowed given the current status of the resource.",
        "content": {
          "application/problem+json": {
            "schema": {
                "required": [
                  "ProblemDetails"
                ],
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      },
      "404": {
              "description": "It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
        "description": "Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI.",
        "content": {
          "application/problem+json": {
            "schema": {
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      },
      "412": {
              "description": "It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
        "description": "Precondition failed :  used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts when using PUT",
        "content": {
          "application/problem+json": {
            "schema": {
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
                  }
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      }
    },
        "delete": {
          "description": "Remove a specific bandwidthAllocation resource. DELETE method is typically used in \"Unregister from Bandwidth Management Service\" procedure",
          "produces": [
            "application/json"
          ],
          "parameters": [
            {
              "$ref": "#/parameters/Path.AllocationId"
    "parameters": {
      "Path.allocationId": {
        "name": "allocationId",
        "in": "path",
        "description": "Represents a bandwidth allocation instance",
        "required": true,
        "schema": {
          "type": "string"
        }
          ],
          "responses": {
            "204": {
              "description": "No Content"
      },
            "403": {
              "description": "The operation is not allowed given the current status of the resource. More information shall be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
      "Query.app_instance_id": {
        "name": "app_instance_id",
        "in": "query",
        "description": "A MEC application instance may use multiple app_instance_ids as an input parameter to query the bandwidth allocation of a list of MEC application instances. See note.",
        "required": false,
        "schema": {
                "required": [
                  "ProblemDetails"
                ],
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
                  }
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
            "404": {
              "description": "It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
      "Query.app_name": {
        "name": "app_name",
        "in": "query",
        "description": "A MEC application instance may use multiple app_names as an input parameter to query the bandwidth allocation of a list of MEC application instances. See note.",
        "required": false,
        "schema": {
                "properties": {
                  "ProblemDetails": {
                    "$ref": "#/definitions/ProblemDetails"
                  }
                }
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "Query.session_id": {
        "name": "session_id",
        "in": "query",
        "description": "A MEC application instance may use session_id as an input parameter to query the bandwidth allocation of a list of sessions. See note.",
        "required": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "definitions": {
      "ProblemDetails": {
        "type": "object",
    "schemas": {
      "BwInfo": {
        "properties": {
          "type": {
            "$ref": "#/definitions/Problem.type"
          },
          "title": {
            "$ref": "#/definitions/Problem.title"
          },
          "status": {
            "$ref": "#/definitions/Problem.status"
          },
          "detail": {
            "$ref": "#/definitions/Problem.detail"
          },
          "instance": {
            "$ref": "#/definitions/Problem.instance"
          }
        }
      },
      "Problem.type": {
          "allocationDirection": {
            "description": "The direction of the requested BW allocation: 00 = Downlink (towards the UE) 01 = Uplink (towards the application/session) 10 = Symmetrical",
            "type": "string",
        "format": "uri",
        "description": "A URI reference according to IETF RFC 3986 that identifies the problem type"
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "String"
          },
      "Problem.title": {
          "appInsId": {
            "description": "Application instance identifier",
            "type": "string",
        "description": "A short, human-readable summary of the problem type"
      },
      "Problem.status": {
        "type": "integer",
        "format": "uint32",
        "description": "The HTTP status code for this occurrence of the problem"
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "String"
          },
      "Problem.detail": {
          "fixedAllocation": {
            "description": "Size of requested fixed BW allocation in [bps]",
            "type": "string",
        "description": "A human-readable explanation specific to this occurrence of the problem"
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "String"
          },
      "Problem.instance": {
          "fixedBWPriority": {
            "description": "Indicates the allocation priority when dealing with several applications or sessions in parallel. Values are not defined in the present document",
            "enum": [
              "SEE_DESCRIPTION"
            ],
            "type": "string",
        "format": "uri",
        "description": "A URI reference that identifies the specific occurrence of the problem"
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "Enum"
          },
      "BwInfo": {
        "description": "information of bandwidth resource",
        "type": "object",
        "required": [
          "appInsId",
          "requestType",
          "fixedAllocation",
          "allocationDirection"
          "requestType": {
            "description": "Numeric value (0 - 255) corresponding to specific type of consumer as following: 0 = APPLICATION_SPECIFIC_BW_ALLOCATION 1 = SESSION_SPECIFIC_BW_ALLOCATION",
            "type": "integer",
            "enum": [
              0,
              1
            ],
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "Enum_inlined"
          },
          "sessionFilter": {
            "description": "Session filtering criteria, applicable when requestType is set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define a single session only. In case multiple sessions match sessionFilter the request shall be rejected",
            "items": {
              "type": "object",
              "properties": {
          "timeStamp": {
            "$ref": "#/definitions/TimeStamp"
                "dstAddress": {
                  "description": "Destination address identity of session (including range)",
                  "type": "string",
                  "x-etsi-mec-cardinality": "0..1",
                  "x-etsi-mec-origin-type": "String"
                },
          "appInsId": {
            "$ref": "#/definitions/AppInsId"
                "dstPort": {
                  "description": "Destination port identity of session",
                  "items": {
                    "type": "string"
                  },
          "requestType": {
            "$ref": "#/definitions/RequestType"
                  "minItems": 0,
                  "type": "array",
                  "x-etsi-mec-cardinality": "0..N",
                  "x-etsi-mec-origin-type": "String"
                },
          "sessionFilter": {
            "$ref": "#/definitions/SessionFilter"
                "protocol": {
                  "description": "Protocol number",
                  "type": "string",
                  "x-etsi-mec-cardinality": "0..1",
                  "x-etsi-mec-origin-type": "String"
                },
          "fixedBWPriority": {
            "$ref": "#/definitions/FixedBWPriority"
                "sourceIp": {
                  "description": "Source address identity of session (including range)",
                  "type": "string",
                  "x-etsi-mec-cardinality": "0..1",
                  "x-etsi-mec-origin-type": "String"
                },
          "fixedAllocation": {
            "$ref": "#/definitions/FixedAllocation"
                "sourcePort": {
                  "description": "Source port identity of session",
                  "items": {
                    "type": "string"
                  },
          "allocationDirection": {
            "$ref": "#/definitions/AllocationDirection"
                  "minItems": 0,
                  "type": "array",
                  "x-etsi-mec-cardinality": "0..N",
                  "x-etsi-mec-origin-type": "String"
                }
              }
            },
      "BwInfoDeltas": {
        "description": "Conform to JSON merge patch format and processing rules specified IETF RFC 7396 [8], this type represents the attributes whose value are allowed to be updated with HTTP PATCH method in content format JSON",
        "type": "object",
        "properties": {
          "appInsId": {
            "$ref": "#/definitions/AppInsId"
          },
          "requestType": {
            "$ref": "#/definitions/RequestType"
          },
          "sessionFilter": {
            "$ref": "#/definitions/SessionFilter"
          },
          "fixedBWPriority": {
            "$ref": "#/definitions/FixedBWPriority"
            "minItems": 0,
            "type": "array",
            "x-etsi-mec-cardinality": "0..N",
            "x-etsi-mec-origin-type": "Structure (inlined)"
          },
          "fixedAllocation": {
            "$ref": "#/definitions/FixedAllocation"
          "timeStamp": {
            "description": "Time stamp to indicate when the corresponding information elements are sent",
            "properties": {
              "nanoSeconds": {
                "type": "integer",
                "format": "int32",
                "description": "The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC",
                "x-etsi-mec-cardinality": "1",
                "x-etsi-mec-origin-type": "Uint32"
              },
          "allocationDirection": {
            "$ref": "#/definitions/AllocationDirection"
          }
              "seconds": {
                "type": "integer",
                "format": "int32",
                "description": "The seconds part of the Time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC",
                "x-etsi-mec-cardinality": "1",
                "x-etsi-mec-origin-type": "Uint32"
              }
            },
      "TimeStamp": {
        "type": "object",
            "required": [
              "seconds",
              "nanoSeconds"
            ],
        "properties": {
          "seconds": {
            "$ref": "#/definitions/Seconds"
          },
          "nanoSeconds": {
            "$ref": "#/definitions/NanoSeconds"
          }
            "type": "object",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "Structure (inlined)"
          }
        },
      "AppInsId": {
        "required": [
          "appInsId",
          "requestType",
          "fixedAllocation",
          "allocationDirection"
        ],
        "type": "object",
        "x-etsi-ref": "7.2.2"
      },
      "BwInfoDeltas": {
        "properties": {
          "allocationDirection": {
            "description": "The direction of the requested BW allocation: 00 = Downlink (towards the UE) 01 = Uplink (towards the application/session) 10 = Symmetrical",
            "type": "string",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "String"
          },
          "appInsId": {
            "description": "Application instance identifier",
        "type": "string"
            "type": "string",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "String"
          },
      "RequestType": {
        "description": "Numeric value (0 - 255) corresponding to specific type of consumer",
          "fixedAllocation": {
            "description": "Size of requested fixed BW allocation in [bps]",
            "type": "string",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "String"
          },
          "fixedBWPriority": {
            "description": "Indicates the allocation priority when dealing with several applications or sessions in parallel. Values are not defined in the present document",
            "enum": [
              "SEE DESCRIPTION"
            ],
            "type": "string",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "Enum_inlined"
          },
          "requestType": {
            "description": "Numeric value (0 - 255) corresponding to specific type of consumer as following: 0 = APPLICATION_SPECIFIC_BW_ALLOCATION 1 = SESSION_SPECIFIC_BW_ALLOCATION",
            "type": "string",
            "enum": [
          "APPLICATION_SPECIFIC_BW_ALLOCATION",
          "SESSION_SPECIFIC_BW_ALLOCATION"
        ]
              0,
              1
            ],
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "Enum_inlined"
          },
      "SessionFilter": {
          "sessionFilter": {
            "description": "Session filtering criteria, applicable when requestType is set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define a single session only. In case multiple sessions match sessionFilter the request shall be rejected",
        "type": "array",
            "items": {
              "type": "object",
              "properties": {
            "sourceIp": {
              "$ref": "#/definitions/SourceIp"
            },
            "sourcePort": {
              "$ref": "#/definitions/SourcePort"
            },
                "dstAddress": {
              "$ref": "#/definitions/DstAddress"
                  "description": "Destination address identity of session (including range)",
                  "type": "string",
                  "x-etsi-mec-cardinality": "0..1",
                  "x-etsi-mec-origin-type": "String"
                },
                "dstPort": {
              "$ref": "#/definitions/DstPort"
                  "description": "Destination port identity of session",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 0,
                  "type": "array",
                  "x-etsi-mec-cardinality": "0..N",
                  "x-etsi-mec-origin-type": "String"
                },
                "protocol": {
              "$ref": "#/definitions/Protocol"
            }
          }
        }
                  "description": "Protocol number",
                  "type": "string",
                  "x-etsi-mec-cardinality": "0..1",
                  "x-etsi-mec-origin-type": "String"
                },
      "FixedBWPriority": {
        "description": "Indicates the allocation priority when dealing with several applications or sessions in parallel. Values are not defined in the present document",
                "sourceIp": {
                  "description": "Source address identity of session (including range)",
                  "type": "string",
        "enum": [
          "not defined in the present document"
        ]
                  "x-etsi-mec-cardinality": "0..1",
                  "x-etsi-mec-origin-type": "String"
                },
      "FixedAllocation": {
        "description": "Size of requested fixed BW allocation in [bps]",
                "sourcePort": {
                  "description": "Source port identity of session ",
                  "items": {
                    "type": "string"
                  },
      "AllocationDirection": {
        "description": "The direction of the requested BW allocation",
                  "minItems": 0,
                  "type": "array",
                  "x-etsi-mec-cardinality": "0..N",
                  "x-etsi-mec-origin-type": "String"
                }
              }
            },
            "minItems": 0,
            "type": "array",
            "x-etsi-mec-cardinality": "0..N",
            "x-etsi-mec-origin-type": "Structure (inlined)"
          }
        },
        "required": [
          "appInsId",
          "requestType"
        ],
        "type": "object",
        "x-etsi-ref": "7.2.3"
      },
      "ProblemDetails": {
        "properties": {
          "detail": {
            "description": "A human-readable explanation specific to this occurrence of the problem",
            "type": "string",
        "enum": [
          "00 = Downlink (towards the UE)",
          "01 = Uplink (towards the application/session)",
          "10 = Symmetrical"
        ]
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "String"
          },
      "Seconds": {
        "description": "The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC",
        "type": "integer",
        "format": "uint32"
          "instance": {
            "description": "A URI reference that identifies the specific occurrence of the problem",
            "format": "uri",
            "type": "string",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "URI"
          },
      "NanoSeconds": {
        "description": "The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC",
          "status": {
            "description": "The HTTP status code for this occurrence of the problem",
            "format": "int32",
            "type": "integer",
        "format": "uint32"
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "Uint32"
          },
      "SourceIp": {
        "description": "Source address identity of session (including range)",
        "type": "string"
          "title": {
            "description": "A short, human-readable summary of the problem type",
            "type": "string",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "String"
          },
      "SourcePort": {
        "description": "Source port identity of session ",
        "type": "array",
        "items": {
          "type": "string"
          "type": {
            "description": "A URI reference according to IETF RFC 3986 that identifies the problem type",
            "format": "uri",
            "type": "string",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "URI"
          }
        },
      "DstAddress": {
        "description": "Destination address identity of session (including range)",
        "type": "string"
      },
      "DstPort": {
        "description": "Destination port identity of session ",
        "type": "array",
        "items": {
          "type": "string"
        "type": "object"
      }
      },
      "Protocol": {
        "description": "Protocol number",
        "type": "string"
    }
  }
}
 No newline at end of file
+387 −417
Changes for BwManagementApi.yaml: 387 added lines, 417 removed lines.
Original line number Diff line number Diff line
swagger: '2.0'
openapi: 3.0.0
info:
  description: >-
    The ETSI MEC ISG MEC015 Bandwidth Management API described using OpenAPI
  version: 1.1.1
  title: BWM API
  contact:
    url: https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api
  title: 'ETSI GS MEC 015 Bandwidth Management API'
  version: 2.1.1
  description: The ETSI MEC ISG Bandwidth Management API described using OpenAPI.
  license:
    name: BSD-3-Clause
    url: 'https://forge.etsi.org/legal-matters'

externalDocs:
  description: ETSI MEC015 V1.1.1 Bandwidth Management API
  url: 'http://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/01.01.01_60/gs_MEC015v010101p.pdf'
host: '127.0.0.1:8081'
basePath: /bwm/v1
schemes:
  - http
  - https
consumes:
  - application/json
produces:
  - application/json
security:
  - OauthSecurity:
      - all
securityDefinitions:
  OauthSecurity:
    type: oauth2
    flow: application
    tokenUrl: 'https://oauth.exampleAPI/token'
    scopes:
      all: Single oauth2 scope for API
parameters:
  Body.BwInfo:
    name: bwInfo
    in: body
    description: >-
      BwInfo with updated information is included as entity body of the request
    required: true
    schema:
      $ref: '#/definitions/BwInfo'
  Body.BwInfoDeltas:
    name: bwInfoDeltas
    in: body
    description: >-
      Description of the changes to instruct the server how to modify the resource representation. 
    required: true
    schema:
      $ref: '#/definitions/BwInfoDeltas'
  Path.AllocationId:
    name: allocationId
    in: path
    description: >-
      Represents a bandwidth allocation instance
    required: true
    type: string
  Query.AppInstanceId:
    name: app_instance_id
    in: query
    description: >-
      A mobile edge application instance may use multiple app_instance_ids as an input parameter to query the bandwidth allocation of a list of mobile edge application instances. 
    required: false
    type: array
    items:
      type: string
  Query.AppName:
    name: app_name
    in: query
    description: >-
      A mobile edge application instance may use multiple ser_names as an input parameter to query the bandwidth allocation of a list of mobile edge application instances. 
    required: false
    type: array
    items:
      type: string
  Query.SessionId:
    name: session_id
    in: query
    description: >-
      A mobile edge application instance may use session_id as an input parameter to query the bandwidth allocation of a list of sessions. 
    required: false
    type: array
    items:
      type: string
  description: ETSI GS MEC015 V2.1.1 Traffic Management APIs
  url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/02.01.01_60/gs_MEC015v020101p.pdf'

servers:
  - url: 'https://localhost/bwm/v1'

tags:
- name: "bwm"

paths:
  /bw_allocations:
    get:
      description: >-
        This method retrieves information about a list of bandwidthAllocation resources
      produces:
        - application/json
      tags:
      - "bwm"
      summary: "Retrieve information about a list of bandwidthAllocation resources"
      description: "Retrieves information about a list of bandwidthAllocation resources. Typically used in 'Get configured bandwidth allocation from Bandwidth Management Service' procedure as described in clause 6.2.5."
      operationId: "bandwidthAllocationListGET"
      parameters:
        - $ref: '#/parameters/Query.AppInstanceId'
        - $ref: '#/parameters/Query.AppName'
        - $ref: '#/parameters/Query.SessionId'
        - $ref: '#/components/parameters/Query.app_instance_id'
        - $ref: '#/components/parameters/Query.app_name'
        - $ref: '#/components/parameters/Query.session_id'
      responses:
        '200':
          description: >-
           Upon success, a response body containing an array of the bandwidthAllocations is returned.
          schema:
            required:
              - bwInfo
            properties:
              bwInfo:
                $ref: '#/definitions/BwInfo'
        '400':
          description: It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
          schema:
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: >-
            The operation is not allowed given the current status of the resource. More information should be provided in the "detail" attribute of the "ProblemDetails" structure.
          schema:
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: >-
            It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
        200:
          description: "Upon success, a response body containing an array of the bandwidthAllocations is returned."
          content:
            application/json:
              schema:
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
                type: array
                items:
                  $ref: "#/components/schemas/BwInfo"
        400:
          $ref: "#/components/responses/400"
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
    post:
      description: >-
        This method is used to create a bandwidthAllocation resource.
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Body.BwInfo'
      responses:
        '201':
          description: >-
            Upon success, the HTTP response shall include a "Location" HTTP header that contains the resource URI of the created resource.
          schema:
            required:
              - bwInfo
            properties:
              bwInfo:
                $ref: '#/definitions/BwInfo'
        '400':
          description: It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
          schema:
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: >-
            The operation is not allowed given the current status of the resource. More information should be provided in the "detail" attribute of the "ProblemDetails" structure.
      tags:
      - "bwm"
      summary: "Create a bandwidthAllocation resource"
      description: "Used to create a bandwidthAllocation resource. Typically used in 'Register to Bandwidth Management Service' procedure as described in clause 6.2.1."
      operationId: "bandwidthAllocationPOST"
      parameters: []
      requestBody:
        description: "Entity body in the request contains BwInfo to be created."
        required: true
        content:
          application/json:
            schema:
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: >-
            It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
              $ref: '#/components/schemas/BwInfo'
      responses:
        201:
          description: "Upon success, the HTTP response shall include a 'Location' HTTP header that contains the resource URI of the created resource."
          content:
            application/json:
              schema:
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
                $ref: "#/components/schemas/BwInfo"
        400:
          $ref: "#/components/responses/400"
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
  /bw_allocations/{allocationId}:
    get:
      description: >-
        This method retrieves information about a specific bandwidthAllocation resource. 
      produces:
        - application/json
      tags:
      - "bwm"
      summary: "Retrieve information about a specific bandwidthAllocation"
      description: "Retrieves information about a bandwidthAllocation resource. Typically used in 'Get configured bandwidth allocation from Bandwidth Management Service' procedure as described in clause 6.2.5."
      operationId: "bandwidthAllocationGET"
      parameters:
        - $ref: '#/parameters/Path.AllocationId'
        - $ref: '#/components/parameters/Path.allocationId'
      responses:
        '200':
          description: >-
            It is used to indicate nonspecific success. The response body contains a representation of the resource.
        200:
          description: "Used to indicate nonspecific success. The response body contains a representation of the resource."
          content:
            application/json:
              schema:
            required:
              - bwInfo
            properties:
              bwInfo:
                $ref: '#/definitions/BwInfo'
        '400':
          description: It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
          schema:
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: >-
            The operation is not allowed given the current status of the resource. More information shall be provided in the "detail" attribute of the "ProblemDetails" structure.
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: >-
            It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
          schema:
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
                $ref: "#/components/schemas/BwInfo"
        400:
          $ref: "#/components/responses/400"
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
    put:
      description: >-
        This method updates the information about a specific bandwidthAllocation resource. 
      produces:
        - application/json
      tags:
      - "bwm"
      summary: "Update the information about a specific bandwidthAllocation"
      description: "Updates the information about a bandwidthAllocation resource. As specified in ETSI GS MEC 009 [6], the PUT HTTP method has 'replace' semantics."
      operationId: "bandwidthAllocationPUT"
      requestBody:
        description: "BwInfo with updated information is included as entity body of the request."
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BwInfo'
      parameters:
        - $ref: '#/parameters/Path.AllocationId'
        - $ref: '#/parameters/Body.BwInfo'
        - $ref: '#/components/parameters/Path.allocationId'
      responses:
        '200':
          description: >-
            Upon success, a response body containing data type describing the updated BwInfo is returned.
          schema:
            required:
              - bwInfo
            properties:
              bwInfo:
                $ref: '#/definitions/BwInfo'
        '400':
          description: It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
        200:
          description: "Used to indicate nonspecific success. The response body contains a representation of the resource."
          content:
            application/json:
              schema:
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: >-
            The operation is not allowed given the current status of the resource. More information shall be provided in the "detail" attribute of the "ProblemDetails" structure.
          schema:
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: >-
            It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
                $ref: "#/components/schemas/BwInfo"
        400:
          $ref: "#/components/responses/400"
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
        412:
          $ref: '#/components/responses/412'
    patch:
      tags:
      - "bwm"
      summary: "Modify the information about a specific existing bandwidthAllocation by sending updates on the data structure"
      description: "Updates the information about a bandwidthAllocation resource. As specified in ETSI GS MEC 009 [6], the PATCH HTTP method updates a resource on top of the existing resource state by just including the changes ('deltas') in the request body."
      operationId: "bandwidthAllocationPATCH"
      requestBody:
        description: "Description of the changes to instruct the server how to modify the resource representation."
        required: true
        content:
          application/json:
            schema:
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '412':
          description: >-
            It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
              $ref: '#/components/schemas/BwInfoDeltas'
      parameters:
        - $ref: '#/components/parameters/Path.allocationId'
      responses:
        200:
          description: "Used to indicate nonspecific success. The response body contains a representation of the resource."
          content:
            application/json:
              schema:
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
    patch:
      description: >-
        This method updates the information about a specific bandwidthAllocation resource. 
      produces:
        - application/json
                $ref: "#/components/schemas/BwInfo"
        400:
          $ref: "#/components/responses/400"
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
        412:
          $ref: '#/components/responses/412'
    delete:
      tags:
      - "bwm"
      summary: "Remove a specific bandwidthAllocation"
      description: "Used in 'Unregister from Bandwidth Management Service' procedure as described in clause 6.2.3."
      operationId: "bandwidthAllocationDELETE"
      parameters:
        - $ref: '#/parameters/Path.AllocationId'
        - $ref: '#/parameters/Body.BwInfoDeltas'
        - $ref: '#/components/parameters/Path.allocationId'
      responses:
        204:
          $ref: '#/components/responses/204'
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
components:
  responses:
        '200':
          description: >-
            Upon success, a response body containing data type describing the updated BwInfo is returned.
    204:
      description: "Upon success, a response 204 No Content without any response body is returned."
    400:
      description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
      content:
        application/problem+json:
          schema:
            required:
              - bwInfo
            properties:
              bwInfo:
                $ref: '#/definitions/BwInfo'
        '400':
          description: It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
            $ref: '#/components/schemas/ProblemDetails'
    403:
      description: 'Forbidden :  operation is not allowed given the current status of the resource.'
      content:
        application/problem+json:
          schema:
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: >-
            The operation is not allowed given the current status of the resource. More information shall be provided in the "detail" attribute of the "ProblemDetails" structure.
            $ref: '#/components/schemas/ProblemDetails'
    404:
      description: 'Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI.'
      content:
        application/problem+json:
          schema:
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: >-
            It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
          schema:
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '412':
          description: >-
            It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
            $ref: '#/components/schemas/ProblemDetails'
    412:
      description: 'Precondition failed :  used when a condition has failed during conditional requests, e.g. when
        using ETags to avoid write conflicts when using PUT'
      content:
        application/problem+json:
          schema:
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
    delete:
      description: Remove a specific bandwidthAllocation resource. DELETE method is typically used in "Unregister from Bandwidth Management Service" procedure
      produces:
        - application/json
            $ref: '#/components/schemas/ProblemDetails'
  parameters:
        - $ref: '#/parameters/Path.AllocationId'
      responses:
        '204':
          description: No Content
        '403':
          description: >-
            The operation is not allowed given the current status of the resource. More information shall be provided in the "detail" attribute of the "ProblemDetails" structure.
    Path.allocationId:
      name: allocationId
      in: "path"
      description: "Represents a bandwidth allocation instance"
      required: true
      schema:
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: >-
            It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
        type: string
    Query.app_instance_id:
      name: app_instance_id
      in: "query"
      description: "A MEC application instance may use multiple app_instance_ids as an input parameter to query the bandwidth allocation of a list of MEC application instances. See note."
      required: false
      schema:
        type: array
        items:
          type: string
    Query.app_name:
      name: app_name
      in: "query"
      description: "A MEC application instance may use multiple app_names as an input parameter to query the bandwidth allocation of a list of MEC application instances. See note."
      required: false
      schema:
        type: array
        items:
          type: string
    Query.session_id:
      name: session_id
      in: "query"
      description: "A MEC application instance may use session_id as an input parameter to query the bandwidth allocation of a list of sessions. See note."
      required: false
      schema:
        type: array
        items:
          type: string
  schemas:
    BwInfo:
      properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'  
definitions:
  ProblemDetails:
        allocationDirection:
          description: 'The direction of the requested BW allocation:
            00 = Downlink (towards the UE)
            01 = Uplink (towards the application/session)
            10 = Symmetrical'
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        appInsId:
          description: Application instance identifier
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        fixedAllocation:
          description: Size of requested fixed BW allocation in [bps]
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        fixedBWPriority:
          description: Indicates the allocation priority when dealing with several applications or sessions in parallel. Values are not defined in the present document
          enum:
          - SEE_DESCRIPTION
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Enum
        requestType:
          description: 'Numeric value (0 - 255) corresponding to specific type of consumer as following:
            0 = APPLICATION_SPECIFIC_BW_ALLOCATION
            1 = SESSION_SPECIFIC_BW_ALLOCATION'
          type: integer
          enum:
          - 0
          - 1
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Enum_inlined
        sessionFilter:
          description: Session filtering criteria, applicable when requestType is set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define a single session only. In case multiple sessions match sessionFilter the request shall be rejected
          items:
            type: object
            properties:
      type:
        $ref: '#/definitions/Problem.type'
      title:
        $ref: '#/definitions/Problem.title'
      status:
        $ref: '#/definitions/Problem.status'
      detail:
        $ref: '#/definitions/Problem.detail'
      instance:
        $ref: '#/definitions/Problem.instance'
  Problem.type:
              dstAddress:
                description: Destination address identity of session (including range)
                type: string
    format: uri
    description: >-
      A URI reference according to IETF RFC 3986 that identifies the problem
      type
  Problem.title:
                x-etsi-mec-cardinality: 0..1
                x-etsi-mec-origin-type: String
              dstPort:
                description: Destination port identity of session
                items:
                  type: string
    description: 'A short, human-readable summary of the problem type'
  Problem.status:
    type: integer
    format: uint32
    description: The HTTP status code for this occurrence of the problem
  Problem.detail:
                minItems: 0
                type: array
                x-etsi-mec-cardinality: 0..N
                x-etsi-mec-origin-type: String
              protocol:
                description: Protocol number
                type: string
    description: A human-readable explanation specific to this occurrence of the problem
  Problem.instance:
                x-etsi-mec-cardinality: 0..1
                x-etsi-mec-origin-type: String
              sourceIp:
                description: Source address identity of session (including range)
                type: string
    format: uri
    description: A URI reference that identifies the specific occurrence of the problem
  BwInfo:
    description: information of bandwidth resource
                x-etsi-mec-cardinality: 0..1
                x-etsi-mec-origin-type: String
              sourcePort:
                description: Source port identity of session
                items:
                  type: string
                minItems: 0
                type: array
                x-etsi-mec-cardinality: 0..N
                x-etsi-mec-origin-type: String
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: Structure (inlined)
        timeStamp:
          description: Time stamp to indicate when the corresponding information elements are sent
          properties:
            nanoSeconds:
              type: integer
              format: int32
              description: The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
              x-etsi-mec-cardinality: '1'
              x-etsi-mec-origin-type: Uint32
            seconds:
              type: integer
              format: int32
              description: The seconds part of the Time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC
              x-etsi-mec-cardinality: '1'
              x-etsi-mec-origin-type: Uint32
          required:
          - seconds
          - nanoSeconds
          type: object
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Structure (inlined)
      required:
      - appInsId
      - requestType
      - fixedAllocation
      - allocationDirection
    properties:
      timeStamp:
        $ref: '#/definitions/TimeStamp'
      appInsId:
        $ref: '#/definitions/AppInsId'
      requestType:
        $ref: '#/definitions/RequestType'
      sessionFilter:
        $ref: '#/definitions/SessionFilter'
      fixedBWPriority:
        $ref: '#/definitions/FixedBWPriority'
      fixedAllocation:
        $ref: '#/definitions/FixedAllocation'
      allocationDirection:
        $ref: '#/definitions/AllocationDirection'
  BwInfoDeltas:
    description: Conform to JSON merge patch format and processing rules specified IETF RFC 7396 [8], this type represents the attributes whose value are allowed to be updated with HTTP PATCH method in content format JSON
      type: object
      x-etsi-ref: 7.2.2
    BwInfoDeltas:
      properties:
        allocationDirection:
          description: 'The direction of the requested BW allocation:
            00 = Downlink (towards the UE)
            01 = Uplink (towards the application/session)
            10 = Symmetrical'
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        appInsId:
        $ref: '#/definitions/AppInsId'
      requestType:
        $ref: '#/definitions/RequestType'
      sessionFilter:
        $ref: '#/definitions/SessionFilter'
      fixedBWPriority:
        $ref: '#/definitions/FixedBWPriority'
          description: Application instance identifier
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        fixedAllocation:
        $ref: '#/definitions/FixedAllocation'
      allocationDirection:
        $ref: '#/definitions/AllocationDirection'
  TimeStamp:
    type: object
    required:
      - seconds
      - nanoSeconds
    properties:
      seconds:
        $ref: '#/definitions/Seconds'
      nanoSeconds:
        $ref: '#/definitions/NanoSeconds'
  AppInsId:
    description: >-
      Application instance identifier
          description: Size of requested fixed BW allocation in [bps]
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        fixedBWPriority:
          description: Indicates the allocation priority when dealing with several applications or sessions in parallel. Values are not defined in the present document
          enum:
          - SEE DESCRIPTION
          type: string
  RequestType:
    description: >-
      Numeric value (0 - 255) corresponding to specific type of consumer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Enum_inlined
        requestType:
          description: 'Numeric value (0 - 255) corresponding to specific type of consumer as following:
            0 = APPLICATION_SPECIFIC_BW_ALLOCATION
            1 = SESSION_SPECIFIC_BW_ALLOCATION'
          type: string
          enum:
      - APPLICATION_SPECIFIC_BW_ALLOCATION
      - SESSION_SPECIFIC_BW_ALLOCATION
  SessionFilter:
    description: >-
      Session filtering criteria, applicable when requestType is set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define a single session only. In case multiple sessions match sessionFilter the request shall be rejected
    type: array
          - 0
          - 1
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Enum_inlined
        sessionFilter:
          description: Session filtering criteria, applicable when requestType is set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define a single session only. In case multiple sessions match sessionFilter the request shall be rejected
          items:
            type: object
            properties:
        sourceIp:
          $ref: '#/definitions/SourceIp'
        sourcePort:
          $ref: '#/definitions/SourcePort'
              dstAddress:
          $ref: '#/definitions/DstAddress'
                description: Destination address identity of session (including range)
                type: string
                x-etsi-mec-cardinality: 0..1
                x-etsi-mec-origin-type: String
              dstPort:
          $ref: '#/definitions/DstPort'
        protocol:
          $ref: '#/definitions/Protocol'
  FixedBWPriority:
    description: >-
      Indicates the allocation priority when dealing with several applications or sessions in parallel. Values are not defined in the present document
                description: Destination port identity of session
                items:
                  type: string
    enum:
      - not defined in the present document
  FixedAllocation:
    description: >-
      Size of requested fixed BW allocation in [bps]
                minItems: 0
                type: array
                x-etsi-mec-cardinality: 0..N
                x-etsi-mec-origin-type: String
              protocol:
                description: Protocol number
                type: string
  AllocationDirection:
    description: >-
      The direction of the requested BW allocation
                x-etsi-mec-cardinality: 0..1
                x-etsi-mec-origin-type: String
              sourceIp:
                description: Source address identity of session (including range)
                type: string
    enum:
      - 00 = Downlink (towards the UE)
      - 01 = Uplink (towards the application/session)
      - 10 = Symmetrical
  Seconds:
    description: >-
      The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
    type: integer
    format: uint32
  NanoSeconds:
    description: >-
      The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
    type: integer
    format: uint32
  SourceIp:
    description: >-
      Source address identity of session (including range)
                x-etsi-mec-cardinality: 0..1
                x-etsi-mec-origin-type: String
              sourcePort:
                description: 'Source port identity of session '
                items:
                  type: string
  SourcePort:
    description: >-
      Source port identity of session 
                minItems: 0
                type: array
    items:
                x-etsi-mec-cardinality: 0..N
                x-etsi-mec-origin-type: String
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: Structure (inlined)
      required:
      - appInsId
      - requestType
      type: object
      x-etsi-ref: 7.2.3
    ProblemDetails:
      properties:
        detail:
          description: A human-readable explanation specific to this occurrence of the problem
          type: string
  DstAddress:
    description: >-
      Destination address identity of session (including range)
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        instance:
          description: A URI reference that identifies the specific occurrence of the problem
          format: uri
          type: string
  DstPort:
    description: >-
      Destination port identity of session 
    type: array
    items:
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: URI
        status:
          description: The HTTP status code for this occurrence of the problem
          format: int32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
        title:
          description: A short, human-readable summary of the problem type
          type: string
  Protocol:
    description: >-
      Protocol number
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        type:
          description: A URI reference according to IETF RFC 3986 that identifies the problem type
          format: uri
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: URI
      type: object
+16 −16

File changed.

Contains only whitespace changes.

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

## Online resources

* [Navigate the API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/gitlab/mec/gs015-bandwith-mgmt-api/raw/master/BwManagementApi.yaml).
* [Edit the API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/gitlab/mec/gs015-bandwith-mgmt-api/raw/master/BwManagementApi.yaml).
* [Navigate the Bandwidth Management API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/gitlab/mec/gs015-bandwith-mgmt-api/raw/stf593/BwManagementApi.yaml).
* [Edit the Bandwidth Management API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/gitlab/mec/gs015-bandwith-mgmt-api/raw/stf593/BwManagementApi.yaml).

* [Navigate the Traffic Steering API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/gitlab/mec/gs015-bandwith-mgmt-api/raw/stf593/TrafficSteeringApi.yaml).
* [Edit the Traffic Steering API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/gitlab/mec/gs015-bandwith-mgmt-api/raw/stf593/TrafficSteeringApi.yaml).

## License

Unless specified otherwise, the content of this repository and the files 
contained are released under the BSD-3-Clause license.
Unless specified otherwise, the content of this repository and the files contained
are released under the BSD-3-Clause license.
See the attached LICENSE file or visit https://forge.etsi.org/legal-matters.
Loading
Loading