6 Appendix A: Full JSON Schema

 {
     "description": "object",
     "type": "object",
     "properties": {
         "CertificateRequest": {
             "type": "object",
             "optional" : false,
             "properties": {
                 "Type": { "type": "string", "optional": false },
                 "Data": { "type": "string", "optional": false }
             }
         },
         "TransportKey": { "type": "string", "optional": false },
         "TargetDomain": { "type": "string", "optional": false },
         "DeviceType": { "type": "string", "optional": false },
         "OSVersion": { "type": "string", "optional": false },
         "DeviceDisplayName": { "type": "string", "optional": false },
         "JoinType": { "type": "number", "optional": false }
     }
 }
 {
     "description": "object",
     "type": "object",
     "properties": {
         "Certificate": {
             "type": "object",
             "optional": false,
             "properties": {
                 "Thumbprint": { "type": "string", "optional": false },
                 "RawBody": { "type": "string", "optional": false }
             }
         },
         "User": {
             "type": "object",
             "optional": false,
             "properties": {
                 "Upn": { "type": "string", "optional": false }
             }
         },
         "MembershipChanges": {
             "type": "object",
             "optional": false,
             "properties": {
                 "LocalSID": { "type": "string", "optional": false },
                 "AddSIDs": { "type": "array", "optional": false }
             }
         }
     }
 }
 {
     "description": "object",
     "type": "object",
     "properties": {
         "ErrorType": { "type": "string", "optional": false },
         "Message": { "type": "string", "optional": false },
         "TraceId": { "type": "string", "optional": false },
         "Time": { "type": "string", "optional": false }
     }
 }