Commit bec59b94 authored by Walter Featherstone's avatar Walter Featherstone

Updated to GS version 1.1.1

Change-Id: If6bed9b6496f4a80fe0add541142ec5e5d100ca5
Signed-off-by: Walter Featherstone's avatarfeatherstone <walter.featherstone@viavisolutions.com>
parent 2ffcc62f
################################################################################
# Open API specification version #
################################################################################
swagger: '2.0'
################################################################################
# Document Information #
################################################################################
info:
$ref: './info/index.yaml'
################################################################################
# External Documents #
################################################################################
externalDocs:
$ref: './externalDocs/index.yaml'
host: 127.0.0.1:8081
basePath: /exampleAPI/mp1/v1/
schemes:
- http
- https
consumes:
- application/json
produces:
- application/json
################################################################################
# Parameters #
################################################################################
parameters:
$ref: ./parameters/index.yaml
################################################################################
# paths #
################################################################################
paths:
$ref: './paths/index.yaml'
################################################################################
# Definitions #
################################################################################
definitions:
$ref: './definitions/index.yaml'
\ No newline at end of file
swagger: '2.0'
info:
title: MEC-011 Mp1 API
version: 1.1.1
description: The MEC-011 Application Enablement API described using OpenAPI
license:
name: ETSI Forge copyright notice
url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt'
externalDocs:
description: ETSI MEC011 V1.1.1 Application Enablement API
url: 'http://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/01.01.01_60/gs_mec011v010101p.pdf'
host: '127.0.0.1:8081'
basePath: /exampleAPI/mp1/v1/
schemes:
- http
- https
consumes:
- application/json
produces:
- application/json
parameters:
Body.AppTerminationNotificationSubscription:
name: AppTerminationNotificationSubscription
description: Entity body in the request contains a subscription to the mobile edge application termination notifications that is to be created.
in: body
required: true
schema:
$ref: '#/definitions/AppTerminationNotificationSubscription.Request'
Body.DnsRule:
name: DnsRule
description: The updated ÔÇ£stateÔÇØ is included in the entity body of the request.
in: body
required: true
schema:
$ref: '#/definitions/DnsRule'
Body.SerAvailabilityNotificationSubscription:
name: SerAvailabilityNotificationSubscription
description: Entity body in the request contains a subscription to the mobile edge service availability notifications that is to be created.
in: body
required: true
schema:
$ref: '#/definitions/SerAvailabilityNotificationSubscription.Request'
Body.ServiceInfo:
name: ServiceInfo
description: New ServiceInfo with updated "state" is included as entity body of the request
in: body
required: true
schema:
$ref: '#/definitions/ServiceInfo'
Body.TrafficRule:
name: TrafficRule
description: One or more updated attributes that are allowed to be changed
in: body
required: true
schema:
$ref: '#/definitions/TrafficRule'
Path.AppInstanceId:
name: appInstanceId
description: Represents a mobile edge application instance. Note that the appInstanceId is allocated by the mobile edge platform manager.
in: path
required: true
type: string
format: uri
Path.DnsRuleId:
name: dnsRuleId
description: Represents a DNS rule.
in: path
required: true
type: string
format: uri
Path.SubscriptionId:
name: subscriptionId
description: Represents a subscription to the notifications from the mobile edge platform.
in: path
required: true
type: string
format: uri
Path.SubscriptionType:
name: subscriptionType
description: Represents a subscription type to the notifications from the mobile edge platform.
in: path
required: true
type: string
format: uri
Path.ServiceId:
name: serviceId
description: Represents a mobile edge service instance.
in: path
required: true
type: string
format: uri
Path.TrafficRuleId:
name: trafficRuleId
description: Represents a traffic rule.
in: path
required: true
type: string
format: uri
Query.Ser_category_id:
name: ser_category_id
description: A mobile edge application instance may use ser_category_id as an input parameter to query the availability of a list of mobile edge service instances in a serCategory. Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them shall be present.
in: query
required: false
type: string
Query.Ser_instance_id:
name: ser_instance_id
description: A mobile edge application instance may use multiple ser_instance_ids as an input parameter to query the availability of a list of mobile edge service instances. Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them shall be present.
in: query
required: false
type: array
items:
type: string
Query.Ser_name:
name: ser_name
description: A mobile edge application instance may use multiple ser_names as an input parameter to query the availability of a list of mobile edge service instances. Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them shall be present.
in: query
required: false
type: array
items:
type: string
paths:
'/applications/{appInstanceId}/dns_rules':
get:
description: This method retrieves information about all the DNS rules associated with a mobile edge application instance.
operationId: ApplicationsDnsRules.GET
produces:
- application/json
parameters:
- $ref: '#/parameters/Path.AppInstanceId'
responses:
'200':
description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
schema:
type: array
items:
type: object
properties:
DnsRule:
$ref: '#/definitions/DnsRule'
'/applications/{appInstanceId}/dns_rules/{dnsRuleId}':
get:
description: This method retrieves information about a DNS rule associated with a mobile edge application instance.
operationId: ApplicationsDnsRule.GET
produces:
- application/json
parameters:
- $ref: '#/parameters/Path.AppInstanceId'
- $ref: '#/parameters/Path.DnsRuleId'
responses:
'200':
description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
schema:
type: object
properties:
DnsRule:
$ref: '#/definitions/DnsRule'
put:
description: 'This method activates, de-activates or updates a traffic rule.'
operationId: ApplicationsDnsRule.PUT
produces:
- application/json
parameters:
- $ref: '#/parameters/Body.DnsRule'
- $ref: '#/parameters/Path.AppInstanceId'
- $ref: '#/parameters/Path.DnsRuleId'
responses:
'200':
description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
schema:
type: object
properties:
DnsRule:
$ref: '#/definitions/DnsRule'
'/applications/{appInstanceId}/subscriptions':
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
produces:
- application/json
parameters:
- $ref: '#/parameters/Path.AppInstanceId'
responses:
'200':
description: 'Upon success, a response body containing the list of links to the requested subscriptions is returned.'
schema:
type: object
properties:
Mp1SubscriptionLinkList:
$ref: '#/definitions/Mp1SubscriptionLinkList'
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 mobile edge service availability notifications. Upon success, the response contains entity body describing the created subscription.'
operationId: ApplicationsSubscriptions.POST
produces:
- application/json
parameters:
- $ref: '#/parameters/Path.AppInstanceId'
- $ref: '#/parameters/Body.AppTerminationNotificationSubscription'
responses:
'200':
description: Entity body in the request contains a subscription to the mobile edge service availability notifications that is to be created.
schema:
type: object
properties:
AppTerminationNotificationSubscription:
$ref: '#/definitions/AppTerminationNotificationSubscription.Response'
'/applications/{appInstanceId}/subscriptions/{subscriptionType}/{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
produces:
- application/json
parameters:
- $ref: '#/parameters/Path.AppInstanceId'
- $ref: '#/parameters/Path.SubscriptionType'
- $ref: '#/parameters/Path.SubscriptionId'
responses:
'200':
description: 'Upon success, a response body containing the requested subscription is returned.'
schema:
type: object
properties:
SerAvailabilityNotificationSubscription:
$ref: '#/definitions/SerAvailabilityNotificationSubscription.Response'
delete:
description: This method deletes a meMp1Subscription. This method is typically used in "Unsubscribing from service availability event notifications" procedure.
operationId: ApplicationsSubscription.DELETE
produces:
- application/json
responses:
'204':
description: No Content
'/applications/{appInstanceId}/traffic_rules':
get:
description: This method retrieves information about all the traffic rules associated with a mobile edge application instance.
operationId: ApplicationsTrafficRules.GET
produces:
- application/json
parameters:
- $ref: '#/parameters/Path.AppInstanceId'
responses:
'200':
description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
schema:
type: array
items:
type: object
properties:
TrafficRule:
$ref: '#/definitions/TrafficRule'
'/applications/{appInstanceId}/traffic_rules/{trafficRuleId}':
get:
description: This method retrieves information about all the traffic rules associated with a mobile edge application instance.
operationId: ApplicationsTrafficRule.GET
produces:
- application/json
parameters:
- $ref: '#/parameters/Path.AppInstanceId'
- $ref: '#/parameters/Path.TrafficRuleId'
responses:
'200':
description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
schema:
type: object
properties:
TrafficRule:
$ref: '#/definitions/TrafficRule'
put:
description: This method retrieves information about all the traffic rules associated with a mobile edge application instance.
operationId: ApplicationsTrafficRules.PUT
produces:
- application/json
parameters:
- $ref: '#/parameters/Body.TrafficRule'
- $ref: '#/parameters/Path.AppInstanceId'
- $ref: '#/parameters/Path.TrafficRuleId'
responses:
'200':
description: 'Upon success, a response body containing data type describing the updated TrafficRule is returned.'
schema:
type: object
properties:
TrafficRule:
$ref: '#/definitions/TrafficRule'
/services:
get:
description: This method retrieves information about a list of meService resources. This method is typically used in "service availability query" procedure
operationId: Services.GET
produces:
- application/json
parameters:
- $ref: '#/parameters/Query.Ser_instance_id'
- $ref: '#/parameters/Query.Ser_name'
- $ref: '#/parameters/Query.Ser_category_id'
responses:
'200':
description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
schema:
type: array
items:
type: object
properties:
ServiceInfo:
$ref: '#/definitions/ServiceInfo'
put:
description: This method is used to create a meService resource. This method is typically used in "service availability update and new service registration" procedure
operationId: Services.POST
produces:
- application/json
parameters:
- $ref: '#/parameters/Body.ServiceInfo'
responses:
'201':
description: 'Upon success, the HTTP response shall include a Location HTTP header that contains the resource URI of the created resource.'
schema:
type: object
properties:
ServiceInfo:
$ref: '#/definitions/ServiceInfo'
'/services/{serviceId}':
get:
description: This method retrieves information about a meService resource. This method is typically used in "service availability query" procedure
operationId: ServicesServiceId.GET
produces:
- application/json
parameters:
- $ref: '#/parameters/Path.ServiceId'
responses:
'200':
description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
schema:
type: object
properties:
ServiceInfo:
$ref: '#/definitions/ServiceInfo'
examples:
application/json:
ServiceInfo:
serInstanceId: ServiceInstance123
serName: ExampleService
serCategory:
href: catItem1
id: id12345
name: RNI
version: version1
version: ServiceVersion1
state: ACTIVE
transportId: Rest1
transportInfo:
id: TransId12345
name: REST
description: REST API
type: JSON
protocol: HTTP
version: '2.0'
endpoint:
uris:
- /meMp1/service/EntryPoint
addresses:
- host: 192.0.2.0
port: '8080'
mp1.security:
oAuth2Info:
grantTypes: OAUTH2_CLIENT_CREDENTIALS
tokenEndpoint: /meMp1/mp1.security/TokenEndPoint
serializer: JSON
put:
description: This method updates the information about a meService resource
operationId: ServicesServiceId.PUT
produces:
- application/json
parameters:
- $ref: '#/parameters/Path.ServiceId'
- $ref: '#/parameters/Body.ServiceInfo'
responses:
'200':
description: 'Upon success, a response body containing data type describing the updated ServiceInfo is returned'
schema:
type: object
properties:
ServiceInfo:
$ref: '#/definitions/ServiceInfo'
examples:
application/json:
ServiceInfo:
serInstanceId: ServiceInstance123
serName: ExampleService
serCategory:
href: catItem1
id: id12345
name: RNI
version: version1
version: ServiceVersion1
state: ACTIVE
transportId: Rest1
transportInfo:
id: TransId12345
name: REST
description: REST API
type: JSON
protocol: HTTP
version: '2.0'
endpoint:
uris:
- /meMp1/service/EntryPoint
addresses:
- host: 192.0.2.0
port: '8080'
mp1.security:
oAuth2Info:
grantTypes: OAUTH2_CLIENT_CREDENTIALS
tokenEndpoint: /meMp1/mp1.security/TokenEndPoint
serializer: JSON
/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
produces:
- application/json
responses:
'200':
description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
schema:
type: object
properties:
CurrentTime:
$ref: '#/definitions/CurrentTime'
/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
produces:
- application/json
responses:
'200':
description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
schema:
type: object
properties:
TimingCaps:
$ref: '#/definitions/TimingCaps'
/transports:
get:
description: This method retrieves information about a list of available transports. This method is typically used by a service-producing application to discover transports provided by the mobile edge platform in the "transport information query" procedure
operationId: Transports.GET
produces:
- application/json
responses:
'200':
description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
schema:
type: array
items:
type: object
properties:
TransportInfo:
$ref: '#/definitions/TransportInfo'
definitions:
AppTerminationNotification.MaxGracefulTimeout:
description: Maximum timeout value in seconds for graceful termination or graceful stop of an application instance.
type: string
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 mobile edge platform notifies the subscribed application instance about the corresponding application instance termination/stop.
type: object
required:
- notificationType
- maxGracefulTimeout
- _links
properties:
notificationType:
$ref: '#/definitions/AppTerminationNotification.NotificationType'
maxGracefulTimeout:
$ref: '#/definitions/AppTerminationNotification.MaxGracefulTimeout'
_links:
$ref: '#/definitions/Subscription'
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 mobile edge application instance to receive notifications on the subscribed mobile edge application instance management information. This shall be included in both the request and the response.
type: string
format: uri
AppTerminationNotificationSubscription.Request:
description: This type represents the information that the mobile edge platform notifies the subscribed application instance about the corresponding application instance termination/stop.
type: object
required:
- subscriptionType
- callbackReference
- appInstanceId
properties:
subscriptionType:
$ref: '#/definitions/AppTerminationNotificationSubscription.SubscriptionType'
callbackReference:
$ref: '#/definitions/AppTerminationNotificationSubscription.CallbackReference'
appInstanceId:
$ref: '#/definitions/AppTerminationNotificationSubscription.AppInstanceId'
AppTerminationNotificationSubscription.Response:
description: This type represents the information that the mobile edge platform notifies the subscribed application instance about the corresponding application instance termination/stop.
type: object
required:
- subscriptionType
- callbackReference
- _links
- appInstanceId
properties:
subscriptionType:
$ref: '#/definitions/AppTerminationNotificationSubscription.SubscriptionType'
callbackReference:
$ref: '#/definitions/AppTerminationNotificationSubscription.CallbackReference'
_links:
$ref: '#/definitions/Self'
appInstanceId:
$ref: '#/definitions/AppTerminationNotificationSubscription.AppInstanceId'
AppTerminationNotificationSubscription.SubscriptionType:
description: Shall be set to AppTerminationNotificationSubscription.
type: string
example: AppTerminationNotificationSubscription
CategoryRef.Href:
description: Reference of the catalogue
type: string
example: catItem1
CategoryRef.Id:
description: Unique identifier of the category
type: string
example: id12345
CategoryRef.Name:
description: Name of the category
type: string
example: RNI
CategoryRef.Version:
description: Category version
type: string
example: version1
CategoryRef:
description: This type represents the category reference
type: object
required:
- href
- id
- name
- version
properties:
href:
$ref: '#/definitions/CategoryRef.Href'
id:
$ref: '#/definitions/CategoryRef.Id'
name:
$ref: '#/definitions/CategoryRef.Name'
version:
$ref: '#/definitions/CategoryRef.Version'
CurrentTime:
description: This type represents the information provided by the mobile edge 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: '#/definitions/DestinationInterface.InterfaceType'
tunnelInfo:
$ref: '#/definitions/TunnelInfo'
srcMacAddress:
$ref: '#/definitions/DestinationInterface.MacAddress'
dstMacAddress:
$ref: '#/definitions/DestinationInterface.MacAddress'
dstIpAddress:
$ref: '#/definitions/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: '#/definitions/DnsRule.Id'
domainName:
$ref: '#/definitions/DnsRule.DomainName'
ipAddressType:
$ref: '#/definitions/DnsRule.IpAddressType'
ipAddress:
$ref: '#/definitions/DnsRule.IpAddress'
ttl:
$ref: '#/definitions/DnsRule.Ttl'
state:
$ref: '#/definitions/DnsRule.State'
EndPointInfo.Address.Host:
description: Host portion of the address
type: string
example: 192.0.2.0
EndPointInfo.Address.Port:
description: Port portion of the address
type: integer
format: uint32
example: '8080'
EndPointInfo.Address:
description: A IP address and port pair
type: object
properties:
host:
$ref: '#/definitions/EndPointInfo.Address.Host'
port:
$ref: '#/definitions/EndPointInfo.Address.Port'
EndPointInfo.Addresses:
description: Entry point information of the service as one or more pairs of IP address and port
type: array
items:
$ref: '#/definitions/EndPointInfo.Address'
EndPointInfo.Alternative:
description: 'Entry point information of the service in a format defined by an implementation, or in an external specification.'
type: object
EndPointInfo.Uri:
description: Entry point information of the service
type: string
format: uri
example: /meMp1/service/EntryPoint
EndPointInfo.Uris:
description: 'Entry point information of the service as string, formatted according to URI syntax'
type: array
items:
$ref: '#/definitions/EndPointInfo.Uri'
EndPointInfo:
description: This type represents information about a transport endpoint
type: object
properties:
uris: