Browse Source

阿里云推送

lcl 9 months ago
parent
commit
0cbf6df4f5
100 changed files with 8968 additions and 0 deletions
  1. 324 0
      Util/Aliyun/AliyunPush.cs
  2. 86 0
      Util/Aliyun/Push/Model/V20160801/BindAliasRequest.cs
  3. 27 0
      Util/Aliyun/Push/Model/V20160801/BindAliasResponse.cs
  4. 101 0
      Util/Aliyun/Push/Model/V20160801/BindTagRequest.cs
  5. 27 0
      Util/Aliyun/Push/Model/V20160801/BindTagResponse.cs
  6. 71 0
      Util/Aliyun/Push/Model/V20160801/CancelPushRequest.cs
  7. 27 0
      Util/Aliyun/Push/Model/V20160801/CancelPushResponse.cs
  8. 116 0
      Util/Aliyun/Push/Model/V20160801/CertPreflightRequest.cs
  9. 27 0
      Util/Aliyun/Push/Model/V20160801/CertPreflightResponse.cs
  10. 71 0
      Util/Aliyun/Push/Model/V20160801/CheckDeviceRequest.cs
  11. 41 0
      Util/Aliyun/Push/Model/V20160801/CheckDeviceResponse.cs
  12. 71 0
      Util/Aliyun/Push/Model/V20160801/CheckDevicesRequest.cs
  13. 72 0
      Util/Aliyun/Push/Model/V20160801/CheckDevicesResponse.cs
  14. 71 0
      Util/Aliyun/Push/Model/V20160801/ClearAliasRequest.cs
  15. 27 0
      Util/Aliyun/Push/Model/V20160801/ClearAliasResponse.cs
  16. 86 0
      Util/Aliyun/Push/Model/V20160801/CreateAppRequest.cs
  17. 41 0
      Util/Aliyun/Push/Model/V20160801/CreateAppResponse.cs
  18. 56 0
      Util/Aliyun/Push/Model/V20160801/DeleteAppRequest.cs
  19. 27 0
      Util/Aliyun/Push/Model/V20160801/DeleteAppResponse.cs
  20. 71 0
      Util/Aliyun/Push/Model/V20160801/DeleteTagRequest.cs
  21. 27 0
      Util/Aliyun/Push/Model/V20160801/DeleteTagResponse.cs
  22. 41 0
      Util/Aliyun/Push/Model/V20160801/ListAppsRequest.cs
  23. 271 0
      Util/Aliyun/Push/Model/V20160801/ListAppsResponse.cs
  24. 131 0
      Util/Aliyun/Push/Model/V20160801/ListPushRecordsRequest.cs
  25. 198 0
      Util/Aliyun/Push/Model/V20160801/ListPushRecordsResponse.cs
  26. 41 0
      Util/Aliyun/Push/Model/V20160801/ListSummaryAppsRequest.cs
  27. 72 0
      Util/Aliyun/Push/Model/V20160801/ListSummaryAppsResponse.cs
  28. 56 0
      Util/Aliyun/Push/Model/V20160801/ListTagsRequest.cs
  29. 58 0
      Util/Aliyun/Push/Model/V20160801/ListTagsResponse.cs
  30. 41 0
      Util/Aliyun/Push/Model/V20160801/ListTinyAppsRequest.cs
  31. 86 0
      Util/Aliyun/Push/Model/V20160801/ListTinyAppsResponse.cs
  32. 161 0
      Util/Aliyun/Push/Model/V20160801/ModifyAppConfigRequest.cs
  33. 27 0
      Util/Aliyun/Push/Model/V20160801/ModifyAppConfigResponse.cs
  34. 101 0
      Util/Aliyun/Push/Model/V20160801/ModifyAppExtensionsRequest.cs
  35. 27 0
      Util/Aliyun/Push/Model/V20160801/ModifyAppExtensionsResponse.cs
  36. 116 0
      Util/Aliyun/Push/Model/V20160801/PushMessageToAndroidRequest.cs
  37. 41 0
      Util/Aliyun/Push/Model/V20160801/PushMessageToAndroidResponse.cs
  38. 116 0
      Util/Aliyun/Push/Model/V20160801/PushMessageToiOSRequest.cs
  39. 41 0
      Util/Aliyun/Push/Model/V20160801/PushMessageToiOSResponse.cs
  40. 131 0
      Util/Aliyun/Push/Model/V20160801/PushNoticeToAndroidRequest.cs
  41. 41 0
      Util/Aliyun/Push/Model/V20160801/PushNoticeToAndroidResponse.cs
  42. 146 0
      Util/Aliyun/Push/Model/V20160801/PushNoticeToiOSRequest.cs
  43. 41 0
      Util/Aliyun/Push/Model/V20160801/PushNoticeToiOSResponse.cs
  44. 611 0
      Util/Aliyun/Push/Model/V20160801/PushRequest.cs
  45. 41 0
      Util/Aliyun/Push/Model/V20160801/PushResponse.cs
  46. 71 0
      Util/Aliyun/Push/Model/V20160801/QueryAliasRequest.cs
  47. 58 0
      Util/Aliyun/Push/Model/V20160801/QueryAliasResponse.cs
  48. 71 0
      Util/Aliyun/Push/Model/V20160801/QueryAliasesRequest.cs
  49. 58 0
      Util/Aliyun/Push/Model/V20160801/QueryAliasesResponse.cs
  50. 56 0
      Util/Aliyun/Push/Model/V20160801/QueryAppConfigRequest.cs
  51. 212 0
      Util/Aliyun/Push/Model/V20160801/QueryAppConfigResponse.cs
  52. 56 0
      Util/Aliyun/Push/Model/V20160801/QueryAppInfoRequest.cs
  53. 257 0
      Util/Aliyun/Push/Model/V20160801/QueryAppInfoResponse.cs
  54. 101 0
      Util/Aliyun/Push/Model/V20160801/QueryAppPushStatRequest.cs
  55. 114 0
      Util/Aliyun/Push/Model/V20160801/QueryAppPushStatResponse.cs
  56. 56 0
      Util/Aliyun/Push/Model/V20160801/QueryAppSecurityInfoRequest.cs
  57. 55 0
      Util/Aliyun/Push/Model/V20160801/QueryAppSecurityInfoResponse.cs
  58. 71 0
      Util/Aliyun/Push/Model/V20160801/QueryDeviceInfoRequest.cs
  59. 156 0
      Util/Aliyun/Push/Model/V20160801/QueryDeviceInfoResponse.cs
  60. 116 0
      Util/Aliyun/Push/Model/V20160801/QueryDeviceStatRequest.cs
  61. 86 0
      Util/Aliyun/Push/Model/V20160801/QueryDeviceStatResponse.cs
  62. 71 0
      Util/Aliyun/Push/Model/V20160801/QueryPushDetailRequest.cs
  63. 503 0
      Util/Aliyun/Push/Model/V20160801/QueryPushDetailResponse.cs
  64. 101 0
      Util/Aliyun/Push/Model/V20160801/QueryPushStatByAppRequest.cs
  65. 114 0
      Util/Aliyun/Push/Model/V20160801/QueryPushStatByAppResponse.cs
  66. 71 0
      Util/Aliyun/Push/Model/V20160801/QueryPushStatByMsgRequest.cs
  67. 114 0
      Util/Aliyun/Push/Model/V20160801/QueryPushStatByMsgResponse.cs
  68. 71 0
      Util/Aliyun/Push/Model/V20160801/QueryPushStatRequest.cs
  69. 114 0
      Util/Aliyun/Push/Model/V20160801/QueryPushStatResponse.cs
  70. 86 0
      Util/Aliyun/Push/Model/V20160801/QueryTagsRequest.cs
  71. 58 0
      Util/Aliyun/Push/Model/V20160801/QueryTagsResponse.cs
  72. 101 0
      Util/Aliyun/Push/Model/V20160801/QueryUniqueDeviceStatRequest.cs
  73. 72 0
      Util/Aliyun/Push/Model/V20160801/QueryUniqueDeviceStatResponse.cs
  74. 71 0
      Util/Aliyun/Push/Model/V20160801/RemoveTagRequest.cs
  75. 27 0
      Util/Aliyun/Push/Model/V20160801/RemoveTagResponse.cs
  76. 86 0
      Util/Aliyun/Push/Model/V20160801/TracePushRequest.cs
  77. 372 0
      Util/Aliyun/Push/Model/V20160801/TracePushResponse.cs
  78. 100 0
      Util/Aliyun/Push/Model/V20160801/UnbindAliasRequest.cs
  79. 27 0
      Util/Aliyun/Push/Model/V20160801/UnbindAliasResponse.cs
  80. 101 0
      Util/Aliyun/Push/Model/V20160801/UnbindTagRequest.cs
  81. 27 0
      Util/Aliyun/Push/Model/V20160801/UnbindTagResponse.cs
  82. 86 0
      Util/Aliyun/Push/Model/V20160801/UploadAppCertRequest.cs
  83. 41 0
      Util/Aliyun/Push/Model/V20160801/UploadAppCertResponse.cs
  84. 86 0
      Util/Aliyun/Push/Model/V20160801/ValidateAppCertRequest.cs
  85. 114 0
      Util/Aliyun/Push/Model/V20160801/ValidateAppCertResponse.cs
  86. 38 0
      Util/Aliyun/Push/Transform/V20160801/BindAliasResponseUnmarshaller.cs
  87. 38 0
      Util/Aliyun/Push/Transform/V20160801/BindTagResponseUnmarshaller.cs
  88. 38 0
      Util/Aliyun/Push/Transform/V20160801/CancelPushResponseUnmarshaller.cs
  89. 38 0
      Util/Aliyun/Push/Transform/V20160801/CertPreflightResponseUnmarshaller.cs
  90. 39 0
      Util/Aliyun/Push/Transform/V20160801/CheckDeviceResponseUnmarshaller.cs
  91. 48 0
      Util/Aliyun/Push/Transform/V20160801/CheckDevicesResponseUnmarshaller.cs
  92. 38 0
      Util/Aliyun/Push/Transform/V20160801/ClearAliasResponseUnmarshaller.cs
  93. 39 0
      Util/Aliyun/Push/Transform/V20160801/CreateAppResponseUnmarshaller.cs
  94. 38 0
      Util/Aliyun/Push/Transform/V20160801/DeleteAppResponseUnmarshaller.cs
  95. 38 0
      Util/Aliyun/Push/Transform/V20160801/DeleteTagResponseUnmarshaller.cs
  96. 64 0
      Util/Aliyun/Push/Transform/V20160801/ListAppsResponseUnmarshaller.cs
  97. 57 0
      Util/Aliyun/Push/Transform/V20160801/ListPushRecordsResponseUnmarshaller.cs
  98. 48 0
      Util/Aliyun/Push/Transform/V20160801/ListSummaryAppsResponseUnmarshaller.cs
  99. 47 0
      Util/Aliyun/Push/Transform/V20160801/ListTagsResponseUnmarshaller.cs
  100. 49 0
      Util/Aliyun/Push/Transform/V20160801/ListTinyAppsResponseUnmarshaller.cs

+ 324 - 0
Util/Aliyun/AliyunPush.cs

@@ -0,0 +1,324 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using Aliyun.Acs.Push.Model.V20160801;
+using Aliyun.Acs.Push.Transform.V20160801;
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Exceptions;
+using Aliyun.Acs.Core.Profile;
+//using MySystem.Models;
+using Library;
+
+namespace MySystem
+{
+    public class AliyunPush
+    {
+        private string AccessKeyID = "LTAImYRe25JQ5nr8";
+        private string AccessKeySecret = "znOWxVGLnKl8KHlPSIKruYC3C1HYIy";
+
+        public void PushMessageToAndroid()
+        {
+            IClientProfile clientProfile = DefaultProfile.GetProfile("cn-hangzhou", AccessKeyID, AccessKeySecret);
+            DefaultAcsClient client = new DefaultAcsClient(clientProfile);
+            PushMessageToAndroidRequest request = new PushMessageToAndroidRequest();
+            request.AppKey = 24566887;
+            request.Target = "ALL";//推送目标: DEVICE:按设备推送 ALIAS : 按别名推送 ACCOUNT:按帐号推送  TAG:按标签推送; ALL: 广播推送
+            request.TargetValue = "All";////根据Target来设定,如Target=DEVICE, 则对应的值为 设备id1,设备id2. 多个值使用逗号分隔.(帐号与设备一次最多100)
+            request.Title = "android title";
+            request.Body = "android body";
+            try
+            {
+                PushMessageToAndroidResponse response = client.GetAcsResponse(request);
+                Console.WriteLine("RequestId:" + response.RequestId);
+                Console.WriteLine("ResponseId:" + response.MessageId);
+                Console.ReadLine();
+            }
+            catch (ServerException e)
+            {
+                Console.WriteLine(e.ErrorCode);
+                Console.WriteLine(e.ErrorMessage);
+                Console.ReadLine();
+            }
+            catch (ClientException e)
+            {
+                Console.WriteLine(e.ErrorCode);
+                Console.WriteLine(e.ErrorMessage);
+                Console.ReadLine();
+            }
+        }
+
+        public void PushMessageToiOS()
+        {
+            IClientProfile clientProfile = DefaultProfile.GetProfile("cn-hangzhou", AccessKeyID, AccessKeySecret);
+            DefaultAcsClient client = new DefaultAcsClient(clientProfile);
+            PushMessageToiOSRequest request = new PushMessageToiOSRequest();
+            request.AppKey = 24566887;
+            request.Target = "ALL";//推送目标: DEVICE:按设备推送 ALIAS : 按别名推送 ACCOUNT:按帐号推送  TAG:按标签推送; ALL: 广播推送
+            request.TargetValue = "All";//根据Target来设定,如Target=DEVICE, 则对应的值为 设备id1,设备id2. 多个值使用逗号分隔.(帐号与设备一次最多100个)
+            request.Title = "iOS Title";
+            request.Body = "iOS Body";
+            try
+            {
+                PushMessageToiOSResponse response = client.GetAcsResponse(request);
+                Console.WriteLine("RequestId:" + response.RequestId);
+                Console.WriteLine("ResponseId:" + response.MessageId);
+                Console.ReadLine();
+            }
+            catch (ServerException e)
+            {
+                Console.WriteLine(e.ErrorCode);
+                Console.WriteLine(e.ErrorMessage);
+                Console.ReadLine();
+            }
+            catch (ClientException e)
+            {
+                Console.WriteLine(e.ErrorCode);
+                Console.WriteLine(e.ErrorMessage);
+                Console.ReadLine();
+            }
+        }
+
+        public void PushNoticeToAndroid()
+        {
+            IClientProfile clientProfile = DefaultProfile.GetProfile("cn-hangzhou", AccessKeyID, AccessKeySecret);
+            DefaultAcsClient client = new DefaultAcsClient(clientProfile);
+            PushNoticeToAndroidRequest request = new PushNoticeToAndroidRequest();
+            request.AppKey = 24566887;
+            request.Target = "ALL";//推送目标: DEVICE:按设备推送 ALIAS : 按别名推送 ACCOUNT:按帐号推送  TAG:按标签推送; ALL: 广播推送
+            request.TargetValue = "all";//根据Target来设定,如Target=DEVICE, 则对应的值为 设备id1,设备id2. 多个值使用逗号分隔.(帐号与设备一次最多100个)
+            request.Title = "android notice title";
+            request.Body = "android notice body";
+            request.ExtParameters = "{\"Url\":\"http://www.yunmuit.com/\"}";
+            try
+            {
+                PushNoticeToAndroidResponse response = client.GetAcsResponse(request);
+                Console.WriteLine("RequestId:" + response.RequestId);
+                Console.WriteLine("ResponseId:" + response.MessageId);
+                Console.ReadLine();
+            }
+            catch (ServerException e)
+            {
+                Console.WriteLine(e.ErrorCode);
+                Console.WriteLine(e.ErrorMessage);
+                Console.ReadLine();
+            }
+            catch (ClientException e)
+            {
+                Console.WriteLine(e.ErrorCode);
+                Console.WriteLine(e.ErrorMessage);
+                Console.ReadLine();
+            }
+        }
+
+        public void PushNoticeToiOS()
+        {
+            IClientProfile clientProfile = DefaultProfile.GetProfile("cn-hangzhou", AccessKeyID, AccessKeySecret);
+            DefaultAcsClient client = new DefaultAcsClient(clientProfile);
+            PushNoticeToiOSRequest request = new PushNoticeToiOSRequest();
+            request.AppKey = 24566887;
+            // iOS的通知是通过APNS中心来发送的,需要填写对应的环境信息. DEV:表示开发环境, PRODUCT: 表示生产环境
+            request.ApnsEnv = "DEV";
+            request.Target = "ALL";
+            request.TargetValue = "ALL";
+            request.Title = "test";
+            request.Body = "testg";
+            request.ExtParameters = "{\"Url\":\"http://www.yunmuit.com/\"}";
+            try
+            {
+                PushNoticeToiOSResponse response = client.GetAcsResponse(request);
+                Console.WriteLine("RequestId:" + response.RequestId);
+                Console.WriteLine("ResponseId:" + response.MessageId);
+                Console.ReadLine();
+            }
+            catch (ServerException e)
+            {
+                Console.WriteLine(e.ErrorCode);
+                Console.WriteLine(e.ErrorMessage);
+                Console.ReadLine();
+            }
+            catch (ClientException e)
+            {
+                Console.WriteLine(e.ErrorCode);
+                Console.WriteLine(e.ErrorMessage);
+                Console.ReadLine();
+            }
+        }
+
+        public string Push(string Title, string Body, string Url, string PushType = "NOTICE", string DeviceType = "ALL", string DeviceList = "", bool Silent = false, String pushTime = "")
+        {
+            IClientProfile clientProfile = DefaultProfile.GetProfile("cn-hangzhou", AccessKeyID, AccessKeySecret);
+            DefaultAcsClient client = new DefaultAcsClient(clientProfile);
+            PushRequest request = new PushRequest();
+
+            // 推送目标
+            if (DeviceType == "ANDROID")
+            {
+                request.AppKey = 27532904;
+            }
+            else if (DeviceType == "iOS")
+            {
+                request.AppKey = 27536906;
+            }
+            if (string.IsNullOrEmpty(DeviceList))
+            {
+                //推送目标: DEVICE:按设备推送 ALIAS : 按别名推送 ACCOUNT:按帐号推送  TAG:按标签推送; ALL: 广播推送
+                request.Target = "ALL";
+                //根据Target来设定,如Target=DEVICE, 则对应的值为 设备id1,设备id2. 多个值使用逗号分隔.(帐号与设备有一次最多100个的限制)
+                request.TargetValue = "All";
+            }
+            else
+            {
+                request.Target = "DEVICE";
+                request.TargetValue = DeviceList;
+            }
+            //消息类型 MESSAGE NOTICE
+            request.PushType = PushType;
+            //设备类型 ANDROID iOS ALL.
+            request.DeviceType = DeviceType;
+            // 消息的标题
+            request.Title = Title;
+            // 消息的内容
+            request.Body = Body;
+
+            // 推送配置: iOS
+            // iOS应用图标右上角角标
+            //request.IOSBadge = 50;
+            //开启静默通知
+            request.IOSSilentNotification = Silent;
+            // iOS通知声音
+            if (Silent)
+            {
+                request.IOSMusic = ""; 
+            }
+            else
+            {
+                request.IOSMusic = "default";
+            }
+            //iOS10通知副标题的内容
+            request.IOSSubtitle = "";
+            //指定iOS10通知Category
+            request.IOSNotificationCategory = "iOS10 Notification Category";
+            //是否允许扩展iOS通知内容
+            request.IOSMutableContent = true;
+            //iOS的通知是通过APNs中心来发送的,需要填写对应的环境信息。"DEV" : 表示开发环境 "PRODUCT" : 表示生产环境
+            request.IOSApnsEnv = "PRODUCT";
+            //消息推送时设备不在线(既与移动推送的服务端的长连接通道不通),则这条推送会做为通知,通过苹果的APNs通道送达一次。注意:离线消息转通知仅适用于生产环境
+            request.IOSRemind = true;
+            //iOS消息转通知时使用的iOS通知内容,仅当iOSApnsEnv=PRODUCT && iOSRemind为true时有效
+            request.IOSRemindBody = Body;
+            //自定义的kv结构,开发者扩展用 针对iOS设备
+            string PageId = Url;
+            string Params = "";
+            if (Url.Contains("?"))
+            {
+                Params = Url.Split("?")[1];
+                PageId = Url.Split("?")[0];
+            }
+            request.IOSExtParameters = "{\"Url\":\"" + PageId + "\",\"Params\":\"" + Params + "\",\"SoundType\":\"0\"}";
+
+            // 推送配置: Android
+            // 通知的提醒方式 "VIBRATE" : 震动 "SOUND" : 声音 "BOTH" : 声音和震动 NONE : 静音
+            if (Silent)
+            {
+                request.AndroidNotifyType = "NONE"; 
+            }
+            else
+            {
+                request.AndroidNotifyType = "SOUND";
+            }
+            //通知栏自定义样式0-100
+            request.AndroidNotificationBarType = 3;
+            //通知栏显示优先级
+            request.AndroidNotificationBarPriority = 0;
+            //点击通知后动作 "APPLICATION" : 打开应用 "ACTIVITY" : 打开AndroidActivity "URL" : 打开URL "NONE" : 无跳转
+            request.AndroidOpenType = "APPLICATION";
+            //Android收到推送后打开对应的url,仅当AndroidOpenType="URL"有效
+            //request.AndroidOpenUrl = "http://www.baidu.com";
+            //设定通知打开的activity,仅当AndroidOpenType="Activity"有效
+            //request.AndroidActivity = "com.alibaba.push2.demo.XiaoMiPushActivity";
+
+            request.AndroidRemind = true;
+            request.AndroidPopupActivity = "com.yunmuapp.yunmuapp.activity.WaitActivity";
+            request.AndroidPopupTitle = "客小爽";
+            request.AndroidPopupBody = Body;
+            request.AndroidNotificationChannel = "1";
+
+            //Android通知音乐
+            request.AndroidMusic = "default";
+            //设置该参数后启动小米托管弹窗功能,此处指定通知点击后跳转的Activity(托管弹窗的前提条件:1. 继承小米辅助通道;2. storeOffline设为true)
+            request.AndroidXiaoMiActivity = "com.yunmuapp.yunmuapp.activity.WaitActivity";
+            //小米弹窗标题
+            request.AndroidXiaoMiNotifyTitle = "客小爽";
+            //小米弹窗内容
+            request.AndroidXiaoMiNotifyBody = Body;
+            // 设定android类型设备通知的扩展属性
+            request.AndroidExtParameters = "{\"Url\":\"" + PageId + "\",\"Params\":\"" + Params + "\",\"SoundType\":\"0\"}";
+
+            // 推送控制
+            //String pushTime = DateTime.UtcNow.AddSeconds(3).ToString("yyyy-MM-ddTHH\\:mm\\:ssZ");
+            if (!string.IsNullOrEmpty(pushTime))
+            {
+                TimeSpan ts = DateTime.Parse(pushTime) - DateTime.Now;
+                request.PushTime = DateTime.UtcNow.Add(ts).ToString("yyyy-MM-ddTHH\\:mm\\:ssZ");//延迟3秒发送
+            }
+            String expireTime = DateTime.UtcNow.AddDays(1).ToString("yyyy-MM-ddTHH\\:mm\\:ssZ");
+            request.ExpireTime = expireTime;//设置过期时间为2天
+            request.StoreOffline = true;
+
+            string result = "";
+            try
+            {
+                PushResponse response = client.GetAcsResponse(request);
+                Console.WriteLine("RequestId:" + response.RequestId);
+                Console.WriteLine("ResponseId:" + response.MessageId);
+                Console.ReadLine();
+                result = "1|" + response.MessageId;
+            }
+            catch (ServerException e)
+            {
+                Console.WriteLine(e.ErrorCode);
+                Console.WriteLine(e.ErrorMessage);
+                Console.ReadLine();
+                function.WriteLog(e.ErrorCode, "阿里云推送异常");
+                function.WriteLog(e.ErrorMessage, "阿里云推送异常");
+            }
+            catch (ClientException e)
+            {
+                Console.WriteLine(e.ErrorCode);
+                Console.WriteLine(e.ErrorMessage);
+                Console.ReadLine();
+                function.WriteLog(e.ErrorCode, "阿里云推送异常");
+                function.WriteLog(e.ErrorMessage, "阿里云推送异常");
+            }
+            return result;
+        }
+
+        public void CancelPush(string msgid)
+        {
+            IClientProfile clientProfile = DefaultProfile.GetProfile("cn-hangzhou", AccessKeyID, AccessKeySecret);
+            DefaultAcsClient client = new DefaultAcsClient(clientProfile);
+            CancelPushRequest request = new CancelPushRequest();
+            request.AppKey = 24566887;
+            request.MessageId = msgid;
+            try
+            {
+                CancelPushResponse response = client.GetAcsResponse(request);
+                Console.WriteLine("RequestId:" + response.RequestId); 
+                Console.ReadLine();
+            }
+            catch (ServerException e)
+            {
+                Console.WriteLine(e.ErrorCode);
+                Console.WriteLine(e.ErrorMessage);
+                Console.ReadLine();
+            }
+            catch (ClientException e)
+            {
+                Console.WriteLine(e.ErrorCode);
+                Console.WriteLine(e.ErrorMessage);
+                Console.ReadLine();
+            }
+        }
+    }
+}

+ 86 - 0
Util/Aliyun/Push/Model/V20160801/BindAliasRequest.cs

@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class BindAliasRequest : RpcAcsRequest<BindAliasResponse>
+    {
+        public BindAliasRequest()
+            : base("Push", "2016-08-01", "BindAlias")
+        {
+        }
+
+		private long? appKey;
+
+		private string aliasName;
+
+		private string deviceId;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string AliasName
+		{
+			get
+			{
+				return aliasName;
+			}
+			set	
+			{
+				aliasName = value;
+				DictionaryUtil.Add(QueryParameters, "AliasName", value);
+			}
+		}
+
+		public string DeviceId
+		{
+			get
+			{
+				return deviceId;
+			}
+			set	
+			{
+				deviceId = value;
+				DictionaryUtil.Add(QueryParameters, "DeviceId", value);
+			}
+		}
+
+        public override BindAliasResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return BindAliasResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 27 - 0
Util/Aliyun/Push/Model/V20160801/BindAliasResponse.cs

@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class BindAliasResponse : AcsResponse
+	{
+	}
+}

+ 101 - 0
Util/Aliyun/Push/Model/V20160801/BindTagRequest.cs

@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class BindTagRequest : RpcAcsRequest<BindTagResponse>
+    {
+        public BindTagRequest()
+            : base("Push", "2016-08-01", "BindTag")
+        {
+        }
+
+		private long? appKey;
+
+		private string clientKey;
+
+		private string keyType;
+
+		private string tagName;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string ClientKey
+		{
+			get
+			{
+				return clientKey;
+			}
+			set	
+			{
+				clientKey = value;
+				DictionaryUtil.Add(QueryParameters, "ClientKey", value);
+			}
+		}
+
+		public string KeyType
+		{
+			get
+			{
+				return keyType;
+			}
+			set	
+			{
+				keyType = value;
+				DictionaryUtil.Add(QueryParameters, "KeyType", value);
+			}
+		}
+
+		public string TagName
+		{
+			get
+			{
+				return tagName;
+			}
+			set	
+			{
+				tagName = value;
+				DictionaryUtil.Add(QueryParameters, "TagName", value);
+			}
+		}
+
+        public override BindTagResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return BindTagResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 27 - 0
Util/Aliyun/Push/Model/V20160801/BindTagResponse.cs

@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class BindTagResponse : AcsResponse
+	{
+	}
+}

+ 71 - 0
Util/Aliyun/Push/Model/V20160801/CancelPushRequest.cs

@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class CancelPushRequest : RpcAcsRequest<CancelPushResponse>
+    {
+        public CancelPushRequest()
+            : base("Push", "2016-08-01", "CancelPush")
+        {
+        }
+
+		private long? appKey;
+
+		private string messageId;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string MessageId
+		{
+			get
+			{
+				return messageId;
+			}
+			set	
+			{
+				messageId = value;
+				DictionaryUtil.Add(QueryParameters, "MessageId", value);
+			}
+		}
+
+        public override CancelPushResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return CancelPushResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 27 - 0
Util/Aliyun/Push/Model/V20160801/CancelPushResponse.cs

@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class CancelPushResponse : AcsResponse
+	{
+	}
+}

+ 116 - 0
Util/Aliyun/Push/Model/V20160801/CertPreflightRequest.cs

@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class CertPreflightRequest : RpcAcsRequest<CertPreflightResponse>
+    {
+        public CertPreflightRequest()
+            : base("Push", "2016-08-01", "CertPreflight")
+        {
+        }
+
+		private long? appKey;
+
+		private string deviceToken;
+
+		private string pass;
+
+		private string body;
+
+		private bool? isDevCert;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string DeviceToken
+		{
+			get
+			{
+				return deviceToken;
+			}
+			set	
+			{
+				deviceToken = value;
+				DictionaryUtil.Add(QueryParameters, "DeviceToken", value);
+			}
+		}
+
+		public string Pass
+		{
+			get
+			{
+				return pass;
+			}
+			set	
+			{
+				pass = value;
+				DictionaryUtil.Add(QueryParameters, "Pass", value);
+			}
+		}
+
+		public string Body
+		{
+			get
+			{
+				return body;
+			}
+			set	
+			{
+				body = value;
+				DictionaryUtil.Add(QueryParameters, "Body", value);
+			}
+		}
+
+		public bool? IsDevCert
+		{
+			get
+			{
+				return isDevCert;
+			}
+			set	
+			{
+				isDevCert = value;
+				DictionaryUtil.Add(QueryParameters, "IsDevCert", value.ToString());
+			}
+		}
+
+        public override CertPreflightResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return CertPreflightResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 27 - 0
Util/Aliyun/Push/Model/V20160801/CertPreflightResponse.cs

@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class CertPreflightResponse : AcsResponse
+	{
+	}
+}

+ 71 - 0
Util/Aliyun/Push/Model/V20160801/CheckDeviceRequest.cs

@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class CheckDeviceRequest : RpcAcsRequest<CheckDeviceResponse>
+    {
+        public CheckDeviceRequest()
+            : base("Push", "2016-08-01", "CheckDevice")
+        {
+        }
+
+		private long? appKey;
+
+		private string deviceId;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string DeviceId
+		{
+			get
+			{
+				return deviceId;
+			}
+			set	
+			{
+				deviceId = value;
+				DictionaryUtil.Add(QueryParameters, "DeviceId", value);
+			}
+		}
+
+        public override CheckDeviceResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return CheckDeviceResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 41 - 0
Util/Aliyun/Push/Model/V20160801/CheckDeviceResponse.cs

@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class CheckDeviceResponse : AcsResponse
+	{
+
+		private bool? available;
+
+		public bool? Available
+		{
+			get
+			{
+				return available;
+			}
+			set	
+			{
+				available = value;
+			}
+		}
+	}
+}

+ 71 - 0
Util/Aliyun/Push/Model/V20160801/CheckDevicesRequest.cs

@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class CheckDevicesRequest : RpcAcsRequest<CheckDevicesResponse>
+    {
+        public CheckDevicesRequest()
+            : base("Push", "2016-08-01", "CheckDevices")
+        {
+        }
+
+		private long? appKey;
+
+		private string deviceIds;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string DeviceIds
+		{
+			get
+			{
+				return deviceIds;
+			}
+			set	
+			{
+				deviceIds = value;
+				DictionaryUtil.Add(QueryParameters, "DeviceIds", value);
+			}
+		}
+
+        public override CheckDevicesResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return CheckDevicesResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 72 - 0
Util/Aliyun/Push/Model/V20160801/CheckDevicesResponse.cs

@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class CheckDevicesResponse : AcsResponse
+	{
+
+		private List<DeviceCheckInfo> deviceCheckInfos;
+
+		public List<DeviceCheckInfo> DeviceCheckInfos
+		{
+			get
+			{
+				return deviceCheckInfos;
+			}
+			set	
+			{
+				deviceCheckInfos = value;
+			}
+		}
+
+		public class DeviceCheckInfo{
+
+			private string deviceId;
+
+			private bool? available;
+
+			public string DeviceId
+			{
+				get
+				{
+					return deviceId;
+				}
+				set	
+				{
+					deviceId = value;
+				}
+			}
+
+			public bool? Available
+			{
+				get
+				{
+					return available;
+				}
+				set	
+				{
+					available = value;
+				}
+			}
+		}
+	}
+}

+ 71 - 0
Util/Aliyun/Push/Model/V20160801/ClearAliasRequest.cs

@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class ClearAliasRequest : RpcAcsRequest<ClearAliasResponse>
+    {
+        public ClearAliasRequest()
+            : base("Push", "2016-08-01", "ClearAlias")
+        {
+        }
+
+		private long? appKey;
+
+		private string deviceId;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string DeviceId
+		{
+			get
+			{
+				return deviceId;
+			}
+			set	
+			{
+				deviceId = value;
+				DictionaryUtil.Add(QueryParameters, "DeviceId", value);
+			}
+		}
+
+        public override ClearAliasResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return ClearAliasResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 27 - 0
Util/Aliyun/Push/Model/V20160801/ClearAliasResponse.cs

@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class ClearAliasResponse : AcsResponse
+	{
+	}
+}

+ 86 - 0
Util/Aliyun/Push/Model/V20160801/CreateAppRequest.cs

@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class CreateAppRequest : RpcAcsRequest<CreateAppResponse>
+    {
+        public CreateAppRequest()
+            : base("Push", "2016-08-01", "CreateApp")
+        {
+        }
+
+		private string appName;
+
+		private int? industryId;
+
+		private string description;
+
+		public string AppName
+		{
+			get
+			{
+				return appName;
+			}
+			set	
+			{
+				appName = value;
+				DictionaryUtil.Add(QueryParameters, "AppName", value);
+			}
+		}
+
+		public int? IndustryId
+		{
+			get
+			{
+				return industryId;
+			}
+			set	
+			{
+				industryId = value;
+				DictionaryUtil.Add(QueryParameters, "IndustryId", value.ToString());
+			}
+		}
+
+		public string Description
+		{
+			get
+			{
+				return description;
+			}
+			set	
+			{
+				description = value;
+				DictionaryUtil.Add(QueryParameters, "Description", value);
+			}
+		}
+
+        public override CreateAppResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return CreateAppResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 41 - 0
Util/Aliyun/Push/Model/V20160801/CreateAppResponse.cs

@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class CreateAppResponse : AcsResponse
+	{
+
+		private long? appKey;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+			}
+		}
+	}
+}

+ 56 - 0
Util/Aliyun/Push/Model/V20160801/DeleteAppRequest.cs

@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class DeleteAppRequest : RpcAcsRequest<DeleteAppResponse>
+    {
+        public DeleteAppRequest()
+            : base("Push", "2016-08-01", "DeleteApp")
+        {
+        }
+
+		private long? appKey;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+        public override DeleteAppResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return DeleteAppResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 27 - 0
Util/Aliyun/Push/Model/V20160801/DeleteAppResponse.cs

@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class DeleteAppResponse : AcsResponse
+	{
+	}
+}

+ 71 - 0
Util/Aliyun/Push/Model/V20160801/DeleteTagRequest.cs

@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class DeleteTagRequest : RpcAcsRequest<DeleteTagResponse>
+    {
+        public DeleteTagRequest()
+            : base("Push", "2016-08-01", "DeleteTag")
+        {
+        }
+
+		private long? appKey;
+
+		private string tagName;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string TagName
+		{
+			get
+			{
+				return tagName;
+			}
+			set	
+			{
+				tagName = value;
+				DictionaryUtil.Add(QueryParameters, "TagName", value);
+			}
+		}
+
+        public override DeleteTagResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return DeleteTagResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 27 - 0
Util/Aliyun/Push/Model/V20160801/DeleteTagResponse.cs

@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class DeleteTagResponse : AcsResponse
+	{
+	}
+}

+ 41 - 0
Util/Aliyun/Push/Model/V20160801/ListAppsRequest.cs

@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class ListAppsRequest : RpcAcsRequest<ListAppsResponse>
+    {
+        public ListAppsRequest()
+            : base("Push", "2016-08-01", "ListApps")
+        {
+        }
+
+        public override ListAppsResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return ListAppsResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 271 - 0
Util/Aliyun/Push/Model/V20160801/ListAppsResponse.cs

@@ -0,0 +1,271 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class ListAppsResponse : AcsResponse
+	{
+
+		private List<AppInfo> appInfos;
+
+		public List<AppInfo> AppInfos
+		{
+			get
+			{
+				return appInfos;
+			}
+			set	
+			{
+				appInfos = value;
+			}
+		}
+
+		public class AppInfo{
+
+			private string appId;
+
+			private long? appKey;
+
+			private string appName;
+
+			private string description;
+
+			private int? industryId;
+
+			private int? androidStatus;
+
+			private int? iOSStatus;
+
+			private long? deviceCount;
+
+			private int? appStatus;
+
+			private int? status;
+
+			private string pushAppId;
+
+			private string source;
+
+			private Extension_ extension;
+
+			public string AppId
+			{
+				get
+				{
+					return appId;
+				}
+				set	
+				{
+					appId = value;
+				}
+			}
+
+			public long? AppKey
+			{
+				get
+				{
+					return appKey;
+				}
+				set	
+				{
+					appKey = value;
+				}
+			}
+
+			public string AppName
+			{
+				get
+				{
+					return appName;
+				}
+				set	
+				{
+					appName = value;
+				}
+			}
+
+			public string Description
+			{
+				get
+				{
+					return description;
+				}
+				set	
+				{
+					description = value;
+				}
+			}
+
+			public int? IndustryId
+			{
+				get
+				{
+					return industryId;
+				}
+				set	
+				{
+					industryId = value;
+				}
+			}
+
+			public int? AndroidStatus
+			{
+				get
+				{
+					return androidStatus;
+				}
+				set	
+				{
+					androidStatus = value;
+				}
+			}
+
+			public int? IOSStatus
+			{
+				get
+				{
+					return iOSStatus;
+				}
+				set	
+				{
+					iOSStatus = value;
+				}
+			}
+
+			public long? DeviceCount
+			{
+				get
+				{
+					return deviceCount;
+				}
+				set	
+				{
+					deviceCount = value;
+				}
+			}
+
+			public int? AppStatus
+			{
+				get
+				{
+					return appStatus;
+				}
+				set	
+				{
+					appStatus = value;
+				}
+			}
+
+			public int? Status
+			{
+				get
+				{
+					return status;
+				}
+				set	
+				{
+					status = value;
+				}
+			}
+
+			public string PushAppId
+			{
+				get
+				{
+					return pushAppId;
+				}
+				set	
+				{
+					pushAppId = value;
+				}
+			}
+
+			public string Source
+			{
+				get
+				{
+					return source;
+				}
+				set	
+				{
+					source = value;
+				}
+			}
+
+			public Extension_ Extension
+			{
+				get
+				{
+					return extension;
+				}
+				set	
+				{
+					extension = value;
+				}
+			}
+
+			public class Extension_{
+
+				private string xmAppSecretKey;
+
+				private long? hwAppKey;
+
+				private string hwAppSecretKey;
+
+				public string XmAppSecretKey
+				{
+					get
+					{
+						return xmAppSecretKey;
+					}
+					set	
+					{
+						xmAppSecretKey = value;
+					}
+				}
+
+				public long? HwAppKey
+				{
+					get
+					{
+						return hwAppKey;
+					}
+					set	
+					{
+						hwAppKey = value;
+					}
+				}
+
+				public string HwAppSecretKey
+				{
+					get
+					{
+						return hwAppSecretKey;
+					}
+					set	
+					{
+						hwAppSecretKey = value;
+					}
+				}
+			}
+		}
+	}
+}

+ 131 - 0
Util/Aliyun/Push/Model/V20160801/ListPushRecordsRequest.cs

@@ -0,0 +1,131 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class ListPushRecordsRequest : RpcAcsRequest<ListPushRecordsResponse>
+    {
+        public ListPushRecordsRequest()
+            : base("Push", "2016-08-01", "ListPushRecords")
+        {
+        }
+
+		private long? appKey;
+
+		private string pushType;
+
+		private string startTime;
+
+		private string endTime;
+
+		private int? page;
+
+		private int? pageSize;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string PushType
+		{
+			get
+			{
+				return pushType;
+			}
+			set	
+			{
+				pushType = value;
+				DictionaryUtil.Add(QueryParameters, "PushType", value);
+			}
+		}
+
+		public string StartTime
+		{
+			get
+			{
+				return startTime;
+			}
+			set	
+			{
+				startTime = value;
+				DictionaryUtil.Add(QueryParameters, "StartTime", value);
+			}
+		}
+
+		public string EndTime
+		{
+			get
+			{
+				return endTime;
+			}
+			set	
+			{
+				endTime = value;
+				DictionaryUtil.Add(QueryParameters, "EndTime", value);
+			}
+		}
+
+		public int? Page
+		{
+			get
+			{
+				return page;
+			}
+			set	
+			{
+				page = value;
+				DictionaryUtil.Add(QueryParameters, "Page", value.ToString());
+			}
+		}
+
+		public int? PageSize
+		{
+			get
+			{
+				return pageSize;
+			}
+			set	
+			{
+				pageSize = value;
+				DictionaryUtil.Add(QueryParameters, "PageSize", value.ToString());
+			}
+		}
+
+        public override ListPushRecordsResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return ListPushRecordsResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 198 - 0
Util/Aliyun/Push/Model/V20160801/ListPushRecordsResponse.cs

@@ -0,0 +1,198 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class ListPushRecordsResponse : AcsResponse
+	{
+
+		private int? total;
+
+		private int? page;
+
+		private int? pageSize;
+
+		private List<PushMessageInfo> pushMessageInfos;
+
+		public int? Total
+		{
+			get
+			{
+				return total;
+			}
+			set	
+			{
+				total = value;
+			}
+		}
+
+		public int? Page
+		{
+			get
+			{
+				return page;
+			}
+			set	
+			{
+				page = value;
+			}
+		}
+
+		public int? PageSize
+		{
+			get
+			{
+				return pageSize;
+			}
+			set	
+			{
+				pageSize = value;
+			}
+		}
+
+		public List<PushMessageInfo> PushMessageInfos
+		{
+			get
+			{
+				return pushMessageInfos;
+			}
+			set	
+			{
+				pushMessageInfos = value;
+			}
+		}
+
+		public class PushMessageInfo{
+
+			private long? appKey;
+
+			private string appName;
+
+			private string messageId;
+
+			private string type;
+
+			private string deviceType;
+
+			private string pushTime;
+
+			private string title;
+
+			private string body;
+
+			public long? AppKey
+			{
+				get
+				{
+					return appKey;
+				}
+				set	
+				{
+					appKey = value;
+				}
+			}
+
+			public string AppName
+			{
+				get
+				{
+					return appName;
+				}
+				set	
+				{
+					appName = value;
+				}
+			}
+
+			public string MessageId
+			{
+				get
+				{
+					return messageId;
+				}
+				set	
+				{
+					messageId = value;
+				}
+			}
+
+			public string Type
+			{
+				get
+				{
+					return type;
+				}
+				set	
+				{
+					type = value;
+				}
+			}
+
+			public string DeviceType
+			{
+				get
+				{
+					return deviceType;
+				}
+				set	
+				{
+					deviceType = value;
+				}
+			}
+
+			public string PushTime
+			{
+				get
+				{
+					return pushTime;
+				}
+				set	
+				{
+					pushTime = value;
+				}
+			}
+
+			public string Title
+			{
+				get
+				{
+					return title;
+				}
+				set	
+				{
+					title = value;
+				}
+			}
+
+			public string Body
+			{
+				get
+				{
+					return body;
+				}
+				set	
+				{
+					body = value;
+				}
+			}
+		}
+	}
+}

+ 41 - 0
Util/Aliyun/Push/Model/V20160801/ListSummaryAppsRequest.cs

@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class ListSummaryAppsRequest : RpcAcsRequest<ListSummaryAppsResponse>
+    {
+        public ListSummaryAppsRequest()
+            : base("Push", "2016-08-01", "ListSummaryApps")
+        {
+        }
+
+        public override ListSummaryAppsResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return ListSummaryAppsResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 72 - 0
Util/Aliyun/Push/Model/V20160801/ListSummaryAppsResponse.cs

@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class ListSummaryAppsResponse : AcsResponse
+	{
+
+		private List<SummaryAppInfo> summaryAppInfos;
+
+		public List<SummaryAppInfo> SummaryAppInfos
+		{
+			get
+			{
+				return summaryAppInfos;
+			}
+			set	
+			{
+				summaryAppInfos = value;
+			}
+		}
+
+		public class SummaryAppInfo{
+
+			private string appName;
+
+			private long? appKey;
+
+			public string AppName
+			{
+				get
+				{
+					return appName;
+				}
+				set	
+				{
+					appName = value;
+				}
+			}
+
+			public long? AppKey
+			{
+				get
+				{
+					return appKey;
+				}
+				set	
+				{
+					appKey = value;
+				}
+			}
+		}
+	}
+}

+ 56 - 0
Util/Aliyun/Push/Model/V20160801/ListTagsRequest.cs

@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class ListTagsRequest : RpcAcsRequest<ListTagsResponse>
+    {
+        public ListTagsRequest()
+            : base("Push", "2016-08-01", "ListTags")
+        {
+        }
+
+		private long? appKey;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+        public override ListTagsResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return ListTagsResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 58 - 0
Util/Aliyun/Push/Model/V20160801/ListTagsResponse.cs

@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class ListTagsResponse : AcsResponse
+	{
+
+		private List<TagInfo> tagInfos;
+
+		public List<TagInfo> TagInfos
+		{
+			get
+			{
+				return tagInfos;
+			}
+			set	
+			{
+				tagInfos = value;
+			}
+		}
+
+		public class TagInfo{
+
+			private string tagName;
+
+			public string TagName
+			{
+				get
+				{
+					return tagName;
+				}
+				set	
+				{
+					tagName = value;
+				}
+			}
+		}
+	}
+}

+ 41 - 0
Util/Aliyun/Push/Model/V20160801/ListTinyAppsRequest.cs

@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class ListTinyAppsRequest : RpcAcsRequest<ListTinyAppsResponse>
+    {
+        public ListTinyAppsRequest()
+            : base("Push", "2016-08-01", "ListTinyApps")
+        {
+        }
+
+        public override ListTinyAppsResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return ListTinyAppsResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 86 - 0
Util/Aliyun/Push/Model/V20160801/ListTinyAppsResponse.cs

@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class ListTinyAppsResponse : AcsResponse
+	{
+
+		private List<TinyAppInfo> tinyAppInfos;
+
+		public List<TinyAppInfo> TinyAppInfos
+		{
+			get
+			{
+				return tinyAppInfos;
+			}
+			set	
+			{
+				tinyAppInfos = value;
+			}
+		}
+
+		public class TinyAppInfo{
+
+			private string appName;
+
+			private string platform;
+
+			private long? appKey;
+
+			public string AppName
+			{
+				get
+				{
+					return appName;
+				}
+				set	
+				{
+					appName = value;
+				}
+			}
+
+			public string Platform
+			{
+				get
+				{
+					return platform;
+				}
+				set	
+				{
+					platform = value;
+				}
+			}
+
+			public long? AppKey
+			{
+				get
+				{
+					return appKey;
+				}
+				set	
+				{
+					appKey = value;
+				}
+			}
+		}
+	}
+}

+ 161 - 0
Util/Aliyun/Push/Model/V20160801/ModifyAppConfigRequest.cs

@@ -0,0 +1,161 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class ModifyAppConfigRequest : RpcAcsRequest<ModifyAppConfigResponse>
+    {
+        public ModifyAppConfigRequest()
+            : base("Push", "2016-08-01", "ModifyAppConfig")
+        {
+        }
+
+		private long? appKey;
+
+		private string packageName;
+
+		private string devCertKey;
+
+		private string devCertPass;
+
+		private string productCertKey;
+
+		private string productCertPass;
+
+		private string bundleId;
+
+		private bool? boxFlag;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string PackageName
+		{
+			get
+			{
+				return packageName;
+			}
+			set	
+			{
+				packageName = value;
+				DictionaryUtil.Add(QueryParameters, "PackageName", value);
+			}
+		}
+
+		public string DevCertKey
+		{
+			get
+			{
+				return devCertKey;
+			}
+			set	
+			{
+				devCertKey = value;
+				DictionaryUtil.Add(QueryParameters, "DevCertKey", value);
+			}
+		}
+
+		public string DevCertPass
+		{
+			get
+			{
+				return devCertPass;
+			}
+			set	
+			{
+				devCertPass = value;
+				DictionaryUtil.Add(QueryParameters, "DevCertPass", value);
+			}
+		}
+
+		public string ProductCertKey
+		{
+			get
+			{
+				return productCertKey;
+			}
+			set	
+			{
+				productCertKey = value;
+				DictionaryUtil.Add(QueryParameters, "ProductCertKey", value);
+			}
+		}
+
+		public string ProductCertPass
+		{
+			get
+			{
+				return productCertPass;
+			}
+			set	
+			{
+				productCertPass = value;
+				DictionaryUtil.Add(QueryParameters, "ProductCertPass", value);
+			}
+		}
+
+		public string BundleId
+		{
+			get
+			{
+				return bundleId;
+			}
+			set	
+			{
+				bundleId = value;
+				DictionaryUtil.Add(QueryParameters, "BundleId", value);
+			}
+		}
+
+		public bool? BoxFlag
+		{
+			get
+			{
+				return boxFlag;
+			}
+			set	
+			{
+				boxFlag = value;
+				DictionaryUtil.Add(QueryParameters, "BoxFlag", value.ToString());
+			}
+		}
+
+        public override ModifyAppConfigResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return ModifyAppConfigResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 27 - 0
Util/Aliyun/Push/Model/V20160801/ModifyAppConfigResponse.cs

@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class ModifyAppConfigResponse : AcsResponse
+	{
+	}
+}

+ 101 - 0
Util/Aliyun/Push/Model/V20160801/ModifyAppExtensionsRequest.cs

@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class ModifyAppExtensionsRequest : RpcAcsRequest<ModifyAppExtensionsResponse>
+    {
+        public ModifyAppExtensionsRequest()
+            : base("Push", "2016-08-01", "ModifyAppExtensions")
+        {
+        }
+
+		private long? appKey;
+
+		private string xmAppSecretKey;
+
+		private string hwAppKey;
+
+		private string hwAppSecretKey;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string XmAppSecretKey
+		{
+			get
+			{
+				return xmAppSecretKey;
+			}
+			set	
+			{
+				xmAppSecretKey = value;
+				DictionaryUtil.Add(QueryParameters, "XmAppSecretKey", value);
+			}
+		}
+
+		public string HwAppKey
+		{
+			get
+			{
+				return hwAppKey;
+			}
+			set	
+			{
+				hwAppKey = value;
+				DictionaryUtil.Add(QueryParameters, "HwAppKey", value);
+			}
+		}
+
+		public string HwAppSecretKey
+		{
+			get
+			{
+				return hwAppSecretKey;
+			}
+			set	
+			{
+				hwAppSecretKey = value;
+				DictionaryUtil.Add(QueryParameters, "HwAppSecretKey", value);
+			}
+		}
+
+        public override ModifyAppExtensionsResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return ModifyAppExtensionsResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 27 - 0
Util/Aliyun/Push/Model/V20160801/ModifyAppExtensionsResponse.cs

@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class ModifyAppExtensionsResponse : AcsResponse
+	{
+	}
+}

+ 116 - 0
Util/Aliyun/Push/Model/V20160801/PushMessageToAndroidRequest.cs

@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class PushMessageToAndroidRequest : RpcAcsRequest<PushMessageToAndroidResponse>
+    {
+        public PushMessageToAndroidRequest()
+            : base("Push", "2016-08-01", "PushMessageToAndroid")
+        {
+        }
+
+		private long? appKey;
+
+		private string target;
+
+		private string targetValue;
+
+		private string title;
+
+		private string body;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string Target
+		{
+			get
+			{
+				return target;
+			}
+			set	
+			{
+				target = value;
+				DictionaryUtil.Add(QueryParameters, "Target", value);
+			}
+		}
+
+		public string TargetValue
+		{
+			get
+			{
+				return targetValue;
+			}
+			set	
+			{
+				targetValue = value;
+				DictionaryUtil.Add(QueryParameters, "TargetValue", value);
+			}
+		}
+
+		public string Title
+		{
+			get
+			{
+				return title;
+			}
+			set	
+			{
+				title = value;
+				DictionaryUtil.Add(QueryParameters, "Title", value);
+			}
+		}
+
+		public string Body
+		{
+			get
+			{
+				return body;
+			}
+			set	
+			{
+				body = value;
+				DictionaryUtil.Add(QueryParameters, "Body", value);
+			}
+		}
+
+        public override PushMessageToAndroidResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return PushMessageToAndroidResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 41 - 0
Util/Aliyun/Push/Model/V20160801/PushMessageToAndroidResponse.cs

@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class PushMessageToAndroidResponse : AcsResponse
+	{
+
+		private string messageId;
+
+		public string MessageId
+		{
+			get
+			{
+				return messageId;
+			}
+			set	
+			{
+				messageId = value;
+			}
+		}
+	}
+}

+ 116 - 0
Util/Aliyun/Push/Model/V20160801/PushMessageToiOSRequest.cs

@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class PushMessageToiOSRequest : RpcAcsRequest<PushMessageToiOSResponse>
+    {
+        public PushMessageToiOSRequest()
+            : base("Push", "2016-08-01", "PushMessageToiOS")
+        {
+        }
+
+		private long? appKey;
+
+		private string target;
+
+		private string targetValue;
+
+		private string title;
+
+		private string body;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string Target
+		{
+			get
+			{
+				return target;
+			}
+			set	
+			{
+				target = value;
+				DictionaryUtil.Add(QueryParameters, "Target", value);
+			}
+		}
+
+		public string TargetValue
+		{
+			get
+			{
+				return targetValue;
+			}
+			set	
+			{
+				targetValue = value;
+				DictionaryUtil.Add(QueryParameters, "TargetValue", value);
+			}
+		}
+
+		public string Title
+		{
+			get
+			{
+				return title;
+			}
+			set	
+			{
+				title = value;
+				DictionaryUtil.Add(QueryParameters, "Title", value);
+			}
+		}
+
+		public string Body
+		{
+			get
+			{
+				return body;
+			}
+			set	
+			{
+				body = value;
+				DictionaryUtil.Add(QueryParameters, "Body", value);
+			}
+		}
+
+        public override PushMessageToiOSResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return PushMessageToiOSResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 41 - 0
Util/Aliyun/Push/Model/V20160801/PushMessageToiOSResponse.cs

@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class PushMessageToiOSResponse : AcsResponse
+	{
+
+		private string messageId;
+
+		public string MessageId
+		{
+			get
+			{
+				return messageId;
+			}
+			set	
+			{
+				messageId = value;
+			}
+		}
+	}
+}

+ 131 - 0
Util/Aliyun/Push/Model/V20160801/PushNoticeToAndroidRequest.cs

@@ -0,0 +1,131 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class PushNoticeToAndroidRequest : RpcAcsRequest<PushNoticeToAndroidResponse>
+    {
+        public PushNoticeToAndroidRequest()
+            : base("Push", "2016-08-01", "PushNoticeToAndroid")
+        {
+        }
+
+		private long? appKey;
+
+		private string target;
+
+		private string targetValue;
+
+		private string title;
+
+		private string body;
+
+		private string extParameters;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string Target
+		{
+			get
+			{
+				return target;
+			}
+			set	
+			{
+				target = value;
+				DictionaryUtil.Add(QueryParameters, "Target", value);
+			}
+		}
+
+		public string TargetValue
+		{
+			get
+			{
+				return targetValue;
+			}
+			set	
+			{
+				targetValue = value;
+				DictionaryUtil.Add(QueryParameters, "TargetValue", value);
+			}
+		}
+
+		public string Title
+		{
+			get
+			{
+				return title;
+			}
+			set	
+			{
+				title = value;
+				DictionaryUtil.Add(QueryParameters, "Title", value);
+			}
+		}
+
+		public string Body
+		{
+			get
+			{
+				return body;
+			}
+			set	
+			{
+				body = value;
+				DictionaryUtil.Add(QueryParameters, "Body", value);
+			}
+		}
+
+		public string ExtParameters
+		{
+			get
+			{
+				return extParameters;
+			}
+			set	
+			{
+				extParameters = value;
+				DictionaryUtil.Add(QueryParameters, "ExtParameters", value);
+			}
+		}
+
+        public override PushNoticeToAndroidResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return PushNoticeToAndroidResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 41 - 0
Util/Aliyun/Push/Model/V20160801/PushNoticeToAndroidResponse.cs

@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class PushNoticeToAndroidResponse : AcsResponse
+	{
+
+		private string messageId;
+
+		public string MessageId
+		{
+			get
+			{
+				return messageId;
+			}
+			set	
+			{
+				messageId = value;
+			}
+		}
+	}
+}

+ 146 - 0
Util/Aliyun/Push/Model/V20160801/PushNoticeToiOSRequest.cs

@@ -0,0 +1,146 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class PushNoticeToiOSRequest : RpcAcsRequest<PushNoticeToiOSResponse>
+    {
+        public PushNoticeToiOSRequest()
+            : base("Push", "2016-08-01", "PushNoticeToiOS")
+        {
+        }
+
+		private long? appKey;
+
+		private string target;
+
+		private string targetValue;
+
+		private string apnsEnv;
+
+		private string title;
+
+		private string body;
+
+		private string extParameters;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string Target
+		{
+			get
+			{
+				return target;
+			}
+			set	
+			{
+				target = value;
+				DictionaryUtil.Add(QueryParameters, "Target", value);
+			}
+		}
+
+		public string TargetValue
+		{
+			get
+			{
+				return targetValue;
+			}
+			set	
+			{
+				targetValue = value;
+				DictionaryUtil.Add(QueryParameters, "TargetValue", value);
+			}
+		}
+
+		public string ApnsEnv
+		{
+			get
+			{
+				return apnsEnv;
+			}
+			set	
+			{
+				apnsEnv = value;
+				DictionaryUtil.Add(QueryParameters, "ApnsEnv", value);
+			}
+		}
+
+		public string Title
+		{
+			get
+			{
+				return title;
+			}
+			set	
+			{
+				title = value;
+				DictionaryUtil.Add(QueryParameters, "Title", value);
+			}
+		}
+
+		public string Body
+		{
+			get
+			{
+				return body;
+			}
+			set	
+			{
+				body = value;
+				DictionaryUtil.Add(QueryParameters, "Body", value);
+			}
+		}
+
+		public string ExtParameters
+		{
+			get
+			{
+				return extParameters;
+			}
+			set	
+			{
+				extParameters = value;
+				DictionaryUtil.Add(QueryParameters, "ExtParameters", value);
+			}
+		}
+
+        public override PushNoticeToiOSResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return PushNoticeToiOSResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 41 - 0
Util/Aliyun/Push/Model/V20160801/PushNoticeToiOSResponse.cs

@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class PushNoticeToiOSResponse : AcsResponse
+	{
+
+		private string messageId;
+
+		public string MessageId
+		{
+			get
+			{
+				return messageId;
+			}
+			set	
+			{
+				messageId = value;
+			}
+		}
+	}
+}

+ 611 - 0
Util/Aliyun/Push/Model/V20160801/PushRequest.cs

@@ -0,0 +1,611 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class PushRequest : RpcAcsRequest<PushResponse>
+    {
+        public PushRequest()
+            : base("Push", "2016-08-01", "Push")
+        {
+        }
+
+		private long? appKey;
+
+		private string target;
+
+		private string targetValue;
+
+		private string pushType;
+
+		private string deviceType;
+
+		private string title;
+
+		private string body;
+
+		private string jobKey;
+
+		private string pushTime;
+
+		private string expireTime;
+
+		private bool? storeOffline;
+
+		private string batchNumber;
+
+		private string androidNotifyType;
+
+		private string androidOpenType;
+
+		private string androidActivity;
+
+		private string androidOpenUrl;
+
+		private string androidXiaoMiActivity;
+
+		private string androidXiaoMiNotifyTitle;
+
+		private string androidXiaoMiNotifyBody;
+
+		private string androidPopupActivity;
+
+		private string androidPopupTitle;
+
+		private string androidPopupBody;
+
+		private string androidMusic;
+
+		private int? androidNotificationBarType;
+
+		private int? androidNotificationBarPriority;
+
+		private string androidExtParameters;
+
+		private bool? androidRemind;
+
+		private string androidNotificationChannel;
+
+		private string iOSApnsEnv;
+
+		private bool? iOSRemind;
+
+		private string iOSRemindBody;
+
+		private string iOSMusic;
+
+		private int? iOSBadge;
+
+		private bool? iOSSilentNotification;
+
+		private string iOSSubtitle;
+
+		private string iOSNotificationCategory;
+
+		private bool? iOSMutableContent;
+
+		private string iOSExtParameters;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string Target
+		{
+			get
+			{
+				return target;
+			}
+			set	
+			{
+				target = value;
+				DictionaryUtil.Add(QueryParameters, "Target", value);
+			}
+		}
+
+		public string TargetValue
+		{
+			get
+			{
+				return targetValue;
+			}
+			set	
+			{
+				targetValue = value;
+				DictionaryUtil.Add(QueryParameters, "TargetValue", value);
+			}
+		}
+
+		public string PushType
+		{
+			get
+			{
+				return pushType;
+			}
+			set	
+			{
+				pushType = value;
+				DictionaryUtil.Add(QueryParameters, "PushType", value);
+			}
+		}
+
+		public string DeviceType
+		{
+			get
+			{
+				return deviceType;
+			}
+			set	
+			{
+				deviceType = value;
+				DictionaryUtil.Add(QueryParameters, "DeviceType", value);
+			}
+		}
+
+		public string Title
+		{
+			get
+			{
+				return title;
+			}
+			set	
+			{
+				title = value;
+				DictionaryUtil.Add(QueryParameters, "Title", value);
+			}
+		}
+
+		public string Body
+		{
+			get
+			{
+				return body;
+			}
+			set	
+			{
+				body = value;
+				DictionaryUtil.Add(QueryParameters, "Body", value);
+			}
+		}
+
+		public string JobKey
+		{
+			get
+			{
+				return jobKey;
+			}
+			set
+			{
+				jobKey = value;
+				DictionaryUtil.Add(QueryParameters, "JobKey", value);
+			}
+		}
+
+		public string PushTime
+		{
+			get
+			{
+				return pushTime;
+			}
+			set	
+			{
+				pushTime = value;
+				DictionaryUtil.Add(QueryParameters, "PushTime", value);
+			}
+		}
+
+		public string ExpireTime
+		{
+			get
+			{
+				return expireTime;
+			}
+			set	
+			{
+				expireTime = value;
+				DictionaryUtil.Add(QueryParameters, "ExpireTime", value);
+			}
+		}
+
+		public bool? StoreOffline
+		{
+			get
+			{
+				return storeOffline;
+			}
+			set	
+			{
+				storeOffline = value;
+				DictionaryUtil.Add(QueryParameters, "StoreOffline", value.ToString());
+			}
+		}
+
+		public string BatchNumber
+		{
+			get
+			{
+				return batchNumber;
+			}
+			set	
+			{
+				batchNumber = value;
+				DictionaryUtil.Add(QueryParameters, "BatchNumber", value);
+			}
+		}
+
+		public string AndroidNotifyType
+		{
+			get
+			{
+				return androidNotifyType;
+			}
+			set	
+			{
+				androidNotifyType = value;
+				DictionaryUtil.Add(QueryParameters, "AndroidNotifyType", value);
+			}
+		}
+
+		public string AndroidOpenType
+		{
+			get
+			{
+				return androidOpenType;
+			}
+			set	
+			{
+				androidOpenType = value;
+				DictionaryUtil.Add(QueryParameters, "AndroidOpenType", value);
+			}
+		}
+
+		public string AndroidActivity
+		{
+			get
+			{
+				return androidActivity;
+			}
+			set	
+			{
+				androidActivity = value;
+				DictionaryUtil.Add(QueryParameters, "AndroidActivity", value);
+			}
+		}
+
+		public string AndroidOpenUrl
+		{
+			get
+			{
+				return androidOpenUrl;
+			}
+			set	
+			{
+				androidOpenUrl = value;
+				DictionaryUtil.Add(QueryParameters, "AndroidOpenUrl", value);
+			}
+		}
+
+		public string AndroidXiaoMiActivity
+		{
+			get
+			{
+				return androidXiaoMiActivity;
+			}
+			set	
+			{
+				androidXiaoMiActivity = value;
+				DictionaryUtil.Add(QueryParameters, "AndroidXiaoMiActivity", value);
+			}
+		}
+
+		public string AndroidXiaoMiNotifyTitle
+		{
+			get
+			{
+				return androidXiaoMiNotifyTitle;
+			}
+			set	
+			{
+				androidXiaoMiNotifyTitle = value;
+				DictionaryUtil.Add(QueryParameters, "AndroidXiaoMiNotifyTitle", value);
+			}
+		}
+
+		public string AndroidXiaoMiNotifyBody
+		{
+			get
+			{
+				return androidXiaoMiNotifyBody;
+			}
+			set	
+			{
+				androidXiaoMiNotifyBody = value;
+				DictionaryUtil.Add(QueryParameters, "AndroidXiaoMiNotifyBody", value);
+			}
+		}
+
+		public string AndroidPopupActivity
+		{
+			get
+			{
+				return androidPopupActivity;
+			}
+			set
+			{
+				androidPopupActivity = value;
+				DictionaryUtil.Add(QueryParameters, "AndroidPopupActivity", value);
+			}
+		}
+
+		public string AndroidPopupTitle
+		{
+			get
+			{
+				return androidPopupTitle;
+			}
+			set
+			{
+				androidPopupTitle = value;
+				DictionaryUtil.Add(QueryParameters, "AndroidPopupTitle", value);
+			}
+		}
+
+		public string AndroidPopupBody
+		{
+			get
+			{
+				return androidPopupBody;
+			}
+			set
+			{
+				androidPopupBody = value;
+				DictionaryUtil.Add(QueryParameters, "AndroidPopupBody", value);
+			}
+		}
+
+		public string AndroidMusic
+		{
+			get
+			{
+				return androidMusic;
+			}
+			set	
+			{
+				androidMusic = value;
+				DictionaryUtil.Add(QueryParameters, "AndroidMusic", value);
+			}
+		}
+
+		public int? AndroidNotificationBarType
+		{
+			get
+			{
+				return androidNotificationBarType;
+			}
+			set	
+			{
+				androidNotificationBarType = value;
+				DictionaryUtil.Add(QueryParameters, "AndroidNotificationBarType", value.ToString());
+			}
+		}
+
+		public int? AndroidNotificationBarPriority
+		{
+			get
+			{
+				return androidNotificationBarPriority;
+			}
+			set	
+			{
+				androidNotificationBarPriority = value;
+				DictionaryUtil.Add(QueryParameters, "AndroidNotificationBarPriority", value.ToString());
+			}
+		}
+
+		public string AndroidExtParameters
+		{
+			get
+			{
+				return androidExtParameters;
+			}
+			set	
+			{
+				androidExtParameters = value;
+				DictionaryUtil.Add(QueryParameters, "AndroidExtParameters", value);
+			}
+		}
+
+		public bool? AndroidRemind
+		{
+			get
+			{
+				return androidRemind;
+			}
+			set
+			{
+				androidRemind = value;
+				DictionaryUtil.Add(QueryParameters, "AndroidRemind", value.ToString());
+			}
+		}
+
+		public string AndroidNotificationChannel
+		{
+			get
+			{
+				return androidNotificationChannel;
+			}
+			set
+			{
+				androidNotificationChannel = value;
+				DictionaryUtil.Add(QueryParameters, "AndroidNotificationChannel", value.ToString());
+			}
+		}
+
+		public string IOSApnsEnv
+		{
+			get
+			{
+				return iOSApnsEnv;
+			}
+			set	
+			{
+				iOSApnsEnv = value;
+				DictionaryUtil.Add(QueryParameters, "iOSApnsEnv", value);
+			}
+		}
+
+		public bool? IOSRemind
+		{
+			get
+			{
+				return iOSRemind;
+			}
+			set	
+			{
+				iOSRemind = value;
+				DictionaryUtil.Add(QueryParameters, "iOSRemind", value.ToString());
+			}
+		}
+
+		public string IOSRemindBody
+		{
+			get
+			{
+				return iOSRemindBody;
+			}
+			set	
+			{
+				iOSRemindBody = value;
+				DictionaryUtil.Add(QueryParameters, "iOSRemindBody", value);
+			}
+		}
+
+		public string IOSMusic
+		{
+			get
+			{
+				return iOSMusic;
+			}
+			set	
+			{
+				iOSMusic = value;
+				DictionaryUtil.Add(QueryParameters, "iOSMusic", value);
+			}
+		}
+
+		public int? IOSBadge
+		{
+			get
+			{
+				return iOSBadge;
+			}
+			set	
+			{
+				iOSBadge = value;
+				DictionaryUtil.Add(QueryParameters, "iOSBadge", value.ToString());
+			}
+		}
+
+		public bool? IOSSilentNotification
+		{
+			get
+			{
+				return iOSSilentNotification;
+			}
+			set	
+			{
+				iOSSilentNotification = value;
+				DictionaryUtil.Add(QueryParameters, "iOSSilentNotification", value.ToString());
+			}
+		}
+
+		public string IOSSubtitle
+		{
+			get
+			{
+				return iOSSubtitle;
+			}
+			set	
+			{
+				iOSSubtitle = value;
+				DictionaryUtil.Add(QueryParameters, "iOSSubtitle", value);
+			}
+		}
+
+		public string IOSNotificationCategory
+		{
+			get
+			{
+				return iOSNotificationCategory;
+			}
+			set	
+			{
+				iOSNotificationCategory = value;
+				DictionaryUtil.Add(QueryParameters, "iOSNotificationCategory", value);
+			}
+		}
+
+		public bool? IOSMutableContent
+		{
+			get
+			{
+				return iOSMutableContent;
+			}
+			set	
+			{
+				iOSMutableContent = value;
+				DictionaryUtil.Add(QueryParameters, "iOSMutableContent", value.ToString());
+			}
+		}
+
+		public string IOSExtParameters
+		{
+			get
+			{
+				return iOSExtParameters;
+			}
+			set	
+			{
+				iOSExtParameters = value;
+				DictionaryUtil.Add(QueryParameters, "iOSExtParameters", value);
+			}
+		}
+
+        public override PushResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return PushResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 41 - 0
Util/Aliyun/Push/Model/V20160801/PushResponse.cs

@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class PushResponse : AcsResponse
+	{
+
+		private string messageId;
+
+		public string MessageId
+		{
+			get
+			{
+				return messageId;
+			}
+			set	
+			{
+				messageId = value;
+			}
+		}
+	}
+}

+ 71 - 0
Util/Aliyun/Push/Model/V20160801/QueryAliasRequest.cs

@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class QueryAliasRequest : RpcAcsRequest<QueryAliasResponse>
+    {
+        public QueryAliasRequest()
+            : base("Push", "2016-08-01", "QueryAlias")
+        {
+        }
+
+		private long? appKey;
+
+		private string deviceId;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string DeviceId
+		{
+			get
+			{
+				return deviceId;
+			}
+			set	
+			{
+				deviceId = value;
+				DictionaryUtil.Add(QueryParameters, "DeviceId", value);
+			}
+		}
+
+        public override QueryAliasResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return QueryAliasResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 58 - 0
Util/Aliyun/Push/Model/V20160801/QueryAliasResponse.cs

@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class QueryAliasResponse : AcsResponse
+	{
+
+		private List<AliasInfo> aliasInfos;
+
+		public List<AliasInfo> AliasInfos
+		{
+			get
+			{
+				return aliasInfos;
+			}
+			set	
+			{
+				aliasInfos = value;
+			}
+		}
+
+		public class AliasInfo{
+
+			private string aliasName;
+
+			public string AliasName
+			{
+				get
+				{
+					return aliasName;
+				}
+				set	
+				{
+					aliasName = value;
+				}
+			}
+		}
+	}
+}

+ 71 - 0
Util/Aliyun/Push/Model/V20160801/QueryAliasesRequest.cs

@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class QueryAliasesRequest : RpcAcsRequest<QueryAliasesResponse>
+    {
+        public QueryAliasesRequest()
+            : base("Push", "2016-08-01", "QueryAliases")
+        {
+        }
+
+		private long? appKey;
+
+		private string deviceId;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string DeviceId
+		{
+			get
+			{
+				return deviceId;
+			}
+			set	
+			{
+				deviceId = value;
+				DictionaryUtil.Add(QueryParameters, "DeviceId", value);
+			}
+		}
+
+        public override QueryAliasesResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return QueryAliasesResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 58 - 0
Util/Aliyun/Push/Model/V20160801/QueryAliasesResponse.cs

@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class QueryAliasesResponse : AcsResponse
+	{
+
+		private List<AliasInfo> aliasInfos;
+
+		public List<AliasInfo> AliasInfos
+		{
+			get
+			{
+				return aliasInfos;
+			}
+			set	
+			{
+				aliasInfos = value;
+			}
+		}
+
+		public class AliasInfo{
+
+			private string aliasName;
+
+			public string AliasName
+			{
+				get
+				{
+					return aliasName;
+				}
+				set	
+				{
+					aliasName = value;
+				}
+			}
+		}
+	}
+}

+ 56 - 0
Util/Aliyun/Push/Model/V20160801/QueryAppConfigRequest.cs

@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class QueryAppConfigRequest : RpcAcsRequest<QueryAppConfigResponse>
+    {
+        public QueryAppConfigRequest()
+            : base("Push", "2016-08-01", "QueryAppConfig")
+        {
+        }
+
+		private long? appKey;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+        public override QueryAppConfigResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return QueryAppConfigResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 212 - 0
Util/Aliyun/Push/Model/V20160801/QueryAppConfigResponse.cs

@@ -0,0 +1,212 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class QueryAppConfigResponse : AcsResponse
+	{
+
+		private AppConfig_ appConfig;
+
+		public AppConfig_ AppConfig
+		{
+			get
+			{
+				return appConfig;
+			}
+			set	
+			{
+				appConfig = value;
+			}
+		}
+
+		public class AppConfig_{
+
+			private long? appKey;
+
+			private string appId;
+
+			private string appName;
+
+			private string bundleId;
+
+			private string packageName;
+
+			private bool? boxFlag;
+
+			private bool? android;
+
+			private bool? iOS;
+
+			private string productCertKey;
+
+			private string productCertPass;
+
+			private string devCertKey;
+
+			private string devCertPass;
+
+			public long? AppKey
+			{
+				get
+				{
+					return appKey;
+				}
+				set	
+				{
+					appKey = value;
+				}
+			}
+
+			public string AppId
+			{
+				get
+				{
+					return appId;
+				}
+				set	
+				{
+					appId = value;
+				}
+			}
+
+			public string AppName
+			{
+				get
+				{
+					return appName;
+				}
+				set	
+				{
+					appName = value;
+				}
+			}
+
+			public string BundleId
+			{
+				get
+				{
+					return bundleId;
+				}
+				set	
+				{
+					bundleId = value;
+				}
+			}
+
+			public string PackageName
+			{
+				get
+				{
+					return packageName;
+				}
+				set	
+				{
+					packageName = value;
+				}
+			}
+
+			public bool? BoxFlag
+			{
+				get
+				{
+					return boxFlag;
+				}
+				set	
+				{
+					boxFlag = value;
+				}
+			}
+
+			public bool? Android
+			{
+				get
+				{
+					return android;
+				}
+				set	
+				{
+					android = value;
+				}
+			}
+
+			public bool? IOS
+			{
+				get
+				{
+					return iOS;
+				}
+				set	
+				{
+					iOS = value;
+				}
+			}
+
+			public string ProductCertKey
+			{
+				get
+				{
+					return productCertKey;
+				}
+				set	
+				{
+					productCertKey = value;
+				}
+			}
+
+			public string ProductCertPass
+			{
+				get
+				{
+					return productCertPass;
+				}
+				set	
+				{
+					productCertPass = value;
+				}
+			}
+
+			public string DevCertKey
+			{
+				get
+				{
+					return devCertKey;
+				}
+				set	
+				{
+					devCertKey = value;
+				}
+			}
+
+			public string DevCertPass
+			{
+				get
+				{
+					return devCertPass;
+				}
+				set	
+				{
+					devCertPass = value;
+				}
+			}
+		}
+	}
+}

+ 56 - 0
Util/Aliyun/Push/Model/V20160801/QueryAppInfoRequest.cs

@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class QueryAppInfoRequest : RpcAcsRequest<QueryAppInfoResponse>
+    {
+        public QueryAppInfoRequest()
+            : base("Push", "2016-08-01", "QueryAppInfo")
+        {
+        }
+
+		private long? appKey;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+        public override QueryAppInfoResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return QueryAppInfoResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 257 - 0
Util/Aliyun/Push/Model/V20160801/QueryAppInfoResponse.cs

@@ -0,0 +1,257 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class QueryAppInfoResponse : AcsResponse
+	{
+
+		private AppInfo_ appInfo;
+
+		public AppInfo_ AppInfo
+		{
+			get
+			{
+				return appInfo;
+			}
+			set	
+			{
+				appInfo = value;
+			}
+		}
+
+		public class AppInfo_{
+
+			private long? appKey;
+
+			private string appId;
+
+			private string pushAppId;
+
+			private string appName;
+
+			private string description;
+
+			private int? industryId;
+
+			private int? androidStatus;
+
+			private int? iOSStatus;
+
+			private long? deviceCount;
+
+			private int? appStatus;
+
+			private int? status;
+
+			private Extension_ extension;
+
+			public long? AppKey
+			{
+				get
+				{
+					return appKey;
+				}
+				set	
+				{
+					appKey = value;
+				}
+			}
+
+			public string AppId
+			{
+				get
+				{
+					return appId;
+				}
+				set	
+				{
+					appId = value;
+				}
+			}
+
+			public string PushAppId
+			{
+				get
+				{
+					return pushAppId;
+				}
+				set	
+				{
+					pushAppId = value;
+				}
+			}
+
+			public string AppName
+			{
+				get
+				{
+					return appName;
+				}
+				set	
+				{
+					appName = value;
+				}
+			}
+
+			public string Description
+			{
+				get
+				{
+					return description;
+				}
+				set	
+				{
+					description = value;
+				}
+			}
+
+			public int? IndustryId
+			{
+				get
+				{
+					return industryId;
+				}
+				set	
+				{
+					industryId = value;
+				}
+			}
+
+			public int? AndroidStatus
+			{
+				get
+				{
+					return androidStatus;
+				}
+				set	
+				{
+					androidStatus = value;
+				}
+			}
+
+			public int? IOSStatus
+			{
+				get
+				{
+					return iOSStatus;
+				}
+				set	
+				{
+					iOSStatus = value;
+				}
+			}
+
+			public long? DeviceCount
+			{
+				get
+				{
+					return deviceCount;
+				}
+				set	
+				{
+					deviceCount = value;
+				}
+			}
+
+			public int? AppStatus
+			{
+				get
+				{
+					return appStatus;
+				}
+				set	
+				{
+					appStatus = value;
+				}
+			}
+
+			public int? Status
+			{
+				get
+				{
+					return status;
+				}
+				set	
+				{
+					status = value;
+				}
+			}
+
+			public Extension_ Extension
+			{
+				get
+				{
+					return extension;
+				}
+				set	
+				{
+					extension = value;
+				}
+			}
+
+			public class Extension_{
+
+				private string xmAppSecretKey;
+
+				private string hwAppKey;
+
+				private string hwAppSecretKey;
+
+				public string XmAppSecretKey
+				{
+					get
+					{
+						return xmAppSecretKey;
+					}
+					set	
+					{
+						xmAppSecretKey = value;
+					}
+				}
+
+				public string HwAppKey
+				{
+					get
+					{
+						return hwAppKey;
+					}
+					set	
+					{
+						hwAppKey = value;
+					}
+				}
+
+				public string HwAppSecretKey
+				{
+					get
+					{
+						return hwAppSecretKey;
+					}
+					set	
+					{
+						hwAppSecretKey = value;
+					}
+				}
+			}
+		}
+	}
+}

+ 101 - 0
Util/Aliyun/Push/Model/V20160801/QueryAppPushStatRequest.cs

@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class QueryAppPushStatRequest : RpcAcsRequest<QueryAppPushStatResponse>
+    {
+        public QueryAppPushStatRequest()
+            : base("Push", "2016-08-01", "QueryAppPushStat")
+        {
+        }
+
+		private long? appKey;
+
+		private string startTime;
+
+		private string endTime;
+
+		private string granularity;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string StartTime
+		{
+			get
+			{
+				return startTime;
+			}
+			set	
+			{
+				startTime = value;
+				DictionaryUtil.Add(QueryParameters, "StartTime", value);
+			}
+		}
+
+		public string EndTime
+		{
+			get
+			{
+				return endTime;
+			}
+			set	
+			{
+				endTime = value;
+				DictionaryUtil.Add(QueryParameters, "EndTime", value);
+			}
+		}
+
+		public string Granularity
+		{
+			get
+			{
+				return granularity;
+			}
+			set	
+			{
+				granularity = value;
+				DictionaryUtil.Add(QueryParameters, "Granularity", value);
+			}
+		}
+
+        public override QueryAppPushStatResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return QueryAppPushStatResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 114 - 0
Util/Aliyun/Push/Model/V20160801/QueryAppPushStatResponse.cs

@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class QueryAppPushStatResponse : AcsResponse
+	{
+
+		private List<AppPushStat> appPushStats;
+
+		public List<AppPushStat> AppPushStats
+		{
+			get
+			{
+				return appPushStats;
+			}
+			set	
+			{
+				appPushStats = value;
+			}
+		}
+
+		public class AppPushStat{
+
+			private string time;
+
+			private long? sentCount;
+
+			private long? receivedCount;
+
+			private long? openedCount;
+
+			private long? deletedCount;
+
+			public string Time
+			{
+				get
+				{
+					return time;
+				}
+				set	
+				{
+					time = value;
+				}
+			}
+
+			public long? SentCount
+			{
+				get
+				{
+					return sentCount;
+				}
+				set	
+				{
+					sentCount = value;
+				}
+			}
+
+			public long? ReceivedCount
+			{
+				get
+				{
+					return receivedCount;
+				}
+				set	
+				{
+					receivedCount = value;
+				}
+			}
+
+			public long? OpenedCount
+			{
+				get
+				{
+					return openedCount;
+				}
+				set	
+				{
+					openedCount = value;
+				}
+			}
+
+			public long? DeletedCount
+			{
+				get
+				{
+					return deletedCount;
+				}
+				set	
+				{
+					deletedCount = value;
+				}
+			}
+		}
+	}
+}

+ 56 - 0
Util/Aliyun/Push/Model/V20160801/QueryAppSecurityInfoRequest.cs

@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class QueryAppSecurityInfoRequest : RpcAcsRequest<QueryAppSecurityInfoResponse>
+    {
+        public QueryAppSecurityInfoRequest()
+            : base("Push", "2016-08-01", "QueryAppSecurityInfo")
+        {
+        }
+
+		private long? appKey;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+        public override QueryAppSecurityInfoResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return QueryAppSecurityInfoResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 55 - 0
Util/Aliyun/Push/Model/V20160801/QueryAppSecurityInfoResponse.cs

@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class QueryAppSecurityInfoResponse : AcsResponse
+	{
+
+		private long? appKey;
+
+		private string appSecret;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+			}
+		}
+
+		public string AppSecret
+		{
+			get
+			{
+				return appSecret;
+			}
+			set	
+			{
+				appSecret = value;
+			}
+		}
+	}
+}

+ 71 - 0
Util/Aliyun/Push/Model/V20160801/QueryDeviceInfoRequest.cs

@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class QueryDeviceInfoRequest : RpcAcsRequest<QueryDeviceInfoResponse>
+    {
+        public QueryDeviceInfoRequest()
+            : base("Push", "2016-08-01", "QueryDeviceInfo")
+        {
+        }
+
+		private long? appKey;
+
+		private string deviceId;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string DeviceId
+		{
+			get
+			{
+				return deviceId;
+			}
+			set	
+			{
+				deviceId = value;
+				DictionaryUtil.Add(QueryParameters, "DeviceId", value);
+			}
+		}
+
+        public override QueryDeviceInfoResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return QueryDeviceInfoResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 156 - 0
Util/Aliyun/Push/Model/V20160801/QueryDeviceInfoResponse.cs

@@ -0,0 +1,156 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class QueryDeviceInfoResponse : AcsResponse
+	{
+
+		private DeviceInfo_ deviceInfo;
+
+		public DeviceInfo_ DeviceInfo
+		{
+			get
+			{
+				return deviceInfo;
+			}
+			set	
+			{
+				deviceInfo = value;
+			}
+		}
+
+		public class DeviceInfo_{
+
+			private string deviceId;
+
+			private string deviceType;
+
+			private string account;
+
+			private string deviceToken;
+
+			private string tags;
+
+			private string alias;
+
+			private string lastOnlineTime;
+
+			private bool? online;
+
+			public string DeviceId
+			{
+				get
+				{
+					return deviceId;
+				}
+				set	
+				{
+					deviceId = value;
+				}
+			}
+
+			public string DeviceType
+			{
+				get
+				{
+					return deviceType;
+				}
+				set	
+				{
+					deviceType = value;
+				}
+			}
+
+			public string Account
+			{
+				get
+				{
+					return account;
+				}
+				set	
+				{
+					account = value;
+				}
+			}
+
+			public string DeviceToken
+			{
+				get
+				{
+					return deviceToken;
+				}
+				set	
+				{
+					deviceToken = value;
+				}
+			}
+
+			public string Tags
+			{
+				get
+				{
+					return tags;
+				}
+				set	
+				{
+					tags = value;
+				}
+			}
+
+			public string Alias
+			{
+				get
+				{
+					return alias;
+				}
+				set	
+				{
+					alias = value;
+				}
+			}
+
+			public string LastOnlineTime
+			{
+				get
+				{
+					return lastOnlineTime;
+				}
+				set	
+				{
+					lastOnlineTime = value;
+				}
+			}
+
+			public bool? Online
+			{
+				get
+				{
+					return online;
+				}
+				set	
+				{
+					online = value;
+				}
+			}
+		}
+	}
+}

+ 116 - 0
Util/Aliyun/Push/Model/V20160801/QueryDeviceStatRequest.cs

@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class QueryDeviceStatRequest : RpcAcsRequest<QueryDeviceStatResponse>
+    {
+        public QueryDeviceStatRequest()
+            : base("Push", "2016-08-01", "QueryDeviceStat")
+        {
+        }
+
+		private long? appKey;
+
+		private string startTime;
+
+		private string endTime;
+
+		private string deviceType;
+
+		private string queryType;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string StartTime
+		{
+			get
+			{
+				return startTime;
+			}
+			set	
+			{
+				startTime = value;
+				DictionaryUtil.Add(QueryParameters, "StartTime", value);
+			}
+		}
+
+		public string EndTime
+		{
+			get
+			{
+				return endTime;
+			}
+			set	
+			{
+				endTime = value;
+				DictionaryUtil.Add(QueryParameters, "EndTime", value);
+			}
+		}
+
+		public string DeviceType
+		{
+			get
+			{
+				return deviceType;
+			}
+			set	
+			{
+				deviceType = value;
+				DictionaryUtil.Add(QueryParameters, "DeviceType", value);
+			}
+		}
+
+		public string QueryType
+		{
+			get
+			{
+				return queryType;
+			}
+			set	
+			{
+				queryType = value;
+				DictionaryUtil.Add(QueryParameters, "QueryType", value);
+			}
+		}
+
+        public override QueryDeviceStatResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return QueryDeviceStatResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 86 - 0
Util/Aliyun/Push/Model/V20160801/QueryDeviceStatResponse.cs

@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class QueryDeviceStatResponse : AcsResponse
+	{
+
+		private List<AppDeviceStat> appDeviceStats;
+
+		public List<AppDeviceStat> AppDeviceStats
+		{
+			get
+			{
+				return appDeviceStats;
+			}
+			set	
+			{
+				appDeviceStats = value;
+			}
+		}
+
+		public class AppDeviceStat{
+
+			private string time;
+
+			private long? count;
+
+			private string deviceType;
+
+			public string Time
+			{
+				get
+				{
+					return time;
+				}
+				set	
+				{
+					time = value;
+				}
+			}
+
+			public long? Count
+			{
+				get
+				{
+					return count;
+				}
+				set	
+				{
+					count = value;
+				}
+			}
+
+			public string DeviceType
+			{
+				get
+				{
+					return deviceType;
+				}
+				set	
+				{
+					deviceType = value;
+				}
+			}
+		}
+	}
+}

+ 71 - 0
Util/Aliyun/Push/Model/V20160801/QueryPushDetailRequest.cs

@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class QueryPushDetailRequest : RpcAcsRequest<QueryPushDetailResponse>
+    {
+        public QueryPushDetailRequest()
+            : base("Push", "2016-08-01", "QueryPushDetail")
+        {
+        }
+
+		private long? appKey;
+
+		private string messageId;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string MessageId
+		{
+			get
+			{
+				return messageId;
+			}
+			set	
+			{
+				messageId = value;
+				DictionaryUtil.Add(QueryParameters, "MessageId", value);
+			}
+		}
+
+        public override QueryPushDetailResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return QueryPushDetailResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 503 - 0
Util/Aliyun/Push/Model/V20160801/QueryPushDetailResponse.cs

@@ -0,0 +1,503 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class QueryPushDetailResponse : AcsResponse
+	{
+
+		private long? appKey;
+
+		private string target;
+
+		private string targetValue;
+
+		private string pushType;
+
+		private string deviceType;
+
+		private string title;
+
+		private string body;
+
+		private string pushTime;
+
+		private string expireTime;
+
+		private int? antiHarassStartTime;
+
+		private int? antiHarassDuration;
+
+		private bool? storeOffline;
+
+		private string batchNumber;
+
+		private string provinceId;
+
+		private string iOSApnsEnv;
+
+		private bool? iOSRemind;
+
+		private string iOSRemindBody;
+
+		private int? iOSBadge;
+
+		private string iOSMusic;
+
+		private string iOSSubtitle;
+
+		private string iOSNotificationCategory;
+
+		private bool? iOSMutableContent;
+
+		private string iOSExtParameters;
+
+		private string androidNotifyType;
+
+		private string androidOpenType;
+
+		private string androidActivity;
+
+		private string androidMusic;
+
+		private string androidOpenUrl;
+
+		private string androidXiaoMiActivity;
+
+		private string androidXiaoMiNotifyTitle;
+
+		private string androidXiaoMiNotifyBody;
+
+		private int? androidNotificationBarType;
+
+		private int? androidNotificationBarPriority;
+
+		private string androidExtParameters;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+			}
+		}
+
+		public string Target
+		{
+			get
+			{
+				return target;
+			}
+			set	
+			{
+				target = value;
+			}
+		}
+
+		public string TargetValue
+		{
+			get
+			{
+				return targetValue;
+			}
+			set	
+			{
+				targetValue = value;
+			}
+		}
+
+		public string PushType
+		{
+			get
+			{
+				return pushType;
+			}
+			set	
+			{
+				pushType = value;
+			}
+		}
+
+		public string DeviceType
+		{
+			get
+			{
+				return deviceType;
+			}
+			set	
+			{
+				deviceType = value;
+			}
+		}
+
+		public string Title
+		{
+			get
+			{
+				return title;
+			}
+			set	
+			{
+				title = value;
+			}
+		}
+
+		public string Body
+		{
+			get
+			{
+				return body;
+			}
+			set	
+			{
+				body = value;
+			}
+		}
+
+		public string PushTime
+		{
+			get
+			{
+				return pushTime;
+			}
+			set	
+			{
+				pushTime = value;
+			}
+		}
+
+		public string ExpireTime
+		{
+			get
+			{
+				return expireTime;
+			}
+			set	
+			{
+				expireTime = value;
+			}
+		}
+
+		public int? AntiHarassStartTime
+		{
+			get
+			{
+				return antiHarassStartTime;
+			}
+			set	
+			{
+				antiHarassStartTime = value;
+			}
+		}
+
+		public int? AntiHarassDuration
+		{
+			get
+			{
+				return antiHarassDuration;
+			}
+			set	
+			{
+				antiHarassDuration = value;
+			}
+		}
+
+		public bool? StoreOffline
+		{
+			get
+			{
+				return storeOffline;
+			}
+			set	
+			{
+				storeOffline = value;
+			}
+		}
+
+		public string BatchNumber
+		{
+			get
+			{
+				return batchNumber;
+			}
+			set	
+			{
+				batchNumber = value;
+			}
+		}
+
+		public string ProvinceId
+		{
+			get
+			{
+				return provinceId;
+			}
+			set	
+			{
+				provinceId = value;
+			}
+		}
+
+		public string IOSApnsEnv
+		{
+			get
+			{
+				return iOSApnsEnv;
+			}
+			set	
+			{
+				iOSApnsEnv = value;
+			}
+		}
+
+		public bool? IOSRemind
+		{
+			get
+			{
+				return iOSRemind;
+			}
+			set	
+			{
+				iOSRemind = value;
+			}
+		}
+
+		public string IOSRemindBody
+		{
+			get
+			{
+				return iOSRemindBody;
+			}
+			set	
+			{
+				iOSRemindBody = value;
+			}
+		}
+
+		public int? IOSBadge
+		{
+			get
+			{
+				return iOSBadge;
+			}
+			set	
+			{
+				iOSBadge = value;
+			}
+		}
+
+		public string IOSMusic
+		{
+			get
+			{
+				return iOSMusic;
+			}
+			set	
+			{
+				iOSMusic = value;
+			}
+		}
+
+		public string IOSSubtitle
+		{
+			get
+			{
+				return iOSSubtitle;
+			}
+			set	
+			{
+				iOSSubtitle = value;
+			}
+		}
+
+		public string IOSNotificationCategory
+		{
+			get
+			{
+				return iOSNotificationCategory;
+			}
+			set	
+			{
+				iOSNotificationCategory = value;
+			}
+		}
+
+		public bool? IOSMutableContent
+		{
+			get
+			{
+				return iOSMutableContent;
+			}
+			set	
+			{
+				iOSMutableContent = value;
+			}
+		}
+
+		public string IOSExtParameters
+		{
+			get
+			{
+				return iOSExtParameters;
+			}
+			set	
+			{
+				iOSExtParameters = value;
+			}
+		}
+
+		public string AndroidNotifyType
+		{
+			get
+			{
+				return androidNotifyType;
+			}
+			set	
+			{
+				androidNotifyType = value;
+			}
+		}
+
+		public string AndroidOpenType
+		{
+			get
+			{
+				return androidOpenType;
+			}
+			set	
+			{
+				androidOpenType = value;
+			}
+		}
+
+		public string AndroidActivity
+		{
+			get
+			{
+				return androidActivity;
+			}
+			set	
+			{
+				androidActivity = value;
+			}
+		}
+
+		public string AndroidMusic
+		{
+			get
+			{
+				return androidMusic;
+			}
+			set	
+			{
+				androidMusic = value;
+			}
+		}
+
+		public string AndroidOpenUrl
+		{
+			get
+			{
+				return androidOpenUrl;
+			}
+			set	
+			{
+				androidOpenUrl = value;
+			}
+		}
+
+		public string AndroidXiaoMiActivity
+		{
+			get
+			{
+				return androidXiaoMiActivity;
+			}
+			set	
+			{
+				androidXiaoMiActivity = value;
+			}
+		}
+
+		public string AndroidXiaoMiNotifyTitle
+		{
+			get
+			{
+				return androidXiaoMiNotifyTitle;
+			}
+			set	
+			{
+				androidXiaoMiNotifyTitle = value;
+			}
+		}
+
+		public string AndroidXiaoMiNotifyBody
+		{
+			get
+			{
+				return androidXiaoMiNotifyBody;
+			}
+			set	
+			{
+				androidXiaoMiNotifyBody = value;
+			}
+		}
+
+		public int? AndroidNotificationBarType
+		{
+			get
+			{
+				return androidNotificationBarType;
+			}
+			set	
+			{
+				androidNotificationBarType = value;
+			}
+		}
+
+		public int? AndroidNotificationBarPriority
+		{
+			get
+			{
+				return androidNotificationBarPriority;
+			}
+			set	
+			{
+				androidNotificationBarPriority = value;
+			}
+		}
+
+		public string AndroidExtParameters
+		{
+			get
+			{
+				return androidExtParameters;
+			}
+			set	
+			{
+				androidExtParameters = value;
+			}
+		}
+	}
+}

+ 101 - 0
Util/Aliyun/Push/Model/V20160801/QueryPushStatByAppRequest.cs

@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class QueryPushStatByAppRequest : RpcAcsRequest<QueryPushStatByAppResponse>
+    {
+        public QueryPushStatByAppRequest()
+            : base("Push", "2016-08-01", "QueryPushStatByApp")
+        {
+        }
+
+		private long? appKey;
+
+		private string startTime;
+
+		private string endTime;
+
+		private string granularity;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string StartTime
+		{
+			get
+			{
+				return startTime;
+			}
+			set	
+			{
+				startTime = value;
+				DictionaryUtil.Add(QueryParameters, "StartTime", value);
+			}
+		}
+
+		public string EndTime
+		{
+			get
+			{
+				return endTime;
+			}
+			set	
+			{
+				endTime = value;
+				DictionaryUtil.Add(QueryParameters, "EndTime", value);
+			}
+		}
+
+		public string Granularity
+		{
+			get
+			{
+				return granularity;
+			}
+			set	
+			{
+				granularity = value;
+				DictionaryUtil.Add(QueryParameters, "Granularity", value);
+			}
+		}
+
+        public override QueryPushStatByAppResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return QueryPushStatByAppResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 114 - 0
Util/Aliyun/Push/Model/V20160801/QueryPushStatByAppResponse.cs

@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class QueryPushStatByAppResponse : AcsResponse
+	{
+
+		private List<AppPushStat> appPushStats;
+
+		public List<AppPushStat> AppPushStats
+		{
+			get
+			{
+				return appPushStats;
+			}
+			set	
+			{
+				appPushStats = value;
+			}
+		}
+
+		public class AppPushStat{
+
+			private string time;
+
+			private long? sentCount;
+
+			private long? receivedCount;
+
+			private long? openedCount;
+
+			private long? deletedCount;
+
+			public string Time
+			{
+				get
+				{
+					return time;
+				}
+				set	
+				{
+					time = value;
+				}
+			}
+
+			public long? SentCount
+			{
+				get
+				{
+					return sentCount;
+				}
+				set	
+				{
+					sentCount = value;
+				}
+			}
+
+			public long? ReceivedCount
+			{
+				get
+				{
+					return receivedCount;
+				}
+				set	
+				{
+					receivedCount = value;
+				}
+			}
+
+			public long? OpenedCount
+			{
+				get
+				{
+					return openedCount;
+				}
+				set	
+				{
+					openedCount = value;
+				}
+			}
+
+			public long? DeletedCount
+			{
+				get
+				{
+					return deletedCount;
+				}
+				set	
+				{
+					deletedCount = value;
+				}
+			}
+		}
+	}
+}

+ 71 - 0
Util/Aliyun/Push/Model/V20160801/QueryPushStatByMsgRequest.cs

@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class QueryPushStatByMsgRequest : RpcAcsRequest<QueryPushStatByMsgResponse>
+    {
+        public QueryPushStatByMsgRequest()
+            : base("Push", "2016-08-01", "QueryPushStatByMsg")
+        {
+        }
+
+		private long? appKey;
+
+		private string messageId;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string MessageId
+		{
+			get
+			{
+				return messageId;
+			}
+			set	
+			{
+				messageId = value;
+				DictionaryUtil.Add(QueryParameters, "MessageId", value);
+			}
+		}
+
+        public override QueryPushStatByMsgResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return QueryPushStatByMsgResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 114 - 0
Util/Aliyun/Push/Model/V20160801/QueryPushStatByMsgResponse.cs

@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class QueryPushStatByMsgResponse : AcsResponse
+	{
+
+		private List<PushStat> pushStats;
+
+		public List<PushStat> PushStats
+		{
+			get
+			{
+				return pushStats;
+			}
+			set	
+			{
+				pushStats = value;
+			}
+		}
+
+		public class PushStat{
+
+			private string messageId;
+
+			private long? sentCount;
+
+			private long? receivedCount;
+
+			private long? openedCount;
+
+			private long? deletedCount;
+
+			public string MessageId
+			{
+				get
+				{
+					return messageId;
+				}
+				set	
+				{
+					messageId = value;
+				}
+			}
+
+			public long? SentCount
+			{
+				get
+				{
+					return sentCount;
+				}
+				set	
+				{
+					sentCount = value;
+				}
+			}
+
+			public long? ReceivedCount
+			{
+				get
+				{
+					return receivedCount;
+				}
+				set	
+				{
+					receivedCount = value;
+				}
+			}
+
+			public long? OpenedCount
+			{
+				get
+				{
+					return openedCount;
+				}
+				set	
+				{
+					openedCount = value;
+				}
+			}
+
+			public long? DeletedCount
+			{
+				get
+				{
+					return deletedCount;
+				}
+				set	
+				{
+					deletedCount = value;
+				}
+			}
+		}
+	}
+}

+ 71 - 0
Util/Aliyun/Push/Model/V20160801/QueryPushStatRequest.cs

@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class QueryPushStatRequest : RpcAcsRequest<QueryPushStatResponse>
+    {
+        public QueryPushStatRequest()
+            : base("Push", "2016-08-01", "QueryPushStat")
+        {
+        }
+
+		private long? appKey;
+
+		private string messageId;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string MessageId
+		{
+			get
+			{
+				return messageId;
+			}
+			set	
+			{
+				messageId = value;
+				DictionaryUtil.Add(QueryParameters, "MessageId", value);
+			}
+		}
+
+        public override QueryPushStatResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return QueryPushStatResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 114 - 0
Util/Aliyun/Push/Model/V20160801/QueryPushStatResponse.cs

@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class QueryPushStatResponse : AcsResponse
+	{
+
+		private List<PushStat> pushStats;
+
+		public List<PushStat> PushStats
+		{
+			get
+			{
+				return pushStats;
+			}
+			set	
+			{
+				pushStats = value;
+			}
+		}
+
+		public class PushStat{
+
+			private string messageId;
+
+			private long? sentCount;
+
+			private long? receivedCount;
+
+			private long? openedCount;
+
+			private long? deletedCount;
+
+			public string MessageId
+			{
+				get
+				{
+					return messageId;
+				}
+				set	
+				{
+					messageId = value;
+				}
+			}
+
+			public long? SentCount
+			{
+				get
+				{
+					return sentCount;
+				}
+				set	
+				{
+					sentCount = value;
+				}
+			}
+
+			public long? ReceivedCount
+			{
+				get
+				{
+					return receivedCount;
+				}
+				set	
+				{
+					receivedCount = value;
+				}
+			}
+
+			public long? OpenedCount
+			{
+				get
+				{
+					return openedCount;
+				}
+				set	
+				{
+					openedCount = value;
+				}
+			}
+
+			public long? DeletedCount
+			{
+				get
+				{
+					return deletedCount;
+				}
+				set	
+				{
+					deletedCount = value;
+				}
+			}
+		}
+	}
+}

+ 86 - 0
Util/Aliyun/Push/Model/V20160801/QueryTagsRequest.cs

@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class QueryTagsRequest : RpcAcsRequest<QueryTagsResponse>
+    {
+        public QueryTagsRequest()
+            : base("Push", "2016-08-01", "QueryTags")
+        {
+        }
+
+		private long? appKey;
+
+		private string clientKey;
+
+		private string keyType;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string ClientKey
+		{
+			get
+			{
+				return clientKey;
+			}
+			set	
+			{
+				clientKey = value;
+				DictionaryUtil.Add(QueryParameters, "ClientKey", value);
+			}
+		}
+
+		public string KeyType
+		{
+			get
+			{
+				return keyType;
+			}
+			set	
+			{
+				keyType = value;
+				DictionaryUtil.Add(QueryParameters, "KeyType", value);
+			}
+		}
+
+        public override QueryTagsResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return QueryTagsResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 58 - 0
Util/Aliyun/Push/Model/V20160801/QueryTagsResponse.cs

@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class QueryTagsResponse : AcsResponse
+	{
+
+		private List<TagInfo> tagInfos;
+
+		public List<TagInfo> TagInfos
+		{
+			get
+			{
+				return tagInfos;
+			}
+			set	
+			{
+				tagInfos = value;
+			}
+		}
+
+		public class TagInfo{
+
+			private string tagName;
+
+			public string TagName
+			{
+				get
+				{
+					return tagName;
+				}
+				set	
+				{
+					tagName = value;
+				}
+			}
+		}
+	}
+}

+ 101 - 0
Util/Aliyun/Push/Model/V20160801/QueryUniqueDeviceStatRequest.cs

@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class QueryUniqueDeviceStatRequest : RpcAcsRequest<QueryUniqueDeviceStatResponse>
+    {
+        public QueryUniqueDeviceStatRequest()
+            : base("Push", "2016-08-01", "QueryUniqueDeviceStat")
+        {
+        }
+
+		private long? appKey;
+
+		private string startTime;
+
+		private string endTime;
+
+		private string granularity;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string StartTime
+		{
+			get
+			{
+				return startTime;
+			}
+			set	
+			{
+				startTime = value;
+				DictionaryUtil.Add(QueryParameters, "StartTime", value);
+			}
+		}
+
+		public string EndTime
+		{
+			get
+			{
+				return endTime;
+			}
+			set	
+			{
+				endTime = value;
+				DictionaryUtil.Add(QueryParameters, "EndTime", value);
+			}
+		}
+
+		public string Granularity
+		{
+			get
+			{
+				return granularity;
+			}
+			set	
+			{
+				granularity = value;
+				DictionaryUtil.Add(QueryParameters, "Granularity", value);
+			}
+		}
+
+        public override QueryUniqueDeviceStatResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return QueryUniqueDeviceStatResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 72 - 0
Util/Aliyun/Push/Model/V20160801/QueryUniqueDeviceStatResponse.cs

@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class QueryUniqueDeviceStatResponse : AcsResponse
+	{
+
+		private List<AppDeviceStat> appDeviceStats;
+
+		public List<AppDeviceStat> AppDeviceStats
+		{
+			get
+			{
+				return appDeviceStats;
+			}
+			set	
+			{
+				appDeviceStats = value;
+			}
+		}
+
+		public class AppDeviceStat{
+
+			private string time;
+
+			private long? count;
+
+			public string Time
+			{
+				get
+				{
+					return time;
+				}
+				set	
+				{
+					time = value;
+				}
+			}
+
+			public long? Count
+			{
+				get
+				{
+					return count;
+				}
+				set	
+				{
+					count = value;
+				}
+			}
+		}
+	}
+}

+ 71 - 0
Util/Aliyun/Push/Model/V20160801/RemoveTagRequest.cs

@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class RemoveTagRequest : RpcAcsRequest<RemoveTagResponse>
+    {
+        public RemoveTagRequest()
+            : base("Push", "2016-08-01", "RemoveTag")
+        {
+        }
+
+		private long? appKey;
+
+		private string tagName;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string TagName
+		{
+			get
+			{
+				return tagName;
+			}
+			set	
+			{
+				tagName = value;
+				DictionaryUtil.Add(QueryParameters, "TagName", value);
+			}
+		}
+
+        public override RemoveTagResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return RemoveTagResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 27 - 0
Util/Aliyun/Push/Model/V20160801/RemoveTagResponse.cs

@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class RemoveTagResponse : AcsResponse
+	{
+	}
+}

+ 86 - 0
Util/Aliyun/Push/Model/V20160801/TracePushRequest.cs

@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class TracePushRequest : RpcAcsRequest<TracePushResponse>
+    {
+        public TracePushRequest()
+            : base("Push", "2016-08-01", "TracePush")
+        {
+        }
+
+		private long? appKey;
+
+		private string messageId;
+
+		private string deviceId;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string MessageId
+		{
+			get
+			{
+				return messageId;
+			}
+			set	
+			{
+				messageId = value;
+				DictionaryUtil.Add(QueryParameters, "MessageId", value);
+			}
+		}
+
+		public string DeviceId
+		{
+			get
+			{
+				return deviceId;
+			}
+			set	
+			{
+				deviceId = value;
+				DictionaryUtil.Add(QueryParameters, "DeviceId", value);
+			}
+		}
+
+        public override TracePushResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return TracePushResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 372 - 0
Util/Aliyun/Push/Model/V20160801/TracePushResponse.cs

@@ -0,0 +1,372 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class TracePushResponse : AcsResponse
+	{
+
+		private PushBasicInfo_ pushBasicInfo;
+
+		private PushTaskInfo_ pushTaskInfo;
+
+		private PushDeviceInfo_ pushDeviceInfo;
+
+		public PushBasicInfo_ PushBasicInfo
+		{
+			get
+			{
+				return pushBasicInfo;
+			}
+			set	
+			{
+				pushBasicInfo = value;
+			}
+		}
+
+		public PushTaskInfo_ PushTaskInfo
+		{
+			get
+			{
+				return pushTaskInfo;
+			}
+			set	
+			{
+				pushTaskInfo = value;
+			}
+		}
+
+		public PushDeviceInfo_ PushDeviceInfo
+		{
+			get
+			{
+				return pushDeviceInfo;
+			}
+			set	
+			{
+				pushDeviceInfo = value;
+			}
+		}
+
+		public class PushBasicInfo_{
+
+			private long? appId;
+
+			private string title;
+
+			private string targetType;
+
+			private string pushType;
+
+			private string pushTime;
+
+			private string expireTime;
+
+			public long? AppId
+			{
+				get
+				{
+					return appId;
+				}
+				set	
+				{
+					appId = value;
+				}
+			}
+
+			public string Title
+			{
+				get
+				{
+					return title;
+				}
+				set	
+				{
+					title = value;
+				}
+			}
+
+			public string TargetType
+			{
+				get
+				{
+					return targetType;
+				}
+				set	
+				{
+					targetType = value;
+				}
+			}
+
+			public string PushType
+			{
+				get
+				{
+					return pushType;
+				}
+				set	
+				{
+					pushType = value;
+				}
+			}
+
+			public string PushTime
+			{
+				get
+				{
+					return pushTime;
+				}
+				set	
+				{
+					pushTime = value;
+				}
+			}
+
+			public string ExpireTime
+			{
+				get
+				{
+					return expireTime;
+				}
+				set	
+				{
+					expireTime = value;
+				}
+			}
+		}
+
+		public class PushTaskInfo_{
+
+			private bool? broadcast;
+
+			private string acceptTime;
+
+			private string androidTaskStatus;
+
+			private string iOSTaskStatus;
+
+			private string androidTaskErrCode;
+
+			private string iOSTaskErrCode;
+
+			private List<string> deviceSet;
+
+			public bool? Broadcast
+			{
+				get
+				{
+					return broadcast;
+				}
+				set	
+				{
+					broadcast = value;
+				}
+			}
+
+			public string AcceptTime
+			{
+				get
+				{
+					return acceptTime;
+				}
+				set	
+				{
+					acceptTime = value;
+				}
+			}
+
+			public string AndroidTaskStatus
+			{
+				get
+				{
+					return androidTaskStatus;
+				}
+				set	
+				{
+					androidTaskStatus = value;
+				}
+			}
+
+			public string IOSTaskStatus
+			{
+				get
+				{
+					return iOSTaskStatus;
+				}
+				set	
+				{
+					iOSTaskStatus = value;
+				}
+			}
+
+			public string AndroidTaskErrCode
+			{
+				get
+				{
+					return androidTaskErrCode;
+				}
+				set	
+				{
+					androidTaskErrCode = value;
+				}
+			}
+
+			public string IOSTaskErrCode
+			{
+				get
+				{
+					return iOSTaskErrCode;
+				}
+				set	
+				{
+					iOSTaskErrCode = value;
+				}
+			}
+
+			public List<string> DeviceSet
+			{
+				get
+				{
+					return deviceSet;
+				}
+				set	
+				{
+					deviceSet = value;
+				}
+			}
+		}
+
+		public class PushDeviceInfo_{
+
+			private bool? online;
+
+			private string createTime;
+
+			private string sentTime;
+
+			private string arriveTime;
+
+			private string clickTime;
+
+			private string cleanTime;
+
+			private string deviceStatus;
+
+			private string deviceErrCode;
+
+			public bool? Online
+			{
+				get
+				{
+					return online;
+				}
+				set	
+				{
+					online = value;
+				}
+			}
+
+			public string CreateTime
+			{
+				get
+				{
+					return createTime;
+				}
+				set	
+				{
+					createTime = value;
+				}
+			}
+
+			public string SentTime
+			{
+				get
+				{
+					return sentTime;
+				}
+				set	
+				{
+					sentTime = value;
+				}
+			}
+
+			public string ArriveTime
+			{
+				get
+				{
+					return arriveTime;
+				}
+				set	
+				{
+					arriveTime = value;
+				}
+			}
+
+			public string ClickTime
+			{
+				get
+				{
+					return clickTime;
+				}
+				set	
+				{
+					clickTime = value;
+				}
+			}
+
+			public string CleanTime
+			{
+				get
+				{
+					return cleanTime;
+				}
+				set	
+				{
+					cleanTime = value;
+				}
+			}
+
+			public string DeviceStatus
+			{
+				get
+				{
+					return deviceStatus;
+				}
+				set	
+				{
+					deviceStatus = value;
+				}
+			}
+
+			public string DeviceErrCode
+			{
+				get
+				{
+					return deviceErrCode;
+				}
+				set	
+				{
+					deviceErrCode = value;
+				}
+			}
+		}
+	}
+}

+ 100 - 0
Util/Aliyun/Push/Model/V20160801/UnbindAliasRequest.cs

@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class UnbindAliasRequest : RpcAcsRequest<UnbindAliasResponse>
+    {
+        public UnbindAliasRequest()
+            : base("Push", "2016-08-01", "UnbindAlias")
+        {
+        }
+
+		private long? appKey;
+
+		private string aliasName;
+
+		private string deviceId;
+
+		private bool? unbindAll;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string AliasName
+		{
+			get
+			{
+				return aliasName;
+			}
+			set	
+			{
+				aliasName = value;
+				DictionaryUtil.Add(QueryParameters, "AliasName", value);
+			}
+		}
+
+		public string DeviceId
+		{
+			get
+			{
+				return deviceId;
+			}
+			set	
+			{
+				deviceId = value;
+				DictionaryUtil.Add(QueryParameters, "DeviceId", value);
+			}
+		}
+
+		public bool? UnbindAll
+		{
+			get
+			{
+				return unbindAll;
+			}
+			set
+			{
+				unbindAll = value;
+				DictionaryUtil.Add(QueryParameters, "UnbindAll", value.ToString());
+			}
+		}
+        public override UnbindAliasResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return UnbindAliasResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 27 - 0
Util/Aliyun/Push/Model/V20160801/UnbindAliasResponse.cs

@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class UnbindAliasResponse : AcsResponse
+	{
+	}
+}

+ 101 - 0
Util/Aliyun/Push/Model/V20160801/UnbindTagRequest.cs

@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class UnbindTagRequest : RpcAcsRequest<UnbindTagResponse>
+    {
+        public UnbindTagRequest()
+            : base("Push", "2016-08-01", "UnbindTag")
+        {
+        }
+
+		private long? appKey;
+
+		private string clientKey;
+
+		private string keyType;
+
+		private string tagName;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string ClientKey
+		{
+			get
+			{
+				return clientKey;
+			}
+			set	
+			{
+				clientKey = value;
+				DictionaryUtil.Add(QueryParameters, "ClientKey", value);
+			}
+		}
+
+		public string KeyType
+		{
+			get
+			{
+				return keyType;
+			}
+			set	
+			{
+				keyType = value;
+				DictionaryUtil.Add(QueryParameters, "KeyType", value);
+			}
+		}
+
+		public string TagName
+		{
+			get
+			{
+				return tagName;
+			}
+			set	
+			{
+				tagName = value;
+				DictionaryUtil.Add(QueryParameters, "TagName", value);
+			}
+		}
+
+        public override UnbindTagResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return UnbindTagResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 27 - 0
Util/Aliyun/Push/Model/V20160801/UnbindTagResponse.cs

@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class UnbindTagResponse : AcsResponse
+	{
+	}
+}

+ 86 - 0
Util/Aliyun/Push/Model/V20160801/UploadAppCertRequest.cs

@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class UploadAppCertRequest : RpcAcsRequest<UploadAppCertResponse>
+    {
+        public UploadAppCertRequest()
+            : base("Push", "2016-08-01", "UploadAppCert")
+        {
+        }
+
+		private long? appKey;
+
+		private string fileItem;
+
+		private bool? isDevCert;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string FileItem
+		{
+			get
+			{
+				return fileItem;
+			}
+			set	
+			{
+				fileItem = value;
+				DictionaryUtil.Add(QueryParameters, "FileItem", value);
+			}
+		}
+
+		public bool? IsDevCert
+		{
+			get
+			{
+				return isDevCert;
+			}
+			set	
+			{
+				isDevCert = value;
+				DictionaryUtil.Add(QueryParameters, "IsDevCert", value.ToString());
+			}
+		}
+
+        public override UploadAppCertResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return UploadAppCertResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 41 - 0
Util/Aliyun/Push/Model/V20160801/UploadAppCertResponse.cs

@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class UploadAppCertResponse : AcsResponse
+	{
+
+		private string certKey;
+
+		public string CertKey
+		{
+			get
+			{
+				return certKey;
+			}
+			set	
+			{
+				certKey = value;
+			}
+		}
+	}
+}

+ 86 - 0
Util/Aliyun/Push/Model/V20160801/ValidateAppCertRequest.cs

@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using Aliyun.Acs.Core.Http;
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Core.Utils;
+using Aliyun.Acs.Push.Transform;
+using Aliyun.Acs.Push.Transform.V20160801;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+    public class ValidateAppCertRequest : RpcAcsRequest<ValidateAppCertResponse>
+    {
+        public ValidateAppCertRequest()
+            : base("Push", "2016-08-01", "ValidateAppCert")
+        {
+        }
+
+		private long? appKey;
+
+		private string certPass;
+
+		private bool? isDevCert;
+
+		public long? AppKey
+		{
+			get
+			{
+				return appKey;
+			}
+			set	
+			{
+				appKey = value;
+				DictionaryUtil.Add(QueryParameters, "AppKey", value.ToString());
+			}
+		}
+
+		public string CertPass
+		{
+			get
+			{
+				return certPass;
+			}
+			set	
+			{
+				certPass = value;
+				DictionaryUtil.Add(QueryParameters, "CertPass", value);
+			}
+		}
+
+		public bool? IsDevCert
+		{
+			get
+			{
+				return isDevCert;
+			}
+			set	
+			{
+				isDevCert = value;
+				DictionaryUtil.Add(QueryParameters, "IsDevCert", value.ToString());
+			}
+		}
+
+        public override ValidateAppCertResponse GetResponse(Core.Transform.UnmarshallerContext unmarshallerContext)
+        {
+            return ValidateAppCertResponseUnmarshaller.Unmarshall(unmarshallerContext);
+        }
+    }
+}

+ 114 - 0
Util/Aliyun/Push/Model/V20160801/ValidateAppCertResponse.cs

@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Model.V20160801
+{
+	public class ValidateAppCertResponse : AcsResponse
+	{
+
+		private AppCertInfo_ appCertInfo;
+
+		public AppCertInfo_ AppCertInfo
+		{
+			get
+			{
+				return appCertInfo;
+			}
+			set	
+			{
+				appCertInfo = value;
+			}
+		}
+
+		public class AppCertInfo_{
+
+			private string appName;
+
+			private string certType;
+
+			private bool? devCert;
+
+			private long? expirationDate;
+
+			private long? generateDate;
+
+			public string AppName
+			{
+				get
+				{
+					return appName;
+				}
+				set	
+				{
+					appName = value;
+				}
+			}
+
+			public string CertType
+			{
+				get
+				{
+					return certType;
+				}
+				set	
+				{
+					certType = value;
+				}
+			}
+
+			public bool? DevCert
+			{
+				get
+				{
+					return devCert;
+				}
+				set	
+				{
+					devCert = value;
+				}
+			}
+
+			public long? ExpirationDate
+			{
+				get
+				{
+					return expirationDate;
+				}
+				set	
+				{
+					expirationDate = value;
+				}
+			}
+
+			public long? GenerateDate
+			{
+				get
+				{
+					return generateDate;
+				}
+				set	
+				{
+					generateDate = value;
+				}
+			}
+		}
+	}
+}

+ 38 - 0
Util/Aliyun/Push/Transform/V20160801/BindAliasResponseUnmarshaller.cs

@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Push.Model.V20160801;
+using System;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Transform.V20160801
+{
+    public class BindAliasResponseUnmarshaller
+    {
+        public static BindAliasResponse Unmarshall(UnmarshallerContext context)
+        {
+			BindAliasResponse bindAliasResponse = new BindAliasResponse();
+
+			bindAliasResponse.HttpResponse = context.HttpResponse;
+			bindAliasResponse.RequestId = context.StringValue("BindAlias.RequestId");
+        
+			return bindAliasResponse;
+        }
+    }
+}

+ 38 - 0
Util/Aliyun/Push/Transform/V20160801/BindTagResponseUnmarshaller.cs

@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Push.Model.V20160801;
+using System;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Transform.V20160801
+{
+    public class BindTagResponseUnmarshaller
+    {
+        public static BindTagResponse Unmarshall(UnmarshallerContext context)
+        {
+			BindTagResponse bindTagResponse = new BindTagResponse();
+
+			bindTagResponse.HttpResponse = context.HttpResponse;
+			bindTagResponse.RequestId = context.StringValue("BindTag.RequestId");
+        
+			return bindTagResponse;
+        }
+    }
+}

+ 38 - 0
Util/Aliyun/Push/Transform/V20160801/CancelPushResponseUnmarshaller.cs

@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Push.Model.V20160801;
+using System;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Transform.V20160801
+{
+    public class CancelPushResponseUnmarshaller
+    {
+        public static CancelPushResponse Unmarshall(UnmarshallerContext context)
+        {
+			CancelPushResponse cancelPushResponse = new CancelPushResponse();
+
+			cancelPushResponse.HttpResponse = context.HttpResponse;
+			cancelPushResponse.RequestId = context.StringValue("CancelPush.RequestId");
+        
+			return cancelPushResponse;
+        }
+    }
+}

+ 38 - 0
Util/Aliyun/Push/Transform/V20160801/CertPreflightResponseUnmarshaller.cs

@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Push.Model.V20160801;
+using System;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Transform.V20160801
+{
+    public class CertPreflightResponseUnmarshaller
+    {
+        public static CertPreflightResponse Unmarshall(UnmarshallerContext context)
+        {
+			CertPreflightResponse certPreflightResponse = new CertPreflightResponse();
+
+			certPreflightResponse.HttpResponse = context.HttpResponse;
+			certPreflightResponse.RequestId = context.StringValue("CertPreflight.RequestId");
+        
+			return certPreflightResponse;
+        }
+    }
+}

+ 39 - 0
Util/Aliyun/Push/Transform/V20160801/CheckDeviceResponseUnmarshaller.cs

@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Push.Model.V20160801;
+using System;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Transform.V20160801
+{
+    public class CheckDeviceResponseUnmarshaller
+    {
+        public static CheckDeviceResponse Unmarshall(UnmarshallerContext context)
+        {
+			CheckDeviceResponse checkDeviceResponse = new CheckDeviceResponse();
+
+			checkDeviceResponse.HttpResponse = context.HttpResponse;
+			checkDeviceResponse.RequestId = context.StringValue("CheckDevice.RequestId");
+			checkDeviceResponse.Available = context.BooleanValue("CheckDevice.Available");
+        
+			return checkDeviceResponse;
+        }
+    }
+}

+ 48 - 0
Util/Aliyun/Push/Transform/V20160801/CheckDevicesResponseUnmarshaller.cs

@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Push.Model.V20160801;
+using System;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Transform.V20160801
+{
+    public class CheckDevicesResponseUnmarshaller
+    {
+        public static CheckDevicesResponse Unmarshall(UnmarshallerContext context)
+        {
+			CheckDevicesResponse checkDevicesResponse = new CheckDevicesResponse();
+
+			checkDevicesResponse.HttpResponse = context.HttpResponse;
+			checkDevicesResponse.RequestId = context.StringValue("CheckDevices.RequestId");
+
+			List<CheckDevicesResponse.DeviceCheckInfo> deviceCheckInfos = new List<CheckDevicesResponse.DeviceCheckInfo>();
+			for (int i = 0; i < context.Length("CheckDevices.DeviceCheckInfos.Length"); i++) {
+				CheckDevicesResponse.DeviceCheckInfo deviceCheckInfo = new CheckDevicesResponse.DeviceCheckInfo();
+				deviceCheckInfo.DeviceId = context.StringValue("CheckDevices.DeviceCheckInfos["+ i +"].DeviceId");
+				deviceCheckInfo.Available = context.BooleanValue("CheckDevices.DeviceCheckInfos["+ i +"].Available");
+
+				deviceCheckInfos.Add(deviceCheckInfo);
+			}
+			checkDevicesResponse.DeviceCheckInfos = deviceCheckInfos;
+        
+			return checkDevicesResponse;
+        }
+    }
+}

+ 38 - 0
Util/Aliyun/Push/Transform/V20160801/ClearAliasResponseUnmarshaller.cs

@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Push.Model.V20160801;
+using System;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Transform.V20160801
+{
+    public class ClearAliasResponseUnmarshaller
+    {
+        public static ClearAliasResponse Unmarshall(UnmarshallerContext context)
+        {
+			ClearAliasResponse clearAliasResponse = new ClearAliasResponse();
+
+			clearAliasResponse.HttpResponse = context.HttpResponse;
+			clearAliasResponse.RequestId = context.StringValue("ClearAlias.RequestId");
+        
+			return clearAliasResponse;
+        }
+    }
+}

+ 39 - 0
Util/Aliyun/Push/Transform/V20160801/CreateAppResponseUnmarshaller.cs

@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Push.Model.V20160801;
+using System;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Transform.V20160801
+{
+    public class CreateAppResponseUnmarshaller
+    {
+        public static CreateAppResponse Unmarshall(UnmarshallerContext context)
+        {
+			CreateAppResponse createAppResponse = new CreateAppResponse();
+
+			createAppResponse.HttpResponse = context.HttpResponse;
+			createAppResponse.RequestId = context.StringValue("CreateApp.RequestId");
+			createAppResponse.AppKey = context.LongValue("CreateApp.AppKey");
+        
+			return createAppResponse;
+        }
+    }
+}

+ 38 - 0
Util/Aliyun/Push/Transform/V20160801/DeleteAppResponseUnmarshaller.cs

@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Push.Model.V20160801;
+using System;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Transform.V20160801
+{
+    public class DeleteAppResponseUnmarshaller
+    {
+        public static DeleteAppResponse Unmarshall(UnmarshallerContext context)
+        {
+			DeleteAppResponse deleteAppResponse = new DeleteAppResponse();
+
+			deleteAppResponse.HttpResponse = context.HttpResponse;
+			deleteAppResponse.RequestId = context.StringValue("DeleteApp.RequestId");
+        
+			return deleteAppResponse;
+        }
+    }
+}

+ 38 - 0
Util/Aliyun/Push/Transform/V20160801/DeleteTagResponseUnmarshaller.cs

@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Push.Model.V20160801;
+using System;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Transform.V20160801
+{
+    public class DeleteTagResponseUnmarshaller
+    {
+        public static DeleteTagResponse Unmarshall(UnmarshallerContext context)
+        {
+			DeleteTagResponse deleteTagResponse = new DeleteTagResponse();
+
+			deleteTagResponse.HttpResponse = context.HttpResponse;
+			deleteTagResponse.RequestId = context.StringValue("DeleteTag.RequestId");
+        
+			return deleteTagResponse;
+        }
+    }
+}

+ 64 - 0
Util/Aliyun/Push/Transform/V20160801/ListAppsResponseUnmarshaller.cs

@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Push.Model.V20160801;
+using System;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Transform.V20160801
+{
+    public class ListAppsResponseUnmarshaller
+    {
+        public static ListAppsResponse Unmarshall(UnmarshallerContext context)
+        {
+			ListAppsResponse listAppsResponse = new ListAppsResponse();
+
+			listAppsResponse.HttpResponse = context.HttpResponse;
+			listAppsResponse.RequestId = context.StringValue("ListApps.RequestId");
+
+			List<ListAppsResponse.AppInfo> appInfos = new List<ListAppsResponse.AppInfo>();
+			for (int i = 0; i < context.Length("ListApps.AppInfos.Length"); i++) {
+				ListAppsResponse.AppInfo appInfo = new ListAppsResponse.AppInfo();
+				appInfo.AppId = context.StringValue("ListApps.AppInfos["+ i +"].AppId");
+				appInfo.AppKey = context.LongValue("ListApps.AppInfos["+ i +"].AppKey");
+				appInfo.AppName = context.StringValue("ListApps.AppInfos["+ i +"].AppName");
+				appInfo.Description = context.StringValue("ListApps.AppInfos["+ i +"].Description");
+				appInfo.IndustryId = context.IntegerValue("ListApps.AppInfos["+ i +"].IndustryId");
+				appInfo.AndroidStatus = context.IntegerValue("ListApps.AppInfos["+ i +"].AndroidStatus");
+				appInfo.IOSStatus = context.IntegerValue("ListApps.AppInfos["+ i +"].IOSStatus");
+				appInfo.DeviceCount = context.LongValue("ListApps.AppInfos["+ i +"].DeviceCount");
+				appInfo.AppStatus = context.IntegerValue("ListApps.AppInfos["+ i +"].AppStatus");
+				appInfo.Status = context.IntegerValue("ListApps.AppInfos["+ i +"].Status");
+				appInfo.PushAppId = context.StringValue("ListApps.AppInfos["+ i +"].PushAppId");
+				appInfo.Source = context.StringValue("ListApps.AppInfos["+ i +"].Source");
+
+				ListAppsResponse.AppInfo.Extension_ extension = new ListAppsResponse.AppInfo.Extension_();
+				extension.XmAppSecretKey = context.StringValue("ListApps.AppInfos["+ i +"].Extension.XmAppSecretKey");
+				extension.HwAppKey = context.LongValue("ListApps.AppInfos["+ i +"].Extension.HwAppKey");
+				extension.HwAppSecretKey = context.StringValue("ListApps.AppInfos["+ i +"].Extension.HwAppSecretKey");
+				appInfo.Extension = extension;
+
+				appInfos.Add(appInfo);
+			}
+			listAppsResponse.AppInfos = appInfos;
+        
+			return listAppsResponse;
+        }
+    }
+}

+ 57 - 0
Util/Aliyun/Push/Transform/V20160801/ListPushRecordsResponseUnmarshaller.cs

@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Push.Model.V20160801;
+using System;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Transform.V20160801
+{
+    public class ListPushRecordsResponseUnmarshaller
+    {
+        public static ListPushRecordsResponse Unmarshall(UnmarshallerContext context)
+        {
+			ListPushRecordsResponse listPushRecordsResponse = new ListPushRecordsResponse();
+
+			listPushRecordsResponse.HttpResponse = context.HttpResponse;
+			listPushRecordsResponse.RequestId = context.StringValue("ListPushRecords.RequestId");
+			listPushRecordsResponse.Total = context.IntegerValue("ListPushRecords.Total");
+			listPushRecordsResponse.Page = context.IntegerValue("ListPushRecords.Page");
+			listPushRecordsResponse.PageSize = context.IntegerValue("ListPushRecords.PageSize");
+
+			List<ListPushRecordsResponse.PushMessageInfo> pushMessageInfos = new List<ListPushRecordsResponse.PushMessageInfo>();
+			for (int i = 0; i < context.Length("ListPushRecords.PushMessageInfos.Length"); i++) {
+				ListPushRecordsResponse.PushMessageInfo pushMessageInfo = new ListPushRecordsResponse.PushMessageInfo();
+				pushMessageInfo.AppKey = context.LongValue("ListPushRecords.PushMessageInfos["+ i +"].AppKey");
+				pushMessageInfo.AppName = context.StringValue("ListPushRecords.PushMessageInfos["+ i +"].AppName");
+				pushMessageInfo.MessageId = context.StringValue("ListPushRecords.PushMessageInfos["+ i +"].MessageId");
+				pushMessageInfo.Type = context.StringValue("ListPushRecords.PushMessageInfos["+ i +"].Type");
+				pushMessageInfo.DeviceType = context.StringValue("ListPushRecords.PushMessageInfos["+ i +"].DeviceType");
+				pushMessageInfo.PushTime = context.StringValue("ListPushRecords.PushMessageInfos["+ i +"].PushTime");
+				pushMessageInfo.Title = context.StringValue("ListPushRecords.PushMessageInfos["+ i +"].Title");
+				pushMessageInfo.Body = context.StringValue("ListPushRecords.PushMessageInfos["+ i +"].Body");
+
+				pushMessageInfos.Add(pushMessageInfo);
+			}
+			listPushRecordsResponse.PushMessageInfos = pushMessageInfos;
+        
+			return listPushRecordsResponse;
+        }
+    }
+}

+ 48 - 0
Util/Aliyun/Push/Transform/V20160801/ListSummaryAppsResponseUnmarshaller.cs

@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Push.Model.V20160801;
+using System;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Transform.V20160801
+{
+    public class ListSummaryAppsResponseUnmarshaller
+    {
+        public static ListSummaryAppsResponse Unmarshall(UnmarshallerContext context)
+        {
+			ListSummaryAppsResponse listSummaryAppsResponse = new ListSummaryAppsResponse();
+
+			listSummaryAppsResponse.HttpResponse = context.HttpResponse;
+			listSummaryAppsResponse.RequestId = context.StringValue("ListSummaryApps.RequestId");
+
+			List<ListSummaryAppsResponse.SummaryAppInfo> summaryAppInfos = new List<ListSummaryAppsResponse.SummaryAppInfo>();
+			for (int i = 0; i < context.Length("ListSummaryApps.SummaryAppInfos.Length"); i++) {
+				ListSummaryAppsResponse.SummaryAppInfo summaryAppInfo = new ListSummaryAppsResponse.SummaryAppInfo();
+				summaryAppInfo.AppName = context.StringValue("ListSummaryApps.SummaryAppInfos["+ i +"].AppName");
+				summaryAppInfo.AppKey = context.LongValue("ListSummaryApps.SummaryAppInfos["+ i +"].AppKey");
+
+				summaryAppInfos.Add(summaryAppInfo);
+			}
+			listSummaryAppsResponse.SummaryAppInfos = summaryAppInfos;
+        
+			return listSummaryAppsResponse;
+        }
+    }
+}

+ 47 - 0
Util/Aliyun/Push/Transform/V20160801/ListTagsResponseUnmarshaller.cs

@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Push.Model.V20160801;
+using System;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Transform.V20160801
+{
+    public class ListTagsResponseUnmarshaller
+    {
+        public static ListTagsResponse Unmarshall(UnmarshallerContext context)
+        {
+			ListTagsResponse listTagsResponse = new ListTagsResponse();
+
+			listTagsResponse.HttpResponse = context.HttpResponse;
+			listTagsResponse.RequestId = context.StringValue("ListTags.RequestId");
+
+			List<ListTagsResponse.TagInfo> tagInfos = new List<ListTagsResponse.TagInfo>();
+			for (int i = 0; i < context.Length("ListTags.TagInfos.Length"); i++) {
+				ListTagsResponse.TagInfo tagInfo = new ListTagsResponse.TagInfo();
+				tagInfo.TagName = context.StringValue("ListTags.TagInfos["+ i +"].TagName");
+
+				tagInfos.Add(tagInfo);
+			}
+			listTagsResponse.TagInfos = tagInfos;
+        
+			return listTagsResponse;
+        }
+    }
+}

+ 49 - 0
Util/Aliyun/Push/Transform/V20160801/ListTinyAppsResponseUnmarshaller.cs

@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+using Aliyun.Acs.Core.Transform;
+using Aliyun.Acs.Push.Model.V20160801;
+using System;
+using System.Collections.Generic;
+
+namespace Aliyun.Acs.Push.Transform.V20160801
+{
+    public class ListTinyAppsResponseUnmarshaller
+    {
+        public static ListTinyAppsResponse Unmarshall(UnmarshallerContext context)
+        {
+			ListTinyAppsResponse listTinyAppsResponse = new ListTinyAppsResponse();
+
+			listTinyAppsResponse.HttpResponse = context.HttpResponse;
+			listTinyAppsResponse.RequestId = context.StringValue("ListTinyApps.RequestId");
+
+			List<ListTinyAppsResponse.TinyAppInfo> tinyAppInfos = new List<ListTinyAppsResponse.TinyAppInfo>();
+			for (int i = 0; i < context.Length("ListTinyApps.TinyAppInfos.Length"); i++) {
+				ListTinyAppsResponse.TinyAppInfo tinyAppInfo = new ListTinyAppsResponse.TinyAppInfo();
+				tinyAppInfo.AppName = context.StringValue("ListTinyApps.TinyAppInfos["+ i +"].AppName");
+				tinyAppInfo.Platform = context.StringValue("ListTinyApps.TinyAppInfos["+ i +"].Platform");
+				tinyAppInfo.AppKey = context.LongValue("ListTinyApps.TinyAppInfos["+ i +"].AppKey");
+
+				tinyAppInfos.Add(tinyAppInfo);
+			}
+			listTinyAppsResponse.TinyAppInfos = tinyAppInfos;
+        
+			return listTinyAppsResponse;
+        }
+    }
+}

Some files were not shown because too many files changed in this diff