summary:Retrieve information about all devices with a valid traffic rule association - see clause 5.2.2.
description:The GET method may be used by a service consumer to retrieve information about all devices with a valid traffic rule association. This method is typically used in the "registered devices query" procedure as described in clause 5.2.2.
operationId:registereddevicesGET
operationId:RegistereddevicesGET
tags:
-reg-dev
parameters:
-name:filter
in:query
description:|
Attribute-based filtering parameters according to ETSI GS MEC 009 [i.1]. The API producer shall support receiving the following filtering parameters as part of the URI query string: "(eq,enabled,TRUE)".
style:form
explode:true
schema:
type:string
-name:fields
in:query
description:|
The list may contain one or more of the following attributes from the DeviceInfo data type:
- deviceMetadata
- gpsi
- msisdn
- deviceId
- requestedMecTrafficRule
- requestedIotPlatformId
- requestedUserTransportId
style:form
explode:true
schema:
type:array
items:
type:string
-$ref:'#/components/parameters/Query.Filter'
-$ref:'#/components/parameters/Query.Fields'
responses:
'200':
description:Upon success, a response body containing the list of registered devices is returned. The response body shall contain a list of resources that match the attribute filter.
content:
application/json:
schema:
type:object
properties:
type:array
items:
$ref:'#/components/schemas/DeviceInfo'
'400':
@@ -77,7 +42,7 @@ paths:
post:
summary:"Registeranewdevice-seeclause\_5.2.3."
description:The POST method may be used by a service consumer to register a new device. This method is typically used in the "device registration" procedure as described in clause 5.2.3.
operationId:registereddevicesPOST
operationId:RegistereddevicesPOST
tags:
-reg-dev
requestBody:
@@ -106,20 +71,14 @@ paths:
$ref:'#/components/responses/404'
'403':
$ref:'#/components/responses/403'
parameters:[]
/registered_devices/{registeredDeviceId}:
get:
summary:Retrieve information about a device - see clause 5.2.4.
description:The GET method may be used by a service consumer to retrieve information about a device. This method is typically used in the "device registration query" procedure as described in clause 5.2.4.
description:The unique identifier of the registered device.
schema:
type:string
responses:
'200':
description:Upon success, a response body containing information about the registered device is returned.
@@ -136,19 +95,19 @@ paths:
$ref:'#/components/responses/404'
'403':
$ref:'#/components/responses/403'
put:
summary:Update information about a device including its association to a valid traffic rule - see clauses 5.2.5 and 5.4.3.
description:The PUT method may be used by a service consumer to update a device registration including its association to a valid traffic rule. This method is typically used in the "device registration update" procedure as described in clause 5.2.5 and in the "user transport assignment" procedure as described in clause 5.4.3.
operationId:registereddevicesByIdPUT
tags:
-reg-dev
parameters:
-name:registeredDeviceId
in:path
required:true
description:The unique identifier of the registered device.
description:The unique identifier of the registeredDeviceId.
schema:
type:string
put:
summary:Update information about a device including its association to a valid traffic rule - see clauses 5.2.5 and 5.4.3.
description:The PUT method may be used by a service consumer to update a device registration including its association to a valid traffic rule. This method is typically used in the "device registration update" procedure as described in clause 5.2.5 and in the "user transport assignment" procedure as described in clause 5.4.3.
description:One or more updated attributes that are allowed to be changed are included in the DeviceInfo data structure in the payload body of the request. .
required:true
@@ -177,19 +136,19 @@ paths:
$ref:'#/components/responses/403'
'412':
$ref:'#/components/responses/412'
delete:
summary:"Deregisteradevice-seeclause\_5.2.6."
description:The DELETE method may be used by a service consumer to deregister a device. This method is typically used in the "device deregistration" procedure as described in clause 5.2.6.
operationId:registereddevicesByIdDELETE
tags:
-reg-dev
parameters:
-name:registeredDeviceId
in:path
required:true
description:The unique identifier of the registered device.
description:The unique identifier of the registeredDeviceId.
schema:
type:string
delete:
summary:"Deregisteradevice-seeclause\_5.2.6."
description:The DELETE method may be used by a service consumer to deregister a device. This method is typically used in the "device deregistration" procedure as described in clause 5.2.6.
The list shall contain the following attributes from the IotPlatformInfo data type:
- iotPlatformId
- enabled
style:form
explode:true
schema:
type:array
items:
type:string
-$ref:'#/components/parameters/Query.Fields1'
responses:
'200':
description:Upon success, a response body containing the list of registered IoT platforms is returned.
@@ -236,9 +190,9 @@ paths:
post:
summary:"RegisteraIoTplatform-seeclause\_5.3.4."
description:The POST method may be used by a service consumer to register a new IoT platform. This method is typically used in the "IoT platform registration" procedure as described in clause 5.3.4.
operationId:registerediotplatformsPOST
operationId:RegisterediotplatformsPOST
tags:
-reg-iot-plat
-reg-dev
requestBody:
description:Payload body in the request contains the information associated to the IoT platform to be registered.
required:true
@@ -248,7 +202,7 @@ paths:
type:object
properties:
IoTPlatformInfo:
$ref:'#/components/schemas/IotPlatformInfo'
$ref:'#/components/schemas/IoTPlatformInfo'
responses:
'201':
description:Upon success, the HTTP response shall include a "Location" HTTP header that contains the resource URI of the registered IoT platform.
description:The unique identifier of the registeredIoT platform.
description:The unique identifier of the registeredIotPlatformId.
schema:
type:string
-name:fields
in:query
description:|
The list may contain one or more of the following attributes from the IotPlatformInfo data type:
- userTransportInfo
- customServiceTransportInfo
style:form
explode:true
schema:
type:array
items:
type:string
responses:
'200':
description:Upon success, a response body containing information about the registered IoT platform is returned.
@@ -310,16 +254,9 @@ paths:
put:
summary:Update information about a IoT platform - see clause 5.3.5.
description:The PUT method may be used by a service consumer to update a IoT platform registration. This method is typically used in the "IoT platform update" procedure as described in clause 5.3.5.
description:The unique identifier of the registered IoT platform.
schema:
type:string
-reg-dev
requestBody:
description:One or more updated attributes that are allowed to be changed are included in the IotPlatformInfo data structure in the payload body of the request. .
required:true
@@ -348,19 +285,19 @@ paths:
$ref:'#/components/responses/403'
'412':
$ref:'#/components/responses/412'
delete:
summary:Deregister a IoT platform - see clause 5.3.6.
description:The DELETE method may be used by a service consumer to deregister a IoT platform. This method is typically used in the "IoT platform deregistration" procedure as described in clause 5.3.6.
operationId:registerediotplatformsByIdDELETE
tags:
-reg-iot-plat
parameters:
-name:registeredIotPlatformId
in:path
required:true
description:The unique identifier of the registeredIoT platform.
description:The unique identifier of the registeredIotPlatformId.
schema:
type:string
delete:
summary:Deregister a IoT platform - see clause 5.3.6.
description:The DELETE method may be used by a service consumer to deregister a IoT platform. This method is typically used in the "IoT platform deregistration" procedure as described in clause 5.3.6.
description:The unique identifier of the registeredIotPlatformId.
schema:
type:string
components:
schemas:
ProblemDetails:
@@ -391,92 +335,407 @@ components:
type:string
format:uri
description:A URI reference that identifies the specific occurrence of the problem
DeviceInfo:
title:DeviceInfo
Not_specified:
type:string
description:Placeholder for unspecified type. Please update with the correct schema. This attribute refers to another document. Please see document number ETSI-MEC033-API for details.
SerializerType:
x-etsi-ref:8.1.6.3
type:string
enum:
-JSON
-XML
-PROTOBUF3
x-etsi-mec-extensible:true
x-etsi-mec-enumeration-table:
-value:JSON
description:Javascript object notation [9]
-value:XML
description:eXtensible Mark-up Language version 1.1 [10]
-value:PROTOBUF3
description:Protocol buffers version 3 [i.3]
TrafficRuleDescriptor:
x-etsi-ref:6.2.1.9
type:object
properties:
deviceAuthenticationInfo:
description:Information needed for secondary authentication of the IoT device to the data network - see ETSI TS 129 561 [i.4] and ETSI TS 129 061 [i.5] for 5G and LTE procedures, respectively. This attribute is implementation dependent and should be logically linked to the identifiers of the IoT device listed hereafter.
description:Describes the destination interface information. If the action is FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH, one value shall be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, two values shall be provided. See note 2. If the action is DROP, no value shall be provided.
description:Client-side SSL/TLS certificate to be used by the MEC IoTS to interact with the user transport provided by the associated IoT platform in case the MEC IoTS acts on behalf of the IoT device.
srcTunnelAddress:
description:Used for GTP tunnel based traffic rule.
type:array
minItems:0
items:
type:string
enabled:
description:Indication whether the IoT device has a valid associated traffic rule (TRUE) or not (FALSE). See note 3.
type:boolean
required:
-deviceAuthenticationInfo
-deviceId
-enabled
description:|
NOTE 1: At least one attribute among gpsi, pei, supi, msisdn, imei, imsi, and iccid should be provided. Sufficient security
measures shall be put in place when any attribute among PEI, SUPI, IMEI, and IMSI is disclosed over the API.
NOTE 2: Until a valid traffic rule is not provided, the device will not be able to use the IoTS. A valid traffic rule is provided
by one of the following options:
• the requestedMecTrafficRule attribute;
• the requestedIotPlatformId attribute when the IoT platform offers only one user transport;
• the combination of requestedIotPlatformId and requestedUserTransportId.
NOTE 3: Enabled is a pseudo-attribute which needs to be maintained by the IoTS based on the presence or not of a valid
traffic rule associated to the device. It cannot be set directly by the service consumer.
IotPlatformInfo:
title:IotPlatformInfo
type:object
properties:
iotPlatformId:
description:Identifier of the IoT platform.
tgtTunnelAddress:
description:Used for GTP tunnel based traffic rule.
type:array
minItems:0
items:
type:string
userTransportInfo:
description:Information about the user transport(s) provided by the IoT platform.
srcTunnelPort:
description:Used for GTP tunnel based traffic rule.
type:array
minItems:1
minItems:0
items:
$ref:'#/components/schemas/MBTransportInfo'
customServicesTransportInfo:
description:Transport enabling access to vendor-specific services provided by the IoT platform. The data type definition is as per ETSI GS MEC 011 [i.2].
type:string
dstTunnelPort:
description:Used for GTP tunnel based traffic rule.
type:array
minItems:0
items:
type:string
qCI:
description:Used to match all packets that have the same QCI.
type:integer
dSCP:
description:Used to match all IPv4 packets that have the same DSCP.
type:integer
tC:
description:Used to match all IPv6 packets that have the same TC.
type:integer
InterfaceDescriptor:
x-etsi-ref:6.2.1.11
type:object
properties:
interfaceType:
type:string
description:'Typeofinterface:TUNNEL,MAC,IP,etc.'
enum:
-SEE_DESCRIPTION
tunnelInfo:
description:Included only if the destination address type is tunnel.
$ref:'#/components/schemas/TunnelInfo'
srcMACAddress:
description:If the interface type is MAC, the source address identifies the MAC address of the interface.
type:string
dstMACAddress:
description:If the interface type is MAC, the destination address identifies the MAC address of the destination. Only used for dstInterface.
type:string
dstIPAddress:
description:If the interface type is IP, the destination address identifies the IP address of the destination. Only used for dstInterface.
type:string
required:
-interfaceType
TunnelInfo:
x-etsi-ref:6.2.1.12
type:object
properties:
tunnelType:
type:string
description:'Typeoftunnel:GTP-U,GRE,etc.'
enum:
-SEE_DESCRIPTION
tunnelDstAddress:
description:Destination address of the tunnel.
type:string
tunnelSrcAddress:
description:Source address of the tunnel.
type:string
tunnelSpecificData:
description:Parameters specific to the tunnel.
type:object
required:
-tunnelType
-tunnelDstAddress
-tunnelSrcAddress
TransportType:
type:string
description:Type of the transport. The attribute shall be set to "MB_TOPIC_BASED."
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.
description:Parameters related to use of OAuth 2.0. Shall be present in case OAuth 2.0 (see IETF RFC 6749 [13]) is supported to secure the provision of the service over the transport.
description:The token endpoint. Shall be present unless the grant type is OAUTH2_IMPLICIT_GRANT.
type:string
format:uri
required:
-grantTypes
TransportInfo:
x-etsi-ref:8.1.2.3
type:object
properties:
id:
description:The identifier of this transport.
type:string
name:
description:The name of this transport.
type:string
description:
description:Human-readable description of this transport.
type:string
type:
description:Type of the transport.
$ref:'#/components/schemas/TransportType'
type:object
protocol:
description:The name of the protocol used. Shall be set to "HTTP" for a REST API.
type:string
version:
description:The version of the protocol used.
type:string
endpoint:
description:Information about the endpoint to access the transport.
$ref:'#/components/schemas/EndPointInfo'
type:object
security:
description:Information about the security used by the transport.
$ref:'#/components/schemas/SecurityInfo'
type:object
implSpecificInfo:
description:Additional implementation specific details of the transport.
type:object
required:
-id
-name
-type
-protocol
-version
-endpoint
-security
DeviceInfo:
x-etsi-ref:6.2.2
type:object
properties:
deviceAuthenticationInfo:
description:Information needed for secondary authentication of the IoT device to the data network - see ETSI TS 129 561 [i.4] and ETSI TS 129 061 [i.5] for 5G and LTE procedures, respectively. This attribute is implementation dependent and should be logically linked to the identifiers of the IoT device listed hereafter.
description:Client-side SSL/TLS certificate to be used by the MEC IoTS to interact with the user transport provided by the associated IoT platform in case the MEC IoTS acts on behalf of the IoT device.
type:string
enabled:
description:Indication whether the IoT device has a valid associated traffic rule (TRUE) or not (FALSE). See note 3.
description:Information about the user transport(s) provided by the IoT platform.
type:array
minItems:1
items:
$ref:'#/components/schemas/MBTransportInfo'
customServicesTransportInfo:
description:Transport enabling access to vendor-specific services provided by the IoT platform. The data type definition is as per ETSI GS MEC 011 [i.2].
description':Type of serializer to be used for the topic as per ETSI GS MEC 011 [i.2].
description:Type of serializer to be used for the topic as per ETSI GS MEC 011 [i.2].
$ref:'#/components/schemas/SerializerType'
includeDeviceAddr:
description:Indication whether to include the IP address of the IoT device (TRUE) or not (FALSE).
@@ -565,14 +824,14 @@ components:
-eventTopic
-selectedSerializer
UplinkMsg:
title:UplinkMsg
x-etsi-ref:6.3.4
type:object
properties:
uplinkTopic:
description:Topic where the message containing the data generated by the IoT device(s) should be published, in order to be consumed by the end IoT application(s).
type:string
selectedSerializer:
description':Type of serializer to be used for the topic as per ETSI GS MEC 011 [i.2].
description:Type of serializer to be used for the topic as per ETSI GS MEC 011 [i.2].
$ref:'#/components/schemas/SerializerType'
includeDevicePort:
description:Indication whether to include the UDP port of the remote IoT device (TRUE) or not (FALSE).
@@ -609,10 +868,10 @@ components:
type:object
properties:
eventMsgFormat:
description':Event message format configuration.
description:Event message format configuration.
$ref:'#/components/schemas/EventMsg'
uplinkMsgFormat:
description':Uplink message format configuration.
description:Uplink message format configuration.
$ref:'#/components/schemas/UplinkMsg'
DownlinkInfo:
description:Downlink communication configuration of the user transport provided by the associated IoT platform in case the MEC IoTS acts on behalf of the IoT device.
@@ -637,336 +896,15 @@ components:
uplinkTopics:
description:Topics used to publish data generated by the IoT device(s) on the user transport, in order to be consumed by the end IoT application(s).
type:array
minItems:0
items:
type:string
downlinkTopics:
description:Topics used to publish data generated by the IoT applications(s) on the user transport, in order to be consumed by the end IoT device(s).
type:array
minItems:0
items:
type:string
SerializerType:
type:string
description:The enumeration SerializerType represents types of serializers.
enum:
-JSON
-XML
-PROTOBUF3
TransportInfo:
title:TransportInfo
type:object
properties:
id:
description:The identifier of this transport.
type:string
name:
description:The name of this transport.
type:string
description:
description:Human-readable description of this transport.
type:string
type:
description':Type of the transport.
$ref:'#/components/schemas/TransportType'
protocol:
description:The name of the protocol used. Shall be set to "HTTP" for a REST API.
type:string
version:
description:The version of the protocol used.
type:string
endpoint:
description':Information about the endpoint to access the transport.
$ref:'#/components/schemas/EndPointInfo'
security:
description':Information about the security used by the transport.
$ref:'#/components/schemas/SecurityInfo'
implSpecificInfo:
description:Additional implementation specific details of the transport.
type:string
required:
-id
-name
-type
-protocol
-version
-endpoint
-security
TransportType:
type:string
enum:
-REST_HTTP
-MB_TOPIC_BASED
-MB_ROUTING
-MB_PUBSUB
-RPC
-RPC_STREAMING
-WEBSOCKET
description:Enumeration representing types of transports.
EndPointInfo:
title:EndPointInfo
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
items:
type:string
fqdn:
description:Fully Qualified Domain Name of the service. See note.
NOTE: Exactly one of "uris", "fqdn", "addresses" or "alternative" shall be present.
SecurityInfo:
type:object
properties:
oAuth2Info:
$ref:'#/components/schemas/OAuth2Info'
extensions:
description:>
Extensions for alternative transport mechanisms. These extensions depend on the actual transport and are out of scope of the present document.
For instance, such extensions may be used to signal the necessary parameters for the client to use TLS-based authorization defined for alternative transports (see ETSI GS MEC 009 [5] for more information).
type:string
Addresses:
description:Entry point information of the service as one or more pairs of IP address and port. See note.
type:object
properties:
host:
description:Host portion of the address.
type:string
port:
description:Port portion of the address.
type:integer
required:
-host
-port
OAuth2Info:
description:Parameters related to use of OAuth 2.0. Shall be present in case OAuth 2.0 (see IETF RFC 6749 [13]) is supported to secure the provision of the service over the transport.
type:object
properties:
grantTypes:
type:array
description:|
List of supported OAuth 2.0 grant types.
Each entry shall be one of the following permitted values:
- OAUTH2_AUTHORIZATION_CODE: Authorization code grant type
- OAUTH2_IMPLICIT_GRANT: Implicit grant type
- OAUTH2_RESOURCE_OWNER: Resource owner password credentials grant type
- OAUTH2_CLIENT_CREDENTIALS: Client credentials grant type
Only the value "OAUTH2_CLIENT_CREDENTIALS" is supported in the present document.
items:
type:string
enum:
-OAUTH2_AUTHORIZATION_CODE
-OAUTH2_IMPLICIT_GRANT
-OAUTH2_RESOURCE_OWNER
-OAUTH2_CLIENT_CREDENTIALS
tokenEndpoint:
description:The token endpoint. Shall be present unless the grant type is OAUTH2_IMPLICIT_GRANT.
type:string
format:uri
required:
-grantTypes
TrafficRuleDescriptor:
title:TrafficRuleDescriptor
type:object
properties:
trafficRuleId:
description:Identifies the traffic rule.
type:string
filterType:
type:string
description:|
Definition of filter type: per FLOW or PACKET
If it is per FLOW, the filter matches upstream (e.g. UE->EPC) packets and downstream (e.g. EPC->UE) packets are handled by the same context.
description':Describes the destination interface information. If the action is FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH, one value shall be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, two values shall be provided. See note 2. If the action is DROP, no value shall be provided.
$ref:'#/components/schemas/InterfaceDescriptor'
required:
-trafficRuleId
-filterType
-priority
-trafficFilter
-action
description:|
NOTE 1: Value indicates the priority in descending order, i.e. with 0 as the highest priority and 255 as the lowest
priority.
NOTE 2: Some applications (like inline/tap) require two interfaces. The first interface in the case of inline/tap is on the
client (e.g. UE) side and the second on the core network (e.g. EPC) side.