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

Moving from Swagger 2.0 to OpenAPI 3.0

parents 7daaee41 ec6d7b0b
{
"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",
......@@ -7,210 +15,63 @@
"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"
"tags": [
{
"name": "trafficRules"
},
"Path.SubscriptionId": {
"name": "subscriptionId",
"description": "Represents a subscription to the notifications from the mobile edge platform.",
"in": "path",
"required": true,
"type": "string"
{
"name": "dnsRules"
},
"Path.ServiceId": {
"name": "serviceId",
"description": "Represents a mobile edge service instance.",
"in": "path",
"required": true,
"type": "string"
{
"name": "subscriptions"
},
"Path.TrafficRuleId": {
"name": "trafficRuleId",
"description": "Represents a traffic rule.",
"in": "path",
"required": true,
"type": "string"
{
"name": "services"
},
"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"
{
"name": "timing"
},
"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"
}
{
"name": "transports"
},
"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"
}
{
"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"
}
}
}
......@@ -218,1940 +79,1475 @@
"/applications/{appInstanceId}/dns_rules/{dnsRuleId}": {
"parameters": [
{
"$ref": "#/parameters/Path.AppInstanceId"
"$ref": "#/components/parameters/Path.AppInstanceId"
},
{
"$ref": "#/parameters/Path.DnsRuleId"
"$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 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/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"
}
}
"$ref": "#/components/responses/Error.404"
}
},
"requestBody": {
"$ref": "#/components/requestBodies/ApplicationsSubscriptions"
},
"callbacks": {
"appTerminationNotification": {
"$ref": "#/components/callbacks/AppTerminationNotification"
},
"serviceAvailabilityNotification": {
"$ref": "#/components/callbacks/ServiceAvailabilityNotification"
}
}
}
},
"/applications/{appInstanceId}/subscriptions/AppTerminationNotificationSubscription/{subscriptionId}": {
"/applications/{appInstanceId}/subscriptions/{subscriptionType}/{subscriptionId}": {
"parameters": [
{
"$ref": "#/parameters/Path.AppInstanceId"
"$ref": "#/components/parameters/Path.AppInstanceId"
},
{
"$ref": "#/components/parameters/Path.SubscriptionType"
},
{
"$ref": "#/parameters/Path.SubscriptionId"
"$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",