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": { "info": {
"title": "Mp1 API", "title": "Mp1 API",
"version": "1.1.1", "version": "1.1.1",
...@@ -7,210 +15,63 @@ ...@@ -7,210 +15,63 @@
"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": "http://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/01.01.01_60/gs_mec011v010101p.pdf" "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", "tags": [
"basePath": "/exampleAPI/mp1/v1/", {
"schemes": [ "name": "trafficRules"
"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", "name": "dnsRules"
"description": "Represents a subscription to the notifications from the mobile edge platform.",
"in": "path",
"required": true,
"type": "string"
}, },
"Path.ServiceId": { {
"name": "serviceId", "name": "subscriptions"
"description": "Represents a mobile edge service instance.",
"in": "path",
"required": true,
"type": "string"
}, },
"Path.TrafficRuleId": { {
"name": "trafficRuleId", "name": "services"
"description": "Represents a traffic rule.",
"in": "path",
"required": true,
"type": "string"
}, },
"Query.Ser_category_id": { {
"name": "ser_category_id", "name": "timing"
"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", "name": "transports"
"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", "name": "callbacks"
"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": "This method retrieves information about all the DNS rules associated with a mobile edge application instance.", "description": "This method retrieves information about all the DNS rules associated with a mobile edge application instance.",
"operationId": "ApplicationsDnsRules_GET", "operationId": "ApplicationsDnsRules_GET",
"produces": [ "tags": [
"application/json" "trafficRules"
], ],
"responses": { "responses": {
"200": { "200": {
"description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", "$ref": "#/components/responses/ApplicationsDnsRules.200"
"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"
}
}
}
} }
} }
} }
...@@ -218,1940 +79,1475 @@ ...@@ -218,1940 +79,1475 @@
"/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": "This method retrieves information about a DNS rule associated with a mobile edge application instance.", "description": "This method retrieves information about a DNS rule associated with a mobile edge application instance.",
"operationId": "ApplicationsDnsRule_GET", "operationId": "ApplicationsDnsRule_GET",
"produces": [ "tags": [
"application/json" "dnsRules"
], ],
"responses": { "responses": {
"200": { "200": {
"description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", "$ref": "#/components/responses/ApplicationsDnsRule.200"
"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": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", "$ref": "#/components/responses/ApplicationsDnsRule.200"
"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": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
} }
},
"requestBody": {
"$ref": "#/components/requestBodies/ApplicationsDnsRule"
} }
} }
}, },
"/applications/{appInstanceId}/subscriptions": { "/applications/{appInstanceId}/subscriptions": {
"parameters": [ "parameters": [
{ {
"$ref": "#/parameters/Path.AppInstanceId" "$ref": "#/components/parameters/Path.AppInstanceId"
} }
], ],
"get": { "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.", "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", "operationId": "ApplicationsSubscriptions_GET",
"produces": [ "tags": [
"application/json" "subscriptions"
], ],
"responses": { "responses": {
"200": { "200": {
"description": "Upon success, a response body containing the list of links to the requested subscriptions is returned.", "$ref": "#/components/responses/ApplicationsSubscriptions.200"
"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": "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.", "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", "operationId": "ApplicationsSubscriptions_POST",
"produces": [ "tags": [
"application/json" "subscriptions"
],
"parameters": [
{
"$ref": "#/parameters/Body.AppTerminationNotificationSubscription"
}
], ],
"responses": { "responses": {
"201": { "201": {
"description": "Entity body in the request contains a subscription to the mobile edge service availability notifications that is to be created.", "$ref": "#/components/responses/ApplicationsSubscriptions.201"
"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": {