ghostcrawl 2.3.4
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.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +218 -0
- data/_generated/ghostcrawl.rb +0 -0
- data/_generated/ghostcrawl_client.rb +27 -0
- data/_generated/models/agent_request.rb +203 -0
- data/_generated/models/agent_request_mode.rb +8 -0
- data/_generated/models/agent_request_task.rb +164 -0
- data/_generated/models/agent_request_task_steps.rb +122 -0
- data/_generated/models/agent_request_task_steps_schema.rb +64 -0
- data/_generated/models/agent_request_task_steps_type.rb +9 -0
- data/_generated/models/auth_context.rb +204 -0
- data/_generated/models/batch_scrape_request.rb +644 -0
- data/_generated/models/batch_scrape_request_behavior_actions_member1.rb +62 -0
- data/_generated/models/batch_scrape_request_behavior_actions_member2.rb +62 -0
- data/_generated/models/batch_scrape_request_engine.rb +10 -0
- data/_generated/models/batch_scrape_request_extraction_strategy_member1.rb +62 -0
- data/_generated/models/batch_scrape_request_identity_country_member1.rb +62 -0
- data/_generated/models/batch_scrape_request_language_member1.rb +62 -0
- data/_generated/models/batch_scrape_request_output_format.rb +9 -0
- data/_generated/models/batch_scrape_request_profile_member1.rb +62 -0
- data/_generated/models/cdp_frame_request.rb +103 -0
- data/_generated/models/cdp_url_request.rb +82 -0
- data/_generated/models/content_request.rb +581 -0
- data/_generated/models/content_request_engine.rb +12 -0
- data/_generated/models/content_request_format.rb +10 -0
- data/_generated/models/content_request_identity_country_member1.rb +62 -0
- data/_generated/models/content_request_identity_member1.rb +62 -0
- data/_generated/models/content_request_language_member1.rb +62 -0
- data/_generated/models/content_request_profile_member1.rb +62 -0
- data/_generated/models/content_request_proxy_member1.rb +62 -0
- data/_generated/models/cookie_dict.rb +739 -0
- data/_generated/models/cookie_dict_domain_member1.rb +62 -0
- data/_generated/models/cookie_dict_expires_member1.rb +62 -0
- data/_generated/models/cookie_dict_http_only_member1.rb +62 -0
- data/_generated/models/cookie_dict_path_member1.rb +62 -0
- data/_generated/models/cookie_dict_same_site_member1.rb +62 -0
- data/_generated/models/cookie_dict_secure_member1.rb +62 -0
- data/_generated/models/cookie_dict_url_member1.rb +62 -0
- data/_generated/models/cookies_delete_body.rb +355 -0
- data/_generated/models/cookies_delete_body_domain_member1.rb +62 -0
- data/_generated/models/cookies_delete_body_name_member1.rb +62 -0
- data/_generated/models/cookies_delete_body_path_member1.rb +62 -0
- data/_generated/models/cookies_set_body.rb +102 -0
- data/_generated/models/deep_crawl_body.rb +542 -0
- data/_generated/models/deep_crawl_body_routing_mode.rb +11 -0
- data/_generated/models/deep_crawl_body_timeout_s_member1.rb +62 -0
- data/_generated/models/deep_crawl_body_wait_until_member1.rb +62 -0
- data/_generated/models/deep_crawl_body_webhook_url_member1.rb +62 -0
- data/_generated/models/dom_snapshot_body.rb +82 -0
- data/_generated/models/download_body.rb +102 -0
- data/_generated/models/error_code.rb +31 -0
- data/_generated/models/error_envelope.rb +264 -0
- data/_generated/models/error_envelope_limits.rb +162 -0
- data/_generated/models/eval_body.rb +102 -0
- data/_generated/models/extend_body.rb +155 -0
- data/_generated/models/extend_body_ttl_seconds_member1.rb +62 -0
- data/_generated/models/extract_request.rb +631 -0
- data/_generated/models/extract_request_behavior_actions_member1.rb +62 -0
- data/_generated/models/extract_request_behavior_actions_member2.rb +62 -0
- data/_generated/models/extract_request_engine.rb +12 -0
- data/_generated/models/extract_request_identity_country_member1.rb +62 -0
- data/_generated/models/extract_request_language_member1.rb +62 -0
- data/_generated/models/extract_request_prompt_member1.rb +62 -0
- data/_generated/models/extract_request_url_member1.rb +62 -0
- data/_generated/models/extract_request_urls_member1.rb +62 -0
- data/_generated/models/filter_spec.rb +62 -0
- data/_generated/models/har_body.rb +82 -0
- data/_generated/models/map_body.rb +238 -0
- data/_generated/models/map_body_search_member1.rb +62 -0
- data/_generated/models/map_response.rb +195 -0
- data/_generated/models/map_response_truncated_to_server_max_member1.rb +62 -0
- data/_generated/models/models.rb +152 -0
- data/_generated/models/pdf_request.rb +560 -0
- data/_generated/models/pdf_request_engine.rb +12 -0
- data/_generated/models/pdf_request_identity_country_member1.rb +62 -0
- data/_generated/models/pdf_request_identity_member1.rb +62 -0
- data/_generated/models/pdf_request_language_member1.rb +62 -0
- data/_generated/models/pdf_request_profile_member1.rb +62 -0
- data/_generated/models/pdf_request_proxy_member1.rb +62 -0
- data/_generated/models/problem_details.rb +226 -0
- data/_generated/models/profile_create_request.rb +175 -0
- data/_generated/models/profile_create_request_storage_state_id_member1.rb +62 -0
- data/_generated/models/profile_update_request.rb +246 -0
- data/_generated/models/profile_update_request_name_member1.rb +62 -0
- data/_generated/models/profile_update_request_storage_state_id_member1.rb +62 -0
- data/_generated/models/proxy_config.rb +116 -0
- data/_generated/models/retry_delivery_response.rb +145 -0
- data/_generated/models/rotate_secret_response.rb +145 -0
- data/_generated/models/schedule_create_request.rb +256 -0
- data/_generated/models/schedule_create_request_job_params.rb +64 -0
- data/_generated/models/schedule_create_request_notify_webhook_member1.rb +62 -0
- data/_generated/models/scorer_spec.rb +102 -0
- data/_generated/models/scrape_page_result.rb +62 -0
- data/_generated/models/scrape_request.rb +1254 -0
- data/_generated/models/scrape_request_batch_identity_mode.rb +10 -0
- data/_generated/models/scrape_request_behavior_actions_member1.rb +62 -0
- data/_generated/models/scrape_request_behavior_actions_member2.rb +62 -0
- data/_generated/models/scrape_request_engine.rb +12 -0
- data/_generated/models/scrape_request_format.rb +11 -0
- data/_generated/models/scrape_request_identity_country_member1.rb +62 -0
- data/_generated/models/scrape_request_identity_member1.rb +62 -0
- data/_generated/models/scrape_request_language_member1.rb +62 -0
- data/_generated/models/scrape_request_profile_member1.rb +62 -0
- data/_generated/models/scrape_request_proxy_member1.rb +62 -0
- data/_generated/models/scrape_request_routing_mode.rb +11 -0
- data/_generated/models/scrape_request_screenshot_selector_member1.rb +62 -0
- data/_generated/models/scrape_request_session_member1.rb +62 -0
- data/_generated/models/scrape_request_timeout_ms_member1.rb +62 -0
- data/_generated/models/scrape_request_url_member1.rb +62 -0
- data/_generated/models/scrape_request_urls_member1.rb +62 -0
- data/_generated/models/scrape_result.rb +630 -0
- data/_generated/models/scrape_result_format_member1.rb +62 -0
- data/_generated/models/scrape_result_identity_id_member1.rb +62 -0
- data/_generated/models/scrape_result_markdown_member1.rb +62 -0
- data/_generated/models/scrape_result_status_member1.rb +62 -0
- data/_generated/models/scrape_result_token_estimate_member1.rb +62 -0
- data/_generated/models/scrape_result_warnings_member1.rb +62 -0
- data/_generated/models/screenshot_request.rb +672 -0
- data/_generated/models/screenshot_request_engine.rb +12 -0
- data/_generated/models/screenshot_request_identity_country_member1.rb +62 -0
- data/_generated/models/screenshot_request_identity_member1.rb +62 -0
- data/_generated/models/screenshot_request_language_member1.rb +62 -0
- data/_generated/models/screenshot_request_profile_member1.rb +62 -0
- data/_generated/models/screenshot_request_proxy_member1.rb +62 -0
- data/_generated/models/screenshot_request_screenshot_selector_member1.rb +62 -0
- data/_generated/models/scroll_body.rb +284 -0
- data/_generated/models/scroll_body_direction.rb +11 -0
- data/_generated/models/scroll_body_distance_px_member1.rb +62 -0
- data/_generated/models/scroll_body_selector_member1.rb +62 -0
- data/_generated/models/search_request.rb +469 -0
- data/_generated/models/search_request_country_member1.rb +62 -0
- data/_generated/models/search_request_engine_member1.rb +62 -0
- data/_generated/models/search_request_freshness_member1.rb +62 -0
- data/_generated/models/search_request_vertical_member1.rb +62 -0
- data/_generated/models/session_create_request.rb +174 -0
- data/_generated/models/session_create_request_engine.rb +10 -0
- data/_generated/models/session_create_request_profile_member1.rb +62 -0
- data/_generated/models/storage_state_attach_request.rb +58 -0
- data/_generated/models/storage_state_detach_request.rb +58 -0
- data/_generated/models/takeover_action_body.rb +82 -0
- data/_generated/models/upload_body.rb +162 -0
- data/_generated/models/wait_body.rb +194 -0
- data/_generated/models/wait_body_selector_member1.rb +62 -0
- data/_generated/models/webhook_create_request.rb +125 -0
- data/_generated/models/webhook_create_response.rb +104 -0
- data/_generated/models/webhook_delivery_list_response.rb +195 -0
- data/_generated/models/webhook_delivery_list_response_next_cursor_member1.rb +62 -0
- data/_generated/models/webhook_delivery_public.rb +680 -0
- data/_generated/models/webhook_delivery_public_delivered_at_member1.rb +62 -0
- data/_generated/models/webhook_delivery_public_error_class_member1.rb +62 -0
- data/_generated/models/webhook_delivery_public_replay_of_member1.rb +62 -0
- data/_generated/models/webhook_delivery_public_response_body_preview_member1.rb +62 -0
- data/_generated/models/webhook_delivery_public_response_status_member1.rb +62 -0
- data/_generated/models/webhook_list_response.rb +195 -0
- data/_generated/models/webhook_list_response_next_cursor_member1.rb +62 -0
- data/_generated/models/webhook_public.rb +316 -0
- data/_generated/models/webhook_public_secret_rotated_at_member1.rb +62 -0
- data/_generated/v1/agent/agent.rb +1 -0
- data/_generated/v1/agent/agent404_error.rb +87 -0
- data/_generated/v1/agent/agent_request_builder.rb +73 -0
- data/_generated/v1/binary/binary.rb +9 -0
- data/_generated/v1/cdp/cdp.rb +0 -0
- data/_generated/v1/cdp/cdp_request_builder.rb +37 -0
- data/_generated/v1/cdp/frame/frame.rb +0 -0
- data/_generated/v1/cdp/frame/frame_request_builder.rb +74 -0
- data/_generated/v1/cdp/url/url.rb +0 -0
- data/_generated/v1/cdp/url/url_request_builder.rb +74 -0
- data/_generated/v1/content/content.rb +0 -0
- data/_generated/v1/content/content_request_builder.rb +71 -0
- data/_generated/v1/crawl/crawl.rb +0 -0
- data/_generated/v1/crawl/crawl_request_builder.rb +31 -0
- data/_generated/v1/crawl/deep/deep.rb +0 -0
- data/_generated/v1/crawl/deep/deep_request_builder.rb +86 -0
- data/_generated/v1/crawl/deep/item/item.rb +0 -0
- data/_generated/v1/crawl/deep/item/with_run_item_request_builder.rb +71 -0
- data/_generated/v1/crawl_runs/crawl_runs.rb +1 -0
- data/_generated/v1/crawl_runs/crawl_runs_post_request_body.rb +65 -0
- data/_generated/v1/crawl_runs/crawl_runs_request_builder.rb +131 -0
- data/_generated/v1/crawl_runs/item/cancel/cancel.rb +0 -0
- data/_generated/v1/crawl_runs/item/cancel/cancel_request_builder.rb +71 -0
- data/_generated/v1/crawl_runs/item/item.rb +0 -0
- data/_generated/v1/crawl_runs/item/resume/resume.rb +0 -0
- data/_generated/v1/crawl_runs/item/resume/resume_request_builder.rb +71 -0
- data/_generated/v1/crawl_runs/item/with_run_item_request_builder.rb +96 -0
- data/_generated/v1/datasets/datasets.rb +1 -0
- data/_generated/v1/datasets/datasets_post_request_body.rb +65 -0
- data/_generated/v1/datasets/datasets_request_builder.rb +124 -0
- data/_generated/v1/datasets/item/item.rb +0 -0
- data/_generated/v1/datasets/item/rows/append/append.rb +1 -0
- data/_generated/v1/datasets/item/rows/append/append_post_request_body.rb +74 -0
- data/_generated/v1/datasets/item/rows/append/append_request_builder.rb +79 -0
- data/_generated/v1/datasets/item/rows/rows.rb +0 -0
- data/_generated/v1/datasets/item/rows/rows_request_builder.rb +86 -0
- data/_generated/v1/datasets/item/with_name_item_request_builder.rb +104 -0
- data/_generated/v1/downloads/downloads.rb +0 -0
- data/_generated/v1/downloads/downloads_request_builder.rb +76 -0
- data/_generated/v1/downloads/item/item.rb +0 -0
- data/_generated/v1/downloads/item/with_download_item_request_builder.rb +97 -0
- data/_generated/v1/extract/extract.rb +1 -0
- data/_generated/v1/extract/extract_post_response.rb +65 -0
- data/_generated/v1/extract/extract_request_builder.rb +78 -0
- data/_generated/v1/kv/item/item.rb +1 -0
- data/_generated/v1/kv/item/with_key_item_request_builder.rb +133 -0
- data/_generated/v1/kv/item/with_key_put_request_body.rb +68 -0
- data/_generated/v1/kv/kv.rb +0 -0
- data/_generated/v1/kv/kv_request_builder.rb +37 -0
- data/_generated/v1/map/map.rb +0 -0
- data/_generated/v1/map/map_request_builder.rb +72 -0
- data/_generated/v1/page/cookies/cookies.rb +0 -0
- data/_generated/v1/page/cookies/cookies_request_builder.rb +150 -0
- data/_generated/v1/page/dom_snapshot/dom_snapshot.rb +0 -0
- data/_generated/v1/page/dom_snapshot/dom_snapshot_request_builder.rb +74 -0
- data/_generated/v1/page/download/download.rb +0 -0
- data/_generated/v1/page/download/download_request_builder.rb +74 -0
- data/_generated/v1/page/eval/eval.rb +0 -0
- data/_generated/v1/page/eval/eval_request_builder.rb +74 -0
- data/_generated/v1/page/har/har.rb +0 -0
- data/_generated/v1/page/har/har_request_builder.rb +74 -0
- data/_generated/v1/page/page.rb +0 -0
- data/_generated/v1/page/page_request_builder.rb +73 -0
- data/_generated/v1/page/scroll/scroll.rb +0 -0
- data/_generated/v1/page/scroll/scroll_request_builder.rb +74 -0
- data/_generated/v1/page/upload/upload.rb +0 -0
- data/_generated/v1/page/upload/upload_request_builder.rb +74 -0
- data/_generated/v1/page/wait/wait.rb +0 -0
- data/_generated/v1/page/wait/wait_request_builder.rb +74 -0
- data/_generated/v1/pdf/pdf.rb +0 -0
- data/_generated/v1/pdf/pdf_request_builder.rb +71 -0
- data/_generated/v1/profiles/item/item.rb +0 -0
- data/_generated/v1/profiles/item/with_name_item_request_builder.rb +134 -0
- data/_generated/v1/profiles/profiles.rb +0 -0
- data/_generated/v1/profiles/profiles_request_builder.rb +125 -0
- data/_generated/v1/recordings/item/item.rb +0 -0
- data/_generated/v1/recordings/item/recording_item_request_builder.rb +102 -0
- data/_generated/v1/recordings/item/visual/frames/frames.rb +0 -0
- data/_generated/v1/recordings/item/visual/frames/frames_request_builder.rb +93 -0
- data/_generated/v1/recordings/item/visual/start/start.rb +0 -0
- data/_generated/v1/recordings/item/visual/start/start_request_builder.rb +80 -0
- data/_generated/v1/recordings/item/visual/stop/stop.rb +0 -0
- data/_generated/v1/recordings/item/visual/stop/stop_request_builder.rb +80 -0
- data/_generated/v1/recordings/item/visual/visual.rb +0 -0
- data/_generated/v1/recordings/item/visual/visual_request_builder.rb +95 -0
- data/_generated/v1/recordings/recordings.rb +0 -0
- data/_generated/v1/recordings/recordings_request_builder.rb +89 -0
- data/_generated/v1/schedules/item/item.rb +0 -0
- data/_generated/v1/schedules/item/runs/runs.rb +0 -0
- data/_generated/v1/schedules/item/runs/runs_request_builder.rb +71 -0
- data/_generated/v1/schedules/item/with_schedule_item_request_builder.rb +103 -0
- data/_generated/v1/schedules/schedules.rb +0 -0
- data/_generated/v1/schedules/schedules_request_builder.rb +113 -0
- data/_generated/v1/scrape/batch/batch.rb +0 -0
- data/_generated/v1/scrape/batch/batch_request_builder.rb +81 -0
- data/_generated/v1/scrape/scrape.rb +0 -0
- data/_generated/v1/scrape/scrape_request_builder.rb +86 -0
- data/_generated/v1/screenshot/screenshot.rb +0 -0
- data/_generated/v1/screenshot/screenshot_request_builder.rb +71 -0
- data/_generated/v1/screenshot_blobs/item/item.rb +0 -0
- data/_generated/v1/screenshot_blobs/item/with_ref_item_request_builder.rb +68 -0
- data/_generated/v1/screenshot_blobs/screenshot_blobs.rb +0 -0
- data/_generated/v1/screenshot_blobs/screenshot_blobs_request_builder.rb +37 -0
- data/_generated/v1/search/jobs/item/item.rb +0 -0
- data/_generated/v1/search/jobs/item/with_job_item_request_builder.rb +71 -0
- data/_generated/v1/search/jobs/jobs.rb +0 -0
- data/_generated/v1/search/jobs/jobs_request_builder.rb +40 -0
- data/_generated/v1/search/search.rb +0 -0
- data/_generated/v1/search/search_request_builder.rb +84 -0
- data/_generated/v1/selfhost/byo/behavior/behavior.rb +1 -0
- data/_generated/v1/selfhost/byo/behavior/behavior_put_request_body.rb +71 -0
- data/_generated/v1/selfhost/byo/behavior/behavior_request_builder.rb +76 -0
- data/_generated/v1/selfhost/byo/byo.rb +0 -0
- data/_generated/v1/selfhost/byo/byo_request_builder.rb +46 -0
- data/_generated/v1/selfhost/byo/identity/identity.rb +1 -0
- data/_generated/v1/selfhost/byo/identity/identity_put_request_body.rb +71 -0
- data/_generated/v1/selfhost/byo/identity/identity_request_builder.rb +76 -0
- data/_generated/v1/selfhost/byo/proxy/proxy.rb +1 -0
- data/_generated/v1/selfhost/byo/proxy/proxy_put_request_body.rb +71 -0
- data/_generated/v1/selfhost/byo/proxy/proxy_request_builder.rb +76 -0
- data/_generated/v1/selfhost/selfhost.rb +0 -0
- data/_generated/v1/selfhost/selfhost_request_builder.rb +31 -0
- data/_generated/v1/sessions/create/create.rb +0 -0
- data/_generated/v1/sessions/create/create_request_builder.rb +74 -0
- data/_generated/v1/sessions/item/extend/extend.rb +0 -0
- data/_generated/v1/sessions/item/extend/extend_request_builder.rb +77 -0
- data/_generated/v1/sessions/item/item.rb +0 -0
- data/_generated/v1/sessions/item/pin/pin.rb +0 -0
- data/_generated/v1/sessions/item/pin/pin_request_builder.rb +71 -0
- data/_generated/v1/sessions/item/profile_item_request_builder.rb +70 -0
- data/_generated/v1/sessions/item/recording/recording.rb +0 -0
- data/_generated/v1/sessions/item/recording/recording_request_builder.rb +43 -0
- data/_generated/v1/sessions/item/recording/start/start.rb +0 -0
- data/_generated/v1/sessions/item/recording/start/start_request_builder.rb +74 -0
- data/_generated/v1/sessions/item/recording/stop/stop.rb +0 -0
- data/_generated/v1/sessions/item/recording/stop/stop_request_builder.rb +74 -0
- data/_generated/v1/sessions/item/release/release.rb +0 -0
- data/_generated/v1/sessions/item/release/release_request_builder.rb +71 -0
- data/_generated/v1/sessions/item/takeover/takeover.rb +0 -0
- data/_generated/v1/sessions/item/takeover/takeover_request_builder.rb +77 -0
- data/_generated/v1/sessions/item/takeover_release/takeover_release.rb +0 -0
- data/_generated/v1/sessions/item/takeover_release/takeover_release_request_builder.rb +71 -0
- data/_generated/v1/sessions/item/takeover_token/takeover_token.rb +0 -0
- data/_generated/v1/sessions/item/takeover_token/takeover_token_request_builder.rb +71 -0
- data/_generated/v1/sessions/sessions.rb +0 -0
- data/_generated/v1/sessions/sessions_request_builder.rb +95 -0
- data/_generated/v1/storage_states/detach/detach.rb +0 -0
- data/_generated/v1/storage_states/detach/detach_request_builder.rb +74 -0
- data/_generated/v1/storage_states/item/attach/attach.rb +0 -0
- data/_generated/v1/storage_states/item/attach/attach_request_builder.rb +77 -0
- data/_generated/v1/storage_states/item/item.rb +0 -0
- data/_generated/v1/storage_states/item/with_id_or_name_item_request_builder.rb +104 -0
- data/_generated/v1/storage_states/storage_states.rb +1 -0
- data/_generated/v1/storage_states/storage_states_post_request_body.rb +65 -0
- data/_generated/v1/storage_states/storage_states_request_builder.rb +127 -0
- data/_generated/v1/v1.rb +0 -0
- data/_generated/v1/v1_request_builder.rb +161 -0
- data/_generated/v1/webhooks/item/deliveries/deliveries.rb +0 -0
- data/_generated/v1/webhooks/item/deliveries/deliveries_request_builder.rb +96 -0
- data/_generated/v1/webhooks/item/deliveries/item/item.rb +0 -0
- data/_generated/v1/webhooks/item/deliveries/item/retry_escaped/retry_escaped.rb +0 -0
- data/_generated/v1/webhooks/item/deliveries/item/retry_escaped/retry_request_builder.rb +78 -0
- data/_generated/v1/webhooks/item/deliveries/item/with_delivery_item_request_builder.rb +40 -0
- data/_generated/v1/webhooks/item/item.rb +0 -0
- data/_generated/v1/webhooks/item/rotate_secret/rotate_secret.rb +0 -0
- data/_generated/v1/webhooks/item/rotate_secret/rotate_secret_request_builder.rb +72 -0
- data/_generated/v1/webhooks/item/with_webhook_item_request_builder.rb +111 -0
- data/_generated/v1/webhooks/webhooks.rb +0 -0
- data/_generated/v1/webhooks/webhooks_request_builder.rb +127 -0
- data/lib/ghostcrawl/client.rb +1351 -0
- data/lib/ghostcrawl/error_codes.rb +111 -0
- data/lib/ghostcrawl/errors.rb +137 -0
- data/lib/ghostcrawl/version.rb +5 -0
- data/lib/ghostcrawl.rb +17 -0
- metadata +422 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: e50d69d157331b61abadd2c88956ed9944a981c4cf33d2dcc5cbec5f771b00f9
|
|
4
|
+
data.tar.gz: de3c4e08089c1a7b4dcc623ef196163cb4cede19be5690d0ac3daaa243a96a8d
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 7354be27df2e4eb86457c477a09059e2f8d2445355f1646437517a697df7de9f7de9439b85fe77601135724f88e3dd0189214f3f507250f153860d3cd0c86dfd
|
|
7
|
+
data.tar.gz: 32daf0d816b38242ce52f211c48295d3ea2af66665fafa79ed1e51352cb4ea5f9cbdf8a354716bad59fb3baa889b31781c700ca50ef2c767e2b5c8534dfbfb80
|
data/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 GhostCrawl, LLC
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# ghostcrawl — Ruby SDK
|
|
2
|
+
|
|
3
|
+
The official Ruby client for the [GhostCrawl](https://ghostcrawl.io) API.
|
|
4
|
+
Collect web data at scale — scrape, crawl, search, and extract structured data.
|
|
5
|
+
|
|
6
|
+
## Install
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
gem install ghostcrawl
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Or in your `Gemfile`:
|
|
13
|
+
|
|
14
|
+
```ruby
|
|
15
|
+
gem "ghostcrawl", "~> 2.1"
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Requires Ruby 3.0+. No runtime dependencies — uses stdlib `net/http` only.
|
|
19
|
+
|
|
20
|
+
## Quickstart
|
|
21
|
+
|
|
22
|
+
```ruby
|
|
23
|
+
require "ghostcrawl"
|
|
24
|
+
|
|
25
|
+
# Token from constructor or GHOSTCRAWL_API_KEY env var
|
|
26
|
+
client = GhostCrawl::Client.new(token: "gck_live_YOUR_KEY")
|
|
27
|
+
|
|
28
|
+
# Scrape a URL
|
|
29
|
+
result = client.scrape(url: "https://example.com", format: "markdown")
|
|
30
|
+
puts result["content"]
|
|
31
|
+
|
|
32
|
+
# Start a crawl run and wait for it to finish — the server blocks until the run
|
|
33
|
+
# is terminal (no client-side poll-with-sleep loop).
|
|
34
|
+
run = client.crawl_runs.start(url: "https://example.com", max_depth: 2, max_pages: 50,
|
|
35
|
+
wait: true, timeout: 300)
|
|
36
|
+
puts "#{run["run_id"]} → #{run["status"]}"
|
|
37
|
+
|
|
38
|
+
# Web search
|
|
39
|
+
results = client.search(query: "latest AI research", engine: "google", limit: 10)
|
|
40
|
+
puts results["results"].length
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Authentication
|
|
44
|
+
|
|
45
|
+
```ruby
|
|
46
|
+
# Option 1: pass token directly
|
|
47
|
+
client = GhostCrawl::Client.new(token: "gck_live_YOUR_KEY")
|
|
48
|
+
|
|
49
|
+
# Option 2: set environment variable (recommended for production)
|
|
50
|
+
# export GHOSTCRAWL_API_KEY=gck_live_YOUR_KEY
|
|
51
|
+
client = GhostCrawl::Client.new
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Every request sends `Authorization: Bearer <token>`. This is the only auth scheme the API accepts.
|
|
55
|
+
|
|
56
|
+
## Extract structured data
|
|
57
|
+
|
|
58
|
+
```ruby
|
|
59
|
+
require "ghostcrawl"
|
|
60
|
+
|
|
61
|
+
client = GhostCrawl::Client.new(token: "gck_live_YOUR_KEY")
|
|
62
|
+
|
|
63
|
+
data = client.extract(
|
|
64
|
+
url: "https://example.com/product",
|
|
65
|
+
schema: {
|
|
66
|
+
type: "object",
|
|
67
|
+
properties: {
|
|
68
|
+
name: { type: "string" },
|
|
69
|
+
price: { type: "number" },
|
|
70
|
+
description: { type: "string" }
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
)
|
|
74
|
+
puts "#{data["name"]} — $#{data["price"]}"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Browser utilities — content, screenshot, PDF
|
|
78
|
+
|
|
79
|
+
```ruby
|
|
80
|
+
require "ghostcrawl"
|
|
81
|
+
|
|
82
|
+
client = GhostCrawl::Client.new(token: "gck_live_YOUR_KEY")
|
|
83
|
+
|
|
84
|
+
# Rendered content as a JSON envelope: {url, status, format, status_code, content, bytes}
|
|
85
|
+
page = client.content(url: "https://example.com")
|
|
86
|
+
puts "#{page["status_code"]} — #{page["bytes"]} bytes"
|
|
87
|
+
|
|
88
|
+
# Screenshot — returns raw PNG bytes
|
|
89
|
+
png = client.screenshot(url: "https://example.com", full_page: true)
|
|
90
|
+
File.binwrite("page.png", png)
|
|
91
|
+
|
|
92
|
+
# PDF — returns raw application/pdf bytes (Chrome-only; a Firefox/WebKit identity
|
|
93
|
+
# is rejected with a 400 pdf_engine_unsupported)
|
|
94
|
+
pdf = client.pdf(url: "https://example.com", paper_format: "a4")
|
|
95
|
+
File.binwrite("page.pdf", pdf)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Agent (BYO model, account-gated)
|
|
99
|
+
|
|
100
|
+
The agent lane runs a natural-language browser task. It is **bring-your-own-model** (supply your
|
|
101
|
+
own `provider_config` in the request body) and **account-gated**: the API returns `404 not_found`
|
|
102
|
+
unless the capability is enabled for your account. `agent` does **not** raise on that 404 — it
|
|
103
|
+
returns the `problem+json` body as a Hash, so branch on `result.key?("detail")`.
|
|
104
|
+
|
|
105
|
+
```ruby
|
|
106
|
+
require "ghostcrawl"
|
|
107
|
+
|
|
108
|
+
client = GhostCrawl::Client.new(token: "gck_live_YOUR_KEY")
|
|
109
|
+
|
|
110
|
+
# provider_config is BYO — reference your provider key by env-var name, never a literal.
|
|
111
|
+
result = client.agent(
|
|
112
|
+
task: {
|
|
113
|
+
"instruction" => "click the 'Books to Scrape' link",
|
|
114
|
+
"start_url" => "https://books.toscrape.com"
|
|
115
|
+
},
|
|
116
|
+
provider_config: {
|
|
117
|
+
"provider" => "openai",
|
|
118
|
+
"api_key" => "OPENAI_API_KEY",
|
|
119
|
+
"model" => "gpt-4o"
|
|
120
|
+
}
|
|
121
|
+
)
|
|
122
|
+
if result.key?("detail")
|
|
123
|
+
puts "agent lane not enabled for this account (BYO/gated)"
|
|
124
|
+
else
|
|
125
|
+
puts result
|
|
126
|
+
end
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Crawl runs — wait for completion
|
|
130
|
+
|
|
131
|
+
Crawl runs are asynchronous. Instead of hand-writing a poll-with-sleep loop, use
|
|
132
|
+
the event-driven wait API: the **server** blocks until the run reaches a terminal
|
|
133
|
+
state (`completed` / `failed` / `cancelled`) and returns the finished run.
|
|
134
|
+
|
|
135
|
+
```ruby
|
|
136
|
+
# Start and wait in one call — sends wait_until: "completed"
|
|
137
|
+
run = client.crawl_runs.start(
|
|
138
|
+
url: "https://example.com",
|
|
139
|
+
max_depth: 2,
|
|
140
|
+
max_pages: 50,
|
|
141
|
+
wait: true, # block until terminal (no client sleep loop)
|
|
142
|
+
timeout: 300 # give up after 300s, returning the still-running run
|
|
143
|
+
)
|
|
144
|
+
puts run["status"] # "completed" | "failed" | "cancelled"
|
|
145
|
+
|
|
146
|
+
# Or wait on a run you already started (e.g. from a webhook or another process):
|
|
147
|
+
run = client.crawl_runs.wait_for_completion(run_id, timeout: 300)
|
|
148
|
+
|
|
149
|
+
# Deep crawl supports the same wait: keyword:
|
|
150
|
+
run = client.crawl(url: "https://example.com", wait: true, timeout: 300)
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Under the hood `wait_for_completion` chains server-blocking
|
|
154
|
+
`GET /v1/crawl-runs/{run_id}?wait=true&timeout_s=N` requests until the run is
|
|
155
|
+
terminal or your `timeout` deadline — there is no `sleep` between checks. On
|
|
156
|
+
timeout the current non-terminal run is returned, so you can simply call
|
|
157
|
+
`wait_for_completion` again to keep waiting.
|
|
158
|
+
|
|
159
|
+
**Prefer webhooks for fire-and-forget crawls.** Register an endpoint with
|
|
160
|
+
`client.webhooks.create(url:, event_types: ["crawl.completed"])` and let GhostCrawl
|
|
161
|
+
POST the result to you instead of holding a connection open.
|
|
162
|
+
|
|
163
|
+
## Error handling
|
|
164
|
+
|
|
165
|
+
```ruby
|
|
166
|
+
require "ghostcrawl"
|
|
167
|
+
|
|
168
|
+
client = GhostCrawl::Client.new(token: "gck_live_YOUR_KEY")
|
|
169
|
+
|
|
170
|
+
begin
|
|
171
|
+
result = client.scrape(url: "https://example.com")
|
|
172
|
+
rescue GhostCrawl::AuthenticationError
|
|
173
|
+
puts "Invalid API key — check your token"
|
|
174
|
+
rescue GhostCrawl::PaymentRequiredError
|
|
175
|
+
puts "Usage limit reached — upgrade your plan"
|
|
176
|
+
rescue GhostCrawl::RateLimitError
|
|
177
|
+
puts "Rate limit reached — retry after a short delay"
|
|
178
|
+
rescue GhostCrawl::APIError => e
|
|
179
|
+
puts "Server error: #{e.status_code}"
|
|
180
|
+
rescue GhostCrawl::GhostCrawlError => e
|
|
181
|
+
puts "API error: #{e.message} (#{e.status_code})"
|
|
182
|
+
end
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## Self-hosted
|
|
186
|
+
|
|
187
|
+
```ruby
|
|
188
|
+
client = GhostCrawl::Client.new(
|
|
189
|
+
token: "gck_live_YOUR_KEY",
|
|
190
|
+
base_url: "http://localhost:8080"
|
|
191
|
+
)
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## All resources
|
|
195
|
+
|
|
196
|
+
| Resource | Method / accessor | Key operations |
|
|
197
|
+
|----------|------------------|----------------|
|
|
198
|
+
| Scraping | `client.scrape(url:)` | Render and return page content |
|
|
199
|
+
| Web search | `client.search(query:)` | Search Google, Bing, DuckDuckGo |
|
|
200
|
+
| Data extraction | `client.extract(url:, schema:)` | Structured JSON from any page |
|
|
201
|
+
| Deep crawl | `client.crawl(url:)` | Crawl a site depth-first |
|
|
202
|
+
| URL map | `client.map(url:)` | Discover all reachable URLs |
|
|
203
|
+
| Content | `client.content(url:)` | Rendered content JSON envelope |
|
|
204
|
+
| Screenshot | `client.screenshot(url:)` | Capture a URL to PNG bytes |
|
|
205
|
+
| PDF | `client.pdf(url:)` | Render a URL to PDF bytes (Chrome-only) |
|
|
206
|
+
| Agent (BYO) | `client.agent(task:)` | NL browser task — account-gated, BYO model |
|
|
207
|
+
| Crawl runs | `client.crawl_runs` | start (with `wait:`), wait\_for\_completion, list, get, cancel |
|
|
208
|
+
| Sessions | `client.sessions` | create, list, extend, release |
|
|
209
|
+
| Profiles | `client.profiles` | list, get\_profile, create, update, delete |
|
|
210
|
+
| Webhooks | `client.webhooks` | list, get\_webhook, create, delete, rotate\_secret |
|
|
211
|
+
| Schedules | `client.schedules` | list, get\_schedule, create, delete |
|
|
212
|
+
| Datasets | `client.datasets` | list, get\_dataset, create, delete, rows, append |
|
|
213
|
+
| Recordings | `client.recordings` | list, get\_recording, delete |
|
|
214
|
+
| Key-Value Store | `client.kv` | get, set, delete |
|
|
215
|
+
|
|
216
|
+
## License
|
|
217
|
+
|
|
218
|
+
Proprietary — GhostCrawl Software License. See [LICENSE](LICENSE).
|
|
File without changes
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require 'microsoft_kiota_abstractions'
|
|
2
|
+
require 'microsoft_kiota_serialization_json'
|
|
3
|
+
require_relative './ghostcrawl'
|
|
4
|
+
require_relative './v1/v1_request_builder'
|
|
5
|
+
|
|
6
|
+
module GhostCrawl
|
|
7
|
+
##
|
|
8
|
+
# The main entry point of the SDK, exposes the configuration and the fluent API.
|
|
9
|
+
class GhostCrawlClient < MicrosoftKiotaAbstractions::BaseRequestBuilder
|
|
10
|
+
|
|
11
|
+
##
|
|
12
|
+
# The v1 property
|
|
13
|
+
def v1()
|
|
14
|
+
return GhostCrawl::V1::V1RequestBuilder.new(@path_parameters, @request_adapter)
|
|
15
|
+
end
|
|
16
|
+
##
|
|
17
|
+
## Instantiates a new GhostCrawlClient and sets the default values.
|
|
18
|
+
## @param request_adapter The request adapter to use to execute the requests.
|
|
19
|
+
## @return a void
|
|
20
|
+
##
|
|
21
|
+
def initialize(request_adapter)
|
|
22
|
+
super(Hash.new, request_adapter, "{+baseurl}")
|
|
23
|
+
MicrosoftKiotaAbstractions::ApiClientBuilder.register_default_serializer(MicrosoftKiotaSerializationJson::JsonSerializationWriterFactory)
|
|
24
|
+
MicrosoftKiotaAbstractions::ApiClientBuilder.register_default_deserializer(MicrosoftKiotaSerializationJson::JsonParseNodeFactory)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
require 'microsoft_kiota_abstractions'
|
|
2
|
+
require_relative '../ghostcrawl'
|
|
3
|
+
require_relative './models'
|
|
4
|
+
|
|
5
|
+
module GhostCrawl
|
|
6
|
+
module Models
|
|
7
|
+
class AgentRequest
|
|
8
|
+
include MicrosoftKiotaAbstractions::Parsable
|
|
9
|
+
##
|
|
10
|
+
# The api_key property
|
|
11
|
+
@api_key
|
|
12
|
+
##
|
|
13
|
+
# The callback_url property
|
|
14
|
+
@callback_url
|
|
15
|
+
##
|
|
16
|
+
# The mode property
|
|
17
|
+
@mode
|
|
18
|
+
##
|
|
19
|
+
# Optional stable profile identifier. When supplied on a successful sync `/v1/agent` call, the executed step trace is recorded into the in-process action cache (keyed by `(profile_id, task)`) and can be replayed via `POST /v1/agent/action-cache/replay`. Response payload includes `action_cache_recorded: true|false` so callers can confirm cache durability.
|
|
20
|
+
@profile_id
|
|
21
|
+
##
|
|
22
|
+
# The proxy property
|
|
23
|
+
@proxy
|
|
24
|
+
##
|
|
25
|
+
# Agent task payload; URL fields are policy-validated when present.
|
|
26
|
+
@task
|
|
27
|
+
##
|
|
28
|
+
# The tenant_id property
|
|
29
|
+
@tenant_id
|
|
30
|
+
##
|
|
31
|
+
# The workspace_id property
|
|
32
|
+
@workspace_id
|
|
33
|
+
##
|
|
34
|
+
## Gets the api_key property value. The api_key property
|
|
35
|
+
## @return a string
|
|
36
|
+
##
|
|
37
|
+
def api_key
|
|
38
|
+
return @api_key
|
|
39
|
+
end
|
|
40
|
+
##
|
|
41
|
+
## Sets the api_key property value. The api_key property
|
|
42
|
+
## @param value Value to set for the api_key property.
|
|
43
|
+
## @return a void
|
|
44
|
+
##
|
|
45
|
+
def api_key=(value)
|
|
46
|
+
@api_key = value
|
|
47
|
+
end
|
|
48
|
+
##
|
|
49
|
+
## Gets the callback_url property value. The callback_url property
|
|
50
|
+
## @return a string
|
|
51
|
+
##
|
|
52
|
+
def callback_url
|
|
53
|
+
return @callback_url
|
|
54
|
+
end
|
|
55
|
+
##
|
|
56
|
+
## Sets the callback_url property value. The callback_url property
|
|
57
|
+
## @param value Value to set for the callback_url property.
|
|
58
|
+
## @return a void
|
|
59
|
+
##
|
|
60
|
+
def callback_url=(value)
|
|
61
|
+
@callback_url = value
|
|
62
|
+
end
|
|
63
|
+
##
|
|
64
|
+
## Instantiates a new AgentRequest and sets the default values.
|
|
65
|
+
## @return a void
|
|
66
|
+
##
|
|
67
|
+
def initialize()
|
|
68
|
+
@mode = GhostCrawl::Models::AgentRequestMode[:Sync]
|
|
69
|
+
end
|
|
70
|
+
##
|
|
71
|
+
## Creates a new instance of the appropriate class based on discriminator value
|
|
72
|
+
## @param parse_node The parse node to use to read the discriminator value and create the object
|
|
73
|
+
## @return a agent_request
|
|
74
|
+
##
|
|
75
|
+
def self.create_from_discriminator_value(parse_node)
|
|
76
|
+
raise StandardError, 'parse_node cannot be null' if parse_node.nil?
|
|
77
|
+
return AgentRequest.new
|
|
78
|
+
end
|
|
79
|
+
##
|
|
80
|
+
## The deserialization information for the current model
|
|
81
|
+
## @return a i_dictionary
|
|
82
|
+
##
|
|
83
|
+
def get_field_deserializers()
|
|
84
|
+
return {
|
|
85
|
+
"api_key" => lambda {|n| @api_key = n.get_string_value() },
|
|
86
|
+
"callback_url" => lambda {|n| @callback_url = n.get_string_value() },
|
|
87
|
+
"mode" => lambda {|n| @mode = n.get_enum_value(GhostCrawl::Models::AgentRequestMode) },
|
|
88
|
+
"profile_id" => lambda {|n| @profile_id = n.get_string_value() },
|
|
89
|
+
"proxy" => lambda {|n| @proxy = n.get_object_value(lambda {|pn| GhostCrawl::Models::ProxyConfig.create_from_discriminator_value(pn) }) },
|
|
90
|
+
"task" => lambda {|n| @task = n.get_object_value(lambda {|pn| GhostCrawl::Models::AgentRequestTask.create_from_discriminator_value(pn) }) },
|
|
91
|
+
"tenant_id" => lambda {|n| @tenant_id = n.get_string_value() },
|
|
92
|
+
"workspace_id" => lambda {|n| @workspace_id = n.get_string_value() },
|
|
93
|
+
}
|
|
94
|
+
end
|
|
95
|
+
##
|
|
96
|
+
## Gets the mode property value. The mode property
|
|
97
|
+
## @return a agent_request_mode
|
|
98
|
+
##
|
|
99
|
+
def mode
|
|
100
|
+
return @mode
|
|
101
|
+
end
|
|
102
|
+
##
|
|
103
|
+
## Sets the mode property value. The mode property
|
|
104
|
+
## @param value Value to set for the mode property.
|
|
105
|
+
## @return a void
|
|
106
|
+
##
|
|
107
|
+
def mode=(value)
|
|
108
|
+
@mode = value
|
|
109
|
+
end
|
|
110
|
+
##
|
|
111
|
+
## Gets the profile_id property value. Optional stable profile identifier. When supplied on a successful sync `/v1/agent` call, the executed step trace is recorded into the in-process action cache (keyed by `(profile_id, task)`) and can be replayed via `POST /v1/agent/action-cache/replay`. Response payload includes `action_cache_recorded: true|false` so callers can confirm cache durability.
|
|
112
|
+
## @return a string
|
|
113
|
+
##
|
|
114
|
+
def profile_id
|
|
115
|
+
return @profile_id
|
|
116
|
+
end
|
|
117
|
+
##
|
|
118
|
+
## Sets the profile_id property value. Optional stable profile identifier. When supplied on a successful sync `/v1/agent` call, the executed step trace is recorded into the in-process action cache (keyed by `(profile_id, task)`) and can be replayed via `POST /v1/agent/action-cache/replay`. Response payload includes `action_cache_recorded: true|false` so callers can confirm cache durability.
|
|
119
|
+
## @param value Value to set for the profile_id property.
|
|
120
|
+
## @return a void
|
|
121
|
+
##
|
|
122
|
+
def profile_id=(value)
|
|
123
|
+
@profile_id = value
|
|
124
|
+
end
|
|
125
|
+
##
|
|
126
|
+
## Gets the proxy property value. The proxy property
|
|
127
|
+
## @return a proxy_config
|
|
128
|
+
##
|
|
129
|
+
def proxy
|
|
130
|
+
return @proxy
|
|
131
|
+
end
|
|
132
|
+
##
|
|
133
|
+
## Sets the proxy property value. The proxy property
|
|
134
|
+
## @param value Value to set for the proxy property.
|
|
135
|
+
## @return a void
|
|
136
|
+
##
|
|
137
|
+
def proxy=(value)
|
|
138
|
+
@proxy = value
|
|
139
|
+
end
|
|
140
|
+
##
|
|
141
|
+
## Serializes information the current object
|
|
142
|
+
## @param writer Serialization writer to use to serialize this model
|
|
143
|
+
## @return a void
|
|
144
|
+
##
|
|
145
|
+
def serialize(writer)
|
|
146
|
+
raise StandardError, 'writer cannot be null' if writer.nil?
|
|
147
|
+
writer.write_string_value("api_key", @api_key)
|
|
148
|
+
writer.write_string_value("callback_url", @callback_url)
|
|
149
|
+
writer.write_enum_value("mode", @mode)
|
|
150
|
+
writer.write_string_value("profile_id", @profile_id)
|
|
151
|
+
writer.write_object_value("proxy", @proxy)
|
|
152
|
+
writer.write_object_value("task", @task)
|
|
153
|
+
writer.write_string_value("tenant_id", @tenant_id)
|
|
154
|
+
writer.write_string_value("workspace_id", @workspace_id)
|
|
155
|
+
end
|
|
156
|
+
##
|
|
157
|
+
## Gets the task property value. Agent task payload; URL fields are policy-validated when present.
|
|
158
|
+
## @return a agent_request_task
|
|
159
|
+
##
|
|
160
|
+
def task
|
|
161
|
+
return @task
|
|
162
|
+
end
|
|
163
|
+
##
|
|
164
|
+
## Sets the task property value. Agent task payload; URL fields are policy-validated when present.
|
|
165
|
+
## @param value Value to set for the task property.
|
|
166
|
+
## @return a void
|
|
167
|
+
##
|
|
168
|
+
def task=(value)
|
|
169
|
+
@task = value
|
|
170
|
+
end
|
|
171
|
+
##
|
|
172
|
+
## Gets the tenant_id property value. The tenant_id property
|
|
173
|
+
## @return a string
|
|
174
|
+
##
|
|
175
|
+
def tenant_id
|
|
176
|
+
return @tenant_id
|
|
177
|
+
end
|
|
178
|
+
##
|
|
179
|
+
## Sets the tenant_id property value. The tenant_id property
|
|
180
|
+
## @param value Value to set for the tenant_id property.
|
|
181
|
+
## @return a void
|
|
182
|
+
##
|
|
183
|
+
def tenant_id=(value)
|
|
184
|
+
@tenant_id = value
|
|
185
|
+
end
|
|
186
|
+
##
|
|
187
|
+
## Gets the workspace_id property value. The workspace_id property
|
|
188
|
+
## @return a string
|
|
189
|
+
##
|
|
190
|
+
def workspace_id
|
|
191
|
+
return @workspace_id
|
|
192
|
+
end
|
|
193
|
+
##
|
|
194
|
+
## Sets the workspace_id property value. The workspace_id property
|
|
195
|
+
## @param value Value to set for the workspace_id property.
|
|
196
|
+
## @return a void
|
|
197
|
+
##
|
|
198
|
+
def workspace_id=(value)
|
|
199
|
+
@workspace_id = value
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
end
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
require 'microsoft_kiota_abstractions'
|
|
2
|
+
require_relative '../ghostcrawl'
|
|
3
|
+
require_relative './models'
|
|
4
|
+
|
|
5
|
+
module GhostCrawl
|
|
6
|
+
module Models
|
|
7
|
+
##
|
|
8
|
+
# Agent task payload; URL fields are policy-validated when present.
|
|
9
|
+
class AgentRequestTask
|
|
10
|
+
include MicrosoftKiotaAbstractions::AdditionalDataHolder, MicrosoftKiotaAbstractions::Parsable
|
|
11
|
+
##
|
|
12
|
+
# Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
|
|
13
|
+
@additional_data
|
|
14
|
+
##
|
|
15
|
+
# The goal property
|
|
16
|
+
@goal
|
|
17
|
+
##
|
|
18
|
+
# The start_url property
|
|
19
|
+
@start_url
|
|
20
|
+
##
|
|
21
|
+
# Typed agent-step baseline contract (observe/act/extract).
|
|
22
|
+
@steps
|
|
23
|
+
##
|
|
24
|
+
# The target_url property
|
|
25
|
+
@target_url
|
|
26
|
+
##
|
|
27
|
+
# The url property
|
|
28
|
+
@url
|
|
29
|
+
##
|
|
30
|
+
## Gets the AdditionalData property value. Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
|
|
31
|
+
## @return a i_dictionary
|
|
32
|
+
##
|
|
33
|
+
def additional_data
|
|
34
|
+
return @additional_data
|
|
35
|
+
end
|
|
36
|
+
##
|
|
37
|
+
## Sets the AdditionalData property value. Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
|
|
38
|
+
## @param value Value to set for the AdditionalData property.
|
|
39
|
+
## @return a void
|
|
40
|
+
##
|
|
41
|
+
def additional_data=(value)
|
|
42
|
+
@additional_data = value
|
|
43
|
+
end
|
|
44
|
+
##
|
|
45
|
+
## Instantiates a new AgentRequestTask and sets the default values.
|
|
46
|
+
## @return a void
|
|
47
|
+
##
|
|
48
|
+
def initialize()
|
|
49
|
+
@additional_data = Hash.new
|
|
50
|
+
end
|
|
51
|
+
##
|
|
52
|
+
## Creates a new instance of the appropriate class based on discriminator value
|
|
53
|
+
## @param parse_node The parse node to use to read the discriminator value and create the object
|
|
54
|
+
## @return a agent_request_task
|
|
55
|
+
##
|
|
56
|
+
def self.create_from_discriminator_value(parse_node)
|
|
57
|
+
raise StandardError, 'parse_node cannot be null' if parse_node.nil?
|
|
58
|
+
return AgentRequestTask.new
|
|
59
|
+
end
|
|
60
|
+
##
|
|
61
|
+
## The deserialization information for the current model
|
|
62
|
+
## @return a i_dictionary
|
|
63
|
+
##
|
|
64
|
+
def get_field_deserializers()
|
|
65
|
+
return {
|
|
66
|
+
"goal" => lambda {|n| @goal = n.get_string_value() },
|
|
67
|
+
"start_url" => lambda {|n| @start_url = n.get_string_value() },
|
|
68
|
+
"steps" => lambda {|n| @steps = n.get_collection_of_object_values(lambda {|pn| GhostCrawl::Models::AgentRequestTaskSteps.create_from_discriminator_value(pn) }) },
|
|
69
|
+
"target_url" => lambda {|n| @target_url = n.get_string_value() },
|
|
70
|
+
"url" => lambda {|n| @url = n.get_string_value() },
|
|
71
|
+
}
|
|
72
|
+
end
|
|
73
|
+
##
|
|
74
|
+
## Gets the goal property value. The goal property
|
|
75
|
+
## @return a string
|
|
76
|
+
##
|
|
77
|
+
def goal
|
|
78
|
+
return @goal
|
|
79
|
+
end
|
|
80
|
+
##
|
|
81
|
+
## Sets the goal property value. The goal property
|
|
82
|
+
## @param value Value to set for the goal property.
|
|
83
|
+
## @return a void
|
|
84
|
+
##
|
|
85
|
+
def goal=(value)
|
|
86
|
+
@goal = value
|
|
87
|
+
end
|
|
88
|
+
##
|
|
89
|
+
## Serializes information the current object
|
|
90
|
+
## @param writer Serialization writer to use to serialize this model
|
|
91
|
+
## @return a void
|
|
92
|
+
##
|
|
93
|
+
def serialize(writer)
|
|
94
|
+
raise StandardError, 'writer cannot be null' if writer.nil?
|
|
95
|
+
writer.write_string_value("goal", @goal)
|
|
96
|
+
writer.write_string_value("start_url", @start_url)
|
|
97
|
+
writer.write_collection_of_object_values("steps", @steps)
|
|
98
|
+
writer.write_string_value("target_url", @target_url)
|
|
99
|
+
writer.write_string_value("url", @url)
|
|
100
|
+
writer.write_additional_data(@additional_data)
|
|
101
|
+
end
|
|
102
|
+
##
|
|
103
|
+
## Gets the start_url property value. The start_url property
|
|
104
|
+
## @return a string
|
|
105
|
+
##
|
|
106
|
+
def start_url
|
|
107
|
+
return @start_url
|
|
108
|
+
end
|
|
109
|
+
##
|
|
110
|
+
## Sets the start_url property value. The start_url property
|
|
111
|
+
## @param value Value to set for the start_url property.
|
|
112
|
+
## @return a void
|
|
113
|
+
##
|
|
114
|
+
def start_url=(value)
|
|
115
|
+
@start_url = value
|
|
116
|
+
end
|
|
117
|
+
##
|
|
118
|
+
## Gets the steps property value. Typed agent-step baseline contract (observe/act/extract).
|
|
119
|
+
## @return a agent_request_task_steps
|
|
120
|
+
##
|
|
121
|
+
def steps
|
|
122
|
+
return @steps
|
|
123
|
+
end
|
|
124
|
+
##
|
|
125
|
+
## Sets the steps property value. Typed agent-step baseline contract (observe/act/extract).
|
|
126
|
+
## @param value Value to set for the steps property.
|
|
127
|
+
## @return a void
|
|
128
|
+
##
|
|
129
|
+
def steps=(value)
|
|
130
|
+
@steps = value
|
|
131
|
+
end
|
|
132
|
+
##
|
|
133
|
+
## Gets the target_url property value. The target_url property
|
|
134
|
+
## @return a string
|
|
135
|
+
##
|
|
136
|
+
def target_url
|
|
137
|
+
return @target_url
|
|
138
|
+
end
|
|
139
|
+
##
|
|
140
|
+
## Sets the target_url property value. The target_url property
|
|
141
|
+
## @param value Value to set for the target_url property.
|
|
142
|
+
## @return a void
|
|
143
|
+
##
|
|
144
|
+
def target_url=(value)
|
|
145
|
+
@target_url = value
|
|
146
|
+
end
|
|
147
|
+
##
|
|
148
|
+
## Gets the url property value. The url property
|
|
149
|
+
## @return a string
|
|
150
|
+
##
|
|
151
|
+
def url
|
|
152
|
+
return @url
|
|
153
|
+
end
|
|
154
|
+
##
|
|
155
|
+
## Sets the url property value. The url property
|
|
156
|
+
## @param value Value to set for the url property.
|
|
157
|
+
## @return a void
|
|
158
|
+
##
|
|
159
|
+
def url=(value)
|
|
160
|
+
@url = value
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|