{ "type": "array", "objects": { "description": "This type represents the general information of a MEC service.", "type": "object", "required": [ "id", "name", "type", "protocol", "version", "endpoint", "security" ], "properties": { "id": { "description": "The identifier of this transport", "type": "string", "example": "TransId12345" }, "name": { "description": "The name of this transport", "type": "string", "example": "REST" }, "description": { "description": "Human-readable description of this transport", "type": "string", "example": "REST API" }, "type": { "description": "The enumeration TransportType represents types of transports", "type": "string", "enum": [ "REST_HTTP", "MB_TOPIC_BASED", "MB_ROUTING", "MB_PUBSUB", "RPC", "RPC_STREAMING", "WEBSOCKET" ], "example": "REST_HTTP" }, "protocol": { "description": "The name of the protocol used. Shall be set to HTTP for a REST API.", "type": "string", "example": "HTTP" }, "version": { "description": "The version of the protocol used", "type": "string", "example": "2.0" }, "endpoint": { "description": "This type represents information about a transport endpoint", "type": "object", "oneOf": [ { "description": "Entry point information of the service as string, formatted according to URI syntax", "type": "object", "required": [ "uris" ], "properties": { "uris": { "type": "array", "minItems": 0, "items": { "description": "Entry point information of the service", "type": "string", "format": "uri", "example": "/mecSerMgmtApi/service/EntryPoint" } } } }, { "description": "Entry point information of the service as one or more pairs of IP address and port", "type": "object", "required": [ "addresses" ], "properties": { "addresses": { "type": "array", "minItems": 0, "items": { "description": "A IP address and port pair", "type": "object", "required": [ "host", "port" ], "properties": { "host": { "description": "Host portion of the address", "type": "string", "example": "192.0.2.0" }, "port": { "description": "Port portion of the address", "type": "integer", "format": "uint32", "example": 8080 } } } } } }, { "description": "Entry point information of the service in a format defined by an implementation, or in an external specification.", "type": "object", "required": [ "alternative" ], "properties": { "alternative": { "type": "object" } } } ] }, "security": { "description": "This type represents security information related to a transport", "type": "object", "properties": { "oAuth2Info": { "description": "Parameters related to use of OAuth 2.0", "required": [ "grantTypes", "tokenEndpoint" ], "properties": { "grantTypes": { "description": "List of supported OAuth 2.0 grant types.", "type": "array", "minItems": 1, "maxItems": 4, "items": { "description": "OAuth 2.0 grant type", "type": "string", "enum": [ "OAUTH2_AUTHORIZATION_CODE", "OAUTH2_IMPLICIT_GRANT", "OAUTH2_RESOURCE_OWNER", "OAUTH2_CLIENT_CREDENTIALS" ], "example": "OAUTH2_CLIENT_CREDENTIALS" } }, "tokenEndpoint": { "description": "The token endpoint", "type": "string", "format": "uri", "example": "/mecSerMgmtApi/security/TokenEndPoint" } }, "type": "object" } } }, "implSpecificInfo": { "description": "Additional implementation specific details of the transport", "type": "object" } } } }