Commit 8635dd9c authored by Miguel Angel Reina Ortega's avatar Miguel Angel Reina Ortega
Browse files

Merge branch 'stf644' into 'main'

STF644 - Milestone D - Merge stf644 to Master branch

See merge request !1
parents 63965b3a cc0d59a0
Loading
Loading
Loading
Loading
Loading
+555 −0
Original line number Diff line number Diff line
{
    "openapi": "3.1.0",
    "info": {
      "contact": {
        "url": "https://forge.etsi.org/rep/mec/gs040-fed-enablement-api"
      },
      "version": "3.1.1",
      "title": "ETSI GS MEC 040 - MEC Federation enablement APIs",
      "description": "The ETSI MEC ISG MEC040 Federation enablement API described using OpenAPI",
      "license": {
        "name": "BSD-3-Clause",
        "url": "https://forge.etsi.org/legal-matters"
      }
    },
    "externalDocs": {
      "description": "ETSI GS MEC 040 Federation enablement API, v3.1.1",
      "url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/040/03.01.01_60/gs_mec040v030101p.pdf"
    },
    "servers": [
      {
        "url": "https://localhost/fed-enablement/v1"
      }
    ],
    "paths": {
      "/fed_resources/system_info": {
        "get": {
          "summary": "Retrieve a list of system_info resources (see clause 6 for data model) of federation members.",
          "description": "The GET method retrieves the information of a list of system_info resources of federation members. This method is typically used in the sequence of \"MEC system discovery\" as described in clause 5.2.2.2. The method shall comply with the URI query parameters, request and response data structures, and response codes, as specified in Tables 7.3.3.1-1 and 7.3.3.1-2.",
          "operationId": "systeminfoGET",
          "tags": [
            "systemInfo"
          ],
          "parameters": [
            {
              "$ref": "#/components/parameters/Query.systemId"
            },
            {
              "$ref": "#/components/parameters/Query.systemName"
            },
            {
              "$ref": "#/components/parameters/Query.systemProvider"
            }
          ],
          "responses": {
            "200": {
              "description": "It is used to indicate that the query for retrieving system_info resource(s) is successful. Response body containing one or multiple system_info resources shall be returned.",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/SystemInfo"
                    }
                  }
                }
              }
            },
            "400": {
              "$ref": "#/components/responses/400"
            },
            "401": {
              "$ref": "#/components/responses/401"
            },
            "403": {
              "$ref": "#/components/responses/403"
            },
            "404": {
              "$ref": "#/components/responses/404"
            }
          }
        },
        "post": {
          "summary": "Create new system_info resource for a given MEC system.",
          "description": "The POST method creates the information of system_info resources to the MEC federator. This method is typically used in the sequence of \"Registration of MEC system to the federation\" as described in clause 5.2.2.1. The method shall comply with the URI query parameters, request and response data structures, and response codes, as specified in Tables 7.3.3.4-1 and 7.3.3.4-2.",
          "operationId": "systeminfoPOST",
          "tags": [
            "systemInfo"
          ],
          "requestBody": {
            "description": "Entity body in the request contains SystemInfo to be created. The attribute \"systemId\" shall be absent.",
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "SystemInfo": {
                      "$ref": "#/components/schemas/SystemInfo"
                    }
                  }
                }
              }
            }
          },
          "responses": {
            "201": {
              "description": "It is used to indicate that the system_info resource is successfully created.\n\nThe HTTP response includes a \"Location\" HTTP header that contains the URI of the created resource.",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "SystemInfo": {
                        "$ref": "#/components/schemas/SystemInfo"
                      }
                    }
                  }
                }
              }
            },
            "400": {
              "$ref": "#/components/responses/400"
            },
            "401": {
              "$ref": "#/components/responses/401"
            },
            "403": {
              "$ref": "#/components/responses/403"
            },
            "404": {
              "$ref": "#/components/responses/404"
            }
          }
        }
      },
      "/fed_resources/system_info/{systemId}": {
        "get": {
          "summary": "Retrieve the system_info resource of the federation member with systemId as its system identifier.",
          "description": "The GET method retrieves the system_info resource information. This method is typically used in the sequence of \"MEC system discovery\" as described in clause 5.2.2.2. The method shall comply with the URI query parameters, request and response data structures, and response codes, as specified in Tables 7.4.3.1-1 and 7.4.3.1-2.",
          "operationId": "systeminfoByIdGET",
          "tags": [
            "systemInfo"
          ],
          "parameters": [
            {
              "$ref": "#/components/parameters/Path.systemId"
            }
          ],
          "responses": {
            "200": {
              "description": "It is used to indicate that the query for retrieving system_info resource is successful. Response body containing one system_info resource shall be returned.",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "SystemInfo": {
                        "$ref": "#/components/schemas/SystemInfo"
                      }
                    }
                  }
                }
              }
            },
            "400": {
              "$ref": "#/components/responses/400"
            },
            "401": {
              "$ref": "#/components/responses/401"
            },
            "403": {
              "$ref": "#/components/responses/403"
            },
            "404": {
              "$ref": "#/components/responses/404"
            }
          }
        },
        "patch": {
          "summary": "Update the system_info resource for a given MEC system.",
          "description": "The PATCH method updates the information of system_info resources stored in the MEC federator through previous registration. This method is typically used in the sequence of \"Update of MEC system to the federation\" as described in clause 5.2.2.2. The method shall comply with the URI query parameters, request and response data structures, and response codes, as specified in Tables 7.4.3.3-1 and 7.4.3.3-2.",
          "operationId": "systeminfoByIdPATCH",
          "tags": [
            "systemInfo"
          ],
          "parameters": [
            {
              "$ref": "#/components/parameters/Path.systemId"
            }
          ],
          "requestBody": {
            "description": "It contains attributes to be update.",
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "SystemInfoUpdate": {
                      "$ref": "#/components/schemas/SystemInfoUpdate"
                    }
                  }
                }
              }
            }
          },
          "responses": {
            "200": {
              "description": "It is used to indicate that the system_info resource is successfully updated.",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "SystemInfo": {
                        "$ref": "#/components/schemas/SystemInfo"
                      }
                    }
                  }
                }
              }
            },
            "400": {
              "$ref": "#/components/responses/400"
            },
            "401": {
              "$ref": "#/components/responses/401"
            },
            "403": {
              "$ref": "#/components/responses/403"
            },
            "404": {
              "$ref": "#/components/responses/404"
            }
          }
        },
        "delete": {
          "summary": "Delete the system_info resource for a given MEC system.",
          "description": "The DELETE method deletes the information of system_info resources stored in the MEF. This method is typically used in the sequence of \"Deregistration of MEC system to the federation\" as described in clause 5.2.2.1.1. The method shall comply with the URI query parameters, request and response data structures, and response codes, as specified in Tables 7.4.3.5-1 and 7.4.3.5-2.",
          "operationId": "systeminfoByIdDELETE",
          "tags": [
            "systemInfo"
          ],
          "parameters": [
            {
              "$ref": "#/components/parameters/Path.systemId"
            }
          ],
          "responses": {
            "204": {
              "$ref": "#/components/responses/204"
            },
            "400": {
              "$ref": "#/components/responses/400"
            },
            "401": {
              "$ref": "#/components/responses/401"
            },
            "403": {
              "$ref": "#/components/responses/403"
            },
            "404": {
              "$ref": "#/components/responses/404"
            }
          }
        }
      }
    },
    "components": {
      "schemas": {
        "ProblemDetails": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "format": "uri",
              "description": "A URI reference according to IETF RFC 3986 that identifies the problem type"
            },
            "title": {
              "type": "string",
              "description": "A short, human-readable summary of the problem type"
            },
            "status": {
              "type": "integer",
              "format": "uint32",
              "description": "The HTTP status code for this occurrence of the problem"
            },
            "detail": {
              "type": "string",
              "description": "A human-readable explanation specific to this occurrence of the problem",
              "x-etsi-mec-cardinality": "0..1",
              "x-etsi-mec-origin-type": "String"
            },
            "instance": {
              "type": "string",
              "format": "uri",
              "description": "A URI reference that identifies the specific occurrence of the problem"
            }
          }
        },
        "SystemInfo": {
          "title": "SystemInfo",
          "type": "object",
          "description": "This type represents an information provided by the MEC orchestrator as a part of the \"Registration of MEC system to the federation\"",
          "properties": {
            "systemId": {
              "description": "Identifier of the MEC system. For the uniqueness of the identifier across the federated MEC systems, UUID format [i.9] is recommended. Shall be absent in POST request, and present otherwise.",
              "type": "string"
            },
            "systemName": {
              "description": "The name of the MEC system. This is how the MEC system identifies other MEC systems",
              "type": "string"
            },
            "systemProvider": {
              "description": "Provider of the MEC system.",
              "type": "string"
            }
          },
          "required": [
            "systemId",
            "systemName",
            "systemProvider"
          ]
        },
        "SystemInfoUpdate": {
          "title": "SystemInfoUpdate",
          "type": "object",
          "description": "This type represents an information provided by MEC orchestrator as a part of the\n\"Update of MEC system(s) to the federation\".\n\nNOTE: At least one attribute shall exist.\n",
          "properties": {
            "systemName": {
              "description": "The name of the MEC system. This is how the MEC system identifies other MEC systems.",
              "type": "string"
            },
            "endpoint": {
              "$ref": "#/components/schemas/EndPointInfo"
            }
          }
        },
        "EndPointInfo": {
          "title": "EndPointInfo",
          "type": "string",
          "description": "Endpoint information (e.g. URI, FQDN, IP address) of MEC federator."
        },
        "SystemUpdateNotificationSubscription": {
          "title": "SystemUpdateNotificationSubscription",
          "type": "object",
          "description": "This type represents a subscription to the notifications from the MEC federator related to information update of the MEC systems in the MEC federation.",
          "properties": {
            "subscriptionType": {
              "description": "Shall be set to \"SystemUpdateNotificationSubscription\".",
              "type": "string"
            },
            "callbackReference": {
              "description": "URI selected by the MEC orchestrator to receive notifications on the subscribed MEC system information updates in the MEC federation. This shall be included in both the request and the response.",
              "type": "string",
              "format": "uri"
            },
            "links": {
              "$ref": "#/components/schemas/links"
            },
            "systemId": {
              "description": "Identifier(s) to uniquely specify the target MEC system(s) for the subscription. If absent, the subscription should include all MEC systems in the MEC federation.",
              "type": "array",
              "minItems": 0,
              "items": {
                "type": "string"
              }
            },
            "expiryDeadline": {
              "$ref": "#/components/schemas/TimeStamp"
            }
          },
          "required": [
            "subscriptionType",
            "callbackReference"
          ]
        },
        "SystemUpdateNotification": {
          "title": "SystemUpdateNotification",
          "type": "object",
          "description": "This type represents the information that the MEC federator notifies the subscribed MEC orchestrator about the information update of the MEC systems in the MEC federation.",
          "properties": {
            "notificationType": {
              "description": "Shall be set to \"SystemUpdateNotification\".",
              "type": "string"
            },
            "updatedSystemInfo": {
              "description": "Updated information of the MEC system(s) in the MEC federation.",
              "type": "array",
              "minItems": 1,
              "items": {
                "$ref": "#/components/schemas/SystemInfo"
              }
            },
            "links": {
              "$ref": "#/components/schemas/links1"
            }
          },
          "required": [
            "notificationType",
            "updatedSystemInfo",
            "links"
          ]
        },
        "TimeStamp": {
          "title": "TimeStamp",
          "type": "object",
          "description": "The expiration time of the subscription determined by the MEC Federation Enablement Service.",
          "properties": {
            "seconds": {
              "description": "The seconds part of the time. Time is defined as Unixtime 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"
            }
          },
          "required": [
            "seconds",
            "nanoSeconds"
          ]
        },
        "links": {
          "title": "links",
          "description": "Object containing hyperlinks related to the resource. This shall only be included in the HTTP responses.",
          "type": "object",
          "properties": {
            "self": {
              "$ref": "#/components/schemas/LinkType"
            }
          },
          "required": [
            "self"
          ]
        },
        "links1": {
          "title": "links1",
          "description": "Object containing hyperlinks related to the resource.",
          "type": "object",
          "properties": {
            "subscription": {
              "$ref": "#/components/schemas/LinkType"
            }
          },
          "required": [
            "subscription"
          ]
        },
        "LinkType": {
          "title": "LinkType",
          "description": "Self-referring URI. The URI shall be unique within the MEC Federation Enablement API as it acts as an ID for the subscription (SubscriptionId).",
          "type": "object",
          "properties": {
            "href": {
              "description": "URI referring to a resource.",
              "format": "uri",
              "type": "string"
            }
          },
          "required": [
            "href"
          ]
        }
      },
      "responses": {
        "204": {
          "description": "No Content"
        },
        "400": {
          "description": "Bad Request: used to indicate that incorrect parameters were passed to the request.",
          "content": {
            "application/problem+json": {
              "schema": {
                "$ref": "#/components/schemas/ProblemDetails"
              }
            }
          }
        },
        "401": {
          "description": "Unauthorized: used when the client did not submit credentials.",
          "content": {
            "application/problem+json": {
              "schema": {
                "$ref": "#/components/schemas/ProblemDetails"
              }
            }
          }
        },
        "403": {
          "description": "Forbidden: operation is not allowed given the current status of the resource.",
          "content": {
            "application/problem+json": {
              "schema": {
                "$ref": "#/components/schemas/ProblemDetails"
              }
            }
          }
        },
        "404": {
          "description": "Not Found: used when a client provided a URI that cannot be mapped to a valid resource URI.",
          "content": {
            "application/problem+json": {
              "schema": {
                "$ref": "#/components/schemas/ProblemDetails"
              }
            }
          }
        }
      },
      "parameters": {
        "Query.systemId": {
          "description": "Identifier of the MEC system.",
          "name": "systemId",
          "in": "query",
          "required": false,
          "x-exportParamName": "Query.systemId",
          "schema": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "Path.systemId": {
          "description": "Identifier of the MEC system.",
          "name": "systemId",
          "in": "path",
          "required": true,
          "x-exportParamName": "Path.systemId",
          "schema": {
            "type": "string"
          }
        },
        "Query.systemName": {
          "description": "The name of the MEC system.",
          "name": "systemName",
          "in": "query",
          "required": false,
          "x-exportParamName": "Query.systemName",
          "schema": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "Query.systemProvider": {
          "description": "Provider of the MEC system.",
          "name": "systemProvider",
          "in": "query",
          "required": false,
          "x-exportParamName": "Query.systemProvider",
          "schema": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    }
  }
 No newline at end of file
+393 −0

File added.

Preview size limit exceeded, changes collapsed.

+18 −3
Original line number Diff line number Diff line
# MEC Federation enablement APIs
# Federation enablement APIs

This repository contains OpenAPIs descriptions for the interfaces specified in ETSI GS MEC 021.

## Online resources

* [Specification document](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/040/03.01.01_60/gs_mec040v030101p.pdf)

## Navigate with Swagger UI
* [Federation enablement APIs](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/rep/mec/gs040-fed-enablement-api/raw/stf644/MEC040_fedEnablement.yaml).

## Navigate with Redocly
* [Federation enablement APIs](https://redocly.github.io/redoc/?url=https://forge.etsi.org/rep/mec/gs040-fed-enablement-api/raw/stf644/MEC040_fedEnablement.yaml).

## 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.

MEC Federation enablement APIs - ETSI GS MEC 040
DRAFT specification is available at https://docbox.etsi.org/ISG/MEC/Open/MEC040%20FederationAPI%20drafts

proto3-gen.md

0 → 100644
+138 −0

File added.

Preview size limit exceeded, changes collapsed.

+23 −0
Original line number Diff line number Diff line
# OpenAPI Generator Ignore
# Generated by openapi-generator https://github.com/openapitools/openapi-generator

# Use this file to prevent files from being overwritten by the generator.
# The patterns follow closely to .gitignore or .dockerignore.

# As an example, the C# client generator defines ApiClient.cs.
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
#ApiClient.cs

# You can match any string of characters against a directory, file or extension with a single asterisk (*):
#foo/*/qux
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux

# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
#foo/**/qux
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux

# You can also negate patterns with an exclamation (!).
# For example, you can ignore all files in a docs folder with the file extension .md:
#docs/*.md
# Then explicitly reverse the ignore rule for a single file:
#!docs/README.md
Loading