A.2 VAE_MessageDelivery API

29.4863GPPRelease 18Stage 3TSV2X Application Enabler (VAE) Services

openapi: 3.0.0

info:

version: 1.2.0-alpha.1

title: VAE_MessageDelivery

description: |

API for VAE Message Delivery Service

© 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).

All rights reserved.

externalDocs:

description: 3GPP TS 29.486 V18.0.0 V2X Application Enabler (VAE) Services

url: ‘https://www.3gpp.org/ftp/Specs/archive/29_series/29.486/’

security:

– {}

– oAuth2ClientCredentials: []

servers:

– url: ‘{apiRoot}/vae-message-delivery/v1’

variables:

apiRoot:

default: https://example.com

description: apiRoot as defined in clause 4.4 of 3GPP TS 29.501

paths:

/subscriptions:

post:

summary: Create a new Individual Message Delivery Data Subscription resource

operationId: CreateIndividualMessageDeliveryDataSubscription

tags:

– Message Delivery Data Subscriptions (Collection)

requestBody:

required: true

content:

application/json:

schema:

$ref: ‘#/components/schemas/MessageDeliverySubscriptionData’

responses:

‘201’:

description: The subscription was created successfully.

content:

application/json:

schema:

$ref: ‘#/components/schemas/MessageDeliverySubscriptionData’

headers:

Location:

description: ‘Contains the URI of the newly created resource’

required: true

schema:

type: string

‘400’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/400’

‘401’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/401’

‘403’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/403’

‘404’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/404’

‘411’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/411’

‘413’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/413’

‘415’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/415’

‘429’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/429’

‘500’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/500’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

callbacks:

uplinkMessageDelivery:

‘{$request.body#/notifUri}’:

post:

requestBody:

required: true

content:

application/json:

schema:

$ref: ‘#/components/schemas/UplinkMessageDeliveryData’

responses:

‘204’:

description: No Content, Notification was successful

‘307’:

$ref: ‘TS29122_CommonData.yaml#/components/responses/307’

‘308’:

$ref: ‘TS29122_CommonData.yaml#/components/responses/308’

‘400’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/400’

‘401’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/401’

‘403’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/403’

‘404’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/404’

‘411’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/411’

‘413’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/413’

‘415’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/415’

‘429’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/429’

‘500’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/500’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

receptReportOfDownlinkMesageDelivery:

‘{$request.body#/notifUri}’:

post:

requestBody:

required: true

content:

application/json:

schema:

$ref: ‘#/components/schemas/Result’

responses:

‘204’:

description: No Content, Notification was successful

‘307’:

$ref: ‘TS29122_CommonData.yaml#/components/responses/307’

‘308’:

$ref: ‘TS29122_CommonData.yaml#/components/responses/308’

‘400’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/400’

‘401’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/401’

‘403’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/403’

‘404’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/404’

‘411’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/411’

‘413’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/413’

‘415’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/415’

‘429’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/429’

‘500’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/500’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

/subscriptions/{subscriptionId}:

get:

summary: Get an existing individual Message Delivery Subscription resource

operationId: ReadIndividualMessageDeliverySubscription

tags:

– Individual Message Delivery Subscription (Document)

parameters:

– name: subscriptionId

in: path

description: >

String identifying a subscription to the Individual Message Delivery Subscription

required: true

schema:

type: string

responses:

‘200’:

description: The subscription information is returned.

content:

application/json:

schema:

$ref: ‘#/components/schemas/MessageDeliverySubscriptionData’

‘307’:

$ref: ‘TS29122_CommonData.yaml#/components/responses/307’

‘308’:

$ref: ‘TS29122_CommonData.yaml#/components/responses/308’

‘400’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/400’

‘401’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/401’

‘403’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/403’

‘404’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/404’

‘406’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/406’

‘429’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/429’

‘500’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/500’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

delete:

summary: Delete an individual Message Delivery Subscription resource

operationId: DeleteMessageDeliverySubscription

tags:

– Individual Message Delivery Subscription (Document)

parameters:

– name: subscriptionId

in: path

description: >

String identifying a subscription to the Individual Message Delivery Subscription

required: true

schema:

type: string

responses:

‘204’:

description: The subscription was terminated successfully.

‘307’:

$ref: ‘TS29122_CommonData.yaml#/components/responses/307’

‘308’:

$ref: ‘TS29122_CommonData.yaml#/components/responses/308’

‘400’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/400’

‘401’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/401’

‘403’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/403’

‘404’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/404’

‘429’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/429’

‘500’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/500’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

/subscriptions/{subscriptionId}/message-deliveries:

post:

summary: VAE Message delivery resource create service Operation

tags:

– message deliveries collection (Collection)

operationId: CreateDownlinkMessageDelivery

parameters:

– name: subscriptionId

in: path

description: >

String identifying a subscription to the Individual Message Delivery Subscription

required: true

schema:

type: string

requestBody:

content:

application/json:

schema:

$ref: ‘#/components/schemas/DownlinkMessageDeliveryData’

required: true

responses:

‘201’:

description: Downlink Message Delivery Resource Created

headers:

Location:

description: ‘Contains the URI of the newly created resource’

required: true

schema:

type: string

content:

application/json:

schema:

$ref: ‘#/components/schemas/DownlinkMessageDeliveryData’

‘400’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/400’

‘401’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/401’

‘403’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/403’

‘404’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/404’

‘411’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/411’

‘413’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/413’

‘415’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/415’

‘429’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/429’

‘500’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/500’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

/subscriptions/{subscriptionId}/message-deliveries/{dlDeliveryId}:

get:

summary: VAE Message delivery resource Read service Operation

tags:

– Individual downlink message delivery (Document)

operationId: ReadIndividualDownlinkMessageDelivery

parameters:

– name: subscriptionId

in: path

description: >

String identifying a subscription to the Individual Message Delivery Subscription

required: true

schema:

type: string

– name: dlDeliveryId

in: path

description: Identifier of a downlink messge delivery resource

required: true

schema:

type: string

responses:

‘200’:

description: OK. Resource representation is returned

content:

application/json:

schema:

$ref: ‘#/components/schemas/DownlinkMessageDeliveryData’

‘307’:

$ref: ‘TS29122_CommonData.yaml#/components/responses/307’

‘308’:

$ref: ‘TS29122_CommonData.yaml#/components/responses/308’

‘400’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/400’

‘401’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/401’

‘403’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/403’

‘404’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/404’

‘406’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/406’

‘429’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/429’

‘500’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/500’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

delete:

summary: VAE Message delivery resource delete service Operation

tags:

– Individual message delivery (Document)

operationId: DeleteMessageDelivery

parameters:

– name: subscriptionId

in: path

description: >

String identifying a subscription to the Individual Message Delivery Subscription

required: true

schema:

type: string

– name: dlDeliveryId

in: path

required: true

description: Unique ID of the message delivery to be deleted

schema:

type: string

responses:

‘204’:

description: No Content (Successful deletion of the existing subscription)

‘307’:

$ref: ‘TS29122_CommonData.yaml#/components/responses/307’

‘308’:

$ref: ‘TS29122_CommonData.yaml#/components/responses/308’

‘400’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/400’

‘401’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/401’

‘403’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/403’

‘404’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/404’

‘429’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/429’

‘500’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/500’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

components:

securitySchemes:

oAuth2ClientCredentials:

type: oauth2

flows:

clientCredentials:

tokenUrl: ‘{tokenUrl}’

scopes: {}

schemas:

DownlinkMessageDeliveryData:

description: Contains the downlink V2X message delivery data.

type: object

properties:

ueId:

$ref: ‘#/components/schemas/V2xUeId’

groupId:

$ref: ‘#/components/schemas/V2xGroupId’

duration:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/DateTime’

geoId:

$ref: ‘#/components/schemas/GeoId’

payload:

$ref: ‘#/components/schemas/V2xMessagePayload’

required:

– payload

MessageDeliverySubscriptionData:

description: Represents the V2X message delivery subscription data.

type: object

properties:

appSerId:

$ref: ‘#/components/schemas/AppServerId’

serviceId:

$ref: ‘#/components/schemas/V2xServiceId’

geoId:

$ref: ‘#/components/schemas/GeoId’

notifUri:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’

requestTestNotification:

type: boolean

description: >

Set to true by the NF service consumer to request the VAE server to send a test

notification as defined in clause 6.1.5.3. Set to false or omitted otherwise.

websockNotifConfig:

$ref: ‘TS29122_CommonData.yaml#/components/schemas/WebsockNotifConfig’

suppFeat:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’

required:

– appSerId

– serviceId

– notifUri

UplinkMessageDeliveryData:

description: Represents the uplink V2X message delivery data.

type: object

properties:

resourceUri:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’

ueId:

$ref: ‘#/components/schemas/V2xUeId’

geoId:

$ref: ‘#/components/schemas/GeoId’

payload:

$ref: ‘#/components/schemas/V2xMessagePayload’

required:

– resourceUri

– ueId

– payload

Result:

description: Contains the result of downlink message delivery.

anyOf:

– type: string

enum:

– SUCCESS

– FAIL

– type: string

description: >

This string provides forward-compatibility with future

extensions to the enumeration and is not used to encode

content defined in the present version of this API.

AppServerId:

description: Represents the V2X application specific server identifier.

type: string

V2xUeId:

description: Represents the identifier of the V2X UE.

type: string

V2xGroupId:

description: Represents the group ID for which a V2X message is addressed.

type: string

V2xServiceId:

description: Represents the V2X service ID to which a V2X message belongs.

type: string

GeoId:

description: Represents a geographical area identifier.

type: string

V2xMessagePayload:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Bytes’