Commit 1ba59e80 authored by Walter Featherstone's avatar Walter Featherstone

Updated to align with GS MEC-011 v2.0.9 - added yaml files

parent b409f1b8
Pipeline #1129 passed with stage
in 0 seconds
openapi: 3.0.2
servers:
- url: 'http://127.0.0.1:8081/mec_app_support/v1'
- url: 'https://127.0.0.1:8081/mec_app_support/v1'
info:
title: MEC Application Support API
version: 2.0.9
description: The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI
license:
name: ETSI Forge copyright notice
url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt'
contact:
email: cti_support@etsi.org
externalDocs:
description: 'ETSI GS MEC011 Application Enablement API, V2.0.9'
url: >-
https://docbox.etsi.org/ISG/MEC/70-Draft/0011v211Plat.App.Enabl/MEC-0011v211Plat.App.Enablv209.zip
tags:
- name: appTrafficRules
- name: appDnsRules
- name: appSubscriptions
- name: appConfirmTermination
- name: timing
- name: callbacks
paths:
'/applications/{appInstanceId}/traffic_rules':
parameters:
- $ref: '#/components/parameters/Path.AppInstanceId'
get:
description: >-
This method retrieves information about all the traffic rules associated
with a MEC application instance.
operationId: ApplicationsTrafficRules_GET
tags:
- appTrafficRules
responses:
'200':
$ref: '#/components/responses/ApplicationsTrafficRules.200'
'400':
$ref: '#/components/responses/Error.400'
'403':
$ref: '#/components/responses/Error.403'
'404':
$ref: '#/components/responses/Error.404'
'/applications/{appInstanceId}/traffic_rules/{trafficRuleId}':
parameters:
- $ref: '#/components/parameters/Path.AppInstanceId'
- $ref: '#/components/parameters/Path.TrafficRuleId'
get:
description: >-
This method retrieves information about all the traffic rules associated
with a MEC application instance.
operationId: ApplicationsTrafficRule_GET
tags:
- appTrafficRules
responses:
'200':
$ref: '#/components/responses/ApplicationsTrafficRule.200'
'400':
$ref: '#/components/responses/Error.400'
'403':
$ref: '#/components/responses/Error.403'
'404':
$ref: '#/components/responses/Error.404'
put:
description: >-
This method retrieves information about all the traffic rules associated
with a MEC application instance.
operationId: ApplicationsTrafficRule_PUT
tags:
- appTrafficRules
responses:
'200':
$ref: '#/components/responses/ApplicationsTrafficRule.200'
'400':
$ref: '#/components/responses/Error.400'
'403':
$ref: '#/components/responses/Error.403'
'404':
$ref: '#/components/responses/Error.404'
'412':
$ref: '#/components/responses/Error.412'
requestBody:
$ref: '#/components/requestBodies/ApplicationsTrafficRule'
'/applications/{appInstanceId}/dns_rules':
parameters:
- $ref: '#/components/parameters/Path.AppInstanceId'
get:
description: >-
This method retrieves information about all the DNS rules associated
with a MEC application instance.
operationId: ApplicationsDnsRules_GET
tags:
- appDnsRules
responses:
'200':
$ref: '#/components/responses/ApplicationsDnsRules.200'
'400':
$ref: '#/components/responses/Error.400'
'403':
$ref: '#/components/responses/Error.403'
'404':
$ref: '#/components/responses/Error.404'
'/applications/{appInstanceId}/dns_rules/{dnsRuleId}':
parameters:
- $ref: '#/components/parameters/Path.AppInstanceId'
- $ref: '#/components/parameters/Path.DnsRuleId'
get:
description: >-
This method retrieves information about a DNS rule associated with a
MEC application instance.
operationId: ApplicationsDnsRule_GET
tags:
- appDnsRules
responses:
'200':
$ref: '#/components/responses/ApplicationsDnsRule.200'
'400':
$ref: '#/components/responses/Error.400'
'403':
$ref: '#/components/responses/Error.403'
'404':
$ref: '#/components/responses/Error.404'
put:
description: 'This method activates, de-activates or updates a traffic rule.'
operationId: ApplicationsDnsRule_PUT
tags:
- appDnsRules
responses:
'200':
$ref: '#/components/responses/ApplicationsDnsRule.200'
'400':
$ref: '#/components/responses/Error.400'
'403':
$ref: '#/components/responses/Error.403'
'404':
$ref: '#/components/responses/Error.404'
'412':
$ref: '#/components/responses/Error.412'
requestBody:
$ref: '#/components/requestBodies/ApplicationsDnsRule'
'/applications/{appInstanceId}/subscriptions':
parameters:
- $ref: '#/components/parameters/Path.AppInstanceId'
get:
description: >-
The GET method may be used to request information about all
subscriptions for this requestor. Upon success, the response contains
entity body with all the subscriptions for the requestor.
operationId: ApplicationsSubscriptions_GET
tags:
- appSubscriptions
responses:
'200':
$ref: '#/components/responses/ApplicationsSubscriptions.200'
'400':
$ref: '#/components/responses/Error.400'
'403':
$ref: '#/components/responses/Error.403'
'404':
$ref: '#/components/responses/Error.404'
post:
description: >-
The POST method may be used to create a new subscription. One example
use case is to create a new subscription to the MEC service
availability notifications. Upon success, the response contains entity
body describing the created subscription.
operationId: ApplicationsSubscriptions_POST
tags:
- appSubscriptions
responses:
'201':
$ref: '#/components/responses/ApplicationsSubscriptions.201'
'400':
$ref: '#/components/responses/Error.400'
'403':
$ref: '#/components/responses/Error.403'
'404':
$ref: '#/components/responses/Error.404'
requestBody:
$ref: '#/components/requestBodies/ApplicationsSubscriptions'
callbacks:
appTerminationNotification:
$ref: '#/components/callbacks/AppTerminationNotification'
'/applications/{appInstanceId}/subscriptions/{subscriptionId}':
parameters:
- $ref: '#/components/parameters/Path.AppInstanceId'
- $ref: '#/components/parameters/Path.SubscriptionId'
get:
description: >-
The GET method requests information about a subscription for this
requestor. Upon success, the response contains entity body with the
subscription for the requestor.
operationId: ApplicationsSubscription_GET
tags:
- appSubscriptions
responses:
'200':
$ref: '#/components/responses/ApplicationsSubscription.200'
'400':
$ref: '#/components/responses/Error.400'
'403':
$ref: '#/components/responses/Error.403'
'404':
$ref: '#/components/responses/Error.404'
delete:
description: >-
This method deletes a mecAppSuptApiSubscription. This method is typically used
in "Unsubscribing from service availability event notifications"
procedure.
operationId: ApplicationsSubscription_DELETE
tags:
- appSubscriptions
responses:
'204':
description: No Content
'403':
$ref: '#/components/responses/Error.403'
'404':
$ref: '#/components/responses/Error.404'
'/applications/{appInstanceId}/confirm_termination':
parameters:
- $ref: '#/components/parameters/Path.AppInstanceId'
post:
description: >-
This method is used to confirm the application level termination
of an application instance.
operationId: ApplicationsConfirmTermination_POST
tags:
- appConfirmTermination
responses:
'204':
description: No Content
'401':
$ref: '#/components/responses/Error.401'
'403':
$ref: '#/components/responses/Error.403'
'404':
$ref: '#/components/responses/Error.404'
'409':
$ref: '#/components/responses/Error.409'
'429':
$ref: '#/components/responses/Error.429'
'/timing/timing_caps':
get:
description: >-
This method retrieves the information of the platform's timing
capabilities which corresponds to the timing capabilities query
operationId: TimingCaps_GET
tags:
- timing
responses:
'200':
$ref: '#/components/responses/TimingCaps.200'
'400':
$ref: '#/components/responses/Error.400'
'403':
$ref: '#/components/responses/Error.403'
'404':
$ref: '#/components/responses/Error.404'
'/timing/current_time':
get:
description: >-
This method retrieves the information of the platform's current time
which corresponds to the get platform time procedure
operationId: TimingCurrentTime_GET
tags:
- timing
responses:
'200':
$ref: '#/components/responses/TimingCurrentTime.200'
'400':
$ref: '#/components/responses/Error.400'
'403':
$ref: '#/components/responses/Error.403'
'404':
$ref: '#/components/responses/Error.404'
components:
schemas:
Empty:
description: Empty schema
AppTerminationNotification.Links:
description: >-
Object containing hyperlinks related to the resource.
type: object
required:
- subscription
properties:
subscription:
$ref: '#/components/schemas/LinkType'
confirmTermination:
$ref: '#/components/schemas/LinkType.ConfirmTermination'
AppTerminationNotification.MaxGracefulTimeout:
description: >-
Maximum timeout value in seconds for graceful termination or graceful
stop of an application instance.
type: integer
format: uint32
example: 10
AppTerminationNotification.NotificationType:
description: Shall be set to AppTerminationNotification.
type: string
example: 'AppTerminationNotification'
AppTerminationNotification:
description: >-
This type represents the information that the MEC platform
notifies the subscribed application instance about the corresponding
application instance termination/stop.
type: object
required:
- notificationType
- maxGracefulTimeout
- _links
properties:
notificationType:
$ref: '#/components/schemas/AppTerminationNotification.NotificationType'
maxGracefulTimeout:
$ref: '#/components/schemas/AppTerminationNotification.MaxGracefulTimeout'
_links:
$ref: '#/components/schemas/AppTerminationNotification.Links'
AppTerminationNotificationSubscription.AppInstanceId:
description: It is used as the filtering criterion for the subscribed events.
type: string
example: 'ID1'
AppTerminationNotificationSubscription.CallbackReference:
description: >-
URI selected by the MEC application instance to receive
notifications on the subscribed MEC application instance
management information. This shall be included in both the request and
the response.
type: string
format: uri
AppTerminationNotificationSubscription:
description: >-
This type represents the information that the MEC platform
notifies the subscribed application instance about the corresponding
application instance termination/stop.
type: object
required:
- subscriptionType
- callbackReference
- _links
- appInstanceId
properties:
subscriptionType:
$ref: >-
#/components/schemas/AppTerminationNotificationSubscription.SubscriptionType
callbackReference:
$ref: >-
#/components/schemas/AppTerminationNotificationSubscription.CallbackReference
_links:
$ref: '#/components/schemas/Self'
appInstanceId:
$ref: >-
#/components/schemas/AppTerminationNotificationSubscription.AppInstanceId
AppTerminationNotificationSubscription.SubscriptionType:
description: Shall be set to AppTerminationNotificationSubscription.
type: string
example: 'AppTerminationNotificationSubscription'
CurrentTime:
description: >-
This type represents the information provided by the MEC
platform in response to the Get Platform Time Request message.
type: object
required:
- nanoSeconds
- seconds
- timeSourceStatus
properties:
seconds:
type: integer
format: uint32
description: >-
The seconds part of the time. Time is defined as Unix-time since
January 1, 1970, 00:00:00 UTC
example: 1577836800
nanoSeconds:
type: integer
format: uint32
description: >-
The nanoseconds part of the time. Time is defined as Unix-time since
January 1, 1970, 00:00:00 UTC
example: 0
timeSourceStatus:
type: string
enum:
- TRACEABLE
- NONTRACEABLE
description: >-
Platform Time Source status. 1 = TRACEABLE - time source is locked
to the UTC time source. 2 = NONTRACEABLE - time source is not locked
to the UTC time source
example: 'TRACEABLE'
DestinationInterface.InterfaceType:
description: Type of the interface
type: string
enum:
- TUNNEL
- MAC
- IP
example: 'TUNNEL'
DestinationInterface.IpAddress:
description: IP address of the remote destination
type: string
example: '192.0.2.0'
DestinationInterface.MacAddress:
description: Source address identifies the MAC address of the interface
type: string
example: '02-00-00-00-00-00'
DestinationInterface:
description: This type represents the destination interface.
type: object
required:
- interfaceType
properties:
interfaceType:
$ref: '#/components/schemas/DestinationInterface.InterfaceType'
tunnelInfo:
$ref: '#/components/schemas/TunnelInfo'
srcMacAddress:
$ref: '#/components/schemas/DestinationInterface.MacAddress'
dstMacAddress:
$ref: '#/components/schemas/DestinationInterface.MacAddress'
dstIpAddress:
$ref: '#/components/schemas/DestinationInterface.IpAddress'
DnsRule.DomainName:
description: FQDN resolved by the DNS rule
type: string
example: 'www.example.com'
DnsRule.Id:
description: Identifies the DNS Rule
type: string
example: 'dnsRule1'
DnsRule.IpAddress:
description: IP address associated with the FQDN resolved by the DNS rule
type: string
example: '192.0.2.0'
DnsRule.IpAddressType:
description: IP address type
type: string
enum:
- IP_V6
- IP_V4
example: 'IP_V6'
DnsRule.State:
description: DNS rule state
type: string
enum:
- ACTIVE
- INACTIVE
example: 'ACTIVE'
DnsRule.Ttl:
description: Time to live value
type: integer
format: uint32
example: '?'
DnsRule:
description: This type represents the general information of a DNS rule.
type: object
required:
- dnsRuleId
- domainName
- ipAddressType
- ipAddress
- state
properties:
dnsRuleId:
$ref: '#/components/schemas/DnsRule.Id'
domainName:
$ref: '#/components/schemas/DnsRule.DomainName'
ipAddressType:
$ref: '#/components/schemas/DnsRule.IpAddressType'
ipAddress:
$ref: '#/components/schemas/DnsRule.IpAddress'
ttl:
$ref: '#/components/schemas/DnsRule.Ttl'
state:
$ref: '#/components/schemas/DnsRule.State'
LinkType:
description: This type represents a type of link and may be referenced from data structures
type: object
properties:
href:
$ref: '#/components/schemas/Href'
LinkType.ConfirmTermination:
description: >-
Link to the task resource where to confirm termination in case the
application is ready to be terminated before expiry of the timeout.
type: object
properties:
href:
$ref: '#/components/schemas/Href'
Href:
description: URI referring to a resource
type: string
format: uri
example: '/mecAppSuptApi/example'
MecAppSuptApiSubscriptionLinkList.Links:
description: Self-referring URI.
type: object
required:
- self
properties:
self:
$ref: '#/components/schemas/LinkType'
subscriptions:
description: The MEC application instance's subscriptions
type: array
items:
$ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList.Subscription'
MecAppSuptApiSubscriptionLinkList.Subscription:
description: A link to a subscription.
type: object
required:
- href
- rel
properties:
href:
$ref: '#/components/schemas/Href'
rel:
description: >-
The values shall be set to AppTerminationNotificationSubscription.
type: string
MecAppSuptApiSubscriptionLinkList:
description: >-
This type represents a list of links related to currently existing
subscriptions for a MEC application instance. This information
is returned when sending a request to receive current subscriptions.
type: object
required:
- _links
properties:
_links:
$ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList.Links'
ProblemDetails:
type: object
properties:
type:
$ref: '#/components/schemas/Problem.type'
title:
$ref: '#/components/schemas/Problem.title'
status:
$ref: '#/components/schemas/Problem.status'
detail:
$ref: '#/components/schemas/Problem.detail'
instance:
$ref: '#/components/schemas/Problem.instance'
Problem.detail:
type: string
description: A human-readable explanation specific to this occurrence of the problem
Problem.instance:
type: string
format: uri
description: A URI reference that identifies the specific occurrence of the problem
Problem.status:
type: integer
format: uint32
description: The HTTP status code for this occurrence of the problem
Problem.title:
type: string
description: 'A short, human-readable summary of the problem type'
Problem.type:
type: string
format: uri
description: >-
A URI reference according to IETF RFC 3986 that identifies the problem
type
Self:
description: Self-referring URI.
type: object
required:
- self
properties:
self:
$ref: '#/components/schemas/LinkType'
readOnly: true
TimingCaps.NtpServers.AuthenticationKeyNum:
description: Authentication key number
type: integer
format: uint32
example: 1
TimingCaps.NtpServers.AuthenticationOption:
description: NTP authentication option
type: string
enum:
- NONE
- SYMMETRIC_KEY
- AUTO_KEY
example: 'NONE'
TimingCaps.NtpServers.DelayReqMaxRate:
description: Acceptable maximum rate of the Delay_Req messages in packets per second
type: integer
format: uint32
example: 10
TimingCaps.NtpServers.LocalPriority:
description: NTP server local priority
type: integer
format: uint32
example: 1
TimingCaps.NtpServers.MaxPollingInterval:
description: >-
Maximum poll interval for NTP messages, in seconds as a power of two.
Range 3...17
type: integer
format: uint32
example: 17
TimingCaps.NtpServers.MinPollingInterval:
description: >-
Minimum poll interval for NTP messages, in seconds as a power of two.
Range 3...17
type: integer
format: uint32
example: 3
TimingCaps.NtpServers.NtpServerAddr:
description: NTP server address
type: string
example: '192.0.2.0'
TimingCaps.NtpServers.NtpServerAddrType:
description: Address type of NTP server
type: string
enum:
- IP_ADDRESS
- DNS_NAME
example: 'IP_ADDRESS'
TimingCaps.NtpServers_PtpMasterIpAddress:
description: PTP Master IP Address
type: string
example: '192.0.2.0'
TimingCaps.NtpServers_PtpMasterLocalPriority:
description: PTP Master local priority
type: integer
format: uint32
example: 1
TimingCaps.NtpServers:
description: NTP server detail.
type: object
required:
- ntpServerAddrType
- ntpServerAddr
- minPollingInterval
- maxPollingInterval
- localPriority
- authenticationOption
- authenticationKeyNum
properties:
ntpServerAddrType:
$ref: '#/components/schemas/TimingCaps.NtpServers.NtpServerAddrType'
ntpServerAddr:
$ref: '#/components/schemas/TimingCaps.NtpServers.NtpServerAddr'
minPollingInterval:
$ref: '#/components/schemas/TimingCaps.NtpServers.MinPollingInterval'
maxPollingInterval:
$ref: '#/components/schemas/TimingCaps.NtpServers.MaxPollingInterval'
localPriority:
$ref: '#/components/schemas/TimingCaps.NtpServers.LocalPriority'
authenticationOption:
$ref: '#/components/schemas/TimingCaps.NtpServers.AuthenticationOption'
authenticationKeyNum:
$ref: '#/components/schemas/TimingCaps.NtpServers.AuthenticationKeyNum'
TimingCaps_PtpMasters:
description: NTP server detail.
type: object
required:
- ptpMasterIpAddress
- ptpMasterLocalPriority
- delayReqMaxRate
properties:
ptpMasterIpAddress:
$ref: '#/components/schemas/TimingCaps.NtpServers_PtpMasterIpAddress'
ptpMasterLocalPriority:
$ref: '#/components/schemas/TimingCaps.NtpServers_PtpMasterLocalPriority'
delayReqMaxRate:
$ref: '#/components/schemas/TimingCaps.NtpServers.DelayReqMaxRate'
TimingCaps.TimeStamp:
description: time
type: object
required:
- nanoSeconds
- seconds
properties:
seconds:
type: integer
format: uint32
description: >-
The seconds part of the time. Time is defined as Unix-time since
January 1, 1970, 00:00:00 UTC
example: 1577836800
nanoSeconds:
type: integer
format: uint32
description: >-
The nanoseconds part of the time. Time is defined as Unix-time since
January 1, 1970, 00:00:00 UTC
example: 0
TimingCaps:
description: >-
This type represents the information provided by the MEC
platform in response to the Timing capabilities Query message.
type: object
properties:
timeStamp:
$ref: '#/components/schemas/TimingCaps.TimeStamp'
ntpServers:
description: Available NTP servers
type: array
items:
$ref: '#/components/schemas/TimingCaps.NtpServers'
ptpMasters:
description: Available PTP Masters
type: array
items:
$ref: '#/components/schemas/TimingCaps_PtpMasters'
TrafficFilter.Address:
description: Identify the traffic ip address.
type: string
example: '192.168.1.1'
TrafficFilter.DSCP:
description: >-
Used to match all IPv4 packets that have the same Differentiated
Services Code Point (DSCP)
type: integer
format: uint32
example: 0
TrafficFilter.Port:
description: A port
type: string
example: '8080'
TrafficFilter.Protocol:
description: Protocol of the traffic filter
type: string
example: '?'
TrafficFilter.QCI:
description: >-
Used to match all packets that have the same Quality Class Indicator
(QCI).
type: integer
format: uint32
example: 1
TrafficFilter.TC:
description: Used to match all IPv6 packets that have the same Traffic Class.
type: integer
format: uint32
example: 1
TrafficFilter.Token:
description: Used for token based traffic rule
type: string
example: '?'
TrafficFilter.TunnelAddress:
description: Used for GTP tunnel based traffic rule
type: string
example: '?'
TrafficFilter.TunnelPort:
description: Used for GTP tunnel based traffic rule
type: string
example: '?'
TrafficFilter:
description: This type represents the traffic filter.