universal-mcp-applications 0.1.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- universal_mcp/applications/ahrefs/README.md +51 -0
- universal_mcp/applications/ahrefs/__init__.py +1 -0
- universal_mcp/applications/ahrefs/app.py +2291 -0
- universal_mcp/applications/airtable/README.md +22 -0
- universal_mcp/applications/airtable/__init__.py +1 -0
- universal_mcp/applications/airtable/app.py +479 -0
- universal_mcp/applications/apollo/README.md +44 -0
- universal_mcp/applications/apollo/__init__.py +1 -0
- universal_mcp/applications/apollo/app.py +1847 -0
- universal_mcp/applications/asana/README.md +199 -0
- universal_mcp/applications/asana/__init__.py +1 -0
- universal_mcp/applications/asana/app.py +9509 -0
- universal_mcp/applications/aws-s3/README.md +0 -0
- universal_mcp/applications/aws-s3/__init__.py +1 -0
- universal_mcp/applications/aws-s3/app.py +552 -0
- universal_mcp/applications/bill/README.md +0 -0
- universal_mcp/applications/bill/__init__.py +1 -0
- universal_mcp/applications/bill/app.py +8705 -0
- universal_mcp/applications/box/README.md +307 -0
- universal_mcp/applications/box/__init__.py +1 -0
- universal_mcp/applications/box/app.py +15987 -0
- universal_mcp/applications/braze/README.md +106 -0
- universal_mcp/applications/braze/__init__.py +1 -0
- universal_mcp/applications/braze/app.py +4754 -0
- universal_mcp/applications/cal-com-v2/README.md +150 -0
- universal_mcp/applications/cal-com-v2/__init__.py +1 -0
- universal_mcp/applications/cal-com-v2/app.py +5541 -0
- universal_mcp/applications/calendly/README.md +53 -0
- universal_mcp/applications/calendly/__init__.py +1 -0
- universal_mcp/applications/calendly/app.py +1436 -0
- universal_mcp/applications/canva/README.md +43 -0
- universal_mcp/applications/canva/__init__.py +1 -0
- universal_mcp/applications/canva/app.py +941 -0
- universal_mcp/applications/clickup/README.md +135 -0
- universal_mcp/applications/clickup/__init__.py +1 -0
- universal_mcp/applications/clickup/app.py +5009 -0
- universal_mcp/applications/coda/README.md +108 -0
- universal_mcp/applications/coda/__init__.py +1 -0
- universal_mcp/applications/coda/app.py +3671 -0
- universal_mcp/applications/confluence/README.md +198 -0
- universal_mcp/applications/confluence/__init__.py +1 -0
- universal_mcp/applications/confluence/app.py +6273 -0
- universal_mcp/applications/contentful/README.md +17 -0
- universal_mcp/applications/contentful/__init__.py +1 -0
- universal_mcp/applications/contentful/app.py +364 -0
- universal_mcp/applications/crustdata/README.md +25 -0
- universal_mcp/applications/crustdata/__init__.py +1 -0
- universal_mcp/applications/crustdata/app.py +586 -0
- universal_mcp/applications/dialpad/README.md +202 -0
- universal_mcp/applications/dialpad/__init__.py +1 -0
- universal_mcp/applications/dialpad/app.py +5949 -0
- universal_mcp/applications/digitalocean/README.md +463 -0
- universal_mcp/applications/digitalocean/__init__.py +1 -0
- universal_mcp/applications/digitalocean/app.py +20835 -0
- universal_mcp/applications/domain-checker/README.md +13 -0
- universal_mcp/applications/domain-checker/__init__.py +1 -0
- universal_mcp/applications/domain-checker/app.py +265 -0
- universal_mcp/applications/e2b/README.md +12 -0
- universal_mcp/applications/e2b/__init__.py +1 -0
- universal_mcp/applications/e2b/app.py +187 -0
- universal_mcp/applications/elevenlabs/README.md +88 -0
- universal_mcp/applications/elevenlabs/__init__.py +1 -0
- universal_mcp/applications/elevenlabs/app.py +3235 -0
- universal_mcp/applications/exa/README.md +15 -0
- universal_mcp/applications/exa/__init__.py +1 -0
- universal_mcp/applications/exa/app.py +221 -0
- universal_mcp/applications/falai/README.md +17 -0
- universal_mcp/applications/falai/__init__.py +1 -0
- universal_mcp/applications/falai/app.py +331 -0
- universal_mcp/applications/figma/README.md +49 -0
- universal_mcp/applications/figma/__init__.py +1 -0
- universal_mcp/applications/figma/app.py +1090 -0
- universal_mcp/applications/firecrawl/README.md +20 -0
- universal_mcp/applications/firecrawl/__init__.py +1 -0
- universal_mcp/applications/firecrawl/app.py +514 -0
- universal_mcp/applications/fireflies/README.md +25 -0
- universal_mcp/applications/fireflies/__init__.py +1 -0
- universal_mcp/applications/fireflies/app.py +506 -0
- universal_mcp/applications/fpl/README.md +23 -0
- universal_mcp/applications/fpl/__init__.py +1 -0
- universal_mcp/applications/fpl/app.py +1327 -0
- universal_mcp/applications/fpl/utils/api.py +142 -0
- universal_mcp/applications/fpl/utils/fixtures.py +629 -0
- universal_mcp/applications/fpl/utils/helper.py +982 -0
- universal_mcp/applications/fpl/utils/league_utils.py +546 -0
- universal_mcp/applications/fpl/utils/position_utils.py +68 -0
- universal_mcp/applications/ghost-content/README.md +25 -0
- universal_mcp/applications/ghost-content/__init__.py +1 -0
- universal_mcp/applications/ghost-content/app.py +654 -0
- universal_mcp/applications/github/README.md +1049 -0
- universal_mcp/applications/github/__init__.py +1 -0
- universal_mcp/applications/github/app.py +50600 -0
- universal_mcp/applications/gong/README.md +63 -0
- universal_mcp/applications/gong/__init__.py +1 -0
- universal_mcp/applications/gong/app.py +2297 -0
- universal_mcp/applications/google-ads/README.md +0 -0
- universal_mcp/applications/google-ads/__init__.py +1 -0
- universal_mcp/applications/google-ads/app.py +23 -0
- universal_mcp/applications/google-calendar/README.md +21 -0
- universal_mcp/applications/google-calendar/__init__.py +1 -0
- universal_mcp/applications/google-calendar/app.py +574 -0
- universal_mcp/applications/google-docs/README.md +25 -0
- universal_mcp/applications/google-docs/__init__.py +1 -0
- universal_mcp/applications/google-docs/app.py +760 -0
- universal_mcp/applications/google-drive/README.md +68 -0
- universal_mcp/applications/google-drive/__init__.py +1 -0
- universal_mcp/applications/google-drive/app.py +4936 -0
- universal_mcp/applications/google-gemini/README.md +25 -0
- universal_mcp/applications/google-gemini/__init__.py +1 -0
- universal_mcp/applications/google-gemini/app.py +663 -0
- universal_mcp/applications/google-mail/README.md +31 -0
- universal_mcp/applications/google-mail/__init__.py +1 -0
- universal_mcp/applications/google-mail/app.py +1354 -0
- universal_mcp/applications/google-searchconsole/README.md +21 -0
- universal_mcp/applications/google-searchconsole/__init__.py +1 -0
- universal_mcp/applications/google-searchconsole/app.py +320 -0
- universal_mcp/applications/google-sheet/README.md +36 -0
- universal_mcp/applications/google-sheet/__init__.py +1 -0
- universal_mcp/applications/google-sheet/app.py +1941 -0
- universal_mcp/applications/hashnode/README.md +20 -0
- universal_mcp/applications/hashnode/__init__.py +1 -0
- universal_mcp/applications/hashnode/app.py +455 -0
- universal_mcp/applications/heygen/README.md +44 -0
- universal_mcp/applications/heygen/__init__.py +1 -0
- universal_mcp/applications/heygen/app.py +961 -0
- universal_mcp/applications/http-tools/README.md +16 -0
- universal_mcp/applications/http-tools/__init__.py +1 -0
- universal_mcp/applications/http-tools/app.py +153 -0
- universal_mcp/applications/hubspot/README.md +239 -0
- universal_mcp/applications/hubspot/__init__.py +1 -0
- universal_mcp/applications/hubspot/app.py +416 -0
- universal_mcp/applications/jira/README.md +600 -0
- universal_mcp/applications/jira/__init__.py +1 -0
- universal_mcp/applications/jira/app.py +28804 -0
- universal_mcp/applications/klaviyo/README.md +313 -0
- universal_mcp/applications/klaviyo/__init__.py +1 -0
- universal_mcp/applications/klaviyo/app.py +11236 -0
- universal_mcp/applications/linkedin/README.md +15 -0
- universal_mcp/applications/linkedin/__init__.py +1 -0
- universal_mcp/applications/linkedin/app.py +243 -0
- universal_mcp/applications/mailchimp/README.md +281 -0
- universal_mcp/applications/mailchimp/__init__.py +1 -0
- universal_mcp/applications/mailchimp/app.py +10937 -0
- universal_mcp/applications/markitdown/README.md +12 -0
- universal_mcp/applications/markitdown/__init__.py +1 -0
- universal_mcp/applications/markitdown/app.py +63 -0
- universal_mcp/applications/miro/README.md +151 -0
- universal_mcp/applications/miro/__init__.py +1 -0
- universal_mcp/applications/miro/app.py +5429 -0
- universal_mcp/applications/ms-teams/README.md +42 -0
- universal_mcp/applications/ms-teams/__init__.py +1 -0
- universal_mcp/applications/ms-teams/app.py +1823 -0
- universal_mcp/applications/neon/README.md +74 -0
- universal_mcp/applications/neon/__init__.py +1 -0
- universal_mcp/applications/neon/app.py +2018 -0
- universal_mcp/applications/notion/README.md +30 -0
- universal_mcp/applications/notion/__init__.py +1 -0
- universal_mcp/applications/notion/app.py +527 -0
- universal_mcp/applications/openai/README.md +22 -0
- universal_mcp/applications/openai/__init__.py +1 -0
- universal_mcp/applications/openai/app.py +759 -0
- universal_mcp/applications/outlook/README.md +20 -0
- universal_mcp/applications/outlook/__init__.py +1 -0
- universal_mcp/applications/outlook/app.py +444 -0
- universal_mcp/applications/perplexity/README.md +12 -0
- universal_mcp/applications/perplexity/__init__.py +1 -0
- universal_mcp/applications/perplexity/app.py +65 -0
- universal_mcp/applications/pipedrive/README.md +284 -0
- universal_mcp/applications/pipedrive/__init__.py +1 -0
- universal_mcp/applications/pipedrive/app.py +12924 -0
- universal_mcp/applications/posthog/README.md +132 -0
- universal_mcp/applications/posthog/__init__.py +1 -0
- universal_mcp/applications/posthog/app.py +7125 -0
- universal_mcp/applications/reddit/README.md +135 -0
- universal_mcp/applications/reddit/__init__.py +1 -0
- universal_mcp/applications/reddit/app.py +4652 -0
- universal_mcp/applications/replicate/README.md +18 -0
- universal_mcp/applications/replicate/__init__.py +1 -0
- universal_mcp/applications/replicate/app.py +495 -0
- universal_mcp/applications/resend/README.md +40 -0
- universal_mcp/applications/resend/__init__.py +1 -0
- universal_mcp/applications/resend/app.py +881 -0
- universal_mcp/applications/retell/README.md +21 -0
- universal_mcp/applications/retell/__init__.py +1 -0
- universal_mcp/applications/retell/app.py +333 -0
- universal_mcp/applications/rocketlane/README.md +70 -0
- universal_mcp/applications/rocketlane/__init__.py +1 -0
- universal_mcp/applications/rocketlane/app.py +4346 -0
- universal_mcp/applications/semanticscholar/README.md +25 -0
- universal_mcp/applications/semanticscholar/__init__.py +1 -0
- universal_mcp/applications/semanticscholar/app.py +482 -0
- universal_mcp/applications/semrush/README.md +44 -0
- universal_mcp/applications/semrush/__init__.py +1 -0
- universal_mcp/applications/semrush/app.py +2081 -0
- universal_mcp/applications/sendgrid/README.md +362 -0
- universal_mcp/applications/sendgrid/__init__.py +1 -0
- universal_mcp/applications/sendgrid/app.py +9752 -0
- universal_mcp/applications/sentry/README.md +186 -0
- universal_mcp/applications/sentry/__init__.py +1 -0
- universal_mcp/applications/sentry/app.py +7471 -0
- universal_mcp/applications/serpapi/README.md +14 -0
- universal_mcp/applications/serpapi/__init__.py +1 -0
- universal_mcp/applications/serpapi/app.py +293 -0
- universal_mcp/applications/sharepoint/README.md +0 -0
- universal_mcp/applications/sharepoint/__init__.py +1 -0
- universal_mcp/applications/sharepoint/app.py +215 -0
- universal_mcp/applications/shopify/README.md +321 -0
- universal_mcp/applications/shopify/__init__.py +1 -0
- universal_mcp/applications/shopify/app.py +15392 -0
- universal_mcp/applications/shortcut/README.md +128 -0
- universal_mcp/applications/shortcut/__init__.py +1 -0
- universal_mcp/applications/shortcut/app.py +4478 -0
- universal_mcp/applications/slack/README.md +0 -0
- universal_mcp/applications/slack/__init__.py +1 -0
- universal_mcp/applications/slack/app.py +570 -0
- universal_mcp/applications/spotify/README.md +91 -0
- universal_mcp/applications/spotify/__init__.py +1 -0
- universal_mcp/applications/spotify/app.py +2526 -0
- universal_mcp/applications/supabase/README.md +87 -0
- universal_mcp/applications/supabase/__init__.py +1 -0
- universal_mcp/applications/supabase/app.py +2970 -0
- universal_mcp/applications/tavily/README.md +12 -0
- universal_mcp/applications/tavily/__init__.py +1 -0
- universal_mcp/applications/tavily/app.py +51 -0
- universal_mcp/applications/trello/README.md +266 -0
- universal_mcp/applications/trello/__init__.py +1 -0
- universal_mcp/applications/trello/app.py +10875 -0
- universal_mcp/applications/twillo/README.md +0 -0
- universal_mcp/applications/twillo/__init__.py +1 -0
- universal_mcp/applications/twillo/app.py +269 -0
- universal_mcp/applications/twitter/README.md +100 -0
- universal_mcp/applications/twitter/__init__.py +1 -0
- universal_mcp/applications/twitter/api_segments/__init__.py +0 -0
- universal_mcp/applications/twitter/api_segments/api_segment_base.py +51 -0
- universal_mcp/applications/twitter/api_segments/compliance_api.py +122 -0
- universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +255 -0
- universal_mcp/applications/twitter/api_segments/dm_events_api.py +140 -0
- universal_mcp/applications/twitter/api_segments/likes_api.py +159 -0
- universal_mcp/applications/twitter/api_segments/lists_api.py +395 -0
- universal_mcp/applications/twitter/api_segments/openapi_json_api.py +34 -0
- universal_mcp/applications/twitter/api_segments/spaces_api.py +309 -0
- universal_mcp/applications/twitter/api_segments/trends_api.py +40 -0
- universal_mcp/applications/twitter/api_segments/tweets_api.py +1403 -0
- universal_mcp/applications/twitter/api_segments/usage_api.py +40 -0
- universal_mcp/applications/twitter/api_segments/users_api.py +1498 -0
- universal_mcp/applications/twitter/app.py +46 -0
- universal_mcp/applications/unipile/README.md +28 -0
- universal_mcp/applications/unipile/__init__.py +1 -0
- universal_mcp/applications/unipile/app.py +829 -0
- universal_mcp/applications/whatsapp/README.md +23 -0
- universal_mcp/applications/whatsapp/__init__.py +1 -0
- universal_mcp/applications/whatsapp/app.py +595 -0
- universal_mcp/applications/whatsapp-business/README.md +34 -0
- universal_mcp/applications/whatsapp-business/__init__.py +1 -0
- universal_mcp/applications/whatsapp-business/app.py +1065 -0
- universal_mcp/applications/wrike/README.md +46 -0
- universal_mcp/applications/wrike/__init__.py +1 -0
- universal_mcp/applications/wrike/app.py +1583 -0
- universal_mcp/applications/youtube/README.md +57 -0
- universal_mcp/applications/youtube/__init__.py +1 -0
- universal_mcp/applications/youtube/app.py +1696 -0
- universal_mcp/applications/zenquotes/README.md +12 -0
- universal_mcp/applications/zenquotes/__init__.py +1 -0
- universal_mcp/applications/zenquotes/app.py +31 -0
- universal_mcp_applications-0.1.1.dist-info/METADATA +172 -0
- universal_mcp_applications-0.1.1.dist-info/RECORD +268 -0
- universal_mcp_applications-0.1.1.dist-info/WHEEL +4 -0
- universal_mcp_applications-0.1.1.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,1436 @@
|
|
|
1
|
+
from typing import Any
|
|
2
|
+
|
|
3
|
+
from universal_mcp.applications.application import APIApplication
|
|
4
|
+
from universal_mcp.integrations import Integration
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class CalendlyApp(APIApplication):
|
|
8
|
+
def __init__(self, integration: Integration = None, **kwargs) -> None:
|
|
9
|
+
super().__init__(name="calendly", integration=integration, **kwargs)
|
|
10
|
+
self.base_url = "https://api.calendly.com"
|
|
11
|
+
|
|
12
|
+
def list_event_invitees(
|
|
13
|
+
self, uuid, status=None, sort=None, email=None, page_token=None, count=None
|
|
14
|
+
) -> dict[str, Any]:
|
|
15
|
+
"""
|
|
16
|
+
Retrieves a paginated list of invitees for a specific scheduled event with optional filtering by status, email, and sorting parameters.
|
|
17
|
+
|
|
18
|
+
Args:
|
|
19
|
+
uuid (string): uuid
|
|
20
|
+
status (string): Indicates if the invitee "canceled" or still "active" Example: 'active'.
|
|
21
|
+
sort (string): Order results by the **created_at** field and direction specified: ascending ("asc") or descending ("desc") Example: 'created_at:asc'.
|
|
22
|
+
email (string): Indicates if the results should be filtered by email address Example: '<email>'.
|
|
23
|
+
page_token (string): The token to pass to get the next or previous portion of the collection Example: '<string>'.
|
|
24
|
+
count (string): The number of rows to return Example: '20'.
|
|
25
|
+
|
|
26
|
+
Returns:
|
|
27
|
+
dict[str, Any]: OK
|
|
28
|
+
|
|
29
|
+
Tags:
|
|
30
|
+
scheduled_events, {uuid}, invitees, important
|
|
31
|
+
"""
|
|
32
|
+
if uuid is None:
|
|
33
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
34
|
+
url = f"{self.base_url}/scheduled_events/{uuid}/invitees"
|
|
35
|
+
query_params = {
|
|
36
|
+
k: v
|
|
37
|
+
for k, v in [
|
|
38
|
+
("status", status),
|
|
39
|
+
("sort", sort),
|
|
40
|
+
("email", email),
|
|
41
|
+
("page_token", page_token),
|
|
42
|
+
("count", count),
|
|
43
|
+
]
|
|
44
|
+
if v is not None
|
|
45
|
+
}
|
|
46
|
+
response = self._get(url, params=query_params)
|
|
47
|
+
response.raise_for_status()
|
|
48
|
+
return response.json()
|
|
49
|
+
|
|
50
|
+
def get_event(self, uuid) -> dict[str, Any]:
|
|
51
|
+
"""
|
|
52
|
+
Retrieves details about a scheduled event identified by the provided UUID using the GET method.
|
|
53
|
+
|
|
54
|
+
Args:
|
|
55
|
+
uuid (string): uuid
|
|
56
|
+
|
|
57
|
+
Returns:
|
|
58
|
+
dict[str, Any]: OK
|
|
59
|
+
|
|
60
|
+
Tags:
|
|
61
|
+
scheduled_events, important
|
|
62
|
+
"""
|
|
63
|
+
if uuid is None:
|
|
64
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
65
|
+
url = f"{self.base_url}/scheduled_events/{uuid}"
|
|
66
|
+
query_params = {}
|
|
67
|
+
response = self._get(url, params=query_params)
|
|
68
|
+
response.raise_for_status()
|
|
69
|
+
return response.json()
|
|
70
|
+
|
|
71
|
+
def get_event_invitee(self, event_uuid, invitee_uuid) -> dict[str, Any]:
|
|
72
|
+
"""
|
|
73
|
+
Retrieves detailed information about a specific invitee for a scheduled event using their unique identifiers.
|
|
74
|
+
|
|
75
|
+
Args:
|
|
76
|
+
event_uuid (string): event_uuid
|
|
77
|
+
invitee_uuid (string): invitee_uuid
|
|
78
|
+
|
|
79
|
+
Returns:
|
|
80
|
+
dict[str, Any]: OK
|
|
81
|
+
|
|
82
|
+
Tags:
|
|
83
|
+
scheduled_events, {event_uuid}, invitees1, {invitee_uuid}
|
|
84
|
+
"""
|
|
85
|
+
if event_uuid is None:
|
|
86
|
+
raise ValueError("Missing required parameter 'event_uuid'")
|
|
87
|
+
if invitee_uuid is None:
|
|
88
|
+
raise ValueError("Missing required parameter 'invitee_uuid'")
|
|
89
|
+
url = f"{self.base_url}/scheduled_events/{event_uuid}/invitees/{invitee_uuid}"
|
|
90
|
+
query_params = {}
|
|
91
|
+
response = self._get(url, params=query_params)
|
|
92
|
+
response.raise_for_status()
|
|
93
|
+
return response.json()
|
|
94
|
+
|
|
95
|
+
def list_events(
|
|
96
|
+
self,
|
|
97
|
+
user=None,
|
|
98
|
+
organization=None,
|
|
99
|
+
invitee_email=None,
|
|
100
|
+
status=None,
|
|
101
|
+
sort=None,
|
|
102
|
+
min_start_time=None,
|
|
103
|
+
max_start_time=None,
|
|
104
|
+
page_token=None,
|
|
105
|
+
count=None,
|
|
106
|
+
group=None,
|
|
107
|
+
) -> dict[str, Any]:
|
|
108
|
+
"""
|
|
109
|
+
Retrieves a list of scheduled events filtered by user, organization, invitee, status, time range, and other parameters, supporting pagination and sorting.
|
|
110
|
+
|
|
111
|
+
Args:
|
|
112
|
+
user (string): Return events that are scheduled with the user associated with this URI Example: '<uri>'.
|
|
113
|
+
organization (string): Return events that are scheduled with the organization associated with this URI Example: '<uri>'.
|
|
114
|
+
invitee_email (string): Return events that are scheduled with the invitee associated with this email address Example: '<email>'.
|
|
115
|
+
status (string): Whether the scheduled event is `active` or `canceled` Example: 'active'.
|
|
116
|
+
sort (string): Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values.
|
|
117
|
+
Supported fields are: start_time.
|
|
118
|
+
Sort direction is specified as: asc, desc. Example: '<string>'.
|
|
119
|
+
min_start_time (string): Include events with start times after this time (sample time format: "2020-01-02T03:04:05.678123Z"). This time should use the UTC timezone. Example: '<string>'.
|
|
120
|
+
max_start_time (string): Include events with start times prior to this time (sample time format: "2020-01-02T03:04:05.678123Z"). This time should use the UTC timezone. Example: '<string>'.
|
|
121
|
+
page_token (string): The token to pass to get the next or previous portion of the collection Example: '<string>'.
|
|
122
|
+
count (string): The number of rows to return Example: '20'.
|
|
123
|
+
group (string): Return events that are scheduled with the group associated with this URI Example: '<string>'.
|
|
124
|
+
|
|
125
|
+
Returns:
|
|
126
|
+
dict[str, Any]: OK
|
|
127
|
+
|
|
128
|
+
Tags:
|
|
129
|
+
scheduled_events, important
|
|
130
|
+
"""
|
|
131
|
+
url = f"{self.base_url}/scheduled_events"
|
|
132
|
+
query_params = {
|
|
133
|
+
k: v
|
|
134
|
+
for k, v in [
|
|
135
|
+
("user", user),
|
|
136
|
+
("organization", organization),
|
|
137
|
+
("invitee_email", invitee_email),
|
|
138
|
+
("status", status),
|
|
139
|
+
("sort", sort),
|
|
140
|
+
("min_start_time", min_start_time),
|
|
141
|
+
("max_start_time", max_start_time),
|
|
142
|
+
("page_token", page_token),
|
|
143
|
+
("count", count),
|
|
144
|
+
("group", group),
|
|
145
|
+
]
|
|
146
|
+
if v is not None
|
|
147
|
+
}
|
|
148
|
+
response = self._get(url, params=query_params)
|
|
149
|
+
response.raise_for_status()
|
|
150
|
+
return response.json()
|
|
151
|
+
|
|
152
|
+
def get_event_type(self, uuid) -> dict[str, Any]:
|
|
153
|
+
"""
|
|
154
|
+
Retrieves the details of a specific event type identified by its UUID using the path "/event_types/{uuid}" and the GET method.
|
|
155
|
+
|
|
156
|
+
Args:
|
|
157
|
+
uuid (string): uuid
|
|
158
|
+
|
|
159
|
+
Returns:
|
|
160
|
+
dict[str, Any]: OK
|
|
161
|
+
|
|
162
|
+
Tags:
|
|
163
|
+
event_types, {uuid}1
|
|
164
|
+
"""
|
|
165
|
+
if uuid is None:
|
|
166
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
167
|
+
url = f"{self.base_url}/event_types/{uuid}"
|
|
168
|
+
query_params = {}
|
|
169
|
+
response = self._get(url, params=query_params)
|
|
170
|
+
response.raise_for_status()
|
|
171
|
+
return response.json()
|
|
172
|
+
|
|
173
|
+
def list_user_sevent_types(
|
|
174
|
+
self,
|
|
175
|
+
active=None,
|
|
176
|
+
organization=None,
|
|
177
|
+
user=None,
|
|
178
|
+
user_availability_schedule=None,
|
|
179
|
+
sort=None,
|
|
180
|
+
admin_managed=None,
|
|
181
|
+
page_token=None,
|
|
182
|
+
count=None,
|
|
183
|
+
) -> dict[str, Any]:
|
|
184
|
+
"""
|
|
185
|
+
Retrieves a list of event types based on active status, organization, user, availability schedule, sorting, and pagination.
|
|
186
|
+
|
|
187
|
+
Args:
|
|
188
|
+
active (string): Return only active event types if true, only inactive if false, or all event types if this parameter is omitted. Example: '<boolean>'.
|
|
189
|
+
organization (string): View available personal, team, and organization event types associated with the organization's URI. Example: '<uri>'.
|
|
190
|
+
user (string): View available personal, team, and organization event types associated with the user's URI. Example: '<uri>'.
|
|
191
|
+
user_availability_schedule (string): Used in conjunction with `user` parameter, returns a filtered list of Event Types that use the given primary availability schedule. Example: '<uri>'.
|
|
192
|
+
sort (string): Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values.Supported fields are: name, position, created_at, updated_at. Sort direction is specified as: asc, desc. Example: 'name:asc'.
|
|
193
|
+
admin_managed (string): Return only admin managed event types if true, exclude admin managed event types if false, or include all event types if this parameter is omitted. Example: '<boolean>'.
|
|
194
|
+
page_token (string): The token to pass to get the next or previous portion of the collection Example: '<string>'.
|
|
195
|
+
count (string): The number of rows to return Example: '20'.
|
|
196
|
+
|
|
197
|
+
Returns:
|
|
198
|
+
dict[str, Any]: OK
|
|
199
|
+
|
|
200
|
+
Tags:
|
|
201
|
+
event_types
|
|
202
|
+
"""
|
|
203
|
+
url = f"{self.base_url}/event_types"
|
|
204
|
+
query_params = {
|
|
205
|
+
k: v
|
|
206
|
+
for k, v in [
|
|
207
|
+
("active", active),
|
|
208
|
+
("organization", organization),
|
|
209
|
+
("user", user),
|
|
210
|
+
("user_availability_schedule", user_availability_schedule),
|
|
211
|
+
("sort", sort),
|
|
212
|
+
("admin_managed", admin_managed),
|
|
213
|
+
("page_token", page_token),
|
|
214
|
+
("count", count),
|
|
215
|
+
]
|
|
216
|
+
if v is not None
|
|
217
|
+
}
|
|
218
|
+
response = self._get(url, params=query_params)
|
|
219
|
+
response.raise_for_status()
|
|
220
|
+
return response.json()
|
|
221
|
+
|
|
222
|
+
def get_user(self, uuid) -> dict[str, Any]:
|
|
223
|
+
"""
|
|
224
|
+
Retrieves a user's details by their unique identifier (UUID) and returns the user data.
|
|
225
|
+
|
|
226
|
+
Args:
|
|
227
|
+
uuid (string): uuid
|
|
228
|
+
|
|
229
|
+
Returns:
|
|
230
|
+
dict[str, Any]: OK
|
|
231
|
+
|
|
232
|
+
Tags:
|
|
233
|
+
users, {uuid}12
|
|
234
|
+
"""
|
|
235
|
+
if uuid is None:
|
|
236
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
237
|
+
url = f"{self.base_url}/users/{uuid}"
|
|
238
|
+
query_params = {}
|
|
239
|
+
response = self._get(url, params=query_params)
|
|
240
|
+
response.raise_for_status()
|
|
241
|
+
return response.json()
|
|
242
|
+
|
|
243
|
+
def get_current_user(self) -> dict[str, Any]:
|
|
244
|
+
"""
|
|
245
|
+
Retrieves information about the current user using the API.
|
|
246
|
+
|
|
247
|
+
Returns:
|
|
248
|
+
dict[str, Any]: OK
|
|
249
|
+
|
|
250
|
+
Tags:
|
|
251
|
+
users, me, important
|
|
252
|
+
"""
|
|
253
|
+
url = f"{self.base_url}/users/me"
|
|
254
|
+
query_params = {}
|
|
255
|
+
response = self._get(url, params=query_params)
|
|
256
|
+
response.raise_for_status()
|
|
257
|
+
return response.json()
|
|
258
|
+
|
|
259
|
+
def list_organization_invitations(
|
|
260
|
+
self, uuid, count=None, page_token=None, sort=None, email=None, status=None
|
|
261
|
+
) -> dict[str, Any]:
|
|
262
|
+
"""
|
|
263
|
+
Retrieves a list of invitations for an organization identified by its UUID, allowing filtering by count, page token, sort order, email, and invitation status.
|
|
264
|
+
|
|
265
|
+
Args:
|
|
266
|
+
uuid (string): uuid
|
|
267
|
+
count (string): The number of rows to return Example: '20'.
|
|
268
|
+
page_token (string): The token to pass to get the next or previous portion of the collection Example: '<string>'.
|
|
269
|
+
sort (string): Order results by the field name and direction specified (ascending or descending). Returns multiple sets of results in a comma-separated list. Example: 'created_at:asc'.
|
|
270
|
+
email (string): Indicates if the results should be filtered by email address Example: '<email>'.
|
|
271
|
+
status (string): Indicates if the results should be filtered by status ("pending", "accepted", or "declined") Example: 'accepted'.
|
|
272
|
+
|
|
273
|
+
Returns:
|
|
274
|
+
dict[str, Any]: OK
|
|
275
|
+
|
|
276
|
+
Tags:
|
|
277
|
+
organizations, {uuid}123, invitations
|
|
278
|
+
"""
|
|
279
|
+
if uuid is None:
|
|
280
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
281
|
+
url = f"{self.base_url}/organizations/{uuid}/invitations"
|
|
282
|
+
query_params = {
|
|
283
|
+
k: v
|
|
284
|
+
for k, v in [
|
|
285
|
+
("count", count),
|
|
286
|
+
("page_token", page_token),
|
|
287
|
+
("sort", sort),
|
|
288
|
+
("email", email),
|
|
289
|
+
("status", status),
|
|
290
|
+
]
|
|
291
|
+
if v is not None
|
|
292
|
+
}
|
|
293
|
+
response = self._get(url, params=query_params)
|
|
294
|
+
response.raise_for_status()
|
|
295
|
+
return response.json()
|
|
296
|
+
|
|
297
|
+
def invite_user_to_organization(self, uuid, email=None) -> dict[str, Any]:
|
|
298
|
+
"""
|
|
299
|
+
Creates an invitation for a user to join an organization, identified by the provided UUID, and sends it to the specified recipient.
|
|
300
|
+
|
|
301
|
+
Args:
|
|
302
|
+
uuid (string): uuid
|
|
303
|
+
email (string): email
|
|
304
|
+
Example:
|
|
305
|
+
```json
|
|
306
|
+
{
|
|
307
|
+
"email": "<email>"
|
|
308
|
+
}
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
Returns:
|
|
312
|
+
dict[str, Any]: Created
|
|
313
|
+
|
|
314
|
+
Tags:
|
|
315
|
+
organizations, {uuid}123, invitations
|
|
316
|
+
"""
|
|
317
|
+
if uuid is None:
|
|
318
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
319
|
+
request_body = {
|
|
320
|
+
"email": email,
|
|
321
|
+
}
|
|
322
|
+
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
323
|
+
url = f"{self.base_url}/organizations/{uuid}/invitations"
|
|
324
|
+
query_params = {}
|
|
325
|
+
response = self._post(url, data=request_body, params=query_params)
|
|
326
|
+
response.raise_for_status()
|
|
327
|
+
return response.json()
|
|
328
|
+
|
|
329
|
+
def get_organization_invitation(self, org_uuid, uuid) -> dict[str, Any]:
|
|
330
|
+
"""
|
|
331
|
+
Retrieves information about an organization invitation identified by its UUID, returning details about the invitation using the specified organization UUID and invitation UUID.
|
|
332
|
+
|
|
333
|
+
Args:
|
|
334
|
+
org_uuid (string): org_uuid
|
|
335
|
+
uuid (string): uuid
|
|
336
|
+
|
|
337
|
+
Returns:
|
|
338
|
+
dict[str, Any]: OK
|
|
339
|
+
|
|
340
|
+
Tags:
|
|
341
|
+
organizations, {org_uuid}, invitations1, {uuid}1234
|
|
342
|
+
"""
|
|
343
|
+
if org_uuid is None:
|
|
344
|
+
raise ValueError("Missing required parameter 'org_uuid'")
|
|
345
|
+
if uuid is None:
|
|
346
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
347
|
+
url = f"{self.base_url}/organizations/{org_uuid}/invitations/{uuid}"
|
|
348
|
+
query_params = {}
|
|
349
|
+
response = self._get(url, params=query_params)
|
|
350
|
+
response.raise_for_status()
|
|
351
|
+
return response.json()
|
|
352
|
+
|
|
353
|
+
def revoke_user_sorganization_invitation(self, org_uuid, uuid) -> Any:
|
|
354
|
+
"""
|
|
355
|
+
Deletes one or more organization invitations and returns success or error codes indicating invalid tokens, missing invitations, or authorization issues.
|
|
356
|
+
|
|
357
|
+
Args:
|
|
358
|
+
org_uuid (string): org_uuid
|
|
359
|
+
uuid (string): uuid
|
|
360
|
+
|
|
361
|
+
Returns:
|
|
362
|
+
Any: No Content
|
|
363
|
+
|
|
364
|
+
Tags:
|
|
365
|
+
organizations, {org_uuid}, invitations1, {uuid}1234
|
|
366
|
+
"""
|
|
367
|
+
if org_uuid is None:
|
|
368
|
+
raise ValueError("Missing required parameter 'org_uuid'")
|
|
369
|
+
if uuid is None:
|
|
370
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
371
|
+
url = f"{self.base_url}/organizations/{org_uuid}/invitations/{uuid}"
|
|
372
|
+
query_params = {}
|
|
373
|
+
response = self._delete(url, params=query_params)
|
|
374
|
+
response.raise_for_status()
|
|
375
|
+
return response.json()
|
|
376
|
+
|
|
377
|
+
def get_organization_membership(self, uuid) -> dict[str, Any]:
|
|
378
|
+
"""
|
|
379
|
+
Retrieves details of a specific organization membership using its unique identifier.
|
|
380
|
+
|
|
381
|
+
Args:
|
|
382
|
+
uuid (string): uuid
|
|
383
|
+
|
|
384
|
+
Returns:
|
|
385
|
+
dict[str, Any]: OK
|
|
386
|
+
|
|
387
|
+
Tags:
|
|
388
|
+
organization_memberships, {uuid}12345
|
|
389
|
+
"""
|
|
390
|
+
if uuid is None:
|
|
391
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
392
|
+
url = f"{self.base_url}/organization_memberships/{uuid}"
|
|
393
|
+
query_params = {}
|
|
394
|
+
response = self._get(url, params=query_params)
|
|
395
|
+
response.raise_for_status()
|
|
396
|
+
return response.json()
|
|
397
|
+
|
|
398
|
+
def remove_user_from_organization(self, uuid) -> Any:
|
|
399
|
+
"""
|
|
400
|
+
Removes a user from an organization using the specified UUID and returns a success status if the operation is completed without errors.
|
|
401
|
+
|
|
402
|
+
Args:
|
|
403
|
+
uuid (string): uuid
|
|
404
|
+
|
|
405
|
+
Returns:
|
|
406
|
+
Any: No Content
|
|
407
|
+
|
|
408
|
+
Tags:
|
|
409
|
+
organization_memberships, {uuid}12345
|
|
410
|
+
"""
|
|
411
|
+
if uuid is None:
|
|
412
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
413
|
+
url = f"{self.base_url}/organization_memberships/{uuid}"
|
|
414
|
+
query_params = {}
|
|
415
|
+
response = self._delete(url, params=query_params)
|
|
416
|
+
response.raise_for_status()
|
|
417
|
+
return response.json()
|
|
418
|
+
|
|
419
|
+
def list_organization_memberships(
|
|
420
|
+
self, page_token=None, count=None, email=None, organization=None, user=None
|
|
421
|
+
) -> dict[str, Any]:
|
|
422
|
+
"""
|
|
423
|
+
Retrieves and lists organization memberships for specified users or organizations, supporting filtering by user, organization, and other criteria, using the "GET" method at the "/organization_memberships" path.
|
|
424
|
+
|
|
425
|
+
Args:
|
|
426
|
+
page_token (string): The token to pass to get the next or previous portion of the collection Example: '<string>'.
|
|
427
|
+
count (string): The number of rows to return Example: '20'.
|
|
428
|
+
email (string): Indicates if the results should be filtered by email address Example: '<email>'.
|
|
429
|
+
organization (string): Indicates if the results should be filtered by organization Example: '<uri>'.
|
|
430
|
+
user (string): Indicates if the results should be filtered by user Example: '<uri>'.
|
|
431
|
+
|
|
432
|
+
Returns:
|
|
433
|
+
dict[str, Any]: OK
|
|
434
|
+
|
|
435
|
+
Tags:
|
|
436
|
+
organization_memberships
|
|
437
|
+
"""
|
|
438
|
+
url = f"{self.base_url}/organization_memberships"
|
|
439
|
+
query_params = {
|
|
440
|
+
k: v
|
|
441
|
+
for k, v in [
|
|
442
|
+
("page_token", page_token),
|
|
443
|
+
("count", count),
|
|
444
|
+
("email", email),
|
|
445
|
+
("organization", organization),
|
|
446
|
+
("user", user),
|
|
447
|
+
]
|
|
448
|
+
if v is not None
|
|
449
|
+
}
|
|
450
|
+
response = self._get(url, params=query_params)
|
|
451
|
+
response.raise_for_status()
|
|
452
|
+
return response.json()
|
|
453
|
+
|
|
454
|
+
def get_webhook_subscription(self, webhook_uuid) -> dict[str, Any]:
|
|
455
|
+
"""
|
|
456
|
+
Retrieves the details of a webhook subscription identified by the specified `webhook_uuid`, returning relevant subscription information in response.
|
|
457
|
+
|
|
458
|
+
Args:
|
|
459
|
+
webhook_uuid (string): webhook_uuid
|
|
460
|
+
|
|
461
|
+
Returns:
|
|
462
|
+
dict[str, Any]: OK
|
|
463
|
+
|
|
464
|
+
Tags:
|
|
465
|
+
webhook_subscriptions, {webhook_uuid}
|
|
466
|
+
"""
|
|
467
|
+
if webhook_uuid is None:
|
|
468
|
+
raise ValueError("Missing required parameter 'webhook_uuid'")
|
|
469
|
+
url = f"{self.base_url}/webhook_subscriptions/{webhook_uuid}"
|
|
470
|
+
query_params = {}
|
|
471
|
+
response = self._get(url, params=query_params)
|
|
472
|
+
response.raise_for_status()
|
|
473
|
+
return response.json()
|
|
474
|
+
|
|
475
|
+
def delete_webhook_subscription(self, webhook_uuid) -> Any:
|
|
476
|
+
"""
|
|
477
|
+
Deletes a webhook subscription identified by its unique UUID and returns a success response upon completion.
|
|
478
|
+
|
|
479
|
+
Args:
|
|
480
|
+
webhook_uuid (string): webhook_uuid
|
|
481
|
+
|
|
482
|
+
Returns:
|
|
483
|
+
Any: No Content
|
|
484
|
+
|
|
485
|
+
Tags:
|
|
486
|
+
webhook_subscriptions, {webhook_uuid}
|
|
487
|
+
"""
|
|
488
|
+
if webhook_uuid is None:
|
|
489
|
+
raise ValueError("Missing required parameter 'webhook_uuid'")
|
|
490
|
+
url = f"{self.base_url}/webhook_subscriptions/{webhook_uuid}"
|
|
491
|
+
query_params = {}
|
|
492
|
+
response = self._delete(url, params=query_params)
|
|
493
|
+
response.raise_for_status()
|
|
494
|
+
return response.json()
|
|
495
|
+
|
|
496
|
+
def list_webhook_subscriptions(
|
|
497
|
+
self,
|
|
498
|
+
organization=None,
|
|
499
|
+
user=None,
|
|
500
|
+
page_token=None,
|
|
501
|
+
count=None,
|
|
502
|
+
sort=None,
|
|
503
|
+
scope=None,
|
|
504
|
+
) -> dict[str, Any]:
|
|
505
|
+
"""
|
|
506
|
+
Retrieves a paginated list of webhook subscriptions filtered by organization, user, and scope, with options for sorting and count.
|
|
507
|
+
|
|
508
|
+
Args:
|
|
509
|
+
organization (string): (Required) Indicates if the results should be filtered by organization Example: '<uri>'.
|
|
510
|
+
user (string): Indicates if the results should be filtered by user. This parameter is only required if the `scope` parameter is set to `user`. Example: '<uri>'.
|
|
511
|
+
page_token (string): The token to pass to get the next or previous portion of the collection Example: '<string>'.
|
|
512
|
+
count (string): The number of rows to return Example: '20'.
|
|
513
|
+
sort (string): Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values.
|
|
514
|
+
Supported fields are: created_at.
|
|
515
|
+
Sort direction is specified as: asc, desc. Example: '<string>'.
|
|
516
|
+
scope (string): (Required) Filter the list by organization or user Example: 'user'.
|
|
517
|
+
|
|
518
|
+
Returns:
|
|
519
|
+
dict[str, Any]: OK
|
|
520
|
+
|
|
521
|
+
Tags:
|
|
522
|
+
webhook_subscriptions
|
|
523
|
+
"""
|
|
524
|
+
url = f"{self.base_url}/webhook_subscriptions"
|
|
525
|
+
query_params = {
|
|
526
|
+
k: v
|
|
527
|
+
for k, v in [
|
|
528
|
+
("organization", organization),
|
|
529
|
+
("user", user),
|
|
530
|
+
("page_token", page_token),
|
|
531
|
+
("count", count),
|
|
532
|
+
("sort", sort),
|
|
533
|
+
("scope", scope),
|
|
534
|
+
]
|
|
535
|
+
if v is not None
|
|
536
|
+
}
|
|
537
|
+
response = self._get(url, params=query_params)
|
|
538
|
+
response.raise_for_status()
|
|
539
|
+
return response.json()
|
|
540
|
+
|
|
541
|
+
def create_webhook_subscription(
|
|
542
|
+
self,
|
|
543
|
+
events=None,
|
|
544
|
+
group=None,
|
|
545
|
+
organization=None,
|
|
546
|
+
scope=None,
|
|
547
|
+
signing_key=None,
|
|
548
|
+
url=None,
|
|
549
|
+
user=None,
|
|
550
|
+
) -> dict[str, Any]:
|
|
551
|
+
"""
|
|
552
|
+
Creates a new webhook subscription to receive notifications for specified events from a Squarespace website.
|
|
553
|
+
|
|
554
|
+
Args:
|
|
555
|
+
events (array): events Example: "['invitee.canceled', 'routing_form_submission.created']".
|
|
556
|
+
group (string): group Example: '<uri>'.
|
|
557
|
+
organization (string): organization Example: '<uri>'.
|
|
558
|
+
scope (string): scope Example: 'organization'.
|
|
559
|
+
signing_key (string): signing_key Example: '<string>'.
|
|
560
|
+
url (string): url Example: '<uri>'.
|
|
561
|
+
user (string): user
|
|
562
|
+
Example:
|
|
563
|
+
```json
|
|
564
|
+
{
|
|
565
|
+
"events": [
|
|
566
|
+
"invitee.canceled",
|
|
567
|
+
"routing_form_submission.created"
|
|
568
|
+
],
|
|
569
|
+
"group": "<uri>",
|
|
570
|
+
"organization": "<uri>",
|
|
571
|
+
"scope": "organization",
|
|
572
|
+
"signing_key": "<string>",
|
|
573
|
+
"url": "<uri>",
|
|
574
|
+
"user": "<uri>"
|
|
575
|
+
}
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
Returns:
|
|
579
|
+
dict[str, Any]: Created
|
|
580
|
+
|
|
581
|
+
Tags:
|
|
582
|
+
webhook_subscriptions
|
|
583
|
+
"""
|
|
584
|
+
request_body = {
|
|
585
|
+
"events": events,
|
|
586
|
+
"group": group,
|
|
587
|
+
"organization": organization,
|
|
588
|
+
"scope": scope,
|
|
589
|
+
"signing_key": signing_key,
|
|
590
|
+
"url": url,
|
|
591
|
+
"user": user,
|
|
592
|
+
}
|
|
593
|
+
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
594
|
+
url = f"{self.base_url}/webhook_subscriptions"
|
|
595
|
+
query_params = {}
|
|
596
|
+
response = self._post(url, data=request_body, params=query_params)
|
|
597
|
+
response.raise_for_status()
|
|
598
|
+
return response.json()
|
|
599
|
+
|
|
600
|
+
def create_single_use_scheduling_link(
|
|
601
|
+
self, max_event_count=None, owner=None, owner_type=None
|
|
602
|
+
) -> dict[str, Any]:
|
|
603
|
+
"""
|
|
604
|
+
Creates a new scheduling link using the "POST" method at the "/scheduling_links" path, allowing users to generate customized links for scheduling events.
|
|
605
|
+
|
|
606
|
+
Args:
|
|
607
|
+
max_event_count (number): max_event_count Example: '1'.
|
|
608
|
+
owner (string): owner Example: '<uri>'.
|
|
609
|
+
owner_type (string): owner_type
|
|
610
|
+
Example:
|
|
611
|
+
```json
|
|
612
|
+
{
|
|
613
|
+
"max_event_count": 1,
|
|
614
|
+
"owner": "<uri>",
|
|
615
|
+
"owner_type": "EventType"
|
|
616
|
+
}
|
|
617
|
+
```
|
|
618
|
+
|
|
619
|
+
Returns:
|
|
620
|
+
dict[str, Any]: Created
|
|
621
|
+
|
|
622
|
+
Tags:
|
|
623
|
+
scheduling_links
|
|
624
|
+
"""
|
|
625
|
+
request_body = {
|
|
626
|
+
"max_event_count": max_event_count,
|
|
627
|
+
"owner": owner,
|
|
628
|
+
"owner_type": owner_type,
|
|
629
|
+
}
|
|
630
|
+
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
631
|
+
url = f"{self.base_url}/scheduling_links"
|
|
632
|
+
query_params = {}
|
|
633
|
+
response = self._post(url, data=request_body, params=query_params)
|
|
634
|
+
response.raise_for_status()
|
|
635
|
+
return response.json()
|
|
636
|
+
|
|
637
|
+
def delete_invitee_data(self, emails=None) -> dict[str, Any]:
|
|
638
|
+
"""
|
|
639
|
+
Initiates data deletion requests for invitees in compliance with data privacy regulations.
|
|
640
|
+
|
|
641
|
+
Args:
|
|
642
|
+
emails (array): emails
|
|
643
|
+
Example:
|
|
644
|
+
```json
|
|
645
|
+
{
|
|
646
|
+
"emails": [
|
|
647
|
+
"<email>",
|
|
648
|
+
"<email>"
|
|
649
|
+
]
|
|
650
|
+
}
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
Returns:
|
|
654
|
+
dict[str, Any]: Accepted
|
|
655
|
+
|
|
656
|
+
Tags:
|
|
657
|
+
data_compliance, deletion, invitees12
|
|
658
|
+
"""
|
|
659
|
+
request_body = {
|
|
660
|
+
"emails": emails,
|
|
661
|
+
}
|
|
662
|
+
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
663
|
+
url = f"{self.base_url}/data_compliance/deletion/invitees"
|
|
664
|
+
query_params = {}
|
|
665
|
+
response = self._post(url, data=request_body, params=query_params)
|
|
666
|
+
response.raise_for_status()
|
|
667
|
+
return response.json()
|
|
668
|
+
|
|
669
|
+
def delete_scheduled_event_data(
|
|
670
|
+
self, end_time=None, start_time=None
|
|
671
|
+
) -> dict[str, Any]:
|
|
672
|
+
"""
|
|
673
|
+
Submits data deletion requests for compliance events and returns asynchronous processing confirmation.
|
|
674
|
+
|
|
675
|
+
Args:
|
|
676
|
+
end_time (string): end_time Example: '<dateTime>'.
|
|
677
|
+
start_time (string): start_time
|
|
678
|
+
Example:
|
|
679
|
+
```json
|
|
680
|
+
{
|
|
681
|
+
"end_time": "<dateTime>",
|
|
682
|
+
"start_time": "<dateTime>"
|
|
683
|
+
}
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
Returns:
|
|
687
|
+
dict[str, Any]: Accepted
|
|
688
|
+
|
|
689
|
+
Tags:
|
|
690
|
+
data_compliance, deletion, events
|
|
691
|
+
"""
|
|
692
|
+
request_body = {
|
|
693
|
+
"end_time": end_time,
|
|
694
|
+
"start_time": start_time,
|
|
695
|
+
}
|
|
696
|
+
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
697
|
+
url = f"{self.base_url}/data_compliance/deletion/events"
|
|
698
|
+
query_params = {}
|
|
699
|
+
response = self._post(url, data=request_body, params=query_params)
|
|
700
|
+
response.raise_for_status()
|
|
701
|
+
return response.json()
|
|
702
|
+
|
|
703
|
+
def get_invitee_no_show(self, uuid) -> dict[str, Any]:
|
|
704
|
+
"""
|
|
705
|
+
Retrieves information about an invitee who did not show up, identified by a specific UUID, using the GET method via the API endpoint "/invitee_no_shows/{uuid}".
|
|
706
|
+
|
|
707
|
+
Args:
|
|
708
|
+
uuid (string): uuid
|
|
709
|
+
|
|
710
|
+
Returns:
|
|
711
|
+
dict[str, Any]: OK
|
|
712
|
+
|
|
713
|
+
Tags:
|
|
714
|
+
invitee_no_shows, {uuid}123456
|
|
715
|
+
"""
|
|
716
|
+
if uuid is None:
|
|
717
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
718
|
+
url = f"{self.base_url}/invitee_no_shows/{uuid}"
|
|
719
|
+
query_params = {}
|
|
720
|
+
response = self._get(url, params=query_params)
|
|
721
|
+
response.raise_for_status()
|
|
722
|
+
return response.json()
|
|
723
|
+
|
|
724
|
+
def delete_invitee_no_show(self, uuid) -> Any:
|
|
725
|
+
"""
|
|
726
|
+
Removes an invitee's "no-show" status using their unique identifier (uuid) and returns an empty response upon successful deletion.
|
|
727
|
+
|
|
728
|
+
Args:
|
|
729
|
+
uuid (string): uuid
|
|
730
|
+
|
|
731
|
+
Returns:
|
|
732
|
+
Any: No Content
|
|
733
|
+
|
|
734
|
+
Tags:
|
|
735
|
+
invitee_no_shows, {uuid}123456
|
|
736
|
+
"""
|
|
737
|
+
if uuid is None:
|
|
738
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
739
|
+
url = f"{self.base_url}/invitee_no_shows/{uuid}"
|
|
740
|
+
query_params = {}
|
|
741
|
+
response = self._delete(url, params=query_params)
|
|
742
|
+
response.raise_for_status()
|
|
743
|
+
return response.json()
|
|
744
|
+
|
|
745
|
+
def create_invitee_no_show(self, invitee=None) -> dict[str, Any]:
|
|
746
|
+
"""
|
|
747
|
+
Triggers an action related to invitee no-shows using the POST method at the "/invitee_no_shows" endpoint, returning a status message based on the response codes provided.
|
|
748
|
+
|
|
749
|
+
Args:
|
|
750
|
+
invitee (string): invitee
|
|
751
|
+
Example:
|
|
752
|
+
```json
|
|
753
|
+
{
|
|
754
|
+
"invitee": "<uri>"
|
|
755
|
+
}
|
|
756
|
+
```
|
|
757
|
+
|
|
758
|
+
Returns:
|
|
759
|
+
dict[str, Any]: Created
|
|
760
|
+
|
|
761
|
+
Tags:
|
|
762
|
+
invitee_no_shows
|
|
763
|
+
"""
|
|
764
|
+
request_body = {
|
|
765
|
+
"invitee": invitee,
|
|
766
|
+
}
|
|
767
|
+
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
768
|
+
url = f"{self.base_url}/invitee_no_shows"
|
|
769
|
+
query_params = {}
|
|
770
|
+
response = self._post(url, data=request_body, params=query_params)
|
|
771
|
+
response.raise_for_status()
|
|
772
|
+
return response.json()
|
|
773
|
+
|
|
774
|
+
def get_group(self, uuid) -> dict[str, Any]:
|
|
775
|
+
"""
|
|
776
|
+
Retrieves information about a group specified by its UUID from the API.
|
|
777
|
+
|
|
778
|
+
Args:
|
|
779
|
+
uuid (string): uuid
|
|
780
|
+
|
|
781
|
+
Returns:
|
|
782
|
+
dict[str, Any]: OK
|
|
783
|
+
|
|
784
|
+
Tags:
|
|
785
|
+
groups, {uuid}1234567
|
|
786
|
+
"""
|
|
787
|
+
if uuid is None:
|
|
788
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
789
|
+
url = f"{self.base_url}/groups/{uuid}"
|
|
790
|
+
query_params = {}
|
|
791
|
+
response = self._get(url, params=query_params)
|
|
792
|
+
response.raise_for_status()
|
|
793
|
+
return response.json()
|
|
794
|
+
|
|
795
|
+
def list_groups(
|
|
796
|
+
self, organization=None, page_token=None, count=None
|
|
797
|
+
) -> dict[str, Any]:
|
|
798
|
+
"""
|
|
799
|
+
Retrieves a list of groups for a specified organization using the GitHub API, with optional pagination controls.
|
|
800
|
+
|
|
801
|
+
Args:
|
|
802
|
+
organization (string): (Required) Return groups that are associated with the organization associated with this URI Example: '<string>'.
|
|
803
|
+
page_token (string): The token to pass to get the next or previous portion of the collection Example: '<string>'.
|
|
804
|
+
count (string): The number of rows to return Example: '20'.
|
|
805
|
+
|
|
806
|
+
Returns:
|
|
807
|
+
dict[str, Any]: OK
|
|
808
|
+
|
|
809
|
+
Tags:
|
|
810
|
+
groups
|
|
811
|
+
"""
|
|
812
|
+
url = f"{self.base_url}/groups"
|
|
813
|
+
query_params = {
|
|
814
|
+
k: v
|
|
815
|
+
for k, v in [
|
|
816
|
+
("organization", organization),
|
|
817
|
+
("page_token", page_token),
|
|
818
|
+
("count", count),
|
|
819
|
+
]
|
|
820
|
+
if v is not None
|
|
821
|
+
}
|
|
822
|
+
response = self._get(url, params=query_params)
|
|
823
|
+
response.raise_for_status()
|
|
824
|
+
return response.json()
|
|
825
|
+
|
|
826
|
+
def get_group_relationship(self, uuid) -> dict[str, Any]:
|
|
827
|
+
"""
|
|
828
|
+
Retrieves information about group relationships identified by the specified UUID using the GET method.
|
|
829
|
+
|
|
830
|
+
Args:
|
|
831
|
+
uuid (string): uuid
|
|
832
|
+
|
|
833
|
+
Returns:
|
|
834
|
+
dict[str, Any]: OK
|
|
835
|
+
|
|
836
|
+
Tags:
|
|
837
|
+
group_relationships, {uuid}12345678
|
|
838
|
+
"""
|
|
839
|
+
if uuid is None:
|
|
840
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
841
|
+
url = f"{self.base_url}/group_relationships/{uuid}"
|
|
842
|
+
query_params = {}
|
|
843
|
+
response = self._get(url, params=query_params)
|
|
844
|
+
response.raise_for_status()
|
|
845
|
+
return response.json()
|
|
846
|
+
|
|
847
|
+
def list_group_relationships(
|
|
848
|
+
self, count=None, page_token=None, organization=None, owner=None, group=None
|
|
849
|
+
) -> dict[str, Any]:
|
|
850
|
+
"""
|
|
851
|
+
Retrieves a list of group relationships filtered by organization, owner, or group, using pagination parameters for controlled results.
|
|
852
|
+
|
|
853
|
+
Args:
|
|
854
|
+
count (string): The number of rows to return Example: '20'.
|
|
855
|
+
page_token (string): The token to pass to get the next or previous portion of the collection Example: '<string>'.
|
|
856
|
+
organization (string): Indicates the results should be filtered by organization Example: '<uri>'.
|
|
857
|
+
owner (string): Indicates the results should be filtered by owner <br>
|
|
858
|
+
One Of: - Organization Membership URI - ` - Organization Invitation URI - ` Example: '<uri>'.
|
|
859
|
+
group (string): Indicates the results should be filtered by group Example: '<uri>'.
|
|
860
|
+
|
|
861
|
+
Returns:
|
|
862
|
+
dict[str, Any]: OK
|
|
863
|
+
|
|
864
|
+
Tags:
|
|
865
|
+
group_relationships
|
|
866
|
+
"""
|
|
867
|
+
url = f"{self.base_url}/group_relationships"
|
|
868
|
+
query_params = {
|
|
869
|
+
k: v
|
|
870
|
+
for k, v in [
|
|
871
|
+
("count", count),
|
|
872
|
+
("page_token", page_token),
|
|
873
|
+
("organization", organization),
|
|
874
|
+
("owner", owner),
|
|
875
|
+
("group", group),
|
|
876
|
+
]
|
|
877
|
+
if v is not None
|
|
878
|
+
}
|
|
879
|
+
response = self._get(url, params=query_params)
|
|
880
|
+
response.raise_for_status()
|
|
881
|
+
return response.json()
|
|
882
|
+
|
|
883
|
+
def get_routing_form(self, uuid) -> dict[str, Any]:
|
|
884
|
+
"""
|
|
885
|
+
Retrieves a routing form by its unique identifier (UUID) using the GET method via the "/routing_forms/{uuid}" path.
|
|
886
|
+
|
|
887
|
+
Args:
|
|
888
|
+
uuid (string): uuid
|
|
889
|
+
|
|
890
|
+
Returns:
|
|
891
|
+
dict[str, Any]: OK
|
|
892
|
+
|
|
893
|
+
Tags:
|
|
894
|
+
routing_forms, {uuid}123456789
|
|
895
|
+
"""
|
|
896
|
+
if uuid is None:
|
|
897
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
898
|
+
url = f"{self.base_url}/routing_forms/{uuid}"
|
|
899
|
+
query_params = {}
|
|
900
|
+
response = self._get(url, params=query_params)
|
|
901
|
+
response.raise_for_status()
|
|
902
|
+
return response.json()
|
|
903
|
+
|
|
904
|
+
def list_routing_forms(
|
|
905
|
+
self, organization=None, count=None, page_token=None, sort=None
|
|
906
|
+
) -> dict[str, Any]:
|
|
907
|
+
"""
|
|
908
|
+
Retrieves a list of routing forms for a specified organization with pagination, sorting, and count parameters.
|
|
909
|
+
|
|
910
|
+
Args:
|
|
911
|
+
organization (string): (Required) View organization routing forms associated with the organization's URI. Example: '<uri>'.
|
|
912
|
+
count (string): The number of rows to return Example: '20'.
|
|
913
|
+
page_token (string): The token to pass to get the next or previous portion of the collection Example: '<string>'.
|
|
914
|
+
sort (string): Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values. Supported fields are: created_at. Sort direction is specified as: asc, desc. Example: '<string>'.
|
|
915
|
+
|
|
916
|
+
Returns:
|
|
917
|
+
dict[str, Any]: OK
|
|
918
|
+
|
|
919
|
+
Tags:
|
|
920
|
+
routing_forms
|
|
921
|
+
"""
|
|
922
|
+
url = f"{self.base_url}/routing_forms"
|
|
923
|
+
query_params = {
|
|
924
|
+
k: v
|
|
925
|
+
for k, v in [
|
|
926
|
+
("organization", organization),
|
|
927
|
+
("count", count),
|
|
928
|
+
("page_token", page_token),
|
|
929
|
+
("sort", sort),
|
|
930
|
+
]
|
|
931
|
+
if v is not None
|
|
932
|
+
}
|
|
933
|
+
response = self._get(url, params=query_params)
|
|
934
|
+
response.raise_for_status()
|
|
935
|
+
return response.json()
|
|
936
|
+
|
|
937
|
+
def get_routing_form_submission(self, uuid) -> dict[str, Any]:
|
|
938
|
+
"""
|
|
939
|
+
Retrieves a specific routing form submission by its unique identifier (UUID) using the Calendly API.
|
|
940
|
+
|
|
941
|
+
Args:
|
|
942
|
+
uuid (string): uuid
|
|
943
|
+
|
|
944
|
+
Returns:
|
|
945
|
+
dict[str, Any]: OK
|
|
946
|
+
|
|
947
|
+
Tags:
|
|
948
|
+
routing_form_submissions, {uuid}12345678910
|
|
949
|
+
"""
|
|
950
|
+
if uuid is None:
|
|
951
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
952
|
+
url = f"{self.base_url}/routing_form_submissions/{uuid}"
|
|
953
|
+
query_params = {}
|
|
954
|
+
response = self._get(url, params=query_params)
|
|
955
|
+
response.raise_for_status()
|
|
956
|
+
return response.json()
|
|
957
|
+
|
|
958
|
+
def list_routing_form_submissions(
|
|
959
|
+
self, form=None, count=None, page_token=None, sort=None
|
|
960
|
+
) -> dict[str, Any]:
|
|
961
|
+
"""
|
|
962
|
+
Retrieves routing form submissions using the GET method at "/routing_form_submissions", allowing filtering by form, count, page token, and sort order.
|
|
963
|
+
|
|
964
|
+
Args:
|
|
965
|
+
form (string): (Required) View routing form submissions associated with the routing form's URI. Example: '<uri>'.
|
|
966
|
+
count (string): The number of rows to return Example: '20'.
|
|
967
|
+
page_token (string): The token to pass to get the next or previous portion of the collection Example: '<string>'.
|
|
968
|
+
sort (string): Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values. Supported fields are: created_at. Sort direction is specified as: asc, desc. Example: '<string>'.
|
|
969
|
+
|
|
970
|
+
Returns:
|
|
971
|
+
dict[str, Any]: OK
|
|
972
|
+
|
|
973
|
+
Tags:
|
|
974
|
+
routing_form_submissions
|
|
975
|
+
"""
|
|
976
|
+
url = f"{self.base_url}/routing_form_submissions"
|
|
977
|
+
query_params = {
|
|
978
|
+
k: v
|
|
979
|
+
for k, v in [
|
|
980
|
+
("form", form),
|
|
981
|
+
("count", count),
|
|
982
|
+
("page_token", page_token),
|
|
983
|
+
("sort", sort),
|
|
984
|
+
]
|
|
985
|
+
if v is not None
|
|
986
|
+
}
|
|
987
|
+
response = self._get(url, params=query_params)
|
|
988
|
+
response.raise_for_status()
|
|
989
|
+
return response.json()
|
|
990
|
+
|
|
991
|
+
def list_event_type_available_times(
|
|
992
|
+
self, event_type=None, start_time=None, end_time=None
|
|
993
|
+
) -> dict[str, Any]:
|
|
994
|
+
"""
|
|
995
|
+
Retrieves a list of available times for a specified event type within a given date range, using the event type, start time, and end time as query parameters.
|
|
996
|
+
|
|
997
|
+
Args:
|
|
998
|
+
event_type (string): (Required) The uri associated with the event type Example: '<uri>'.
|
|
999
|
+
start_time (string): (Required) Start time of the requested availability range. Example: '<string>'.
|
|
1000
|
+
end_time (string): (Required) End time of the requested availability range. Example: '<string>'.
|
|
1001
|
+
|
|
1002
|
+
Returns:
|
|
1003
|
+
dict[str, Any]: OK
|
|
1004
|
+
|
|
1005
|
+
Tags:
|
|
1006
|
+
event_type_available_times
|
|
1007
|
+
"""
|
|
1008
|
+
url = f"{self.base_url}/event_type_available_times"
|
|
1009
|
+
query_params = {
|
|
1010
|
+
k: v
|
|
1011
|
+
for k, v in [
|
|
1012
|
+
("event_type", event_type),
|
|
1013
|
+
("start_time", start_time),
|
|
1014
|
+
("end_time", end_time),
|
|
1015
|
+
]
|
|
1016
|
+
if v is not None
|
|
1017
|
+
}
|
|
1018
|
+
response = self._get(url, params=query_params)
|
|
1019
|
+
response.raise_for_status()
|
|
1020
|
+
return response.json()
|
|
1021
|
+
|
|
1022
|
+
def list_activity_log_entries(
|
|
1023
|
+
self,
|
|
1024
|
+
organization=None,
|
|
1025
|
+
search_term=None,
|
|
1026
|
+
actor=None,
|
|
1027
|
+
sort=None,
|
|
1028
|
+
min_occurred_at=None,
|
|
1029
|
+
max_occurred_at=None,
|
|
1030
|
+
page_token=None,
|
|
1031
|
+
count=None,
|
|
1032
|
+
namespace=None,
|
|
1033
|
+
action=None,
|
|
1034
|
+
) -> dict[str, Any]:
|
|
1035
|
+
"""
|
|
1036
|
+
Retrieves filtered activity log entries based on parameters like organization, actor, timestamps, and action, supporting sorting and pagination.
|
|
1037
|
+
|
|
1038
|
+
Args:
|
|
1039
|
+
organization (string): (Required) Return activity log entries from the organization associated with this URI Example: '<uri>'.
|
|
1040
|
+
search_term (string): Filters entries based on the search term. Supported operators: - `|` - to allow filtering by one term or another. Example: `this | that` - `+` - to allow filtering by one term and another. Example: `this + that` - `"` - to allow filtering by an exact search term. Example: `"email@website.com"` - `-` - to omit specific terms from results. Example: `Added -User` - `()` - to allow specifying precedence during a search. Example: `(this + that) OR (person + place)` - `*` - to allow prefix searching. Example `*@other-website.com` Example: '<string>'.
|
|
1041
|
+
actor (string): Return entries from the user(s) associated with the provided URIs Example: '<uri>,<uri>'.
|
|
1042
|
+
sort (string): Order results by the specified field and direction. List of {field}:{direction} values. Example: 'occurred_at:desc'.
|
|
1043
|
+
min_occurred_at (string): Include entries that occurred after this time (sample time format: "2020-01-02T03:04:05.678Z"). This time should use the UTC timezone. Example: '<dateTime>'.
|
|
1044
|
+
max_occurred_at (string): Include entries that occurred prior to this time (sample time format: "2020-01-02T03:04:05.678Z"). This time should use the UTC timezone. Example: '<dateTime>'.
|
|
1045
|
+
page_token (string): The token to pass to get the next portion of the collection Example: '<string>'.
|
|
1046
|
+
count (string): The number of rows to return Example: '20'.
|
|
1047
|
+
namespace (string): The categories of the entries Example: '<string>,<string>'.
|
|
1048
|
+
action (string): The action(s) associated with the entries Example: '<string>,<string>'.
|
|
1049
|
+
|
|
1050
|
+
Returns:
|
|
1051
|
+
dict[str, Any]: OK
|
|
1052
|
+
|
|
1053
|
+
Tags:
|
|
1054
|
+
activity_log_entries
|
|
1055
|
+
"""
|
|
1056
|
+
url = f"{self.base_url}/activity_log_entries"
|
|
1057
|
+
query_params = {
|
|
1058
|
+
k: v
|
|
1059
|
+
for k, v in [
|
|
1060
|
+
("organization", organization),
|
|
1061
|
+
("search_term", search_term),
|
|
1062
|
+
("actor", actor),
|
|
1063
|
+
("sort", sort),
|
|
1064
|
+
("min_occurred_at", min_occurred_at),
|
|
1065
|
+
("max_occurred_at", max_occurred_at),
|
|
1066
|
+
("page_token", page_token),
|
|
1067
|
+
("count", count),
|
|
1068
|
+
("namespace", namespace),
|
|
1069
|
+
("action", action),
|
|
1070
|
+
]
|
|
1071
|
+
if v is not None
|
|
1072
|
+
}
|
|
1073
|
+
response = self._get(url, params=query_params)
|
|
1074
|
+
response.raise_for_status()
|
|
1075
|
+
return response.json()
|
|
1076
|
+
|
|
1077
|
+
def create_share(
|
|
1078
|
+
self,
|
|
1079
|
+
availability_rule=None,
|
|
1080
|
+
duration=None,
|
|
1081
|
+
end_date=None,
|
|
1082
|
+
event_type=None,
|
|
1083
|
+
hide_location=None,
|
|
1084
|
+
location_configurations=None,
|
|
1085
|
+
max_booking_time=None,
|
|
1086
|
+
name=None,
|
|
1087
|
+
period_type=None,
|
|
1088
|
+
start_date=None,
|
|
1089
|
+
) -> dict[str, Any]:
|
|
1090
|
+
"""
|
|
1091
|
+
Creates a new share resource and returns a status message.
|
|
1092
|
+
|
|
1093
|
+
Args:
|
|
1094
|
+
availability_rule (object): availability_rule
|
|
1095
|
+
duration (string): duration Example: '<integer>'.
|
|
1096
|
+
end_date (string): end_date Example: '<date>'.
|
|
1097
|
+
event_type (string): event_type Example: '<uri>'.
|
|
1098
|
+
hide_location (string): hide_location Example: '<boolean>'.
|
|
1099
|
+
location_configurations (array): location_configurations Example: "[{'additional_info': '<string>', 'kind': 'ask_invitee', 'location': '<string>', 'phone_number': '<string>', 'position': '<integer>'}, {'additional_info': '<string>', 'kind': 'microsoft_teams_conference', 'location': '<string>', 'phone_number': '<string>', 'position': '<integer>'}]".
|
|
1100
|
+
max_booking_time (string): max_booking_time Example: '<integer>'.
|
|
1101
|
+
name (string): name Example: '<string>'.
|
|
1102
|
+
period_type (string): period_type Example: 'fixed'.
|
|
1103
|
+
start_date (string): start_date
|
|
1104
|
+
Example:
|
|
1105
|
+
```json
|
|
1106
|
+
{
|
|
1107
|
+
"availability_rule": {
|
|
1108
|
+
"rules": [
|
|
1109
|
+
{
|
|
1110
|
+
"date": "<date>",
|
|
1111
|
+
"intervals": [
|
|
1112
|
+
{
|
|
1113
|
+
"from": "87:41",
|
|
1114
|
+
"to": "67:37"
|
|
1115
|
+
},
|
|
1116
|
+
{
|
|
1117
|
+
"from": "37:88",
|
|
1118
|
+
"to": "18:71"
|
|
1119
|
+
}
|
|
1120
|
+
],
|
|
1121
|
+
"type": "date",
|
|
1122
|
+
"wday": "wednesday"
|
|
1123
|
+
},
|
|
1124
|
+
{
|
|
1125
|
+
"date": "<date>",
|
|
1126
|
+
"intervals": [
|
|
1127
|
+
{
|
|
1128
|
+
"from": "56:49",
|
|
1129
|
+
"to": "38:81"
|
|
1130
|
+
},
|
|
1131
|
+
{
|
|
1132
|
+
"from": "65:67",
|
|
1133
|
+
"to": "87:67"
|
|
1134
|
+
}
|
|
1135
|
+
],
|
|
1136
|
+
"type": "wday",
|
|
1137
|
+
"wday": "tuesday"
|
|
1138
|
+
}
|
|
1139
|
+
],
|
|
1140
|
+
"timezone": "<string>"
|
|
1141
|
+
},
|
|
1142
|
+
"duration": "<integer>",
|
|
1143
|
+
"end_date": "<date>",
|
|
1144
|
+
"event_type": "<uri>",
|
|
1145
|
+
"hide_location": "<boolean>",
|
|
1146
|
+
"location_configurations": [
|
|
1147
|
+
{
|
|
1148
|
+
"additional_info": "<string>",
|
|
1149
|
+
"kind": "ask_invitee",
|
|
1150
|
+
"location": "<string>",
|
|
1151
|
+
"phone_number": "<string>",
|
|
1152
|
+
"position": "<integer>"
|
|
1153
|
+
},
|
|
1154
|
+
{
|
|
1155
|
+
"additional_info": "<string>",
|
|
1156
|
+
"kind": "microsoft_teams_conference",
|
|
1157
|
+
"location": "<string>",
|
|
1158
|
+
"phone_number": "<string>",
|
|
1159
|
+
"position": "<integer>"
|
|
1160
|
+
}
|
|
1161
|
+
],
|
|
1162
|
+
"max_booking_time": "<integer>",
|
|
1163
|
+
"name": "<string>",
|
|
1164
|
+
"period_type": "fixed",
|
|
1165
|
+
"start_date": "<date>"
|
|
1166
|
+
}
|
|
1167
|
+
```
|
|
1168
|
+
|
|
1169
|
+
Returns:
|
|
1170
|
+
dict[str, Any]: Created
|
|
1171
|
+
|
|
1172
|
+
Tags:
|
|
1173
|
+
shares
|
|
1174
|
+
"""
|
|
1175
|
+
request_body = {
|
|
1176
|
+
"availability_rule": availability_rule,
|
|
1177
|
+
"duration": duration,
|
|
1178
|
+
"end_date": end_date,
|
|
1179
|
+
"event_type": event_type,
|
|
1180
|
+
"hide_location": hide_location,
|
|
1181
|
+
"location_configurations": location_configurations,
|
|
1182
|
+
"max_booking_time": max_booking_time,
|
|
1183
|
+
"name": name,
|
|
1184
|
+
"period_type": period_type,
|
|
1185
|
+
"start_date": start_date,
|
|
1186
|
+
}
|
|
1187
|
+
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
1188
|
+
url = f"{self.base_url}/shares"
|
|
1189
|
+
query_params = {}
|
|
1190
|
+
response = self._post(url, data=request_body, params=query_params)
|
|
1191
|
+
response.raise_for_status()
|
|
1192
|
+
return response.json()
|
|
1193
|
+
|
|
1194
|
+
def list_user_busy_times(
|
|
1195
|
+
self, user=None, start_time=None, end_time=None
|
|
1196
|
+
) -> dict[str, Any]:
|
|
1197
|
+
"""
|
|
1198
|
+
Retrieves an ascending list of a user's internal and external scheduled events within a specified date range using the "/user_busy_times" endpoint, allowing for efficient management of busy times.
|
|
1199
|
+
|
|
1200
|
+
Args:
|
|
1201
|
+
user (string): (Required) The uri associated with the user Example: '<uri>'.
|
|
1202
|
+
start_time (string): (Required) Start time of the requested availability range Example: '<string>'.
|
|
1203
|
+
end_time (string): (Required) End time of the requested availability range Example: '<string>'.
|
|
1204
|
+
|
|
1205
|
+
Returns:
|
|
1206
|
+
dict[str, Any]: OK
|
|
1207
|
+
|
|
1208
|
+
Tags:
|
|
1209
|
+
user_busy_times
|
|
1210
|
+
"""
|
|
1211
|
+
url = f"{self.base_url}/user_busy_times"
|
|
1212
|
+
query_params = {
|
|
1213
|
+
k: v
|
|
1214
|
+
for k, v in [
|
|
1215
|
+
("user", user),
|
|
1216
|
+
("start_time", start_time),
|
|
1217
|
+
("end_time", end_time),
|
|
1218
|
+
]
|
|
1219
|
+
if v is not None
|
|
1220
|
+
}
|
|
1221
|
+
response = self._get(url, params=query_params)
|
|
1222
|
+
response.raise_for_status()
|
|
1223
|
+
return response.json()
|
|
1224
|
+
|
|
1225
|
+
def get_user_availability_schedule(self, uuid) -> dict[str, Any]:
|
|
1226
|
+
"""
|
|
1227
|
+
Retrieves the availability schedule of a user based on the provided UUID using the GET method.
|
|
1228
|
+
|
|
1229
|
+
Args:
|
|
1230
|
+
uuid (string): uuid
|
|
1231
|
+
|
|
1232
|
+
Returns:
|
|
1233
|
+
dict[str, Any]: OK
|
|
1234
|
+
|
|
1235
|
+
Tags:
|
|
1236
|
+
user_availability_schedules, {uuid}1234567891011
|
|
1237
|
+
"""
|
|
1238
|
+
if uuid is None:
|
|
1239
|
+
raise ValueError("Missing required parameter 'uuid'")
|
|
1240
|
+
url = f"{self.base_url}/user_availability_schedules/{uuid}"
|
|
1241
|
+
query_params = {}
|
|
1242
|
+
response = self._get(url, params=query_params)
|
|
1243
|
+
response.raise_for_status()
|
|
1244
|
+
return response.json()
|
|
1245
|
+
|
|
1246
|
+
def list_user_availability_schedules(self, user=None) -> dict[str, Any]:
|
|
1247
|
+
"""
|
|
1248
|
+
Retrieves the availability schedule for a specified user, including time intervals when booking is permitted.
|
|
1249
|
+
|
|
1250
|
+
Args:
|
|
1251
|
+
user (string): (Required) A URI reference to a user Example: '<uri>'.
|
|
1252
|
+
|
|
1253
|
+
Returns:
|
|
1254
|
+
dict[str, Any]: OK
|
|
1255
|
+
|
|
1256
|
+
Tags:
|
|
1257
|
+
user_availability_schedules
|
|
1258
|
+
"""
|
|
1259
|
+
url = f"{self.base_url}/user_availability_schedules"
|
|
1260
|
+
query_params = {k: v for k, v in [("user", user)] if v is not None}
|
|
1261
|
+
response = self._get(url, params=query_params)
|
|
1262
|
+
response.raise_for_status()
|
|
1263
|
+
return response.json()
|
|
1264
|
+
|
|
1265
|
+
def list_event_type_hosts(
|
|
1266
|
+
self, event_type=None, count=None, page_token=None
|
|
1267
|
+
) -> dict[str, Any]:
|
|
1268
|
+
"""
|
|
1269
|
+
Retrieves paginated event type memberships filtered by event type, count, and page token.
|
|
1270
|
+
|
|
1271
|
+
Args:
|
|
1272
|
+
event_type (string): (Required) The uri associated with the event type Example: '<uri>'.
|
|
1273
|
+
count (string): The number of rows to return Example: '20'.
|
|
1274
|
+
page_token (string): The token to pass to get the next or previous portion of the collection Example: '<string>'.
|
|
1275
|
+
|
|
1276
|
+
Returns:
|
|
1277
|
+
dict[str, Any]: OK
|
|
1278
|
+
|
|
1279
|
+
Tags:
|
|
1280
|
+
event_type_memberships
|
|
1281
|
+
"""
|
|
1282
|
+
url = f"{self.base_url}/event_type_memberships"
|
|
1283
|
+
query_params = {
|
|
1284
|
+
k: v
|
|
1285
|
+
for k, v in [
|
|
1286
|
+
("event_type", event_type),
|
|
1287
|
+
("count", count),
|
|
1288
|
+
("page_token", page_token),
|
|
1289
|
+
]
|
|
1290
|
+
if v is not None
|
|
1291
|
+
}
|
|
1292
|
+
response = self._get(url, params=query_params)
|
|
1293
|
+
response.raise_for_status()
|
|
1294
|
+
return response.json()
|
|
1295
|
+
|
|
1296
|
+
def create_one_off_event_type(
|
|
1297
|
+
self,
|
|
1298
|
+
co_hosts=None,
|
|
1299
|
+
date_setting=None,
|
|
1300
|
+
duration=None,
|
|
1301
|
+
host=None,
|
|
1302
|
+
location=None,
|
|
1303
|
+
name=None,
|
|
1304
|
+
timezone=None,
|
|
1305
|
+
) -> dict[str, Any]:
|
|
1306
|
+
"""
|
|
1307
|
+
Creates a one-off event type using the "POST" method, allowing for the setup of a single, unique event configuration.
|
|
1308
|
+
|
|
1309
|
+
Args:
|
|
1310
|
+
co_hosts (array): co_hosts Example: "['<uri>', '<uri>']".
|
|
1311
|
+
date_setting (object): date_setting
|
|
1312
|
+
duration (string): duration Example: '<number>'.
|
|
1313
|
+
host (string): host Example: '<uri>'.
|
|
1314
|
+
location (object): location
|
|
1315
|
+
name (string): name Example: '<string>'.
|
|
1316
|
+
timezone (string): timezone
|
|
1317
|
+
Example:
|
|
1318
|
+
```json
|
|
1319
|
+
{
|
|
1320
|
+
"co_hosts": [
|
|
1321
|
+
"<uri>",
|
|
1322
|
+
"<uri>"
|
|
1323
|
+
],
|
|
1324
|
+
"date_setting": {
|
|
1325
|
+
"value": "reference ./models/date_setting/DateRange.yaml not found in the OpenAPI spec"
|
|
1326
|
+
},
|
|
1327
|
+
"duration": "<number>",
|
|
1328
|
+
"host": "<uri>",
|
|
1329
|
+
"location": {
|
|
1330
|
+
"value": "reference ./models/adhoc-locations/CustomLocation.yaml not found in the OpenAPI spec"
|
|
1331
|
+
},
|
|
1332
|
+
"name": "<string>",
|
|
1333
|
+
"timezone": "<string>"
|
|
1334
|
+
}
|
|
1335
|
+
```
|
|
1336
|
+
|
|
1337
|
+
Returns:
|
|
1338
|
+
dict[str, Any]: Created
|
|
1339
|
+
|
|
1340
|
+
Tags:
|
|
1341
|
+
one_off_event_types
|
|
1342
|
+
"""
|
|
1343
|
+
request_body = {
|
|
1344
|
+
"co_hosts": co_hosts,
|
|
1345
|
+
"date_setting": date_setting,
|
|
1346
|
+
"duration": duration,
|
|
1347
|
+
"host": host,
|
|
1348
|
+
"location": location,
|
|
1349
|
+
"name": name,
|
|
1350
|
+
"timezone": timezone,
|
|
1351
|
+
}
|
|
1352
|
+
request_body = {k: v for k, v in request_body.items() if v is not None}
|
|
1353
|
+
url = f"{self.base_url}/one_off_event_types"
|
|
1354
|
+
query_params = {}
|
|
1355
|
+
response = self._post(url, data=request_body, params=query_params)
|
|
1356
|
+
response.raise_for_status()
|
|
1357
|
+
return response.json()
|
|
1358
|
+
|
|
1359
|
+
def get_sample_webhook_data(
|
|
1360
|
+
self, event=None, organization=None, user=None, scope=None
|
|
1361
|
+
) -> dict[str, Any]:
|
|
1362
|
+
"""
|
|
1363
|
+
Retrieves sample webhook data filtered by event type, organization, user, and scope parameters.
|
|
1364
|
+
|
|
1365
|
+
Args:
|
|
1366
|
+
event (string): (Required) Example: 'invitee.created'.
|
|
1367
|
+
organization (string): (Required) Example: '<uri>'.
|
|
1368
|
+
user (string): Specifies the user identifier or name for filtering or retrieving specific data in the response. Example: '<uri>'.
|
|
1369
|
+
scope (string): (Required) Example: 'user'.
|
|
1370
|
+
|
|
1371
|
+
Returns:
|
|
1372
|
+
dict[str, Any]: OK
|
|
1373
|
+
|
|
1374
|
+
Tags:
|
|
1375
|
+
sample_webhook_data
|
|
1376
|
+
"""
|
|
1377
|
+
url = f"{self.base_url}/sample_webhook_data"
|
|
1378
|
+
query_params = {
|
|
1379
|
+
k: v
|
|
1380
|
+
for k, v in [
|
|
1381
|
+
("event", event),
|
|
1382
|
+
("organization", organization),
|
|
1383
|
+
("user", user),
|
|
1384
|
+
("scope", scope),
|
|
1385
|
+
]
|
|
1386
|
+
if v is not None
|
|
1387
|
+
}
|
|
1388
|
+
response = self._get(url, params=query_params)
|
|
1389
|
+
response.raise_for_status()
|
|
1390
|
+
return response.json()
|
|
1391
|
+
|
|
1392
|
+
def list_tools(self):
|
|
1393
|
+
return [
|
|
1394
|
+
self.list_event_invitees,
|
|
1395
|
+
self.get_event,
|
|
1396
|
+
self.get_event_invitee,
|
|
1397
|
+
self.list_events,
|
|
1398
|
+
self.get_event_type,
|
|
1399
|
+
self.list_user_sevent_types,
|
|
1400
|
+
self.get_user,
|
|
1401
|
+
self.get_current_user,
|
|
1402
|
+
self.list_organization_invitations,
|
|
1403
|
+
self.invite_user_to_organization,
|
|
1404
|
+
self.get_organization_invitation,
|
|
1405
|
+
self.revoke_user_sorganization_invitation,
|
|
1406
|
+
self.get_organization_membership,
|
|
1407
|
+
self.remove_user_from_organization,
|
|
1408
|
+
self.list_organization_memberships,
|
|
1409
|
+
self.get_webhook_subscription,
|
|
1410
|
+
self.delete_webhook_subscription,
|
|
1411
|
+
self.list_webhook_subscriptions,
|
|
1412
|
+
self.create_webhook_subscription,
|
|
1413
|
+
self.create_single_use_scheduling_link,
|
|
1414
|
+
self.delete_invitee_data,
|
|
1415
|
+
self.delete_scheduled_event_data,
|
|
1416
|
+
self.get_invitee_no_show,
|
|
1417
|
+
self.delete_invitee_no_show,
|
|
1418
|
+
self.create_invitee_no_show,
|
|
1419
|
+
self.get_group,
|
|
1420
|
+
self.list_groups,
|
|
1421
|
+
self.get_group_relationship,
|
|
1422
|
+
self.list_group_relationships,
|
|
1423
|
+
self.get_routing_form,
|
|
1424
|
+
self.list_routing_forms,
|
|
1425
|
+
self.get_routing_form_submission,
|
|
1426
|
+
self.list_routing_form_submissions,
|
|
1427
|
+
self.list_event_type_available_times,
|
|
1428
|
+
self.list_activity_log_entries,
|
|
1429
|
+
self.create_share,
|
|
1430
|
+
self.list_user_busy_times,
|
|
1431
|
+
self.get_user_availability_schedule,
|
|
1432
|
+
self.list_user_availability_schedules,
|
|
1433
|
+
self.list_event_type_hosts,
|
|
1434
|
+
self.create_one_off_event_type,
|
|
1435
|
+
self.get_sample_webhook_data,
|
|
1436
|
+
]
|