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

  // *********************************************************************************
  { "name"     : "Configuration",
    "service"  : "SMS",
    "type"     : "Command",
    "since"    : "1.4",
    "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",
    "since"    : "1.4",
    "contents" : [ { "name"   : "MessageIndex",
                     "format" : "guint32" },
                   { "name"          : "MessageStatus",
                     "format"        : "guint32",
                     "public-format" : "MbimSmsStatus" },
                   { "name"   : "PduData",
                     "format" : "ref-byte-array" } ] },

  { "name"     : "MbimSmsCdmaReadRecord",
    "type"     : "Struct",
    "since"    : "1.4",
    "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",
    "since"        : "1.4",
    "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",
    "since"    : "1.4",
    "contents" : [ { "name"   : "PduData",
                     "format" : "ref-byte-array" } ] },

  { "name"     : "MbimSmsCdmaSendRecord",
    "type"     : "Struct",
    "since"    : "1.4",
    "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",
    "since"    : "1.4",
    "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",
    "since"    : "1.4",
    "set"      : [ { "name"          : "Flag",
                     "format"        : "guint32",
                     "public-format" : "MbimSmsFlag" },
                   { "name"   : "MessageIndex",
                     "format" : "guint32" } ],
    "response" : [] },

  // *********************************************************************************
  { "name"         : "Message Store Status",
    "service"      : "SMS",
    "type"         : "Command",
    "since"        : "1.4",
    "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" } ] }
]
