resources.py (2595B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\datadog\api\resources.py 2 from datadog.api.api_client import APIClient 3 4 class CreateableAPIResource(object): 5 6 @classmethod 7 def create(cls, attach_host_name = False, method = 'POST', id = None, params = None, **body): 8 if params is None: 9 params = {} 10 if method == 'GET': 11 return APIClient.submit('GET', cls._class_url, **body) 12 elif id is None: 13 return APIClient.submit('POST', cls._class_url, body, attach_host_name=attach_host_name, **params) 14 else: 15 return APIClient.submit('POST', (cls._class_url + '/' + str(id)), body, attach_host_name=attach_host_name, **params) 16 17 18 class SendableAPIResource(object): 19 20 @classmethod 21 def send(cls, attach_host_name = False, id = None, **body): 22 if id is None: 23 return APIClient.submit('POST', cls._class_url, body, attach_host_name=attach_host_name) 24 else: 25 return APIClient.submit('POST', cls._class_url + '/' + str(id), body, attach_host_name=attach_host_name) 26 27 28 class UpdatableAPIResource(object): 29 30 @classmethod 31 def update(cls, id, params = None, **body): 32 if params is None: 33 params = {} 34 return APIClient.submit('PUT', (cls._class_url + '/' + str(id)), body, **params) 35 36 37 class DeletableAPIResource(object): 38 39 @classmethod 40 def delete(cls, id, **params): 41 return APIClient.submit('DELETE', (cls._class_url + '/' + str(id)), **params) 42 43 44 class GetableAPIResource(object): 45 46 @classmethod 47 def get(cls, id, **params): 48 return APIClient.submit('GET', (cls._class_url + '/' + str(id)), **params) 49 50 51 class ListableAPIResource(object): 52 53 @classmethod 54 def get_all(cls, **params): 55 return APIClient.submit('GET', cls._class_url, **params) 56 57 58 class SearchableAPIResource(object): 59 60 @classmethod 61 def _search(cls, **params): 62 return APIClient.submit('GET', cls._class_url, **params) 63 64 65 class ActionAPIResource(object): 66 67 @classmethod 68 def _trigger_class_action(cls, method, name, id = None, **params): 69 if id is None: 70 return APIClient.submit(method, cls._class_url + '/' + name, params) 71 else: 72 return APIClient.submit(method, cls._class_url + '/' + str(id) + '/' + name, params) 73 74 @classmethod 75 def _trigger_action(cls, method, name, id = None, **params): 76 if id is None: 77 return APIClient.submit(method, name, params) 78 else: 79 return APIClient.submit(method, name + '/' + str(id), params)