asteroid-odyssey 1.6.51__tar.gz → 1.6.105__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 (132) hide show
  1. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/PKG-INFO +1 -1
  2. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/pyproject.toml +1 -1
  3. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/__init__.py +6 -0
  4. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/__init__.py +3 -0
  5. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_list_item.py +5 -1
  6. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_profile_agent_profile.py +14 -5
  7. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_profile_create_agent_profile_request.py +14 -5
  8. asteroid_odyssey-1.6.105/src/asteroid_odyssey/models/agents_profile_custom_proxy_config_input.py +92 -0
  9. asteroid_odyssey-1.6.105/src/asteroid_odyssey/models/agents_profile_custom_proxy_config_output.py +89 -0
  10. asteroid_odyssey-1.6.105/src/asteroid_odyssey/models/agents_profile_proxy_mode.py +38 -0
  11. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_profile_proxy_type.py +1 -1
  12. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_profile_update_agent_profile_request.py +13 -4
  13. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey.egg-info/PKG-INFO +1 -1
  14. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey.egg-info/SOURCES.txt +3 -0
  15. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/README.md +0 -0
  16. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/setup.cfg +0 -0
  17. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/api/__init__.py +0 -0
  18. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/api/agent_profiles_api.py +0 -0
  19. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/api/agents_api.py +0 -0
  20. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/api/execution_api.py +0 -0
  21. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/api/files_api.py +0 -0
  22. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/api_client.py +0 -0
  23. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/api_response.py +0 -0
  24. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/configuration.py +0 -0
  25. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/exceptions.py +0 -0
  26. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agent_list200_response.py +0 -0
  27. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agent_profile_clear_browser_cache200_response.py +0 -0
  28. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agent_profiles_list200_response.py +0 -0
  29. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_agent_base.py +0 -0
  30. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_agent_execute_agent_request.py +0 -0
  31. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_agent_execute_agent_response.py +0 -0
  32. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_agent_sort_field.py +0 -0
  33. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_action_name.py +0 -0
  34. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity.py +0 -0
  35. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_action_completed_info.py +0 -0
  36. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_action_completed_payload.py +0 -0
  37. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_action_failed_payload.py +0 -0
  38. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_action_started_info.py +0 -0
  39. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_action_started_payload.py +0 -0
  40. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_continued_on_node_payload.py +0 -0
  41. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_file_added_payload.py +0 -0
  42. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_generic_payload.py +0 -0
  43. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_payload_union.py +0 -0
  44. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_playwright_script_generated_payload.py +0 -0
  45. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_reasoning_payload.py +0 -0
  46. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_status_changed_payload.py +0 -0
  47. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_step_completed_payload.py +0 -0
  48. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_step_started_payload.py +0 -0
  49. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_transitioned_node_payload.py +0 -0
  50. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_user_message_received_payload.py +0 -0
  51. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_activity_workflow_updated_payload.py +0 -0
  52. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_agent_query_context_completed_details.py +0 -0
  53. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_agent_query_context_started_details.py +0 -0
  54. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_awaiting_confirmation_payload.py +0 -0
  55. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_cancel_reason.py +0 -0
  56. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_cancelled_payload.py +0 -0
  57. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_comment.py +0 -0
  58. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_completed_payload.py +0 -0
  59. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_element_file_upload_completed_details.py +0 -0
  60. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_execution_result.py +0 -0
  61. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_ext_api_call_completed_details.py +0 -0
  62. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_ext_get_mail_completed_details.py +0 -0
  63. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_failed_payload.py +0 -0
  64. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_file_list_completed_details.py +0 -0
  65. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_file_read_completed_details.py +0 -0
  66. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_file_stage_completed_details.py +0 -0
  67. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_human_label.py +0 -0
  68. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_llm_call_purpose.py +0 -0
  69. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_llm_call_started_details.py +0 -0
  70. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_nav_to_completed_details.py +0 -0
  71. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_nav_to_started_details.py +0 -0
  72. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_node_details.py +0 -0
  73. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_node_output_item.py +0 -0
  74. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_obs_snapshot_with_selectors_completed_details.py +0 -0
  75. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_paused_payload.py +0 -0
  76. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_rules_details.py +0 -0
  77. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_scratchpad_read_completed_details.py +0 -0
  78. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_scratchpad_read_started_details.py +0 -0
  79. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_scratchpad_write_completed_details.py +0 -0
  80. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_scratchpad_write_started_details.py +0 -0
  81. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_script_eval_completed_details.py +0 -0
  82. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_script_eval_started_details.py +0 -0
  83. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_script_hybrid_playwright_completed_details.py +0 -0
  84. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_script_hybrid_playwright_started_details.py +0 -0
  85. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_script_pad_run_function_completed_details.py +0 -0
  86. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_script_playwright_completed_details.py +0 -0
  87. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_script_playwright_started_details.py +0 -0
  88. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_scriptpad_read_completed_details.py +0 -0
  89. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_scriptpad_read_started_details.py +0 -0
  90. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_scriptpad_run_function_started_details.py +0 -0
  91. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_scriptpad_search_replace_completed_details.py +0 -0
  92. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_scriptpad_search_replace_started_details.py +0 -0
  93. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_scriptpad_write_completed_details.py +0 -0
  94. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_sort_field.py +0 -0
  95. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_status.py +0 -0
  96. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_terminal_payload.py +0 -0
  97. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_transition_details.py +0 -0
  98. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_update_execution_status_request.py +0 -0
  99. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_update_type.py +0 -0
  100. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_updateable_status.py +0 -0
  101. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_user_messages_add_text_body.py +0 -0
  102. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_util_get_datetime_completed_details.py +0 -0
  103. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_util_get_datetime_started_details.py +0 -0
  104. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_execution_workflow_update.py +0 -0
  105. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_files_file.py +0 -0
  106. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_files_temp_file.py +0 -0
  107. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_files_temp_files_response.py +0 -0
  108. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_graph_models_nodes_properties_playwright_script_llm_var.py +0 -0
  109. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_graph_models_nodes_properties_playwright_script_llm_var_type.py +0 -0
  110. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_graph_models_transitions_transition_type.py +0 -0
  111. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_profile_cookie.py +0 -0
  112. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_profile_country_code.py +0 -0
  113. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_profile_credential.py +0 -0
  114. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_profile_credential_update.py +0 -0
  115. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_profile_operating_system.py +0 -0
  116. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_profile_same_site.py +0 -0
  117. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/agents_profile_sort_field.py +0 -0
  118. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/common_bad_request_error_body.py +0 -0
  119. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/common_error.py +0 -0
  120. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/common_forbidden_error_body.py +0 -0
  121. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/common_internal_server_error_body.py +0 -0
  122. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/common_not_found_error_body.py +0 -0
  123. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/common_os_error.py +0 -0
  124. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/common_sort_direction.py +0 -0
  125. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/common_unauthorized_error_body.py +0 -0
  126. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/executions_list200_response.py +0 -0
  127. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/models/version.py +0 -0
  128. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/py.typed +0 -0
  129. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey/rest.py +0 -0
  130. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey.egg-info/dependency_links.txt +0 -0
  131. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey.egg-info/requires.txt +0 -0
  132. {asteroid_odyssey-1.6.51 → asteroid_odyssey-1.6.105}/src/asteroid_odyssey.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: asteroid-odyssey
3
- Version: 1.6.51
3
+ Version: 1.6.105
4
4
  Summary: Python SDK for the Asteroid Agents API
5
5
  Author-email: Asteroid <founders@asteroid.com>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "asteroid-odyssey"
3
- version = "1.6.51"
3
+ version = "1.6.105"
4
4
  authors = [
5
5
  { name = "Asteroid", email = "founders@asteroid.com" },
6
6
  ]
@@ -123,7 +123,10 @@ __all__ = [
123
123
  "AgentsProfileCreateAgentProfileRequest",
124
124
  "AgentsProfileCredential",
125
125
  "AgentsProfileCredentialUpdate",
126
+ "AgentsProfileCustomProxyConfigInput",
127
+ "AgentsProfileCustomProxyConfigOutput",
126
128
  "AgentsProfileOperatingSystem",
129
+ "AgentsProfileProxyMode",
127
130
  "AgentsProfileProxyType",
128
131
  "AgentsProfileSameSite",
129
132
  "AgentsProfileSortField",
@@ -250,7 +253,10 @@ from asteroid_odyssey.models.agents_profile_country_code import AgentsProfileCou
250
253
  from asteroid_odyssey.models.agents_profile_create_agent_profile_request import AgentsProfileCreateAgentProfileRequest as AgentsProfileCreateAgentProfileRequest
251
254
  from asteroid_odyssey.models.agents_profile_credential import AgentsProfileCredential as AgentsProfileCredential
252
255
  from asteroid_odyssey.models.agents_profile_credential_update import AgentsProfileCredentialUpdate as AgentsProfileCredentialUpdate
256
+ from asteroid_odyssey.models.agents_profile_custom_proxy_config_input import AgentsProfileCustomProxyConfigInput as AgentsProfileCustomProxyConfigInput
257
+ from asteroid_odyssey.models.agents_profile_custom_proxy_config_output import AgentsProfileCustomProxyConfigOutput as AgentsProfileCustomProxyConfigOutput
253
258
  from asteroid_odyssey.models.agents_profile_operating_system import AgentsProfileOperatingSystem as AgentsProfileOperatingSystem
259
+ from asteroid_odyssey.models.agents_profile_proxy_mode import AgentsProfileProxyMode as AgentsProfileProxyMode
254
260
  from asteroid_odyssey.models.agents_profile_proxy_type import AgentsProfileProxyType as AgentsProfileProxyType
255
261
  from asteroid_odyssey.models.agents_profile_same_site import AgentsProfileSameSite as AgentsProfileSameSite
256
262
  from asteroid_odyssey.models.agents_profile_sort_field import AgentsProfileSortField as AgentsProfileSortField
@@ -106,7 +106,10 @@ from asteroid_odyssey.models.agents_profile_country_code import AgentsProfileCou
106
106
  from asteroid_odyssey.models.agents_profile_create_agent_profile_request import AgentsProfileCreateAgentProfileRequest
107
107
  from asteroid_odyssey.models.agents_profile_credential import AgentsProfileCredential
108
108
  from asteroid_odyssey.models.agents_profile_credential_update import AgentsProfileCredentialUpdate
109
+ from asteroid_odyssey.models.agents_profile_custom_proxy_config_input import AgentsProfileCustomProxyConfigInput
110
+ from asteroid_odyssey.models.agents_profile_custom_proxy_config_output import AgentsProfileCustomProxyConfigOutput
109
111
  from asteroid_odyssey.models.agents_profile_operating_system import AgentsProfileOperatingSystem
112
+ from asteroid_odyssey.models.agents_profile_proxy_mode import AgentsProfileProxyMode
110
113
  from asteroid_odyssey.models.agents_profile_proxy_type import AgentsProfileProxyType
111
114
  from asteroid_odyssey.models.agents_profile_same_site import AgentsProfileSameSite
112
115
  from asteroid_odyssey.models.agents_profile_sort_field import AgentsProfileSortField
@@ -40,6 +40,8 @@ class AgentsExecutionListItem(BaseModel):
40
40
  organization_id: StrictStr = Field(description="The organization this execution belongs to", alias="organizationId")
41
41
  agent_name: StrictStr = Field(description="The agent display name", alias="agentName")
42
42
  agent_profile_name: Optional[StrictStr] = Field(default=None, description="The name of the agent profile used for this execution (if any)", alias="agentProfileName")
43
+ agent_profile_id: Optional[StrictStr] = Field(default=None, description="The ID of the agent profile used for this execution (if any)", alias="agentProfileId")
44
+ inputs: Optional[Dict[str, Any]] = Field(default=None, description="Input variables used for this execution")
43
45
  execution_result: Optional[AgentsExecutionExecutionResult] = Field(default=None, description="Execution result with outcome, reasoning, and result data", alias="executionResult")
44
46
  duration: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Execution duration in seconds (only present for terminal executions)")
45
47
  human_labels: List[AgentsExecutionHumanLabel] = Field(description="Human-applied labels for this execution", alias="humanLabels")
@@ -47,7 +49,7 @@ class AgentsExecutionListItem(BaseModel):
47
49
  metadata: Optional[Dict[str, Any]] = Field(default=None, description="Optional metadata key-value pairs attached to this execution")
48
50
  browser_recording_url: Optional[StrictStr] = Field(default=None, description="Browser recording URL (if a browser session was used and execution is terminal)", alias="browserRecordingUrl")
49
51
  browser_live_view_url: Optional[StrictStr] = Field(default=None, description="Browser live view URL for debugging (if a browser session is active and execution is running)", alias="browserLiveViewUrl")
50
- __properties: ClassVar[List[str]] = ["id", "agentId", "workflowId", "status", "createdAt", "terminalAt", "organizationId", "agentName", "agentProfileName", "executionResult", "duration", "humanLabels", "comments", "metadata", "browserRecordingUrl", "browserLiveViewUrl"]
52
+ __properties: ClassVar[List[str]] = ["id", "agentId", "workflowId", "status", "createdAt", "terminalAt", "organizationId", "agentName", "agentProfileName", "agentProfileId", "inputs", "executionResult", "duration", "humanLabels", "comments", "metadata", "browserRecordingUrl", "browserLiveViewUrl"]
51
53
 
52
54
  model_config = ConfigDict(
53
55
  populate_by_name=True,
@@ -126,6 +128,8 @@ class AgentsExecutionListItem(BaseModel):
126
128
  "organizationId": obj.get("organizationId"),
127
129
  "agentName": obj.get("agentName"),
128
130
  "agentProfileName": obj.get("agentProfileName"),
131
+ "agentProfileId": obj.get("agentProfileId"),
132
+ "inputs": obj.get("inputs"),
129
133
  "executionResult": AgentsExecutionExecutionResult.from_dict(obj["executionResult"]) if obj.get("executionResult") is not None else None,
130
134
  "duration": obj.get("duration"),
131
135
  "humanLabels": [AgentsExecutionHumanLabel.from_dict(_item) for _item in obj["humanLabels"]] if obj.get("humanLabels") is not None else None,
@@ -23,7 +23,9 @@ from typing import Any, ClassVar, Dict, List, Optional
23
23
  from asteroid_odyssey.models.agents_profile_cookie import AgentsProfileCookie
24
24
  from asteroid_odyssey.models.agents_profile_country_code import AgentsProfileCountryCode
25
25
  from asteroid_odyssey.models.agents_profile_credential import AgentsProfileCredential
26
+ from asteroid_odyssey.models.agents_profile_custom_proxy_config_output import AgentsProfileCustomProxyConfigOutput
26
27
  from asteroid_odyssey.models.agents_profile_operating_system import AgentsProfileOperatingSystem
28
+ from asteroid_odyssey.models.agents_profile_proxy_mode import AgentsProfileProxyMode
27
29
  from asteroid_odyssey.models.agents_profile_proxy_type import AgentsProfileProxyType
28
30
  from typing import Optional, Set
29
31
  from typing_extensions import Self
@@ -36,10 +38,12 @@ class AgentsProfileAgentProfile(BaseModel):
36
38
  name: StrictStr = Field(description="Name of the agent profile (unique within organization)")
37
39
  description: StrictStr = Field(description="Description of the agent profile")
38
40
  organization_id: StrictStr = Field(description="The ID of the organization that owns this profile", alias="organizationId")
39
- proxy_cc: Optional[AgentsProfileCountryCode] = Field(default=None, description="Country code for proxy location", alias="proxyCC")
40
- proxy_type: Optional[AgentsProfileProxyType] = Field(default=None, description="Type of proxy to use", alias="proxyType")
41
- captcha_solver_active: StrictBool = Field(description="Whether the captcha solver is active for this profile", alias="captchaSolverActive")
42
- sticky_ip: StrictBool = Field(description="Whether to use the same IP address for all executions", alias="stickyIP")
41
+ proxy_mode: AgentsProfileProxyMode = Field(description="Proxy configuration mode", alias="proxyMode")
42
+ proxy_cc: Optional[AgentsProfileCountryCode] = Field(default=None, description="Country code for proxy location (for managed proxy mode)", alias="proxyCC")
43
+ proxy_type: Optional[AgentsProfileProxyType] = Field(default=None, description="Type of managed proxy to use (for managed proxy mode)", alias="proxyType")
44
+ custom_proxy: Optional[AgentsProfileCustomProxyConfigOutput] = Field(default=None, description="Custom proxy configuration (for custom proxy mode, password excluded)", alias="customProxy")
45
+ captcha_solver_active: StrictBool = Field(description="Whether the captcha solver is active for this profile (managed proxy only)", alias="captchaSolverActive")
46
+ sticky_ip: StrictBool = Field(description="Whether to use the same IP address for all executions (managed proxy only)", alias="stickyIP")
43
47
  operating_system: Optional[AgentsProfileOperatingSystem] = Field(default=None, description="Operating system to emulate", alias="operatingSystem")
44
48
  extra_stealth: StrictBool = Field(description="Whether extra stealth mode is enabled", alias="extraStealth")
45
49
  cache_persistence: StrictBool = Field(description="Whether to persist browser cache between sessions", alias="cachePersistence")
@@ -51,7 +55,7 @@ class AgentsProfileAgentProfile(BaseModel):
51
55
  cookies: List[AgentsProfileCookie] = Field(description="List of cookies associated with this profile")
52
56
  created_at: datetime = Field(description="When the profile was created", alias="createdAt")
53
57
  updated_at: datetime = Field(description="When the profile was last updated", alias="updatedAt")
54
- __properties: ClassVar[List[str]] = ["id", "name", "description", "organizationId", "proxyCC", "proxyType", "captchaSolverActive", "stickyIP", "operatingSystem", "extraStealth", "cachePersistence", "adblockActive", "popupBlockerActive", "forcePopupsAsTabsActive", "mediaBlockerActive", "credentials", "cookies", "createdAt", "updatedAt"]
58
+ __properties: ClassVar[List[str]] = ["id", "name", "description", "organizationId", "proxyMode", "proxyCC", "proxyType", "customProxy", "captchaSolverActive", "stickyIP", "operatingSystem", "extraStealth", "cachePersistence", "adblockActive", "popupBlockerActive", "forcePopupsAsTabsActive", "mediaBlockerActive", "credentials", "cookies", "createdAt", "updatedAt"]
55
59
 
56
60
  model_config = ConfigDict(
57
61
  populate_by_name=True,
@@ -92,6 +96,9 @@ class AgentsProfileAgentProfile(BaseModel):
92
96
  exclude=excluded_fields,
93
97
  exclude_none=True,
94
98
  )
99
+ # override the default output from pydantic by calling `to_dict()` of custom_proxy
100
+ if self.custom_proxy:
101
+ _dict['customProxy'] = self.custom_proxy.to_dict()
95
102
  # override the default output from pydantic by calling `to_dict()` of each item in credentials (list)
96
103
  _items = []
97
104
  if self.credentials:
@@ -122,8 +129,10 @@ class AgentsProfileAgentProfile(BaseModel):
122
129
  "name": obj.get("name"),
123
130
  "description": obj.get("description"),
124
131
  "organizationId": obj.get("organizationId"),
132
+ "proxyMode": obj.get("proxyMode"),
125
133
  "proxyCC": obj.get("proxyCC"),
126
134
  "proxyType": obj.get("proxyType"),
135
+ "customProxy": AgentsProfileCustomProxyConfigOutput.from_dict(obj["customProxy"]) if obj.get("customProxy") is not None else None,
127
136
  "captchaSolverActive": obj.get("captchaSolverActive"),
128
137
  "stickyIP": obj.get("stickyIP"),
129
138
  "operatingSystem": obj.get("operatingSystem"),
@@ -23,7 +23,9 @@ from typing_extensions import Annotated
23
23
  from asteroid_odyssey.models.agents_profile_cookie import AgentsProfileCookie
24
24
  from asteroid_odyssey.models.agents_profile_country_code import AgentsProfileCountryCode
25
25
  from asteroid_odyssey.models.agents_profile_credential import AgentsProfileCredential
26
+ from asteroid_odyssey.models.agents_profile_custom_proxy_config_input import AgentsProfileCustomProxyConfigInput
26
27
  from asteroid_odyssey.models.agents_profile_operating_system import AgentsProfileOperatingSystem
28
+ from asteroid_odyssey.models.agents_profile_proxy_mode import AgentsProfileProxyMode
27
29
  from asteroid_odyssey.models.agents_profile_proxy_type import AgentsProfileProxyType
28
30
  from typing import Optional, Set
29
31
  from typing_extensions import Self
@@ -35,10 +37,12 @@ class AgentsProfileCreateAgentProfileRequest(BaseModel):
35
37
  name: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="Name of the agent profile (must be unique within organization)")
36
38
  description: Annotated[str, Field(strict=True, max_length=1000)] = Field(description="Description of the agent profile")
37
39
  organization_id: StrictStr = Field(description="The ID of the organization that the profile belongs to", alias="organizationId")
38
- proxy_cc: Optional[AgentsProfileCountryCode] = Field(default=None, description="Country code for proxy location", alias="proxyCC")
39
- proxy_type: Optional[AgentsProfileProxyType] = Field(default=None, description="Type of proxy to use", alias="proxyType")
40
- captcha_solver_active: Optional[StrictBool] = Field(default=False, description="Whether the captcha solver should be active", alias="captchaSolverActive")
41
- sticky_ip: Optional[StrictBool] = Field(default=False, description="Whether to use the same IP address for all executions", alias="stickyIP")
40
+ proxy_mode: Optional[AgentsProfileProxyMode] = Field(default=None, description="Proxy configuration mode", alias="proxyMode")
41
+ proxy_cc: Optional[AgentsProfileCountryCode] = Field(default=None, description="Country code for proxy location (for managed proxy mode)", alias="proxyCC")
42
+ proxy_type: Optional[AgentsProfileProxyType] = Field(default=None, description="Type of managed proxy to use (required for managed proxy mode)", alias="proxyType")
43
+ custom_proxy: Optional[AgentsProfileCustomProxyConfigInput] = Field(default=None, description="Custom proxy configuration (required for custom proxy mode)", alias="customProxy")
44
+ captcha_solver_active: Optional[StrictBool] = Field(default=False, description="Whether the captcha solver should be active (managed proxy only)", alias="captchaSolverActive")
45
+ sticky_ip: Optional[StrictBool] = Field(default=False, description="Whether to use the same IP address for all executions (managed proxy only)", alias="stickyIP")
42
46
  operating_system: Optional[AgentsProfileOperatingSystem] = Field(default=None, description="Operating system to emulate", alias="operatingSystem")
43
47
  extra_stealth: Optional[StrictBool] = Field(default=False, description="Whether to enable extra stealth mode", alias="extraStealth")
44
48
  cache_persistence: Optional[StrictBool] = Field(default=False, description="Whether to persist browser cache between sessions", alias="cachePersistence")
@@ -48,7 +52,7 @@ class AgentsProfileCreateAgentProfileRequest(BaseModel):
48
52
  media_blocker_active: Optional[StrictBool] = Field(default=False, description="Whether to enable media blocking (images, videos, etc.)", alias="mediaBlockerActive")
49
53
  credentials: Optional[List[AgentsProfileCredential]] = Field(default=None, description="Initial credentials to create with the profile")
50
54
  cookies: Optional[List[AgentsProfileCookie]] = Field(default=None, description="Initial cookies to create with the profile")
51
- __properties: ClassVar[List[str]] = ["name", "description", "organizationId", "proxyCC", "proxyType", "captchaSolverActive", "stickyIP", "operatingSystem", "extraStealth", "cachePersistence", "adblockActive", "popupBlockerActive", "forcePopupsAsTabsActive", "mediaBlockerActive", "credentials", "cookies"]
55
+ __properties: ClassVar[List[str]] = ["name", "description", "organizationId", "proxyMode", "proxyCC", "proxyType", "customProxy", "captchaSolverActive", "stickyIP", "operatingSystem", "extraStealth", "cachePersistence", "adblockActive", "popupBlockerActive", "forcePopupsAsTabsActive", "mediaBlockerActive", "credentials", "cookies"]
52
56
 
53
57
  model_config = ConfigDict(
54
58
  populate_by_name=True,
@@ -89,6 +93,9 @@ class AgentsProfileCreateAgentProfileRequest(BaseModel):
89
93
  exclude=excluded_fields,
90
94
  exclude_none=True,
91
95
  )
96
+ # override the default output from pydantic by calling `to_dict()` of custom_proxy
97
+ if self.custom_proxy:
98
+ _dict['customProxy'] = self.custom_proxy.to_dict()
92
99
  # override the default output from pydantic by calling `to_dict()` of each item in credentials (list)
93
100
  _items = []
94
101
  if self.credentials:
@@ -118,8 +125,10 @@ class AgentsProfileCreateAgentProfileRequest(BaseModel):
118
125
  "name": obj.get("name"),
119
126
  "description": obj.get("description"),
120
127
  "organizationId": obj.get("organizationId"),
128
+ "proxyMode": obj.get("proxyMode"),
121
129
  "proxyCC": obj.get("proxyCC"),
122
130
  "proxyType": obj.get("proxyType"),
131
+ "customProxy": AgentsProfileCustomProxyConfigInput.from_dict(obj["customProxy"]) if obj.get("customProxy") is not None else None,
123
132
  "captchaSolverActive": obj.get("captchaSolverActive") if obj.get("captchaSolverActive") is not None else False,
124
133
  "stickyIP": obj.get("stickyIP") if obj.get("stickyIP") is not None else False,
125
134
  "operatingSystem": obj.get("operatingSystem"),
@@ -0,0 +1,92 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Agent Service
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: v1
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field
21
+ from typing import Any, ClassVar, Dict, List
22
+ from typing_extensions import Annotated
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class AgentsProfileCustomProxyConfigInput(BaseModel):
27
+ """
28
+ Custom proxy server configuration for input (includes password)
29
+ """ # noqa: E501
30
+ server: Annotated[str, Field(min_length=1, strict=True)] = Field(description="Proxy server address including protocol and port (e.g., 'socks5://proxy.example.com:1080' or 'http://proxy.example.com:8080')")
31
+ username: Annotated[str, Field(min_length=1, strict=True)] = Field(description="Proxy authentication username")
32
+ password: Annotated[str, Field(min_length=1, strict=True)] = Field(description="Proxy authentication password")
33
+ __properties: ClassVar[List[str]] = ["server", "username", "password"]
34
+
35
+ model_config = ConfigDict(
36
+ populate_by_name=True,
37
+ validate_assignment=True,
38
+ protected_namespaces=(),
39
+ )
40
+
41
+
42
+ def to_str(self) -> str:
43
+ """Returns the string representation of the model using alias"""
44
+ return pprint.pformat(self.model_dump(by_alias=True))
45
+
46
+ def to_json(self) -> str:
47
+ """Returns the JSON representation of the model using alias"""
48
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
49
+ return json.dumps(self.to_dict())
50
+
51
+ @classmethod
52
+ def from_json(cls, json_str: str) -> Optional[Self]:
53
+ """Create an instance of AgentsProfileCustomProxyConfigInput from a JSON string"""
54
+ return cls.from_dict(json.loads(json_str))
55
+
56
+ def to_dict(self) -> Dict[str, Any]:
57
+ """Return the dictionary representation of the model using alias.
58
+
59
+ This has the following differences from calling pydantic's
60
+ `self.model_dump(by_alias=True)`:
61
+
62
+ * `None` is only added to the output dict for nullable fields that
63
+ were set at model initialization. Other fields with value `None`
64
+ are ignored.
65
+ """
66
+ excluded_fields: Set[str] = set([
67
+ ])
68
+
69
+ _dict = self.model_dump(
70
+ by_alias=True,
71
+ exclude=excluded_fields,
72
+ exclude_none=True,
73
+ )
74
+ return _dict
75
+
76
+ @classmethod
77
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
78
+ """Create an instance of AgentsProfileCustomProxyConfigInput from a dict"""
79
+ if obj is None:
80
+ return None
81
+
82
+ if not isinstance(obj, dict):
83
+ return cls.model_validate(obj)
84
+
85
+ _obj = cls.model_validate({
86
+ "server": obj.get("server"),
87
+ "username": obj.get("username"),
88
+ "password": obj.get("password")
89
+ })
90
+ return _obj
91
+
92
+
@@ -0,0 +1,89 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Agent Service
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: v1
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
+ from typing import Any, ClassVar, Dict, List
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class AgentsProfileCustomProxyConfigOutput(BaseModel):
26
+ """
27
+ Custom proxy server configuration for output (excludes password)
28
+ """ # noqa: E501
29
+ server: StrictStr = Field(description="Proxy server address")
30
+ username: StrictStr = Field(description="Proxy authentication username")
31
+ __properties: ClassVar[List[str]] = ["server", "username"]
32
+
33
+ model_config = ConfigDict(
34
+ populate_by_name=True,
35
+ validate_assignment=True,
36
+ protected_namespaces=(),
37
+ )
38
+
39
+
40
+ def to_str(self) -> str:
41
+ """Returns the string representation of the model using alias"""
42
+ return pprint.pformat(self.model_dump(by_alias=True))
43
+
44
+ def to_json(self) -> str:
45
+ """Returns the JSON representation of the model using alias"""
46
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
47
+ return json.dumps(self.to_dict())
48
+
49
+ @classmethod
50
+ def from_json(cls, json_str: str) -> Optional[Self]:
51
+ """Create an instance of AgentsProfileCustomProxyConfigOutput from a JSON string"""
52
+ return cls.from_dict(json.loads(json_str))
53
+
54
+ def to_dict(self) -> Dict[str, Any]:
55
+ """Return the dictionary representation of the model using alias.
56
+
57
+ This has the following differences from calling pydantic's
58
+ `self.model_dump(by_alias=True)`:
59
+
60
+ * `None` is only added to the output dict for nullable fields that
61
+ were set at model initialization. Other fields with value `None`
62
+ are ignored.
63
+ """
64
+ excluded_fields: Set[str] = set([
65
+ ])
66
+
67
+ _dict = self.model_dump(
68
+ by_alias=True,
69
+ exclude=excluded_fields,
70
+ exclude_none=True,
71
+ )
72
+ return _dict
73
+
74
+ @classmethod
75
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
76
+ """Create an instance of AgentsProfileCustomProxyConfigOutput from a dict"""
77
+ if obj is None:
78
+ return None
79
+
80
+ if not isinstance(obj, dict):
81
+ return cls.model_validate(obj)
82
+
83
+ _obj = cls.model_validate({
84
+ "server": obj.get("server"),
85
+ "username": obj.get("username")
86
+ })
87
+ return _obj
88
+
89
+
@@ -0,0 +1,38 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Agent Service
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: v1
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import json
17
+ from enum import Enum
18
+ from typing_extensions import Self
19
+
20
+
21
+ class AgentsProfileProxyMode(str, Enum):
22
+ """
23
+ Proxy configuration mode
24
+ """
25
+
26
+ """
27
+ allowed enum values
28
+ """
29
+ NONE = 'none'
30
+ MANAGED = 'managed'
31
+ CUSTOM = 'custom'
32
+
33
+ @classmethod
34
+ def from_json(cls, json_str: str) -> Self:
35
+ """Create an instance of AgentsProfileProxyMode from a JSON string"""
36
+ return cls(json.loads(json_str))
37
+
38
+
@@ -20,7 +20,7 @@ from typing_extensions import Self
20
20
 
21
21
  class AgentsProfileProxyType(str, Enum):
22
22
  """
23
- Type of proxy to use for browser sessions
23
+ Type of managed proxy to use for browser sessions
24
24
  """
25
25
 
26
26
  """
@@ -24,7 +24,9 @@ from asteroid_odyssey.models.agents_profile_cookie import AgentsProfileCookie
24
24
  from asteroid_odyssey.models.agents_profile_country_code import AgentsProfileCountryCode
25
25
  from asteroid_odyssey.models.agents_profile_credential import AgentsProfileCredential
26
26
  from asteroid_odyssey.models.agents_profile_credential_update import AgentsProfileCredentialUpdate
27
+ from asteroid_odyssey.models.agents_profile_custom_proxy_config_input import AgentsProfileCustomProxyConfigInput
27
28
  from asteroid_odyssey.models.agents_profile_operating_system import AgentsProfileOperatingSystem
29
+ from asteroid_odyssey.models.agents_profile_proxy_mode import AgentsProfileProxyMode
28
30
  from asteroid_odyssey.models.agents_profile_proxy_type import AgentsProfileProxyType
29
31
  from typing import Optional, Set
30
32
  from typing_extensions import Self
@@ -35,9 +37,11 @@ class AgentsProfileUpdateAgentProfileRequest(BaseModel):
35
37
  """ # noqa: E501
36
38
  name: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=255)]] = Field(default=None, description="New name for the profile")
37
39
  description: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = Field(default=None, description="New description for the profile")
38
- proxy_cc: Optional[AgentsProfileCountryCode] = Field(default=None, description="Country code for proxy location", alias="proxyCC")
39
- proxy_type: Optional[AgentsProfileProxyType] = Field(default=None, description="Type of proxy to use (set to empty string to disable proxy)", alias="proxyType")
40
- captcha_solver_active: Optional[StrictBool] = Field(default=None, description="Whether the captcha solver should be active", alias="captchaSolverActive")
40
+ proxy_mode: Optional[AgentsProfileProxyMode] = Field(default=None, description="Proxy configuration mode", alias="proxyMode")
41
+ proxy_cc: Optional[AgentsProfileCountryCode] = Field(default=None, description="Country code for proxy location (for managed proxy mode)", alias="proxyCC")
42
+ proxy_type: Optional[AgentsProfileProxyType] = Field(default=None, description="Type of managed proxy to use (for managed proxy mode)", alias="proxyType")
43
+ custom_proxy: Optional[AgentsProfileCustomProxyConfigInput] = Field(default=None, description="Custom proxy configuration (for custom proxy mode)", alias="customProxy")
44
+ captcha_solver_active: Optional[StrictBool] = Field(default=None, description="Whether the captcha solver should be active (managed proxy only)", alias="captchaSolverActive")
41
45
  operating_system: Optional[AgentsProfileOperatingSystem] = Field(default=None, description="Operating system to emulate", alias="operatingSystem")
42
46
  extra_stealth: Optional[StrictBool] = Field(default=None, description="Whether to enable extra stealth mode", alias="extraStealth")
43
47
  cache_persistence: Optional[StrictBool] = Field(default=None, description="Whether to persist browser cache between sessions", alias="cachePersistence")
@@ -50,7 +54,7 @@ class AgentsProfileUpdateAgentProfileRequest(BaseModel):
50
54
  credentials_to_delete: Optional[List[StrictStr]] = Field(default=None, description="IDs of credentials to remove from the profile", alias="credentialsToDelete")
51
55
  cookies_to_add: Optional[List[AgentsProfileCookie]] = Field(default=None, description="Cookies to add to the profile", alias="cookiesToAdd")
52
56
  cookies_to_delete: Optional[List[StrictStr]] = Field(default=None, description="IDs of cookies to remove from the profile", alias="cookiesToDelete")
53
- __properties: ClassVar[List[str]] = ["name", "description", "proxyCC", "proxyType", "captchaSolverActive", "operatingSystem", "extraStealth", "cachePersistence", "adblockActive", "popupBlockerActive", "forcePopupsAsTabsActive", "mediaBlockerActive", "credentialsToAdd", "credentialsToUpdate", "credentialsToDelete", "cookiesToAdd", "cookiesToDelete"]
57
+ __properties: ClassVar[List[str]] = ["name", "description", "proxyMode", "proxyCC", "proxyType", "customProxy", "captchaSolverActive", "operatingSystem", "extraStealth", "cachePersistence", "adblockActive", "popupBlockerActive", "forcePopupsAsTabsActive", "mediaBlockerActive", "credentialsToAdd", "credentialsToUpdate", "credentialsToDelete", "cookiesToAdd", "cookiesToDelete"]
54
58
 
55
59
  model_config = ConfigDict(
56
60
  populate_by_name=True,
@@ -91,6 +95,9 @@ class AgentsProfileUpdateAgentProfileRequest(BaseModel):
91
95
  exclude=excluded_fields,
92
96
  exclude_none=True,
93
97
  )
98
+ # override the default output from pydantic by calling `to_dict()` of custom_proxy
99
+ if self.custom_proxy:
100
+ _dict['customProxy'] = self.custom_proxy.to_dict()
94
101
  # override the default output from pydantic by calling `to_dict()` of each item in credentials_to_add (list)
95
102
  _items = []
96
103
  if self.credentials_to_add:
@@ -126,8 +133,10 @@ class AgentsProfileUpdateAgentProfileRequest(BaseModel):
126
133
  _obj = cls.model_validate({
127
134
  "name": obj.get("name"),
128
135
  "description": obj.get("description"),
136
+ "proxyMode": obj.get("proxyMode"),
129
137
  "proxyCC": obj.get("proxyCC"),
130
138
  "proxyType": obj.get("proxyType"),
139
+ "customProxy": AgentsProfileCustomProxyConfigInput.from_dict(obj["customProxy"]) if obj.get("customProxy") is not None else None,
131
140
  "captchaSolverActive": obj.get("captchaSolverActive"),
132
141
  "operatingSystem": obj.get("operatingSystem"),
133
142
  "extraStealth": obj.get("extraStealth"),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: asteroid-odyssey
3
- Version: 1.6.51
3
+ Version: 1.6.105
4
4
  Summary: Python SDK for the Asteroid Agents API
5
5
  Author-email: Asteroid <founders@asteroid.com>
6
6
  License-Expression: MIT
@@ -110,7 +110,10 @@ src/asteroid_odyssey/models/agents_profile_country_code.py
110
110
  src/asteroid_odyssey/models/agents_profile_create_agent_profile_request.py
111
111
  src/asteroid_odyssey/models/agents_profile_credential.py
112
112
  src/asteroid_odyssey/models/agents_profile_credential_update.py
113
+ src/asteroid_odyssey/models/agents_profile_custom_proxy_config_input.py
114
+ src/asteroid_odyssey/models/agents_profile_custom_proxy_config_output.py
113
115
  src/asteroid_odyssey/models/agents_profile_operating_system.py
116
+ src/asteroid_odyssey/models/agents_profile_proxy_mode.py
114
117
  src/asteroid_odyssey/models/agents_profile_proxy_type.py
115
118
  src/asteroid_odyssey/models/agents_profile_same_site.py
116
119
  src/asteroid_odyssey/models/agents_profile_sort_field.py