{
    "name": "Lock",
    "status": "live",
    "attributes": {
        "lock": {
            "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "value": {
                        "title": "LockState",
                        "type": "string",
                        "enum": [
                            "locked",
                            "unknown",
                            "unlocked",
                            "unlocked with timeout",
                            "not fully locked",
                            "unlatched"
                        ]
                    },
                    "data": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                            "method": {
                                "type": "string",
                                "enum": [
                                    "manual",
                                    "keypad",
                                    "auto",
                                    "command",
                                    "rfid",
                                    "fingerprint",
                                    "bluetooth",
                                    "proprietaryRemote",
                                    "button",
                                    "digitalKey",
                                    "face",
                                    "vein",
                                    "otp"
                                ]
                            },
                            "codeId": {
                                "type": "string"
                            },
                            "codeName": {
                                "type": "string"
                            },
                            "userIndex": {
                                "type": "integer"
                            },
                            "userName": {
                                "type": "string"
                            },
                            "userType": {
                                "type": "string",
                                "enum": [
                                    "adminMember",
                                    "controlOnlyMember",
                                    "guest"
                                ]
                            },
                            "timeout": {
                                "title": "Iso8601Date",
                                "type": "string",
                                "pattern": "^(?:[1-9]\\d{3}-?(?:(?:0[1-9]|1[0-2])-?(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-?(?:29|30)|(?:0[13578]|1[02])-?31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-?02-?29)T(?:[01]\\d|2[0-3]):?[0-5]\\d:?[0-5]\\d(?:\\.\\d{3})?(?:Z|[+-][01]\\d(?::?[0-5]\\d)?)$"
                            },
                            "unlockDirection": {
                                "type": "string",
                                "enum": [
                                    "fromInside",
                                    "fromOutside"
                                ]
                            }
                        }
                    }
                },
                "sensitive": true,
                "required": [
                    "value"
                ]
            },
            "enumCommands": [
                {
                    "command": "lock",
                    "value": "locked"
                },
                {
                    "command": "unlock",
                    "value": "unlocked"
                },
                {
                    "command": "unlatch",
                    "value": "unlatched"
                }
            ]
        },
        "supportedLockValues": {
            "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "value": {
                        "type": "array",
                        "items": {
                            "title": "LockState",
                            "type": "string",
                            "enum": [
                                "locked",
                                "unknown",
                                "unlocked",
                                "unlocked with timeout",
                                "not fully locked",
                                "unlatched"
                            ]
                        }
                    }
                }
            }
        },
        "supportedLockCommands": {
            "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "value": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "enum": [
                                "lock",
                                "unlock",
                                "unlatch"
                            ]
                        }
                    }
                }
            }
        },
        "supportedUnlockDirections": {
            "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "value": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "enum": [
                                "fromInside",
                                "fromOutside"
                            ]
                        }
                    }
                }
            }
        }
    },
    "commands": {
        "lock": {
            "name": "lock",
            "arguments": [
                
            ]
        },
        "unlock": {
            "name": "unlock",
            "arguments": [
                
            ]
        },
        "unlatch": {
            "name": "unlatch",
            "arguments": [
                
            ]
        }
    },
    "id": "lock",
    "version": 1
}