Commit 7e21cc6e authored by Walter Featherstone's avatar Walter Featherstone

Moving from Swagger 2.0 to OpenAPI 3.0

parents 7daaee41 ec6d7b0b
This source diff could not be displayed because it is too large. You can view the blob instead.
################################################################################
# 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'
openapi: 3.0.2
servers:
- url: 'http://127.0.0.1:8081/mp1/v1'
- url: 'https://127.0.0.1:8081/mp1/v1'
info:
title: Mp1 API
version: 1.1.1
......@@ -6,337 +9,98 @@ info:
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, V1.1.1'
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'
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'
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
Path.DnsRuleId:
name: dnsRuleId
description: Represents a DNS rule.
in: path
required: true
type: string
Path.SubscriptionId:
name: subscriptionId
description: >-
Represents a subscription to the notifications from the mobile edge
platform.
in: path
required: true
type: string
Path.ServiceId:
name: serviceId
description: Represents a mobile edge service instance.
in: path
required: true
type: string
Path.TrafficRuleId:
name: trafficRuleId
description: Represents a traffic rule.
in: path
required: true
type: string
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
tags:
- name: trafficRules
- name: dnsRules
- name: subscriptions
- name: services
- name: timing
- name: transports
- name: callbacks
paths:
'/applications/{appInstanceId}/dns_rules':
parameters:
- $ref: '#/parameters/Path.AppInstanceId'
- $ref: '#/components/parameters/Path.AppInstanceId'
get:
description: >-
This method retrieves information about all the DNS rules associated
with a mobile edge application instance.
operationId: ApplicationsDnsRules_GET
produces:
- application/json
tags:
- trafficRules
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'
examples:
application/json:
- DnsRule:
dnsRuleId: 'DnsRule1'
domainName: 'www.example.com'
ipAddressType: 'IP_V4'
ipAddress: '146.241.7.3'
ttl: 300
state: 'ACTIVE'
$ref: '#/components/responses/ApplicationsDnsRules.200'
'400':
description: Bad Request
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.400'
'403':
description: Forbidden
schema:
type: object
required:
- ProblemDetails
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.403'
'404':
description: Not Found
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.404'
'/applications/{appInstanceId}/dns_rules/{dnsRuleId}':
parameters:
- $ref: '#/parameters/Path.AppInstanceId'
- $ref: '#/parameters/Path.DnsRuleId'
- $ref: '#/components/parameters/Path.AppInstanceId'
- $ref: '#/components/parameters/Path.DnsRuleId'
get:
description: >-
This method retrieves information about a DNS rule associated with a
mobile edge application instance.
operationId: ApplicationsDnsRule_GET
produces:
- application/json
tags:
- dnsRules
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'
examples:
application/json:
DnsRule:
dnsRuleId: 'DnsRule1'
domainName: 'www.example.com'
ipAddressType: 'IP_V4'
ipAddress: '146.241.7.3'
ttl: 300
state: 'ACTIVE'
$ref: '#/components/responses/ApplicationsDnsRule.200'
'400':
description: Bad Request
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.400'
'403':
description: Forbidden
schema:
type: object
required:
- ProblemDetails
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.403'
'404':
description: Not Found
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.404'
put:
description: 'This method activates, de-activates or updates a traffic rule.'
operationId: ApplicationsDnsRule_PUT
produces:
- application/json
parameters:
- $ref: '#/parameters/Body.DnsRule'
tags:
- dnsRules
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'
examples:
application/json:
DnsRule:
dnsRuleId: 'DnsRule1'
domainName: 'www.example.com'
ipAddressType: 'IP_V4'
ipAddress: '146.241.7.3'
ttl: 300
state: 'ACTIVE'
$ref: '#/components/responses/ApplicationsDnsRule.200'
'400':
description: Bad Request
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.400'
'403':
description: Forbidden
schema:
type: object
required:
- ProblemDetails
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.403'
'404':
description: Not Found
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.404'
'412':
description: Precondition Failed
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.412'
requestBody:
$ref: '#/components/requestBodies/ApplicationsDnsRule'
'/applications/{appInstanceId}/subscriptions':
parameters:
- $ref: '#/parameters/Path.AppInstanceId'
- $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
produces:
- application/json
tags:
- subscriptions
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'
$ref: '#/components/responses/ApplicationsSubscriptions.200'
'400':
description: Bad Request
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.400'
'403':
description: Forbidden
schema:
type: object
required:
- ProblemDetails
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.403'
'404':
description: Not Found
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.404'
post:
description: >-
The POST method may be used to create a new subscription. One example
......@@ -344,768 +108,232 @@ paths:
availability notifications. Upon success, the response contains entity
body describing the created subscription.
operationId: ApplicationsSubscriptions_POST
produces:
- application/json
parameters:
- $ref: '#/parameters/Body.AppTerminationNotificationSubscription'
tags:
- subscriptions
responses:
'201':
description: >-
Entity body in the request contains a subscription to the mobile
edge service availability notifications that is to be created.
headers:
location:
description: The resource URI of the created resource
type: string
format: uri
schema:
type: object
properties:
AppTerminationNotificationSubscription:
$ref: '#/definitions/AppTerminationNotificationSubscription'
$ref: '#/components/responses/ApplicationsSubscriptions.201'
'400':
description: Bad Request
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.400'
'403':
description: Forbidden
schema:
type: object
required:
- ProblemDetails
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.403'
'404':
description: Not Found
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'/applications/{appInstanceId}/subscriptions/AppTerminationNotificationSubscription/{subscriptionId}':
$ref: '#/components/responses/Error.404'
requestBody:
$ref: '#/components/requestBodies/ApplicationsSubscriptions'
callbacks:
appTerminationNotification:
$ref: '#/components/callbacks/AppTerminationNotification'
serviceAvailabilityNotification:
$ref: '#/components/callbacks/ServiceAvailabilityNotification'
'/applications/{appInstanceId}/subscriptions/{subscriptionType}/{subscriptionId}':
parameters:
- $ref: '#/parameters/Path.AppInstanceId'
- $ref: '#/parameters/Path.SubscriptionId'
- $ref: '#/components/parameters/Path.AppInstanceId'
- $ref: '#/components/parameters/Path.SubscriptionType'
- $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: AppTerminationSubscription_GET
produces:
- application/json
operationId: ApplicationsSubscription_GET
tags:
- subscriptions
responses:
'200':
description: >-
Upon success, a response body containing the requested subscription
is returned.
schema:
type: object
properties:
AppTerminationNotificationSubscription:
$ref: '#/definitions/AppTerminationNotificationSubscription'
$ref: '#/components/responses/ApplicationsSubscription.200'
'400':
description: Bad Request
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.400'
'403':
description: Forbidden
schema:
type: object
required:
- ProblemDetails
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.403'
'404':
description: Not Found
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
delete:
description: >-
This method deletes a meMp1Subscription. This method is typically used
in "Unsubscribing from service availability event notifications"
procedure.
operationId: AppTerminationSubscription_DELETE
produces:
- application/json
responses:
'204':
description: No Content
'403':
description: Forbidden
schema:
type: object
required:
- ProblemDetails
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'404':
description: Not Found
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'/applications/{appInstanceId}/subscriptions/SerAvailabilityNotificationSubscription/{subscriptionId}':
parameters:
- $ref: '#/parameters/Path.AppInstanceId'
- $ref: '#/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: SerAvailabilitySubscription_GET
produces:
- application/json
responses:
'200':
description: >-
Upon success, a response body containing the requested subscription
is returned.
schema:
type: object
properties:
SerAvailabilityNotificationSubscription:
$ref: '#/definitions/SerAvailabilityNotificationSubscription'
'400':
description: Bad Request
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'403':
description: Forbidden
schema:
type: object
required:
- ProblemDetails
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'404':
description: Not Found
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.404'
delete:
description: >-
This method deletes a meMp1Subscription. This method is typically used
in "Unsubscribing from service availability event notifications"
procedure.
operationId: SerAvailabilitySubscription_DELETE
produces:
- application/json
operationId: ApplicationsSubscription_DELETE
tags:
- subscriptions
responses:
'204':
description: No Content
'403':
description: Forbidden
schema:
type: object
required:
- ProblemDetails
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.403'
'404':
description: Not Found
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
$ref: '#/components/responses/Error.404'
'/applications/{appInstanceId}/traffic_rules':
parameters:
- $ref: '#/parameters/Path.AppInstanceId'
- $ref: '#/components/parameters/Path.AppInstanceId'
get:
description: >-
This method retrieves information about all the traffic rules associated
with a mobile edge application instance.
operationId: ApplicationsTrafficRules_GET
produces:
- application/json
tags:
- trafficRules
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'
examples:
application/json:
- TrafficRule:
trafficRuleId: 'TrafficRule123'
serName: 'ExampleService'
filterType: 'FLOW'
priority: 1
trafficFilter:
- srcAddress:
- '192.168.2.0/24'
- '192.168.3.0/24'
dstAddress:
- '192.127.4.100/32'
dstPort:
- '80'
action: 'FORWARD_DECAPSULATED'
dstInterface:
interfaceType: 'IP'
dstIpAddress: '20.1.1.1'
state: 'ACTIVE'
$ref: '#/components/responses/ApplicationsTrafficRules.200'