openapi: 3.1.0 jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema info: contact: url: https://forge.etsi.org/rep/mec/gs040-fed-enablement-api 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 version: 3.1.1 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: FedresourcesSysteminfoGET 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: FedresourcesSysteminfoPOST 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. The 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' parameters: [] /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: FedresourcesSysteminfoGETSystemid tags: - systemInfo 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' parameters: - name: systemId in: path required: true description: The unique identifier of the systemId. schema: type: string 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: FedresourcesSysteminfoPATCHSystemid tags: - systemInfo 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' parameters: - name: systemId in: path required: true description: The unique identifier of the systemId. schema: type: string 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: FedresourcesSysteminfoDELETESystemid tags: - systemInfo 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' parameters: - name: systemId in: path required: true description: The unique identifier of the systemId. schema: type: string 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 instance: type: string format: uri description: A URI reference that identifies the specific occurrence of the problem Addresses: description: Entry point information of the service as one or more pairs of IP address and port. See note. type: object minItems: 0 properties: host: description: Host portion of the address. type: string port: description: Port portion of the address. type: integer required: - host - port LinkType: type: object required: - href properties: href: type: string format: uri description: The hyperlink reference. EndPointInfo: x-etsi-ref: 8.1.5.3 type: object properties: uris: description: Entry point information of the service as string, formatted according to URI syntax (see IETF RFC 3986 [8]). Shall be used for REST APIs. See note. type: array minItems: 0 items: type: string fqdn: description: Fully Qualified Domain Name of the service. See note. type: array minItems: 0 items: type: string addresses: type: array items: $ref: '#/components/schemas/Addresses' alternative: description: "Entry point information of the service in a format defined by an implementation, or in an external specification. See\_note." type: object description: "|-\n NOTE:\tExactly one of \"uris\", \"fqdn\", \"addresses\" or \"alternative\" shall be present." SystemInfo: x-etsi-ref: 6.2.2 type: object 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: x-etsi-ref: 6.2.3 type: object properties: systemName: description: The name of the MEC system. This is how the MEC system identifies other MEC systems. type: string endpoint: description: Endpoint information (e.g. URI, FQDN, IP address) of MEC federator. $ref: '#/components/schemas/EndPointInfo' description: "|-\n NOTE:\tAt least one attribute shall exist." SystemUpdateNotificationSubscription: x-etsi-ref: 6.3.2 type: object 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: description: The expiration time of the subscription determined by the MEC Federation Enablement Service. $ref: '#/components/schemas/TimeStamp' required: - subscriptionType - callbackReference SystemUpdateNotification: x-etsi-ref: 6.4.2 type: object 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: x-etsi-ref: 6.5.2 type: object 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: description: Object containing hyperlinks related to the resource. This shall only be included in the HTTP responses. type: object properties: self: 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). $ref: '#/components/schemas/LinkType' required: - self _links1: description: Object containing hyperlinks related to the resource. type: object properties: subscription: description: A link to the related subscription. $ref: '#/components/schemas/LinkType' required: - subscription responses: '200': description: OK '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 request is not authenticated, e.g. 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' '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: $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 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