## YAML Template.
##---
$schema: http://json-schema.org/draft-04/schema#
id: "/request/ioAnimation/init"
commandExample : {"io":{"animation":{"name":"animation-1","status":"loop","states":[{"duration":500,"state":{"io0":true}},{"duration":500,"state":{"io0":false}}]}}}


type: object
required : [animation]
properties:
    animation :
        type: object
        required : [name, status, states]
        additionalProperties: false
        properties:
            name :
                type: string
                description : "Animation name to use pause/resume"
                example : "animation-1"
                minLength: 1
                maxLength: 254

            repeat :
                type: integer
                description : "The limitation number of transitions of states"
                example : 1000
                minLength: 1
                maxLength: 4294967295
                default: undefined

            status :
                type: string
                default : loop
                enum :
                   - loop
                   - registrate

            states:
                type: array
                default : []
                items:
                    type : object
                    required : [duration, state]
                    additionalProperties: false
                    properties :
                        duration :
                            type: integer
                            description : "State duration time(ms)"
                            minimum : 0
                            maximum : 60000
                            example : 500
                        state :
                            type: [object, array]
                            description : "io/pwm commands."
                            filter : pass_all
                            example :
                              - {io0: true}
                              - [{io0: false}, {io0: true}]
#                       エラーがわかりにくくなるのでソースコードで実施
#                            additionalProperties: false
#                            patternProperties :
#                                "^io[0-9]$" : {$ref : "/request/io" }
#                                "^io1[0-1]$" : {$ref : "/request/io" }
#                                "^pwm[0-5]$" : {$ref : "/request/pwm" }



