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: info:
title: Mp1 API title: Mp1 API
version: 1.1.1 version: 1.1.1
...@@ -6,337 +9,98 @@ info: ...@@ -6,337 +9,98 @@ info:
license: license:
name: ETSI Forge copyright notice name: ETSI Forge copyright notice
url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt' url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt'
contact:
email: cti_support@etsi.org
externalDocs: externalDocs:
description: 'ETSI GS MEC011 Application Enablement API, V1.1.1' description: 'ETSI GS MEC011 Application Enablement API, V1.1.1'
url: >- url: >-
http://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/01.01.01_60/gs_mec011v010101p.pdf http://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/01.01.01_60/gs_mec011v010101p.pdf
host: '127.0.0.1:8081' tags:
basePath: /exampleAPI/mp1/v1/ - name: trafficRules
schemes: - name: dnsRules
- http - name: subscriptions
- https - name: services
consumes: - name: timing
- application/json - name: transports
produces: - name: callbacks
- 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
paths: paths:
'/applications/{appInstanceId}/dns_rules': '/applications/{appInstanceId}/dns_rules':
parameters: parameters:
- $ref: '#/parameters/Path.AppInstanceId' - $ref: '#/components/parameters/Path.AppInstanceId'
get: get:
description: >- description: >-
This method retrieves information about all the DNS rules associated This method retrieves information about all the DNS rules associated
with a mobile edge application instance. with a mobile edge application instance.
operationId: ApplicationsDnsRules_GET operationId: ApplicationsDnsRules_GET
produces: tags:
- application/json - trafficRules
responses: responses:
'200': '200':
description: >- $ref: '#/components/responses/ApplicationsDnsRules.200'
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'
'400': '400':
description: Bad Request $ref: '#/components/responses/Error.400'
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'403': '403':
description: Forbidden $ref: '#/components/responses/Error.403'
schema:
type: object
required:
- ProblemDetails
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'404': '404':
description: Not Found $ref: '#/components/responses/Error.404'
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'/applications/{appInstanceId}/dns_rules/{dnsRuleId}': '/applications/{appInstanceId}/dns_rules/{dnsRuleId}':
parameters: parameters:
- $ref: '#/parameters/Path.AppInstanceId' - $ref: '#/components/parameters/Path.AppInstanceId'
- $ref: '#/parameters/Path.DnsRuleId' - $ref: '#/components/parameters/Path.DnsRuleId'
get: get:
description: >- description: >-
This method retrieves information about a DNS rule associated with a This method retrieves information about a DNS rule associated with a
mobile edge application instance. mobile edge application instance.
operationId: ApplicationsDnsRule_GET operationId: ApplicationsDnsRule_GET
produces: tags:
- application/json - dnsRules
responses: responses:
'200': '200':
description: >- $ref: '#/components/responses/ApplicationsDnsRule.200'
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'
'400': '400':
description: Bad Request $ref: '#/components/responses/Error.400'
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'403': '403':
description: Forbidden $ref: '#/components/responses/Error.403'
schema:
type: object
required:
- ProblemDetails
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'404': '404':
description: Not Found $ref: '#/components/responses/Error.404'
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
put: put:
description: 'This method activates, de-activates or updates a traffic rule.' description: 'This method activates, de-activates or updates a traffic rule.'
operationId: ApplicationsDnsRule_PUT operationId: ApplicationsDnsRule_PUT
produces: tags:
- application/json - dnsRules
parameters:
- $ref: '#/parameters/Body.DnsRule'
responses: responses:
'200': '200':
description: >- $ref: '#/components/responses/ApplicationsDnsRule.200'
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'
'400': '400':
description: Bad Request $ref: '#/components/responses/Error.400'
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'403': '403':
description: Forbidden $ref: '#/components/responses/Error.403'
schema:
type: object
required:
- ProblemDetails
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'404': '404':
description: Not Found $ref: '#/components/responses/Error.404'
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'412': '412':
description: Precondition Failed $ref: '#/components/responses/Error.412'
schema: requestBody:
type: object $ref: '#/components/requestBodies/ApplicationsDnsRule'
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'/applications/{appInstanceId}/subscriptions': '/applications/{appInstanceId}/subscriptions':
parameters: parameters:
- $ref: '#/parameters/Path.AppInstanceId' - $ref: '#/components/parameters/Path.AppInstanceId'
get: get:
description: >- description: >-
The GET method may be used to request information about all The GET method may be used to request information about all
subscriptions for this requestor. Upon success, the response contains subscriptions for this requestor. Upon success, the response contains
entity body with all the subscriptions for the requestor. entity body with all the subscriptions for the requestor.
operationId: ApplicationsSubscriptions_GET operationId: ApplicationsSubscriptions_GET
produces: tags:
- application/json - subscriptions
responses: responses:
'200': '200':
description: >- $ref: '#/components/responses/ApplicationsSubscriptions.200'
Upon success, a response body containing the list of links to the
requested subscriptions is returned.
schema:
type: object
properties:
Mp1SubscriptionLinkList:
$ref: '#/definitions/Mp1SubscriptionLinkList'
'400': '400':
description: Bad Request $ref: '#/components/responses/Error.400'
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'403': '403':
description: Forbidden $ref: '#/components/responses/Error.403'
schema:
type: object
required:
- ProblemDetails
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'404': '404':
description: Not Found $ref: '#/components/responses/Error.404'
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
post: post:
description: >- description: >-
The POST method may be used to create a new subscription. One example The POST method may be used to create a new subscription. One example
...@@ -344,768 +108,232 @@ paths: ...@@ -344,768 +108,232 @@ paths:
availability notifications. Upon success, the response contains entity availability notifications. Upon success, the response contains entity
body describing the created subscription. body describing the created subscription.
operationId: ApplicationsSubscriptions_POST operationId: ApplicationsSubscriptions_POST
produces: tags:
- application/json - subscriptions
parameters:
- $ref: '#/parameters/Body.AppTerminationNotificationSubscription'
responses: responses:
'201': '201':
description: >- $ref: '#/components/responses/ApplicationsSubscriptions.201'
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'
'400': '400':
description: Bad Request $ref: '#/components/responses/Error.400'
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'403': '403':
description: Forbidden $ref: '#/components/responses/Error.403'
schema:
type: object
required:
- ProblemDetails
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'404': '404':
description: Not Found $ref: '#/components/responses/Error.404'
schema: requestBody:
type: object $ref: '#/components/requestBodies/ApplicationsSubscriptions'
properties: callbacks:
ProblemDetails: appTerminationNotification:
$ref: '#/definitions/ProblemDetails' $ref: '#/components/callbacks/AppTerminationNotification'
'/applications/{appInstanceId}/subscriptions/AppTerminationNotificationSubscription/{subscriptionId}': serviceAvailabilityNotification:
$ref: '#/components/callbacks/ServiceAvailabilityNotification'
'/applications/{appInstanceId}/subscriptions/{subscriptionType}/{subscriptionId}':
parameters: parameters:
- $ref: '#/parameters/Path.AppInstanceId' - $ref: '#/components/parameters/Path.AppInstanceId'
- $ref: '#/parameters/Path.SubscriptionId' - $ref: '#/components/parameters/Path.SubscriptionType'
- $ref: '#/components/parameters/Path.SubscriptionId'
get: get:
description: >- description: >-
The GET method requests information about a subscription for this The GET method requests information about a subscription for this
requestor. Upon success, the response contains entity body with the requestor. Upon success, the response contains entity body with the
subscription for the requestor. subscription for the requestor.
operationId: AppTerminationSubscription_GET operationId: ApplicationsSubscription_GET
produces: tags:
- application/json - subscriptions
responses: responses:
'200': '200':
description: >- $ref: '#/components/responses/ApplicationsSubscription.200'
Upon success, a response body containing the requested subscription
is returned.
schema:
type: object
properties:
AppTerminationNotificationSubscription:
$ref: '#/definitions/AppTerminationNotificationSubscription'
'400': '400':
description: Bad Request $ref: '#/components/responses/Error.400'
schema:
type: object
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'403': '403':
description: Forbidden $ref: '#/components/responses/Error.403'
schema:
type: object
required:
- ProblemDetails
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'404': '404':
description: Not Found $ref: '#/components/responses/Error.404'
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'
delete: delete:
description: >- description: >-
This method deletes a meMp1Subscription. This method is typically used This method deletes a meMp1Subscription. This method is typically used
in "Unsubscribing from service availability event notifications" in "Unsubscribing from service availability event notifications"
procedure. procedure.
operationId: SerAvailabilitySubscription_DELETE operationId: ApplicationsSubscription_DELETE
produces: tags:
- application/json - subscriptions
responses: responses:
'204': '204':
description: No Content description: No Content
'403': '403':
description: Forbidden $ref: '#/components/responses/Error.403'
schema:
type: object
required:
- ProblemDetails
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
'404': '404':
description: Not Found $ref: '#/components/responses/Error.404'
schema:
type: object
properties: