## YAML Template.
##---
$schema: http://json-schema.org/draft-04/schema#
id: "/request/ble/peripheral/service_start"
related :
  - "/response/ble/peripheral/status"
  - "/response/ble/peripheral/characteristic_notify_read"
  - "/response/ble/peripheral/characteristic_notify_write"
  - "/response/ble/peripheral/descriptor_notify_read"
  - "/response/ble/peripheral/descriptor_notify_write"
description : "callback of external device connected"


type: object
required : [peripheral]
properties:
    peripheral :
        type : object
        required : [services]
        properties:
            services :
                type : array
                minItems : 1
                items :
                    type : object
                    required: [uuid]
                    additionalProperties: false
                    properties:
                        uuid : {$ref : "/uuid"}
                        characteristics :
                            type : array
                            minItems : 0
                            items :
                                type : object
                                required: [uuid]
                                additionalProperties: false
                                properties:
                                    uuid : {$ref : "/uuid"}
                                    data : {$ref : "/dataArray"}
                                    properties :
                                      type : array
                                      default : [read,write]
                                      items :
                                        type : string
                                        enum :
                                          - broadcast
                                          - read
                                          - write_without_response
                                          - write
                                          - notify
                                          - indicate
                                          - auth
                                          - extended_properties

                                    permissions :
                                      type : array
                                      default : [read,write]
                                      items :
                                        default : [read,write]
                                        type : string
                                        enum :
                                           - read
                                           - read_encrypted
                                           - read_encrypted_mitm
                                           - write
                                           - write_encrypted
                                           - write_encrypted_mitm
                                           - write_signed
                                           - write_signed_mitm

                                    descriptors :
                                        type : array
                                        minItems : 0
                                        items :
                                            type : object
                                            required: [uuid]
                                            additionalProperties: false
                                            properties:
                                                uuid : {$ref : "/uuid"}
                                                data : {$ref : "/dataArray"}
                                                permissions :
                                                  type : array
                                                  default : [read,write]
                                                  items :
                                                    default : [read,write]
                                                    type : string
                                                    enum :
                                                       - read
                                                       - read_encrypted
                                                       - read_encrypted_mitm
                                                       - write
                                                       - write_encrypted
                                                       - write_encrypted_mitm
                                                       - write_signed
                                                       - write_signed_mitm

