|
1 | 1 | from requests import Response
|
2 |
| - |
| 2 | +import urllib3 |
3 | 3 | import demistomock as demisto
|
4 | 4 | from typing import Callable, Tuple
|
5 | 5 | from CommonServerPython import * # noqa # pylint: disable=unused-wildcard-import
|
6 | 6 | from CommonServerUserPython import * # noqa
|
7 | 7 |
|
8 | 8 | # Disable insecure warnings
|
9 | 9 | DEFAULT_POLL_INTERVAL = 5
|
10 |
| -requests.packages.urllib3.disable_warnings() # pylint: disable=no-member |
| 10 | +urllib3.disable_warnings() |
11 | 11 |
|
12 | 12 | ''' CONSTANTS '''
|
13 | 13 | DEFAULT_POLL_TIMEOUT = 60
|
14 | 14 | INTEGRATION_NAME = 'Opsgenie'
|
15 | 15 | ALERTS_SUFFIX = "alerts"
|
16 | 16 | REQUESTS_SUFFIX = "requests"
|
17 | 17 | SCHEDULE_SUFFIX = "schedules"
|
| 18 | +USERS_SUFFIX = "users" |
18 | 19 | INCIDENTS_SUFFIX = "incidents"
|
19 | 20 | ESCALATION_SUFFIX = "escalations"
|
20 | 21 | TEAMS_SUFFIX = "teams"
|
@@ -303,6 +304,12 @@ def remove_tag_incident(self, args: dict):
|
303 | 304 | params={"tags": args.get('tags')},
|
304 | 305 | json_data=args)
|
305 | 306 |
|
| 307 | + def invite_user(self, args): |
| 308 | + return self._http_request(method='POST', |
| 309 | + url_suffix=f"/v2/{USERS_SUFFIX}", |
| 310 | + json_data=args |
| 311 | + ) |
| 312 | + |
306 | 313 | def get_team(self, args: dict):
|
307 | 314 | return self._http_request(method='GET',
|
308 | 315 | url_suffix=f"/v2/{TEAMS_SUFFIX}/{args.get('team_id')}"
|
@@ -839,6 +846,17 @@ def get_request_command(client: Client, args: Dict[str, Any]) -> CommandResults:
|
839 | 846 | )
|
840 | 847 |
|
841 | 848 |
|
| 849 | +def invite_user(client, args) -> CommandResults: |
| 850 | + args['role'] = {'name': args.get('role')} |
| 851 | + result = client.invite_user(args) |
| 852 | + return CommandResults( |
| 853 | + outputs_prefix="OpsGenie.Users", |
| 854 | + outputs=result.get("data"), |
| 855 | + readable_output=tableToMarkdown("OpsGenie Users", result.get("data")), |
| 856 | + raw_response=result |
| 857 | + ) |
| 858 | + |
| 859 | + |
842 | 860 | def get_teams(client: Client, args: Dict[str, Any]) -> CommandResults:
|
843 | 861 | result = client.get_team(args) if args.get("team_id") else client.list_teams()
|
844 | 862 | return CommandResults(
|
@@ -989,6 +1007,7 @@ def main() -> None:
|
989 | 1007 |
|
990 | 1008 | commands = {
|
991 | 1009 | 'opsgenie-create-alert': create_alert,
|
| 1010 | + 'opsgenie-invite-user': invite_user, |
992 | 1011 | 'opsgenie-get-alerts': get_alerts,
|
993 | 1012 | 'opsgenie-delete-alert': delete_alert,
|
994 | 1013 | 'opsgenie-ack-alert': ack_alert,
|
|
0 commit comments