wangxili 4 лет назад
Сommit
424c4c2ad4
100 измененных файлов с 2039 добавлено и 0 удалено
  1. 10 0
      QimenCloud/top/api/rest/CilaiDingtalkTestRequest.py
  2. 10 0
      QimenCloud/top/api/rest/DingtalkOapiIsvLingjiuTestRequest.py
  3. 10 0
      QimenCloud/top/api/rest/DingtalkOapiLingjiuTestRequest.py
  4. 21 0
      READ_ME.TXT
  5. 30 0
      aliyun/__init__.py
  6. 3 0
      aliyun/api/__init__.py
  7. 258 0
      aliyun/api/base.py
  8. 0 0
      aliyun/api/rest/__init__.py
  9. 43 0
      aliyun_demo.py
  10. 29 0
      dingtalk/__init__.py
  11. 2 0
      dingtalk/api/__init__.py
  12. 324 0
      dingtalk/api/base.py
  13. 15 0
      dingtalk/api/rest/CcoserviceServicegroupAddmemberRequest.py
  14. 14 0
      dingtalk/api/rest/CcoserviceServicegroupGetRequest.py
  15. 13 0
      dingtalk/api/rest/CorpBlazersGetbinddataRequest.py
  16. 13 0
      dingtalk/api/rest/CorpBlazersGetbizidRequest.py
  17. 14 0
      dingtalk/api/rest/CorpBlazersRemovemappingRequest.py
  18. 13 0
      dingtalk/api/rest/CorpBlazersUnbindRequest.py
  19. 14 0
      dingtalk/api/rest/CorpCalendarCreateRequest.py
  20. 17 0
      dingtalk/api/rest/CorpChatbotAddchatbotinstanceRequest.py
  21. 14 0
      dingtalk/api/rest/CorpChatbotCreateorgbotRequest.py
  22. 14 0
      dingtalk/api/rest/CorpChatbotInstallRequest.py
  23. 14 0
      dingtalk/api/rest/CorpChatbotListbychatbotidsRequest.py
  24. 15 0
      dingtalk/api/rest/CorpChatbotListorgbotRequest.py
  25. 15 0
      dingtalk/api/rest/CorpChatbotListorgbotbytypeandbottypeRequest.py
  26. 20 0
      dingtalk/api/rest/CorpChatbotUpdatebychatbotidRequest.py
  27. 16 0
      dingtalk/api/rest/CorpChatbotUpdateorgbotRequest.py
  28. 14 0
      dingtalk/api/rest/CorpConversationCorpconversionGetconversationRequest.py
  29. 16 0
      dingtalk/api/rest/CorpConversationCorpconversionListmemberRequest.py
  30. 15 0
      dingtalk/api/rest/CorpDeptgroupSyncuserRequest.py
  31. 15 0
      dingtalk/api/rest/CorpDeviceManageGetRequest.py
  32. 14 0
      dingtalk/api/rest/CorpDeviceManageHasbinddeviceRequest.py
  33. 16 0
      dingtalk/api/rest/CorpDeviceManageQuerylistRequest.py
  34. 15 0
      dingtalk/api/rest/CorpDeviceManageUnbindRequest.py
  35. 16 0
      dingtalk/api/rest/CorpDeviceNickUpdateRequest.py
  36. 19 0
      dingtalk/api/rest/CorpDingCreateRequest.py
  37. 17 0
      dingtalk/api/rest/CorpDingReceiverstatusListRequest.py
  38. 14 0
      dingtalk/api/rest/CorpDingTaskCreateRequest.py
  39. 16 0
      dingtalk/api/rest/CorpEmpSearchRequest.py
  40. 13 0
      dingtalk/api/rest/CorpEncryptionKeyListRequest.py
  41. 14 0
      dingtalk/api/rest/CorpExtAddRequest.py
  42. 15 0
      dingtalk/api/rest/CorpExtListRequest.py
  43. 15 0
      dingtalk/api/rest/CorpExtListlabelgroupsRequest.py
  44. 14 0
      dingtalk/api/rest/CorpExtUpdateRequest.py
  45. 14 0
      dingtalk/api/rest/CorpExtcontactCreateRequest.py
  46. 14 0
      dingtalk/api/rest/CorpExtcontactDeleteRequest.py
  47. 14 0
      dingtalk/api/rest/CorpExtcontactGetRequest.py
  48. 15 0
      dingtalk/api/rest/CorpExtcontactListRequest.py
  49. 15 0
      dingtalk/api/rest/CorpExtcontactListlabelgroupsRequest.py
  50. 14 0
      dingtalk/api/rest/CorpExtcontactUpdateRequest.py
  51. 14 0
      dingtalk/api/rest/CorpHealthStepinfoGetuserstatusRequest.py
  52. 16 0
      dingtalk/api/rest/CorpHealthStepinfoListRequest.py
  53. 15 0
      dingtalk/api/rest/CorpHealthStepinfoListbyuseridRequest.py
  54. 21 0
      dingtalk/api/rest/CorpHrmEmployeeAddresumerecordRequest.py
  55. 15 0
      dingtalk/api/rest/CorpHrmEmployeeDelemployeedismissionandhandoverRequest.py
  56. 14 0
      dingtalk/api/rest/CorpHrmEmployeeGetRequest.py
  57. 16 0
      dingtalk/api/rest/CorpHrmEmployeeGetdismissionlistRequest.py
  58. 15 0
      dingtalk/api/rest/CorpHrmEmployeeModjobinfoRequest.py
  59. 15 0
      dingtalk/api/rest/CorpHrmEmployeeSetuserworkdataRequest.py
  60. 13 0
      dingtalk/api/rest/CorpInvoiceGettitleRequest.py
  61. 13 0
      dingtalk/api/rest/CorpLivenessGetRequest.py
  62. 19 0
      dingtalk/api/rest/CorpMessageCorpconversationAsyncsendRequest.py
  63. 20 0
      dingtalk/api/rest/CorpMessageCorpconversationAsyncsendbycodeRequest.py
  64. 15 0
      dingtalk/api/rest/CorpMessageCorpconversationGetsendprogressRequest.py
  65. 15 0
      dingtalk/api/rest/CorpMessageCorpconversationGetsendresultRequest.py
  66. 18 0
      dingtalk/api/rest/CorpMessageCorpconversationSendmockRequest.py
  67. 19 0
      dingtalk/api/rest/CorpReportListRequest.py
  68. 15 0
      dingtalk/api/rest/CorpRoleAddrolesforempsRequest.py
  69. 14 0
      dingtalk/api/rest/CorpRoleDeleteroleRequest.py
  70. 14 0
      dingtalk/api/rest/CorpRoleGetrolegroupRequest.py
  71. 15 0
      dingtalk/api/rest/CorpRoleListRequest.py
  72. 15 0
      dingtalk/api/rest/CorpRoleRemoverolesforempsRequest.py
  73. 16 0
      dingtalk/api/rest/CorpRoleSimplelistRequest.py
  74. 16 0
      dingtalk/api/rest/CorpSearchCorpcontactBaseinfoRequest.py
  75. 14 0
      dingtalk/api/rest/CorpSmartdeviceAddfaceRequest.py
  76. 14 0
      dingtalk/api/rest/CorpSmartdeviceGetfaceRequest.py
  77. 14 0
      dingtalk/api/rest/CorpSmartdeviceHasfaceRequest.py
  78. 16 0
      dingtalk/api/rest/CorpSmartdeviceReceptionistPushinfoRequest.py
  79. 14 0
      dingtalk/api/rest/CorpUserPersonainfoGetRequest.py
  80. 15 0
      dingtalk/api/rest/IsvBlazersGeneratecodeRequest.py
  81. 16 0
      dingtalk/api/rest/IsvCallCalluserRequest.py
  82. 15 0
      dingtalk/api/rest/IsvCallGetuserlistRequest.py
  83. 14 0
      dingtalk/api/rest/IsvCallRemoveuserlistRequest.py
  84. 14 0
      dingtalk/api/rest/IsvCallSetuserlistRequest.py
  85. 14 0
      dingtalk/api/rest/OapiAlitripBtripApplyGetRequest.py
  86. 14 0
      dingtalk/api/rest/OapiAlitripBtripApplySearchRequest.py
  87. 14 0
      dingtalk/api/rest/OapiAlitripBtripApprovalModifyRequest.py
  88. 14 0
      dingtalk/api/rest/OapiAlitripBtripApprovalNewRequest.py
  89. 14 0
      dingtalk/api/rest/OapiAlitripBtripApprovalUpdateRequest.py
  90. 14 0
      dingtalk/api/rest/OapiAlitripBtripCategoryAddressGetRequest.py
  91. 14 0
      dingtalk/api/rest/OapiAlitripBtripCostCenterDeleteRequest.py
  92. 14 0
      dingtalk/api/rest/OapiAlitripBtripCostCenterEntityAddRequest.py
  93. 14 0
      dingtalk/api/rest/OapiAlitripBtripCostCenterEntityDeleteRequest.py
  94. 14 0
      dingtalk/api/rest/OapiAlitripBtripCostCenterEntitySetRequest.py
  95. 14 0
      dingtalk/api/rest/OapiAlitripBtripCostCenterModifyRequest.py
  96. 14 0
      dingtalk/api/rest/OapiAlitripBtripCostCenterNewRequest.py
  97. 14 0
      dingtalk/api/rest/OapiAlitripBtripCostCenterQueryRequest.py
  98. 14 0
      dingtalk/api/rest/OapiAlitripBtripCostCenterTransferRequest.py
  99. 14 0
      dingtalk/api/rest/OapiAlitripBtripFlightCitySuggestRequest.py
  100. 0 0
      dingtalk/api/rest/OapiAlitripBtripFlightOrderSearchRequest.py

+ 10 - 0
QimenCloud/top/api/rest/CilaiDingtalkTestRequest.py

@@ -0,0 +1,10 @@
+'''
+Created by auto_sdk on 2018.04.20
+'''
+from top.api.base import RestApi
+class CilaiDingtalkTestRequest(RestApi):
+	def __init__(self,domain='gw.api.taobao.com',port=80):
+		RestApi.__init__(self,domain, port)
+
+	def getapiname(self):
+		return 'n95wrxpkif.cilai.dingtalk.test'

+ 10 - 0
QimenCloud/top/api/rest/DingtalkOapiIsvLingjiuTestRequest.py

@@ -0,0 +1,10 @@
+'''
+Created by auto_sdk on 2019.09.04
+'''
+from top.api.base import RestApi
+class DingtalkOapiIsvLingjiuTestRequest(RestApi):
+	def __init__(self,domain='gw.api.taobao.com',port=80):
+		RestApi.__init__(self,domain, port)
+
+	def getapiname(self):
+		return '21d8pajl08.dingtalk.oapi.isv.lingjiu.test'

+ 10 - 0
QimenCloud/top/api/rest/DingtalkOapiLingjiuTestRequest.py

@@ -0,0 +1,10 @@
+'''
+Created by auto_sdk on 2018.04.20
+'''
+from top.api.base import RestApi
+class DingtalkOapiLingjiuTestRequest(RestApi):
+	def __init__(self,domain='gw.api.taobao.com',port=80):
+		RestApi.__init__(self,domain, port)
+
+	def getapiname(self):
+		return '21d8pajl08.dingtalk.oapi.lingjiu.test'

+ 21 - 0
READ_ME.TXT

@@ -0,0 +1,21 @@
+python sdk 目前还处于起步阶段,希望大家一起来完善它
+
+Version 1.1
+
+设计背景:本SDK参考了facebook和twitter的pythonSDK的组织结构,同时结合top的SDK自动生成的机制,系统生成。
+
+使用方法:
+
+拷贝依赖包top到你的工程下,同时引入到PYTHONPATH中,具体怎么搞,就看你自己的系统啦。
+总之一句话,让执行器可以找到top这个依赖包就OK拉。
+
+调用方式,请参考
+test.py
+
+注意事项:
+
+SDK在设计的时候,每次请求都让传入appkey和secret,但是一定不要把appkey和secret写的满项目都是,这还蛮坑爹的。
+请大家像爱护自己密码一样爱护secret
+
+希望大家一起来完善它。TKS。
+

+ 30 - 0
aliyun/__init__.py

@@ -0,0 +1,30 @@
+# -*- coding: utf-8 -*-
+'''
+Created on 2012-6-29
+
+@author: lijie.ma
+'''
+from aliyun.api.base import sign
+
+
+
+class appinfo(object):
+    def __init__(self,accessKeyId,accessKeySecret):
+        self.accessKeyId = accessKeyId
+        self.accessKeySecret = accessKeySecret
+        
+def getDefaultAppInfo():
+    pass
+
+     
+def setDefaultAppInfo(accessKeyId,accessKeySecret):
+    default = appinfo(accessKeyId,accessKeySecret)
+    global getDefaultAppInfo 
+    getDefaultAppInfo = lambda: default
+    
+
+
+
+
+    
+

+ 3 - 0
aliyun/api/__init__.py

@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+from aliyun.api.rest import *
+from aliyun.api.base import FileItem

+ 258 - 0
aliyun/api/base.py

@@ -0,0 +1,258 @@
+# -*- coding: utf-8 -*-
+'''
+Created on 2012-7-3
+
+@author: lijie.ma
+'''
+
+try: import httplib
+except ImportError:
+    import http.client as httplib
+import sys
+import urllib
+import time
+import json
+import aliyun
+import itertools
+import mimetypes
+import base64
+import hmac
+import uuid
+from hashlib import sha1
+
+def sign(accessKeySecret, parameters):
+    #===========================================================================
+    # '''签名方法
+    # @param secret: 签名需要的密钥
+    # @param parameters: 支持字典和string两种
+    # '''
+    #===========================================================================
+    # 如果parameters 是字典类的话
+    sortedParameters = sorted(parameters.items(), key=lambda parameters: parameters[0])
+
+    canonicalizedQueryString = ''
+    for (k,v) in sortedParameters:
+        canonicalizedQueryString += '&' + percent_encode(k) + '=' + percent_encode(v)
+
+    stringToSign = 'POST&%2F&' + percent_encode(canonicalizedQueryString[1:])
+
+    h = hmac.new(accessKeySecret + "&", stringToSign, sha1)
+    signature = base64.encodestring(h.digest()).strip()
+    return signature
+
+def percent_encode(encodeStr):
+    encodeStr = str(encodeStr)
+    res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '')
+    res = res.replace('+', '%20')
+    res = res.replace('*', '%2A')
+    res = res.replace('%7E', '~')
+    return res
+
+def mixStr(pstr):
+    if(isinstance(pstr, str)):
+        return pstr
+    elif(isinstance(pstr, unicode)):
+        return pstr.encode('utf-8')
+    else:
+        return str(pstr)
+    
+class FileItem(object):
+    def __init__(self,filename=None,content=None):
+        self.filename = filename
+        self.content = content
+
+class MultiPartForm(object):
+    """Accumulate the data to be used when posting a form."""
+
+    def __init__(self):
+        self.form_fields = []
+        self.files = []
+        self.boundary = "PYTHON_SDK_BOUNDARY"
+        return
+    
+    def get_content_type(self):
+        return 'multipart/form-data; boundary=%s' % self.boundary
+
+    def add_field(self, name, value):
+        """Add a simple field to the form data."""
+        self.form_fields.append((name, str(value)))
+        return
+
+    def add_file(self, fieldname, filename, fileHandle, mimetype=None):
+        """Add a file to be uploaded."""
+        body = fileHandle.read()
+        if mimetype is None:
+            mimetype = mimetypes.guess_type(filename)[0] or 'application/octet-stream'
+        self.files.append((mixStr(fieldname), mixStr(filename), mixStr(mimetype), mixStr(body)))
+        return
+    
+    def __str__(self):
+        """Return a string representing the form data, including attached files."""
+        # Build a list of lists, each containing "lines" of the
+        # request.  Each part is separated by a boundary string.
+        # Once the list is built, return a string where each
+        # line is separated by '\r\n'.  
+        parts = []
+        part_boundary = '--' + self.boundary
+        
+        # Add the form fields
+        parts.extend(
+            [ part_boundary,
+              'Content-Disposition: form-data; name="%s"' % name,
+              'Content-Type: text/plain; charset=UTF-8',
+              '',
+              value,
+            ]
+            for name, value in self.form_fields
+            )
+        
+        # Add the files to upload
+        parts.extend(
+            [ part_boundary,
+              'Content-Disposition: file; name="%s"; filename="%s"' % \
+                 (field_name, filename),
+              'Content-Type: %s' % content_type,
+              'Content-Transfer-Encoding: binary',
+              '',
+              body,
+            ]
+            for field_name, filename, content_type, body in self.files
+            )
+        
+        # Flatten the list and add closing boundary marker,
+        # then return CR+LF separated data
+        flattened = list(itertools.chain(*parts))
+        flattened.append('--' + self.boundary + '--')
+        flattened.append('')
+        return '\r\n'.join(flattened)
+
+class AliyunException(Exception):
+    #===========================================================================
+    # 业务异常类
+    #===========================================================================
+    def __init__(self):
+        self.code = None
+        self.message = None
+        self.host = None
+        self.requestId = None
+    
+    def __str__(self, *args, **kwargs):
+        sb = "code=" + mixStr(self.code) +\
+            " message=" + mixStr(self.message) +\
+            " host=" + mixStr(self.host) +\
+            " requestId=" + mixStr(self.requestId)
+        return sb
+       
+class RequestException(Exception):
+    #===========================================================================
+    # 请求连接异常类
+    #===========================================================================
+    pass
+
+class RestApi(object):
+    #===========================================================================
+    # Rest api的基类
+    #===========================================================================
+    
+    def __init__(self, domain, port = 80):
+        #=======================================================================
+        # 初始化基类
+        # Args @param domain: 请求的域名或者ip
+        #      @param port: 请求的端口
+        #=======================================================================
+        self.__domain = domain
+        self.__port = port
+        self.__httpmethod = "POST"
+        if(aliyun.getDefaultAppInfo()):
+            self.__access_key_id = aliyun.getDefaultAppInfo().accessKeyId
+            self.__access_key_secret = aliyun.getDefaultAppInfo().accessKeySecret
+        
+    def get_request_header(self):
+        return {
+                 'Content-type': 'application/x-www-form-urlencoded',
+                 "Cache-Control": "no-cache",
+                 "Connection": "Keep-Alive",
+        }
+        
+    def set_app_info(self, appinfo):
+        #=======================================================================
+        # 设置请求的app信息
+        # @param appinfo: import aliyun
+        #                 appinfo aliyun.appinfo(accessKeyId,accessKeySecret)
+        #=======================================================================
+        self.__access_key_id = appinfo.accessKeyId
+        self.__access_key_secret = appinfo.accessKeySecret
+        
+    def getapiname(self):
+        return ""
+    
+    def getMultipartParas(self):
+        return [];
+
+    def getTranslateParas(self):
+        return {};
+    
+    def _check_requst(self):
+        pass
+    
+    def getResponse(self, authrize=None, timeout=30):
+        #=======================================================================
+        # 获取response结果
+        #=======================================================================
+        connection = httplib.HTTPConnection(self.__domain, self.__port, timeout)
+        timestamp = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
+        apiname_split = self.getapiname().split(".")
+        parameters = { \
+                'Format'        : 'json', \
+                'Version'   : apiname_split[4], \
+                'Action'        : apiname_split[3], \
+                'AccessKeyId'   : self.__access_key_id, \
+                'SignatureVersion'  : '1.0', \
+                'SignatureMethod'   : 'HMAC-SHA1', \
+                'SignatureNonce'    : str(uuid.uuid1()), \
+                'TimeStamp'         : timestamp, \
+                'partner_id'        : '1.0',\
+        }
+        application_parameter = self.getApplicationParameters()
+        for key in application_parameter.keys():
+            parameters[key] = application_parameter[key]
+
+        signature = sign(self.__access_key_secret,parameters)
+        parameters['Signature'] = signature
+        url = "/?" + urllib.urlencode(parameters)
+        
+        connection.connect()
+        
+        header = self.get_request_header();
+        if(self.getMultipartParas()):
+            form = MultiPartForm()
+            for key in self.getMultipartParas():
+                fileitem = getattr(self,key)
+                if(fileitem and isinstance(fileitem,FileItem)):
+                    form.add_file(key,fileitem.filename,fileitem.content)
+            body = str(form)
+            header['Content-type'] = form.get_content_type()
+        else:
+            body = None   
+        connection.request(self.__httpmethod, url, body=body, headers=header)
+        response = connection.getresponse();
+        result = response.read()
+        jsonobj = json.loads(result)
+        return jsonobj
+    
+    
+    def getApplicationParameters(self):
+        application_parameter = {}
+        for key, value in self.__dict__.iteritems():
+            if not key.startswith("__") and not key in self.getMultipartParas() and not key.startswith("_RestApi__") and value is not None :
+                if(key.startswith("_")):
+                    application_parameter[key[1:]] = value
+                else:
+                    application_parameter[key] = value
+        #查询翻译字典来规避一些关键字属性
+        translate_parameter = self.getTranslateParas()
+        for key, value in application_parameter.iteritems():
+            if key in translate_parameter:
+                application_parameter[translate_parameter[key]] = application_parameter[key]
+                del application_parameter[key]
+        return application_parameter

+ 0 - 0
aliyun/api/rest/__init__.py


+ 43 - 0
aliyun_demo.py

@@ -0,0 +1,43 @@
+# -*- coding: utf-8 -*-
+'''
+Created on 2014-6-17
+
+@author: lijie.ma
+'''
+import aliyun.api
+
+
+'''
+这边可以设置一个默认的accessKeyId和accessKeySecret,当然也可以不设置
+注意:默认的只需要设置一次就可以了
+
+'''
+aliyun.setDefaultAppInfo("accessKeyId", "accessKeySecret")
+
+'''
+使用自定义的域名和端口(测试沙箱环境使用)
+a = aliyun.api.Rds20130528DescribeDBInstancesRequest("rds.aliyuncs.com",80)
+
+使用自定义的域名(测试沙箱环境使用)
+a = aliyun.api.Rds20130528DescribeDBInstancesRequest("rds.aliyuncs.com")
+
+使用默认的配置(调用线上环境)
+a = aliyun.api.Rds20130528DescribeDBInstancesRequest()
+
+'''
+
+a = aliyun.api.Rds20130528DescribeDBInstancesRequest()
+
+'''
+可以在运行期替换掉默认的appkey和secret的设置
+a.set_app_info(aliyun.appinfo("accessKeyId","accessKeySecret"))
+'''
+a.DBInstanceId = ""
+
+try:
+    print("begin");
+    f= a.getResponse()
+    print(f)
+except Exception,e:
+    print(e)
+    

+ 29 - 0
dingtalk/__init__.py

@@ -0,0 +1,29 @@
+'''
+Created on 2018-9-17
+
+@author: xiaoxuan.lp
+'''
+from dingtalk.api.base import sign
+
+
+
+class appinfo(object):
+    def __init__(self,appkey,secret):
+        self.appkey = appkey
+        self.secret = secret
+        
+def getDefaultAppInfo():
+    pass
+
+     
+def setDefaultAppInfo(appkey,secret):
+    default = appinfo(appkey,secret)
+    global getDefaultAppInfo 
+    getDefaultAppInfo = lambda: default
+    
+
+
+
+
+    
+

+ 2 - 0
dingtalk/api/__init__.py

@@ -0,0 +1,2 @@
+from dingtalk.api.rest import *
+from dingtalk.api.base import FileItem

+ 324 - 0
dingtalk/api/base.py

@@ -0,0 +1,324 @@
+# -*- coding: utf-8 -*-
+'''
+Created on 2018-9-17
+
+@author: xiaoxuan.lp
+'''
+
+try: import httplib
+except ImportError:
+    import http.client as httplib
+import urllib
+import time
+import hashlib
+import json
+import dingtalk
+import itertools
+import mimetypes
+import hmac
+import base64
+
+'''
+定义一些系统变量
+'''
+
+SYSTEM_GENERATE_VERSION = "taobao-sdk-python-dynamicVersionNo"
+
+P_APPKEY = "app_key"
+P_API = "method"
+P_ACCESS_TOKEN = "access_token"
+P_VERSION = "v"
+P_FORMAT = "format"
+P_TIMESTAMP = "timestamp"
+P_SIGN = "sign"
+P_SIGN_METHOD = "sign_method"
+P_PARTNER_ID = "partner_id"
+
+P_CODE = 'errcode'
+P_MSG = 'errmsg'
+
+def sign(secret, parameters):
+    #===========================================================================
+    # '''签名方法
+    # @param secret: 签名需要的密钥
+    # @param parameters: 支持字典和string两种
+    # '''
+    #===========================================================================
+    # 如果parameters 是字典类的话
+    if hasattr(parameters, "items"):
+        keys = parameters.keys()
+        keys.sort()
+        
+        parameters = "%s%s%s" % (secret,
+            str().join('%s%s' % (key, parameters[key]) for key in keys),
+            secret)
+    sign = hashlib.md5(parameters).hexdigest().upper()
+    return sign
+
+def mixStr(pstr):
+    if(isinstance(pstr, str)):
+        return pstr
+    elif(isinstance(pstr, unicode)):
+        return pstr.encode('utf-8')
+    else:
+        return str(pstr)
+    
+class FileItem(object):
+    def __init__(self,filename=None,content=None):
+        self.filename = filename
+        self.content = content
+
+class MultiPartForm(object):
+    """Accumulate the data to be used when posting a form."""
+
+    def __init__(self):
+        self.form_fields = []
+        self.files = []
+        self.boundary = "PYTHON_SDK_BOUNDARY"
+        return
+    
+    def get_content_type(self):
+        return 'multipart/form-data;charset=UTF-8; boundary=%s' % self.boundary
+
+    def add_field(self, name, value):
+        """Add a simple field to the form data."""
+        self.form_fields.append((name, str(value)))
+        return
+
+    def add_file(self, fieldname, filename, fileHandle, mimetype=None):
+        """Add a file to be uploaded."""
+        body = fileHandle.read()
+        if mimetype is None:
+            mimetype = mimetypes.guess_type(filename)[0] or 'application/octet-stream'
+        self.files.append((mixStr(fieldname), mixStr(filename), mixStr(mimetype), mixStr(body)))
+        return
+    
+    def __str__(self):
+        """Return a string representing the form data, including attached files."""
+        # Build a list of lists, each containing "lines" of the
+        # request.  Each part is separated by a boundary string.
+        # Once the list is built, return a string where each
+        # line is separated by '\r\n'.  
+        parts = []
+        part_boundary = '--' + self.boundary
+        
+        # Add the form fields
+        parts.extend(
+            [ part_boundary,
+              'Content-Disposition: form-data; name="%s"' % name,
+              'Content-Type: text/plain; charset=UTF-8',
+              '',
+              value,
+            ]
+            for name, value in self.form_fields
+            )
+        
+        # Add the files to upload
+        parts.extend(
+            [ part_boundary,
+              'Content-Disposition: form-data; name="%s"; filename="%s"' % \
+                 (field_name, filename),
+              'Content-Type: %s' % content_type,
+              'Content-Transfer-Encoding: binary',
+              '',
+              body,
+            ]
+            for field_name, filename, content_type, body in self.files
+            )
+        
+        # Flatten the list and add closing boundary marker,
+        # then return CR+LF separated data
+        flattened = list(itertools.chain(*parts))
+        flattened.append('--' + self.boundary + '--')
+        flattened.append('')
+        return '\r\n'.join(flattened)
+
+class TopException(Exception):
+    #===========================================================================
+    # 业务异常类
+    #===========================================================================
+    def __init__(self):
+        self.errcode = None
+        self.errmsg = None
+        self.application_host = None
+        self.service_host = None
+    
+    def __str__(self, *args, **kwargs):
+        sb = "errcode=" + mixStr(self.errcode) +\
+            " errmsg=" + mixStr(self.errmsg) +\
+            " application_host=" + mixStr(self.application_host) +\
+            " service_host=" + mixStr(self.service_host)
+        return sb
+       
+class RequestException(Exception):
+    #===========================================================================
+    # 请求连接异常类
+    #===========================================================================
+    pass
+
+class RestApi(object):
+    #===========================================================================
+    # Rest api的基类
+    #===========================================================================
+    
+    def __init__(self, url=None):
+        #=======================================================================
+        # 初始化基类
+        # Args @param domain: 请求的域名或者ip
+        #      @param port: 请求的端口
+        #=======================================================================
+        if(url == None):
+            raise RequestException("domain must not be empty.")
+        if(url.find('http://') >= 0):
+            self.__port = 80
+            pathUrl = url.replace('http://','')
+        elif(url.find('https://') >= 0):
+            self.__port = 443
+            pathUrl = url.replace('https://','')
+        else:
+            raise RequestException("http protocol is not validate.")
+        
+        index = pathUrl.find('/')
+        if(index > 0):
+            self.__domain = pathUrl[0:index]
+            self.__path = pathUrl[index:]
+        else:
+            self.__domain = pathUrl
+            self.__path = ''
+
+        # print("domain:" + self.__domain + ",path:" + self.__path + ",port:" + str(self.__port))
+        
+    def get_request_header(self):
+        return {
+            'Content-type': 'application/json;charset=UTF-8',
+            "Cache-Control": "no-cache",
+            "Connection": "Keep-Alive",
+        }
+
+    def getHttpMethod(self):
+        return "GET"
+        
+    def getapiname(self):
+        return ""
+    
+    def getMultipartParas(self):
+        return [];
+
+    def getTranslateParas(self):
+        return {};
+    
+    def _check_requst(self):
+        pass
+    
+    def getResponse(self, authrize='',accessKey='',accessSecret='',suiteTicket='',corpId='', timeout=30):
+        #=======================================================================
+        # 获取response结果
+        #=======================================================================
+        if(self.__port == 443):
+            connection = httplib.HTTPSConnection(self.__domain, self.__port, None, None, False, timeout)
+        else:
+            connection = httplib.HTTPConnection(self.__domain, self.__port, False, timeout)
+        sys_parameters = {
+            P_PARTNER_ID: SYSTEM_GENERATE_VERSION,
+        }
+        if authrize is not None:
+            sys_parameters[P_ACCESS_TOKEN] = authrize
+        application_parameter = self.getApplicationParameters()
+        sign_parameter = sys_parameters.copy()
+        sign_parameter.update(application_parameter)
+        
+        header = self.get_request_header();
+        if(self.getMultipartParas()):
+            form = MultiPartForm()
+            for key, value in application_parameter.items():
+                form.add_field(key, value)
+            for key in self.getMultipartParas():
+                fileitem = getattr(self,key)
+                if(fileitem and isinstance(fileitem,FileItem)):
+                    form.add_file(key,fileitem.filename,fileitem.content)
+            body = str(form)
+            header['Content-type'] = form.get_content_type()
+        else:
+            body = urllib.urlencode(application_parameter)
+        
+        if(accessKey != ''):
+            timestamp = str(int(round(time.time()))) + '000'
+            print("timestamp:" + timestamp)
+            canonicalString = self.getCanonicalStringForIsv(timestamp, suiteTicket)
+            print("canonicalString:" + canonicalString)
+            print("accessSecret:" + accessSecret)
+            signature = self.computeSignature(accessSecret, canonicalString)
+            print("signature:" + signature)
+            ps = {}
+            ps["accessKey"] = accessKey
+            ps["signature"] = signature
+            ps["timestamp"] = timestamp
+            if(suiteTicket != ''):
+			    ps["suiteTicket"] = suiteTicket
+            if(corpId != ''):
+			    ps["corpId"] = corpId
+            queryStr = urllib.urlencode(ps)
+            if (self.__path.find("?") > 0):
+                fullPath = self.__path + "&" + queryStr
+            else:
+                fullPath = self.__path + "?" + queryStr
+            print("fullPath:" + fullPath)
+        else:
+            if (self.__path.find("?") > 0):
+                fullPath = (self.__path + "&access_token=" + str(authrize)) if len(str(authrize)) > 0 else self.__path
+            else:
+                fullPath = (self.__path + "?access_token=" + str(authrize)) if len(str(authrize)) > 0 else self.__path
+
+        if(self.getHttpMethod() == "GET"):
+            if (fullPath.find("?") > 0):
+                fullPath = fullPath + "&" + body;
+            else:
+                fullPath = fullPath + "?" + body
+            connection.request(self.getHttpMethod(), fullPath, headers=header)
+        else:
+            if (self.getMultipartParas()):
+                body = body
+            else:
+                body = json.dumps(application_parameter)
+            connection.request(self.getHttpMethod(), fullPath, body=body, headers=header)
+        response = connection.getresponse();
+        if response.status is not 200:
+            raise RequestException('invalid http status ' + str(response.status) + ',detail body:' + response.read())
+        result = response.read()
+        # print("result:" + result)
+        jsonobj = json.loads(result)
+        if jsonobj.has_key(P_CODE) and jsonobj[P_CODE] != 0:
+            error = TopException()
+            error.errcode = jsonobj[P_CODE]
+            error.errmsg = jsonobj[P_MSG]
+            error.application_host = response.getheader("Application-Host", "")
+            error.service_host = response.getheader("Location-Host", "")
+            raise error
+        return jsonobj
+    
+    def getCanonicalStringForIsv(self, timestamp, suiteTicket):
+        if(suiteTicket != ''):
+            return timestamp + '\n' + suiteTicket
+        else:
+            return timestamp
+
+    def computeSignature(self, secret, canonicalString):
+        message = canonicalString.encode(encoding="utf-8")
+        sec = secret.encode(encoding="utf-8")
+        return str(base64.b64encode(hmac.new(sec, message, digestmod=hashlib.sha256).digest()))
+    
+    def getApplicationParameters(self):
+        application_parameter = {}
+        for key, value in self.__dict__.iteritems():
+            if not key.startswith("__") and not key in self.getMultipartParas() and not key.startswith("_RestApi__") and value is not None :
+                if(key.startswith("_")):
+                    application_parameter[key[1:]] = value
+                else:
+                    application_parameter[key] = value
+        #查询翻译字典来规避一些关键字属性
+        translate_parameter = self.getTranslateParas()
+        for key, value in application_parameter.iteritems():
+            if key in translate_parameter:
+                application_parameter[translate_parameter[key]] = application_parameter[key]
+                del application_parameter[key]
+        return application_parameter

+ 15 - 0
dingtalk/api/rest/CcoserviceServicegroupAddmemberRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CcoserviceServicegroupAddmemberRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.open_group_id = None
+		self.userid = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.ccoservice.servicegroup.addmember'

+ 14 - 0
dingtalk/api/rest/CcoserviceServicegroupGetRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CcoserviceServicegroupGetRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.open_group_id = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.ccoservice.servicegroup.get'

+ 13 - 0
dingtalk/api/rest/CorpBlazersGetbinddataRequest.py

@@ -0,0 +1,13 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpBlazersGetbinddataRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.blazers.getbinddata'

+ 13 - 0
dingtalk/api/rest/CorpBlazersGetbizidRequest.py

@@ -0,0 +1,13 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpBlazersGetbizidRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.blazers.getbizid'

+ 14 - 0
dingtalk/api/rest/CorpBlazersRemovemappingRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2018.07.25
+'''
+from dingtalk.api.base import RestApi
+class CorpBlazersRemovemappingRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.biz_id = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.blazers.removemapping'

+ 13 - 0
dingtalk/api/rest/CorpBlazersUnbindRequest.py

@@ -0,0 +1,13 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpBlazersUnbindRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.blazers.unbind'

+ 14 - 0
dingtalk/api/rest/CorpCalendarCreateRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpCalendarCreateRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.create_vo = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.calendar.create'

+ 17 - 0
dingtalk/api/rest/CorpChatbotAddchatbotinstanceRequest.py

@@ -0,0 +1,17 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpChatbotAddchatbotinstanceRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.chatbot_id = None
+		self.icon_media_id = None
+		self.name = None
+		self.open_conversation_id = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.chatbot.addchatbotinstance'

+ 14 - 0
dingtalk/api/rest/CorpChatbotCreateorgbotRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2018.07.25
+'''
+from dingtalk.api.base import RestApi
+class CorpChatbotCreateorgbotRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.create_chat_bot_model = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.chatbot.createorgbot'

+ 14 - 0
dingtalk/api/rest/CorpChatbotInstallRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpChatbotInstallRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.chatbot_vo = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.chatbot.install'

+ 14 - 0
dingtalk/api/rest/CorpChatbotListbychatbotidsRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpChatbotListbychatbotidsRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.chatbot_ids = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.chatbot.listbychatbotids'

+ 15 - 0
dingtalk/api/rest/CorpChatbotListorgbotRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2018.07.25
+'''
+from dingtalk.api.base import RestApi
+class CorpChatbotListorgbotRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.agent_id = None
+		self.type = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.chatbot.listorgbot'

+ 15 - 0
dingtalk/api/rest/CorpChatbotListorgbotbytypeandbottypeRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2018.07.25
+'''
+from dingtalk.api.base import RestApi
+class CorpChatbotListorgbotbytypeandbottypeRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.bot_type = None
+		self.type = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.chatbot.listorgbotbytypeandbottype'

+ 20 - 0
dingtalk/api/rest/CorpChatbotUpdatebychatbotidRequest.py

@@ -0,0 +1,20 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpChatbotUpdatebychatbotidRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.breif = None
+		self.chatbot_id = None
+		self.description = None
+		self.icon = None
+		self.name = None
+		self.preview_media_id = None
+		self.update_type = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.chatbot.updatebychatbotid'

+ 16 - 0
dingtalk/api/rest/CorpChatbotUpdateorgbotRequest.py

@@ -0,0 +1,16 @@
+'''
+Created by auto_sdk on 2018.07.25
+'''
+from dingtalk.api.base import RestApi
+class CorpChatbotUpdateorgbotRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.chatbot_id = None
+		self.icon = None
+		self.name = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.chatbot.updateorgbot'

+ 14 - 0
dingtalk/api/rest/CorpConversationCorpconversionGetconversationRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpConversationCorpconversionGetconversationRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.open_conversation_id = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.conversation.corpconversion.getconversation'

+ 16 - 0
dingtalk/api/rest/CorpConversationCorpconversionListmemberRequest.py

@@ -0,0 +1,16 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpConversationCorpconversionListmemberRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.count = None
+		self.offset = None
+		self.open_conversation_id = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.conversation.corpconversion.listmember'

+ 15 - 0
dingtalk/api/rest/CorpDeptgroupSyncuserRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpDeptgroupSyncuserRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.dept_id = None
+		self.userid = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.deptgroup.syncuser'

+ 15 - 0
dingtalk/api/rest/CorpDeviceManageGetRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpDeviceManageGetRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.device_id = None
+		self.device_service_id = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.device.manage.get'

+ 14 - 0
dingtalk/api/rest/CorpDeviceManageHasbinddeviceRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpDeviceManageHasbinddeviceRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.device_service_id = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.device.manage.hasbinddevice'

+ 16 - 0
dingtalk/api/rest/CorpDeviceManageQuerylistRequest.py

@@ -0,0 +1,16 @@
+'''
+Created by auto_sdk on 2019.08.14
+'''
+from dingtalk.api.base import RestApi
+class CorpDeviceManageQuerylistRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.cursor = None
+		self.device_service_id = None
+		self.size = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.device.manage.querylist'

+ 15 - 0
dingtalk/api/rest/CorpDeviceManageUnbindRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2018.07.25
+'''
+from dingtalk.api.base import RestApi
+class CorpDeviceManageUnbindRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.device_id = None
+		self.device_service_id = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.device.manage.unbind'

+ 16 - 0
dingtalk/api/rest/CorpDeviceNickUpdateRequest.py

@@ -0,0 +1,16 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpDeviceNickUpdateRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.device_id = None
+		self.device_service_id = None
+		self.new_nick = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.device.nick.update'

+ 19 - 0
dingtalk/api/rest/CorpDingCreateRequest.py

@@ -0,0 +1,19 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpDingCreateRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.attachment = None
+		self.creator_userid = None
+		self.receiver_userids = None
+		self.remind_time = None
+		self.remind_type = None
+		self.text_content = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.ding.create'

+ 17 - 0
dingtalk/api/rest/CorpDingReceiverstatusListRequest.py

@@ -0,0 +1,17 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpDingReceiverstatusListRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.confirmed_status = None
+		self.ding_id = None
+		self.page_no = None
+		self.page_size = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.ding.receiverstatus.list'

+ 14 - 0
dingtalk/api/rest/CorpDingTaskCreateRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2018.07.25
+'''
+from dingtalk.api.base import RestApi
+class CorpDingTaskCreateRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.task_send_v_o = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.ding.task.create'

+ 16 - 0
dingtalk/api/rest/CorpEmpSearchRequest.py

@@ -0,0 +1,16 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpEmpSearchRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.keyword = None
+		self.offset = None
+		self.size = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.emp.search'

+ 13 - 0
dingtalk/api/rest/CorpEncryptionKeyListRequest.py

@@ -0,0 +1,13 @@
+'''
+Created by auto_sdk on 2018.07.25
+'''
+from dingtalk.api.base import RestApi
+class CorpEncryptionKeyListRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.encryption.key.list'

+ 14 - 0
dingtalk/api/rest/CorpExtAddRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpExtAddRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.contact = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.ext.add'

+ 15 - 0
dingtalk/api/rest/CorpExtListRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpExtListRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.offset = None
+		self.size = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.ext.list'

+ 15 - 0
dingtalk/api/rest/CorpExtListlabelgroupsRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpExtListlabelgroupsRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.offset = None
+		self.size = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.ext.listlabelgroups'

+ 14 - 0
dingtalk/api/rest/CorpExtUpdateRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpExtUpdateRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.contact = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.ext.update'

+ 14 - 0
dingtalk/api/rest/CorpExtcontactCreateRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpExtcontactCreateRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.contact = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.extcontact.create'

+ 14 - 0
dingtalk/api/rest/CorpExtcontactDeleteRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2018.07.25
+'''
+from dingtalk.api.base import RestApi
+class CorpExtcontactDeleteRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.userid = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.extcontact.delete'

+ 14 - 0
dingtalk/api/rest/CorpExtcontactGetRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpExtcontactGetRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.user_id = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.extcontact.get'

+ 15 - 0
dingtalk/api/rest/CorpExtcontactListRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpExtcontactListRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.offset = None
+		self.size = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.extcontact.list'

+ 15 - 0
dingtalk/api/rest/CorpExtcontactListlabelgroupsRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpExtcontactListlabelgroupsRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.offset = None
+		self.size = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.extcontact.listlabelgroups'

+ 14 - 0
dingtalk/api/rest/CorpExtcontactUpdateRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2018.07.25
+'''
+from dingtalk.api.base import RestApi
+class CorpExtcontactUpdateRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.contact = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.extcontact.update'

+ 14 - 0
dingtalk/api/rest/CorpHealthStepinfoGetuserstatusRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpHealthStepinfoGetuserstatusRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.userid = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.health.stepinfo.getuserstatus'

+ 16 - 0
dingtalk/api/rest/CorpHealthStepinfoListRequest.py

@@ -0,0 +1,16 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpHealthStepinfoListRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.object_id = None
+		self.stat_dates = None
+		self.type = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.health.stepinfo.list'

+ 15 - 0
dingtalk/api/rest/CorpHealthStepinfoListbyuseridRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpHealthStepinfoListbyuseridRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.stat_date = None
+		self.userids = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.health.stepinfo.listbyuserid'

+ 21 - 0
dingtalk/api/rest/CorpHrmEmployeeAddresumerecordRequest.py

@@ -0,0 +1,21 @@
+'''
+Created by auto_sdk on 2018.07.25
+'''
+from dingtalk.api.base import RestApi
+class CorpHrmEmployeeAddresumerecordRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.content = None
+		self.k_v_content = None
+		self.pc_url = None
+		self.phone_url = None
+		self.record_time_stamp = None
+		self.title = None
+		self.userid = None
+		self.web_url = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.hrm.employee.addresumerecord'

+ 15 - 0
dingtalk/api/rest/CorpHrmEmployeeDelemployeedismissionandhandoverRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpHrmEmployeeDelemployeedismissionandhandoverRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.dismission_info_with_hand_over = None
+		self.op_userid = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.hrm.employee.delemployeedismissionandhandover'

+ 14 - 0
dingtalk/api/rest/CorpHrmEmployeeGetRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpHrmEmployeeGetRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.userid = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.hrm.employee.get'

+ 16 - 0
dingtalk/api/rest/CorpHrmEmployeeGetdismissionlistRequest.py

@@ -0,0 +1,16 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpHrmEmployeeGetdismissionlistRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.current = None
+		self.op_userid = None
+		self.page_size = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.hrm.employee.getdismissionlist'

+ 15 - 0
dingtalk/api/rest/CorpHrmEmployeeModjobinfoRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpHrmEmployeeModjobinfoRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.hrm_api_job_model = None
+		self.op_userid = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.hrm.employee.modjobinfo'

+ 15 - 0
dingtalk/api/rest/CorpHrmEmployeeSetuserworkdataRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpHrmEmployeeSetuserworkdataRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.hrm_api_user_data_model = None
+		self.op_userid = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.hrm.employee.setuserworkdata'

+ 13 - 0
dingtalk/api/rest/CorpInvoiceGettitleRequest.py

@@ -0,0 +1,13 @@
+'''
+Created by auto_sdk on 2018.07.25
+'''
+from dingtalk.api.base import RestApi
+class CorpInvoiceGettitleRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.invoice.gettitle'

+ 13 - 0
dingtalk/api/rest/CorpLivenessGetRequest.py

@@ -0,0 +1,13 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpLivenessGetRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.liveness.get'

+ 19 - 0
dingtalk/api/rest/CorpMessageCorpconversationAsyncsendRequest.py

@@ -0,0 +1,19 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpMessageCorpconversationAsyncsendRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.agent_id = None
+		self.dept_id_list = None
+		self.msgcontent = None
+		self.msgtype = None
+		self.to_all_user = None
+		self.userid_list = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.message.corpconversation.asyncsend'

+ 20 - 0
dingtalk/api/rest/CorpMessageCorpconversationAsyncsendbycodeRequest.py

@@ -0,0 +1,20 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpMessageCorpconversationAsyncsendbycodeRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.agent_id = None
+		self.code = None
+		self.dept_id_list = None
+		self.msgcontent = None
+		self.msgtype = None
+		self.to_all_user = None
+		self.user_id_list = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.message.corpconversation.asyncsendbycode'

+ 15 - 0
dingtalk/api/rest/CorpMessageCorpconversationGetsendprogressRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpMessageCorpconversationGetsendprogressRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.agent_id = None
+		self.task_id = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.message.corpconversation.getsendprogress'

+ 15 - 0
dingtalk/api/rest/CorpMessageCorpconversationGetsendresultRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpMessageCorpconversationGetsendresultRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.agent_id = None
+		self.task_id = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.message.corpconversation.getsendresult'

+ 18 - 0
dingtalk/api/rest/CorpMessageCorpconversationSendmockRequest.py

@@ -0,0 +1,18 @@
+'''
+Created by auto_sdk on 2018.07.25
+'''
+from dingtalk.api.base import RestApi
+class CorpMessageCorpconversationSendmockRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.message = None
+		self.message_type = None
+		self.microapp_agent_id = None
+		self.to_party = None
+		self.to_user = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.message.corpconversation.sendmock'

+ 19 - 0
dingtalk/api/rest/CorpReportListRequest.py

@@ -0,0 +1,19 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpReportListRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.cursor = None
+		self.end_time = None
+		self.size = None
+		self.start_time = None
+		self.template_name = None
+		self.userid = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.report.list'

+ 15 - 0
dingtalk/api/rest/CorpRoleAddrolesforempsRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpRoleAddrolesforempsRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.rolelid_list = None
+		self.userid_list = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.role.addrolesforemps'

+ 14 - 0
dingtalk/api/rest/CorpRoleDeleteroleRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpRoleDeleteroleRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.role_id = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.role.deleterole'

+ 14 - 0
dingtalk/api/rest/CorpRoleGetrolegroupRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpRoleGetrolegroupRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.group_id = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.role.getrolegroup'

+ 15 - 0
dingtalk/api/rest/CorpRoleListRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpRoleListRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.offset = None
+		self.size = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.role.list'

+ 15 - 0
dingtalk/api/rest/CorpRoleRemoverolesforempsRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpRoleRemoverolesforempsRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.roleid_list = None
+		self.userid_list = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.role.removerolesforemps'

+ 16 - 0
dingtalk/api/rest/CorpRoleSimplelistRequest.py

@@ -0,0 +1,16 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpRoleSimplelistRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.offset = None
+		self.role_id = None
+		self.size = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.role.simplelist'

+ 16 - 0
dingtalk/api/rest/CorpSearchCorpcontactBaseinfoRequest.py

@@ -0,0 +1,16 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpSearchCorpcontactBaseinfoRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.offset = None
+		self.query = None
+		self.size = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.search.corpcontact.baseinfo'

+ 14 - 0
dingtalk/api/rest/CorpSmartdeviceAddfaceRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpSmartdeviceAddfaceRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.face_vo = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.smartdevice.addface'

+ 14 - 0
dingtalk/api/rest/CorpSmartdeviceGetfaceRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.09.03
+'''
+from dingtalk.api.base import RestApi
+class CorpSmartdeviceGetfaceRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.userid = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.smartdevice.getface'

+ 14 - 0
dingtalk/api/rest/CorpSmartdeviceHasfaceRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.12.17
+'''
+from dingtalk.api.base import RestApi
+class CorpSmartdeviceHasfaceRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.userid_list = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.smartdevice.hasface'

+ 16 - 0
dingtalk/api/rest/CorpSmartdeviceReceptionistPushinfoRequest.py

@@ -0,0 +1,16 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class CorpSmartdeviceReceptionistPushinfoRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.desc_content = None
+		self.desc_template = None
+		self.microapp_agent_id = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.smartdevice.receptionist.pushinfo'

+ 14 - 0
dingtalk/api/rest/CorpUserPersonainfoGetRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2018.07.25
+'''
+from dingtalk.api.base import RestApi
+class CorpUserPersonainfoGetRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.userid = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.corp.user.personainfo.get'

+ 15 - 0
dingtalk/api/rest/IsvBlazersGeneratecodeRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class IsvBlazersGeneratecodeRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.biz_id = None
+		self.ext = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.isv.blazers.generatecode'

+ 16 - 0
dingtalk/api/rest/IsvCallCalluserRequest.py

@@ -0,0 +1,16 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class IsvCallCalluserRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.authed_corp_id = None
+		self.authed_staff_id = None
+		self.staff_id = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.isv.call.calluser'

+ 15 - 0
dingtalk/api/rest/IsvCallGetuserlistRequest.py

@@ -0,0 +1,15 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class IsvCallGetuserlistRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.offset = None
+		self.start = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.isv.call.getuserlist'

+ 14 - 0
dingtalk/api/rest/IsvCallRemoveuserlistRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class IsvCallRemoveuserlistRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.staff_id_list = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.isv.call.removeuserlist'

+ 14 - 0
dingtalk/api/rest/IsvCallSetuserlistRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class IsvCallSetuserlistRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.staff_id_list = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.isv.call.setuserlist'

+ 14 - 0
dingtalk/api/rest/OapiAlitripBtripApplyGetRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class OapiAlitripBtripApplyGetRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.rq = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.oapi.alitrip.btrip.apply.get'

+ 14 - 0
dingtalk/api/rest/OapiAlitripBtripApplySearchRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.03
+'''
+from dingtalk.api.base import RestApi
+class OapiAlitripBtripApplySearchRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.rq = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.oapi.alitrip.btrip.apply.search'

+ 14 - 0
dingtalk/api/rest/OapiAlitripBtripApprovalModifyRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.12.31
+'''
+from dingtalk.api.base import RestApi
+class OapiAlitripBtripApprovalModifyRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.rq = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.oapi.alitrip.btrip.approval.modify'

+ 14 - 0
dingtalk/api/rest/OapiAlitripBtripApprovalNewRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.12.19
+'''
+from dingtalk.api.base import RestApi
+class OapiAlitripBtripApprovalNewRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.rq = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.oapi.alitrip.btrip.approval.new'

+ 14 - 0
dingtalk/api/rest/OapiAlitripBtripApprovalUpdateRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.07.01
+'''
+from dingtalk.api.base import RestApi
+class OapiAlitripBtripApprovalUpdateRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.rq = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.oapi.alitrip.btrip.approval.update'

+ 14 - 0
dingtalk/api/rest/OapiAlitripBtripCategoryAddressGetRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2018.08.07
+'''
+from dingtalk.api.base import RestApi
+class OapiAlitripBtripCategoryAddressGetRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.rq = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.oapi.alitrip.btrip.category.address.get'

+ 14 - 0
dingtalk/api/rest/OapiAlitripBtripCostCenterDeleteRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2018.08.07
+'''
+from dingtalk.api.base import RestApi
+class OapiAlitripBtripCostCenterDeleteRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.rq = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.oapi.alitrip.btrip.cost.center.delete'

+ 14 - 0
dingtalk/api/rest/OapiAlitripBtripCostCenterEntityAddRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2018.08.07
+'''
+from dingtalk.api.base import RestApi
+class OapiAlitripBtripCostCenterEntityAddRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.rq = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.oapi.alitrip.btrip.cost.center.entity.add'

+ 14 - 0
dingtalk/api/rest/OapiAlitripBtripCostCenterEntityDeleteRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2018.08.07
+'''
+from dingtalk.api.base import RestApi
+class OapiAlitripBtripCostCenterEntityDeleteRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.rq = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.oapi.alitrip.btrip.cost.center.entity.delete'

+ 14 - 0
dingtalk/api/rest/OapiAlitripBtripCostCenterEntitySetRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2018.08.07
+'''
+from dingtalk.api.base import RestApi
+class OapiAlitripBtripCostCenterEntitySetRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.rq = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.oapi.alitrip.btrip.cost.center.entity.set'

+ 14 - 0
dingtalk/api/rest/OapiAlitripBtripCostCenterModifyRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2018.08.07
+'''
+from dingtalk.api.base import RestApi
+class OapiAlitripBtripCostCenterModifyRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.rq = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.oapi.alitrip.btrip.cost.center.modify'

+ 14 - 0
dingtalk/api/rest/OapiAlitripBtripCostCenterNewRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2018.08.07
+'''
+from dingtalk.api.base import RestApi
+class OapiAlitripBtripCostCenterNewRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.rq = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.oapi.alitrip.btrip.cost.center.new'

+ 14 - 0
dingtalk/api/rest/OapiAlitripBtripCostCenterQueryRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2018.08.07
+'''
+from dingtalk.api.base import RestApi
+class OapiAlitripBtripCostCenterQueryRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.rq = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.oapi.alitrip.btrip.cost.center.query'

+ 14 - 0
dingtalk/api/rest/OapiAlitripBtripCostCenterTransferRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2018.08.07
+'''
+from dingtalk.api.base import RestApi
+class OapiAlitripBtripCostCenterTransferRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.rq = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.oapi.alitrip.btrip.cost.center.transfer'

+ 14 - 0
dingtalk/api/rest/OapiAlitripBtripFlightCitySuggestRequest.py

@@ -0,0 +1,14 @@
+'''
+Created by auto_sdk on 2019.10.24
+'''
+from dingtalk.api.base import RestApi
+class OapiAlitripBtripFlightCitySuggestRequest(RestApi):
+	def __init__(self,url=None):
+		RestApi.__init__(self,url)
+		self.rq = None
+
+	def getHttpMethod(self):
+		return 'POST'
+
+	def getapiname(self):
+		return 'dingtalk.oapi.alitrip.btrip.flight.city.suggest'

+ 0 - 0
dingtalk/api/rest/OapiAlitripBtripFlightOrderSearchRequest.py


Некоторые файлы не были показаны из-за большого количества измененных файлов