Commit 8292e1bf authored by Walter Featherstone's avatar Walter Featherstone
Browse files

Merge branch 'develop_v20a' into 'develop'

Updated to GS version 2.0.10

See merge request !5
parents 1ba59e80 aa2671ee
Pipeline #1306 passed with stage
in 0 seconds
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
], ],
"info": { "info": {
"title": "MEC Service Management API", "title": "MEC Service Management API",
"version": "2.0.9", "version": "2.0.10",
"description": "The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI", "description": "The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI",
"license": { "license": {
"name": "ETSI Forge copyright notice", "name": "ETSI Forge copyright notice",
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
} }
}, },
"externalDocs": { "externalDocs": {
"description": "ETSI GS MEC011 Application Enablement API, V2.0.9", "description": "ETSI GS MEC011 Application Enablement API, V2.0.10",
"url": "https://docbox.etsi.org/ISG/MEC/70-Draft/0011v211Plat.App.Enabl/MEC-0011v211Plat.App.Enablv209.zip" "url": "https://docbox.etsi.org/ISG/MEC/70-Draft/0011v211Plat.App.Enabl/MEC-0011v211Plat.App.Enablv2010.zip"
}, },
"tags": [ "tags": [
{ {
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
"$ref": "#/components/parameters/Query.Is_local" "$ref": "#/components/parameters/Query.Is_local"
}, },
{ {
"$ref": "#/components/parameters/Query.LocalityTypes" "$ref": "#/components/parameters/Query.LocalityType"
} }
], ],
"responses": { "responses": {
...@@ -142,7 +142,7 @@ ...@@ -142,7 +142,7 @@
"$ref": "#/components/parameters/Query.Is_local" "$ref": "#/components/parameters/Query.Is_local"
}, },
{ {
"$ref": "#/components/parameters/Query.LocalityTypes" "$ref": "#/components/parameters/Query.LocalityType"
} }
], ],
"responses": { "responses": {
...@@ -422,6 +422,14 @@ ...@@ -422,6 +422,14 @@
} }
} }
}, },
"CategoryRefs": {
"description": "Categories of services about which to report events.",
"type": "array",
"minItems": 0,
"items": {
"type": "string"
}
},
"EndPointInfo.Address.Host": { "EndPointInfo.Address.Host": {
"description": "Host portion of the address", "description": "Host portion of the address",
"type": "string", "type": "string",
...@@ -605,8 +613,8 @@ ...@@ -605,8 +613,8 @@
"format": "uri", "format": "uri",
"description": "A URI reference according to IETF RFC 3986 that identifies the problem type" "description": "A URI reference according to IETF RFC 3986 that identifies the problem type"
}, },
"SecurityInfo.OAuth2Info.GrantTypes": { "SecurityInfo.OAuth2Info.GrantType": {
"description": "List of supported OAuth 2.0 grant types", "description": "OAuth 2.0 grant type",
"type": "string", "type": "string",
"enum": [ "enum": [
"OAUTH2_AUTHORIZATION_CODE", "OAUTH2_AUTHORIZATION_CODE",
...@@ -616,6 +624,15 @@ ...@@ -616,6 +624,15 @@
], ],
"example": "OAUTH2_CLIENT_CREDENTIALS" "example": "OAUTH2_CLIENT_CREDENTIALS"
}, },
"SecurityInfo.OAuth2Info.GrantTypes": {
"description": "List of supported OAuth 2.0 grant types.",
"type": "array",
"minItems": 1,
"maxItems": 4,
"items": {
"$ref": "#/components/schemas/SecurityInfo.OAuth2Info.GrantType"
}
},
"SecurityInfo.OAuth2Info.TokenEndpoint": { "SecurityInfo.OAuth2Info.TokenEndpoint": {
"description": "The token endpoint", "description": "The token endpoint",
"type": "string", "type": "string",
...@@ -630,13 +647,7 @@ ...@@ -630,13 +647,7 @@
], ],
"properties": { "properties": {
"grantTypes": { "grantTypes": {
"description": "List of supported OAuth 2.0 grant types.", "$ref": "#/components/schemas/SecurityInfo.OAuth2Info.GrantTypes"
"type": "array",
"minItems": 1,
"maxItems": 4,
"items": {
"$ref": "#/components/schemas/SecurityInfo.OAuth2Info.GrantTypes"
}
}, },
"tokenEndpoint": { "tokenEndpoint": {
"$ref": "#/components/schemas/SecurityInfo.OAuth2Info.TokenEndpoint" "$ref": "#/components/schemas/SecurityInfo.OAuth2Info.TokenEndpoint"
...@@ -677,8 +688,7 @@ ...@@ -677,8 +688,7 @@
"required": [ "required": [
"subscriptionType", "subscriptionType",
"callbackReference", "callbackReference",
"_links", "_links"
"filteringCriteria"
], ],
"properties": { "properties": {
"subscriptionType": { "subscriptionType": {
...@@ -691,7 +701,35 @@ ...@@ -691,7 +701,35 @@
"$ref": "#/components/schemas/Self" "$ref": "#/components/schemas/Self"
}, },
"filteringCriteria": { "filteringCriteria": {
"$ref": "#/components/schemas/ServiceInfo" "$ref": "#/components/schemas/SerAvailabilityNotificationSubscription.FilteringCriteria"
}
}
},
"SerAvailabilityNotificationSubscription.FilteringCriteria": {
"description": "Filtering criteria to match services for which events are requested to be reported. If absent, matches all services. All child attributes are combined with the logical \"AND\" operation.",
"type": "object",
"not": {
"required": [
"serInstanceIds",
"serNames",
"serCategories"
]
},
"properties": {
"serInstanceIds": {
"$ref": "#/components/schemas/SerInstanceIds"
},
"serNames": {
"$ref": "#/components/schemas/SerNames"
},
"serCategories": {
"$ref": "#/components/schemas/CategoryRefs"
},
"states": {
"$ref": "#/components/schemas/ServiceStates"
},
"isLocal": {
"$ref": "#/components/schemas/ServiceInfo.IsLocal"
} }
} }
}, },
...@@ -705,17 +743,17 @@ ...@@ -705,17 +743,17 @@
"type": "object", "type": "object",
"required": [ "required": [
"notificationType", "notificationType",
"services", "serviceReferences",
"_links" "_links"
], ],
"properties": { "properties": {
"notificationType": { "notificationType": {
"$ref": "#/components/schemas/SerAvailabilityNotificationSubscription.SubscriptionType" "$ref": "#/components/schemas/SerAvailabilityNotificationSubscription.SubscriptionType"
}, },
"services": { "serviceReferences": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/components/schemas/ServiceInfo" "$ref": "#/components/schemas/ServiceAvailabilityNotification.ServiceReferences"
} }
}, },
"_links": { "_links": {
...@@ -723,8 +761,45 @@ ...@@ -723,8 +761,45 @@
} }
} }
}, },
"SerializerTypes": { "ServiceAvailabilityNotification.ServiceReferences": {
"description": "The enumeration SerializerTypes represents types of serializers", "description": "List of links to services whose availability has changed.",
"type": "object",
"required": [
"serName",
"serInstanceId",
"state",
"changeType"
],
"properties": {
"link": {
"$ref": "#/components/schemas/LinkType"
},
"serName": {
"$ref": "#/components/schemas/ServiceInfo.SerName"
},
"serInstanceId": {
"$ref": "#/components/schemas/ServiceInfo.SerInstanceId"
},
"state": {
"$ref": "#/components/schemas/ServiceState"
},
"changeType": {
"$ref": "#/components/schemas/ServiceAvailabilityNotification.ChangeType"
}
}
},
"ServiceAvailabilityNotification.ChangeType": {
"description": "Type of the change. Valid values:\n ADDED: The service was newly added.\n REMOVED: The service was removed.\n STATE_CHANGED: Only the state of the service was changed. \n ATTRIBUTES_CHANGED: At least one attribute of the service other than state was changed. The change may or may not include changing the state.",
"type": "string",
"enum": [
"ADDED",
"REMOVED",
"STATE_CHANGED",
"ATTRIBUTES_CHANGED"
]
},
"SerializerType": {
"description": "The enumeration represents types of serializers",
"type": "string", "type": "string",
"enum": [ "enum": [
"JSON", "JSON",
...@@ -733,7 +808,7 @@ ...@@ -733,7 +808,7 @@
], ],
"example": "JSON" "example": "JSON"
}, },
"LocalityTypes": { "LocalityType": {
"description": "The scope of locality as expressed by \"consumedLocalOnly\" and \"isLocal\". If absent, defaults to MEC_HOST", "description": "The scope of locality as expressed by \"consumedLocalOnly\" and \"isLocal\". If absent, defaults to MEC_HOST",
"type": "string", "type": "string",
"enum": [ "enum": [
...@@ -746,25 +821,49 @@ ...@@ -746,25 +821,49 @@
], ],
"example": "MEC_SYSTEM" "example": "MEC_SYSTEM"
}, },
"ServiceState": {
"description": "This enumeration defines the possible states of a service.",
"type": "string",
"enum": [
"ACTIVE",
"INACTIVE"
],
"example": "ACTIVE"
},
"ServiceStates": {
"description": "States of the services about which to report events. If the event is a state change, this filter represents the state after the change.",
"type": "array",
"minItems": 0,
"items": {
"$ref": "#/components/schemas/ServiceState"
}
},
"ServiceInfo.SerInstanceId": { "ServiceInfo.SerInstanceId": {
"description": "Identifier of the service instance assigned by the MEC platform.", "description": "Identifier of the service instance assigned by the MEC platform.",
"type": "string", "type": "string",
"readOnly": true, "readOnly": true,
"example": "ServiceInstance123" "example": "ServiceInstance123"
}, },
"SerInstanceIds": {
"description": "Identifiers of service instances about which to report events.",
"type": "array",
"minItems": 0,
"items": {
"$ref": "#/components/schemas/ServiceInfo.SerInstanceId"
}
},
"ServiceInfo.SerName": { "ServiceInfo.SerName": {
"description": "The name of the service. This is how the service producing MEC application identifies the service instance it produces.", "description": "The name of the service. This is how the service producing MEC application identifies the service instance it produces.",
"type": "string", "type": "string",
"example": "ExampleService" "example": "ExampleService"
}, },
"ServiceInfo.State": { "SerNames": {
"description": "Contains the state", "description": "Names of services about which to report events.",
"type": "string", "type": "array",
"enum": [ "minItems": 0,
"ACTIVE", "items": {
"INACTIVE" "$ref": "#/components/schemas/ServiceInfo.SerName"
], }
"example": "ACTIVE"
}, },
"ServiceInfo.TransportId": { "ServiceInfo.TransportId": {
"description": "Identifier of the platform-provided transport to be used by the service. Valid identifiers may be obtained using the \"Transport information query\" procedure. May be present in POST requests to signal the use of a platform-provided transport for the service, and shall be absent otherwise.", "description": "Identifier of the platform-provided transport to be used by the service. Valid identifiers may be obtained using the \"Transport information query\" procedure. May be present in POST requests to signal the use of a platform-provided transport for the service, and shall be absent otherwise.",
...@@ -822,7 +921,7 @@ ...@@ -822,7 +921,7 @@
"$ref": "#/components/schemas/ServiceInfo.Version" "$ref": "#/components/schemas/ServiceInfo.Version"
}, },
"state": { "state": {
"$ref": "#/components/schemas/ServiceInfo.State" "$ref": "#/components/schemas/ServiceState"
}, },
"transportId": { "transportId": {
"$ref": "#/components/schemas/ServiceInfo.TransportId" "$ref": "#/components/schemas/ServiceInfo.TransportId"
...@@ -831,10 +930,10 @@ ...@@ -831,10 +930,10 @@
"$ref": "#/components/schemas/TransportInfo" "$ref": "#/components/schemas/TransportInfo"
}, },
"serializer": { "serializer": {
"$ref": "#/components/schemas/SerializerTypes" "$ref": "#/components/schemas/SerializerType"
}, },
"scopeOfLocality": { "scopeOfLocality": {
"$ref": "#/components/schemas/LocalityTypes" "$ref": "#/components/schemas/LocalityType"
}, },
"consumedLocalOnly": { "consumedLocalOnly": {
"$ref": "#/components/schemas/ServiceInfo.ConsumedLocalOnly" "$ref": "#/components/schemas/ServiceInfo.ConsumedLocalOnly"
...@@ -868,16 +967,16 @@ ...@@ -868,16 +967,16 @@
"$ref": "#/components/schemas/ServiceInfo.Version" "$ref": "#/components/schemas/ServiceInfo.Version"
}, },
"state": { "state": {
"$ref": "#/components/schemas/ServiceInfo.State" "$ref": "#/components/schemas/ServiceState"
}, },
"transportInfo": { "transportInfo": {
"$ref": "#/components/schemas/TransportInfo" "$ref": "#/components/schemas/TransportInfo"
}, },
"serializer": { "serializer": {
"$ref": "#/components/schemas/SerializerTypes" "$ref": "#/components/schemas/SerializerType"
}, },
"scopeOfLocality": { "scopeOfLocality": {
"$ref": "#/components/schemas/LocalityTypes" "$ref": "#/components/schemas/LocalityType"
}, },
"consumedLocalOnly": { "consumedLocalOnly": {
"$ref": "#/components/schemas/ServiceInfo.ConsumedLocalOnly" "$ref": "#/components/schemas/ServiceInfo.ConsumedLocalOnly"
...@@ -951,7 +1050,7 @@ ...@@ -951,7 +1050,7 @@
"$ref": "#/components/schemas/TransportInfo.Description" "$ref": "#/components/schemas/TransportInfo.Description"
}, },
"type": { "type": {
"$ref": "#/components/schemas/TransportTypes" "$ref": "#/components/schemas/TransportType"
}, },
"protocol": { "protocol": {
"$ref": "#/components/schemas/TransportInfo.Protocol" "$ref": "#/components/schemas/TransportInfo.Protocol"
...@@ -982,8 +1081,8 @@ ...@@ -982,8 +1081,8 @@
} }
} }
}, },
"TransportTypes": { "TransportType": {
"description": "The enumeration TransportTypes represents types of transports", "description": "The enumeration TransportType represents types of transports",
"type": "string", "type": "string",
"enum": [ "enum": [
"REST_HTTP", "REST_HTTP",
...@@ -1058,7 +1157,7 @@ ...@@ -1058,7 +1157,7 @@
} }
} }
}, },
"Query.LocalityTypes": { "Query.LocalityType": {
"name": "scope_of_locality", "name": "scope_of_locality",
"description": "A MEC application instance may use scope_of_locality as an input parameter to query the availability of a list of MEC service instances with a certain scope of locality.", "description": "A MEC application instance may use scope_of_locality as an input parameter to query the availability of a list of MEC service instances with a certain scope of locality.",
"in": "query", "in": "query",
......
...@@ -4,7 +4,7 @@ servers: ...@@ -4,7 +4,7 @@ servers:
- url: 'https://127.0.0.1:8081/mec_service_mgmt/v1' - url: 'https://127.0.0.1:8081/mec_service_mgmt/v1'
info: info:
title: MEC Service Management API title: MEC Service Management API
version: 2.0.9 version: 2.0.10
description: The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI description: The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI
license: license:
name: ETSI Forge copyright notice name: ETSI Forge copyright notice
...@@ -12,9 +12,9 @@ info: ...@@ -12,9 +12,9 @@ info:
contact: contact:
email: cti_support@etsi.org email: cti_support@etsi.org
externalDocs: externalDocs:
description: 'ETSI GS MEC011 Application Enablement API, V2.0.9' description: 'ETSI GS MEC011 Application Enablement API, V2.0.10'
url: >- url: >-
https://docbox.etsi.org/ISG/MEC/70-Draft/0011v211Plat.App.Enabl/MEC-0011v211Plat.App.Enablv209.zip https://docbox.etsi.org/ISG/MEC/70-Draft/0011v211Plat.App.Enabl/MEC-0011v211Plat.App.Enablv2010.zip
tags: tags:
- name: appSubscriptions - name: appSubscriptions
- name: appServices - name: appServices
...@@ -36,7 +36,7 @@ paths: ...@@ -36,7 +36,7 @@ paths:
- $ref: '#/components/parameters/Query.Ser_category_id' - $ref: '#/components/parameters/Query.Ser_category_id'
- $ref: '#/components/parameters/Query.Consumed_local_only' - $ref: '#/components/parameters/Query.Consumed_local_only'
- $ref: '#/components/parameters/Query.Is_local' - $ref: '#/components/parameters/Query.Is_local'
- $ref: '#/components/parameters/Query.LocalityTypes' - $ref: '#/components/parameters/Query.LocalityType'
responses: responses:
'200': '200':
$ref: '#/components/responses/Services.200' $ref: '#/components/responses/Services.200'
...@@ -81,7 +81,7 @@ paths: ...@@ -81,7 +81,7 @@ paths:
- $ref: '#/components/parameters/Query.Ser_category_id' - $ref: '#/components/parameters/Query.Ser_category_id'
- $ref: '#/components/parameters/Query.Consumed_local_only' - $ref: '#/components/parameters/Query.Consumed_local_only'
- $ref: '#/components/parameters/Query.Is_local' - $ref: '#/components/parameters/Query.Is_local'
- $ref: '#/components/parameters/Query.LocalityTypes' - $ref: '#/components/parameters/Query.LocalityType'
responses: responses:
'200': '200':
$ref: '#/components/responses/Services.200' $ref: '#/components/responses/Services.200'
...@@ -283,6 +283,12 @@ components: ...@@ -283,6 +283,12 @@ components:
$ref: '#/components/schemas/CategoryRef.Name' $ref: '#/components/schemas/CategoryRef.Name'
version: version:
$ref: '#/components/schemas/CategoryRef.Version' $ref: '#/components/schemas/CategoryRef.Version'
CategoryRefs:
description: Categories of services about which to report events.
type: array
minItems: 0
items:
type: string
EndPointInfo.Address.Host: EndPointInfo.Address.Host:
description: Host portion of the address description: Host portion of the address
type: string type: string
...@@ -425,8 +431,8 @@ components: ...@@ -425,8 +431,8 @@ components:
description: >- description: >-
A URI reference according to IETF RFC 3986 that identifies the problem A URI reference according to IETF RFC 3986 that identifies the problem
type type
SecurityInfo.OAuth2Info.GrantTypes: SecurityInfo.OAuth2Info.GrantType:
description: List of supported OAuth 2.0 grant types description: OAuth 2.0 grant type
type: string type: string
enum: enum:
- OAUTH2_AUTHORIZATION_CODE - OAUTH2_AUTHORIZATION_CODE
...@@ -434,6 +440,14 @@ components: ...@@ -434,6 +440,14 @@ components:
- OAUTH2_RESOURCE_OWNER - OAUTH2_RESOURCE_OWNER
- OAUTH2_CLIENT_CREDENTIALS - OAUTH2_CLIENT_CREDENTIALS
example: 'OAUTH2_CLIENT_CREDENTIALS' example: 'OAUTH2_CLIENT_CREDENTIALS'
SecurityInfo.OAuth2Info.GrantTypes:
description: >-
List of supported OAuth 2.0 grant types.
type: array
minItems: 1
maxItems: 4
items:
$ref: '#/components/schemas/SecurityInfo.OAuth2Info.GrantType'
SecurityInfo.OAuth2Info.TokenEndpoint: SecurityInfo.OAuth2Info.TokenEndpoint:
description: The token endpoint description: The token endpoint
type: string type: string
...@@ -446,13 +460,7 @@ components: ...@@ -446,13 +460,7 @@ components:
- tokenEndpoint - tokenEndpoint
properties: properties:
grantTypes: grantTypes:
description: >- $ref: '#/components/schemas/SecurityInfo.OAuth2Info.GrantTypes'
List of supported OAuth 2.0 grant types.
type: array
minItems: 1
maxItems: 4
items:
$ref: '#/components/schemas/SecurityInfo.OAuth2Info.GrantTypes'
tokenEndpoint: tokenEndpoint:
$ref: '#/components/schemas/SecurityInfo.OAuth2Info.TokenEndpoint' $ref: '#/components/schemas/SecurityInfo.OAuth2Info.TokenEndpoint'
type: object type: object
...@@ -489,7 +497,6 @@ components: ...@@ -489,7 +497,6 @@ components:
- subscriptionType - subscriptionType
- callbackReference - callbackReference
- _links - _links
- filteringCriteria
properties: properties:
subscriptionType: subscriptionType:
$ref: >- $ref: >-
...@@ -500,7 +507,27 @@ components: ...@@ -500,7 +507,27 @@ components:
_links: _links:
$ref: '#/components/schemas/Self' $ref: '#/components/schemas/Self'
filteringCriteria: filteringCriteria:
$ref: '#/components/schemas/ServiceInfo' $ref: >-
#/components/schemas/SerAvailabilityNotificationSubscription.FilteringCriteria
SerAvailabilityNotificationSubscription.FilteringCriteria:
description: >-
Filtering criteria to match services for which events are requested to be reported.
If absent, matches all services. All child attributes are combined with the logical
"AND" operation.
type: object
not:
required: [serInstanceIds, serNames, serCategories]
properties:
serInstanceIds:
$ref: '#/components/schemas/SerInstanceIds'
serNames:
$ref: '#/components/schemas/SerNames'
serCategories:
$ref: '#/components/schemas/CategoryRefs'
states:
$ref: '#/components/schemas/ServiceStates'
isLocal:
$ref: '#/components/schemas/ServiceInfo.IsLocal'
SerAvailabilityNotificationSubscription.SubscriptionType: SerAvailabilityNotificationSubscription.SubscriptionType:
description: Shall be set to SerAvailabilityNotificationSubscription. description: Shall be set to SerAvailabilityNotificationSubscription.
type: string type: string
...@@ -511,27 +538,59 @@ components: ...@@ -511,27 +538,59 @@ components:
type: object