
[
    // *********************************************************************************
    { "type" : "Service",
      "name" : "SMS" },

    // *********************************************************************************
    { "name"     : "Configuration",
      "service"  : "SMS",
      "type"     : "Command",
      "set"      : [ { "name"          : "Format",
                       "format"        : "guint32",
                       "public-format" : "MbimSmsFormat" },
                     { "name"   : "ScAddress",
                       "format" : "string" } ],
      "query"    : [],
      "response" : [ { "name"          : "SmsStorageState",
                       "format"        : "guint32",
                       "public-format" : "MbimSmsStorageState" },
                     { "name"          : "Format",
                       "format"        : "guint32",
                       "public-format" : "MbimSmsFormat" },
                     { "name"   : "MaxMessages",
                       "format" : "guint32" },
                     { "name"   : "CdmaShortMessageSize",
                       "format" : "guint32" },
                     { "name"   : "ScAddress",
                       "format" : "string" } ] },

    // *********************************************************************************
    { "name"     : "MbimSmsPduReadRecord",
      "type"     : "Struct",
      "contents" : [ { "name"   : "MessageIndex",
                       "format" : "guint32" },
                     { "name"          : "MessageStatus",
                       "format"        : "guint32",
                       "public-format" : "MbimSmsStatus" },
                     { "name"   : "PduData",
                       "format" : "ref-byte-array" } ] },

    { "name"     : "MbimSmsCdmaReadRecord",
      "type"     : "Struct",
      "contents" : [ { "name"   : "MessageIndex",
                       "format" : "guint32" },
                     { "name"          : "MessageStatus",
                       "format"        : "guint32",
                       "public-format" : "MbimSmsStatus" },
                     { "name"   : "Address",
                       "format" : "string" },
                     { "name"   : "Timestamp",
                       "format" : "string" },
                     { "name"          : "Encoding",
                       "format"        : "guint32",
                       "public-format" : "MbimSmsCdmaEncoding" },
                     { "name"          : "Language",
                       "format"        : "guint32",
                       "public-format" : "MbimSmsCdmaLanguage" },
                     { "name"   : "EncodedMessage",
                       "format" : "ref-byte-array" },
                     { "name"   : "EncodedMessageSizeInCharacters",
                       "format" : "guint32" } ] },

    { "name"         : "Read",
      "service"      : "SMS",
      "type"         : "Command",
      "query"        : [ { "name"          : "Format",
                           "format"        : "guint32",
                           "public-format" : "MbimSmsFormat" },
                         { "name"          : "Flag",
                           "format"        : "guint32",
                           "public-format" : "MbimSmsFlag" },
                         { "name"   : "MessageIndex",
                           "format" : "guint32" } ],
      "response"     : [ { "name"          : "Format",
                           "format"        : "guint32",
                           "public-format" : "MbimSmsFormat" },
                         { "name"   : "MessagesCount",
                           "format" : "guint32" },
                         { "name"             : "PduMessages",
                           "format"           : "ref-struct-array" ,
                           "struct-type"      : "MbimSmsPduReadRecord",
                           "array-size-field" : "MessagesCount",
                           "available-if"     : { "field"     : "Format",
                                                  "operation" : "==",
                                                  "value"     : "MBIM_SMS_FORMAT_PDU" } },
                         { "name"             : "CdmaMessages",
                           "format"           : "ref-struct-array" ,
                           "struct-type"      : "MbimSmsCdmaReadRecord",
                           "array-size-field" : "MessagesCount",
                           "available-if"     : { "field"     : "Format",
                                                  "operation" : "==",
                                                  "value"     : "MBIM_SMS_FORMAT_CDMA" } } ],
      "notification" : [ { "name"          : "Format",
                           "format"        : "guint32",
                           "public-format" : "MbimSmsFormat" },
                         { "name"   : "MessagesCount",
                           "format" : "guint32" },
                         { "name"             : "PduMessages",
                           "format"           : "ref-struct-array" ,
                           "struct-type"      : "MbimSmsPduReadRecord",
                           "array-size-field" : "MessagesCount",
                           "available-if"     : { "field"     : "Format",
                                                  "operation" : "==",
                                                  "value"     : "MBIM_SMS_FORMAT_PDU" } },
                         { "name"             : "CdmaMessages",
                           "format"           : "ref-struct-array" ,
                           "struct-type"      : "MbimSmsCdmaReadRecord",
                           "array-size-field" : "MessagesCount",
                           "available-if"     : { "field"     : "Format",
                                                  "operation" : "==",
                                                  "value"     : "MBIM_SMS_FORMAT_CDMA" } } ] },

    // *********************************************************************************
    { "name"     : "MbimSmsPduSendRecord",
      "type"     : "Struct",
      "contents" : [ { "name"   : "PduData",
                       "format" : "ref-byte-array" } ] },

    { "name"     : "MbimSmsCdmaSendRecord",
      "type"     : "Struct",
      "contents" : [ { "name"          : "Encoding",
                       "format"        : "guint32",
                       "public-format" : "MbimSmsCdmaEncoding" },
                     { "name"          : "Language",
                       "format"        : "guint32",
                       "public-format" : "MbimSmsCdmaLanguage" },
                     { "name"   : "Address",
                       "format" : "string" },
                     { "name"   : "EncodedMessage",
                       "format" : "ref-byte-array" },
                     { "name"   : "EncodedMessageSizeInCharacters",
                       "format" : "guint32" } ] },

    { "name"     : "Send",
      "service"  : "SMS",
      "type"     : "Command",
      "set"      : [ { "name"          : "Format",
                       "format"        : "guint32",
                       "public-format" : "MbimSmsFormat" },
                     { "name"         : "PduMessage",
                       "format"       : "struct",
                       "struct-type"  : "MbimSmsPduSendRecord",
                       "available-if" : { "field"     : "Format",
                                          "operation" : "==",
                                          "value"     : "MBIM_SMS_FORMAT_PDU" } },
                     { "name"         : "CdmaMessage",
                       "format"       : "struct",
                       "struct-type"  : "MbimSmsCdmaSendRecord",
                       "available-if" : { "field"     : "Format",
                                          "operation" : "==",
                                          "value"     : "MBIM_SMS_FORMAT_CDMA" } } ],
      "response" : [ { "name"   : "MessageReference",
                       "format" : "guint32" } ] },

    // *********************************************************************************
    { "name"     : "Delete",
      "service"  : "SMS",
      "type"     : "Command",
      "set"      : [ { "name"          : "Flag",
                       "format"        : "guint32",
                       "public-format" : "MbimSmsFlag" },
                     { "name"   : "MessageIndex",
                       "format" : "guint32" } ],
      "response" : [] },

    // *********************************************************************************
    { "name"         : "Message Store Status",
      "service"      : "SMS",
      "type"         : "Command",
      "query"        : [],
      "response"     : [ { "name"          : "Flag",
                           "format"        : "guint32",
                           "public-format" : "MbimSmsStatusFlag" },
                         { "name"   : "MessageIndex",
                           "format" : "guint32" } ],
      "notification" : [ { "name"          : "Flag",
                           "format"        : "guint32",
                           "public-format" : "MbimSmsStatusFlag" },
                         { "name"   : "MessageIndex",
                           "format" : "guint32" } ] }
]
