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.
Files changed (268) hide show
  1. universal_mcp/applications/ahrefs/README.md +51 -0
  2. universal_mcp/applications/ahrefs/__init__.py +1 -0
  3. universal_mcp/applications/ahrefs/app.py +2291 -0
  4. universal_mcp/applications/airtable/README.md +22 -0
  5. universal_mcp/applications/airtable/__init__.py +1 -0
  6. universal_mcp/applications/airtable/app.py +479 -0
  7. universal_mcp/applications/apollo/README.md +44 -0
  8. universal_mcp/applications/apollo/__init__.py +1 -0
  9. universal_mcp/applications/apollo/app.py +1847 -0
  10. universal_mcp/applications/asana/README.md +199 -0
  11. universal_mcp/applications/asana/__init__.py +1 -0
  12. universal_mcp/applications/asana/app.py +9509 -0
  13. universal_mcp/applications/aws-s3/README.md +0 -0
  14. universal_mcp/applications/aws-s3/__init__.py +1 -0
  15. universal_mcp/applications/aws-s3/app.py +552 -0
  16. universal_mcp/applications/bill/README.md +0 -0
  17. universal_mcp/applications/bill/__init__.py +1 -0
  18. universal_mcp/applications/bill/app.py +8705 -0
  19. universal_mcp/applications/box/README.md +307 -0
  20. universal_mcp/applications/box/__init__.py +1 -0
  21. universal_mcp/applications/box/app.py +15987 -0
  22. universal_mcp/applications/braze/README.md +106 -0
  23. universal_mcp/applications/braze/__init__.py +1 -0
  24. universal_mcp/applications/braze/app.py +4754 -0
  25. universal_mcp/applications/cal-com-v2/README.md +150 -0
  26. universal_mcp/applications/cal-com-v2/__init__.py +1 -0
  27. universal_mcp/applications/cal-com-v2/app.py +5541 -0
  28. universal_mcp/applications/calendly/README.md +53 -0
  29. universal_mcp/applications/calendly/__init__.py +1 -0
  30. universal_mcp/applications/calendly/app.py +1436 -0
  31. universal_mcp/applications/canva/README.md +43 -0
  32. universal_mcp/applications/canva/__init__.py +1 -0
  33. universal_mcp/applications/canva/app.py +941 -0
  34. universal_mcp/applications/clickup/README.md +135 -0
  35. universal_mcp/applications/clickup/__init__.py +1 -0
  36. universal_mcp/applications/clickup/app.py +5009 -0
  37. universal_mcp/applications/coda/README.md +108 -0
  38. universal_mcp/applications/coda/__init__.py +1 -0
  39. universal_mcp/applications/coda/app.py +3671 -0
  40. universal_mcp/applications/confluence/README.md +198 -0
  41. universal_mcp/applications/confluence/__init__.py +1 -0
  42. universal_mcp/applications/confluence/app.py +6273 -0
  43. universal_mcp/applications/contentful/README.md +17 -0
  44. universal_mcp/applications/contentful/__init__.py +1 -0
  45. universal_mcp/applications/contentful/app.py +364 -0
  46. universal_mcp/applications/crustdata/README.md +25 -0
  47. universal_mcp/applications/crustdata/__init__.py +1 -0
  48. universal_mcp/applications/crustdata/app.py +586 -0
  49. universal_mcp/applications/dialpad/README.md +202 -0
  50. universal_mcp/applications/dialpad/__init__.py +1 -0
  51. universal_mcp/applications/dialpad/app.py +5949 -0
  52. universal_mcp/applications/digitalocean/README.md +463 -0
  53. universal_mcp/applications/digitalocean/__init__.py +1 -0
  54. universal_mcp/applications/digitalocean/app.py +20835 -0
  55. universal_mcp/applications/domain-checker/README.md +13 -0
  56. universal_mcp/applications/domain-checker/__init__.py +1 -0
  57. universal_mcp/applications/domain-checker/app.py +265 -0
  58. universal_mcp/applications/e2b/README.md +12 -0
  59. universal_mcp/applications/e2b/__init__.py +1 -0
  60. universal_mcp/applications/e2b/app.py +187 -0
  61. universal_mcp/applications/elevenlabs/README.md +88 -0
  62. universal_mcp/applications/elevenlabs/__init__.py +1 -0
  63. universal_mcp/applications/elevenlabs/app.py +3235 -0
  64. universal_mcp/applications/exa/README.md +15 -0
  65. universal_mcp/applications/exa/__init__.py +1 -0
  66. universal_mcp/applications/exa/app.py +221 -0
  67. universal_mcp/applications/falai/README.md +17 -0
  68. universal_mcp/applications/falai/__init__.py +1 -0
  69. universal_mcp/applications/falai/app.py +331 -0
  70. universal_mcp/applications/figma/README.md +49 -0
  71. universal_mcp/applications/figma/__init__.py +1 -0
  72. universal_mcp/applications/figma/app.py +1090 -0
  73. universal_mcp/applications/firecrawl/README.md +20 -0
  74. universal_mcp/applications/firecrawl/__init__.py +1 -0
  75. universal_mcp/applications/firecrawl/app.py +514 -0
  76. universal_mcp/applications/fireflies/README.md +25 -0
  77. universal_mcp/applications/fireflies/__init__.py +1 -0
  78. universal_mcp/applications/fireflies/app.py +506 -0
  79. universal_mcp/applications/fpl/README.md +23 -0
  80. universal_mcp/applications/fpl/__init__.py +1 -0
  81. universal_mcp/applications/fpl/app.py +1327 -0
  82. universal_mcp/applications/fpl/utils/api.py +142 -0
  83. universal_mcp/applications/fpl/utils/fixtures.py +629 -0
  84. universal_mcp/applications/fpl/utils/helper.py +982 -0
  85. universal_mcp/applications/fpl/utils/league_utils.py +546 -0
  86. universal_mcp/applications/fpl/utils/position_utils.py +68 -0
  87. universal_mcp/applications/ghost-content/README.md +25 -0
  88. universal_mcp/applications/ghost-content/__init__.py +1 -0
  89. universal_mcp/applications/ghost-content/app.py +654 -0
  90. universal_mcp/applications/github/README.md +1049 -0
  91. universal_mcp/applications/github/__init__.py +1 -0
  92. universal_mcp/applications/github/app.py +50600 -0
  93. universal_mcp/applications/gong/README.md +63 -0
  94. universal_mcp/applications/gong/__init__.py +1 -0
  95. universal_mcp/applications/gong/app.py +2297 -0
  96. universal_mcp/applications/google-ads/README.md +0 -0
  97. universal_mcp/applications/google-ads/__init__.py +1 -0
  98. universal_mcp/applications/google-ads/app.py +23 -0
  99. universal_mcp/applications/google-calendar/README.md +21 -0
  100. universal_mcp/applications/google-calendar/__init__.py +1 -0
  101. universal_mcp/applications/google-calendar/app.py +574 -0
  102. universal_mcp/applications/google-docs/README.md +25 -0
  103. universal_mcp/applications/google-docs/__init__.py +1 -0
  104. universal_mcp/applications/google-docs/app.py +760 -0
  105. universal_mcp/applications/google-drive/README.md +68 -0
  106. universal_mcp/applications/google-drive/__init__.py +1 -0
  107. universal_mcp/applications/google-drive/app.py +4936 -0
  108. universal_mcp/applications/google-gemini/README.md +25 -0
  109. universal_mcp/applications/google-gemini/__init__.py +1 -0
  110. universal_mcp/applications/google-gemini/app.py +663 -0
  111. universal_mcp/applications/google-mail/README.md +31 -0
  112. universal_mcp/applications/google-mail/__init__.py +1 -0
  113. universal_mcp/applications/google-mail/app.py +1354 -0
  114. universal_mcp/applications/google-searchconsole/README.md +21 -0
  115. universal_mcp/applications/google-searchconsole/__init__.py +1 -0
  116. universal_mcp/applications/google-searchconsole/app.py +320 -0
  117. universal_mcp/applications/google-sheet/README.md +36 -0
  118. universal_mcp/applications/google-sheet/__init__.py +1 -0
  119. universal_mcp/applications/google-sheet/app.py +1941 -0
  120. universal_mcp/applications/hashnode/README.md +20 -0
  121. universal_mcp/applications/hashnode/__init__.py +1 -0
  122. universal_mcp/applications/hashnode/app.py +455 -0
  123. universal_mcp/applications/heygen/README.md +44 -0
  124. universal_mcp/applications/heygen/__init__.py +1 -0
  125. universal_mcp/applications/heygen/app.py +961 -0
  126. universal_mcp/applications/http-tools/README.md +16 -0
  127. universal_mcp/applications/http-tools/__init__.py +1 -0
  128. universal_mcp/applications/http-tools/app.py +153 -0
  129. universal_mcp/applications/hubspot/README.md +239 -0
  130. universal_mcp/applications/hubspot/__init__.py +1 -0
  131. universal_mcp/applications/hubspot/app.py +416 -0
  132. universal_mcp/applications/jira/README.md +600 -0
  133. universal_mcp/applications/jira/__init__.py +1 -0
  134. universal_mcp/applications/jira/app.py +28804 -0
  135. universal_mcp/applications/klaviyo/README.md +313 -0
  136. universal_mcp/applications/klaviyo/__init__.py +1 -0
  137. universal_mcp/applications/klaviyo/app.py +11236 -0
  138. universal_mcp/applications/linkedin/README.md +15 -0
  139. universal_mcp/applications/linkedin/__init__.py +1 -0
  140. universal_mcp/applications/linkedin/app.py +243 -0
  141. universal_mcp/applications/mailchimp/README.md +281 -0
  142. universal_mcp/applications/mailchimp/__init__.py +1 -0
  143. universal_mcp/applications/mailchimp/app.py +10937 -0
  144. universal_mcp/applications/markitdown/README.md +12 -0
  145. universal_mcp/applications/markitdown/__init__.py +1 -0
  146. universal_mcp/applications/markitdown/app.py +63 -0
  147. universal_mcp/applications/miro/README.md +151 -0
  148. universal_mcp/applications/miro/__init__.py +1 -0
  149. universal_mcp/applications/miro/app.py +5429 -0
  150. universal_mcp/applications/ms-teams/README.md +42 -0
  151. universal_mcp/applications/ms-teams/__init__.py +1 -0
  152. universal_mcp/applications/ms-teams/app.py +1823 -0
  153. universal_mcp/applications/neon/README.md +74 -0
  154. universal_mcp/applications/neon/__init__.py +1 -0
  155. universal_mcp/applications/neon/app.py +2018 -0
  156. universal_mcp/applications/notion/README.md +30 -0
  157. universal_mcp/applications/notion/__init__.py +1 -0
  158. universal_mcp/applications/notion/app.py +527 -0
  159. universal_mcp/applications/openai/README.md +22 -0
  160. universal_mcp/applications/openai/__init__.py +1 -0
  161. universal_mcp/applications/openai/app.py +759 -0
  162. universal_mcp/applications/outlook/README.md +20 -0
  163. universal_mcp/applications/outlook/__init__.py +1 -0
  164. universal_mcp/applications/outlook/app.py +444 -0
  165. universal_mcp/applications/perplexity/README.md +12 -0
  166. universal_mcp/applications/perplexity/__init__.py +1 -0
  167. universal_mcp/applications/perplexity/app.py +65 -0
  168. universal_mcp/applications/pipedrive/README.md +284 -0
  169. universal_mcp/applications/pipedrive/__init__.py +1 -0
  170. universal_mcp/applications/pipedrive/app.py +12924 -0
  171. universal_mcp/applications/posthog/README.md +132 -0
  172. universal_mcp/applications/posthog/__init__.py +1 -0
  173. universal_mcp/applications/posthog/app.py +7125 -0
  174. universal_mcp/applications/reddit/README.md +135 -0
  175. universal_mcp/applications/reddit/__init__.py +1 -0
  176. universal_mcp/applications/reddit/app.py +4652 -0
  177. universal_mcp/applications/replicate/README.md +18 -0
  178. universal_mcp/applications/replicate/__init__.py +1 -0
  179. universal_mcp/applications/replicate/app.py +495 -0
  180. universal_mcp/applications/resend/README.md +40 -0
  181. universal_mcp/applications/resend/__init__.py +1 -0
  182. universal_mcp/applications/resend/app.py +881 -0
  183. universal_mcp/applications/retell/README.md +21 -0
  184. universal_mcp/applications/retell/__init__.py +1 -0
  185. universal_mcp/applications/retell/app.py +333 -0
  186. universal_mcp/applications/rocketlane/README.md +70 -0
  187. universal_mcp/applications/rocketlane/__init__.py +1 -0
  188. universal_mcp/applications/rocketlane/app.py +4346 -0
  189. universal_mcp/applications/semanticscholar/README.md +25 -0
  190. universal_mcp/applications/semanticscholar/__init__.py +1 -0
  191. universal_mcp/applications/semanticscholar/app.py +482 -0
  192. universal_mcp/applications/semrush/README.md +44 -0
  193. universal_mcp/applications/semrush/__init__.py +1 -0
  194. universal_mcp/applications/semrush/app.py +2081 -0
  195. universal_mcp/applications/sendgrid/README.md +362 -0
  196. universal_mcp/applications/sendgrid/__init__.py +1 -0
  197. universal_mcp/applications/sendgrid/app.py +9752 -0
  198. universal_mcp/applications/sentry/README.md +186 -0
  199. universal_mcp/applications/sentry/__init__.py +1 -0
  200. universal_mcp/applications/sentry/app.py +7471 -0
  201. universal_mcp/applications/serpapi/README.md +14 -0
  202. universal_mcp/applications/serpapi/__init__.py +1 -0
  203. universal_mcp/applications/serpapi/app.py +293 -0
  204. universal_mcp/applications/sharepoint/README.md +0 -0
  205. universal_mcp/applications/sharepoint/__init__.py +1 -0
  206. universal_mcp/applications/sharepoint/app.py +215 -0
  207. universal_mcp/applications/shopify/README.md +321 -0
  208. universal_mcp/applications/shopify/__init__.py +1 -0
  209. universal_mcp/applications/shopify/app.py +15392 -0
  210. universal_mcp/applications/shortcut/README.md +128 -0
  211. universal_mcp/applications/shortcut/__init__.py +1 -0
  212. universal_mcp/applications/shortcut/app.py +4478 -0
  213. universal_mcp/applications/slack/README.md +0 -0
  214. universal_mcp/applications/slack/__init__.py +1 -0
  215. universal_mcp/applications/slack/app.py +570 -0
  216. universal_mcp/applications/spotify/README.md +91 -0
  217. universal_mcp/applications/spotify/__init__.py +1 -0
  218. universal_mcp/applications/spotify/app.py +2526 -0
  219. universal_mcp/applications/supabase/README.md +87 -0
  220. universal_mcp/applications/supabase/__init__.py +1 -0
  221. universal_mcp/applications/supabase/app.py +2970 -0
  222. universal_mcp/applications/tavily/README.md +12 -0
  223. universal_mcp/applications/tavily/__init__.py +1 -0
  224. universal_mcp/applications/tavily/app.py +51 -0
  225. universal_mcp/applications/trello/README.md +266 -0
  226. universal_mcp/applications/trello/__init__.py +1 -0
  227. universal_mcp/applications/trello/app.py +10875 -0
  228. universal_mcp/applications/twillo/README.md +0 -0
  229. universal_mcp/applications/twillo/__init__.py +1 -0
  230. universal_mcp/applications/twillo/app.py +269 -0
  231. universal_mcp/applications/twitter/README.md +100 -0
  232. universal_mcp/applications/twitter/__init__.py +1 -0
  233. universal_mcp/applications/twitter/api_segments/__init__.py +0 -0
  234. universal_mcp/applications/twitter/api_segments/api_segment_base.py +51 -0
  235. universal_mcp/applications/twitter/api_segments/compliance_api.py +122 -0
  236. universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +255 -0
  237. universal_mcp/applications/twitter/api_segments/dm_events_api.py +140 -0
  238. universal_mcp/applications/twitter/api_segments/likes_api.py +159 -0
  239. universal_mcp/applications/twitter/api_segments/lists_api.py +395 -0
  240. universal_mcp/applications/twitter/api_segments/openapi_json_api.py +34 -0
  241. universal_mcp/applications/twitter/api_segments/spaces_api.py +309 -0
  242. universal_mcp/applications/twitter/api_segments/trends_api.py +40 -0
  243. universal_mcp/applications/twitter/api_segments/tweets_api.py +1403 -0
  244. universal_mcp/applications/twitter/api_segments/usage_api.py +40 -0
  245. universal_mcp/applications/twitter/api_segments/users_api.py +1498 -0
  246. universal_mcp/applications/twitter/app.py +46 -0
  247. universal_mcp/applications/unipile/README.md +28 -0
  248. universal_mcp/applications/unipile/__init__.py +1 -0
  249. universal_mcp/applications/unipile/app.py +829 -0
  250. universal_mcp/applications/whatsapp/README.md +23 -0
  251. universal_mcp/applications/whatsapp/__init__.py +1 -0
  252. universal_mcp/applications/whatsapp/app.py +595 -0
  253. universal_mcp/applications/whatsapp-business/README.md +34 -0
  254. universal_mcp/applications/whatsapp-business/__init__.py +1 -0
  255. universal_mcp/applications/whatsapp-business/app.py +1065 -0
  256. universal_mcp/applications/wrike/README.md +46 -0
  257. universal_mcp/applications/wrike/__init__.py +1 -0
  258. universal_mcp/applications/wrike/app.py +1583 -0
  259. universal_mcp/applications/youtube/README.md +57 -0
  260. universal_mcp/applications/youtube/__init__.py +1 -0
  261. universal_mcp/applications/youtube/app.py +1696 -0
  262. universal_mcp/applications/zenquotes/README.md +12 -0
  263. universal_mcp/applications/zenquotes/__init__.py +1 -0
  264. universal_mcp/applications/zenquotes/app.py +31 -0
  265. universal_mcp_applications-0.1.1.dist-info/METADATA +172 -0
  266. universal_mcp_applications-0.1.1.dist-info/RECORD +268 -0
  267. universal_mcp_applications-0.1.1.dist-info/WHEEL +4 -0
  268. 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
+ ]