Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 56eb3d7

Browse files
authored
Merge pull request auth0#289 from auth0/actions-apis
[SDK-2720] Add support for actions APIs
2 parents 6e2f093 + e506d9d commit 56eb3d7

File tree

4 files changed

+446
-0
lines changed

4 files changed

+446
-0
lines changed

README.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,7 @@ Authentication Endpoints
340340
Management Endpoints
341341
********************
342342
343+
- Actions() (``Auth0().actions``)
343344
- Blacklists() ( ``Auth0().blacklists`` )
344345
- ClientGrants() ( ``Auth0().client_grants`` )
345346
- Clients() ( ``Auth0().clients`` )

auth0/v3/management/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from .auth0 import Auth0
2+
from .actions import Actions
23
from .blacklists import Blacklists
34
from .client_grants import ClientGrants
45
from .clients import Clients

auth0/v3/management/actions.py

Lines changed: 234 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,234 @@
1+
from .rest import RestClient
2+
3+
4+
class Actions(object):
5+
"""Auth0 Actions endpoints
6+
7+
Args:
8+
domain (str): Your Auth0 domain, e.g: 'username.auth0.com'
9+
10+
token (str): Management API v2 Token
11+
12+
telemetry (bool, optional): Enable or disable Telemetry
13+
(defaults to True)
14+
15+
timeout (float or tuple, optional): Change the requests
16+
connect and read timeout. Pass a tuple to specify
17+
both values separately or a float to set both to it.
18+
(defaults to 5.0 for both)
19+
20+
rest_options (RestClientOptions): Pass an instance of
21+
RestClientOptions to configure additional RestClient
22+
options, such as rate-limit retries.
23+
(defaults to None)
24+
"""
25+
26+
def __init__(self, domain, token, telemetry=True, timeout=5.0, protocol="https", rest_options=None):
27+
self.domain = domain
28+
self.protocol = protocol
29+
self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout, options=rest_options)
30+
31+
def _url(self, *args):
32+
url = '{}://{}/api/v2/actions'.format(self.protocol, self.domain)
33+
for p in args:
34+
if p is not None:
35+
url = '{}/{}'.format(url, p)
36+
return url
37+
38+
def get_actions(self, trigger_id=None, action_name=None, deployed=False, installed=False, page=None, per_page=None):
39+
"""Get all actions.
40+
41+
Args:
42+
trigger_id (str, optional): Filter the results to only actions associated
43+
with this trigger ID.
44+
45+
action_name (str, optional): Filter the results to only actions with this name.
46+
47+
deployed (bool, optional): True to filter the results to only deployed actions.
48+
Defaults to False.
49+
50+
installed (bool, optional): True to filter the results to only installed actions.
51+
Defaults to False.
52+
53+
page (int, optional): The result's page number (zero based). When not set,
54+
the default value is up to the server.
55+
56+
per_page (int, optional): The amount of entries per page. When not set,
57+
the default value is up to the server.
58+
59+
See: https://auth0.com/docs/api/management/v2#!/Actions/get_actions
60+
"""
61+
params = {
62+
'triggerId': trigger_id,
63+
'actionName': action_name,
64+
'deployed': str(deployed).lower(),
65+
'installed': str(installed).lower(),
66+
'page': page,
67+
'per_page': per_page
68+
}
69+
70+
return self.client.get(self._url('actions'), params=params)
71+
72+
def create_action(self, body):
73+
"""Create a new action.
74+
75+
Args:
76+
body (dict): Attributes for the new action.
77+
78+
See: https://auth0.com/docs/api/management/v2#!/Actions/post_action
79+
"""
80+
81+
return self.client.post(self._url('actions'), data=body)
82+
83+
def update_action(self, id, body):
84+
"""Updates an action.
85+
86+
Args:
87+
id (str): the ID of the action.
88+
89+
body (dict): Attributes to modify.
90+
91+
See: https://auth0.com/docs/api/management/v2#!/Actions/patch_action
92+
"""
93+
94+
return self.client.patch(self._url('actions', id), data=body)
95+
96+
def get_action(self, id):
97+
"""Retrieves an action by its ID.
98+
99+
Args:
100+
id (str): Id of action to retrieve.
101+
102+
See: https://auth0.com/docs/api/management/v2#!/Actions/get_action
103+
"""
104+
params = {}
105+
106+
return self.client.get(self._url('actions', id), params=params)
107+
108+
def delete_action(self, id, force=False):
109+
"""Deletes an action and all of its associated versions.
110+
111+
Args:
112+
id (str): ID of the action to delete.
113+
114+
force (bool, optional): True to force action deletion detaching bindings,
115+
False otherwise. Defaults to False.
116+
117+
See: https://auth0.com/docs/api/management/v2#!/Actions/delete_action
118+
"""
119+
params = {
120+
'force': str(force).lower()
121+
}
122+
123+
return self.client.delete(self._url('actions', id), params=params)
124+
125+
def get_triggers(self):
126+
"""Retrieve the set of triggers currently available within actions.
127+
128+
See: https://auth0.com/docs/api/management/v2#!/Actions/get_triggers
129+
"""
130+
params = {}
131+
132+
return self.client.get(self._url('triggers'), params=params)
133+
134+
def get_execution(self, id):
135+
"""Get information about a specific execution of a trigger.
136+
137+
Args:
138+
id (str): The ID of the execution to retrieve.
139+
140+
See: https://auth0.com/docs/api/management/v2#!/Actions/get_execution
141+
"""
142+
params = {}
143+
144+
return self.client.get(self._url('executions', id), params=params)
145+
146+
def get_action_versions(self, id, page=None, per_page=None):
147+
"""Get all of an action's versions.
148+
149+
Args:
150+
id (str): The ID of the action.
151+
152+
page (int, optional): The result's page number (zero based). When not set,
153+
the default value is up to the server.
154+
155+
per_page (int, optional): The amount of entries per page. When not set,
156+
the default value is up to the server.
157+
158+
See: https://auth0.com/docs/api/management/v2#!/Actions/get_action_versions
159+
"""
160+
params = {
161+
'page': page,
162+
'per_page': per_page
163+
}
164+
165+
return self.client.get(self._url('actions', id, 'versions'), params=params)
166+
167+
def get_trigger_bindings(self, id, page=None, per_page=None):
168+
"""Get the actions that are bound to a trigger.
169+
170+
Args:
171+
id (str): The trigger ID.
172+
173+
page (int, optional): The result's page number (zero based). When not set,
174+
the default value is up to the server.
175+
176+
per_page (int, optional): The amount of entries per page. When not set,
177+
the default value is up to the server.
178+
179+
See: https://auth0.com/docs/api/management/v2#!/Actions/get_bindings
180+
"""
181+
params = {
182+
'page': page,
183+
'per_page': per_page
184+
}
185+
return self.client.get(self._url('triggers', id, 'bindings'), params=params)
186+
187+
def get_action_version(self, action_id, version_id):
188+
"""Retrieve a specific version of an action.
189+
190+
Args:
191+
action_id (str): The ID of the action.
192+
193+
version_id (str): The ID of the version to retrieve.
194+
195+
See: https://auth0.com/docs/api/management/v2#!/Actions/get_action_version
196+
"""
197+
params = {}
198+
199+
return self.client.get(self._url('actions', action_id, 'versions', version_id), params=params)
200+
201+
def deploy_action(self, id):
202+
"""Deploy an action.
203+
204+
Args:
205+
id (str): The ID of the action to deploy.
206+
207+
See: https://auth0.com/docs/api/management/v2#!/Actions/post_deploy_action
208+
"""
209+
return self.client.post(self._url('actions', id, 'deploy'))
210+
211+
def rollback_action_version(self, action_id, version_id):
212+
"""Roll back to a previous version of an action.
213+
214+
Args:
215+
action_id (str): The ID of the action.
216+
217+
version_id (str): The ID of the version.
218+
219+
See: https://auth0.com/docs/api/management/v2#!/Actions/post_deploy_draft_version
220+
"""
221+
params = {}
222+
return self.client.post(self._url('actions', action_id, 'versions', version_id, 'deploy'), data={})
223+
224+
def update_trigger_bindings(self, id, body):
225+
"""Update a trigger's bindings.
226+
227+
Args:
228+
id (str): The ID of the trigger to update.
229+
230+
body (dict): Attributes for the updated trigger binding.
231+
232+
See: https://auth0.com/docs/api/management/v2#!/Actions/patch_bindings
233+
"""
234+
return self.client.patch(self._url('triggers', id, 'bindings'), data=body)

0 commit comments

Comments
 (0)