ghostcrawl 2.1.2__tar.gz → 2.2.0__tar.gz

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 (495) hide show
  1. ghostcrawl-2.2.0/LICENSE +46 -0
  2. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/MANIFEST.in +0 -1
  3. ghostcrawl-2.2.0/PKG-INFO +195 -0
  4. ghostcrawl-2.2.0/README.md +160 -0
  5. ghostcrawl-2.2.0/_generated/ghostcrawl_client.py +50 -0
  6. ghostcrawl-2.2.0/_generated/models/audit_event_out.py +123 -0
  7. ghostcrawl-2.2.0/_generated/models/audit_event_out_actor_ip.py +62 -0
  8. ghostcrawl-2.2.0/_generated/models/audit_event_out_actor_ip_member1.py +43 -0
  9. ghostcrawl-2.2.0/_generated/models/audit_event_out_actor_token_id.py +62 -0
  10. ghostcrawl-2.2.0/_generated/models/audit_event_out_actor_token_id_member1.py +43 -0
  11. ghostcrawl-2.2.0/_generated/models/audit_event_out_actor_user_agent.py +62 -0
  12. ghostcrawl-2.2.0/_generated/models/audit_event_out_actor_user_agent_member1.py +43 -0
  13. ghostcrawl-2.2.0/_generated/models/audit_event_out_actor_user_id.py +62 -0
  14. ghostcrawl-2.2.0/_generated/models/audit_event_out_actor_user_id_member1.py +43 -0
  15. ghostcrawl-2.2.0/_generated/models/audit_event_out_metadata.py +43 -0
  16. ghostcrawl-2.2.0/_generated/models/audit_event_out_org_id.py +62 -0
  17. ghostcrawl-2.2.0/_generated/models/audit_event_out_org_id_member1.py +43 -0
  18. ghostcrawl-2.2.0/_generated/models/audit_event_out_target_id.py +62 -0
  19. ghostcrawl-2.2.0/_generated/models/audit_event_out_target_id_member1.py +43 -0
  20. ghostcrawl-2.2.0/_generated/models/audit_event_out_target_kind.py +62 -0
  21. ghostcrawl-2.2.0/_generated/models/audit_event_out_target_kind_member1.py +43 -0
  22. ghostcrawl-2.2.0/_generated/models/audit_events_response.py +61 -0
  23. ghostcrawl-2.2.0/_generated/models/audit_events_response_next_cursor.py +62 -0
  24. ghostcrawl-2.2.0/_generated/models/audit_events_response_next_cursor_member1.py +43 -0
  25. ghostcrawl-2.2.0/_generated/models/batch_scrape_request.py +110 -0
  26. ghostcrawl-2.2.0/_generated/models/batch_scrape_request_behavior_actions.py +64 -0
  27. ghostcrawl-2.2.0/_generated/models/batch_scrape_request_behavior_actions_member1.py +43 -0
  28. ghostcrawl-2.2.0/_generated/models/batch_scrape_request_behavior_actions_member2.py +43 -0
  29. ghostcrawl-2.2.0/_generated/models/batch_scrape_request_extraction_strategy.py +62 -0
  30. ghostcrawl-2.2.0/_generated/models/batch_scrape_request_extraction_strategy_member1.py +43 -0
  31. ghostcrawl-2.2.0/_generated/models/batch_scrape_request_identity_country.py +62 -0
  32. ghostcrawl-2.2.0/_generated/models/batch_scrape_request_identity_country_member1.py +43 -0
  33. ghostcrawl-2.2.0/_generated/models/batch_scrape_request_language.py +62 -0
  34. ghostcrawl-2.2.0/_generated/models/batch_scrape_request_language_member1.py +43 -0
  35. ghostcrawl-2.2.0/_generated/models/batch_scrape_request_output_format.py +7 -0
  36. ghostcrawl-2.2.0/_generated/models/batch_scrape_request_profile.py +62 -0
  37. ghostcrawl-2.2.0/_generated/models/batch_scrape_request_profile_member1.py +43 -0
  38. ghostcrawl-2.2.0/_generated/models/cdp_frame_request.py +51 -0
  39. ghostcrawl-2.2.0/_generated/models/cdp_url_request.py +47 -0
  40. ghostcrawl-2.2.0/_generated/models/checkout_request.py +55 -0
  41. ghostcrawl-2.2.0/_generated/models/contact_request.py +59 -0
  42. ghostcrawl-2.2.0/_generated/models/cookie_dict.py +104 -0
  43. ghostcrawl-2.2.0/_generated/models/cookie_dict_domain.py +62 -0
  44. ghostcrawl-2.2.0/_generated/models/cookie_dict_domain_member1.py +43 -0
  45. ghostcrawl-2.2.0/_generated/models/cookie_dict_expires.py +62 -0
  46. ghostcrawl-2.2.0/_generated/models/cookie_dict_expires_member1.py +43 -0
  47. ghostcrawl-2.2.0/_generated/models/cookie_dict_http_only.py +62 -0
  48. ghostcrawl-2.2.0/_generated/models/cookie_dict_http_only_member1.py +43 -0
  49. ghostcrawl-2.2.0/_generated/models/cookie_dict_path.py +62 -0
  50. ghostcrawl-2.2.0/_generated/models/cookie_dict_path_member1.py +43 -0
  51. ghostcrawl-2.2.0/_generated/models/cookie_dict_same_site.py +62 -0
  52. ghostcrawl-2.2.0/_generated/models/cookie_dict_same_site_member1.py +43 -0
  53. ghostcrawl-2.2.0/_generated/models/cookie_dict_secure.py +62 -0
  54. ghostcrawl-2.2.0/_generated/models/cookie_dict_secure_member1.py +43 -0
  55. ghostcrawl-2.2.0/_generated/models/cookie_dict_url.py +62 -0
  56. ghostcrawl-2.2.0/_generated/models/cookie_dict_url_member1.py +43 -0
  57. ghostcrawl-2.2.0/_generated/models/cookies_delete_body.py +72 -0
  58. ghostcrawl-2.2.0/_generated/models/cookies_delete_body_domain.py +62 -0
  59. ghostcrawl-2.2.0/_generated/models/cookies_delete_body_domain_member1.py +43 -0
  60. ghostcrawl-2.2.0/_generated/models/cookies_delete_body_name.py +62 -0
  61. ghostcrawl-2.2.0/_generated/models/cookies_delete_body_name_member1.py +43 -0
  62. ghostcrawl-2.2.0/_generated/models/cookies_delete_body_path.py +62 -0
  63. ghostcrawl-2.2.0/_generated/models/cookies_delete_body_path_member1.py +43 -0
  64. ghostcrawl-2.2.0/_generated/models/cookies_set_body.py +58 -0
  65. ghostcrawl-2.2.0/_generated/models/deep_crawl_body.py +96 -0
  66. ghostcrawl-2.2.0/_generated/models/deep_crawl_body_webhook_url.py +62 -0
  67. ghostcrawl-2.2.0/_generated/models/deep_crawl_body_webhook_url_member1.py +43 -0
  68. ghostcrawl-2.2.0/_generated/models/dom_snapshot_body.py +47 -0
  69. ghostcrawl-2.2.0/_generated/models/download_body.py +51 -0
  70. ghostcrawl-2.2.0/_generated/models/error_code.py +27 -0
  71. ghostcrawl-2.2.0/_generated/models/eval_body.py +51 -0
  72. ghostcrawl-2.2.0/_generated/models/extend_body.py +57 -0
  73. ghostcrawl-2.2.0/_generated/models/extend_body_ttl_seconds.py +62 -0
  74. ghostcrawl-2.2.0/_generated/models/extend_body_ttl_seconds_member1.py +43 -0
  75. ghostcrawl-2.2.0/_generated/models/extract_request.py +101 -0
  76. ghostcrawl-2.2.0/_generated/models/extract_request_behavior_actions.py +64 -0
  77. ghostcrawl-2.2.0/_generated/models/extract_request_behavior_actions_member1.py +43 -0
  78. ghostcrawl-2.2.0/_generated/models/extract_request_behavior_actions_member2.py +43 -0
  79. ghostcrawl-2.2.0/_generated/models/extract_request_engine.py +8 -0
  80. ghostcrawl-2.2.0/_generated/models/extract_request_identity_country.py +62 -0
  81. ghostcrawl-2.2.0/_generated/models/extract_request_identity_country_member1.py +43 -0
  82. ghostcrawl-2.2.0/_generated/models/extract_request_language.py +62 -0
  83. ghostcrawl-2.2.0/_generated/models/extract_request_language_member1.py +43 -0
  84. ghostcrawl-2.2.0/_generated/models/extract_request_prompt.py +62 -0
  85. ghostcrawl-2.2.0/_generated/models/extract_request_prompt_member1.py +43 -0
  86. ghostcrawl-2.2.0/_generated/models/extract_request_url.py +62 -0
  87. ghostcrawl-2.2.0/_generated/models/extract_request_url_member1.py +43 -0
  88. ghostcrawl-2.2.0/_generated/models/extract_request_urls.py +62 -0
  89. ghostcrawl-2.2.0/_generated/models/extract_request_urls_member1.py +43 -0
  90. ghostcrawl-2.2.0/_generated/models/filter_spec.py +43 -0
  91. ghostcrawl-2.2.0/_generated/models/h_t_t_p_validation_error.py +61 -0
  92. ghostcrawl-2.2.0/_generated/models/har_body.py +47 -0
  93. ghostcrawl-2.2.0/_generated/models/identity_payload.py +62 -0
  94. ghostcrawl-2.2.0/_generated/models/identity_request.py +110 -0
  95. ghostcrawl-2.2.0/_generated/models/identity_request_claim_browser.py +62 -0
  96. ghostcrawl-2.2.0/_generated/models/identity_request_claim_browser_member1.py +43 -0
  97. ghostcrawl-2.2.0/_generated/models/identity_request_claim_os.py +62 -0
  98. ghostcrawl-2.2.0/_generated/models/identity_request_claim_os_member1.py +43 -0
  99. ghostcrawl-2.2.0/_generated/models/identity_request_device_model.py +62 -0
  100. ghostcrawl-2.2.0/_generated/models/identity_request_device_model_member1.py +43 -0
  101. ghostcrawl-2.2.0/_generated/models/identity_request_locale.py +62 -0
  102. ghostcrawl-2.2.0/_generated/models/identity_request_locale_member1.py +43 -0
  103. ghostcrawl-2.2.0/_generated/models/identity_request_proxy.py +62 -0
  104. ghostcrawl-2.2.0/_generated/models/identity_request_proxy_member1.py +43 -0
  105. ghostcrawl-2.2.0/_generated/models/identity_request_source.py +62 -0
  106. ghostcrawl-2.2.0/_generated/models/identity_request_source_member1.py +43 -0
  107. ghostcrawl-2.2.0/_generated/models/identity_request_timezone.py +62 -0
  108. ghostcrawl-2.2.0/_generated/models/identity_request_timezone_member1.py +43 -0
  109. ghostcrawl-2.2.0/_generated/models/identity_request_viewport.py +69 -0
  110. ghostcrawl-2.2.0/_generated/models/identity_request_viewport_member1.py +43 -0
  111. ghostcrawl-2.2.0/_generated/models/identity_response.py +78 -0
  112. ghostcrawl-2.2.0/_generated/models/identity_response_expires_at.py +62 -0
  113. ghostcrawl-2.2.0/_generated/models/identity_response_expires_at_member1.py +43 -0
  114. ghostcrawl-2.2.0/_generated/models/identity_response_identity_id.py +62 -0
  115. ghostcrawl-2.2.0/_generated/models/identity_response_identity_id_member1.py +43 -0
  116. ghostcrawl-2.2.0/_generated/models/identity_response_workspace_id.py +62 -0
  117. ghostcrawl-2.2.0/_generated/models/identity_response_workspace_id_member1.py +43 -0
  118. ghostcrawl-2.2.0/_generated/models/map_body.py +73 -0
  119. ghostcrawl-2.2.0/_generated/models/map_body_search.py +62 -0
  120. ghostcrawl-2.2.0/_generated/models/map_body_search_member1.py +43 -0
  121. ghostcrawl-2.2.0/_generated/models/map_response.py +65 -0
  122. ghostcrawl-2.2.0/_generated/models/map_response_truncated_to_server_max.py +62 -0
  123. ghostcrawl-2.2.0/_generated/models/map_response_truncated_to_server_max_member1.py +43 -0
  124. ghostcrawl-2.2.0/_generated/models/me_response.py +73 -0
  125. ghostcrawl-2.2.0/_generated/models/me_response_created_at.py +62 -0
  126. ghostcrawl-2.2.0/_generated/models/me_response_created_at_member1.py +43 -0
  127. ghostcrawl-2.2.0/_generated/models/policy_upsert_request.py +84 -0
  128. ghostcrawl-2.2.0/_generated/models/policy_upsert_request_max_crawl_pages.py +62 -0
  129. ghostcrawl-2.2.0/_generated/models/policy_upsert_request_max_crawl_pages_member1.py +43 -0
  130. ghostcrawl-2.2.0/_generated/models/policy_upsert_request_max_llm_calls.py +62 -0
  131. ghostcrawl-2.2.0/_generated/models/policy_upsert_request_max_llm_calls_member1.py +43 -0
  132. ghostcrawl-2.2.0/_generated/models/policy_upsert_request_max_llm_tokens.py +62 -0
  133. ghostcrawl-2.2.0/_generated/models/policy_upsert_request_max_llm_tokens_member1.py +43 -0
  134. ghostcrawl-2.2.0/_generated/models/problem_details.py +92 -0
  135. ghostcrawl-2.2.0/_generated/models/profile_create_request.py +61 -0
  136. ghostcrawl-2.2.0/_generated/models/profile_create_request_storage_state_id.py +62 -0
  137. ghostcrawl-2.2.0/_generated/models/profile_create_request_storage_state_id_member1.py +43 -0
  138. ghostcrawl-2.2.0/_generated/models/profile_update_request.py +64 -0
  139. ghostcrawl-2.2.0/_generated/models/profile_update_request_name.py +62 -0
  140. ghostcrawl-2.2.0/_generated/models/profile_update_request_name_member1.py +43 -0
  141. ghostcrawl-2.2.0/_generated/models/profile_update_request_storage_state_id.py +62 -0
  142. ghostcrawl-2.2.0/_generated/models/profile_update_request_storage_state_id_member1.py +43 -0
  143. ghostcrawl-2.2.0/_generated/models/registry_token_request.py +47 -0
  144. ghostcrawl-2.2.0/_generated/models/retry_delivery_response.py +64 -0
  145. ghostcrawl-2.2.0/_generated/models/rotate_secret_response.py +64 -0
  146. ghostcrawl-2.2.0/_generated/models/schedule_create_request.py +80 -0
  147. ghostcrawl-2.2.0/_generated/models/schedule_create_request_job_params.py +46 -0
  148. ghostcrawl-2.2.0/_generated/models/schedule_create_request_notify_webhook.py +62 -0
  149. ghostcrawl-2.2.0/_generated/models/schedule_create_request_notify_webhook_member1.py +43 -0
  150. ghostcrawl-2.2.0/_generated/models/scorer_spec.py +51 -0
  151. ghostcrawl-2.2.0/_generated/models/scrape_request.py +167 -0
  152. ghostcrawl-2.2.0/_generated/models/scrape_request_batch_identity_mode.py +6 -0
  153. ghostcrawl-2.2.0/_generated/models/scrape_request_behavior_actions.py +64 -0
  154. ghostcrawl-2.2.0/_generated/models/scrape_request_behavior_actions_member1.py +43 -0
  155. ghostcrawl-2.2.0/_generated/models/scrape_request_behavior_actions_member2.py +43 -0
  156. ghostcrawl-2.2.0/_generated/models/scrape_request_engine.py +8 -0
  157. ghostcrawl-2.2.0/_generated/models/scrape_request_format.py +7 -0
  158. ghostcrawl-2.2.0/_generated/models/scrape_request_identity.py +62 -0
  159. ghostcrawl-2.2.0/_generated/models/scrape_request_identity_country.py +62 -0
  160. ghostcrawl-2.2.0/_generated/models/scrape_request_identity_country_member1.py +43 -0
  161. ghostcrawl-2.2.0/_generated/models/scrape_request_identity_member1.py +43 -0
  162. ghostcrawl-2.2.0/_generated/models/scrape_request_language.py +62 -0
  163. ghostcrawl-2.2.0/_generated/models/scrape_request_language_member1.py +43 -0
  164. ghostcrawl-2.2.0/_generated/models/scrape_request_profile.py +62 -0
  165. ghostcrawl-2.2.0/_generated/models/scrape_request_profile_member1.py +43 -0
  166. ghostcrawl-2.2.0/_generated/models/scrape_request_proxy.py +62 -0
  167. ghostcrawl-2.2.0/_generated/models/scrape_request_proxy_member1.py +43 -0
  168. ghostcrawl-2.2.0/_generated/models/scrape_request_screenshot_selector.py +62 -0
  169. ghostcrawl-2.2.0/_generated/models/scrape_request_screenshot_selector_member1.py +43 -0
  170. ghostcrawl-2.2.0/_generated/models/scrape_request_session.py +62 -0
  171. ghostcrawl-2.2.0/_generated/models/scrape_request_session_member1.py +43 -0
  172. ghostcrawl-2.2.0/_generated/models/scrape_request_url.py +62 -0
  173. ghostcrawl-2.2.0/_generated/models/scrape_request_url_member1.py +43 -0
  174. ghostcrawl-2.2.0/_generated/models/scrape_request_urls.py +62 -0
  175. ghostcrawl-2.2.0/_generated/models/scrape_request_urls_member1.py +43 -0
  176. ghostcrawl-2.2.0/_generated/models/scroll_body.py +72 -0
  177. ghostcrawl-2.2.0/_generated/models/scroll_body_direction.py +9 -0
  178. ghostcrawl-2.2.0/_generated/models/scroll_body_distance_px.py +62 -0
  179. ghostcrawl-2.2.0/_generated/models/scroll_body_distance_px_member1.py +43 -0
  180. ghostcrawl-2.2.0/_generated/models/scroll_body_selector.py +62 -0
  181. ghostcrawl-2.2.0/_generated/models/scroll_body_selector_member1.py +43 -0
  182. ghostcrawl-2.2.0/_generated/models/search_request.py +86 -0
  183. ghostcrawl-2.2.0/_generated/models/search_request_country.py +62 -0
  184. ghostcrawl-2.2.0/_generated/models/search_request_country_member1.py +43 -0
  185. ghostcrawl-2.2.0/_generated/models/search_request_engine.py +62 -0
  186. ghostcrawl-2.2.0/_generated/models/search_request_engine_member1.py +43 -0
  187. ghostcrawl-2.2.0/_generated/models/search_request_freshness.py +62 -0
  188. ghostcrawl-2.2.0/_generated/models/search_request_freshness_member1.py +43 -0
  189. ghostcrawl-2.2.0/_generated/models/search_request_vertical.py +62 -0
  190. ghostcrawl-2.2.0/_generated/models/search_request_vertical_member1.py +43 -0
  191. ghostcrawl-2.2.0/_generated/models/session_create_request.py +63 -0
  192. ghostcrawl-2.2.0/_generated/models/session_create_request_engine.py +8 -0
  193. ghostcrawl-2.2.0/_generated/models/session_create_request_profile.py +62 -0
  194. ghostcrawl-2.2.0/_generated/models/session_create_request_profile_member1.py +43 -0
  195. ghostcrawl-2.2.0/_generated/models/storage_state_attach_request.py +46 -0
  196. ghostcrawl-2.2.0/_generated/models/storage_state_detach_request.py +46 -0
  197. ghostcrawl-2.2.0/_generated/models/takeover_action_body.py +50 -0
  198. ghostcrawl-2.2.0/_generated/models/team_response.py +59 -0
  199. ghostcrawl-2.2.0/_generated/models/tenant_context.py +68 -0
  200. ghostcrawl-2.2.0/_generated/models/upload_body.py +63 -0
  201. ghostcrawl-2.2.0/_generated/models/validation_error.py +66 -0
  202. ghostcrawl-2.2.0/_generated/models/validation_error_ctx.py +43 -0
  203. ghostcrawl-2.2.0/_generated/models/viewport_exact.py +54 -0
  204. ghostcrawl-2.2.0/_generated/models/wait_body.py +62 -0
  205. ghostcrawl-2.2.0/_generated/models/wait_body_selector.py +62 -0
  206. ghostcrawl-2.2.0/_generated/models/wait_body_selector_member1.py +43 -0
  207. ghostcrawl-2.2.0/_generated/models/webhook_create_request.py +58 -0
  208. ghostcrawl-2.2.0/_generated/models/webhook_create_response.py +61 -0
  209. ghostcrawl-2.2.0/_generated/models/webhook_delivery_list_response.py +68 -0
  210. ghostcrawl-2.2.0/_generated/models/webhook_delivery_list_response_next_cursor.py +62 -0
  211. ghostcrawl-2.2.0/_generated/models/webhook_delivery_list_response_next_cursor_member1.py +43 -0
  212. ghostcrawl-2.2.0/_generated/models/webhook_delivery_public.py +119 -0
  213. ghostcrawl-2.2.0/_generated/models/webhook_delivery_public_delivered_at.py +63 -0
  214. ghostcrawl-2.2.0/_generated/models/webhook_delivery_public_delivered_at_member1.py +43 -0
  215. ghostcrawl-2.2.0/_generated/models/webhook_delivery_public_error_class.py +62 -0
  216. ghostcrawl-2.2.0/_generated/models/webhook_delivery_public_error_class_member1.py +43 -0
  217. ghostcrawl-2.2.0/_generated/models/webhook_delivery_public_replay_of.py +63 -0
  218. ghostcrawl-2.2.0/_generated/models/webhook_delivery_public_replay_of_member1.py +43 -0
  219. ghostcrawl-2.2.0/_generated/models/webhook_delivery_public_response_body_preview.py +62 -0
  220. ghostcrawl-2.2.0/_generated/models/webhook_delivery_public_response_body_preview_member1.py +43 -0
  221. ghostcrawl-2.2.0/_generated/models/webhook_delivery_public_response_status.py +62 -0
  222. ghostcrawl-2.2.0/_generated/models/webhook_delivery_public_response_status_member1.py +43 -0
  223. ghostcrawl-2.2.0/_generated/models/webhook_list_response.py +68 -0
  224. ghostcrawl-2.2.0/_generated/models/webhook_list_response_next_cursor.py +62 -0
  225. ghostcrawl-2.2.0/_generated/models/webhook_list_response_next_cursor_member1.py +43 -0
  226. ghostcrawl-2.2.0/_generated/models/webhook_public.py +91 -0
  227. ghostcrawl-2.2.0/_generated/models/webhook_public_secret_rotated_at.py +63 -0
  228. ghostcrawl-2.2.0/_generated/models/webhook_public_secret_rotated_at_member1.py +43 -0
  229. ghostcrawl-2.2.0/_generated/v1/audit/audit_request_builder.py +33 -0
  230. ghostcrawl-2.2.0/_generated/v1/audit/events/events_request_builder.py +109 -0
  231. ghostcrawl-2.2.0/_generated/v1/billing/billing_request_builder.py +63 -0
  232. ghostcrawl-2.2.0/_generated/v1/billing/checkout/checkout_request_builder.py +86 -0
  233. ghostcrawl-2.2.0/_generated/v1/billing/portal/portal_request_builder.py +78 -0
  234. ghostcrawl-2.2.0/_generated/v1/billing/subscription/subscription_request_builder.py +78 -0
  235. ghostcrawl-2.2.0/_generated/v1/billing/usage/usage_request_builder.py +99 -0
  236. ghostcrawl-2.2.0/_generated/v1/binary/binary_request_builder.py +33 -0
  237. ghostcrawl-2.2.0/_generated/v1/binary/download/download_request_builder.py +88 -0
  238. ghostcrawl-2.2.0/_generated/v1/budgets/budgets_request_builder.py +43 -0
  239. ghostcrawl-2.2.0/_generated/v1/budgets/policy/item/item/with_scope_item_request_builder.py +78 -0
  240. ghostcrawl-2.2.0/_generated/v1/budgets/policy/item/with_scope_type_item_request_builder.py +38 -0
  241. ghostcrawl-2.2.0/_generated/v1/budgets/policy/policy_request_builder.py +147 -0
  242. ghostcrawl-2.2.0/_generated/v1/budgets/usage/usage_request_builder.py +88 -0
  243. ghostcrawl-2.2.0/_generated/v1/cdp/cdp_request_builder.py +43 -0
  244. ghostcrawl-2.2.0/_generated/v1/cdp/frame/frame_request_builder.py +86 -0
  245. ghostcrawl-2.2.0/_generated/v1/cdp/url/url_request_builder.py +86 -0
  246. ghostcrawl-2.2.0/_generated/v1/contact/contact_post_response.py +43 -0
  247. ghostcrawl-2.2.0/_generated/v1/contact/contact_request_builder.py +89 -0
  248. ghostcrawl-2.2.0/_generated/v1/crawl/crawl_request_builder.py +33 -0
  249. ghostcrawl-2.2.0/_generated/v1/crawl/deep/deep_request_builder.py +101 -0
  250. ghostcrawl-2.2.0/_generated/v1/crawl/deep/item/with_run_item_request_builder.py +78 -0
  251. ghostcrawl-2.2.0/_generated/v1/crawl_runs/crawl_runs_post_request_body.py +43 -0
  252. ghostcrawl-2.2.0/_generated/v1/crawl_runs/crawl_runs_request_builder.py +165 -0
  253. ghostcrawl-2.2.0/_generated/v1/crawl_runs/item/cancel/cancel_request_builder.py +78 -0
  254. ghostcrawl-2.2.0/_generated/v1/crawl_runs/item/resume/resume_request_builder.py +78 -0
  255. ghostcrawl-2.2.0/_generated/v1/crawl_runs/item/with_run_item_request_builder.py +107 -0
  256. ghostcrawl-2.2.0/_generated/v1/datasets/datasets_post_request_body.py +43 -0
  257. ghostcrawl-2.2.0/_generated/v1/datasets/datasets_request_builder.py +155 -0
  258. ghostcrawl-2.2.0/_generated/v1/datasets/item/rows/append/append_post_request_body.py +43 -0
  259. ghostcrawl-2.2.0/_generated/v1/datasets/item/rows/append/append_request_builder.py +86 -0
  260. ghostcrawl-2.2.0/_generated/v1/datasets/item/rows/rows_request_builder.py +98 -0
  261. ghostcrawl-2.2.0/_generated/v1/datasets/item/with_name_item_request_builder.py +124 -0
  262. ghostcrawl-2.2.0/_generated/v1/discovery/discovery_request_builder.py +78 -0
  263. ghostcrawl-2.2.0/_generated/v1/engines/engines_request_builder.py +33 -0
  264. ghostcrawl-2.2.0/_generated/v1/engines/manifest/manifest_request_builder.py +96 -0
  265. ghostcrawl-2.2.0/_generated/v1/extract/extract_post_response.py +43 -0
  266. ghostcrawl-2.2.0/_generated/v1/extract/extract_request_builder.py +98 -0
  267. ghostcrawl-2.2.0/_generated/v1/identity/identity_request_builder.py +89 -0
  268. ghostcrawl-2.2.0/_generated/v1/kv/item/with_key_item_request_builder.py +158 -0
  269. ghostcrawl-2.2.0/_generated/v1/kv/item/with_key_put_request_body.py +43 -0
  270. ghostcrawl-2.2.0/_generated/v1/kv/kv_request_builder.py +38 -0
  271. ghostcrawl-2.2.0/_generated/v1/map/map_request_builder.py +89 -0
  272. ghostcrawl-2.2.0/_generated/v1/me/export/export_get_response.py +43 -0
  273. ghostcrawl-2.2.0/_generated/v1/me/export/export_request_builder.py +81 -0
  274. ghostcrawl-2.2.0/_generated/v1/me/me_request_builder.py +101 -0
  275. ghostcrawl-2.2.0/_generated/v1/me/usage/get_period_query_parameter_type.py +7 -0
  276. ghostcrawl-2.2.0/_generated/v1/me/usage/usage_get_response.py +43 -0
  277. ghostcrawl-2.2.0/_generated/v1/me/usage/usage_request_builder.py +90 -0
  278. ghostcrawl-2.2.0/_generated/v1/page/cookies/cookies_request_builder.py +178 -0
  279. ghostcrawl-2.2.0/_generated/v1/page/dom_snapshot/dom_snapshot_request_builder.py +86 -0
  280. ghostcrawl-2.2.0/_generated/v1/page/download/download_request_builder.py +86 -0
  281. ghostcrawl-2.2.0/_generated/v1/page/eval/eval_request_builder.py +86 -0
  282. ghostcrawl-2.2.0/_generated/v1/page/har/har_request_builder.py +86 -0
  283. ghostcrawl-2.2.0/_generated/v1/page/page_request_builder.py +103 -0
  284. ghostcrawl-2.2.0/_generated/v1/page/scroll/scroll_request_builder.py +86 -0
  285. ghostcrawl-2.2.0/_generated/v1/page/upload/upload_request_builder.py +86 -0
  286. ghostcrawl-2.2.0/_generated/v1/page/wait/wait_request_builder.py +86 -0
  287. ghostcrawl-2.2.0/_generated/v1/pricing/pricing_request_builder.py +33 -0
  288. ghostcrawl-2.2.0/_generated/v1/pricing/public/public_request_builder.py +70 -0
  289. ghostcrawl-2.2.0/_generated/v1/profiles/item/with_name_item_request_builder.py +158 -0
  290. ghostcrawl-2.2.0/_generated/v1/profiles/profiles_request_builder.py +155 -0
  291. ghostcrawl-2.2.0/_generated/v1/proxy_providers/proxy_providers_request_builder.py +78 -0
  292. ghostcrawl-2.2.0/_generated/v1/queues/item/ack/ack_post_request_body.py +43 -0
  293. ghostcrawl-2.2.0/_generated/v1/queues/item/ack/ack_request_builder.py +86 -0
  294. ghostcrawl-2.2.0/_generated/v1/queues/item/pop/pop_request_builder.py +86 -0
  295. ghostcrawl-2.2.0/_generated/v1/queues/item/push/push_post_request_body.py +43 -0
  296. ghostcrawl-2.2.0/_generated/v1/queues/item/push/push_request_builder.py +86 -0
  297. ghostcrawl-2.2.0/_generated/v1/queues/item/stats/stats_request_builder.py +78 -0
  298. ghostcrawl-2.2.0/_generated/v1/queues/item/with_name_item_request_builder.py +63 -0
  299. ghostcrawl-2.2.0/_generated/v1/queues/queues_request_builder.py +38 -0
  300. ghostcrawl-2.2.0/_generated/v1/recordings/item/recording_item_request_builder.py +124 -0
  301. ghostcrawl-2.2.0/_generated/v1/recordings/item/visual/frames/frames_request_builder.py +98 -0
  302. ghostcrawl-2.2.0/_generated/v1/recordings/item/visual/start/start_request_builder.py +86 -0
  303. ghostcrawl-2.2.0/_generated/v1/recordings/item/visual/stop/stop_request_builder.py +86 -0
  304. ghostcrawl-2.2.0/_generated/v1/recordings/item/visual/visual_request_builder.py +116 -0
  305. ghostcrawl-2.2.0/_generated/v1/recordings/recordings_request_builder.py +111 -0
  306. ghostcrawl-2.2.0/_generated/v1/registry/registry_request_builder.py +33 -0
  307. ghostcrawl-2.2.0/_generated/v1/registry/token/token_request_builder.py +86 -0
  308. ghostcrawl-2.2.0/_generated/v1/schedules/item/runs/runs_request_builder.py +78 -0
  309. ghostcrawl-2.2.0/_generated/v1/schedules/item/with_schedule_item_request_builder.py +124 -0
  310. ghostcrawl-2.2.0/_generated/v1/schedules/schedules_request_builder.py +137 -0
  311. ghostcrawl-2.2.0/_generated/v1/scrape/batch/batch_request_builder.py +95 -0
  312. ghostcrawl-2.2.0/_generated/v1/scrape/scrape_request_builder.py +106 -0
  313. ghostcrawl-2.2.0/_generated/v1/screenshot_blobs/item/with_ref_item_request_builder.py +78 -0
  314. ghostcrawl-2.2.0/_generated/v1/screenshot_blobs/screenshot_blobs_request_builder.py +38 -0
  315. ghostcrawl-2.2.0/_generated/v1/search/search_request_builder.py +95 -0
  316. ghostcrawl-2.2.0/_generated/v1/sessions/create/create_request_builder.py +86 -0
  317. ghostcrawl-2.2.0/_generated/v1/sessions/item/budget_stream/budget_stream_request_builder.py +78 -0
  318. ghostcrawl-2.2.0/_generated/v1/sessions/item/extend/extend_request_builder.py +86 -0
  319. ghostcrawl-2.2.0/_generated/v1/sessions/item/pin/pin_request_builder.py +78 -0
  320. ghostcrawl-2.2.0/_generated/v1/sessions/item/profile_item_request_builder.py +103 -0
  321. ghostcrawl-2.2.0/_generated/v1/sessions/item/recording/recording_request_builder.py +43 -0
  322. ghostcrawl-2.2.0/_generated/v1/sessions/item/recording/start/start_request_builder.py +78 -0
  323. ghostcrawl-2.2.0/_generated/v1/sessions/item/recording/stop/stop_request_builder.py +78 -0
  324. ghostcrawl-2.2.0/_generated/v1/sessions/item/release/release_request_builder.py +78 -0
  325. ghostcrawl-2.2.0/_generated/v1/sessions/item/takeover/takeover_request_builder.py +86 -0
  326. ghostcrawl-2.2.0/_generated/v1/sessions/item/takeover_release/takeover_release_request_builder.py +78 -0
  327. ghostcrawl-2.2.0/_generated/v1/sessions/item/takeover_token/takeover_token_request_builder.py +78 -0
  328. ghostcrawl-2.2.0/_generated/v1/sessions/sessions_request_builder.py +121 -0
  329. ghostcrawl-2.2.0/_generated/v1/storage_states/detach/detach_request_builder.py +86 -0
  330. ghostcrawl-2.2.0/_generated/v1/storage_states/item/attach/attach_request_builder.py +86 -0
  331. ghostcrawl-2.2.0/_generated/v1/storage_states/item/with_id_or_name_item_request_builder.py +124 -0
  332. ghostcrawl-2.2.0/_generated/v1/storage_states/storage_states_post_request_body.py +43 -0
  333. ghostcrawl-2.2.0/_generated/v1/storage_states/storage_states_request_builder.py +157 -0
  334. ghostcrawl-2.2.0/_generated/v1/updates/updates_request_builder.py +87 -0
  335. ghostcrawl-2.2.0/_generated/v1/v1_request_builder.py +333 -0
  336. ghostcrawl-2.2.0/_generated/v1/webhooks/item/deliveries/deliveries_request_builder.py +114 -0
  337. ghostcrawl-2.2.0/_generated/v1/webhooks/item/deliveries/item/retry/retry_request_builder.py +81 -0
  338. ghostcrawl-2.2.0/_generated/v1/webhooks/item/deliveries/item/with_delivery_item_request_builder.py +33 -0
  339. ghostcrawl-2.2.0/_generated/v1/webhooks/item/rotate_secret/rotate_secret_request_builder.py +81 -0
  340. ghostcrawl-2.2.0/_generated/v1/webhooks/item/with_webhook_item_request_builder.py +137 -0
  341. ghostcrawl-2.2.0/_generated/v1/webhooks/webhooks_request_builder.py +161 -0
  342. ghostcrawl-2.2.0/ghostcrawl/__init__.py +122 -0
  343. ghostcrawl-2.2.0/ghostcrawl/_ghostcrawl.py +129 -0
  344. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl/branded.py +18 -15
  345. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl/cli/_batch.py +11 -13
  346. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl/cli/main.py +60 -66
  347. ghostcrawl-2.2.0/ghostcrawl/errors/__init__.py +44 -0
  348. ghostcrawl-2.2.0/ghostcrawl/errors/codes.py +92 -0
  349. ghostcrawl-2.2.0/ghostcrawl/facade.py +1580 -0
  350. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl/identity/__init__.py +2 -2
  351. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl/identity/client.py +5 -6
  352. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl/mcp/wrapper.py +2 -2
  353. ghostcrawl-2.2.0/ghostcrawl/retry_policy.py +55 -0
  354. ghostcrawl-2.2.0/ghostcrawl.egg-info/PKG-INFO +195 -0
  355. ghostcrawl-2.2.0/ghostcrawl.egg-info/SOURCES.txt +367 -0
  356. ghostcrawl-2.2.0/ghostcrawl.egg-info/requires.txt +15 -0
  357. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl.egg-info/top_level.txt +1 -0
  358. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/pyproject.toml +12 -4
  359. ghostcrawl-2.1.2/LICENSE +0 -201
  360. ghostcrawl-2.1.2/PKG-INFO +0 -211
  361. ghostcrawl-2.1.2/README.md +0 -182
  362. ghostcrawl-2.1.2/ghostcrawl/__init__.py +0 -271
  363. ghostcrawl-2.1.2/ghostcrawl/_default_clients.py +0 -30
  364. ghostcrawl-2.1.2/ghostcrawl/_ghostcrawl.py +0 -415
  365. ghostcrawl-2.1.2/ghostcrawl/audit/__init__.py +0 -34
  366. ghostcrawl-2.1.2/ghostcrawl/audit/client.py +0 -194
  367. ghostcrawl-2.1.2/ghostcrawl/audit/raw_client.py +0 -218
  368. ghostcrawl-2.1.2/ghostcrawl/audit/types/__init__.py +0 -34
  369. ghostcrawl-2.1.2/ghostcrawl/audit/types/list_events_audit_request_outcome.py +0 -5
  370. ghostcrawl-2.1.2/ghostcrawl/auth/__init__.py +0 -4
  371. ghostcrawl-2.1.2/ghostcrawl/auth/client.py +0 -569
  372. ghostcrawl-2.1.2/ghostcrawl/auth/raw_client.py +0 -846
  373. ghostcrawl-2.1.2/ghostcrawl/auth_tokens/__init__.py +0 -4
  374. ghostcrawl-2.1.2/ghostcrawl/auth_tokens/client.py +0 -267
  375. ghostcrawl-2.1.2/ghostcrawl/auth_tokens/raw_client.py +0 -339
  376. ghostcrawl-2.1.2/ghostcrawl/budgets/__init__.py +0 -4
  377. ghostcrawl-2.1.2/ghostcrawl/budgets/client.py +0 -490
  378. ghostcrawl-2.1.2/ghostcrawl/budgets/raw_client.py +0 -630
  379. ghostcrawl-2.1.2/ghostcrawl/cli/_fern_raw.py +0 -35
  380. ghostcrawl-2.1.2/ghostcrawl/client.py +0 -765
  381. ghostcrawl-2.1.2/ghostcrawl/core/__init__.py +0 -127
  382. ghostcrawl-2.1.2/ghostcrawl/core/api_error.py +0 -23
  383. ghostcrawl-2.1.2/ghostcrawl/core/client_wrapper.py +0 -101
  384. ghostcrawl-2.1.2/ghostcrawl/core/datetime_utils.py +0 -70
  385. ghostcrawl-2.1.2/ghostcrawl/core/file.py +0 -67
  386. ghostcrawl-2.1.2/ghostcrawl/core/force_multipart.py +0 -18
  387. ghostcrawl-2.1.2/ghostcrawl/core/http_client.py +0 -839
  388. ghostcrawl-2.1.2/ghostcrawl/core/http_response.py +0 -59
  389. ghostcrawl-2.1.2/ghostcrawl/core/http_sse/__init__.py +0 -42
  390. ghostcrawl-2.1.2/ghostcrawl/core/http_sse/_api.py +0 -148
  391. ghostcrawl-2.1.2/ghostcrawl/core/http_sse/_decoders.py +0 -61
  392. ghostcrawl-2.1.2/ghostcrawl/core/http_sse/_exceptions.py +0 -7
  393. ghostcrawl-2.1.2/ghostcrawl/core/http_sse/_models.py +0 -17
  394. ghostcrawl-2.1.2/ghostcrawl/core/jsonable_encoder.py +0 -120
  395. ghostcrawl-2.1.2/ghostcrawl/core/logging.py +0 -107
  396. ghostcrawl-2.1.2/ghostcrawl/core/parse_error.py +0 -36
  397. ghostcrawl-2.1.2/ghostcrawl/core/pydantic_utilities.py +0 -634
  398. ghostcrawl-2.1.2/ghostcrawl/core/query_encoder.py +0 -58
  399. ghostcrawl-2.1.2/ghostcrawl/core/remove_none_from_dict.py +0 -11
  400. ghostcrawl-2.1.2/ghostcrawl/core/request_options.py +0 -35
  401. ghostcrawl-2.1.2/ghostcrawl/core/serialization.py +0 -276
  402. ghostcrawl-2.1.2/ghostcrawl/crawl_runs/__init__.py +0 -4
  403. ghostcrawl-2.1.2/ghostcrawl/crawl_runs/client.py +0 -437
  404. ghostcrawl-2.1.2/ghostcrawl/crawl_runs/raw_client.py +0 -638
  405. ghostcrawl-2.1.2/ghostcrawl/datasets/__init__.py +0 -4
  406. ghostcrawl-2.1.2/ghostcrawl/datasets/client.py +0 -509
  407. ghostcrawl-2.1.2/ghostcrawl/datasets/raw_client.py +0 -712
  408. ghostcrawl-2.1.2/ghostcrawl/errors/__init__.py +0 -34
  409. ghostcrawl-2.1.2/ghostcrawl/errors/unprocessable_entity_error.py +0 -11
  410. ghostcrawl-2.1.2/ghostcrawl/management/__init__.py +0 -4
  411. ghostcrawl-2.1.2/ghostcrawl/management/client.py +0 -108
  412. ghostcrawl-2.1.2/ghostcrawl/management/raw_client.py +0 -109
  413. ghostcrawl-2.1.2/ghostcrawl/mfa/__init__.py +0 -4
  414. ghostcrawl-2.1.2/ghostcrawl/mfa/client.py +0 -394
  415. ghostcrawl-2.1.2/ghostcrawl/mfa/raw_client.py +0 -587
  416. ghostcrawl-2.1.2/ghostcrawl/oauth/__init__.py +0 -4
  417. ghostcrawl-2.1.2/ghostcrawl/oauth/client.py +0 -764
  418. ghostcrawl-2.1.2/ghostcrawl/oauth/raw_client.py +0 -1123
  419. ghostcrawl-2.1.2/ghostcrawl/observability/__init__.py +0 -4
  420. ghostcrawl-2.1.2/ghostcrawl/observability/client.py +0 -198
  421. ghostcrawl-2.1.2/ghostcrawl/observability/raw_client.py +0 -293
  422. ghostcrawl-2.1.2/ghostcrawl/page/__init__.py +0 -34
  423. ghostcrawl-2.1.2/ghostcrawl/page/client.py +0 -816
  424. ghostcrawl-2.1.2/ghostcrawl/page/raw_client.py +0 -1176
  425. ghostcrawl-2.1.2/ghostcrawl/page/types/__init__.py +0 -34
  426. ghostcrawl-2.1.2/ghostcrawl/page/types/scroll_body_direction.py +0 -5
  427. ghostcrawl-2.1.2/ghostcrawl/profiles/__init__.py +0 -4
  428. ghostcrawl-2.1.2/ghostcrawl/profiles/client.py +0 -172
  429. ghostcrawl-2.1.2/ghostcrawl/profiles/raw_client.py +0 -200
  430. ghostcrawl-2.1.2/ghostcrawl/raw_client.py +0 -357
  431. ghostcrawl-2.1.2/ghostcrawl/recordings/__init__.py +0 -4
  432. ghostcrawl-2.1.2/ghostcrawl/recordings/client.py +0 -546
  433. ghostcrawl-2.1.2/ghostcrawl/recordings/raw_client.py +0 -767
  434. ghostcrawl-2.1.2/ghostcrawl/retry_policy.py +0 -71
  435. ghostcrawl-2.1.2/ghostcrawl/screenshot_blobs/__init__.py +0 -4
  436. ghostcrawl-2.1.2/ghostcrawl/screenshot_blobs/client.py +0 -125
  437. ghostcrawl-2.1.2/ghostcrawl/screenshot_blobs/raw_client.py +0 -151
  438. ghostcrawl-2.1.2/ghostcrawl/script/__init__.py +0 -4
  439. ghostcrawl-2.1.2/ghostcrawl/script/client.py +0 -124
  440. ghostcrawl-2.1.2/ghostcrawl/script/raw_client.py +0 -157
  441. ghostcrawl-2.1.2/ghostcrawl/sessions/__init__.py +0 -4
  442. ghostcrawl-2.1.2/ghostcrawl/sessions/client.py +0 -276
  443. ghostcrawl-2.1.2/ghostcrawl/sessions/raw_client.py +0 -345
  444. ghostcrawl-2.1.2/ghostcrawl/storage_states/__init__.py +0 -4
  445. ghostcrawl-2.1.2/ghostcrawl/storage_states/client.py +0 -536
  446. ghostcrawl-2.1.2/ghostcrawl/storage_states/raw_client.py +0 -810
  447. ghostcrawl-2.1.2/ghostcrawl/types/__init__.py +0 -128
  448. ghostcrawl-2.1.2/ghostcrawl/types/audit_event_out.py +0 -28
  449. ghostcrawl-2.1.2/ghostcrawl/types/audit_events_response.py +0 -14
  450. ghostcrawl-2.1.2/ghostcrawl/types/cookie_dict.py +0 -29
  451. ghostcrawl-2.1.2/ghostcrawl/types/cookie_dict_same_site.py +0 -5
  452. ghostcrawl-2.1.2/ghostcrawl/types/device_auth_envelope.py +0 -17
  453. ghostcrawl-2.1.2/ghostcrawl/types/device_poll_request.py +0 -12
  454. ghostcrawl-2.1.2/ghostcrawl/types/enroll_response.py +0 -15
  455. ghostcrawl-2.1.2/ghostcrawl/types/http_validation_error.py +0 -13
  456. ghostcrawl-2.1.2/ghostcrawl/types/link_confirm_response.py +0 -16
  457. ghostcrawl-2.1.2/ghostcrawl/types/link_decline_response.py +0 -13
  458. ghostcrawl-2.1.2/ghostcrawl/types/password_reset_confirm_response.py +0 -12
  459. ghostcrawl-2.1.2/ghostcrawl/types/password_reset_request_response.py +0 -12
  460. ghostcrawl-2.1.2/ghostcrawl/types/regenerate_response.py +0 -12
  461. ghostcrawl-2.1.2/ghostcrawl/types/resend_response.py +0 -12
  462. ghostcrawl-2.1.2/ghostcrawl/types/retry_delivery_response.py +0 -23
  463. ghostcrawl-2.1.2/ghostcrawl/types/rotate_secret_response.py +0 -32
  464. ghostcrawl-2.1.2/ghostcrawl/types/signup_response.py +0 -13
  465. ghostcrawl-2.1.2/ghostcrawl/types/token_create_response.py +0 -22
  466. ghostcrawl-2.1.2/ghostcrawl/types/token_list_item.py +0 -24
  467. ghostcrawl-2.1.2/ghostcrawl/types/token_list_response.py +0 -17
  468. ghostcrawl-2.1.2/ghostcrawl/types/unlink_response.py +0 -13
  469. ghostcrawl-2.1.2/ghostcrawl/types/user_shape.py +0 -14
  470. ghostcrawl-2.1.2/ghostcrawl/types/validation_error.py +0 -17
  471. ghostcrawl-2.1.2/ghostcrawl/types/validation_error_loc_item.py +0 -5
  472. ghostcrawl-2.1.2/ghostcrawl/types/verify_response.py +0 -12
  473. ghostcrawl-2.1.2/ghostcrawl/types/webhook_create_response.py +0 -25
  474. ghostcrawl-2.1.2/ghostcrawl/types/webhook_delivery_list_response.py +0 -19
  475. ghostcrawl-2.1.2/ghostcrawl/types/webhook_delivery_public.py +0 -32
  476. ghostcrawl-2.1.2/ghostcrawl/types/webhook_list_response.py +0 -19
  477. ghostcrawl-2.1.2/ghostcrawl/types/webhook_public.py +0 -29
  478. ghostcrawl-2.1.2/ghostcrawl/types/webhooks_queue_response.py +0 -27
  479. ghostcrawl-2.1.2/ghostcrawl/webhooks/__init__.py +0 -4
  480. ghostcrawl-2.1.2/ghostcrawl/webhooks/client.py +0 -743
  481. ghostcrawl-2.1.2/ghostcrawl/webhooks/raw_client.py +0 -966
  482. ghostcrawl-2.1.2/ghostcrawl.egg-info/PKG-INFO +0 -211
  483. ghostcrawl-2.1.2/ghostcrawl.egg-info/SOURCES.txt +0 -144
  484. ghostcrawl-2.1.2/ghostcrawl.egg-info/requires.txt +0 -9
  485. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl/cli/__init__.py +0 -0
  486. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl/cli/_config_store.py +0 -0
  487. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl/cli/install.py +0 -0
  488. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl/errors/identity_errors.py +0 -0
  489. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl/identity/types.py +0 -0
  490. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl/mcp/__init__.py +0 -0
  491. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl/params.py +0 -0
  492. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl/py.typed +0 -0
  493. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl.egg-info/dependency_links.txt +0 -0
  494. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/ghostcrawl.egg-info/entry_points.txt +0 -0
  495. {ghostcrawl-2.1.2 → ghostcrawl-2.2.0}/setup.cfg +0 -0
@@ -0,0 +1,46 @@
1
+ GhostCrawl Software License
2
+
3
+ Copyright (c) 2026 GhostCrawl, LLC. All rights reserved.
4
+
5
+ This software — including the GhostCrawl SDKs, command-line interface, example
6
+ code, documentation, and the GhostCrawl self-host image (collectively, the
7
+ "Software") — is the proprietary property of GhostCrawl, LLC ("GhostCrawl") and
8
+ its licensors. It is licensed, not sold.
9
+
10
+ 1. LICENSE GRANT. Subject to your continuous compliance with this License and the
11
+ GhostCrawl Terms of Service (https://docs.ghostcrawl.io/legal/terms),
12
+ GhostCrawl grants you a limited, revocable, non-exclusive, non-transferable,
13
+ and non-sublicensable license to install and use the Software, including
14
+ within your own applications, solely to access and use the GhostCrawl service
15
+ under a valid GhostCrawl account.
16
+
17
+ 2. RESTRICTIONS. Except as expressly permitted in Section 1, you may not, in
18
+ whole or in part: (a) copy the Software except as strictly necessary to use it
19
+ as permitted; (b) modify, adapt, translate, or create derivative works of the
20
+ Software; (c) distribute, publish, sublicense, sell, resell, rent, lease,
21
+ lend, or otherwise transfer the Software, or make it available to any third
22
+ party, including as a hosted or managed service; (d) reverse engineer,
23
+ decompile, disassemble, or otherwise attempt to derive the source code,
24
+ structure, or internal design of any compiled component of the Software;
25
+ (e) circumvent, disable, or tamper with any license, authentication,
26
+ usage-metering, watermarking, or security mechanism; or (f) remove, alter, or
27
+ obscure any proprietary, copyright, or attribution notice.
28
+
29
+ 3. OWNERSHIP. GhostCrawl and its licensors retain all right, title, and interest
30
+ in and to the Software and all intellectual property rights therein. No rights
31
+ are granted to you except as expressly set out in this License. All rights
32
+ reserved.
33
+
34
+ 4. TERMINATION. This License terminates automatically, without notice, if you
35
+ breach any of its terms or cease to maintain a valid GhostCrawl account where
36
+ one is required. Upon termination you must cease all use of the Software and
37
+ destroy all copies in your possession or control.
38
+
39
+ 5. NO WARRANTY; LIMITATION OF LIABILITY. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT
40
+ WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. TO THE MAXIMUM EXTENT PERMITTED BY
41
+ LAW, GHOSTCRAWL AND ITS LICENSORS WILL NOT BE LIABLE FOR ANY CLAIM, DAMAGES, OR
42
+ OTHER LIABILITY ARISING FROM OR IN CONNECTION WITH THE SOFTWARE OR ITS USE. The
43
+ GhostCrawl Terms of Service and Acceptable Use Policy
44
+ (https://docs.ghostcrawl.io/legal/terms) are incorporated by reference.
45
+
46
+ For licensing inquiries, contact legal@ghostcrawl.io.
@@ -5,5 +5,4 @@ prune tests
5
5
  prune ghostcrawl/tests
6
6
  prune examples
7
7
  prune _operator
8
- recursive-exclude ghostcrawl reference.md
9
8
  global-exclude __pycache__ *.pyc
@@ -0,0 +1,195 @@
1
+ Metadata-Version: 2.4
2
+ Name: ghostcrawl
3
+ Version: 2.2.0
4
+ Summary: Official Python SDK for the Ghostcrawl local orchestration API.
5
+ Author: Ghostcrawl
6
+ License: Proprietary — see LICENSE
7
+ Project-URL: Homepage, https://github.com/ghostcrawl/ghostcrawl
8
+ Keywords: ghostcrawl,scraping,browser,automation,agent
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: License :: Other/Proprietary License
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
17
+ Requires-Python: >=3.10
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Requires-Dist: httpx>=0.28.1
21
+ Requires-Dist: pydantic>=2.13
22
+ Requires-Dist: typer>=0.12
23
+ Requires-Dist: mcp>=1.27.1
24
+ Requires-Dist: microsoft-kiota-abstractions>=1.7.0
25
+ Requires-Dist: microsoft-kiota-http>=1.10.0
26
+ Requires-Dist: microsoft-kiota-serialization-json>=1.7.0
27
+ Requires-Dist: microsoft-kiota-serialization-text>=1.0.0
28
+ Requires-Dist: microsoft-kiota-serialization-form>=1.0.0
29
+ Requires-Dist: microsoft-kiota-serialization-multipart>=1.0.0
30
+ Provides-Extra: dev
31
+ Requires-Dist: pytest>=8.0; extra == "dev"
32
+ Requires-Dist: respx>=0.23.1; extra == "dev"
33
+ Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
34
+ Dynamic: license-file
35
+
36
+ # ghostcrawl — Python SDK
37
+
38
+ The official Python client for the [GhostCrawl](https://ghostcrawl.io) API. Collect web data at scale — scrape, crawl, search, extract structured data, manage browser sessions, and automate the full data-collection pipeline.
39
+
40
+ ## Install
41
+
42
+ ```bash
43
+ pip install ghostcrawl
44
+ ```
45
+
46
+ Requires Python 3.10+. Runtime dependencies: `httpx>=0.28.1`.
47
+
48
+ ## Quickstart
49
+
50
+ ```python
51
+ from ghostcrawl import GhostcrawlClient
52
+
53
+ # Reads GHOSTCRAWL_API_KEY from environment, or pass token= explicitly
54
+ client = GhostcrawlClient(token="gck_live_YOUR_KEY")
55
+
56
+ # Scrape a URL
57
+ result = client.scrape(url="https://example.com", format="markdown")
58
+ print(result["content"])
59
+
60
+ # Start a crawl
61
+ run = client.crawl_runs.start(url="https://example.com", max_depth=2, max_pages=50)
62
+ print(run["run_id"])
63
+
64
+ # Web search
65
+ results = client.search(query="latest AI research", engine="google", limit=10)
66
+ for r in results["results"]:
67
+ print(r["title"], r["url"])
68
+ ```
69
+
70
+ ## Authentication
71
+
72
+ ```python
73
+ import os
74
+ from ghostcrawl import GhostcrawlClient
75
+
76
+ # Option 1: pass token directly
77
+ client = GhostcrawlClient(token="gck_live_YOUR_KEY")
78
+
79
+ # Option 2: set environment variable (recommended for production)
80
+ os.environ["GHOSTCRAWL_API_KEY"] = "gck_live_YOUR_KEY"
81
+ client = GhostcrawlClient()
82
+ ```
83
+
84
+ Every request sends `Authorization: Bearer <token>`. This is the only auth scheme the API accepts.
85
+
86
+ ## Extract structured data
87
+
88
+ ```python
89
+ from ghostcrawl import GhostcrawlClient
90
+
91
+ client = GhostcrawlClient(token="gck_live_YOUR_KEY")
92
+
93
+ # Define a schema and extract matching data
94
+ data = client.extract(
95
+ url="https://example.com/product",
96
+ schema={
97
+ "type": "object",
98
+ "properties": {
99
+ "name": {"type": "string"},
100
+ "price": {"type": "number"},
101
+ "description": {"type": "string"},
102
+ },
103
+ },
104
+ )
105
+ print(data["name"], data["price"])
106
+ ```
107
+
108
+ ## Browser sessions
109
+
110
+ ```python
111
+ from ghostcrawl import GhostcrawlClient
112
+
113
+ client = GhostcrawlClient(token="gck_live_YOUR_KEY")
114
+
115
+ # Create a session
116
+ session = client.sessions.create(profile_name="my-profile")
117
+ session_id = session["session_id"]
118
+
119
+ # Extend and release
120
+ client.sessions.extend(session_id, duration_seconds=600)
121
+ client.sessions.release(session_id)
122
+ ```
123
+
124
+ ## Error handling
125
+
126
+ ```python
127
+ from ghostcrawl import GhostcrawlClient, AuthenticationError, RateLimitError, APIError
128
+
129
+ client = GhostcrawlClient(token="gck_live_YOUR_KEY")
130
+
131
+ try:
132
+ result = client.scrape(url="https://example.com")
133
+ except AuthenticationError:
134
+ print("Invalid API key — check your token")
135
+ except RateLimitError:
136
+ print("Rate limit reached — retry after a short delay")
137
+ except APIError as e:
138
+ print(f"Server error: {e.status_code}")
139
+ ```
140
+
141
+ ## Context manager
142
+
143
+ ```python
144
+ from ghostcrawl import GhostcrawlClient
145
+
146
+ with GhostcrawlClient(token="gck_live_YOUR_KEY") as client:
147
+ result = client.scrape(url="https://example.com")
148
+ print(result)
149
+ # HTTP connection is closed automatically
150
+ ```
151
+
152
+ ## All resources
153
+
154
+ | Resource | Client attribute | Key operations |
155
+ |----------|-----------------|----------------|
156
+ | Scraping | `client.scrape(url=…)` | Render and return page content |
157
+ | Web search | `client.search(query=…)` | Search Google, Bing, DuckDuckGo |
158
+ | Data extraction | `client.extract(url=…, schema=…)` | Structured JSON from any page |
159
+ | Deep crawl | `client.crawl(url=…)` | Crawl a site depth-first |
160
+ | URL map | `client.map(url=…)` | Discover all reachable URLs |
161
+ | Crawl runs | `client.crawl_runs` | start, list, get, cancel |
162
+ | Sessions | `client.sessions` | create, extend, release |
163
+ | Profiles | `client.profiles` | list, get, create, update, delete |
164
+ | Webhooks | `client.webhooks` | list, get, create, delete, rotate-secret |
165
+ | Schedules | `client.schedules` | list, get, create, delete |
166
+ | Datasets | `client.datasets` | list, get, create, delete, append rows |
167
+ | Recordings | `client.recordings` | list, get, delete |
168
+ | Key-Value Store | `client.kv` | get, set, delete |
169
+ | Account | `client.me()` | Get account info and usage |
170
+
171
+ ## LangChain integration
172
+
173
+ ```bash
174
+ pip install ghostcrawl-langchain
175
+ ```
176
+
177
+ ```python
178
+ from ghostcrawl_langchain import GhostcrawlScrape, GhostcrawlSearch
179
+
180
+ scrape_tool = GhostcrawlScrape()
181
+ search_tool = GhostcrawlSearch()
182
+ ```
183
+
184
+ ## Self-hosted
185
+
186
+ ```python
187
+ client = GhostcrawlClient(
188
+ token="gck_live_YOUR_KEY",
189
+ base_url="http://localhost:8080", # your self-hosted instance
190
+ )
191
+ ```
192
+
193
+ ## License
194
+
195
+ Proprietary — GhostCrawl Software License. See [LICENSE](LICENSE).
@@ -0,0 +1,160 @@
1
+ # ghostcrawl — Python SDK
2
+
3
+ The official Python client for the [GhostCrawl](https://ghostcrawl.io) API. Collect web data at scale — scrape, crawl, search, extract structured data, manage browser sessions, and automate the full data-collection pipeline.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ pip install ghostcrawl
9
+ ```
10
+
11
+ Requires Python 3.10+. Runtime dependencies: `httpx>=0.28.1`.
12
+
13
+ ## Quickstart
14
+
15
+ ```python
16
+ from ghostcrawl import GhostcrawlClient
17
+
18
+ # Reads GHOSTCRAWL_API_KEY from environment, or pass token= explicitly
19
+ client = GhostcrawlClient(token="gck_live_YOUR_KEY")
20
+
21
+ # Scrape a URL
22
+ result = client.scrape(url="https://example.com", format="markdown")
23
+ print(result["content"])
24
+
25
+ # Start a crawl
26
+ run = client.crawl_runs.start(url="https://example.com", max_depth=2, max_pages=50)
27
+ print(run["run_id"])
28
+
29
+ # Web search
30
+ results = client.search(query="latest AI research", engine="google", limit=10)
31
+ for r in results["results"]:
32
+ print(r["title"], r["url"])
33
+ ```
34
+
35
+ ## Authentication
36
+
37
+ ```python
38
+ import os
39
+ from ghostcrawl import GhostcrawlClient
40
+
41
+ # Option 1: pass token directly
42
+ client = GhostcrawlClient(token="gck_live_YOUR_KEY")
43
+
44
+ # Option 2: set environment variable (recommended for production)
45
+ os.environ["GHOSTCRAWL_API_KEY"] = "gck_live_YOUR_KEY"
46
+ client = GhostcrawlClient()
47
+ ```
48
+
49
+ Every request sends `Authorization: Bearer <token>`. This is the only auth scheme the API accepts.
50
+
51
+ ## Extract structured data
52
+
53
+ ```python
54
+ from ghostcrawl import GhostcrawlClient
55
+
56
+ client = GhostcrawlClient(token="gck_live_YOUR_KEY")
57
+
58
+ # Define a schema and extract matching data
59
+ data = client.extract(
60
+ url="https://example.com/product",
61
+ schema={
62
+ "type": "object",
63
+ "properties": {
64
+ "name": {"type": "string"},
65
+ "price": {"type": "number"},
66
+ "description": {"type": "string"},
67
+ },
68
+ },
69
+ )
70
+ print(data["name"], data["price"])
71
+ ```
72
+
73
+ ## Browser sessions
74
+
75
+ ```python
76
+ from ghostcrawl import GhostcrawlClient
77
+
78
+ client = GhostcrawlClient(token="gck_live_YOUR_KEY")
79
+
80
+ # Create a session
81
+ session = client.sessions.create(profile_name="my-profile")
82
+ session_id = session["session_id"]
83
+
84
+ # Extend and release
85
+ client.sessions.extend(session_id, duration_seconds=600)
86
+ client.sessions.release(session_id)
87
+ ```
88
+
89
+ ## Error handling
90
+
91
+ ```python
92
+ from ghostcrawl import GhostcrawlClient, AuthenticationError, RateLimitError, APIError
93
+
94
+ client = GhostcrawlClient(token="gck_live_YOUR_KEY")
95
+
96
+ try:
97
+ result = client.scrape(url="https://example.com")
98
+ except AuthenticationError:
99
+ print("Invalid API key — check your token")
100
+ except RateLimitError:
101
+ print("Rate limit reached — retry after a short delay")
102
+ except APIError as e:
103
+ print(f"Server error: {e.status_code}")
104
+ ```
105
+
106
+ ## Context manager
107
+
108
+ ```python
109
+ from ghostcrawl import GhostcrawlClient
110
+
111
+ with GhostcrawlClient(token="gck_live_YOUR_KEY") as client:
112
+ result = client.scrape(url="https://example.com")
113
+ print(result)
114
+ # HTTP connection is closed automatically
115
+ ```
116
+
117
+ ## All resources
118
+
119
+ | Resource | Client attribute | Key operations |
120
+ |----------|-----------------|----------------|
121
+ | Scraping | `client.scrape(url=…)` | Render and return page content |
122
+ | Web search | `client.search(query=…)` | Search Google, Bing, DuckDuckGo |
123
+ | Data extraction | `client.extract(url=…, schema=…)` | Structured JSON from any page |
124
+ | Deep crawl | `client.crawl(url=…)` | Crawl a site depth-first |
125
+ | URL map | `client.map(url=…)` | Discover all reachable URLs |
126
+ | Crawl runs | `client.crawl_runs` | start, list, get, cancel |
127
+ | Sessions | `client.sessions` | create, extend, release |
128
+ | Profiles | `client.profiles` | list, get, create, update, delete |
129
+ | Webhooks | `client.webhooks` | list, get, create, delete, rotate-secret |
130
+ | Schedules | `client.schedules` | list, get, create, delete |
131
+ | Datasets | `client.datasets` | list, get, create, delete, append rows |
132
+ | Recordings | `client.recordings` | list, get, delete |
133
+ | Key-Value Store | `client.kv` | get, set, delete |
134
+ | Account | `client.me()` | Get account info and usage |
135
+
136
+ ## LangChain integration
137
+
138
+ ```bash
139
+ pip install ghostcrawl-langchain
140
+ ```
141
+
142
+ ```python
143
+ from ghostcrawl_langchain import GhostcrawlScrape, GhostcrawlSearch
144
+
145
+ scrape_tool = GhostcrawlScrape()
146
+ search_tool = GhostcrawlSearch()
147
+ ```
148
+
149
+ ## Self-hosted
150
+
151
+ ```python
152
+ client = GhostcrawlClient(
153
+ token="gck_live_YOUR_KEY",
154
+ base_url="http://localhost:8080", # your self-hosted instance
155
+ )
156
+ ```
157
+
158
+ ## License
159
+
160
+ Proprietary — GhostCrawl Software License. See [LICENSE](LICENSE).
@@ -0,0 +1,50 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from kiota_abstractions.api_client_builder import enable_backing_store_for_serialization_writer_factory, register_default_deserializer, register_default_serializer
4
+ from kiota_abstractions.base_request_builder import BaseRequestBuilder
5
+ from kiota_abstractions.get_path_parameters import get_path_parameters
6
+ from kiota_abstractions.request_adapter import RequestAdapter
7
+ from kiota_abstractions.serialization import ParseNodeFactoryRegistry, SerializationWriterFactoryRegistry
8
+ from kiota_serialization_form.form_parse_node_factory import FormParseNodeFactory
9
+ from kiota_serialization_form.form_serialization_writer_factory import FormSerializationWriterFactory
10
+ from kiota_serialization_json.json_parse_node_factory import JsonParseNodeFactory
11
+ from kiota_serialization_json.json_serialization_writer_factory import JsonSerializationWriterFactory
12
+ from kiota_serialization_multipart.multipart_serialization_writer_factory import MultipartSerializationWriterFactory
13
+ from kiota_serialization_text.text_parse_node_factory import TextParseNodeFactory
14
+ from kiota_serialization_text.text_serialization_writer_factory import TextSerializationWriterFactory
15
+ from typing import Any, Optional, TYPE_CHECKING, Union
16
+
17
+ if TYPE_CHECKING:
18
+ from .v1.v1_request_builder import V1RequestBuilder
19
+
20
+ class GhostcrawlClient(BaseRequestBuilder):
21
+ """
22
+ The main entry point of the SDK, exposes the configuration and the fluent API.
23
+ """
24
+ def __init__(self,request_adapter: RequestAdapter) -> None:
25
+ """
26
+ Instantiates a new GhostcrawlClient and sets the default values.
27
+ param request_adapter: The request adapter to use to execute the requests.
28
+ Returns: None
29
+ """
30
+ if request_adapter is None:
31
+ raise TypeError("request_adapter cannot be null.")
32
+ super().__init__(request_adapter, "{+baseurl}", None)
33
+ register_default_serializer(JsonSerializationWriterFactory)
34
+ register_default_serializer(TextSerializationWriterFactory)
35
+ register_default_serializer(FormSerializationWriterFactory)
36
+ register_default_serializer(MultipartSerializationWriterFactory)
37
+ register_default_deserializer(JsonParseNodeFactory)
38
+ register_default_deserializer(TextParseNodeFactory)
39
+ register_default_deserializer(FormParseNodeFactory)
40
+
41
+ @property
42
+ def v1(self) -> V1RequestBuilder:
43
+ """
44
+ The v1 property
45
+ """
46
+ from .v1.v1_request_builder import V1RequestBuilder
47
+
48
+ return V1RequestBuilder(self.request_adapter, self.path_parameters)
49
+
50
+
@@ -0,0 +1,123 @@
1
+ from __future__ import annotations
2
+ import datetime
3
+ from collections.abc import Callable
4
+ from dataclasses import dataclass, field
5
+ from kiota_abstractions.serialization import AdditionalDataHolder, Parsable, ParseNode, SerializationWriter
6
+ from typing import Any, Optional, TYPE_CHECKING, Union
7
+
8
+ if TYPE_CHECKING:
9
+ from .audit_event_out_actor_ip import AuditEventOut_actor_ip
10
+ from .audit_event_out_actor_token_id import AuditEventOut_actor_token_id
11
+ from .audit_event_out_actor_user_agent import AuditEventOut_actor_user_agent
12
+ from .audit_event_out_actor_user_id import AuditEventOut_actor_user_id
13
+ from .audit_event_out_metadata import AuditEventOut_metadata
14
+ from .audit_event_out_org_id import AuditEventOut_org_id
15
+ from .audit_event_out_target_id import AuditEventOut_target_id
16
+ from .audit_event_out_target_kind import AuditEventOut_target_kind
17
+
18
+ @dataclass
19
+ class AuditEventOut(AdditionalDataHolder, Parsable):
20
+ """
21
+ Public audit event shape — chain hashes excluded.
22
+ """
23
+ # Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
24
+ additional_data: dict[str, Any] = field(default_factory=dict)
25
+
26
+ # The action property
27
+ action: Optional[str] = None
28
+ # The actor_ip property
29
+ actor_ip: Optional[AuditEventOut_actor_ip] = None
30
+ # The actor_token_id property
31
+ actor_token_id: Optional[AuditEventOut_actor_token_id] = None
32
+ # The actor_user_agent property
33
+ actor_user_agent: Optional[AuditEventOut_actor_user_agent] = None
34
+ # The actor_user_id property
35
+ actor_user_id: Optional[AuditEventOut_actor_user_id] = None
36
+ # The created_at property
37
+ created_at: Optional[datetime.datetime] = None
38
+ # The id property
39
+ id: Optional[str] = None
40
+ # The metadata property
41
+ metadata: Optional[AuditEventOut_metadata] = None
42
+ # The org_id property
43
+ org_id: Optional[AuditEventOut_org_id] = None
44
+ # The outcome property
45
+ outcome: Optional[str] = None
46
+ # The target_id property
47
+ target_id: Optional[AuditEventOut_target_id] = None
48
+ # The target_kind property
49
+ target_kind: Optional[AuditEventOut_target_kind] = None
50
+
51
+ @staticmethod
52
+ def create_from_discriminator_value(parse_node: ParseNode) -> AuditEventOut:
53
+ """
54
+ Creates a new instance of the appropriate class based on discriminator value
55
+ param parse_node: The parse node to use to read the discriminator value and create the object
56
+ Returns: AuditEventOut
57
+ """
58
+ if parse_node is None:
59
+ raise TypeError("parse_node cannot be null.")
60
+ return AuditEventOut()
61
+
62
+ def get_field_deserializers(self,) -> dict[str, Callable[[ParseNode], None]]:
63
+ """
64
+ The deserialization information for the current model
65
+ Returns: dict[str, Callable[[ParseNode], None]]
66
+ """
67
+ from .audit_event_out_actor_ip import AuditEventOut_actor_ip
68
+ from .audit_event_out_actor_token_id import AuditEventOut_actor_token_id
69
+ from .audit_event_out_actor_user_agent import AuditEventOut_actor_user_agent
70
+ from .audit_event_out_actor_user_id import AuditEventOut_actor_user_id
71
+ from .audit_event_out_metadata import AuditEventOut_metadata
72
+ from .audit_event_out_org_id import AuditEventOut_org_id
73
+ from .audit_event_out_target_id import AuditEventOut_target_id
74
+ from .audit_event_out_target_kind import AuditEventOut_target_kind
75
+
76
+ from .audit_event_out_actor_ip import AuditEventOut_actor_ip
77
+ from .audit_event_out_actor_token_id import AuditEventOut_actor_token_id
78
+ from .audit_event_out_actor_user_agent import AuditEventOut_actor_user_agent
79
+ from .audit_event_out_actor_user_id import AuditEventOut_actor_user_id
80
+ from .audit_event_out_metadata import AuditEventOut_metadata
81
+ from .audit_event_out_org_id import AuditEventOut_org_id
82
+ from .audit_event_out_target_id import AuditEventOut_target_id
83
+ from .audit_event_out_target_kind import AuditEventOut_target_kind
84
+
85
+ fields: dict[str, Callable[[Any], None]] = {
86
+ "action": lambda n : setattr(self, 'action', n.get_str_value()),
87
+ "actor_ip": lambda n : setattr(self, 'actor_ip', n.get_object_value(AuditEventOut_actor_ip)),
88
+ "actor_token_id": lambda n : setattr(self, 'actor_token_id', n.get_object_value(AuditEventOut_actor_token_id)),
89
+ "actor_user_agent": lambda n : setattr(self, 'actor_user_agent', n.get_object_value(AuditEventOut_actor_user_agent)),
90
+ "actor_user_id": lambda n : setattr(self, 'actor_user_id', n.get_object_value(AuditEventOut_actor_user_id)),
91
+ "created_at": lambda n : setattr(self, 'created_at', n.get_datetime_value()),
92
+ "id": lambda n : setattr(self, 'id', n.get_str_value()),
93
+ "metadata": lambda n : setattr(self, 'metadata', n.get_object_value(AuditEventOut_metadata)),
94
+ "org_id": lambda n : setattr(self, 'org_id', n.get_object_value(AuditEventOut_org_id)),
95
+ "outcome": lambda n : setattr(self, 'outcome', n.get_str_value()),
96
+ "target_id": lambda n : setattr(self, 'target_id', n.get_object_value(AuditEventOut_target_id)),
97
+ "target_kind": lambda n : setattr(self, 'target_kind', n.get_object_value(AuditEventOut_target_kind)),
98
+ }
99
+ return fields
100
+
101
+ def serialize(self,writer: SerializationWriter) -> None:
102
+ """
103
+ Serializes information the current object
104
+ param writer: Serialization writer to use to serialize this model
105
+ Returns: None
106
+ """
107
+ if writer is None:
108
+ raise TypeError("writer cannot be null.")
109
+ writer.write_str_value("action", self.action)
110
+ writer.write_object_value("actor_ip", self.actor_ip)
111
+ writer.write_object_value("actor_token_id", self.actor_token_id)
112
+ writer.write_object_value("actor_user_agent", self.actor_user_agent)
113
+ writer.write_object_value("actor_user_id", self.actor_user_id)
114
+ writer.write_datetime_value("created_at", self.created_at)
115
+ writer.write_str_value("id", self.id)
116
+ writer.write_object_value("metadata", self.metadata)
117
+ writer.write_object_value("org_id", self.org_id)
118
+ writer.write_str_value("outcome", self.outcome)
119
+ writer.write_object_value("target_id", self.target_id)
120
+ writer.write_object_value("target_kind", self.target_kind)
121
+ writer.write_additional_data_value(self.additional_data)
122
+
123
+
@@ -0,0 +1,62 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from dataclasses import dataclass, field
4
+ from kiota_abstractions.serialization import ComposedTypeWrapper, Parsable, ParseNode, ParseNodeHelper, SerializationWriter
5
+ from typing import Any, Optional, TYPE_CHECKING, Union
6
+
7
+ if TYPE_CHECKING:
8
+ from .audit_event_out_actor_ip_member1 import AuditEventOut_actor_ipMember1
9
+
10
+ @dataclass
11
+ class AuditEventOut_actor_ip(ComposedTypeWrapper, Parsable):
12
+ """
13
+ Composed type wrapper for classes AuditEventOut_actor_ipMember1, str
14
+ """
15
+ # Composed type representation for type AuditEventOut_actor_ipMember1
16
+ audit_event_out_actor_ip_member1: Optional[AuditEventOut_actor_ipMember1] = None
17
+ # Composed type representation for type str
18
+ string: Optional[str] = None
19
+
20
+ @staticmethod
21
+ def create_from_discriminator_value(parse_node: ParseNode) -> AuditEventOut_actor_ip:
22
+ """
23
+ Creates a new instance of the appropriate class based on discriminator value
24
+ param parse_node: The parse node to use to read the discriminator value and create the object
25
+ Returns: AuditEventOut_actor_ip
26
+ """
27
+ if parse_node is None:
28
+ raise TypeError("parse_node cannot be null.")
29
+ result = AuditEventOut_actor_ip()
30
+ if string_value := parse_node.get_str_value():
31
+ result.string = string_value
32
+ else:
33
+ from .audit_event_out_actor_ip_member1 import AuditEventOut_actor_ipMember1
34
+
35
+ result.audit_event_out_actor_ip_member1 = AuditEventOut_actor_ipMember1()
36
+ return result
37
+
38
+ def get_field_deserializers(self,) -> dict[str, Callable[[ParseNode], None]]:
39
+ """
40
+ The deserialization information for the current model
41
+ Returns: dict[str, Callable[[ParseNode], None]]
42
+ """
43
+ from .audit_event_out_actor_ip_member1 import AuditEventOut_actor_ipMember1
44
+
45
+ if self.audit_event_out_actor_ip_member1:
46
+ return ParseNodeHelper.merge_deserializers_for_intersection_wrapper(self.audit_event_out_actor_ip_member1)
47
+ return {}
48
+
49
+ def serialize(self,writer: SerializationWriter) -> None:
50
+ """
51
+ Serializes information the current object
52
+ param writer: Serialization writer to use to serialize this model
53
+ Returns: None
54
+ """
55
+ if writer is None:
56
+ raise TypeError("writer cannot be null.")
57
+ if self.string:
58
+ writer.write_str_value(None, self.string)
59
+ else:
60
+ writer.write_object_value(None, self.audit_event_out_actor_ip_member1)
61
+
62
+
@@ -0,0 +1,43 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from dataclasses import dataclass, field
4
+ from kiota_abstractions.serialization import AdditionalDataHolder, Parsable, ParseNode, SerializationWriter
5
+ from typing import Any, Optional, TYPE_CHECKING, Union
6
+
7
+ @dataclass
8
+ class AuditEventOut_actor_ipMember1(AdditionalDataHolder, Parsable):
9
+ # Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
10
+ additional_data: dict[str, Any] = field(default_factory=dict)
11
+
12
+
13
+ @staticmethod
14
+ def create_from_discriminator_value(parse_node: ParseNode) -> AuditEventOut_actor_ipMember1:
15
+ """
16
+ Creates a new instance of the appropriate class based on discriminator value
17
+ param parse_node: The parse node to use to read the discriminator value and create the object
18
+ Returns: AuditEventOut_actor_ipMember1
19
+ """
20
+ if parse_node is None:
21
+ raise TypeError("parse_node cannot be null.")
22
+ return AuditEventOut_actor_ipMember1()
23
+
24
+ def get_field_deserializers(self,) -> dict[str, Callable[[ParseNode], None]]:
25
+ """
26
+ The deserialization information for the current model
27
+ Returns: dict[str, Callable[[ParseNode], None]]
28
+ """
29
+ fields: dict[str, Callable[[Any], None]] = {
30
+ }
31
+ return fields
32
+
33
+ def serialize(self,writer: SerializationWriter) -> None:
34
+ """
35
+ Serializes information the current object
36
+ param writer: Serialization writer to use to serialize this model
37
+ Returns: None
38
+ """
39
+ if writer is None:
40
+ raise TypeError("writer cannot be null.")
41
+ writer.write_additional_data_value(self.additional_data)
42
+
43
+