vrchatapi-async 1.20.8.dev1__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 (362) hide show
  1. vrchatapi/__init__.py +742 -0
  2. vrchatapi/api/__init__.py +23 -0
  3. vrchatapi/api/authentication_api.py +6253 -0
  4. vrchatapi/api/avatars_api.py +4234 -0
  5. vrchatapi/api/calendar_api.py +4090 -0
  6. vrchatapi/api/economy_api.py +11547 -0
  7. vrchatapi/api/favorites_api.py +2368 -0
  8. vrchatapi/api/files_api.py +6109 -0
  9. vrchatapi/api/friends_api.py +1708 -0
  10. vrchatapi/api/groups_api.py +15085 -0
  11. vrchatapi/api/instances_api.py +1754 -0
  12. vrchatapi/api/inventory_api.py +4333 -0
  13. vrchatapi/api/invite_api.py +3337 -0
  14. vrchatapi/api/jams_api.py +1446 -0
  15. vrchatapi/api/miscellaneous_api.py +2384 -0
  16. vrchatapi/api/notifications_api.py +3624 -0
  17. vrchatapi/api/playermoderation_api.py +1127 -0
  18. vrchatapi/api/prints_api.py +1478 -0
  19. vrchatapi/api/props_api.py +2269 -0
  20. vrchatapi/api/users_api.py +7894 -0
  21. vrchatapi/api/worlds_api.py +6153 -0
  22. vrchatapi/api_client.py +865 -0
  23. vrchatapi/api_response.py +21 -0
  24. vrchatapi/configuration.py +686 -0
  25. vrchatapi/exceptions.py +218 -0
  26. vrchatapi/models/__init__.py +345 -0
  27. vrchatapi/models/account_deletion_log.py +253 -0
  28. vrchatapi/models/add_favorite_request.py +246 -0
  29. vrchatapi/models/add_group_gallery_image_request.py +234 -0
  30. vrchatapi/models/admin_asset_bundle.py +337 -0
  31. vrchatapi/models/admin_unity_package.py +261 -0
  32. vrchatapi/models/age_verification_status.py +38 -0
  33. vrchatapi/models/agreement.py +280 -0
  34. vrchatapi/models/agreement_code.py +36 -0
  35. vrchatapi/models/agreement_request.py +256 -0
  36. vrchatapi/models/agreement_status.py +261 -0
  37. vrchatapi/models/api_config.py +1299 -0
  38. vrchatapi/models/api_config_access_logs_urls.py +258 -0
  39. vrchatapi/models/api_config_announcement.py +217 -0
  40. vrchatapi/models/api_config_audio_config.py +311 -0
  41. vrchatapi/models/api_config_avatar_perf_limiter.py +293 -0
  42. vrchatapi/models/api_config_constants.py +262 -0
  43. vrchatapi/models/api_config_constants_groups.py +306 -0
  44. vrchatapi/models/api_config_constants_instance.py +238 -0
  45. vrchatapi/models/api_config_constants_instancepopulationbrackets.py +262 -0
  46. vrchatapi/models/api_config_constants_instancepopulationbracketscrowded.py +216 -0
  47. vrchatapi/models/api_config_constants_instancepopulationbracketsfew.py +216 -0
  48. vrchatapi/models/api_config_constants_instancepopulationbracketsmany.py +216 -0
  49. vrchatapi/models/api_config_constants_language.py +234 -0
  50. vrchatapi/models/api_config_download_url_list.py +258 -0
  51. vrchatapi/models/api_config_events.py +314 -0
  52. vrchatapi/models/api_config_ios_version.py +216 -0
  53. vrchatapi/models/api_config_min_supported_client_build_number.py +348 -0
  54. vrchatapi/models/api_config_offline_analysis.py +216 -0
  55. vrchatapi/models/api_health.py +248 -0
  56. vrchatapi/models/avatar.py +463 -0
  57. vrchatapi/models/avatar_moderation.py +249 -0
  58. vrchatapi/models/avatar_moderation_created.py +248 -0
  59. vrchatapi/models/avatar_moderation_type.py +36 -0
  60. vrchatapi/models/avatar_performance.py +265 -0
  61. vrchatapi/models/avatar_published_listings_inner.py +271 -0
  62. vrchatapi/models/avatar_style.py +239 -0
  63. vrchatapi/models/avatar_styles.py +231 -0
  64. vrchatapi/models/avatar_unity_package_url_object.py +234 -0
  65. vrchatapi/models/badge.py +308 -0
  66. vrchatapi/models/balance.py +247 -0
  67. vrchatapi/models/ban_group_member_request.py +234 -0
  68. vrchatapi/models/boop_request.py +250 -0
  69. vrchatapi/models/calendar_day_of_week.py +42 -0
  70. vrchatapi/models/calendar_event.py +475 -0
  71. vrchatapi/models/calendar_event_access.py +37 -0
  72. vrchatapi/models/calendar_event_category.py +48 -0
  73. vrchatapi/models/calendar_event_discovery.py +247 -0
  74. vrchatapi/models/calendar_event_discovery_inclusion.py +38 -0
  75. vrchatapi/models/calendar_event_discovery_scope.py +38 -0
  76. vrchatapi/models/calendar_event_frequency.py +39 -0
  77. vrchatapi/models/calendar_event_occurrence_kind.py +38 -0
  78. vrchatapi/models/calendar_event_platform.py +38 -0
  79. vrchatapi/models/calendar_event_recurrence.py +261 -0
  80. vrchatapi/models/calendar_event_recurrence_end.py +246 -0
  81. vrchatapi/models/calendar_event_recurrence_end_type.py +37 -0
  82. vrchatapi/models/calendar_event_user_interest.py +251 -0
  83. vrchatapi/models/change_user_tags_request.py +212 -0
  84. vrchatapi/models/change_world_tags_request.py +212 -0
  85. vrchatapi/models/content_filter.py +40 -0
  86. vrchatapi/models/create_avatar_moderation_request.py +243 -0
  87. vrchatapi/models/create_avatar_request.py +324 -0
  88. vrchatapi/models/create_calendar_event_request.py +385 -0
  89. vrchatapi/models/create_file_request.py +251 -0
  90. vrchatapi/models/create_file_version_request.py +259 -0
  91. vrchatapi/models/create_group_announcement_request.py +253 -0
  92. vrchatapi/models/create_group_gallery_request.py +297 -0
  93. vrchatapi/models/create_group_invite_request.py +242 -0
  94. vrchatapi/models/create_group_post_request.py +267 -0
  95. vrchatapi/models/create_group_request.py +295 -0
  96. vrchatapi/models/create_group_role_request.py +255 -0
  97. vrchatapi/models/create_instance_request.py +384 -0
  98. vrchatapi/models/create_jam_submission_request.py +239 -0
  99. vrchatapi/models/create_listing_request.py +285 -0
  100. vrchatapi/models/create_product_request.py +270 -0
  101. vrchatapi/models/create_prop_request.py +308 -0
  102. vrchatapi/models/create_world_request.py +322 -0
  103. vrchatapi/models/current_user.py +909 -0
  104. vrchatapi/models/current_user_platform_history_inner.py +245 -0
  105. vrchatapi/models/current_user_presence.py +379 -0
  106. vrchatapi/models/decline_group_invite_request.py +211 -0
  107. vrchatapi/models/developer_type.py +39 -0
  108. vrchatapi/models/disable2_fa_result.py +211 -0
  109. vrchatapi/models/discord_details.py +216 -0
  110. vrchatapi/models/dynamic_content_row.py +276 -0
  111. vrchatapi/models/earnings_metrics.py +248 -0
  112. vrchatapi/models/earnings_metrics_totals.py +267 -0
  113. vrchatapi/models/economy_account.py +360 -0
  114. vrchatapi/models/economy_balances.py +221 -0
  115. vrchatapi/models/economy_payout.py +385 -0
  116. vrchatapi/models/economy_payout_eligibility.py +263 -0
  117. vrchatapi/models/economy_payout_list.py +219 -0
  118. vrchatapi/models/economy_payout_status.py +295 -0
  119. vrchatapi/models/equip_inventory_item_request.py +235 -0
  120. vrchatapi/models/error.py +215 -0
  121. vrchatapi/models/favorite.py +251 -0
  122. vrchatapi/models/favorite_group.py +278 -0
  123. vrchatapi/models/favorite_group_limits.py +249 -0
  124. vrchatapi/models/favorite_group_visibility.py +38 -0
  125. vrchatapi/models/favorite_limits.py +265 -0
  126. vrchatapi/models/favorite_type.py +39 -0
  127. vrchatapi/models/favorited_world.py +441 -0
  128. vrchatapi/models/feedback.py +331 -0
  129. vrchatapi/models/file.py +325 -0
  130. vrchatapi/models/file_analysis.py +281 -0
  131. vrchatapi/models/file_analysis_avatar_stats.py +575 -0
  132. vrchatapi/models/file_data.py +279 -0
  133. vrchatapi/models/file_status.py +39 -0
  134. vrchatapi/models/file_upload_url.py +212 -0
  135. vrchatapi/models/file_version.py +254 -0
  136. vrchatapi/models/file_version_upload_status.py +269 -0
  137. vrchatapi/models/finish_file_data_upload_request.py +248 -0
  138. vrchatapi/models/follow_calendar_event_request.py +234 -0
  139. vrchatapi/models/friend_status.py +250 -0
  140. vrchatapi/models/get_group_posts200_response.py +219 -0
  141. vrchatapi/models/get_user_group_instances200_response.py +248 -0
  142. vrchatapi/models/group.py +514 -0
  143. vrchatapi/models/group_access_type.py +38 -0
  144. vrchatapi/models/group_announcement.py +315 -0
  145. vrchatapi/models/group_audit_log_entry.py +287 -0
  146. vrchatapi/models/group_gallery.py +319 -0
  147. vrchatapi/models/group_gallery_file_order.py +211 -0
  148. vrchatapi/models/group_gallery_file_order_request.py +239 -0
  149. vrchatapi/models/group_gallery_image.py +301 -0
  150. vrchatapi/models/group_instance.py +257 -0
  151. vrchatapi/models/group_join_request_action.py +37 -0
  152. vrchatapi/models/group_join_state.py +39 -0
  153. vrchatapi/models/group_member.py +415 -0
  154. vrchatapi/models/group_member_limited_user.py +290 -0
  155. vrchatapi/models/group_member_status.py +41 -0
  156. vrchatapi/models/group_my_member.py +399 -0
  157. vrchatapi/models/group_permission.py +260 -0
  158. vrchatapi/models/group_permissions.py +63 -0
  159. vrchatapi/models/group_post.py +317 -0
  160. vrchatapi/models/group_post_visibility.py +37 -0
  161. vrchatapi/models/group_privacy.py +37 -0
  162. vrchatapi/models/group_role.py +309 -0
  163. vrchatapi/models/group_role_template.py +39 -0
  164. vrchatapi/models/group_role_template_values.py +254 -0
  165. vrchatapi/models/group_role_template_values_roles.py +253 -0
  166. vrchatapi/models/group_search_sort.py +37 -0
  167. vrchatapi/models/group_transferable.py +215 -0
  168. vrchatapi/models/group_transferable_requirements.py +266 -0
  169. vrchatapi/models/group_user_visibility.py +38 -0
  170. vrchatapi/models/image_animation_style.py +62 -0
  171. vrchatapi/models/image_loop_style.py +37 -0
  172. vrchatapi/models/image_mask.py +41 -0
  173. vrchatapi/models/image_purpose.py +46 -0
  174. vrchatapi/models/info_push.py +306 -0
  175. vrchatapi/models/info_push_data.py +288 -0
  176. vrchatapi/models/info_push_data_article.py +215 -0
  177. vrchatapi/models/info_push_data_article_content.py +251 -0
  178. vrchatapi/models/info_push_data_clickable.py +224 -0
  179. vrchatapi/models/instance.py +597 -0
  180. vrchatapi/models/instance_content_settings.py +236 -0
  181. vrchatapi/models/instance_platforms.py +222 -0
  182. vrchatapi/models/instance_region.py +40 -0
  183. vrchatapi/models/instance_short_name_response.py +248 -0
  184. vrchatapi/models/instance_type.py +40 -0
  185. vrchatapi/models/inventory.py +247 -0
  186. vrchatapi/models/inventory_consumption_results.py +255 -0
  187. vrchatapi/models/inventory_default_attributes_value.py +243 -0
  188. vrchatapi/models/inventory_default_attributes_value_validator.py +211 -0
  189. vrchatapi/models/inventory_drop.py +331 -0
  190. vrchatapi/models/inventory_equip_slot.py +39 -0
  191. vrchatapi/models/inventory_flag.py +43 -0
  192. vrchatapi/models/inventory_item.py +420 -0
  193. vrchatapi/models/inventory_item_type.py +42 -0
  194. vrchatapi/models/inventory_metadata.py +287 -0
  195. vrchatapi/models/inventory_notification_details.py +244 -0
  196. vrchatapi/models/inventory_spawn.py +216 -0
  197. vrchatapi/models/inventory_template.py +351 -0
  198. vrchatapi/models/inventory_user_attributes.py +250 -0
  199. vrchatapi/models/invite_message.py +276 -0
  200. vrchatapi/models/invite_message_type.py +39 -0
  201. vrchatapi/models/invite_request.py +243 -0
  202. vrchatapi/models/invite_response.py +235 -0
  203. vrchatapi/models/jam.py +302 -0
  204. vrchatapi/models/jam_state_change_dates.py +276 -0
  205. vrchatapi/models/jam_submission.py +275 -0
  206. vrchatapi/models/join_group_request.py +234 -0
  207. vrchatapi/models/license.py +261 -0
  208. vrchatapi/models/license_action.py +37 -0
  209. vrchatapi/models/license_group.py +235 -0
  210. vrchatapi/models/license_type.py +39 -0
  211. vrchatapi/models/limited_group.py +377 -0
  212. vrchatapi/models/limited_unity_package.py +251 -0
  213. vrchatapi/models/limited_user_friend.py +399 -0
  214. vrchatapi/models/limited_user_groups.py +386 -0
  215. vrchatapi/models/limited_user_instance.py +430 -0
  216. vrchatapi/models/limited_user_search.py +395 -0
  217. vrchatapi/models/limited_world.py +410 -0
  218. vrchatapi/models/mime_type.py +50 -0
  219. vrchatapi/models/model_print.py +299 -0
  220. vrchatapi/models/moderate_user_request.py +217 -0
  221. vrchatapi/models/moderation_report.py +296 -0
  222. vrchatapi/models/mutual_friend.py +302 -0
  223. vrchatapi/models/mutuals.py +217 -0
  224. vrchatapi/models/notification.py +283 -0
  225. vrchatapi/models/notification_detail_invite.py +250 -0
  226. vrchatapi/models/notification_detail_invite_response.py +242 -0
  227. vrchatapi/models/notification_detail_request_invite.py +239 -0
  228. vrchatapi/models/notification_detail_request_invite_response.py +242 -0
  229. vrchatapi/models/notification_detail_vote_to_kick.py +242 -0
  230. vrchatapi/models/notification_type.py +43 -0
  231. vrchatapi/models/notification_v2.py +466 -0
  232. vrchatapi/models/notification_v2_details_boop.py +255 -0
  233. vrchatapi/models/notification_v2_response.py +259 -0
  234. vrchatapi/models/notification_v2_type.py +58 -0
  235. vrchatapi/models/ok_status.py +211 -0
  236. vrchatapi/models/ok_status2.py +234 -0
  237. vrchatapi/models/order_option.py +37 -0
  238. vrchatapi/models/order_option_short.py +37 -0
  239. vrchatapi/models/paginated_calendar_event_list.py +255 -0
  240. vrchatapi/models/paginated_group_audit_log_entry_list.py +255 -0
  241. vrchatapi/models/paginated_moderation_report_list.py +255 -0
  242. vrchatapi/models/past_display_name.py +241 -0
  243. vrchatapi/models/pending2_fa_result.py +239 -0
  244. vrchatapi/models/performance_limiter_info.py +234 -0
  245. vrchatapi/models/performance_ratings.py +41 -0
  246. vrchatapi/models/permission.py +280 -0
  247. vrchatapi/models/permission_data.py +258 -0
  248. vrchatapi/models/platform_build_info.py +242 -0
  249. vrchatapi/models/player_moderation.py +276 -0
  250. vrchatapi/models/player_moderation_type.py +44 -0
  251. vrchatapi/models/print_files.py +239 -0
  252. vrchatapi/models/private_profile.py +267 -0
  253. vrchatapi/models/private_profile_activity.py +292 -0
  254. vrchatapi/models/product.py +389 -0
  255. vrchatapi/models/product_listing.py +538 -0
  256. vrchatapi/models/product_listing_type.py +39 -0
  257. vrchatapi/models/product_listing_variant.py +272 -0
  258. vrchatapi/models/product_purchase.py +571 -0
  259. vrchatapi/models/product_purchase_history.py +256 -0
  260. vrchatapi/models/product_purchase_location_type.py +46 -0
  261. vrchatapi/models/product_purchase_product.py +269 -0
  262. vrchatapi/models/product_purchase_purchase_context.py +250 -0
  263. vrchatapi/models/product_purchase_record.py +312 -0
  264. vrchatapi/models/product_type.py +39 -0
  265. vrchatapi/models/profile_represented_group.py +262 -0
  266. vrchatapi/models/prop.py +358 -0
  267. vrchatapi/models/prop_publish_status.py +234 -0
  268. vrchatapi/models/prop_unity_package.py +269 -0
  269. vrchatapi/models/public_profile.py +398 -0
  270. vrchatapi/models/purchase_context_data.py +251 -0
  271. vrchatapi/models/purchase_product_listing_request.py +281 -0
  272. vrchatapi/models/region.py +42 -0
  273. vrchatapi/models/register_user_account_request.py +278 -0
  274. vrchatapi/models/release_status.py +39 -0
  275. vrchatapi/models/report_category.py +226 -0
  276. vrchatapi/models/report_reason.py +216 -0
  277. vrchatapi/models/represented_group.py +348 -0
  278. vrchatapi/models/request_invite_request.py +235 -0
  279. vrchatapi/models/respond_group_join_request.py +217 -0
  280. vrchatapi/models/respond_notification_v2_request.py +242 -0
  281. vrchatapi/models/response.py +217 -0
  282. vrchatapi/models/reward_badge.py +308 -0
  283. vrchatapi/models/reward_redemption.py +220 -0
  284. vrchatapi/models/reward_redemption_data.py +224 -0
  285. vrchatapi/models/reward_redemption_request.py +211 -0
  286. vrchatapi/models/reward_redemption_result.py +250 -0
  287. vrchatapi/models/search_group_members200_response.py +224 -0
  288. vrchatapi/models/seller_eligibility.py +211 -0
  289. vrchatapi/models/sent_notification.py +278 -0
  290. vrchatapi/models/service_queue_stats.py +234 -0
  291. vrchatapi/models/service_status.py +281 -0
  292. vrchatapi/models/share_inventory_item_direct_request.py +239 -0
  293. vrchatapi/models/sort_option.py +53 -0
  294. vrchatapi/models/sort_option_product_purchase.py +36 -0
  295. vrchatapi/models/store.py +372 -0
  296. vrchatapi/models/store_context.py +249 -0
  297. vrchatapi/models/store_shelf.py +304 -0
  298. vrchatapi/models/store_type.py +38 -0
  299. vrchatapi/models/store_view.py +40 -0
  300. vrchatapi/models/submit_moderation_report_request.py +263 -0
  301. vrchatapi/models/submit_moderation_report_request_details.py +283 -0
  302. vrchatapi/models/subscription.py +301 -0
  303. vrchatapi/models/subscription_period.py +40 -0
  304. vrchatapi/models/success.py +215 -0
  305. vrchatapi/models/success_flag.py +211 -0
  306. vrchatapi/models/tilia_kyc.py +246 -0
  307. vrchatapi/models/tilia_status.py +259 -0
  308. vrchatapi/models/tilia_tos.py +211 -0
  309. vrchatapi/models/token_bundle.py +286 -0
  310. vrchatapi/models/transaction.py +322 -0
  311. vrchatapi/models/transaction_agreement.py +353 -0
  312. vrchatapi/models/transaction_status.py +39 -0
  313. vrchatapi/models/transaction_steam_info.py +271 -0
  314. vrchatapi/models/transaction_steam_wallet_info.py +227 -0
  315. vrchatapi/models/transfer_group_request.py +234 -0
  316. vrchatapi/models/tutorial_status.py +255 -0
  317. vrchatapi/models/two_factor_auth_code.py +211 -0
  318. vrchatapi/models/two_factor_email_code.py +211 -0
  319. vrchatapi/models/two_factor_recovery_codes.py +247 -0
  320. vrchatapi/models/two_factor_recovery_codes_otp_inner.py +216 -0
  321. vrchatapi/models/unity_package.py +360 -0
  322. vrchatapi/models/update_asset_review_notes_request.py +234 -0
  323. vrchatapi/models/update_avatar_request.py +293 -0
  324. vrchatapi/models/update_calendar_event_request.py +365 -0
  325. vrchatapi/models/update_favorite_group_request.py +246 -0
  326. vrchatapi/models/update_group_gallery_request.py +297 -0
  327. vrchatapi/models/update_group_member_request.py +256 -0
  328. vrchatapi/models/update_group_representation_request.py +234 -0
  329. vrchatapi/models/update_group_request.py +300 -0
  330. vrchatapi/models/update_group_role_request.py +255 -0
  331. vrchatapi/models/update_inventory_item_request.py +254 -0
  332. vrchatapi/models/update_invite_message_request.py +211 -0
  333. vrchatapi/models/update_listing_request.py +211 -0
  334. vrchatapi/models/update_product_request.py +261 -0
  335. vrchatapi/models/update_prop_request.py +303 -0
  336. vrchatapi/models/update_tilia_tos_request.py +211 -0
  337. vrchatapi/models/update_user_badge_request.py +216 -0
  338. vrchatapi/models/update_user_note_request.py +239 -0
  339. vrchatapi/models/update_user_request.py +358 -0
  340. vrchatapi/models/update_world_request.py +317 -0
  341. vrchatapi/models/user.py +549 -0
  342. vrchatapi/models/user_credits_eligible.py +216 -0
  343. vrchatapi/models/user_exists.py +242 -0
  344. vrchatapi/models/user_note.py +273 -0
  345. vrchatapi/models/user_note_target_user.py +277 -0
  346. vrchatapi/models/user_state.py +38 -0
  347. vrchatapi/models/user_status.py +40 -0
  348. vrchatapi/models/user_subscription.py +330 -0
  349. vrchatapi/models/user_subscription_eligible.py +274 -0
  350. vrchatapi/models/verify2_fa_email_code_result.py +211 -0
  351. vrchatapi/models/verify2_fa_result.py +216 -0
  352. vrchatapi/models/verify_auth_token_result.py +217 -0
  353. vrchatapi/models/world.py +459 -0
  354. vrchatapi/models/world_metadata.py +216 -0
  355. vrchatapi/models/world_publish_status.py +234 -0
  356. vrchatapi/py.typed +0 -0
  357. vrchatapi/rest.py +303 -0
  358. vrchatapi_async-1.20.8.dev1.dist-info/METADATA +137 -0
  359. vrchatapi_async-1.20.8.dev1.dist-info/RECORD +362 -0
  360. vrchatapi_async-1.20.8.dev1.dist-info/WHEEL +5 -0
  361. vrchatapi_async-1.20.8.dev1.dist-info/licenses/LICENSE +21 -0
  362. vrchatapi_async-1.20.8.dev1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,4090 @@
1
+ """
2
+ VRChat API Documentation
3
+
4
+
5
+ The version of the OpenAPI document: 1.20.8
6
+ Contact: vrchatapi.lpv0t@aries.fyi
7
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
8
+
9
+ Do not edit the class manually.
10
+ """ # noqa: E501
11
+
12
+
13
+ import warnings
14
+ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
15
+ from typing import Any, Dict, List, Optional, Tuple, Union
16
+ from typing_extensions import Annotated
17
+
18
+ from datetime import datetime
19
+ from pydantic import Field, StrictBool, StrictBytes, StrictInt, StrictStr
20
+ from typing import Optional, Tuple, Union
21
+ from typing_extensions import Annotated
22
+ from vrchatapi.models.calendar_event import CalendarEvent
23
+ from vrchatapi.models.calendar_event_discovery import CalendarEventDiscovery
24
+ from vrchatapi.models.calendar_event_discovery_inclusion import CalendarEventDiscoveryInclusion
25
+ from vrchatapi.models.calendar_event_discovery_scope import CalendarEventDiscoveryScope
26
+ from vrchatapi.models.create_calendar_event_request import CreateCalendarEventRequest
27
+ from vrchatapi.models.follow_calendar_event_request import FollowCalendarEventRequest
28
+ from vrchatapi.models.paginated_calendar_event_list import PaginatedCalendarEventList
29
+ from vrchatapi.models.success import Success
30
+ from vrchatapi.models.update_calendar_event_request import UpdateCalendarEventRequest
31
+
32
+ from vrchatapi.api_client import ApiClient, RequestSerialized
33
+ from vrchatapi.api_response import ApiResponse
34
+ from vrchatapi.rest import RESTResponseType
35
+
36
+
37
+ class CalendarApi:
38
+ """NOTE: This class is auto generated by OpenAPI Generator
39
+ Ref: https://openapi-generator.tech
40
+
41
+ Do not edit the class manually.
42
+ """
43
+
44
+ def __init__(self, api_client=None) -> None:
45
+ if api_client is None:
46
+ api_client = ApiClient.get_default()
47
+ self.api_client = api_client
48
+
49
+
50
+ @validate_call
51
+ async def create_group_calendar_event(
52
+ self,
53
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
54
+ create_calendar_event_request: CreateCalendarEventRequest,
55
+ _request_timeout: Union[
56
+ None,
57
+ Annotated[StrictFloat, Field(gt=0)],
58
+ Tuple[
59
+ Annotated[StrictFloat, Field(gt=0)],
60
+ Annotated[StrictFloat, Field(gt=0)]
61
+ ]
62
+ ] = None,
63
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
64
+ _content_type: Optional[StrictStr] = None,
65
+ _headers: Optional[Dict[StrictStr, Any]] = None,
66
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
67
+ ) -> CalendarEvent:
68
+ """Create a calendar event
69
+
70
+ Creates an event for a group on the calendar
71
+
72
+ :param group_id: Must be a valid group ID. (required)
73
+ :type group_id: str
74
+ :param create_calendar_event_request: (required)
75
+ :type create_calendar_event_request: CreateCalendarEventRequest
76
+ :param _request_timeout: timeout setting for this request. If one
77
+ number provided, it will be total request
78
+ timeout. It can also be a pair (tuple) of
79
+ (connection, read) timeouts.
80
+ :type _request_timeout: int, tuple(int, int), optional
81
+ :param _request_auth: set to override the auth_settings for an a single
82
+ request; this effectively ignores the
83
+ authentication in the spec for a single request.
84
+ :type _request_auth: dict, optional
85
+ :param _content_type: force content-type for the request.
86
+ :type _content_type: str, Optional
87
+ :param _headers: set to override the headers for a single
88
+ request; this effectively ignores the headers
89
+ in the spec for a single request.
90
+ :type _headers: dict, optional
91
+ :param _host_index: set to override the host_index for a single
92
+ request; this effectively ignores the host_index
93
+ in the spec for a single request.
94
+ :type _host_index: int, optional
95
+ :return: Returns the result object.
96
+ """ # noqa: E501
97
+
98
+ _param = self._create_group_calendar_event_serialize(
99
+ group_id=group_id,
100
+ create_calendar_event_request=create_calendar_event_request,
101
+ _request_auth=_request_auth,
102
+ _content_type=_content_type,
103
+ _headers=_headers,
104
+ _host_index=_host_index
105
+ )
106
+
107
+ _response_types_map: Dict[str, Optional[str]] = {
108
+ '200': "CalendarEvent",
109
+ '400': "Error",
110
+ '401': "Error",
111
+ '403': "Error",
112
+ }
113
+ response_data = await self.api_client.call_api(
114
+ *_param,
115
+ _request_timeout=_request_timeout
116
+ )
117
+ await response_data.read()
118
+ return self.api_client.response_deserialize(
119
+ response_data=response_data,
120
+ response_types_map=_response_types_map,
121
+ ).data
122
+
123
+
124
+ @validate_call
125
+ async def create_group_calendar_event_with_http_info(
126
+ self,
127
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
128
+ create_calendar_event_request: CreateCalendarEventRequest,
129
+ _request_timeout: Union[
130
+ None,
131
+ Annotated[StrictFloat, Field(gt=0)],
132
+ Tuple[
133
+ Annotated[StrictFloat, Field(gt=0)],
134
+ Annotated[StrictFloat, Field(gt=0)]
135
+ ]
136
+ ] = None,
137
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
138
+ _content_type: Optional[StrictStr] = None,
139
+ _headers: Optional[Dict[StrictStr, Any]] = None,
140
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
141
+ ) -> ApiResponse[CalendarEvent]:
142
+ """Create a calendar event
143
+
144
+ Creates an event for a group on the calendar
145
+
146
+ :param group_id: Must be a valid group ID. (required)
147
+ :type group_id: str
148
+ :param create_calendar_event_request: (required)
149
+ :type create_calendar_event_request: CreateCalendarEventRequest
150
+ :param _request_timeout: timeout setting for this request. If one
151
+ number provided, it will be total request
152
+ timeout. It can also be a pair (tuple) of
153
+ (connection, read) timeouts.
154
+ :type _request_timeout: int, tuple(int, int), optional
155
+ :param _request_auth: set to override the auth_settings for an a single
156
+ request; this effectively ignores the
157
+ authentication in the spec for a single request.
158
+ :type _request_auth: dict, optional
159
+ :param _content_type: force content-type for the request.
160
+ :type _content_type: str, Optional
161
+ :param _headers: set to override the headers for a single
162
+ request; this effectively ignores the headers
163
+ in the spec for a single request.
164
+ :type _headers: dict, optional
165
+ :param _host_index: set to override the host_index for a single
166
+ request; this effectively ignores the host_index
167
+ in the spec for a single request.
168
+ :type _host_index: int, optional
169
+ :return: Returns the result object.
170
+ """ # noqa: E501
171
+
172
+ _param = self._create_group_calendar_event_serialize(
173
+ group_id=group_id,
174
+ create_calendar_event_request=create_calendar_event_request,
175
+ _request_auth=_request_auth,
176
+ _content_type=_content_type,
177
+ _headers=_headers,
178
+ _host_index=_host_index
179
+ )
180
+
181
+ _response_types_map: Dict[str, Optional[str]] = {
182
+ '200': "CalendarEvent",
183
+ '400': "Error",
184
+ '401': "Error",
185
+ '403': "Error",
186
+ }
187
+ response_data = await self.api_client.call_api(
188
+ *_param,
189
+ _request_timeout=_request_timeout
190
+ )
191
+ await response_data.read()
192
+ return self.api_client.response_deserialize(
193
+ response_data=response_data,
194
+ response_types_map=_response_types_map,
195
+ )
196
+
197
+
198
+ @validate_call
199
+ async def create_group_calendar_event_without_preload_content(
200
+ self,
201
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
202
+ create_calendar_event_request: CreateCalendarEventRequest,
203
+ _request_timeout: Union[
204
+ None,
205
+ Annotated[StrictFloat, Field(gt=0)],
206
+ Tuple[
207
+ Annotated[StrictFloat, Field(gt=0)],
208
+ Annotated[StrictFloat, Field(gt=0)]
209
+ ]
210
+ ] = None,
211
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
212
+ _content_type: Optional[StrictStr] = None,
213
+ _headers: Optional[Dict[StrictStr, Any]] = None,
214
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
215
+ ) -> RESTResponseType:
216
+ """Create a calendar event
217
+
218
+ Creates an event for a group on the calendar
219
+
220
+ :param group_id: Must be a valid group ID. (required)
221
+ :type group_id: str
222
+ :param create_calendar_event_request: (required)
223
+ :type create_calendar_event_request: CreateCalendarEventRequest
224
+ :param _request_timeout: timeout setting for this request. If one
225
+ number provided, it will be total request
226
+ timeout. It can also be a pair (tuple) of
227
+ (connection, read) timeouts.
228
+ :type _request_timeout: int, tuple(int, int), optional
229
+ :param _request_auth: set to override the auth_settings for an a single
230
+ request; this effectively ignores the
231
+ authentication in the spec for a single request.
232
+ :type _request_auth: dict, optional
233
+ :param _content_type: force content-type for the request.
234
+ :type _content_type: str, Optional
235
+ :param _headers: set to override the headers for a single
236
+ request; this effectively ignores the headers
237
+ in the spec for a single request.
238
+ :type _headers: dict, optional
239
+ :param _host_index: set to override the host_index for a single
240
+ request; this effectively ignores the host_index
241
+ in the spec for a single request.
242
+ :type _host_index: int, optional
243
+ :return: Returns the result object.
244
+ """ # noqa: E501
245
+
246
+ _param = self._create_group_calendar_event_serialize(
247
+ group_id=group_id,
248
+ create_calendar_event_request=create_calendar_event_request,
249
+ _request_auth=_request_auth,
250
+ _content_type=_content_type,
251
+ _headers=_headers,
252
+ _host_index=_host_index
253
+ )
254
+
255
+ _response_types_map: Dict[str, Optional[str]] = {
256
+ '200': "CalendarEvent",
257
+ '400': "Error",
258
+ '401': "Error",
259
+ '403': "Error",
260
+ }
261
+ response_data = await self.api_client.call_api(
262
+ *_param,
263
+ _request_timeout=_request_timeout
264
+ )
265
+ return response_data.response
266
+
267
+
268
+ def _create_group_calendar_event_serialize(
269
+ self,
270
+ group_id,
271
+ create_calendar_event_request,
272
+ _request_auth,
273
+ _content_type,
274
+ _headers,
275
+ _host_index,
276
+ ) -> RequestSerialized:
277
+
278
+ _host = None
279
+
280
+ _collection_formats: Dict[str, str] = {
281
+ }
282
+
283
+ _path_params: Dict[str, str] = {}
284
+ _query_params: List[Tuple[str, str]] = []
285
+ _header_params: Dict[str, Optional[str]] = _headers or {}
286
+ _form_params: List[Tuple[str, str]] = []
287
+ _files: Dict[
288
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
289
+ ] = {}
290
+ _body_params: Optional[bytes] = None
291
+
292
+ # process the path parameters
293
+ if group_id is not None:
294
+ _path_params['groupId'] = group_id
295
+ # process the query parameters
296
+ # process the header parameters
297
+ # process the form parameters
298
+ # process the body parameter
299
+ if create_calendar_event_request is not None:
300
+ _body_params = create_calendar_event_request
301
+
302
+
303
+ # set the HTTP header `Accept`
304
+ if 'Accept' not in _header_params:
305
+ _header_params['Accept'] = self.api_client.select_header_accept(
306
+ [
307
+ 'application/json'
308
+ ]
309
+ )
310
+
311
+ # set the HTTP header `Content-Type`
312
+ if _content_type:
313
+ _header_params['Content-Type'] = _content_type
314
+ else:
315
+ _default_content_type = (
316
+ self.api_client.select_header_content_type(
317
+ [
318
+ 'application/json'
319
+ ]
320
+ )
321
+ )
322
+ if _default_content_type is not None:
323
+ _header_params['Content-Type'] = _default_content_type
324
+
325
+ # authentication setting
326
+ _auth_settings: List[str] = [
327
+ 'authCookie'
328
+ ]
329
+
330
+ return self.api_client.param_serialize(
331
+ method='POST',
332
+ resource_path='/calendar/{groupId}/event',
333
+ path_params=_path_params,
334
+ query_params=_query_params,
335
+ header_params=_header_params,
336
+ body=_body_params,
337
+ post_params=_form_params,
338
+ files=_files,
339
+ auth_settings=_auth_settings,
340
+ collection_formats=_collection_formats,
341
+ _host=_host,
342
+ _request_auth=_request_auth
343
+ )
344
+
345
+
346
+
347
+
348
+ @validate_call
349
+ async def delete_group_calendar_event(
350
+ self,
351
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
352
+ calendar_id: Annotated[StrictStr, Field(description="Must be a valid calendar ID.")],
353
+ _request_timeout: Union[
354
+ None,
355
+ Annotated[StrictFloat, Field(gt=0)],
356
+ Tuple[
357
+ Annotated[StrictFloat, Field(gt=0)],
358
+ Annotated[StrictFloat, Field(gt=0)]
359
+ ]
360
+ ] = None,
361
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
362
+ _content_type: Optional[StrictStr] = None,
363
+ _headers: Optional[Dict[StrictStr, Any]] = None,
364
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
365
+ ) -> Success:
366
+ """Delete a calendar event
367
+
368
+ Delete a group calendar event
369
+
370
+ :param group_id: Must be a valid group ID. (required)
371
+ :type group_id: str
372
+ :param calendar_id: Must be a valid calendar ID. (required)
373
+ :type calendar_id: str
374
+ :param _request_timeout: timeout setting for this request. If one
375
+ number provided, it will be total request
376
+ timeout. It can also be a pair (tuple) of
377
+ (connection, read) timeouts.
378
+ :type _request_timeout: int, tuple(int, int), optional
379
+ :param _request_auth: set to override the auth_settings for an a single
380
+ request; this effectively ignores the
381
+ authentication in the spec for a single request.
382
+ :type _request_auth: dict, optional
383
+ :param _content_type: force content-type for the request.
384
+ :type _content_type: str, Optional
385
+ :param _headers: set to override the headers for a single
386
+ request; this effectively ignores the headers
387
+ in the spec for a single request.
388
+ :type _headers: dict, optional
389
+ :param _host_index: set to override the host_index for a single
390
+ request; this effectively ignores the host_index
391
+ in the spec for a single request.
392
+ :type _host_index: int, optional
393
+ :return: Returns the result object.
394
+ """ # noqa: E501
395
+
396
+ _param = self._delete_group_calendar_event_serialize(
397
+ group_id=group_id,
398
+ calendar_id=calendar_id,
399
+ _request_auth=_request_auth,
400
+ _content_type=_content_type,
401
+ _headers=_headers,
402
+ _host_index=_host_index
403
+ )
404
+
405
+ _response_types_map: Dict[str, Optional[str]] = {
406
+ '200': "Success",
407
+ '401': "Error",
408
+ '404': "Error",
409
+ }
410
+ response_data = await self.api_client.call_api(
411
+ *_param,
412
+ _request_timeout=_request_timeout
413
+ )
414
+ await response_data.read()
415
+ return self.api_client.response_deserialize(
416
+ response_data=response_data,
417
+ response_types_map=_response_types_map,
418
+ ).data
419
+
420
+
421
+ @validate_call
422
+ async def delete_group_calendar_event_with_http_info(
423
+ self,
424
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
425
+ calendar_id: Annotated[StrictStr, Field(description="Must be a valid calendar ID.")],
426
+ _request_timeout: Union[
427
+ None,
428
+ Annotated[StrictFloat, Field(gt=0)],
429
+ Tuple[
430
+ Annotated[StrictFloat, Field(gt=0)],
431
+ Annotated[StrictFloat, Field(gt=0)]
432
+ ]
433
+ ] = None,
434
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
435
+ _content_type: Optional[StrictStr] = None,
436
+ _headers: Optional[Dict[StrictStr, Any]] = None,
437
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
438
+ ) -> ApiResponse[Success]:
439
+ """Delete a calendar event
440
+
441
+ Delete a group calendar event
442
+
443
+ :param group_id: Must be a valid group ID. (required)
444
+ :type group_id: str
445
+ :param calendar_id: Must be a valid calendar ID. (required)
446
+ :type calendar_id: str
447
+ :param _request_timeout: timeout setting for this request. If one
448
+ number provided, it will be total request
449
+ timeout. It can also be a pair (tuple) of
450
+ (connection, read) timeouts.
451
+ :type _request_timeout: int, tuple(int, int), optional
452
+ :param _request_auth: set to override the auth_settings for an a single
453
+ request; this effectively ignores the
454
+ authentication in the spec for a single request.
455
+ :type _request_auth: dict, optional
456
+ :param _content_type: force content-type for the request.
457
+ :type _content_type: str, Optional
458
+ :param _headers: set to override the headers for a single
459
+ request; this effectively ignores the headers
460
+ in the spec for a single request.
461
+ :type _headers: dict, optional
462
+ :param _host_index: set to override the host_index for a single
463
+ request; this effectively ignores the host_index
464
+ in the spec for a single request.
465
+ :type _host_index: int, optional
466
+ :return: Returns the result object.
467
+ """ # noqa: E501
468
+
469
+ _param = self._delete_group_calendar_event_serialize(
470
+ group_id=group_id,
471
+ calendar_id=calendar_id,
472
+ _request_auth=_request_auth,
473
+ _content_type=_content_type,
474
+ _headers=_headers,
475
+ _host_index=_host_index
476
+ )
477
+
478
+ _response_types_map: Dict[str, Optional[str]] = {
479
+ '200': "Success",
480
+ '401': "Error",
481
+ '404': "Error",
482
+ }
483
+ response_data = await self.api_client.call_api(
484
+ *_param,
485
+ _request_timeout=_request_timeout
486
+ )
487
+ await response_data.read()
488
+ return self.api_client.response_deserialize(
489
+ response_data=response_data,
490
+ response_types_map=_response_types_map,
491
+ )
492
+
493
+
494
+ @validate_call
495
+ async def delete_group_calendar_event_without_preload_content(
496
+ self,
497
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
498
+ calendar_id: Annotated[StrictStr, Field(description="Must be a valid calendar ID.")],
499
+ _request_timeout: Union[
500
+ None,
501
+ Annotated[StrictFloat, Field(gt=0)],
502
+ Tuple[
503
+ Annotated[StrictFloat, Field(gt=0)],
504
+ Annotated[StrictFloat, Field(gt=0)]
505
+ ]
506
+ ] = None,
507
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
508
+ _content_type: Optional[StrictStr] = None,
509
+ _headers: Optional[Dict[StrictStr, Any]] = None,
510
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
511
+ ) -> RESTResponseType:
512
+ """Delete a calendar event
513
+
514
+ Delete a group calendar event
515
+
516
+ :param group_id: Must be a valid group ID. (required)
517
+ :type group_id: str
518
+ :param calendar_id: Must be a valid calendar ID. (required)
519
+ :type calendar_id: str
520
+ :param _request_timeout: timeout setting for this request. If one
521
+ number provided, it will be total request
522
+ timeout. It can also be a pair (tuple) of
523
+ (connection, read) timeouts.
524
+ :type _request_timeout: int, tuple(int, int), optional
525
+ :param _request_auth: set to override the auth_settings for an a single
526
+ request; this effectively ignores the
527
+ authentication in the spec for a single request.
528
+ :type _request_auth: dict, optional
529
+ :param _content_type: force content-type for the request.
530
+ :type _content_type: str, Optional
531
+ :param _headers: set to override the headers for a single
532
+ request; this effectively ignores the headers
533
+ in the spec for a single request.
534
+ :type _headers: dict, optional
535
+ :param _host_index: set to override the host_index for a single
536
+ request; this effectively ignores the host_index
537
+ in the spec for a single request.
538
+ :type _host_index: int, optional
539
+ :return: Returns the result object.
540
+ """ # noqa: E501
541
+
542
+ _param = self._delete_group_calendar_event_serialize(
543
+ group_id=group_id,
544
+ calendar_id=calendar_id,
545
+ _request_auth=_request_auth,
546
+ _content_type=_content_type,
547
+ _headers=_headers,
548
+ _host_index=_host_index
549
+ )
550
+
551
+ _response_types_map: Dict[str, Optional[str]] = {
552
+ '200': "Success",
553
+ '401': "Error",
554
+ '404': "Error",
555
+ }
556
+ response_data = await self.api_client.call_api(
557
+ *_param,
558
+ _request_timeout=_request_timeout
559
+ )
560
+ return response_data.response
561
+
562
+
563
+ def _delete_group_calendar_event_serialize(
564
+ self,
565
+ group_id,
566
+ calendar_id,
567
+ _request_auth,
568
+ _content_type,
569
+ _headers,
570
+ _host_index,
571
+ ) -> RequestSerialized:
572
+
573
+ _host = None
574
+
575
+ _collection_formats: Dict[str, str] = {
576
+ }
577
+
578
+ _path_params: Dict[str, str] = {}
579
+ _query_params: List[Tuple[str, str]] = []
580
+ _header_params: Dict[str, Optional[str]] = _headers or {}
581
+ _form_params: List[Tuple[str, str]] = []
582
+ _files: Dict[
583
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
584
+ ] = {}
585
+ _body_params: Optional[bytes] = None
586
+
587
+ # process the path parameters
588
+ if group_id is not None:
589
+ _path_params['groupId'] = group_id
590
+ if calendar_id is not None:
591
+ _path_params['calendarId'] = calendar_id
592
+ # process the query parameters
593
+ # process the header parameters
594
+ # process the form parameters
595
+ # process the body parameter
596
+
597
+
598
+ # set the HTTP header `Accept`
599
+ if 'Accept' not in _header_params:
600
+ _header_params['Accept'] = self.api_client.select_header_accept(
601
+ [
602
+ 'application/json'
603
+ ]
604
+ )
605
+
606
+
607
+ # authentication setting
608
+ _auth_settings: List[str] = [
609
+ 'authCookie'
610
+ ]
611
+
612
+ return self.api_client.param_serialize(
613
+ method='DELETE',
614
+ resource_path='/calendar/{groupId}/{calendarId}',
615
+ path_params=_path_params,
616
+ query_params=_query_params,
617
+ header_params=_header_params,
618
+ body=_body_params,
619
+ post_params=_form_params,
620
+ files=_files,
621
+ auth_settings=_auth_settings,
622
+ collection_formats=_collection_formats,
623
+ _host=_host,
624
+ _request_auth=_request_auth
625
+ )
626
+
627
+
628
+
629
+
630
+ @validate_call
631
+ async def discover_calendar_events(
632
+ self,
633
+ scope: Annotated[Optional[CalendarEventDiscoveryScope], Field(description="Scope for calendar event discovery.")] = None,
634
+ categories: Annotated[Optional[StrictStr], Field(description="Filter for calendar event discovery.")] = None,
635
+ tags: Annotated[Optional[StrictStr], Field(description="Filter for calendar event discovery.")] = None,
636
+ featured_results: Annotated[Optional[CalendarEventDiscoveryInclusion], Field(description="Filter for calendar event discovery.")] = None,
637
+ non_featured_results: Annotated[Optional[CalendarEventDiscoveryInclusion], Field(description="Filter for calendar event discovery.")] = None,
638
+ personalized_results: Annotated[Optional[CalendarEventDiscoveryInclusion], Field(description="Filter for calendar event discovery.")] = None,
639
+ minimum_interest_count: Annotated[Optional[StrictInt], Field(description="Filter for calendar event discovery.")] = None,
640
+ minimum_remaining_minutes: Annotated[Optional[StrictInt], Field(description="Filter for calendar event discovery.")] = None,
641
+ upcoming_offset_minutes: Annotated[Optional[StrictInt], Field(description="Filter for calendar event discovery.")] = None,
642
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
643
+ next_cursor: Annotated[Optional[StrictStr], Field(description="Cursor returned from previous calendar discovery queries (see nextCursor property of the schema CalendarEventDiscovery).")] = None,
644
+ _request_timeout: Union[
645
+ None,
646
+ Annotated[StrictFloat, Field(gt=0)],
647
+ Tuple[
648
+ Annotated[StrictFloat, Field(gt=0)],
649
+ Annotated[StrictFloat, Field(gt=0)]
650
+ ]
651
+ ] = None,
652
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
653
+ _content_type: Optional[StrictStr] = None,
654
+ _headers: Optional[Dict[StrictStr, Any]] = None,
655
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
656
+ ) -> CalendarEventDiscovery:
657
+ """Discover calendar events
658
+
659
+ Get a list of calendar events Initially, call without a `nextCursor` parameter For every successive call, use the `nextCursor` property returned in the previous call & the `number` of entries desired for this call The `nextCursor` internally keeps track of the `offset` of the results, the initial request parameters, and accounts for discrepancies that might arise from time elapsed between calls
660
+
661
+ :param scope: Scope for calendar event discovery.
662
+ :type scope: CalendarEventDiscoveryScope
663
+ :param categories: Filter for calendar event discovery.
664
+ :type categories: str
665
+ :param tags: Filter for calendar event discovery.
666
+ :type tags: str
667
+ :param featured_results: Filter for calendar event discovery.
668
+ :type featured_results: CalendarEventDiscoveryInclusion
669
+ :param non_featured_results: Filter for calendar event discovery.
670
+ :type non_featured_results: CalendarEventDiscoveryInclusion
671
+ :param personalized_results: Filter for calendar event discovery.
672
+ :type personalized_results: CalendarEventDiscoveryInclusion
673
+ :param minimum_interest_count: Filter for calendar event discovery.
674
+ :type minimum_interest_count: int
675
+ :param minimum_remaining_minutes: Filter for calendar event discovery.
676
+ :type minimum_remaining_minutes: int
677
+ :param upcoming_offset_minutes: Filter for calendar event discovery.
678
+ :type upcoming_offset_minutes: int
679
+ :param n: The number of objects to return.
680
+ :type n: int
681
+ :param next_cursor: Cursor returned from previous calendar discovery queries (see nextCursor property of the schema CalendarEventDiscovery).
682
+ :type next_cursor: str
683
+ :param _request_timeout: timeout setting for this request. If one
684
+ number provided, it will be total request
685
+ timeout. It can also be a pair (tuple) of
686
+ (connection, read) timeouts.
687
+ :type _request_timeout: int, tuple(int, int), optional
688
+ :param _request_auth: set to override the auth_settings for an a single
689
+ request; this effectively ignores the
690
+ authentication in the spec for a single request.
691
+ :type _request_auth: dict, optional
692
+ :param _content_type: force content-type for the request.
693
+ :type _content_type: str, Optional
694
+ :param _headers: set to override the headers for a single
695
+ request; this effectively ignores the headers
696
+ in the spec for a single request.
697
+ :type _headers: dict, optional
698
+ :param _host_index: set to override the host_index for a single
699
+ request; this effectively ignores the host_index
700
+ in the spec for a single request.
701
+ :type _host_index: int, optional
702
+ :return: Returns the result object.
703
+ """ # noqa: E501
704
+
705
+ _param = self._discover_calendar_events_serialize(
706
+ scope=scope,
707
+ categories=categories,
708
+ tags=tags,
709
+ featured_results=featured_results,
710
+ non_featured_results=non_featured_results,
711
+ personalized_results=personalized_results,
712
+ minimum_interest_count=minimum_interest_count,
713
+ minimum_remaining_minutes=minimum_remaining_minutes,
714
+ upcoming_offset_minutes=upcoming_offset_minutes,
715
+ n=n,
716
+ next_cursor=next_cursor,
717
+ _request_auth=_request_auth,
718
+ _content_type=_content_type,
719
+ _headers=_headers,
720
+ _host_index=_host_index
721
+ )
722
+
723
+ _response_types_map: Dict[str, Optional[str]] = {
724
+ '200': "CalendarEventDiscovery",
725
+ '401': "Error",
726
+ }
727
+ response_data = await self.api_client.call_api(
728
+ *_param,
729
+ _request_timeout=_request_timeout
730
+ )
731
+ await response_data.read()
732
+ return self.api_client.response_deserialize(
733
+ response_data=response_data,
734
+ response_types_map=_response_types_map,
735
+ ).data
736
+
737
+
738
+ @validate_call
739
+ async def discover_calendar_events_with_http_info(
740
+ self,
741
+ scope: Annotated[Optional[CalendarEventDiscoveryScope], Field(description="Scope for calendar event discovery.")] = None,
742
+ categories: Annotated[Optional[StrictStr], Field(description="Filter for calendar event discovery.")] = None,
743
+ tags: Annotated[Optional[StrictStr], Field(description="Filter for calendar event discovery.")] = None,
744
+ featured_results: Annotated[Optional[CalendarEventDiscoveryInclusion], Field(description="Filter for calendar event discovery.")] = None,
745
+ non_featured_results: Annotated[Optional[CalendarEventDiscoveryInclusion], Field(description="Filter for calendar event discovery.")] = None,
746
+ personalized_results: Annotated[Optional[CalendarEventDiscoveryInclusion], Field(description="Filter for calendar event discovery.")] = None,
747
+ minimum_interest_count: Annotated[Optional[StrictInt], Field(description="Filter for calendar event discovery.")] = None,
748
+ minimum_remaining_minutes: Annotated[Optional[StrictInt], Field(description="Filter for calendar event discovery.")] = None,
749
+ upcoming_offset_minutes: Annotated[Optional[StrictInt], Field(description="Filter for calendar event discovery.")] = None,
750
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
751
+ next_cursor: Annotated[Optional[StrictStr], Field(description="Cursor returned from previous calendar discovery queries (see nextCursor property of the schema CalendarEventDiscovery).")] = None,
752
+ _request_timeout: Union[
753
+ None,
754
+ Annotated[StrictFloat, Field(gt=0)],
755
+ Tuple[
756
+ Annotated[StrictFloat, Field(gt=0)],
757
+ Annotated[StrictFloat, Field(gt=0)]
758
+ ]
759
+ ] = None,
760
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
761
+ _content_type: Optional[StrictStr] = None,
762
+ _headers: Optional[Dict[StrictStr, Any]] = None,
763
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
764
+ ) -> ApiResponse[CalendarEventDiscovery]:
765
+ """Discover calendar events
766
+
767
+ Get a list of calendar events Initially, call without a `nextCursor` parameter For every successive call, use the `nextCursor` property returned in the previous call & the `number` of entries desired for this call The `nextCursor` internally keeps track of the `offset` of the results, the initial request parameters, and accounts for discrepancies that might arise from time elapsed between calls
768
+
769
+ :param scope: Scope for calendar event discovery.
770
+ :type scope: CalendarEventDiscoveryScope
771
+ :param categories: Filter for calendar event discovery.
772
+ :type categories: str
773
+ :param tags: Filter for calendar event discovery.
774
+ :type tags: str
775
+ :param featured_results: Filter for calendar event discovery.
776
+ :type featured_results: CalendarEventDiscoveryInclusion
777
+ :param non_featured_results: Filter for calendar event discovery.
778
+ :type non_featured_results: CalendarEventDiscoveryInclusion
779
+ :param personalized_results: Filter for calendar event discovery.
780
+ :type personalized_results: CalendarEventDiscoveryInclusion
781
+ :param minimum_interest_count: Filter for calendar event discovery.
782
+ :type minimum_interest_count: int
783
+ :param minimum_remaining_minutes: Filter for calendar event discovery.
784
+ :type minimum_remaining_minutes: int
785
+ :param upcoming_offset_minutes: Filter for calendar event discovery.
786
+ :type upcoming_offset_minutes: int
787
+ :param n: The number of objects to return.
788
+ :type n: int
789
+ :param next_cursor: Cursor returned from previous calendar discovery queries (see nextCursor property of the schema CalendarEventDiscovery).
790
+ :type next_cursor: str
791
+ :param _request_timeout: timeout setting for this request. If one
792
+ number provided, it will be total request
793
+ timeout. It can also be a pair (tuple) of
794
+ (connection, read) timeouts.
795
+ :type _request_timeout: int, tuple(int, int), optional
796
+ :param _request_auth: set to override the auth_settings for an a single
797
+ request; this effectively ignores the
798
+ authentication in the spec for a single request.
799
+ :type _request_auth: dict, optional
800
+ :param _content_type: force content-type for the request.
801
+ :type _content_type: str, Optional
802
+ :param _headers: set to override the headers for a single
803
+ request; this effectively ignores the headers
804
+ in the spec for a single request.
805
+ :type _headers: dict, optional
806
+ :param _host_index: set to override the host_index for a single
807
+ request; this effectively ignores the host_index
808
+ in the spec for a single request.
809
+ :type _host_index: int, optional
810
+ :return: Returns the result object.
811
+ """ # noqa: E501
812
+
813
+ _param = self._discover_calendar_events_serialize(
814
+ scope=scope,
815
+ categories=categories,
816
+ tags=tags,
817
+ featured_results=featured_results,
818
+ non_featured_results=non_featured_results,
819
+ personalized_results=personalized_results,
820
+ minimum_interest_count=minimum_interest_count,
821
+ minimum_remaining_minutes=minimum_remaining_minutes,
822
+ upcoming_offset_minutes=upcoming_offset_minutes,
823
+ n=n,
824
+ next_cursor=next_cursor,
825
+ _request_auth=_request_auth,
826
+ _content_type=_content_type,
827
+ _headers=_headers,
828
+ _host_index=_host_index
829
+ )
830
+
831
+ _response_types_map: Dict[str, Optional[str]] = {
832
+ '200': "CalendarEventDiscovery",
833
+ '401': "Error",
834
+ }
835
+ response_data = await self.api_client.call_api(
836
+ *_param,
837
+ _request_timeout=_request_timeout
838
+ )
839
+ await response_data.read()
840
+ return self.api_client.response_deserialize(
841
+ response_data=response_data,
842
+ response_types_map=_response_types_map,
843
+ )
844
+
845
+
846
+ @validate_call
847
+ async def discover_calendar_events_without_preload_content(
848
+ self,
849
+ scope: Annotated[Optional[CalendarEventDiscoveryScope], Field(description="Scope for calendar event discovery.")] = None,
850
+ categories: Annotated[Optional[StrictStr], Field(description="Filter for calendar event discovery.")] = None,
851
+ tags: Annotated[Optional[StrictStr], Field(description="Filter for calendar event discovery.")] = None,
852
+ featured_results: Annotated[Optional[CalendarEventDiscoveryInclusion], Field(description="Filter for calendar event discovery.")] = None,
853
+ non_featured_results: Annotated[Optional[CalendarEventDiscoveryInclusion], Field(description="Filter for calendar event discovery.")] = None,
854
+ personalized_results: Annotated[Optional[CalendarEventDiscoveryInclusion], Field(description="Filter for calendar event discovery.")] = None,
855
+ minimum_interest_count: Annotated[Optional[StrictInt], Field(description="Filter for calendar event discovery.")] = None,
856
+ minimum_remaining_minutes: Annotated[Optional[StrictInt], Field(description="Filter for calendar event discovery.")] = None,
857
+ upcoming_offset_minutes: Annotated[Optional[StrictInt], Field(description="Filter for calendar event discovery.")] = None,
858
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
859
+ next_cursor: Annotated[Optional[StrictStr], Field(description="Cursor returned from previous calendar discovery queries (see nextCursor property of the schema CalendarEventDiscovery).")] = None,
860
+ _request_timeout: Union[
861
+ None,
862
+ Annotated[StrictFloat, Field(gt=0)],
863
+ Tuple[
864
+ Annotated[StrictFloat, Field(gt=0)],
865
+ Annotated[StrictFloat, Field(gt=0)]
866
+ ]
867
+ ] = None,
868
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
869
+ _content_type: Optional[StrictStr] = None,
870
+ _headers: Optional[Dict[StrictStr, Any]] = None,
871
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
872
+ ) -> RESTResponseType:
873
+ """Discover calendar events
874
+
875
+ Get a list of calendar events Initially, call without a `nextCursor` parameter For every successive call, use the `nextCursor` property returned in the previous call & the `number` of entries desired for this call The `nextCursor` internally keeps track of the `offset` of the results, the initial request parameters, and accounts for discrepancies that might arise from time elapsed between calls
876
+
877
+ :param scope: Scope for calendar event discovery.
878
+ :type scope: CalendarEventDiscoveryScope
879
+ :param categories: Filter for calendar event discovery.
880
+ :type categories: str
881
+ :param tags: Filter for calendar event discovery.
882
+ :type tags: str
883
+ :param featured_results: Filter for calendar event discovery.
884
+ :type featured_results: CalendarEventDiscoveryInclusion
885
+ :param non_featured_results: Filter for calendar event discovery.
886
+ :type non_featured_results: CalendarEventDiscoveryInclusion
887
+ :param personalized_results: Filter for calendar event discovery.
888
+ :type personalized_results: CalendarEventDiscoveryInclusion
889
+ :param minimum_interest_count: Filter for calendar event discovery.
890
+ :type minimum_interest_count: int
891
+ :param minimum_remaining_minutes: Filter for calendar event discovery.
892
+ :type minimum_remaining_minutes: int
893
+ :param upcoming_offset_minutes: Filter for calendar event discovery.
894
+ :type upcoming_offset_minutes: int
895
+ :param n: The number of objects to return.
896
+ :type n: int
897
+ :param next_cursor: Cursor returned from previous calendar discovery queries (see nextCursor property of the schema CalendarEventDiscovery).
898
+ :type next_cursor: str
899
+ :param _request_timeout: timeout setting for this request. If one
900
+ number provided, it will be total request
901
+ timeout. It can also be a pair (tuple) of
902
+ (connection, read) timeouts.
903
+ :type _request_timeout: int, tuple(int, int), optional
904
+ :param _request_auth: set to override the auth_settings for an a single
905
+ request; this effectively ignores the
906
+ authentication in the spec for a single request.
907
+ :type _request_auth: dict, optional
908
+ :param _content_type: force content-type for the request.
909
+ :type _content_type: str, Optional
910
+ :param _headers: set to override the headers for a single
911
+ request; this effectively ignores the headers
912
+ in the spec for a single request.
913
+ :type _headers: dict, optional
914
+ :param _host_index: set to override the host_index for a single
915
+ request; this effectively ignores the host_index
916
+ in the spec for a single request.
917
+ :type _host_index: int, optional
918
+ :return: Returns the result object.
919
+ """ # noqa: E501
920
+
921
+ _param = self._discover_calendar_events_serialize(
922
+ scope=scope,
923
+ categories=categories,
924
+ tags=tags,
925
+ featured_results=featured_results,
926
+ non_featured_results=non_featured_results,
927
+ personalized_results=personalized_results,
928
+ minimum_interest_count=minimum_interest_count,
929
+ minimum_remaining_minutes=minimum_remaining_minutes,
930
+ upcoming_offset_minutes=upcoming_offset_minutes,
931
+ n=n,
932
+ next_cursor=next_cursor,
933
+ _request_auth=_request_auth,
934
+ _content_type=_content_type,
935
+ _headers=_headers,
936
+ _host_index=_host_index
937
+ )
938
+
939
+ _response_types_map: Dict[str, Optional[str]] = {
940
+ '200': "CalendarEventDiscovery",
941
+ '401': "Error",
942
+ }
943
+ response_data = await self.api_client.call_api(
944
+ *_param,
945
+ _request_timeout=_request_timeout
946
+ )
947
+ return response_data.response
948
+
949
+
950
+ def _discover_calendar_events_serialize(
951
+ self,
952
+ scope,
953
+ categories,
954
+ tags,
955
+ featured_results,
956
+ non_featured_results,
957
+ personalized_results,
958
+ minimum_interest_count,
959
+ minimum_remaining_minutes,
960
+ upcoming_offset_minutes,
961
+ n,
962
+ next_cursor,
963
+ _request_auth,
964
+ _content_type,
965
+ _headers,
966
+ _host_index,
967
+ ) -> RequestSerialized:
968
+
969
+ _host = None
970
+
971
+ _collection_formats: Dict[str, str] = {
972
+ }
973
+
974
+ _path_params: Dict[str, str] = {}
975
+ _query_params: List[Tuple[str, str]] = []
976
+ _header_params: Dict[str, Optional[str]] = _headers or {}
977
+ _form_params: List[Tuple[str, str]] = []
978
+ _files: Dict[
979
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
980
+ ] = {}
981
+ _body_params: Optional[bytes] = None
982
+
983
+ # process the path parameters
984
+ # process the query parameters
985
+ if scope is not None:
986
+
987
+ _query_params.append(('scope', scope.value))
988
+
989
+ if categories is not None:
990
+
991
+ _query_params.append(('categories', categories))
992
+
993
+ if tags is not None:
994
+
995
+ _query_params.append(('tags', tags))
996
+
997
+ if featured_results is not None:
998
+
999
+ _query_params.append(('featuredResults', featured_results.value))
1000
+
1001
+ if non_featured_results is not None:
1002
+
1003
+ _query_params.append(('nonFeaturedResults', non_featured_results.value))
1004
+
1005
+ if personalized_results is not None:
1006
+
1007
+ _query_params.append(('personalizedResults', personalized_results.value))
1008
+
1009
+ if minimum_interest_count is not None:
1010
+
1011
+ _query_params.append(('minimumInterestCount', minimum_interest_count))
1012
+
1013
+ if minimum_remaining_minutes is not None:
1014
+
1015
+ _query_params.append(('minimumRemainingMinutes', minimum_remaining_minutes))
1016
+
1017
+ if upcoming_offset_minutes is not None:
1018
+
1019
+ _query_params.append(('upcomingOffsetMinutes', upcoming_offset_minutes))
1020
+
1021
+ if n is not None:
1022
+
1023
+ _query_params.append(('n', n))
1024
+
1025
+ if next_cursor is not None:
1026
+
1027
+ _query_params.append(('nextCursor', next_cursor))
1028
+
1029
+ # process the header parameters
1030
+ # process the form parameters
1031
+ # process the body parameter
1032
+
1033
+
1034
+ # set the HTTP header `Accept`
1035
+ if 'Accept' not in _header_params:
1036
+ _header_params['Accept'] = self.api_client.select_header_accept(
1037
+ [
1038
+ 'application/json'
1039
+ ]
1040
+ )
1041
+
1042
+
1043
+ # authentication setting
1044
+ _auth_settings: List[str] = [
1045
+ 'authCookie'
1046
+ ]
1047
+
1048
+ return self.api_client.param_serialize(
1049
+ method='GET',
1050
+ resource_path='/calendar/discover',
1051
+ path_params=_path_params,
1052
+ query_params=_query_params,
1053
+ header_params=_header_params,
1054
+ body=_body_params,
1055
+ post_params=_form_params,
1056
+ files=_files,
1057
+ auth_settings=_auth_settings,
1058
+ collection_formats=_collection_formats,
1059
+ _host=_host,
1060
+ _request_auth=_request_auth
1061
+ )
1062
+
1063
+
1064
+
1065
+
1066
+ @validate_call
1067
+ async def follow_group_calendar_event(
1068
+ self,
1069
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
1070
+ calendar_id: Annotated[StrictStr, Field(description="Must be a valid calendar ID.")],
1071
+ follow_calendar_event_request: FollowCalendarEventRequest,
1072
+ _request_timeout: Union[
1073
+ None,
1074
+ Annotated[StrictFloat, Field(gt=0)],
1075
+ Tuple[
1076
+ Annotated[StrictFloat, Field(gt=0)],
1077
+ Annotated[StrictFloat, Field(gt=0)]
1078
+ ]
1079
+ ] = None,
1080
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1081
+ _content_type: Optional[StrictStr] = None,
1082
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1083
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1084
+ ) -> CalendarEvent:
1085
+ """Follow a calendar event
1086
+
1087
+ Follow or unfollow an event on a group's calendar
1088
+
1089
+ :param group_id: Must be a valid group ID. (required)
1090
+ :type group_id: str
1091
+ :param calendar_id: Must be a valid calendar ID. (required)
1092
+ :type calendar_id: str
1093
+ :param follow_calendar_event_request: (required)
1094
+ :type follow_calendar_event_request: FollowCalendarEventRequest
1095
+ :param _request_timeout: timeout setting for this request. If one
1096
+ number provided, it will be total request
1097
+ timeout. It can also be a pair (tuple) of
1098
+ (connection, read) timeouts.
1099
+ :type _request_timeout: int, tuple(int, int), optional
1100
+ :param _request_auth: set to override the auth_settings for an a single
1101
+ request; this effectively ignores the
1102
+ authentication in the spec for a single request.
1103
+ :type _request_auth: dict, optional
1104
+ :param _content_type: force content-type for the request.
1105
+ :type _content_type: str, Optional
1106
+ :param _headers: set to override the headers for a single
1107
+ request; this effectively ignores the headers
1108
+ in the spec for a single request.
1109
+ :type _headers: dict, optional
1110
+ :param _host_index: set to override the host_index for a single
1111
+ request; this effectively ignores the host_index
1112
+ in the spec for a single request.
1113
+ :type _host_index: int, optional
1114
+ :return: Returns the result object.
1115
+ """ # noqa: E501
1116
+
1117
+ _param = self._follow_group_calendar_event_serialize(
1118
+ group_id=group_id,
1119
+ calendar_id=calendar_id,
1120
+ follow_calendar_event_request=follow_calendar_event_request,
1121
+ _request_auth=_request_auth,
1122
+ _content_type=_content_type,
1123
+ _headers=_headers,
1124
+ _host_index=_host_index
1125
+ )
1126
+
1127
+ _response_types_map: Dict[str, Optional[str]] = {
1128
+ '200': "CalendarEvent",
1129
+ '401': "Error",
1130
+ }
1131
+ response_data = await self.api_client.call_api(
1132
+ *_param,
1133
+ _request_timeout=_request_timeout
1134
+ )
1135
+ await response_data.read()
1136
+ return self.api_client.response_deserialize(
1137
+ response_data=response_data,
1138
+ response_types_map=_response_types_map,
1139
+ ).data
1140
+
1141
+
1142
+ @validate_call
1143
+ async def follow_group_calendar_event_with_http_info(
1144
+ self,
1145
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
1146
+ calendar_id: Annotated[StrictStr, Field(description="Must be a valid calendar ID.")],
1147
+ follow_calendar_event_request: FollowCalendarEventRequest,
1148
+ _request_timeout: Union[
1149
+ None,
1150
+ Annotated[StrictFloat, Field(gt=0)],
1151
+ Tuple[
1152
+ Annotated[StrictFloat, Field(gt=0)],
1153
+ Annotated[StrictFloat, Field(gt=0)]
1154
+ ]
1155
+ ] = None,
1156
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1157
+ _content_type: Optional[StrictStr] = None,
1158
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1159
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1160
+ ) -> ApiResponse[CalendarEvent]:
1161
+ """Follow a calendar event
1162
+
1163
+ Follow or unfollow an event on a group's calendar
1164
+
1165
+ :param group_id: Must be a valid group ID. (required)
1166
+ :type group_id: str
1167
+ :param calendar_id: Must be a valid calendar ID. (required)
1168
+ :type calendar_id: str
1169
+ :param follow_calendar_event_request: (required)
1170
+ :type follow_calendar_event_request: FollowCalendarEventRequest
1171
+ :param _request_timeout: timeout setting for this request. If one
1172
+ number provided, it will be total request
1173
+ timeout. It can also be a pair (tuple) of
1174
+ (connection, read) timeouts.
1175
+ :type _request_timeout: int, tuple(int, int), optional
1176
+ :param _request_auth: set to override the auth_settings for an a single
1177
+ request; this effectively ignores the
1178
+ authentication in the spec for a single request.
1179
+ :type _request_auth: dict, optional
1180
+ :param _content_type: force content-type for the request.
1181
+ :type _content_type: str, Optional
1182
+ :param _headers: set to override the headers for a single
1183
+ request; this effectively ignores the headers
1184
+ in the spec for a single request.
1185
+ :type _headers: dict, optional
1186
+ :param _host_index: set to override the host_index for a single
1187
+ request; this effectively ignores the host_index
1188
+ in the spec for a single request.
1189
+ :type _host_index: int, optional
1190
+ :return: Returns the result object.
1191
+ """ # noqa: E501
1192
+
1193
+ _param = self._follow_group_calendar_event_serialize(
1194
+ group_id=group_id,
1195
+ calendar_id=calendar_id,
1196
+ follow_calendar_event_request=follow_calendar_event_request,
1197
+ _request_auth=_request_auth,
1198
+ _content_type=_content_type,
1199
+ _headers=_headers,
1200
+ _host_index=_host_index
1201
+ )
1202
+
1203
+ _response_types_map: Dict[str, Optional[str]] = {
1204
+ '200': "CalendarEvent",
1205
+ '401': "Error",
1206
+ }
1207
+ response_data = await self.api_client.call_api(
1208
+ *_param,
1209
+ _request_timeout=_request_timeout
1210
+ )
1211
+ await response_data.read()
1212
+ return self.api_client.response_deserialize(
1213
+ response_data=response_data,
1214
+ response_types_map=_response_types_map,
1215
+ )
1216
+
1217
+
1218
+ @validate_call
1219
+ async def follow_group_calendar_event_without_preload_content(
1220
+ self,
1221
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
1222
+ calendar_id: Annotated[StrictStr, Field(description="Must be a valid calendar ID.")],
1223
+ follow_calendar_event_request: FollowCalendarEventRequest,
1224
+ _request_timeout: Union[
1225
+ None,
1226
+ Annotated[StrictFloat, Field(gt=0)],
1227
+ Tuple[
1228
+ Annotated[StrictFloat, Field(gt=0)],
1229
+ Annotated[StrictFloat, Field(gt=0)]
1230
+ ]
1231
+ ] = None,
1232
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1233
+ _content_type: Optional[StrictStr] = None,
1234
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1235
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1236
+ ) -> RESTResponseType:
1237
+ """Follow a calendar event
1238
+
1239
+ Follow or unfollow an event on a group's calendar
1240
+
1241
+ :param group_id: Must be a valid group ID. (required)
1242
+ :type group_id: str
1243
+ :param calendar_id: Must be a valid calendar ID. (required)
1244
+ :type calendar_id: str
1245
+ :param follow_calendar_event_request: (required)
1246
+ :type follow_calendar_event_request: FollowCalendarEventRequest
1247
+ :param _request_timeout: timeout setting for this request. If one
1248
+ number provided, it will be total request
1249
+ timeout. It can also be a pair (tuple) of
1250
+ (connection, read) timeouts.
1251
+ :type _request_timeout: int, tuple(int, int), optional
1252
+ :param _request_auth: set to override the auth_settings for an a single
1253
+ request; this effectively ignores the
1254
+ authentication in the spec for a single request.
1255
+ :type _request_auth: dict, optional
1256
+ :param _content_type: force content-type for the request.
1257
+ :type _content_type: str, Optional
1258
+ :param _headers: set to override the headers for a single
1259
+ request; this effectively ignores the headers
1260
+ in the spec for a single request.
1261
+ :type _headers: dict, optional
1262
+ :param _host_index: set to override the host_index for a single
1263
+ request; this effectively ignores the host_index
1264
+ in the spec for a single request.
1265
+ :type _host_index: int, optional
1266
+ :return: Returns the result object.
1267
+ """ # noqa: E501
1268
+
1269
+ _param = self._follow_group_calendar_event_serialize(
1270
+ group_id=group_id,
1271
+ calendar_id=calendar_id,
1272
+ follow_calendar_event_request=follow_calendar_event_request,
1273
+ _request_auth=_request_auth,
1274
+ _content_type=_content_type,
1275
+ _headers=_headers,
1276
+ _host_index=_host_index
1277
+ )
1278
+
1279
+ _response_types_map: Dict[str, Optional[str]] = {
1280
+ '200': "CalendarEvent",
1281
+ '401': "Error",
1282
+ }
1283
+ response_data = await self.api_client.call_api(
1284
+ *_param,
1285
+ _request_timeout=_request_timeout
1286
+ )
1287
+ return response_data.response
1288
+
1289
+
1290
+ def _follow_group_calendar_event_serialize(
1291
+ self,
1292
+ group_id,
1293
+ calendar_id,
1294
+ follow_calendar_event_request,
1295
+ _request_auth,
1296
+ _content_type,
1297
+ _headers,
1298
+ _host_index,
1299
+ ) -> RequestSerialized:
1300
+
1301
+ _host = None
1302
+
1303
+ _collection_formats: Dict[str, str] = {
1304
+ }
1305
+
1306
+ _path_params: Dict[str, str] = {}
1307
+ _query_params: List[Tuple[str, str]] = []
1308
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1309
+ _form_params: List[Tuple[str, str]] = []
1310
+ _files: Dict[
1311
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1312
+ ] = {}
1313
+ _body_params: Optional[bytes] = None
1314
+
1315
+ # process the path parameters
1316
+ if group_id is not None:
1317
+ _path_params['groupId'] = group_id
1318
+ if calendar_id is not None:
1319
+ _path_params['calendarId'] = calendar_id
1320
+ # process the query parameters
1321
+ # process the header parameters
1322
+ # process the form parameters
1323
+ # process the body parameter
1324
+ if follow_calendar_event_request is not None:
1325
+ _body_params = follow_calendar_event_request
1326
+
1327
+
1328
+ # set the HTTP header `Accept`
1329
+ if 'Accept' not in _header_params:
1330
+ _header_params['Accept'] = self.api_client.select_header_accept(
1331
+ [
1332
+ 'application/json'
1333
+ ]
1334
+ )
1335
+
1336
+ # set the HTTP header `Content-Type`
1337
+ if _content_type:
1338
+ _header_params['Content-Type'] = _content_type
1339
+ else:
1340
+ _default_content_type = (
1341
+ self.api_client.select_header_content_type(
1342
+ [
1343
+ 'application/json'
1344
+ ]
1345
+ )
1346
+ )
1347
+ if _default_content_type is not None:
1348
+ _header_params['Content-Type'] = _default_content_type
1349
+
1350
+ # authentication setting
1351
+ _auth_settings: List[str] = [
1352
+ 'authCookie'
1353
+ ]
1354
+
1355
+ return self.api_client.param_serialize(
1356
+ method='POST',
1357
+ resource_path='/calendar/{groupId}/{calendarId}/follow',
1358
+ path_params=_path_params,
1359
+ query_params=_query_params,
1360
+ header_params=_header_params,
1361
+ body=_body_params,
1362
+ post_params=_form_params,
1363
+ files=_files,
1364
+ auth_settings=_auth_settings,
1365
+ collection_formats=_collection_formats,
1366
+ _host=_host,
1367
+ _request_auth=_request_auth
1368
+ )
1369
+
1370
+
1371
+
1372
+
1373
+ @validate_call
1374
+ async def get_calendar_events(
1375
+ self,
1376
+ var_date: Annotated[Optional[datetime], Field(description="The month to search in.")] = None,
1377
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
1378
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="A zero-based offset from the default object sorting from where search results start.")] = None,
1379
+ _request_timeout: Union[
1380
+ None,
1381
+ Annotated[StrictFloat, Field(gt=0)],
1382
+ Tuple[
1383
+ Annotated[StrictFloat, Field(gt=0)],
1384
+ Annotated[StrictFloat, Field(gt=0)]
1385
+ ]
1386
+ ] = None,
1387
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1388
+ _content_type: Optional[StrictStr] = None,
1389
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1390
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1391
+ ) -> PaginatedCalendarEventList:
1392
+ """List calendar events
1393
+
1394
+ Get a list of a user's calendar events for the month in ?date
1395
+
1396
+ :param var_date: The month to search in.
1397
+ :type var_date: datetime
1398
+ :param n: The number of objects to return.
1399
+ :type n: int
1400
+ :param offset: A zero-based offset from the default object sorting from where search results start.
1401
+ :type offset: int
1402
+ :param _request_timeout: timeout setting for this request. If one
1403
+ number provided, it will be total request
1404
+ timeout. It can also be a pair (tuple) of
1405
+ (connection, read) timeouts.
1406
+ :type _request_timeout: int, tuple(int, int), optional
1407
+ :param _request_auth: set to override the auth_settings for an a single
1408
+ request; this effectively ignores the
1409
+ authentication in the spec for a single request.
1410
+ :type _request_auth: dict, optional
1411
+ :param _content_type: force content-type for the request.
1412
+ :type _content_type: str, Optional
1413
+ :param _headers: set to override the headers for a single
1414
+ request; this effectively ignores the headers
1415
+ in the spec for a single request.
1416
+ :type _headers: dict, optional
1417
+ :param _host_index: set to override the host_index for a single
1418
+ request; this effectively ignores the host_index
1419
+ in the spec for a single request.
1420
+ :type _host_index: int, optional
1421
+ :return: Returns the result object.
1422
+ """ # noqa: E501
1423
+
1424
+ _param = self._get_calendar_events_serialize(
1425
+ var_date=var_date,
1426
+ n=n,
1427
+ offset=offset,
1428
+ _request_auth=_request_auth,
1429
+ _content_type=_content_type,
1430
+ _headers=_headers,
1431
+ _host_index=_host_index
1432
+ )
1433
+
1434
+ _response_types_map: Dict[str, Optional[str]] = {
1435
+ '200': "PaginatedCalendarEventList",
1436
+ '401': "Error",
1437
+ }
1438
+ response_data = await self.api_client.call_api(
1439
+ *_param,
1440
+ _request_timeout=_request_timeout
1441
+ )
1442
+ await response_data.read()
1443
+ return self.api_client.response_deserialize(
1444
+ response_data=response_data,
1445
+ response_types_map=_response_types_map,
1446
+ ).data
1447
+
1448
+
1449
+ @validate_call
1450
+ async def get_calendar_events_with_http_info(
1451
+ self,
1452
+ var_date: Annotated[Optional[datetime], Field(description="The month to search in.")] = None,
1453
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
1454
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="A zero-based offset from the default object sorting from where search results start.")] = None,
1455
+ _request_timeout: Union[
1456
+ None,
1457
+ Annotated[StrictFloat, Field(gt=0)],
1458
+ Tuple[
1459
+ Annotated[StrictFloat, Field(gt=0)],
1460
+ Annotated[StrictFloat, Field(gt=0)]
1461
+ ]
1462
+ ] = None,
1463
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1464
+ _content_type: Optional[StrictStr] = None,
1465
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1466
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1467
+ ) -> ApiResponse[PaginatedCalendarEventList]:
1468
+ """List calendar events
1469
+
1470
+ Get a list of a user's calendar events for the month in ?date
1471
+
1472
+ :param var_date: The month to search in.
1473
+ :type var_date: datetime
1474
+ :param n: The number of objects to return.
1475
+ :type n: int
1476
+ :param offset: A zero-based offset from the default object sorting from where search results start.
1477
+ :type offset: int
1478
+ :param _request_timeout: timeout setting for this request. If one
1479
+ number provided, it will be total request
1480
+ timeout. It can also be a pair (tuple) of
1481
+ (connection, read) timeouts.
1482
+ :type _request_timeout: int, tuple(int, int), optional
1483
+ :param _request_auth: set to override the auth_settings for an a single
1484
+ request; this effectively ignores the
1485
+ authentication in the spec for a single request.
1486
+ :type _request_auth: dict, optional
1487
+ :param _content_type: force content-type for the request.
1488
+ :type _content_type: str, Optional
1489
+ :param _headers: set to override the headers for a single
1490
+ request; this effectively ignores the headers
1491
+ in the spec for a single request.
1492
+ :type _headers: dict, optional
1493
+ :param _host_index: set to override the host_index for a single
1494
+ request; this effectively ignores the host_index
1495
+ in the spec for a single request.
1496
+ :type _host_index: int, optional
1497
+ :return: Returns the result object.
1498
+ """ # noqa: E501
1499
+
1500
+ _param = self._get_calendar_events_serialize(
1501
+ var_date=var_date,
1502
+ n=n,
1503
+ offset=offset,
1504
+ _request_auth=_request_auth,
1505
+ _content_type=_content_type,
1506
+ _headers=_headers,
1507
+ _host_index=_host_index
1508
+ )
1509
+
1510
+ _response_types_map: Dict[str, Optional[str]] = {
1511
+ '200': "PaginatedCalendarEventList",
1512
+ '401': "Error",
1513
+ }
1514
+ response_data = await self.api_client.call_api(
1515
+ *_param,
1516
+ _request_timeout=_request_timeout
1517
+ )
1518
+ await response_data.read()
1519
+ return self.api_client.response_deserialize(
1520
+ response_data=response_data,
1521
+ response_types_map=_response_types_map,
1522
+ )
1523
+
1524
+
1525
+ @validate_call
1526
+ async def get_calendar_events_without_preload_content(
1527
+ self,
1528
+ var_date: Annotated[Optional[datetime], Field(description="The month to search in.")] = None,
1529
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
1530
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="A zero-based offset from the default object sorting from where search results start.")] = None,
1531
+ _request_timeout: Union[
1532
+ None,
1533
+ Annotated[StrictFloat, Field(gt=0)],
1534
+ Tuple[
1535
+ Annotated[StrictFloat, Field(gt=0)],
1536
+ Annotated[StrictFloat, Field(gt=0)]
1537
+ ]
1538
+ ] = None,
1539
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1540
+ _content_type: Optional[StrictStr] = None,
1541
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1542
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1543
+ ) -> RESTResponseType:
1544
+ """List calendar events
1545
+
1546
+ Get a list of a user's calendar events for the month in ?date
1547
+
1548
+ :param var_date: The month to search in.
1549
+ :type var_date: datetime
1550
+ :param n: The number of objects to return.
1551
+ :type n: int
1552
+ :param offset: A zero-based offset from the default object sorting from where search results start.
1553
+ :type offset: int
1554
+ :param _request_timeout: timeout setting for this request. If one
1555
+ number provided, it will be total request
1556
+ timeout. It can also be a pair (tuple) of
1557
+ (connection, read) timeouts.
1558
+ :type _request_timeout: int, tuple(int, int), optional
1559
+ :param _request_auth: set to override the auth_settings for an a single
1560
+ request; this effectively ignores the
1561
+ authentication in the spec for a single request.
1562
+ :type _request_auth: dict, optional
1563
+ :param _content_type: force content-type for the request.
1564
+ :type _content_type: str, Optional
1565
+ :param _headers: set to override the headers for a single
1566
+ request; this effectively ignores the headers
1567
+ in the spec for a single request.
1568
+ :type _headers: dict, optional
1569
+ :param _host_index: set to override the host_index for a single
1570
+ request; this effectively ignores the host_index
1571
+ in the spec for a single request.
1572
+ :type _host_index: int, optional
1573
+ :return: Returns the result object.
1574
+ """ # noqa: E501
1575
+
1576
+ _param = self._get_calendar_events_serialize(
1577
+ var_date=var_date,
1578
+ n=n,
1579
+ offset=offset,
1580
+ _request_auth=_request_auth,
1581
+ _content_type=_content_type,
1582
+ _headers=_headers,
1583
+ _host_index=_host_index
1584
+ )
1585
+
1586
+ _response_types_map: Dict[str, Optional[str]] = {
1587
+ '200': "PaginatedCalendarEventList",
1588
+ '401': "Error",
1589
+ }
1590
+ response_data = await self.api_client.call_api(
1591
+ *_param,
1592
+ _request_timeout=_request_timeout
1593
+ )
1594
+ return response_data.response
1595
+
1596
+
1597
+ def _get_calendar_events_serialize(
1598
+ self,
1599
+ var_date,
1600
+ n,
1601
+ offset,
1602
+ _request_auth,
1603
+ _content_type,
1604
+ _headers,
1605
+ _host_index,
1606
+ ) -> RequestSerialized:
1607
+
1608
+ _host = None
1609
+
1610
+ _collection_formats: Dict[str, str] = {
1611
+ }
1612
+
1613
+ _path_params: Dict[str, str] = {}
1614
+ _query_params: List[Tuple[str, str]] = []
1615
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1616
+ _form_params: List[Tuple[str, str]] = []
1617
+ _files: Dict[
1618
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1619
+ ] = {}
1620
+ _body_params: Optional[bytes] = None
1621
+
1622
+ # process the path parameters
1623
+ # process the query parameters
1624
+ if var_date is not None:
1625
+ if isinstance(var_date, datetime):
1626
+ _query_params.append(
1627
+ (
1628
+ 'date',
1629
+ var_date.strftime(
1630
+ self.api_client.configuration.datetime_format
1631
+ )
1632
+ )
1633
+ )
1634
+ else:
1635
+ _query_params.append(('date', var_date))
1636
+
1637
+ if n is not None:
1638
+
1639
+ _query_params.append(('n', n))
1640
+
1641
+ if offset is not None:
1642
+
1643
+ _query_params.append(('offset', offset))
1644
+
1645
+ # process the header parameters
1646
+ # process the form parameters
1647
+ # process the body parameter
1648
+
1649
+
1650
+ # set the HTTP header `Accept`
1651
+ if 'Accept' not in _header_params:
1652
+ _header_params['Accept'] = self.api_client.select_header_accept(
1653
+ [
1654
+ 'application/json'
1655
+ ]
1656
+ )
1657
+
1658
+
1659
+ # authentication setting
1660
+ _auth_settings: List[str] = [
1661
+ 'authCookie'
1662
+ ]
1663
+
1664
+ return self.api_client.param_serialize(
1665
+ method='GET',
1666
+ resource_path='/calendar',
1667
+ path_params=_path_params,
1668
+ query_params=_query_params,
1669
+ header_params=_header_params,
1670
+ body=_body_params,
1671
+ post_params=_form_params,
1672
+ files=_files,
1673
+ auth_settings=_auth_settings,
1674
+ collection_formats=_collection_formats,
1675
+ _host=_host,
1676
+ _request_auth=_request_auth
1677
+ )
1678
+
1679
+
1680
+
1681
+
1682
+ @validate_call
1683
+ async def get_featured_calendar_events(
1684
+ self,
1685
+ var_date: Annotated[Optional[datetime], Field(description="The month to search in.")] = None,
1686
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
1687
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="A zero-based offset from the default object sorting from where search results start.")] = None,
1688
+ _request_timeout: Union[
1689
+ None,
1690
+ Annotated[StrictFloat, Field(gt=0)],
1691
+ Tuple[
1692
+ Annotated[StrictFloat, Field(gt=0)],
1693
+ Annotated[StrictFloat, Field(gt=0)]
1694
+ ]
1695
+ ] = None,
1696
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1697
+ _content_type: Optional[StrictStr] = None,
1698
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1699
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1700
+ ) -> PaginatedCalendarEventList:
1701
+ """List featured calendar events
1702
+
1703
+ Get a list of a featured calendar events for the month in ?date
1704
+
1705
+ :param var_date: The month to search in.
1706
+ :type var_date: datetime
1707
+ :param n: The number of objects to return.
1708
+ :type n: int
1709
+ :param offset: A zero-based offset from the default object sorting from where search results start.
1710
+ :type offset: int
1711
+ :param _request_timeout: timeout setting for this request. If one
1712
+ number provided, it will be total request
1713
+ timeout. It can also be a pair (tuple) of
1714
+ (connection, read) timeouts.
1715
+ :type _request_timeout: int, tuple(int, int), optional
1716
+ :param _request_auth: set to override the auth_settings for an a single
1717
+ request; this effectively ignores the
1718
+ authentication in the spec for a single request.
1719
+ :type _request_auth: dict, optional
1720
+ :param _content_type: force content-type for the request.
1721
+ :type _content_type: str, Optional
1722
+ :param _headers: set to override the headers for a single
1723
+ request; this effectively ignores the headers
1724
+ in the spec for a single request.
1725
+ :type _headers: dict, optional
1726
+ :param _host_index: set to override the host_index for a single
1727
+ request; this effectively ignores the host_index
1728
+ in the spec for a single request.
1729
+ :type _host_index: int, optional
1730
+ :return: Returns the result object.
1731
+ """ # noqa: E501
1732
+
1733
+ _param = self._get_featured_calendar_events_serialize(
1734
+ var_date=var_date,
1735
+ n=n,
1736
+ offset=offset,
1737
+ _request_auth=_request_auth,
1738
+ _content_type=_content_type,
1739
+ _headers=_headers,
1740
+ _host_index=_host_index
1741
+ )
1742
+
1743
+ _response_types_map: Dict[str, Optional[str]] = {
1744
+ '200': "PaginatedCalendarEventList",
1745
+ '401': "Error",
1746
+ }
1747
+ response_data = await self.api_client.call_api(
1748
+ *_param,
1749
+ _request_timeout=_request_timeout
1750
+ )
1751
+ await response_data.read()
1752
+ return self.api_client.response_deserialize(
1753
+ response_data=response_data,
1754
+ response_types_map=_response_types_map,
1755
+ ).data
1756
+
1757
+
1758
+ @validate_call
1759
+ async def get_featured_calendar_events_with_http_info(
1760
+ self,
1761
+ var_date: Annotated[Optional[datetime], Field(description="The month to search in.")] = None,
1762
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
1763
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="A zero-based offset from the default object sorting from where search results start.")] = None,
1764
+ _request_timeout: Union[
1765
+ None,
1766
+ Annotated[StrictFloat, Field(gt=0)],
1767
+ Tuple[
1768
+ Annotated[StrictFloat, Field(gt=0)],
1769
+ Annotated[StrictFloat, Field(gt=0)]
1770
+ ]
1771
+ ] = None,
1772
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1773
+ _content_type: Optional[StrictStr] = None,
1774
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1775
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1776
+ ) -> ApiResponse[PaginatedCalendarEventList]:
1777
+ """List featured calendar events
1778
+
1779
+ Get a list of a featured calendar events for the month in ?date
1780
+
1781
+ :param var_date: The month to search in.
1782
+ :type var_date: datetime
1783
+ :param n: The number of objects to return.
1784
+ :type n: int
1785
+ :param offset: A zero-based offset from the default object sorting from where search results start.
1786
+ :type offset: int
1787
+ :param _request_timeout: timeout setting for this request. If one
1788
+ number provided, it will be total request
1789
+ timeout. It can also be a pair (tuple) of
1790
+ (connection, read) timeouts.
1791
+ :type _request_timeout: int, tuple(int, int), optional
1792
+ :param _request_auth: set to override the auth_settings for an a single
1793
+ request; this effectively ignores the
1794
+ authentication in the spec for a single request.
1795
+ :type _request_auth: dict, optional
1796
+ :param _content_type: force content-type for the request.
1797
+ :type _content_type: str, Optional
1798
+ :param _headers: set to override the headers for a single
1799
+ request; this effectively ignores the headers
1800
+ in the spec for a single request.
1801
+ :type _headers: dict, optional
1802
+ :param _host_index: set to override the host_index for a single
1803
+ request; this effectively ignores the host_index
1804
+ in the spec for a single request.
1805
+ :type _host_index: int, optional
1806
+ :return: Returns the result object.
1807
+ """ # noqa: E501
1808
+
1809
+ _param = self._get_featured_calendar_events_serialize(
1810
+ var_date=var_date,
1811
+ n=n,
1812
+ offset=offset,
1813
+ _request_auth=_request_auth,
1814
+ _content_type=_content_type,
1815
+ _headers=_headers,
1816
+ _host_index=_host_index
1817
+ )
1818
+
1819
+ _response_types_map: Dict[str, Optional[str]] = {
1820
+ '200': "PaginatedCalendarEventList",
1821
+ '401': "Error",
1822
+ }
1823
+ response_data = await self.api_client.call_api(
1824
+ *_param,
1825
+ _request_timeout=_request_timeout
1826
+ )
1827
+ await response_data.read()
1828
+ return self.api_client.response_deserialize(
1829
+ response_data=response_data,
1830
+ response_types_map=_response_types_map,
1831
+ )
1832
+
1833
+
1834
+ @validate_call
1835
+ async def get_featured_calendar_events_without_preload_content(
1836
+ self,
1837
+ var_date: Annotated[Optional[datetime], Field(description="The month to search in.")] = None,
1838
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
1839
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="A zero-based offset from the default object sorting from where search results start.")] = None,
1840
+ _request_timeout: Union[
1841
+ None,
1842
+ Annotated[StrictFloat, Field(gt=0)],
1843
+ Tuple[
1844
+ Annotated[StrictFloat, Field(gt=0)],
1845
+ Annotated[StrictFloat, Field(gt=0)]
1846
+ ]
1847
+ ] = None,
1848
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1849
+ _content_type: Optional[StrictStr] = None,
1850
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1851
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1852
+ ) -> RESTResponseType:
1853
+ """List featured calendar events
1854
+
1855
+ Get a list of a featured calendar events for the month in ?date
1856
+
1857
+ :param var_date: The month to search in.
1858
+ :type var_date: datetime
1859
+ :param n: The number of objects to return.
1860
+ :type n: int
1861
+ :param offset: A zero-based offset from the default object sorting from where search results start.
1862
+ :type offset: int
1863
+ :param _request_timeout: timeout setting for this request. If one
1864
+ number provided, it will be total request
1865
+ timeout. It can also be a pair (tuple) of
1866
+ (connection, read) timeouts.
1867
+ :type _request_timeout: int, tuple(int, int), optional
1868
+ :param _request_auth: set to override the auth_settings for an a single
1869
+ request; this effectively ignores the
1870
+ authentication in the spec for a single request.
1871
+ :type _request_auth: dict, optional
1872
+ :param _content_type: force content-type for the request.
1873
+ :type _content_type: str, Optional
1874
+ :param _headers: set to override the headers for a single
1875
+ request; this effectively ignores the headers
1876
+ in the spec for a single request.
1877
+ :type _headers: dict, optional
1878
+ :param _host_index: set to override the host_index for a single
1879
+ request; this effectively ignores the host_index
1880
+ in the spec for a single request.
1881
+ :type _host_index: int, optional
1882
+ :return: Returns the result object.
1883
+ """ # noqa: E501
1884
+
1885
+ _param = self._get_featured_calendar_events_serialize(
1886
+ var_date=var_date,
1887
+ n=n,
1888
+ offset=offset,
1889
+ _request_auth=_request_auth,
1890
+ _content_type=_content_type,
1891
+ _headers=_headers,
1892
+ _host_index=_host_index
1893
+ )
1894
+
1895
+ _response_types_map: Dict[str, Optional[str]] = {
1896
+ '200': "PaginatedCalendarEventList",
1897
+ '401': "Error",
1898
+ }
1899
+ response_data = await self.api_client.call_api(
1900
+ *_param,
1901
+ _request_timeout=_request_timeout
1902
+ )
1903
+ return response_data.response
1904
+
1905
+
1906
+ def _get_featured_calendar_events_serialize(
1907
+ self,
1908
+ var_date,
1909
+ n,
1910
+ offset,
1911
+ _request_auth,
1912
+ _content_type,
1913
+ _headers,
1914
+ _host_index,
1915
+ ) -> RequestSerialized:
1916
+
1917
+ _host = None
1918
+
1919
+ _collection_formats: Dict[str, str] = {
1920
+ }
1921
+
1922
+ _path_params: Dict[str, str] = {}
1923
+ _query_params: List[Tuple[str, str]] = []
1924
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1925
+ _form_params: List[Tuple[str, str]] = []
1926
+ _files: Dict[
1927
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1928
+ ] = {}
1929
+ _body_params: Optional[bytes] = None
1930
+
1931
+ # process the path parameters
1932
+ # process the query parameters
1933
+ if var_date is not None:
1934
+ if isinstance(var_date, datetime):
1935
+ _query_params.append(
1936
+ (
1937
+ 'date',
1938
+ var_date.strftime(
1939
+ self.api_client.configuration.datetime_format
1940
+ )
1941
+ )
1942
+ )
1943
+ else:
1944
+ _query_params.append(('date', var_date))
1945
+
1946
+ if n is not None:
1947
+
1948
+ _query_params.append(('n', n))
1949
+
1950
+ if offset is not None:
1951
+
1952
+ _query_params.append(('offset', offset))
1953
+
1954
+ # process the header parameters
1955
+ # process the form parameters
1956
+ # process the body parameter
1957
+
1958
+
1959
+ # set the HTTP header `Accept`
1960
+ if 'Accept' not in _header_params:
1961
+ _header_params['Accept'] = self.api_client.select_header_accept(
1962
+ [
1963
+ 'application/json'
1964
+ ]
1965
+ )
1966
+
1967
+
1968
+ # authentication setting
1969
+ _auth_settings: List[str] = [
1970
+ 'authCookie'
1971
+ ]
1972
+
1973
+ return self.api_client.param_serialize(
1974
+ method='GET',
1975
+ resource_path='/calendar/featured',
1976
+ path_params=_path_params,
1977
+ query_params=_query_params,
1978
+ header_params=_header_params,
1979
+ body=_body_params,
1980
+ post_params=_form_params,
1981
+ files=_files,
1982
+ auth_settings=_auth_settings,
1983
+ collection_formats=_collection_formats,
1984
+ _host=_host,
1985
+ _request_auth=_request_auth
1986
+ )
1987
+
1988
+
1989
+
1990
+
1991
+ @validate_call
1992
+ async def get_followed_calendar_events(
1993
+ self,
1994
+ var_date: Annotated[Optional[datetime], Field(description="The month to search in.")] = None,
1995
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
1996
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="A zero-based offset from the default object sorting from where search results start.")] = None,
1997
+ _request_timeout: Union[
1998
+ None,
1999
+ Annotated[StrictFloat, Field(gt=0)],
2000
+ Tuple[
2001
+ Annotated[StrictFloat, Field(gt=0)],
2002
+ Annotated[StrictFloat, Field(gt=0)]
2003
+ ]
2004
+ ] = None,
2005
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2006
+ _content_type: Optional[StrictStr] = None,
2007
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2008
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2009
+ ) -> PaginatedCalendarEventList:
2010
+ """List followed calendar events
2011
+
2012
+ Get a list of a followed calendar events for the month in ?date
2013
+
2014
+ :param var_date: The month to search in.
2015
+ :type var_date: datetime
2016
+ :param n: The number of objects to return.
2017
+ :type n: int
2018
+ :param offset: A zero-based offset from the default object sorting from where search results start.
2019
+ :type offset: int
2020
+ :param _request_timeout: timeout setting for this request. If one
2021
+ number provided, it will be total request
2022
+ timeout. It can also be a pair (tuple) of
2023
+ (connection, read) timeouts.
2024
+ :type _request_timeout: int, tuple(int, int), optional
2025
+ :param _request_auth: set to override the auth_settings for an a single
2026
+ request; this effectively ignores the
2027
+ authentication in the spec for a single request.
2028
+ :type _request_auth: dict, optional
2029
+ :param _content_type: force content-type for the request.
2030
+ :type _content_type: str, Optional
2031
+ :param _headers: set to override the headers for a single
2032
+ request; this effectively ignores the headers
2033
+ in the spec for a single request.
2034
+ :type _headers: dict, optional
2035
+ :param _host_index: set to override the host_index for a single
2036
+ request; this effectively ignores the host_index
2037
+ in the spec for a single request.
2038
+ :type _host_index: int, optional
2039
+ :return: Returns the result object.
2040
+ """ # noqa: E501
2041
+
2042
+ _param = self._get_followed_calendar_events_serialize(
2043
+ var_date=var_date,
2044
+ n=n,
2045
+ offset=offset,
2046
+ _request_auth=_request_auth,
2047
+ _content_type=_content_type,
2048
+ _headers=_headers,
2049
+ _host_index=_host_index
2050
+ )
2051
+
2052
+ _response_types_map: Dict[str, Optional[str]] = {
2053
+ '200': "PaginatedCalendarEventList",
2054
+ '401': "Error",
2055
+ }
2056
+ response_data = await self.api_client.call_api(
2057
+ *_param,
2058
+ _request_timeout=_request_timeout
2059
+ )
2060
+ await response_data.read()
2061
+ return self.api_client.response_deserialize(
2062
+ response_data=response_data,
2063
+ response_types_map=_response_types_map,
2064
+ ).data
2065
+
2066
+
2067
+ @validate_call
2068
+ async def get_followed_calendar_events_with_http_info(
2069
+ self,
2070
+ var_date: Annotated[Optional[datetime], Field(description="The month to search in.")] = None,
2071
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
2072
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="A zero-based offset from the default object sorting from where search results start.")] = None,
2073
+ _request_timeout: Union[
2074
+ None,
2075
+ Annotated[StrictFloat, Field(gt=0)],
2076
+ Tuple[
2077
+ Annotated[StrictFloat, Field(gt=0)],
2078
+ Annotated[StrictFloat, Field(gt=0)]
2079
+ ]
2080
+ ] = None,
2081
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2082
+ _content_type: Optional[StrictStr] = None,
2083
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2084
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2085
+ ) -> ApiResponse[PaginatedCalendarEventList]:
2086
+ """List followed calendar events
2087
+
2088
+ Get a list of a followed calendar events for the month in ?date
2089
+
2090
+ :param var_date: The month to search in.
2091
+ :type var_date: datetime
2092
+ :param n: The number of objects to return.
2093
+ :type n: int
2094
+ :param offset: A zero-based offset from the default object sorting from where search results start.
2095
+ :type offset: int
2096
+ :param _request_timeout: timeout setting for this request. If one
2097
+ number provided, it will be total request
2098
+ timeout. It can also be a pair (tuple) of
2099
+ (connection, read) timeouts.
2100
+ :type _request_timeout: int, tuple(int, int), optional
2101
+ :param _request_auth: set to override the auth_settings for an a single
2102
+ request; this effectively ignores the
2103
+ authentication in the spec for a single request.
2104
+ :type _request_auth: dict, optional
2105
+ :param _content_type: force content-type for the request.
2106
+ :type _content_type: str, Optional
2107
+ :param _headers: set to override the headers for a single
2108
+ request; this effectively ignores the headers
2109
+ in the spec for a single request.
2110
+ :type _headers: dict, optional
2111
+ :param _host_index: set to override the host_index for a single
2112
+ request; this effectively ignores the host_index
2113
+ in the spec for a single request.
2114
+ :type _host_index: int, optional
2115
+ :return: Returns the result object.
2116
+ """ # noqa: E501
2117
+
2118
+ _param = self._get_followed_calendar_events_serialize(
2119
+ var_date=var_date,
2120
+ n=n,
2121
+ offset=offset,
2122
+ _request_auth=_request_auth,
2123
+ _content_type=_content_type,
2124
+ _headers=_headers,
2125
+ _host_index=_host_index
2126
+ )
2127
+
2128
+ _response_types_map: Dict[str, Optional[str]] = {
2129
+ '200': "PaginatedCalendarEventList",
2130
+ '401': "Error",
2131
+ }
2132
+ response_data = await self.api_client.call_api(
2133
+ *_param,
2134
+ _request_timeout=_request_timeout
2135
+ )
2136
+ await response_data.read()
2137
+ return self.api_client.response_deserialize(
2138
+ response_data=response_data,
2139
+ response_types_map=_response_types_map,
2140
+ )
2141
+
2142
+
2143
+ @validate_call
2144
+ async def get_followed_calendar_events_without_preload_content(
2145
+ self,
2146
+ var_date: Annotated[Optional[datetime], Field(description="The month to search in.")] = None,
2147
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
2148
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="A zero-based offset from the default object sorting from where search results start.")] = None,
2149
+ _request_timeout: Union[
2150
+ None,
2151
+ Annotated[StrictFloat, Field(gt=0)],
2152
+ Tuple[
2153
+ Annotated[StrictFloat, Field(gt=0)],
2154
+ Annotated[StrictFloat, Field(gt=0)]
2155
+ ]
2156
+ ] = None,
2157
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2158
+ _content_type: Optional[StrictStr] = None,
2159
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2160
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2161
+ ) -> RESTResponseType:
2162
+ """List followed calendar events
2163
+
2164
+ Get a list of a followed calendar events for the month in ?date
2165
+
2166
+ :param var_date: The month to search in.
2167
+ :type var_date: datetime
2168
+ :param n: The number of objects to return.
2169
+ :type n: int
2170
+ :param offset: A zero-based offset from the default object sorting from where search results start.
2171
+ :type offset: int
2172
+ :param _request_timeout: timeout setting for this request. If one
2173
+ number provided, it will be total request
2174
+ timeout. It can also be a pair (tuple) of
2175
+ (connection, read) timeouts.
2176
+ :type _request_timeout: int, tuple(int, int), optional
2177
+ :param _request_auth: set to override the auth_settings for an a single
2178
+ request; this effectively ignores the
2179
+ authentication in the spec for a single request.
2180
+ :type _request_auth: dict, optional
2181
+ :param _content_type: force content-type for the request.
2182
+ :type _content_type: str, Optional
2183
+ :param _headers: set to override the headers for a single
2184
+ request; this effectively ignores the headers
2185
+ in the spec for a single request.
2186
+ :type _headers: dict, optional
2187
+ :param _host_index: set to override the host_index for a single
2188
+ request; this effectively ignores the host_index
2189
+ in the spec for a single request.
2190
+ :type _host_index: int, optional
2191
+ :return: Returns the result object.
2192
+ """ # noqa: E501
2193
+
2194
+ _param = self._get_followed_calendar_events_serialize(
2195
+ var_date=var_date,
2196
+ n=n,
2197
+ offset=offset,
2198
+ _request_auth=_request_auth,
2199
+ _content_type=_content_type,
2200
+ _headers=_headers,
2201
+ _host_index=_host_index
2202
+ )
2203
+
2204
+ _response_types_map: Dict[str, Optional[str]] = {
2205
+ '200': "PaginatedCalendarEventList",
2206
+ '401': "Error",
2207
+ }
2208
+ response_data = await self.api_client.call_api(
2209
+ *_param,
2210
+ _request_timeout=_request_timeout
2211
+ )
2212
+ return response_data.response
2213
+
2214
+
2215
+ def _get_followed_calendar_events_serialize(
2216
+ self,
2217
+ var_date,
2218
+ n,
2219
+ offset,
2220
+ _request_auth,
2221
+ _content_type,
2222
+ _headers,
2223
+ _host_index,
2224
+ ) -> RequestSerialized:
2225
+
2226
+ _host = None
2227
+
2228
+ _collection_formats: Dict[str, str] = {
2229
+ }
2230
+
2231
+ _path_params: Dict[str, str] = {}
2232
+ _query_params: List[Tuple[str, str]] = []
2233
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2234
+ _form_params: List[Tuple[str, str]] = []
2235
+ _files: Dict[
2236
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
2237
+ ] = {}
2238
+ _body_params: Optional[bytes] = None
2239
+
2240
+ # process the path parameters
2241
+ # process the query parameters
2242
+ if var_date is not None:
2243
+ if isinstance(var_date, datetime):
2244
+ _query_params.append(
2245
+ (
2246
+ 'date',
2247
+ var_date.strftime(
2248
+ self.api_client.configuration.datetime_format
2249
+ )
2250
+ )
2251
+ )
2252
+ else:
2253
+ _query_params.append(('date', var_date))
2254
+
2255
+ if n is not None:
2256
+
2257
+ _query_params.append(('n', n))
2258
+
2259
+ if offset is not None:
2260
+
2261
+ _query_params.append(('offset', offset))
2262
+
2263
+ # process the header parameters
2264
+ # process the form parameters
2265
+ # process the body parameter
2266
+
2267
+
2268
+ # set the HTTP header `Accept`
2269
+ if 'Accept' not in _header_params:
2270
+ _header_params['Accept'] = self.api_client.select_header_accept(
2271
+ [
2272
+ 'application/json'
2273
+ ]
2274
+ )
2275
+
2276
+
2277
+ # authentication setting
2278
+ _auth_settings: List[str] = [
2279
+ 'authCookie'
2280
+ ]
2281
+
2282
+ return self.api_client.param_serialize(
2283
+ method='GET',
2284
+ resource_path='/calendar/following',
2285
+ path_params=_path_params,
2286
+ query_params=_query_params,
2287
+ header_params=_header_params,
2288
+ body=_body_params,
2289
+ post_params=_form_params,
2290
+ files=_files,
2291
+ auth_settings=_auth_settings,
2292
+ collection_formats=_collection_formats,
2293
+ _host=_host,
2294
+ _request_auth=_request_auth
2295
+ )
2296
+
2297
+
2298
+
2299
+
2300
+ @validate_call
2301
+ async def get_group_calendar_event(
2302
+ self,
2303
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
2304
+ calendar_id: Annotated[StrictStr, Field(description="Must be a valid calendar ID.")],
2305
+ _request_timeout: Union[
2306
+ None,
2307
+ Annotated[StrictFloat, Field(gt=0)],
2308
+ Tuple[
2309
+ Annotated[StrictFloat, Field(gt=0)],
2310
+ Annotated[StrictFloat, Field(gt=0)]
2311
+ ]
2312
+ ] = None,
2313
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2314
+ _content_type: Optional[StrictStr] = None,
2315
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2316
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2317
+ ) -> CalendarEvent:
2318
+ """Get a calendar event
2319
+
2320
+ Get a group calendar event
2321
+
2322
+ :param group_id: Must be a valid group ID. (required)
2323
+ :type group_id: str
2324
+ :param calendar_id: Must be a valid calendar ID. (required)
2325
+ :type calendar_id: str
2326
+ :param _request_timeout: timeout setting for this request. If one
2327
+ number provided, it will be total request
2328
+ timeout. It can also be a pair (tuple) of
2329
+ (connection, read) timeouts.
2330
+ :type _request_timeout: int, tuple(int, int), optional
2331
+ :param _request_auth: set to override the auth_settings for an a single
2332
+ request; this effectively ignores the
2333
+ authentication in the spec for a single request.
2334
+ :type _request_auth: dict, optional
2335
+ :param _content_type: force content-type for the request.
2336
+ :type _content_type: str, Optional
2337
+ :param _headers: set to override the headers for a single
2338
+ request; this effectively ignores the headers
2339
+ in the spec for a single request.
2340
+ :type _headers: dict, optional
2341
+ :param _host_index: set to override the host_index for a single
2342
+ request; this effectively ignores the host_index
2343
+ in the spec for a single request.
2344
+ :type _host_index: int, optional
2345
+ :return: Returns the result object.
2346
+ """ # noqa: E501
2347
+
2348
+ _param = self._get_group_calendar_event_serialize(
2349
+ group_id=group_id,
2350
+ calendar_id=calendar_id,
2351
+ _request_auth=_request_auth,
2352
+ _content_type=_content_type,
2353
+ _headers=_headers,
2354
+ _host_index=_host_index
2355
+ )
2356
+
2357
+ _response_types_map: Dict[str, Optional[str]] = {
2358
+ '200': "CalendarEvent",
2359
+ '401': "Error",
2360
+ }
2361
+ response_data = await self.api_client.call_api(
2362
+ *_param,
2363
+ _request_timeout=_request_timeout
2364
+ )
2365
+ await response_data.read()
2366
+ return self.api_client.response_deserialize(
2367
+ response_data=response_data,
2368
+ response_types_map=_response_types_map,
2369
+ ).data
2370
+
2371
+
2372
+ @validate_call
2373
+ async def get_group_calendar_event_with_http_info(
2374
+ self,
2375
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
2376
+ calendar_id: Annotated[StrictStr, Field(description="Must be a valid calendar ID.")],
2377
+ _request_timeout: Union[
2378
+ None,
2379
+ Annotated[StrictFloat, Field(gt=0)],
2380
+ Tuple[
2381
+ Annotated[StrictFloat, Field(gt=0)],
2382
+ Annotated[StrictFloat, Field(gt=0)]
2383
+ ]
2384
+ ] = None,
2385
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2386
+ _content_type: Optional[StrictStr] = None,
2387
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2388
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2389
+ ) -> ApiResponse[CalendarEvent]:
2390
+ """Get a calendar event
2391
+
2392
+ Get a group calendar event
2393
+
2394
+ :param group_id: Must be a valid group ID. (required)
2395
+ :type group_id: str
2396
+ :param calendar_id: Must be a valid calendar ID. (required)
2397
+ :type calendar_id: str
2398
+ :param _request_timeout: timeout setting for this request. If one
2399
+ number provided, it will be total request
2400
+ timeout. It can also be a pair (tuple) of
2401
+ (connection, read) timeouts.
2402
+ :type _request_timeout: int, tuple(int, int), optional
2403
+ :param _request_auth: set to override the auth_settings for an a single
2404
+ request; this effectively ignores the
2405
+ authentication in the spec for a single request.
2406
+ :type _request_auth: dict, optional
2407
+ :param _content_type: force content-type for the request.
2408
+ :type _content_type: str, Optional
2409
+ :param _headers: set to override the headers for a single
2410
+ request; this effectively ignores the headers
2411
+ in the spec for a single request.
2412
+ :type _headers: dict, optional
2413
+ :param _host_index: set to override the host_index for a single
2414
+ request; this effectively ignores the host_index
2415
+ in the spec for a single request.
2416
+ :type _host_index: int, optional
2417
+ :return: Returns the result object.
2418
+ """ # noqa: E501
2419
+
2420
+ _param = self._get_group_calendar_event_serialize(
2421
+ group_id=group_id,
2422
+ calendar_id=calendar_id,
2423
+ _request_auth=_request_auth,
2424
+ _content_type=_content_type,
2425
+ _headers=_headers,
2426
+ _host_index=_host_index
2427
+ )
2428
+
2429
+ _response_types_map: Dict[str, Optional[str]] = {
2430
+ '200': "CalendarEvent",
2431
+ '401': "Error",
2432
+ }
2433
+ response_data = await self.api_client.call_api(
2434
+ *_param,
2435
+ _request_timeout=_request_timeout
2436
+ )
2437
+ await response_data.read()
2438
+ return self.api_client.response_deserialize(
2439
+ response_data=response_data,
2440
+ response_types_map=_response_types_map,
2441
+ )
2442
+
2443
+
2444
+ @validate_call
2445
+ async def get_group_calendar_event_without_preload_content(
2446
+ self,
2447
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
2448
+ calendar_id: Annotated[StrictStr, Field(description="Must be a valid calendar ID.")],
2449
+ _request_timeout: Union[
2450
+ None,
2451
+ Annotated[StrictFloat, Field(gt=0)],
2452
+ Tuple[
2453
+ Annotated[StrictFloat, Field(gt=0)],
2454
+ Annotated[StrictFloat, Field(gt=0)]
2455
+ ]
2456
+ ] = None,
2457
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2458
+ _content_type: Optional[StrictStr] = None,
2459
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2460
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2461
+ ) -> RESTResponseType:
2462
+ """Get a calendar event
2463
+
2464
+ Get a group calendar event
2465
+
2466
+ :param group_id: Must be a valid group ID. (required)
2467
+ :type group_id: str
2468
+ :param calendar_id: Must be a valid calendar ID. (required)
2469
+ :type calendar_id: str
2470
+ :param _request_timeout: timeout setting for this request. If one
2471
+ number provided, it will be total request
2472
+ timeout. It can also be a pair (tuple) of
2473
+ (connection, read) timeouts.
2474
+ :type _request_timeout: int, tuple(int, int), optional
2475
+ :param _request_auth: set to override the auth_settings for an a single
2476
+ request; this effectively ignores the
2477
+ authentication in the spec for a single request.
2478
+ :type _request_auth: dict, optional
2479
+ :param _content_type: force content-type for the request.
2480
+ :type _content_type: str, Optional
2481
+ :param _headers: set to override the headers for a single
2482
+ request; this effectively ignores the headers
2483
+ in the spec for a single request.
2484
+ :type _headers: dict, optional
2485
+ :param _host_index: set to override the host_index for a single
2486
+ request; this effectively ignores the host_index
2487
+ in the spec for a single request.
2488
+ :type _host_index: int, optional
2489
+ :return: Returns the result object.
2490
+ """ # noqa: E501
2491
+
2492
+ _param = self._get_group_calendar_event_serialize(
2493
+ group_id=group_id,
2494
+ calendar_id=calendar_id,
2495
+ _request_auth=_request_auth,
2496
+ _content_type=_content_type,
2497
+ _headers=_headers,
2498
+ _host_index=_host_index
2499
+ )
2500
+
2501
+ _response_types_map: Dict[str, Optional[str]] = {
2502
+ '200': "CalendarEvent",
2503
+ '401': "Error",
2504
+ }
2505
+ response_data = await self.api_client.call_api(
2506
+ *_param,
2507
+ _request_timeout=_request_timeout
2508
+ )
2509
+ return response_data.response
2510
+
2511
+
2512
+ def _get_group_calendar_event_serialize(
2513
+ self,
2514
+ group_id,
2515
+ calendar_id,
2516
+ _request_auth,
2517
+ _content_type,
2518
+ _headers,
2519
+ _host_index,
2520
+ ) -> RequestSerialized:
2521
+
2522
+ _host = None
2523
+
2524
+ _collection_formats: Dict[str, str] = {
2525
+ }
2526
+
2527
+ _path_params: Dict[str, str] = {}
2528
+ _query_params: List[Tuple[str, str]] = []
2529
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2530
+ _form_params: List[Tuple[str, str]] = []
2531
+ _files: Dict[
2532
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
2533
+ ] = {}
2534
+ _body_params: Optional[bytes] = None
2535
+
2536
+ # process the path parameters
2537
+ if group_id is not None:
2538
+ _path_params['groupId'] = group_id
2539
+ if calendar_id is not None:
2540
+ _path_params['calendarId'] = calendar_id
2541
+ # process the query parameters
2542
+ # process the header parameters
2543
+ # process the form parameters
2544
+ # process the body parameter
2545
+
2546
+
2547
+ # set the HTTP header `Accept`
2548
+ if 'Accept' not in _header_params:
2549
+ _header_params['Accept'] = self.api_client.select_header_accept(
2550
+ [
2551
+ 'application/json'
2552
+ ]
2553
+ )
2554
+
2555
+
2556
+ # authentication setting
2557
+ _auth_settings: List[str] = [
2558
+ 'authCookie'
2559
+ ]
2560
+
2561
+ return self.api_client.param_serialize(
2562
+ method='GET',
2563
+ resource_path='/calendar/{groupId}/{calendarId}',
2564
+ path_params=_path_params,
2565
+ query_params=_query_params,
2566
+ header_params=_header_params,
2567
+ body=_body_params,
2568
+ post_params=_form_params,
2569
+ files=_files,
2570
+ auth_settings=_auth_settings,
2571
+ collection_formats=_collection_formats,
2572
+ _host=_host,
2573
+ _request_auth=_request_auth
2574
+ )
2575
+
2576
+
2577
+
2578
+
2579
+ @validate_call
2580
+ async def get_group_calendar_event_ics(
2581
+ self,
2582
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
2583
+ calendar_id: Annotated[StrictStr, Field(description="Must be a valid calendar ID.")],
2584
+ _request_timeout: Union[
2585
+ None,
2586
+ Annotated[StrictFloat, Field(gt=0)],
2587
+ Tuple[
2588
+ Annotated[StrictFloat, Field(gt=0)],
2589
+ Annotated[StrictFloat, Field(gt=0)]
2590
+ ]
2591
+ ] = None,
2592
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2593
+ _content_type: Optional[StrictStr] = None,
2594
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2595
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2596
+ ) -> bytes:
2597
+ """Download calendar event as ICS
2598
+
2599
+ Returns the specified calendar in iCalendar (ICS) format.
2600
+
2601
+ :param group_id: Must be a valid group ID. (required)
2602
+ :type group_id: str
2603
+ :param calendar_id: Must be a valid calendar ID. (required)
2604
+ :type calendar_id: str
2605
+ :param _request_timeout: timeout setting for this request. If one
2606
+ number provided, it will be total request
2607
+ timeout. It can also be a pair (tuple) of
2608
+ (connection, read) timeouts.
2609
+ :type _request_timeout: int, tuple(int, int), optional
2610
+ :param _request_auth: set to override the auth_settings for an a single
2611
+ request; this effectively ignores the
2612
+ authentication in the spec for a single request.
2613
+ :type _request_auth: dict, optional
2614
+ :param _content_type: force content-type for the request.
2615
+ :type _content_type: str, Optional
2616
+ :param _headers: set to override the headers for a single
2617
+ request; this effectively ignores the headers
2618
+ in the spec for a single request.
2619
+ :type _headers: dict, optional
2620
+ :param _host_index: set to override the host_index for a single
2621
+ request; this effectively ignores the host_index
2622
+ in the spec for a single request.
2623
+ :type _host_index: int, optional
2624
+ :return: Returns the result object.
2625
+ """ # noqa: E501
2626
+
2627
+ _param = self._get_group_calendar_event_ics_serialize(
2628
+ group_id=group_id,
2629
+ calendar_id=calendar_id,
2630
+ _request_auth=_request_auth,
2631
+ _content_type=_content_type,
2632
+ _headers=_headers,
2633
+ _host_index=_host_index
2634
+ )
2635
+
2636
+ _response_types_map: Dict[str, Optional[str]] = {
2637
+ '200': "bytes",
2638
+ '401': "Error",
2639
+ '404': "Error",
2640
+ }
2641
+ response_data = await self.api_client.call_api(
2642
+ *_param,
2643
+ _request_timeout=_request_timeout
2644
+ )
2645
+ await response_data.read()
2646
+ return self.api_client.response_deserialize(
2647
+ response_data=response_data,
2648
+ response_types_map=_response_types_map,
2649
+ ).data
2650
+
2651
+
2652
+ @validate_call
2653
+ async def get_group_calendar_event_ics_with_http_info(
2654
+ self,
2655
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
2656
+ calendar_id: Annotated[StrictStr, Field(description="Must be a valid calendar ID.")],
2657
+ _request_timeout: Union[
2658
+ None,
2659
+ Annotated[StrictFloat, Field(gt=0)],
2660
+ Tuple[
2661
+ Annotated[StrictFloat, Field(gt=0)],
2662
+ Annotated[StrictFloat, Field(gt=0)]
2663
+ ]
2664
+ ] = None,
2665
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2666
+ _content_type: Optional[StrictStr] = None,
2667
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2668
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2669
+ ) -> ApiResponse[bytes]:
2670
+ """Download calendar event as ICS
2671
+
2672
+ Returns the specified calendar in iCalendar (ICS) format.
2673
+
2674
+ :param group_id: Must be a valid group ID. (required)
2675
+ :type group_id: str
2676
+ :param calendar_id: Must be a valid calendar ID. (required)
2677
+ :type calendar_id: str
2678
+ :param _request_timeout: timeout setting for this request. If one
2679
+ number provided, it will be total request
2680
+ timeout. It can also be a pair (tuple) of
2681
+ (connection, read) timeouts.
2682
+ :type _request_timeout: int, tuple(int, int), optional
2683
+ :param _request_auth: set to override the auth_settings for an a single
2684
+ request; this effectively ignores the
2685
+ authentication in the spec for a single request.
2686
+ :type _request_auth: dict, optional
2687
+ :param _content_type: force content-type for the request.
2688
+ :type _content_type: str, Optional
2689
+ :param _headers: set to override the headers for a single
2690
+ request; this effectively ignores the headers
2691
+ in the spec for a single request.
2692
+ :type _headers: dict, optional
2693
+ :param _host_index: set to override the host_index for a single
2694
+ request; this effectively ignores the host_index
2695
+ in the spec for a single request.
2696
+ :type _host_index: int, optional
2697
+ :return: Returns the result object.
2698
+ """ # noqa: E501
2699
+
2700
+ _param = self._get_group_calendar_event_ics_serialize(
2701
+ group_id=group_id,
2702
+ calendar_id=calendar_id,
2703
+ _request_auth=_request_auth,
2704
+ _content_type=_content_type,
2705
+ _headers=_headers,
2706
+ _host_index=_host_index
2707
+ )
2708
+
2709
+ _response_types_map: Dict[str, Optional[str]] = {
2710
+ '200': "bytes",
2711
+ '401': "Error",
2712
+ '404': "Error",
2713
+ }
2714
+ response_data = await self.api_client.call_api(
2715
+ *_param,
2716
+ _request_timeout=_request_timeout
2717
+ )
2718
+ await response_data.read()
2719
+ return self.api_client.response_deserialize(
2720
+ response_data=response_data,
2721
+ response_types_map=_response_types_map,
2722
+ )
2723
+
2724
+
2725
+ @validate_call
2726
+ async def get_group_calendar_event_ics_without_preload_content(
2727
+ self,
2728
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
2729
+ calendar_id: Annotated[StrictStr, Field(description="Must be a valid calendar ID.")],
2730
+ _request_timeout: Union[
2731
+ None,
2732
+ Annotated[StrictFloat, Field(gt=0)],
2733
+ Tuple[
2734
+ Annotated[StrictFloat, Field(gt=0)],
2735
+ Annotated[StrictFloat, Field(gt=0)]
2736
+ ]
2737
+ ] = None,
2738
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2739
+ _content_type: Optional[StrictStr] = None,
2740
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2741
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2742
+ ) -> RESTResponseType:
2743
+ """Download calendar event as ICS
2744
+
2745
+ Returns the specified calendar in iCalendar (ICS) format.
2746
+
2747
+ :param group_id: Must be a valid group ID. (required)
2748
+ :type group_id: str
2749
+ :param calendar_id: Must be a valid calendar ID. (required)
2750
+ :type calendar_id: str
2751
+ :param _request_timeout: timeout setting for this request. If one
2752
+ number provided, it will be total request
2753
+ timeout. It can also be a pair (tuple) of
2754
+ (connection, read) timeouts.
2755
+ :type _request_timeout: int, tuple(int, int), optional
2756
+ :param _request_auth: set to override the auth_settings for an a single
2757
+ request; this effectively ignores the
2758
+ authentication in the spec for a single request.
2759
+ :type _request_auth: dict, optional
2760
+ :param _content_type: force content-type for the request.
2761
+ :type _content_type: str, Optional
2762
+ :param _headers: set to override the headers for a single
2763
+ request; this effectively ignores the headers
2764
+ in the spec for a single request.
2765
+ :type _headers: dict, optional
2766
+ :param _host_index: set to override the host_index for a single
2767
+ request; this effectively ignores the host_index
2768
+ in the spec for a single request.
2769
+ :type _host_index: int, optional
2770
+ :return: Returns the result object.
2771
+ """ # noqa: E501
2772
+
2773
+ _param = self._get_group_calendar_event_ics_serialize(
2774
+ group_id=group_id,
2775
+ calendar_id=calendar_id,
2776
+ _request_auth=_request_auth,
2777
+ _content_type=_content_type,
2778
+ _headers=_headers,
2779
+ _host_index=_host_index
2780
+ )
2781
+
2782
+ _response_types_map: Dict[str, Optional[str]] = {
2783
+ '200': "bytes",
2784
+ '401': "Error",
2785
+ '404': "Error",
2786
+ }
2787
+ response_data = await self.api_client.call_api(
2788
+ *_param,
2789
+ _request_timeout=_request_timeout
2790
+ )
2791
+ return response_data.response
2792
+
2793
+
2794
+ def _get_group_calendar_event_ics_serialize(
2795
+ self,
2796
+ group_id,
2797
+ calendar_id,
2798
+ _request_auth,
2799
+ _content_type,
2800
+ _headers,
2801
+ _host_index,
2802
+ ) -> RequestSerialized:
2803
+
2804
+ _host = None
2805
+
2806
+ _collection_formats: Dict[str, str] = {
2807
+ }
2808
+
2809
+ _path_params: Dict[str, str] = {}
2810
+ _query_params: List[Tuple[str, str]] = []
2811
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2812
+ _form_params: List[Tuple[str, str]] = []
2813
+ _files: Dict[
2814
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
2815
+ ] = {}
2816
+ _body_params: Optional[bytes] = None
2817
+
2818
+ # process the path parameters
2819
+ if group_id is not None:
2820
+ _path_params['groupId'] = group_id
2821
+ if calendar_id is not None:
2822
+ _path_params['calendarId'] = calendar_id
2823
+ # process the query parameters
2824
+ # process the header parameters
2825
+ # process the form parameters
2826
+ # process the body parameter
2827
+
2828
+
2829
+ # set the HTTP header `Accept`
2830
+ if 'Accept' not in _header_params:
2831
+ _header_params['Accept'] = self.api_client.select_header_accept(
2832
+ [
2833
+ 'text/calendar',
2834
+ 'application/json'
2835
+ ]
2836
+ )
2837
+
2838
+
2839
+ # authentication setting
2840
+ _auth_settings: List[str] = [
2841
+ ]
2842
+
2843
+ return self.api_client.param_serialize(
2844
+ method='GET',
2845
+ resource_path='/calendar/{groupId}/{calendarId}.ics',
2846
+ path_params=_path_params,
2847
+ query_params=_query_params,
2848
+ header_params=_header_params,
2849
+ body=_body_params,
2850
+ post_params=_form_params,
2851
+ files=_files,
2852
+ auth_settings=_auth_settings,
2853
+ collection_formats=_collection_formats,
2854
+ _host=_host,
2855
+ _request_auth=_request_auth
2856
+ )
2857
+
2858
+
2859
+
2860
+
2861
+ @validate_call
2862
+ async def get_group_calendar_events(
2863
+ self,
2864
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
2865
+ var_date: Annotated[Optional[datetime], Field(description="The month to search in.")] = None,
2866
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
2867
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="A zero-based offset from the default object sorting from where search results start.")] = None,
2868
+ _request_timeout: Union[
2869
+ None,
2870
+ Annotated[StrictFloat, Field(gt=0)],
2871
+ Tuple[
2872
+ Annotated[StrictFloat, Field(gt=0)],
2873
+ Annotated[StrictFloat, Field(gt=0)]
2874
+ ]
2875
+ ] = None,
2876
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2877
+ _content_type: Optional[StrictStr] = None,
2878
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2879
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2880
+ ) -> PaginatedCalendarEventList:
2881
+ """List a group's calendar events
2882
+
2883
+ Get a list of a group's calendar events
2884
+
2885
+ :param group_id: Must be a valid group ID. (required)
2886
+ :type group_id: str
2887
+ :param var_date: The month to search in.
2888
+ :type var_date: datetime
2889
+ :param n: The number of objects to return.
2890
+ :type n: int
2891
+ :param offset: A zero-based offset from the default object sorting from where search results start.
2892
+ :type offset: int
2893
+ :param _request_timeout: timeout setting for this request. If one
2894
+ number provided, it will be total request
2895
+ timeout. It can also be a pair (tuple) of
2896
+ (connection, read) timeouts.
2897
+ :type _request_timeout: int, tuple(int, int), optional
2898
+ :param _request_auth: set to override the auth_settings for an a single
2899
+ request; this effectively ignores the
2900
+ authentication in the spec for a single request.
2901
+ :type _request_auth: dict, optional
2902
+ :param _content_type: force content-type for the request.
2903
+ :type _content_type: str, Optional
2904
+ :param _headers: set to override the headers for a single
2905
+ request; this effectively ignores the headers
2906
+ in the spec for a single request.
2907
+ :type _headers: dict, optional
2908
+ :param _host_index: set to override the host_index for a single
2909
+ request; this effectively ignores the host_index
2910
+ in the spec for a single request.
2911
+ :type _host_index: int, optional
2912
+ :return: Returns the result object.
2913
+ """ # noqa: E501
2914
+
2915
+ _param = self._get_group_calendar_events_serialize(
2916
+ group_id=group_id,
2917
+ var_date=var_date,
2918
+ n=n,
2919
+ offset=offset,
2920
+ _request_auth=_request_auth,
2921
+ _content_type=_content_type,
2922
+ _headers=_headers,
2923
+ _host_index=_host_index
2924
+ )
2925
+
2926
+ _response_types_map: Dict[str, Optional[str]] = {
2927
+ '200': "PaginatedCalendarEventList",
2928
+ '401': "Error",
2929
+ }
2930
+ response_data = await self.api_client.call_api(
2931
+ *_param,
2932
+ _request_timeout=_request_timeout
2933
+ )
2934
+ await response_data.read()
2935
+ return self.api_client.response_deserialize(
2936
+ response_data=response_data,
2937
+ response_types_map=_response_types_map,
2938
+ ).data
2939
+
2940
+
2941
+ @validate_call
2942
+ async def get_group_calendar_events_with_http_info(
2943
+ self,
2944
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
2945
+ var_date: Annotated[Optional[datetime], Field(description="The month to search in.")] = None,
2946
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
2947
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="A zero-based offset from the default object sorting from where search results start.")] = None,
2948
+ _request_timeout: Union[
2949
+ None,
2950
+ Annotated[StrictFloat, Field(gt=0)],
2951
+ Tuple[
2952
+ Annotated[StrictFloat, Field(gt=0)],
2953
+ Annotated[StrictFloat, Field(gt=0)]
2954
+ ]
2955
+ ] = None,
2956
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2957
+ _content_type: Optional[StrictStr] = None,
2958
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2959
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2960
+ ) -> ApiResponse[PaginatedCalendarEventList]:
2961
+ """List a group's calendar events
2962
+
2963
+ Get a list of a group's calendar events
2964
+
2965
+ :param group_id: Must be a valid group ID. (required)
2966
+ :type group_id: str
2967
+ :param var_date: The month to search in.
2968
+ :type var_date: datetime
2969
+ :param n: The number of objects to return.
2970
+ :type n: int
2971
+ :param offset: A zero-based offset from the default object sorting from where search results start.
2972
+ :type offset: int
2973
+ :param _request_timeout: timeout setting for this request. If one
2974
+ number provided, it will be total request
2975
+ timeout. It can also be a pair (tuple) of
2976
+ (connection, read) timeouts.
2977
+ :type _request_timeout: int, tuple(int, int), optional
2978
+ :param _request_auth: set to override the auth_settings for an a single
2979
+ request; this effectively ignores the
2980
+ authentication in the spec for a single request.
2981
+ :type _request_auth: dict, optional
2982
+ :param _content_type: force content-type for the request.
2983
+ :type _content_type: str, Optional
2984
+ :param _headers: set to override the headers for a single
2985
+ request; this effectively ignores the headers
2986
+ in the spec for a single request.
2987
+ :type _headers: dict, optional
2988
+ :param _host_index: set to override the host_index for a single
2989
+ request; this effectively ignores the host_index
2990
+ in the spec for a single request.
2991
+ :type _host_index: int, optional
2992
+ :return: Returns the result object.
2993
+ """ # noqa: E501
2994
+
2995
+ _param = self._get_group_calendar_events_serialize(
2996
+ group_id=group_id,
2997
+ var_date=var_date,
2998
+ n=n,
2999
+ offset=offset,
3000
+ _request_auth=_request_auth,
3001
+ _content_type=_content_type,
3002
+ _headers=_headers,
3003
+ _host_index=_host_index
3004
+ )
3005
+
3006
+ _response_types_map: Dict[str, Optional[str]] = {
3007
+ '200': "PaginatedCalendarEventList",
3008
+ '401': "Error",
3009
+ }
3010
+ response_data = await self.api_client.call_api(
3011
+ *_param,
3012
+ _request_timeout=_request_timeout
3013
+ )
3014
+ await response_data.read()
3015
+ return self.api_client.response_deserialize(
3016
+ response_data=response_data,
3017
+ response_types_map=_response_types_map,
3018
+ )
3019
+
3020
+
3021
+ @validate_call
3022
+ async def get_group_calendar_events_without_preload_content(
3023
+ self,
3024
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
3025
+ var_date: Annotated[Optional[datetime], Field(description="The month to search in.")] = None,
3026
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
3027
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="A zero-based offset from the default object sorting from where search results start.")] = None,
3028
+ _request_timeout: Union[
3029
+ None,
3030
+ Annotated[StrictFloat, Field(gt=0)],
3031
+ Tuple[
3032
+ Annotated[StrictFloat, Field(gt=0)],
3033
+ Annotated[StrictFloat, Field(gt=0)]
3034
+ ]
3035
+ ] = None,
3036
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3037
+ _content_type: Optional[StrictStr] = None,
3038
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3039
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3040
+ ) -> RESTResponseType:
3041
+ """List a group's calendar events
3042
+
3043
+ Get a list of a group's calendar events
3044
+
3045
+ :param group_id: Must be a valid group ID. (required)
3046
+ :type group_id: str
3047
+ :param var_date: The month to search in.
3048
+ :type var_date: datetime
3049
+ :param n: The number of objects to return.
3050
+ :type n: int
3051
+ :param offset: A zero-based offset from the default object sorting from where search results start.
3052
+ :type offset: int
3053
+ :param _request_timeout: timeout setting for this request. If one
3054
+ number provided, it will be total request
3055
+ timeout. It can also be a pair (tuple) of
3056
+ (connection, read) timeouts.
3057
+ :type _request_timeout: int, tuple(int, int), optional
3058
+ :param _request_auth: set to override the auth_settings for an a single
3059
+ request; this effectively ignores the
3060
+ authentication in the spec for a single request.
3061
+ :type _request_auth: dict, optional
3062
+ :param _content_type: force content-type for the request.
3063
+ :type _content_type: str, Optional
3064
+ :param _headers: set to override the headers for a single
3065
+ request; this effectively ignores the headers
3066
+ in the spec for a single request.
3067
+ :type _headers: dict, optional
3068
+ :param _host_index: set to override the host_index for a single
3069
+ request; this effectively ignores the host_index
3070
+ in the spec for a single request.
3071
+ :type _host_index: int, optional
3072
+ :return: Returns the result object.
3073
+ """ # noqa: E501
3074
+
3075
+ _param = self._get_group_calendar_events_serialize(
3076
+ group_id=group_id,
3077
+ var_date=var_date,
3078
+ n=n,
3079
+ offset=offset,
3080
+ _request_auth=_request_auth,
3081
+ _content_type=_content_type,
3082
+ _headers=_headers,
3083
+ _host_index=_host_index
3084
+ )
3085
+
3086
+ _response_types_map: Dict[str, Optional[str]] = {
3087
+ '200': "PaginatedCalendarEventList",
3088
+ '401': "Error",
3089
+ }
3090
+ response_data = await self.api_client.call_api(
3091
+ *_param,
3092
+ _request_timeout=_request_timeout
3093
+ )
3094
+ return response_data.response
3095
+
3096
+
3097
+ def _get_group_calendar_events_serialize(
3098
+ self,
3099
+ group_id,
3100
+ var_date,
3101
+ n,
3102
+ offset,
3103
+ _request_auth,
3104
+ _content_type,
3105
+ _headers,
3106
+ _host_index,
3107
+ ) -> RequestSerialized:
3108
+
3109
+ _host = None
3110
+
3111
+ _collection_formats: Dict[str, str] = {
3112
+ }
3113
+
3114
+ _path_params: Dict[str, str] = {}
3115
+ _query_params: List[Tuple[str, str]] = []
3116
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3117
+ _form_params: List[Tuple[str, str]] = []
3118
+ _files: Dict[
3119
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
3120
+ ] = {}
3121
+ _body_params: Optional[bytes] = None
3122
+
3123
+ # process the path parameters
3124
+ if group_id is not None:
3125
+ _path_params['groupId'] = group_id
3126
+ # process the query parameters
3127
+ if var_date is not None:
3128
+ if isinstance(var_date, datetime):
3129
+ _query_params.append(
3130
+ (
3131
+ 'date',
3132
+ var_date.strftime(
3133
+ self.api_client.configuration.datetime_format
3134
+ )
3135
+ )
3136
+ )
3137
+ else:
3138
+ _query_params.append(('date', var_date))
3139
+
3140
+ if n is not None:
3141
+
3142
+ _query_params.append(('n', n))
3143
+
3144
+ if offset is not None:
3145
+
3146
+ _query_params.append(('offset', offset))
3147
+
3148
+ # process the header parameters
3149
+ # process the form parameters
3150
+ # process the body parameter
3151
+
3152
+
3153
+ # set the HTTP header `Accept`
3154
+ if 'Accept' not in _header_params:
3155
+ _header_params['Accept'] = self.api_client.select_header_accept(
3156
+ [
3157
+ 'application/json'
3158
+ ]
3159
+ )
3160
+
3161
+
3162
+ # authentication setting
3163
+ _auth_settings: List[str] = [
3164
+ 'authCookie'
3165
+ ]
3166
+
3167
+ return self.api_client.param_serialize(
3168
+ method='GET',
3169
+ resource_path='/calendar/{groupId}',
3170
+ path_params=_path_params,
3171
+ query_params=_query_params,
3172
+ header_params=_header_params,
3173
+ body=_body_params,
3174
+ post_params=_form_params,
3175
+ files=_files,
3176
+ auth_settings=_auth_settings,
3177
+ collection_formats=_collection_formats,
3178
+ _host=_host,
3179
+ _request_auth=_request_auth
3180
+ )
3181
+
3182
+
3183
+
3184
+
3185
+ @validate_call
3186
+ async def get_group_next_calendar_event(
3187
+ self,
3188
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
3189
+ _request_timeout: Union[
3190
+ None,
3191
+ Annotated[StrictFloat, Field(gt=0)],
3192
+ Tuple[
3193
+ Annotated[StrictFloat, Field(gt=0)],
3194
+ Annotated[StrictFloat, Field(gt=0)]
3195
+ ]
3196
+ ] = None,
3197
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3198
+ _content_type: Optional[StrictStr] = None,
3199
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3200
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3201
+ ) -> CalendarEvent:
3202
+ """Get next calendar event
3203
+
3204
+ Get the closest future calendar event scheduled for a group
3205
+
3206
+ :param group_id: Must be a valid group ID. (required)
3207
+ :type group_id: str
3208
+ :param _request_timeout: timeout setting for this request. If one
3209
+ number provided, it will be total request
3210
+ timeout. It can also be a pair (tuple) of
3211
+ (connection, read) timeouts.
3212
+ :type _request_timeout: int, tuple(int, int), optional
3213
+ :param _request_auth: set to override the auth_settings for an a single
3214
+ request; this effectively ignores the
3215
+ authentication in the spec for a single request.
3216
+ :type _request_auth: dict, optional
3217
+ :param _content_type: force content-type for the request.
3218
+ :type _content_type: str, Optional
3219
+ :param _headers: set to override the headers for a single
3220
+ request; this effectively ignores the headers
3221
+ in the spec for a single request.
3222
+ :type _headers: dict, optional
3223
+ :param _host_index: set to override the host_index for a single
3224
+ request; this effectively ignores the host_index
3225
+ in the spec for a single request.
3226
+ :type _host_index: int, optional
3227
+ :return: Returns the result object.
3228
+ """ # noqa: E501
3229
+
3230
+ _param = self._get_group_next_calendar_event_serialize(
3231
+ group_id=group_id,
3232
+ _request_auth=_request_auth,
3233
+ _content_type=_content_type,
3234
+ _headers=_headers,
3235
+ _host_index=_host_index
3236
+ )
3237
+
3238
+ _response_types_map: Dict[str, Optional[str]] = {
3239
+ '200': "CalendarEvent",
3240
+ '401': "Error",
3241
+ '404': "Error",
3242
+ }
3243
+ response_data = await self.api_client.call_api(
3244
+ *_param,
3245
+ _request_timeout=_request_timeout
3246
+ )
3247
+ await response_data.read()
3248
+ return self.api_client.response_deserialize(
3249
+ response_data=response_data,
3250
+ response_types_map=_response_types_map,
3251
+ ).data
3252
+
3253
+
3254
+ @validate_call
3255
+ async def get_group_next_calendar_event_with_http_info(
3256
+ self,
3257
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
3258
+ _request_timeout: Union[
3259
+ None,
3260
+ Annotated[StrictFloat, Field(gt=0)],
3261
+ Tuple[
3262
+ Annotated[StrictFloat, Field(gt=0)],
3263
+ Annotated[StrictFloat, Field(gt=0)]
3264
+ ]
3265
+ ] = None,
3266
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3267
+ _content_type: Optional[StrictStr] = None,
3268
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3269
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3270
+ ) -> ApiResponse[CalendarEvent]:
3271
+ """Get next calendar event
3272
+
3273
+ Get the closest future calendar event scheduled for a group
3274
+
3275
+ :param group_id: Must be a valid group ID. (required)
3276
+ :type group_id: str
3277
+ :param _request_timeout: timeout setting for this request. If one
3278
+ number provided, it will be total request
3279
+ timeout. It can also be a pair (tuple) of
3280
+ (connection, read) timeouts.
3281
+ :type _request_timeout: int, tuple(int, int), optional
3282
+ :param _request_auth: set to override the auth_settings for an a single
3283
+ request; this effectively ignores the
3284
+ authentication in the spec for a single request.
3285
+ :type _request_auth: dict, optional
3286
+ :param _content_type: force content-type for the request.
3287
+ :type _content_type: str, Optional
3288
+ :param _headers: set to override the headers for a single
3289
+ request; this effectively ignores the headers
3290
+ in the spec for a single request.
3291
+ :type _headers: dict, optional
3292
+ :param _host_index: set to override the host_index for a single
3293
+ request; this effectively ignores the host_index
3294
+ in the spec for a single request.
3295
+ :type _host_index: int, optional
3296
+ :return: Returns the result object.
3297
+ """ # noqa: E501
3298
+
3299
+ _param = self._get_group_next_calendar_event_serialize(
3300
+ group_id=group_id,
3301
+ _request_auth=_request_auth,
3302
+ _content_type=_content_type,
3303
+ _headers=_headers,
3304
+ _host_index=_host_index
3305
+ )
3306
+
3307
+ _response_types_map: Dict[str, Optional[str]] = {
3308
+ '200': "CalendarEvent",
3309
+ '401': "Error",
3310
+ '404': "Error",
3311
+ }
3312
+ response_data = await self.api_client.call_api(
3313
+ *_param,
3314
+ _request_timeout=_request_timeout
3315
+ )
3316
+ await response_data.read()
3317
+ return self.api_client.response_deserialize(
3318
+ response_data=response_data,
3319
+ response_types_map=_response_types_map,
3320
+ )
3321
+
3322
+
3323
+ @validate_call
3324
+ async def get_group_next_calendar_event_without_preload_content(
3325
+ self,
3326
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
3327
+ _request_timeout: Union[
3328
+ None,
3329
+ Annotated[StrictFloat, Field(gt=0)],
3330
+ Tuple[
3331
+ Annotated[StrictFloat, Field(gt=0)],
3332
+ Annotated[StrictFloat, Field(gt=0)]
3333
+ ]
3334
+ ] = None,
3335
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3336
+ _content_type: Optional[StrictStr] = None,
3337
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3338
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3339
+ ) -> RESTResponseType:
3340
+ """Get next calendar event
3341
+
3342
+ Get the closest future calendar event scheduled for a group
3343
+
3344
+ :param group_id: Must be a valid group ID. (required)
3345
+ :type group_id: str
3346
+ :param _request_timeout: timeout setting for this request. If one
3347
+ number provided, it will be total request
3348
+ timeout. It can also be a pair (tuple) of
3349
+ (connection, read) timeouts.
3350
+ :type _request_timeout: int, tuple(int, int), optional
3351
+ :param _request_auth: set to override the auth_settings for an a single
3352
+ request; this effectively ignores the
3353
+ authentication in the spec for a single request.
3354
+ :type _request_auth: dict, optional
3355
+ :param _content_type: force content-type for the request.
3356
+ :type _content_type: str, Optional
3357
+ :param _headers: set to override the headers for a single
3358
+ request; this effectively ignores the headers
3359
+ in the spec for a single request.
3360
+ :type _headers: dict, optional
3361
+ :param _host_index: set to override the host_index for a single
3362
+ request; this effectively ignores the host_index
3363
+ in the spec for a single request.
3364
+ :type _host_index: int, optional
3365
+ :return: Returns the result object.
3366
+ """ # noqa: E501
3367
+
3368
+ _param = self._get_group_next_calendar_event_serialize(
3369
+ group_id=group_id,
3370
+ _request_auth=_request_auth,
3371
+ _content_type=_content_type,
3372
+ _headers=_headers,
3373
+ _host_index=_host_index
3374
+ )
3375
+
3376
+ _response_types_map: Dict[str, Optional[str]] = {
3377
+ '200': "CalendarEvent",
3378
+ '401': "Error",
3379
+ '404': "Error",
3380
+ }
3381
+ response_data = await self.api_client.call_api(
3382
+ *_param,
3383
+ _request_timeout=_request_timeout
3384
+ )
3385
+ return response_data.response
3386
+
3387
+
3388
+ def _get_group_next_calendar_event_serialize(
3389
+ self,
3390
+ group_id,
3391
+ _request_auth,
3392
+ _content_type,
3393
+ _headers,
3394
+ _host_index,
3395
+ ) -> RequestSerialized:
3396
+
3397
+ _host = None
3398
+
3399
+ _collection_formats: Dict[str, str] = {
3400
+ }
3401
+
3402
+ _path_params: Dict[str, str] = {}
3403
+ _query_params: List[Tuple[str, str]] = []
3404
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3405
+ _form_params: List[Tuple[str, str]] = []
3406
+ _files: Dict[
3407
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
3408
+ ] = {}
3409
+ _body_params: Optional[bytes] = None
3410
+
3411
+ # process the path parameters
3412
+ if group_id is not None:
3413
+ _path_params['groupId'] = group_id
3414
+ # process the query parameters
3415
+ # process the header parameters
3416
+ # process the form parameters
3417
+ # process the body parameter
3418
+
3419
+
3420
+ # set the HTTP header `Accept`
3421
+ if 'Accept' not in _header_params:
3422
+ _header_params['Accept'] = self.api_client.select_header_accept(
3423
+ [
3424
+ 'application/json'
3425
+ ]
3426
+ )
3427
+
3428
+
3429
+ # authentication setting
3430
+ _auth_settings: List[str] = [
3431
+ 'authCookie'
3432
+ ]
3433
+
3434
+ return self.api_client.param_serialize(
3435
+ method='GET',
3436
+ resource_path='/calendar/{groupId}/next',
3437
+ path_params=_path_params,
3438
+ query_params=_query_params,
3439
+ header_params=_header_params,
3440
+ body=_body_params,
3441
+ post_params=_form_params,
3442
+ files=_files,
3443
+ auth_settings=_auth_settings,
3444
+ collection_formats=_collection_formats,
3445
+ _host=_host,
3446
+ _request_auth=_request_auth
3447
+ )
3448
+
3449
+
3450
+
3451
+
3452
+ @validate_call
3453
+ async def search_calendar_events(
3454
+ self,
3455
+ search_term: Annotated[StrictStr, Field(description="Search term for calendar events.")],
3456
+ utc_offset: Annotated[Optional[Annotated[int, Field(le=12, strict=True, ge=-12)]], Field(description="The offset from UTC in hours of the client or authenticated user.")] = None,
3457
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
3458
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="A zero-based offset from the default object sorting from where search results start.")] = None,
3459
+ is_internal_variant: Annotated[Optional[StrictBool], Field(description="Not quite sure what this actually does (exists on the website but doesn't seem to be used)")] = None,
3460
+ _request_timeout: Union[
3461
+ None,
3462
+ Annotated[StrictFloat, Field(gt=0)],
3463
+ Tuple[
3464
+ Annotated[StrictFloat, Field(gt=0)],
3465
+ Annotated[StrictFloat, Field(gt=0)]
3466
+ ]
3467
+ ] = None,
3468
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3469
+ _content_type: Optional[StrictStr] = None,
3470
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3471
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3472
+ ) -> PaginatedCalendarEventList:
3473
+ """Search for calendar events
3474
+
3475
+ Get a list of calendar events by search terms
3476
+
3477
+ :param search_term: Search term for calendar events. (required)
3478
+ :type search_term: str
3479
+ :param utc_offset: The offset from UTC in hours of the client or authenticated user.
3480
+ :type utc_offset: int
3481
+ :param n: The number of objects to return.
3482
+ :type n: int
3483
+ :param offset: A zero-based offset from the default object sorting from where search results start.
3484
+ :type offset: int
3485
+ :param is_internal_variant: Not quite sure what this actually does (exists on the website but doesn't seem to be used)
3486
+ :type is_internal_variant: bool
3487
+ :param _request_timeout: timeout setting for this request. If one
3488
+ number provided, it will be total request
3489
+ timeout. It can also be a pair (tuple) of
3490
+ (connection, read) timeouts.
3491
+ :type _request_timeout: int, tuple(int, int), optional
3492
+ :param _request_auth: set to override the auth_settings for an a single
3493
+ request; this effectively ignores the
3494
+ authentication in the spec for a single request.
3495
+ :type _request_auth: dict, optional
3496
+ :param _content_type: force content-type for the request.
3497
+ :type _content_type: str, Optional
3498
+ :param _headers: set to override the headers for a single
3499
+ request; this effectively ignores the headers
3500
+ in the spec for a single request.
3501
+ :type _headers: dict, optional
3502
+ :param _host_index: set to override the host_index for a single
3503
+ request; this effectively ignores the host_index
3504
+ in the spec for a single request.
3505
+ :type _host_index: int, optional
3506
+ :return: Returns the result object.
3507
+ """ # noqa: E501
3508
+
3509
+ _param = self._search_calendar_events_serialize(
3510
+ search_term=search_term,
3511
+ utc_offset=utc_offset,
3512
+ n=n,
3513
+ offset=offset,
3514
+ is_internal_variant=is_internal_variant,
3515
+ _request_auth=_request_auth,
3516
+ _content_type=_content_type,
3517
+ _headers=_headers,
3518
+ _host_index=_host_index
3519
+ )
3520
+
3521
+ _response_types_map: Dict[str, Optional[str]] = {
3522
+ '200': "PaginatedCalendarEventList",
3523
+ '401': "Error",
3524
+ }
3525
+ response_data = await self.api_client.call_api(
3526
+ *_param,
3527
+ _request_timeout=_request_timeout
3528
+ )
3529
+ await response_data.read()
3530
+ return self.api_client.response_deserialize(
3531
+ response_data=response_data,
3532
+ response_types_map=_response_types_map,
3533
+ ).data
3534
+
3535
+
3536
+ @validate_call
3537
+ async def search_calendar_events_with_http_info(
3538
+ self,
3539
+ search_term: Annotated[StrictStr, Field(description="Search term for calendar events.")],
3540
+ utc_offset: Annotated[Optional[Annotated[int, Field(le=12, strict=True, ge=-12)]], Field(description="The offset from UTC in hours of the client or authenticated user.")] = None,
3541
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
3542
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="A zero-based offset from the default object sorting from where search results start.")] = None,
3543
+ is_internal_variant: Annotated[Optional[StrictBool], Field(description="Not quite sure what this actually does (exists on the website but doesn't seem to be used)")] = None,
3544
+ _request_timeout: Union[
3545
+ None,
3546
+ Annotated[StrictFloat, Field(gt=0)],
3547
+ Tuple[
3548
+ Annotated[StrictFloat, Field(gt=0)],
3549
+ Annotated[StrictFloat, Field(gt=0)]
3550
+ ]
3551
+ ] = None,
3552
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3553
+ _content_type: Optional[StrictStr] = None,
3554
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3555
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3556
+ ) -> ApiResponse[PaginatedCalendarEventList]:
3557
+ """Search for calendar events
3558
+
3559
+ Get a list of calendar events by search terms
3560
+
3561
+ :param search_term: Search term for calendar events. (required)
3562
+ :type search_term: str
3563
+ :param utc_offset: The offset from UTC in hours of the client or authenticated user.
3564
+ :type utc_offset: int
3565
+ :param n: The number of objects to return.
3566
+ :type n: int
3567
+ :param offset: A zero-based offset from the default object sorting from where search results start.
3568
+ :type offset: int
3569
+ :param is_internal_variant: Not quite sure what this actually does (exists on the website but doesn't seem to be used)
3570
+ :type is_internal_variant: bool
3571
+ :param _request_timeout: timeout setting for this request. If one
3572
+ number provided, it will be total request
3573
+ timeout. It can also be a pair (tuple) of
3574
+ (connection, read) timeouts.
3575
+ :type _request_timeout: int, tuple(int, int), optional
3576
+ :param _request_auth: set to override the auth_settings for an a single
3577
+ request; this effectively ignores the
3578
+ authentication in the spec for a single request.
3579
+ :type _request_auth: dict, optional
3580
+ :param _content_type: force content-type for the request.
3581
+ :type _content_type: str, Optional
3582
+ :param _headers: set to override the headers for a single
3583
+ request; this effectively ignores the headers
3584
+ in the spec for a single request.
3585
+ :type _headers: dict, optional
3586
+ :param _host_index: set to override the host_index for a single
3587
+ request; this effectively ignores the host_index
3588
+ in the spec for a single request.
3589
+ :type _host_index: int, optional
3590
+ :return: Returns the result object.
3591
+ """ # noqa: E501
3592
+
3593
+ _param = self._search_calendar_events_serialize(
3594
+ search_term=search_term,
3595
+ utc_offset=utc_offset,
3596
+ n=n,
3597
+ offset=offset,
3598
+ is_internal_variant=is_internal_variant,
3599
+ _request_auth=_request_auth,
3600
+ _content_type=_content_type,
3601
+ _headers=_headers,
3602
+ _host_index=_host_index
3603
+ )
3604
+
3605
+ _response_types_map: Dict[str, Optional[str]] = {
3606
+ '200': "PaginatedCalendarEventList",
3607
+ '401': "Error",
3608
+ }
3609
+ response_data = await self.api_client.call_api(
3610
+ *_param,
3611
+ _request_timeout=_request_timeout
3612
+ )
3613
+ await response_data.read()
3614
+ return self.api_client.response_deserialize(
3615
+ response_data=response_data,
3616
+ response_types_map=_response_types_map,
3617
+ )
3618
+
3619
+
3620
+ @validate_call
3621
+ async def search_calendar_events_without_preload_content(
3622
+ self,
3623
+ search_term: Annotated[StrictStr, Field(description="Search term for calendar events.")],
3624
+ utc_offset: Annotated[Optional[Annotated[int, Field(le=12, strict=True, ge=-12)]], Field(description="The offset from UTC in hours of the client or authenticated user.")] = None,
3625
+ n: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of objects to return.")] = None,
3626
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="A zero-based offset from the default object sorting from where search results start.")] = None,
3627
+ is_internal_variant: Annotated[Optional[StrictBool], Field(description="Not quite sure what this actually does (exists on the website but doesn't seem to be used)")] = None,
3628
+ _request_timeout: Union[
3629
+ None,
3630
+ Annotated[StrictFloat, Field(gt=0)],
3631
+ Tuple[
3632
+ Annotated[StrictFloat, Field(gt=0)],
3633
+ Annotated[StrictFloat, Field(gt=0)]
3634
+ ]
3635
+ ] = None,
3636
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3637
+ _content_type: Optional[StrictStr] = None,
3638
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3639
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3640
+ ) -> RESTResponseType:
3641
+ """Search for calendar events
3642
+
3643
+ Get a list of calendar events by search terms
3644
+
3645
+ :param search_term: Search term for calendar events. (required)
3646
+ :type search_term: str
3647
+ :param utc_offset: The offset from UTC in hours of the client or authenticated user.
3648
+ :type utc_offset: int
3649
+ :param n: The number of objects to return.
3650
+ :type n: int
3651
+ :param offset: A zero-based offset from the default object sorting from where search results start.
3652
+ :type offset: int
3653
+ :param is_internal_variant: Not quite sure what this actually does (exists on the website but doesn't seem to be used)
3654
+ :type is_internal_variant: bool
3655
+ :param _request_timeout: timeout setting for this request. If one
3656
+ number provided, it will be total request
3657
+ timeout. It can also be a pair (tuple) of
3658
+ (connection, read) timeouts.
3659
+ :type _request_timeout: int, tuple(int, int), optional
3660
+ :param _request_auth: set to override the auth_settings for an a single
3661
+ request; this effectively ignores the
3662
+ authentication in the spec for a single request.
3663
+ :type _request_auth: dict, optional
3664
+ :param _content_type: force content-type for the request.
3665
+ :type _content_type: str, Optional
3666
+ :param _headers: set to override the headers for a single
3667
+ request; this effectively ignores the headers
3668
+ in the spec for a single request.
3669
+ :type _headers: dict, optional
3670
+ :param _host_index: set to override the host_index for a single
3671
+ request; this effectively ignores the host_index
3672
+ in the spec for a single request.
3673
+ :type _host_index: int, optional
3674
+ :return: Returns the result object.
3675
+ """ # noqa: E501
3676
+
3677
+ _param = self._search_calendar_events_serialize(
3678
+ search_term=search_term,
3679
+ utc_offset=utc_offset,
3680
+ n=n,
3681
+ offset=offset,
3682
+ is_internal_variant=is_internal_variant,
3683
+ _request_auth=_request_auth,
3684
+ _content_type=_content_type,
3685
+ _headers=_headers,
3686
+ _host_index=_host_index
3687
+ )
3688
+
3689
+ _response_types_map: Dict[str, Optional[str]] = {
3690
+ '200': "PaginatedCalendarEventList",
3691
+ '401': "Error",
3692
+ }
3693
+ response_data = await self.api_client.call_api(
3694
+ *_param,
3695
+ _request_timeout=_request_timeout
3696
+ )
3697
+ return response_data.response
3698
+
3699
+
3700
+ def _search_calendar_events_serialize(
3701
+ self,
3702
+ search_term,
3703
+ utc_offset,
3704
+ n,
3705
+ offset,
3706
+ is_internal_variant,
3707
+ _request_auth,
3708
+ _content_type,
3709
+ _headers,
3710
+ _host_index,
3711
+ ) -> RequestSerialized:
3712
+
3713
+ _host = None
3714
+
3715
+ _collection_formats: Dict[str, str] = {
3716
+ }
3717
+
3718
+ _path_params: Dict[str, str] = {}
3719
+ _query_params: List[Tuple[str, str]] = []
3720
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3721
+ _form_params: List[Tuple[str, str]] = []
3722
+ _files: Dict[
3723
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
3724
+ ] = {}
3725
+ _body_params: Optional[bytes] = None
3726
+
3727
+ # process the path parameters
3728
+ # process the query parameters
3729
+ if search_term is not None:
3730
+
3731
+ _query_params.append(('searchTerm', search_term))
3732
+
3733
+ if utc_offset is not None:
3734
+
3735
+ _query_params.append(('utcOffset', utc_offset))
3736
+
3737
+ if n is not None:
3738
+
3739
+ _query_params.append(('n', n))
3740
+
3741
+ if offset is not None:
3742
+
3743
+ _query_params.append(('offset', offset))
3744
+
3745
+ if is_internal_variant is not None:
3746
+
3747
+ _query_params.append(('isInternalVariant', is_internal_variant))
3748
+
3749
+ # process the header parameters
3750
+ # process the form parameters
3751
+ # process the body parameter
3752
+
3753
+
3754
+ # set the HTTP header `Accept`
3755
+ if 'Accept' not in _header_params:
3756
+ _header_params['Accept'] = self.api_client.select_header_accept(
3757
+ [
3758
+ 'application/json'
3759
+ ]
3760
+ )
3761
+
3762
+
3763
+ # authentication setting
3764
+ _auth_settings: List[str] = [
3765
+ 'authCookie'
3766
+ ]
3767
+
3768
+ return self.api_client.param_serialize(
3769
+ method='GET',
3770
+ resource_path='/calendar/search',
3771
+ path_params=_path_params,
3772
+ query_params=_query_params,
3773
+ header_params=_header_params,
3774
+ body=_body_params,
3775
+ post_params=_form_params,
3776
+ files=_files,
3777
+ auth_settings=_auth_settings,
3778
+ collection_formats=_collection_formats,
3779
+ _host=_host,
3780
+ _request_auth=_request_auth
3781
+ )
3782
+
3783
+
3784
+
3785
+
3786
+ @validate_call
3787
+ async def update_group_calendar_event(
3788
+ self,
3789
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
3790
+ calendar_id: Annotated[StrictStr, Field(description="Must be a valid calendar ID.")],
3791
+ update_calendar_event_request: UpdateCalendarEventRequest,
3792
+ _request_timeout: Union[
3793
+ None,
3794
+ Annotated[StrictFloat, Field(gt=0)],
3795
+ Tuple[
3796
+ Annotated[StrictFloat, Field(gt=0)],
3797
+ Annotated[StrictFloat, Field(gt=0)]
3798
+ ]
3799
+ ] = None,
3800
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3801
+ _content_type: Optional[StrictStr] = None,
3802
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3803
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3804
+ ) -> CalendarEvent:
3805
+ """Update a calendar event
3806
+
3807
+ Updates an event for a group on the calendar
3808
+
3809
+ :param group_id: Must be a valid group ID. (required)
3810
+ :type group_id: str
3811
+ :param calendar_id: Must be a valid calendar ID. (required)
3812
+ :type calendar_id: str
3813
+ :param update_calendar_event_request: (required)
3814
+ :type update_calendar_event_request: UpdateCalendarEventRequest
3815
+ :param _request_timeout: timeout setting for this request. If one
3816
+ number provided, it will be total request
3817
+ timeout. It can also be a pair (tuple) of
3818
+ (connection, read) timeouts.
3819
+ :type _request_timeout: int, tuple(int, int), optional
3820
+ :param _request_auth: set to override the auth_settings for an a single
3821
+ request; this effectively ignores the
3822
+ authentication in the spec for a single request.
3823
+ :type _request_auth: dict, optional
3824
+ :param _content_type: force content-type for the request.
3825
+ :type _content_type: str, Optional
3826
+ :param _headers: set to override the headers for a single
3827
+ request; this effectively ignores the headers
3828
+ in the spec for a single request.
3829
+ :type _headers: dict, optional
3830
+ :param _host_index: set to override the host_index for a single
3831
+ request; this effectively ignores the host_index
3832
+ in the spec for a single request.
3833
+ :type _host_index: int, optional
3834
+ :return: Returns the result object.
3835
+ """ # noqa: E501
3836
+
3837
+ _param = self._update_group_calendar_event_serialize(
3838
+ group_id=group_id,
3839
+ calendar_id=calendar_id,
3840
+ update_calendar_event_request=update_calendar_event_request,
3841
+ _request_auth=_request_auth,
3842
+ _content_type=_content_type,
3843
+ _headers=_headers,
3844
+ _host_index=_host_index
3845
+ )
3846
+
3847
+ _response_types_map: Dict[str, Optional[str]] = {
3848
+ '200': "CalendarEvent",
3849
+ '401': "Error",
3850
+ }
3851
+ response_data = await self.api_client.call_api(
3852
+ *_param,
3853
+ _request_timeout=_request_timeout
3854
+ )
3855
+ await response_data.read()
3856
+ return self.api_client.response_deserialize(
3857
+ response_data=response_data,
3858
+ response_types_map=_response_types_map,
3859
+ ).data
3860
+
3861
+
3862
+ @validate_call
3863
+ async def update_group_calendar_event_with_http_info(
3864
+ self,
3865
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
3866
+ calendar_id: Annotated[StrictStr, Field(description="Must be a valid calendar ID.")],
3867
+ update_calendar_event_request: UpdateCalendarEventRequest,
3868
+ _request_timeout: Union[
3869
+ None,
3870
+ Annotated[StrictFloat, Field(gt=0)],
3871
+ Tuple[
3872
+ Annotated[StrictFloat, Field(gt=0)],
3873
+ Annotated[StrictFloat, Field(gt=0)]
3874
+ ]
3875
+ ] = None,
3876
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3877
+ _content_type: Optional[StrictStr] = None,
3878
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3879
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3880
+ ) -> ApiResponse[CalendarEvent]:
3881
+ """Update a calendar event
3882
+
3883
+ Updates an event for a group on the calendar
3884
+
3885
+ :param group_id: Must be a valid group ID. (required)
3886
+ :type group_id: str
3887
+ :param calendar_id: Must be a valid calendar ID. (required)
3888
+ :type calendar_id: str
3889
+ :param update_calendar_event_request: (required)
3890
+ :type update_calendar_event_request: UpdateCalendarEventRequest
3891
+ :param _request_timeout: timeout setting for this request. If one
3892
+ number provided, it will be total request
3893
+ timeout. It can also be a pair (tuple) of
3894
+ (connection, read) timeouts.
3895
+ :type _request_timeout: int, tuple(int, int), optional
3896
+ :param _request_auth: set to override the auth_settings for an a single
3897
+ request; this effectively ignores the
3898
+ authentication in the spec for a single request.
3899
+ :type _request_auth: dict, optional
3900
+ :param _content_type: force content-type for the request.
3901
+ :type _content_type: str, Optional
3902
+ :param _headers: set to override the headers for a single
3903
+ request; this effectively ignores the headers
3904
+ in the spec for a single request.
3905
+ :type _headers: dict, optional
3906
+ :param _host_index: set to override the host_index for a single
3907
+ request; this effectively ignores the host_index
3908
+ in the spec for a single request.
3909
+ :type _host_index: int, optional
3910
+ :return: Returns the result object.
3911
+ """ # noqa: E501
3912
+
3913
+ _param = self._update_group_calendar_event_serialize(
3914
+ group_id=group_id,
3915
+ calendar_id=calendar_id,
3916
+ update_calendar_event_request=update_calendar_event_request,
3917
+ _request_auth=_request_auth,
3918
+ _content_type=_content_type,
3919
+ _headers=_headers,
3920
+ _host_index=_host_index
3921
+ )
3922
+
3923
+ _response_types_map: Dict[str, Optional[str]] = {
3924
+ '200': "CalendarEvent",
3925
+ '401': "Error",
3926
+ }
3927
+ response_data = await self.api_client.call_api(
3928
+ *_param,
3929
+ _request_timeout=_request_timeout
3930
+ )
3931
+ await response_data.read()
3932
+ return self.api_client.response_deserialize(
3933
+ response_data=response_data,
3934
+ response_types_map=_response_types_map,
3935
+ )
3936
+
3937
+
3938
+ @validate_call
3939
+ async def update_group_calendar_event_without_preload_content(
3940
+ self,
3941
+ group_id: Annotated[StrictStr, Field(description="Must be a valid group ID.")],
3942
+ calendar_id: Annotated[StrictStr, Field(description="Must be a valid calendar ID.")],
3943
+ update_calendar_event_request: UpdateCalendarEventRequest,
3944
+ _request_timeout: Union[
3945
+ None,
3946
+ Annotated[StrictFloat, Field(gt=0)],
3947
+ Tuple[
3948
+ Annotated[StrictFloat, Field(gt=0)],
3949
+ Annotated[StrictFloat, Field(gt=0)]
3950
+ ]
3951
+ ] = None,
3952
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3953
+ _content_type: Optional[StrictStr] = None,
3954
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3955
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3956
+ ) -> RESTResponseType:
3957
+ """Update a calendar event
3958
+
3959
+ Updates an event for a group on the calendar
3960
+
3961
+ :param group_id: Must be a valid group ID. (required)
3962
+ :type group_id: str
3963
+ :param calendar_id: Must be a valid calendar ID. (required)
3964
+ :type calendar_id: str
3965
+ :param update_calendar_event_request: (required)
3966
+ :type update_calendar_event_request: UpdateCalendarEventRequest
3967
+ :param _request_timeout: timeout setting for this request. If one
3968
+ number provided, it will be total request
3969
+ timeout. It can also be a pair (tuple) of
3970
+ (connection, read) timeouts.
3971
+ :type _request_timeout: int, tuple(int, int), optional
3972
+ :param _request_auth: set to override the auth_settings for an a single
3973
+ request; this effectively ignores the
3974
+ authentication in the spec for a single request.
3975
+ :type _request_auth: dict, optional
3976
+ :param _content_type: force content-type for the request.
3977
+ :type _content_type: str, Optional
3978
+ :param _headers: set to override the headers for a single
3979
+ request; this effectively ignores the headers
3980
+ in the spec for a single request.
3981
+ :type _headers: dict, optional
3982
+ :param _host_index: set to override the host_index for a single
3983
+ request; this effectively ignores the host_index
3984
+ in the spec for a single request.
3985
+ :type _host_index: int, optional
3986
+ :return: Returns the result object.
3987
+ """ # noqa: E501
3988
+
3989
+ _param = self._update_group_calendar_event_serialize(
3990
+ group_id=group_id,
3991
+ calendar_id=calendar_id,
3992
+ update_calendar_event_request=update_calendar_event_request,
3993
+ _request_auth=_request_auth,
3994
+ _content_type=_content_type,
3995
+ _headers=_headers,
3996
+ _host_index=_host_index
3997
+ )
3998
+
3999
+ _response_types_map: Dict[str, Optional[str]] = {
4000
+ '200': "CalendarEvent",
4001
+ '401': "Error",
4002
+ }
4003
+ response_data = await self.api_client.call_api(
4004
+ *_param,
4005
+ _request_timeout=_request_timeout
4006
+ )
4007
+ return response_data.response
4008
+
4009
+
4010
+ def _update_group_calendar_event_serialize(
4011
+ self,
4012
+ group_id,
4013
+ calendar_id,
4014
+ update_calendar_event_request,
4015
+ _request_auth,
4016
+ _content_type,
4017
+ _headers,
4018
+ _host_index,
4019
+ ) -> RequestSerialized:
4020
+
4021
+ _host = None
4022
+
4023
+ _collection_formats: Dict[str, str] = {
4024
+ }
4025
+
4026
+ _path_params: Dict[str, str] = {}
4027
+ _query_params: List[Tuple[str, str]] = []
4028
+ _header_params: Dict[str, Optional[str]] = _headers or {}
4029
+ _form_params: List[Tuple[str, str]] = []
4030
+ _files: Dict[
4031
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
4032
+ ] = {}
4033
+ _body_params: Optional[bytes] = None
4034
+
4035
+ # process the path parameters
4036
+ if group_id is not None:
4037
+ _path_params['groupId'] = group_id
4038
+ if calendar_id is not None:
4039
+ _path_params['calendarId'] = calendar_id
4040
+ # process the query parameters
4041
+ # process the header parameters
4042
+ # process the form parameters
4043
+ # process the body parameter
4044
+ if update_calendar_event_request is not None:
4045
+ _body_params = update_calendar_event_request
4046
+
4047
+
4048
+ # set the HTTP header `Accept`
4049
+ if 'Accept' not in _header_params:
4050
+ _header_params['Accept'] = self.api_client.select_header_accept(
4051
+ [
4052
+ 'application/json'
4053
+ ]
4054
+ )
4055
+
4056
+ # set the HTTP header `Content-Type`
4057
+ if _content_type:
4058
+ _header_params['Content-Type'] = _content_type
4059
+ else:
4060
+ _default_content_type = (
4061
+ self.api_client.select_header_content_type(
4062
+ [
4063
+ 'application/json'
4064
+ ]
4065
+ )
4066
+ )
4067
+ if _default_content_type is not None:
4068
+ _header_params['Content-Type'] = _default_content_type
4069
+
4070
+ # authentication setting
4071
+ _auth_settings: List[str] = [
4072
+ 'authCookie'
4073
+ ]
4074
+
4075
+ return self.api_client.param_serialize(
4076
+ method='PUT',
4077
+ resource_path='/calendar/{groupId}/{calendarId}/event',
4078
+ path_params=_path_params,
4079
+ query_params=_query_params,
4080
+ header_params=_header_params,
4081
+ body=_body_params,
4082
+ post_params=_form_params,
4083
+ files=_files,
4084
+ auth_settings=_auth_settings,
4085
+ collection_formats=_collection_formats,
4086
+ _host=_host,
4087
+ _request_auth=_request_auth
4088
+ )
4089
+
4090
+