MecServiceMgmtApi.json 86.8 KB
Newer Older
        "properties": {
          "href": {
            "type": "string",
            "description": "URI referring to a resource",
            "examples": [
              "/mecSerMgmtApi/example"
            ]
            "type": "string",
            "description": "The value shall be se to SerAvailabilityNotificationSubscription."
        },
        "description": "A link to a subscription."
      },
      "MecServiceMgmtApiSubscriptionLinkList": {
        "title": "MecServiceMgmtApiSubscriptionLinkList",
        "type": "object",
        "properties": {
          "_links": {
            "$ref": "#/components/schemas/MecServiceMgmtApiSubscriptionLinkList.Links"
          }
        },
        "description": "This type represents a list of links related to currently existing subscriptions for a MEC application instance. This information is returned when sending a request to receive current subscriptions."
      },
      "ProblemDetails": {
        "title": "ProblemDetails",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "A URI reference according to IETF RFC 3986 that identifies the problem type"
            "type": "string",
            "description": "A short, human-readable summary of the problem type"
            "type": "integer",
            "description": "The HTTP status code for this occurrence of the problem",
            "contentEncoding": "int32"
            "type": "string",
            "description": "A human-readable explanation specific to this occurrence of the problem"
            "type": "string",
            "description": "A URI reference that identifies the specific occurrence of the problem"
kharimza's avatar
kharimza committed
      "SecurityInfo.OAuth2Info.GrantType": {
        "title": "SecurityInfo.OAuth2Info.GrantType",
        "enum": [
          "OAUTH2_AUTHORIZATION_CODE",
          "OAUTH2_IMPLICIT_GRANT",
          "OAUTH2_RESOURCE_OWNER",
          "OAUTH2_CLIENT_CREDENTIALS"
        ],
        "type": "string",
        "description": "OAuth 2.0 grant type",
        "examples": [
          "OAUTH2_CLIENT_CREDENTIALS"
        ]
      },
      "SecurityInfo.OAuth2Info": {
        "title": "SecurityInfo.OAuth2Info",
        "required": [
          "grantTypes",
          "tokenEndpoint"
        ],
        "type": "object",
        "properties": {
          "grantTypes": {
            "maxItems": 4,
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SecurityInfo.OAuth2Info.GrantType"
            },
            "description": "List of supported OAuth 2.0 grant types."
            "type": "string",
            "description": "The token endpoint",
            "examples": [
              "/mecSerMgmtApi/security/TokenEndPoint"
            ]
        "description": "Parameters related to use of OAuth 2.0"
        "title": "SecurityInfo",
        "type": "object",
        "properties": {
          "oAuth2Info": {
            "$ref": "#/components/schemas/SecurityInfo.OAuth2Info"
          }
        },
        "description": "This type represents security information related to a transport"
        "title": "Self",
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/LinkType"
          }
        },
        "description": "Self-referring URI."
      },
      "SerAvailabilityNotificationSubscription": {
        "title": "SerAvailabilityNotificationSubscription",
        "required": [
          "subscriptionType",
          "callbackReference",
kharimza's avatar
kharimza committed
          "_links"
        "type": "object",
        "properties": {
          "subscriptionType": {
            "type": "string",
            "description": "Shall be set to SerAvailabilityNotificationSubscription.",
            "examples": [
              "SerAvailabilityNotificationSubscription"
            ]
          },
          "callbackReference": {
            "type": "string",
            "description": "URI selected by the MEC application instance to receive notifications on the subscribed MEC service availability information. This shall be included in both the request and the response."
          },
          "_links": {
            "$ref": "#/components/schemas/Self"
          },
          "filteringCriteria": {
kharimza's avatar
kharimza committed
            "$ref": "#/components/schemas/SerAvailabilityNotificationSubscription.FilteringCriteria"
          }
        }
      },
      "SerAvailabilityNotificationSubscription.FilteringCriteria": {
        "title": "SerAvailabilityNotificationSubscription.FilteringCriteria",
kharimza's avatar
kharimza committed
        "type": "object",
        "properties": {
          "serInstanceIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Identifiers of service instances about which to report events."
kharimza's avatar
kharimza committed
          },
          "serNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Names of services about which to report events."
kharimza's avatar
kharimza committed
          },
          "serCategories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CategoryRef"
            },
            "description": "Categories of services about which to report events."
kharimza's avatar
kharimza committed
          },
          "states": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceState"
            },
            "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."
kharimza's avatar
kharimza committed
          },
          "isLocal": {
            "type": "boolean",
            "description": "Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application.",
            "examples": [
              true
            ]
        },
        "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."
      },
      "ServiceAvailabilityNotification": {
        "title": "ServiceAvailabilityNotification",
        "required": [
          "notificationType",
kharimza's avatar
kharimza committed
          "serviceReferences",
        "type": "object",
        "properties": {
          "notificationType": {
            "type": "string",
            "description": "Shall be set to SerAvailabilityNotificationSubscription.",
            "examples": [
              "SerAvailabilityNotificationSubscription"
            ]
kharimza's avatar
kharimza committed
          "serviceReferences": {
            "type": "array",
            "items": {
kharimza's avatar
kharimza committed
              "$ref": "#/components/schemas/ServiceAvailabilityNotification.ServiceReferences"
            },
            "description": ""
          },
          "_links": {
            "$ref": "#/components/schemas/Subscription"
          }
        },
        "description": "This type represents the service availability information."
kharimza's avatar
kharimza committed
      "ServiceAvailabilityNotification.ServiceReferences": {
        "title": "ServiceAvailabilityNotification.ServiceReferences",
kharimza's avatar
kharimza committed
        "required": [
          "serName",
          "serInstanceId",
          "state",
          "changeType"
        ],
        "type": "object",
kharimza's avatar
kharimza committed
        "properties": {
          "link": {
            "$ref": "#/components/schemas/LinkType"
          },
          "serName": {
            "type": "string",
            "description": "The name of the service. This is how the service producing MEC application identifies the service instance it produces.",
            "examples": [
              "ExampleService"
            ]
kharimza's avatar
kharimza committed
          },
          "serInstanceId": {
            "type": "string",
            "description": "Identifier of the service instance assigned by the MEC platform.",
            "examples": [
              "ServiceInstance123"
            ]
kharimza's avatar
kharimza committed
          },
          "state": {
            "$ref": "#/components/schemas/ServiceState"
          },
          "changeType": {
            "$ref": "#/components/schemas/ServiceAvailabilityNotification.ChangeType"
          }
        },
        "description": "List of links to services whose availability has changed."
kharimza's avatar
kharimza committed
      },
      "ServiceAvailabilityNotification.ChangeType": {
        "title": "ServiceAvailabilityNotification.ChangeType",
kharimza's avatar
kharimza committed
        "enum": [
          "ADDED",
          "REMOVED",
          "STATE_CHANGED",
          "ATTRIBUTES_CHANGED"
        ],
        "type": "string",
        "description": "Type of the change. Valid values:\n  1. ADDED: The service was newly added.\n  2. REMOVED: The service was removed.\n  3. STATE_CHANGED: Only the state of the service was changed. \n  4. ATTRIBUTES_CHANGED: At least one attribute of the service other than state was changed. The change may or may not include changing the state.",
        "examples": [
          "ADDED"
kharimza's avatar
kharimza committed
        ]
      },
      "SerializerType": {
        "title": "SerializerType",
        "enum": [
          "JSON",
          "XML",
          "PROTOBUF3"
        ],
        "type": "string",
        "description": "The enumeration  represents types of serializers",
        "examples": [
          "JSON"
        ]
kharimza's avatar
kharimza committed
      "LocalityType": {
        "title": "LocalityType",
        "enum": [
          "MEC_SYSTEM",
          "MEC_HOST",
          "NFVI_POP",
          "ZONE",
          "ZONE_GROUP",
          "NFVI_NODE"
        ],
        "type": "string",
        "description": "The scope of locality as expressed by \"consumedLocalOnly\" and \"isLocal\". If absent, defaults to MEC_HOST",
        "examples": [
          "MEC_SYSTEM"
        ]
kharimza's avatar
kharimza committed
      "ServiceState": {
        "title": "ServiceState",
kharimza's avatar
kharimza committed
        "enum": [
          "ACTIVE",
        "type": "string",
        "description": "This enumeration defines the possible states of a service.",
        "examples": [
          "ACTIVE"
        ]
        "title": "ServiceInfo",
        "required": [
          "serName",
          "version",
          "state",
          "transportInfo",
          "serializer"
        ],
        "type": "object",
        "properties": {
          "serInstanceId": {
            "type": "string",
            "description": "Identifier of the service instance assigned by the MEC platform.",
            "examples": [
              "ServiceInstance123"
            ]
            "type": "string",
            "description": "The name of the service. This is how the service producing MEC application identifies the service instance it produces.",
            "examples": [
              "ExampleService"
            ]
          },
          "serCategory": {
            "$ref": "#/components/schemas/CategoryRef"
          },
          "version": {
            "type": "string",
            "description": "Service version",
            "examples": [
              "ServiceVersion1"
            ]
kharimza's avatar
kharimza committed
            "$ref": "#/components/schemas/ServiceState"
          },
          "transportInfo": {
            "$ref": "#/components/schemas/TransportInfo"
          },
          "serializer": {
kharimza's avatar
kharimza committed
            "$ref": "#/components/schemas/SerializerType"
          },
          "scopeOfLocality": {
kharimza's avatar
kharimza committed
            "$ref": "#/components/schemas/LocalityType"
          },
          "consumedLocalOnly": {
            "type": "boolean",
            "description": "Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this  service instance.",
            "examples": [
              false
            ]
            "type": "boolean",
            "description": "Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application.",
            "examples": [
              true
            ]
          },
          "livenessInterval": {
            "type": "integer",
            "description": "Interval (in seconds) between two consecutive \"heartbeat\" messages (see clause 8.2.10.3.3). If the service-producing application supports sending \"heartbeat\" messages, it shall include this attribute in the registration request. In this case, the application shall either set the value of this attribute to zero or shall use this attribute to propose a non-zero positive value for the liveness interval. If the application has provided this attribute in the request and the MEC platform requires \"heartbeat\" messages, the MEC platform shall return this attribute value in the HTTP responses. The MEC platform may use the value proposed in the request or may choose a different value. If the MEC platform does not require \"heartbeat\" messages for this service instance it shall omit the attribute in responses."
          },
          "_links": {
            "type": "object",
            "required": [
              "self"
            ],
            "properties": {
              "self": {
                "$ref": "#/components/schemas/LinkType"
              },
              "liveness": {
                "$ref": "#/components/schemas/LinkType"
              }
            }
        },
        "description": "This type represents the general information of a MEC service."
      "ServiceLivenessInfo": {
        "type": "object",
        "required": [
          "state",
          "timeStamp",
          "interval"
        ],
        "properties": {
          "state": {
            "$ref": "#/components/schemas/ServiceState"
          },
          "timeStamp": {
            "type": "object",
            "description": "The time when the last \"heartbeat\" message was received by MEC platform",
            "required": [
              "seconds",
              "nanoSeconds"
            ],
            "properties": {
              "seconds": {
                "type": "integer"
              },
              "nanoSeconds": {
                "type": "integer"
              }
            }
          },
          "interval": {
            "type": "integer",
            "description": "The interval (in seconds) between two consecutive \"heartbeat\" messages (see clause 8.2.10.3.3) that MEC platform has determined."
          }
        }
      },
      "ServiceLivenessUpdate": {
        "type": "object",
        "required": [
          "state"
        ],
        "properties": {
          "state": {
            "$ref": "#/components/schemas/ServiceState"
          }
        }
      },
      "Subscription": {
        "title": "Subscription",
        "required": [
          "subscription"
        ],
        "type": "object",
        "properties": {
          "subscription": {
            "$ref": "#/components/schemas/LinkType"
          }
        },
        "description": "A link to the related subscription"
        "title": "TransportInfo",
        "required": [
          "id",
          "name",
          "type",
          "protocol",
          "version",
          "endpoint",
          "security"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of this transport",
            "examples": [
              "TransId12345"
            ]
            "type": "string",
            "description": "The name of this transport",
            "examples": [
              "REST"
            ]
            "type": "string",
            "description": "Human-readable description of this transport",
            "examples": [
              "REST API"
            ]
kharimza's avatar
kharimza committed
            "$ref": "#/components/schemas/TransportType"
            "type": "string",
            "description": "The name of the protocol used. Shall be set to HTTP for a REST API.",
            "examples": [
              "HTTP"
            ]
            "type": "string",
            "description": "The version of the protocol used",
            "examples": [
              "2.0"
            ]
          },
          "endpoint": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/EndPointInfo.Uris"
              },
              {
                "$ref": "#/components/schemas/EndPointInfo.Addresses"
              },
              {
                "$ref": "#/components/schemas/EndPointInfo.Alternative"
              }
            ],
            "description": "This type represents information about a transport endpoint"
          },
          "security": {
            "$ref": "#/components/schemas/SecurityInfo"
          },
          "implSpecificInfo": {
            "type": "object",
            "description": "Additional implementation specific details of the transport"
        },
        "description": "This type represents the general information of a MEC service."
kharimza's avatar
kharimza committed
      "TransportType": {
        "title": "TransportType",
        "enum": [
          "REST_HTTP",
          "MB_TOPIC_BASED",
          "MB_ROUTING",
          "MB_PUBSUB",
          "RPC",
          "RPC_STREAMING",
          "WEBSOCKET"
        ],
        "type": "string",
        "description": "The enumeration TransportType represents types of transports",
        "examples": [
          "REST_HTTP"
        ]
      }
    },
    "requestBodies": {
      "ServiceAvailabilityNotification": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ServiceAvailabilityNotification"
            }
          }
        },
        "required": true
      }
    }
  },
  "security": [