daytona_api_client_async 0.0.0.dev0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- daytona_api_client_async/__init__.py +195 -0
- daytona_api_client_async/api/__init__.py +21 -0
- daytona_api_client_async/api/api_keys_api.py +1673 -0
- daytona_api_client_async/api/audit_api.py +750 -0
- daytona_api_client_async/api/config_api.py +279 -0
- daytona_api_client_async/api/default_api.py +1884 -0
- daytona_api_client_async/api/docker_registry_api.py +1965 -0
- daytona_api_client_async/api/health_api.py +282 -0
- daytona_api_client_async/api/object_storage_api.py +299 -0
- daytona_api_client_async/api/organizations_api.py +7836 -0
- daytona_api_client_async/api/preview_api.py +826 -0
- daytona_api_client_async/api/regions_api.py +316 -0
- daytona_api_client_async/api/runners_api.py +1560 -0
- daytona_api_client_async/api/sandbox_api.py +6927 -0
- daytona_api_client_async/api/snapshots_api.py +2630 -0
- daytona_api_client_async/api/toolbox_api.py +20759 -0
- daytona_api_client_async/api/users_api.py +2319 -0
- daytona_api_client_async/api/volumes_api.py +1419 -0
- daytona_api_client_async/api/webhooks_api.py +1704 -0
- daytona_api_client_async/api/workspace_api.py +4036 -0
- daytona_api_client_async/api_client.py +801 -0
- daytona_api_client_async/api_response.py +21 -0
- daytona_api_client_async/configuration.py +579 -0
- daytona_api_client_async/exceptions.py +217 -0
- daytona_api_client_async/models/__init__.py +162 -0
- daytona_api_client_async/models/account_provider.py +103 -0
- daytona_api_client_async/models/announcement.py +103 -0
- daytona_api_client_async/models/api_key_list.py +132 -0
- daytona_api_client_async/models/api_key_response.py +123 -0
- daytona_api_client_async/models/audit_log.py +128 -0
- daytona_api_client_async/models/build_info.py +108 -0
- daytona_api_client_async/models/command.py +105 -0
- daytona_api_client_async/models/completion_context.py +103 -0
- daytona_api_client_async/models/completion_item.py +113 -0
- daytona_api_client_async/models/completion_list.py +111 -0
- daytona_api_client_async/models/compressed_screenshot_response.py +105 -0
- daytona_api_client_async/models/computer_use_start_response.py +103 -0
- daytona_api_client_async/models/computer_use_status_response.py +108 -0
- daytona_api_client_async/models/computer_use_stop_response.py +103 -0
- daytona_api_client_async/models/configuration.py +145 -0
- daytona_api_client_async/models/create_api_key.py +119 -0
- daytona_api_client_async/models/create_audit_log.py +128 -0
- daytona_api_client_async/models/create_build_info.py +103 -0
- daytona_api_client_async/models/create_docker_registry.py +120 -0
- daytona_api_client_async/models/create_linked_account.py +103 -0
- daytona_api_client_async/models/create_organization.py +103 -0
- daytona_api_client_async/models/create_organization_invitation.py +115 -0
- daytona_api_client_async/models/create_organization_quota.py +117 -0
- daytona_api_client_async/models/create_organization_role.py +113 -0
- daytona_api_client_async/models/create_runner.py +130 -0
- daytona_api_client_async/models/create_sandbox.py +159 -0
- daytona_api_client_async/models/create_session_request.py +101 -0
- daytona_api_client_async/models/create_snapshot.py +121 -0
- daytona_api_client_async/models/create_user.py +127 -0
- daytona_api_client_async/models/create_volume.py +101 -0
- daytona_api_client_async/models/create_workspace.py +161 -0
- daytona_api_client_async/models/daytona_configuration.py +158 -0
- daytona_api_client_async/models/display_info_response.py +101 -0
- daytona_api_client_async/models/docker_registry.py +123 -0
- daytona_api_client_async/models/download_files.py +101 -0
- daytona_api_client_async/models/empty_response.py +101 -0
- daytona_api_client_async/models/execute_request.py +105 -0
- daytona_api_client_async/models/execute_response.py +103 -0
- daytona_api_client_async/models/file_info.py +115 -0
- daytona_api_client_async/models/file_status.py +107 -0
- daytona_api_client_async/models/git_add_request.py +103 -0
- daytona_api_client_async/models/git_branch_request.py +103 -0
- daytona_api_client_async/models/git_checkout_request.py +103 -0
- daytona_api_client_async/models/git_clone_request.py +111 -0
- daytona_api_client_async/models/git_commit_info.py +109 -0
- daytona_api_client_async/models/git_commit_request.py +109 -0
- daytona_api_client_async/models/git_commit_response.py +101 -0
- daytona_api_client_async/models/git_delete_branch_request.py +103 -0
- daytona_api_client_async/models/git_repo_request.py +105 -0
- daytona_api_client_async/models/git_status.py +117 -0
- daytona_api_client_async/models/health_controller_check200_response.py +154 -0
- daytona_api_client_async/models/health_controller_check200_response_info_value.py +101 -0
- daytona_api_client_async/models/health_controller_check503_response.py +154 -0
- daytona_api_client_async/models/keyboard_hotkey_request.py +101 -0
- daytona_api_client_async/models/keyboard_hotkey_response.py +103 -0
- daytona_api_client_async/models/keyboard_press_request.py +103 -0
- daytona_api_client_async/models/keyboard_press_response.py +105 -0
- daytona_api_client_async/models/keyboard_type_request.py +103 -0
- daytona_api_client_async/models/keyboard_type_response.py +103 -0
- daytona_api_client_async/models/list_branch_response.py +101 -0
- daytona_api_client_async/models/lsp_completion_params.py +117 -0
- daytona_api_client_async/models/lsp_document_request.py +105 -0
- daytona_api_client_async/models/lsp_location.py +107 -0
- daytona_api_client_async/models/lsp_server_request.py +103 -0
- daytona_api_client_async/models/lsp_symbol.py +109 -0
- daytona_api_client_async/models/match.py +105 -0
- daytona_api_client_async/models/mouse_click_request.py +107 -0
- daytona_api_client_async/models/mouse_click_response.py +103 -0
- daytona_api_client_async/models/mouse_drag_request.py +109 -0
- daytona_api_client_async/models/mouse_drag_response.py +103 -0
- daytona_api_client_async/models/mouse_move_request.py +103 -0
- daytona_api_client_async/models/mouse_move_response.py +103 -0
- daytona_api_client_async/models/mouse_position.py +103 -0
- daytona_api_client_async/models/mouse_scroll_request.py +107 -0
- daytona_api_client_async/models/mouse_scroll_response.py +101 -0
- daytona_api_client_async/models/oidc_config.py +105 -0
- daytona_api_client_async/models/organization.py +153 -0
- daytona_api_client_async/models/organization_invitation.py +144 -0
- daytona_api_client_async/models/organization_role.py +122 -0
- daytona_api_client_async/models/organization_sandbox_default_limited_network_egress.py +101 -0
- daytona_api_client_async/models/organization_sandbox_default_network_block_all.py +101 -0
- daytona_api_client_async/models/organization_suspension.py +106 -0
- daytona_api_client_async/models/organization_usage_overview.py +117 -0
- daytona_api_client_async/models/organization_user.py +131 -0
- daytona_api_client_async/models/paginated_audit_logs.py +117 -0
- daytona_api_client_async/models/paginated_sandboxes.py +115 -0
- daytona_api_client_async/models/paginated_snapshots.py +115 -0
- daytona_api_client_async/models/paginated_snapshots_dto.py +115 -0
- daytona_api_client_async/models/paginated_workspaces.py +115 -0
- daytona_api_client_async/models/port_preview_url.py +105 -0
- daytona_api_client_async/models/position.py +103 -0
- daytona_api_client_async/models/posthog_config.py +103 -0
- daytona_api_client_async/models/process_errors_response.py +103 -0
- daytona_api_client_async/models/process_logs_response.py +103 -0
- daytona_api_client_async/models/process_restart_response.py +103 -0
- daytona_api_client_async/models/process_status_response.py +103 -0
- daytona_api_client_async/models/project_dir_response.py +101 -0
- daytona_api_client_async/models/pty_create_request.py +111 -0
- daytona_api_client_async/models/pty_create_response.py +101 -0
- daytona_api_client_async/models/pty_list_response.py +109 -0
- daytona_api_client_async/models/pty_resize_request.py +103 -0
- daytona_api_client_async/models/pty_session_info.py +115 -0
- daytona_api_client_async/models/range.py +110 -0
- daytona_api_client_async/models/rate_limit_config.py +120 -0
- daytona_api_client_async/models/rate_limit_entry.py +103 -0
- daytona_api_client_async/models/region.py +114 -0
- daytona_api_client_async/models/region_quota.py +109 -0
- daytona_api_client_async/models/region_screenshot_response.py +105 -0
- daytona_api_client_async/models/region_usage_overview.py +113 -0
- daytona_api_client_async/models/registry_push_access_dto.py +111 -0
- daytona_api_client_async/models/replace_request.py +105 -0
- daytona_api_client_async/models/replace_result.py +105 -0
- daytona_api_client_async/models/runner.py +153 -0
- daytona_api_client_async/models/runner_region.py +39 -0
- daytona_api_client_async/models/runner_snapshot_dto.py +105 -0
- daytona_api_client_async/models/runner_state.py +41 -0
- daytona_api_client_async/models/sandbox.py +193 -0
- daytona_api_client_async/models/sandbox_class.py +39 -0
- daytona_api_client_async/models/sandbox_created_post_request.py +110 -0
- daytona_api_client_async/models/sandbox_created_post_request_data.py +152 -0
- daytona_api_client_async/models/sandbox_desired_state.py +41 -0
- daytona_api_client_async/models/sandbox_info.py +105 -0
- daytona_api_client_async/models/sandbox_labels.py +101 -0
- daytona_api_client_async/models/sandbox_state.py +52 -0
- daytona_api_client_async/models/sandbox_state_updated_post_request.py +110 -0
- daytona_api_client_async/models/sandbox_state_updated_post_request_data.py +129 -0
- daytona_api_client_async/models/sandbox_state_updated_post_request_data_sandbox.py +115 -0
- daytona_api_client_async/models/sandbox_volume.py +105 -0
- daytona_api_client_async/models/screenshot_response.py +105 -0
- daytona_api_client_async/models/search_files_response.py +101 -0
- daytona_api_client_async/models/send_webhook_dto.py +105 -0
- daytona_api_client_async/models/session.py +116 -0
- daytona_api_client_async/models/session_command_logs_response.py +103 -0
- daytona_api_client_async/models/session_execute_request.py +105 -0
- daytona_api_client_async/models/session_execute_response.py +105 -0
- daytona_api_client_async/models/set_snapshot_general_status_dto.py +101 -0
- daytona_api_client_async/models/snapshot_created_post_request.py +110 -0
- daytona_api_client_async/models/snapshot_created_post_request_data.py +136 -0
- daytona_api_client_async/models/snapshot_dto.py +159 -0
- daytona_api_client_async/models/snapshot_removed_post_request.py +106 -0
- daytona_api_client_async/models/snapshot_state.py +44 -0
- daytona_api_client_async/models/snapshot_state_updated_post_request.py +110 -0
- daytona_api_client_async/models/snapshot_state_updated_post_request_data.py +129 -0
- daytona_api_client_async/models/snapshot_state_updated_post_request_data_snapshot.py +115 -0
- daytona_api_client_async/models/ssh_access_dto.py +112 -0
- daytona_api_client_async/models/ssh_access_validation_dto.py +103 -0
- daytona_api_client_async/models/storage_access_dto.py +111 -0
- daytona_api_client_async/models/update_assigned_organization_roles.py +101 -0
- daytona_api_client_async/models/update_docker_registry.py +109 -0
- daytona_api_client_async/models/update_organization_default_region.py +101 -0
- daytona_api_client_async/models/update_organization_invitation.py +113 -0
- daytona_api_client_async/models/update_organization_member_access.py +110 -0
- daytona_api_client_async/models/update_organization_member_role.py +108 -0
- daytona_api_client_async/models/update_organization_quota.py +162 -0
- daytona_api_client_async/models/update_organization_region_quota.py +120 -0
- daytona_api_client_async/models/update_organization_role.py +113 -0
- daytona_api_client_async/models/update_sandbox_state_dto.py +110 -0
- daytona_api_client_async/models/user.py +118 -0
- daytona_api_client_async/models/user_home_dir_response.py +101 -0
- daytona_api_client_async/models/user_public_key.py +103 -0
- daytona_api_client_async/models/volume_created_post_request.py +110 -0
- daytona_api_client_async/models/volume_created_post_request_data.py +126 -0
- daytona_api_client_async/models/volume_dto.py +126 -0
- daytona_api_client_async/models/volume_state.py +43 -0
- daytona_api_client_async/models/volume_state_updated_post_request.py +110 -0
- daytona_api_client_async/models/volume_state_updated_post_request_data.py +129 -0
- daytona_api_client_async/models/volume_state_updated_post_request_data_volume.py +115 -0
- daytona_api_client_async/models/webhook_app_portal_access.py +101 -0
- daytona_api_client_async/models/webhook_controller_get_app_portal_access200_response.py +101 -0
- daytona_api_client_async/models/webhook_controller_get_initialization_status200_response.py +118 -0
- daytona_api_client_async/models/webhook_controller_get_status200_response.py +101 -0
- daytona_api_client_async/models/webhook_initialization_status.py +121 -0
- daytona_api_client_async/models/windows_response.py +103 -0
- daytona_api_client_async/models/work_dir_response.py +101 -0
- daytona_api_client_async/models/workdir_response.py +101 -0
- daytona_api_client_async/models/workspace.py +215 -0
- daytona_api_client_async/models/workspace_port_preview_url.py +103 -0
- daytona_api_client_async/py.typed +0 -0
- daytona_api_client_async/rest.py +214 -0
- daytona_api_client_async-0.0.0.dev0.dist-info/METADATA +27 -0
- daytona_api_client_async-0.0.0.dev0.dist-info/RECORD +209 -0
- daytona_api_client_async-0.0.0.dev0.dist-info/WHEEL +5 -0
- daytona_api_client_async-0.0.0.dev0.dist-info/licenses/LICENSE +190 -0
- daytona_api_client_async-0.0.0.dev0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Daytona
|
|
5
|
+
|
|
6
|
+
Daytona AI platform API Docs
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0
|
|
9
|
+
Contact: support@daytona.com
|
|
10
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
11
|
+
|
|
12
|
+
Do not edit the class manually.
|
|
13
|
+
""" # noqa: E501
|
|
14
|
+
|
|
15
|
+
from typing import Any, Optional
|
|
16
|
+
from typing_extensions import Self
|
|
17
|
+
|
|
18
|
+
class OpenApiException(Exception):
|
|
19
|
+
"""The base exception class for all OpenAPIExceptions"""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class ApiTypeError(OpenApiException, TypeError):
|
|
23
|
+
def __init__(self, msg, path_to_item=None, valid_classes=None,
|
|
24
|
+
key_type=None) -> None:
|
|
25
|
+
""" Raises an exception for TypeErrors
|
|
26
|
+
|
|
27
|
+
Args:
|
|
28
|
+
msg (str): the exception message
|
|
29
|
+
|
|
30
|
+
Keyword Args:
|
|
31
|
+
path_to_item (list): a list of keys an indices to get to the
|
|
32
|
+
current_item
|
|
33
|
+
None if unset
|
|
34
|
+
valid_classes (tuple): the primitive classes that current item
|
|
35
|
+
should be an instance of
|
|
36
|
+
None if unset
|
|
37
|
+
key_type (bool): False if our value is a value in a dict
|
|
38
|
+
True if it is a key in a dict
|
|
39
|
+
False if our item is an item in a list
|
|
40
|
+
None if unset
|
|
41
|
+
"""
|
|
42
|
+
self.path_to_item = path_to_item
|
|
43
|
+
self.valid_classes = valid_classes
|
|
44
|
+
self.key_type = key_type
|
|
45
|
+
full_msg = msg
|
|
46
|
+
if path_to_item:
|
|
47
|
+
full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
|
|
48
|
+
super(ApiTypeError, self).__init__(full_msg)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class ApiValueError(OpenApiException, ValueError):
|
|
52
|
+
def __init__(self, msg, path_to_item=None) -> None:
|
|
53
|
+
"""
|
|
54
|
+
Args:
|
|
55
|
+
msg (str): the exception message
|
|
56
|
+
|
|
57
|
+
Keyword Args:
|
|
58
|
+
path_to_item (list) the path to the exception in the
|
|
59
|
+
received_data dict. None if unset
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
self.path_to_item = path_to_item
|
|
63
|
+
full_msg = msg
|
|
64
|
+
if path_to_item:
|
|
65
|
+
full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
|
|
66
|
+
super(ApiValueError, self).__init__(full_msg)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class ApiAttributeError(OpenApiException, AttributeError):
|
|
70
|
+
def __init__(self, msg, path_to_item=None) -> None:
|
|
71
|
+
"""
|
|
72
|
+
Raised when an attribute reference or assignment fails.
|
|
73
|
+
|
|
74
|
+
Args:
|
|
75
|
+
msg (str): the exception message
|
|
76
|
+
|
|
77
|
+
Keyword Args:
|
|
78
|
+
path_to_item (None/list) the path to the exception in the
|
|
79
|
+
received_data dict
|
|
80
|
+
"""
|
|
81
|
+
self.path_to_item = path_to_item
|
|
82
|
+
full_msg = msg
|
|
83
|
+
if path_to_item:
|
|
84
|
+
full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
|
|
85
|
+
super(ApiAttributeError, self).__init__(full_msg)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
class ApiKeyError(OpenApiException, KeyError):
|
|
89
|
+
def __init__(self, msg, path_to_item=None) -> None:
|
|
90
|
+
"""
|
|
91
|
+
Args:
|
|
92
|
+
msg (str): the exception message
|
|
93
|
+
|
|
94
|
+
Keyword Args:
|
|
95
|
+
path_to_item (None/list) the path to the exception in the
|
|
96
|
+
received_data dict
|
|
97
|
+
"""
|
|
98
|
+
self.path_to_item = path_to_item
|
|
99
|
+
full_msg = msg
|
|
100
|
+
if path_to_item:
|
|
101
|
+
full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
|
|
102
|
+
super(ApiKeyError, self).__init__(full_msg)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
class ApiException(OpenApiException):
|
|
106
|
+
|
|
107
|
+
def __init__(
|
|
108
|
+
self,
|
|
109
|
+
status=None,
|
|
110
|
+
reason=None,
|
|
111
|
+
http_resp=None,
|
|
112
|
+
*,
|
|
113
|
+
body: Optional[str] = None,
|
|
114
|
+
data: Optional[Any] = None,
|
|
115
|
+
) -> None:
|
|
116
|
+
self.status = status
|
|
117
|
+
self.reason = reason
|
|
118
|
+
self.body = body
|
|
119
|
+
self.data = data
|
|
120
|
+
self.headers = None
|
|
121
|
+
|
|
122
|
+
if http_resp:
|
|
123
|
+
if self.status is None:
|
|
124
|
+
self.status = http_resp.status
|
|
125
|
+
if self.reason is None:
|
|
126
|
+
self.reason = http_resp.reason
|
|
127
|
+
if self.body is None:
|
|
128
|
+
try:
|
|
129
|
+
self.body = http_resp.data.decode('utf-8')
|
|
130
|
+
except Exception:
|
|
131
|
+
pass
|
|
132
|
+
self.headers = http_resp.getheaders()
|
|
133
|
+
|
|
134
|
+
@classmethod
|
|
135
|
+
def from_response(
|
|
136
|
+
cls,
|
|
137
|
+
*,
|
|
138
|
+
http_resp,
|
|
139
|
+
body: Optional[str],
|
|
140
|
+
data: Optional[Any],
|
|
141
|
+
) -> Self:
|
|
142
|
+
if http_resp.status == 400:
|
|
143
|
+
raise BadRequestException(http_resp=http_resp, body=body, data=data)
|
|
144
|
+
|
|
145
|
+
if http_resp.status == 401:
|
|
146
|
+
raise UnauthorizedException(http_resp=http_resp, body=body, data=data)
|
|
147
|
+
|
|
148
|
+
if http_resp.status == 403:
|
|
149
|
+
raise ForbiddenException(http_resp=http_resp, body=body, data=data)
|
|
150
|
+
|
|
151
|
+
if http_resp.status == 404:
|
|
152
|
+
raise NotFoundException(http_resp=http_resp, body=body, data=data)
|
|
153
|
+
|
|
154
|
+
# Added new conditions for 409 and 422
|
|
155
|
+
if http_resp.status == 409:
|
|
156
|
+
raise ConflictException(http_resp=http_resp, body=body, data=data)
|
|
157
|
+
|
|
158
|
+
if http_resp.status == 422:
|
|
159
|
+
raise UnprocessableEntityException(http_resp=http_resp, body=body, data=data)
|
|
160
|
+
|
|
161
|
+
if 500 <= http_resp.status <= 599:
|
|
162
|
+
raise ServiceException(http_resp=http_resp, body=body, data=data)
|
|
163
|
+
raise ApiException(http_resp=http_resp, body=body, data=data)
|
|
164
|
+
|
|
165
|
+
def __str__(self):
|
|
166
|
+
"""Custom error messages for exception"""
|
|
167
|
+
error_message = "({0})\n"\
|
|
168
|
+
"Reason: {1}\n".format(self.status, self.reason)
|
|
169
|
+
if self.headers:
|
|
170
|
+
error_message += "HTTP response headers: {0}\n".format(
|
|
171
|
+
self.headers)
|
|
172
|
+
|
|
173
|
+
if self.data or self.body:
|
|
174
|
+
error_message += "HTTP response body: {0}\n".format(self.data or self.body)
|
|
175
|
+
|
|
176
|
+
return error_message
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
class BadRequestException(ApiException):
|
|
180
|
+
pass
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
class NotFoundException(ApiException):
|
|
184
|
+
pass
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
class UnauthorizedException(ApiException):
|
|
188
|
+
pass
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
class ForbiddenException(ApiException):
|
|
192
|
+
pass
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
class ServiceException(ApiException):
|
|
196
|
+
pass
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
class ConflictException(ApiException):
|
|
200
|
+
"""Exception for HTTP 409 Conflict."""
|
|
201
|
+
pass
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
class UnprocessableEntityException(ApiException):
|
|
205
|
+
"""Exception for HTTP 422 Unprocessable Entity."""
|
|
206
|
+
pass
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
def render_path(path_to_item):
|
|
210
|
+
"""Returns a string representation of a path"""
|
|
211
|
+
result = ""
|
|
212
|
+
for pth in path_to_item:
|
|
213
|
+
if isinstance(pth, int):
|
|
214
|
+
result += "[{0}]".format(pth)
|
|
215
|
+
else:
|
|
216
|
+
result += "['{0}']".format(pth)
|
|
217
|
+
return result
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
# flake8: noqa
|
|
4
|
+
"""
|
|
5
|
+
Daytona
|
|
6
|
+
|
|
7
|
+
Daytona AI platform API Docs
|
|
8
|
+
|
|
9
|
+
The version of the OpenAPI document: 1.0
|
|
10
|
+
Contact: support@daytona.com
|
|
11
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
12
|
+
|
|
13
|
+
Do not edit the class manually.
|
|
14
|
+
""" # noqa: E501
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# import models into model package
|
|
18
|
+
from daytona_api_client_async.models.account_provider import AccountProvider
|
|
19
|
+
from daytona_api_client_async.models.announcement import Announcement
|
|
20
|
+
from daytona_api_client_async.models.api_key_list import ApiKeyList
|
|
21
|
+
from daytona_api_client_async.models.api_key_response import ApiKeyResponse
|
|
22
|
+
from daytona_api_client_async.models.audit_log import AuditLog
|
|
23
|
+
from daytona_api_client_async.models.build_info import BuildInfo
|
|
24
|
+
from daytona_api_client_async.models.command import Command
|
|
25
|
+
from daytona_api_client_async.models.completion_context import CompletionContext
|
|
26
|
+
from daytona_api_client_async.models.completion_item import CompletionItem
|
|
27
|
+
from daytona_api_client_async.models.completion_list import CompletionList
|
|
28
|
+
from daytona_api_client_async.models.compressed_screenshot_response import CompressedScreenshotResponse
|
|
29
|
+
from daytona_api_client_async.models.computer_use_start_response import ComputerUseStartResponse
|
|
30
|
+
from daytona_api_client_async.models.computer_use_status_response import ComputerUseStatusResponse
|
|
31
|
+
from daytona_api_client_async.models.computer_use_stop_response import ComputerUseStopResponse
|
|
32
|
+
from daytona_api_client_async.models.create_api_key import CreateApiKey
|
|
33
|
+
from daytona_api_client_async.models.create_build_info import CreateBuildInfo
|
|
34
|
+
from daytona_api_client_async.models.create_docker_registry import CreateDockerRegistry
|
|
35
|
+
from daytona_api_client_async.models.create_linked_account import CreateLinkedAccount
|
|
36
|
+
from daytona_api_client_async.models.create_organization import CreateOrganization
|
|
37
|
+
from daytona_api_client_async.models.create_organization_invitation import CreateOrganizationInvitation
|
|
38
|
+
from daytona_api_client_async.models.create_organization_quota import CreateOrganizationQuota
|
|
39
|
+
from daytona_api_client_async.models.create_organization_role import CreateOrganizationRole
|
|
40
|
+
from daytona_api_client_async.models.create_runner import CreateRunner
|
|
41
|
+
from daytona_api_client_async.models.create_sandbox import CreateSandbox
|
|
42
|
+
from daytona_api_client_async.models.create_session_request import CreateSessionRequest
|
|
43
|
+
from daytona_api_client_async.models.create_snapshot import CreateSnapshot
|
|
44
|
+
from daytona_api_client_async.models.create_user import CreateUser
|
|
45
|
+
from daytona_api_client_async.models.create_volume import CreateVolume
|
|
46
|
+
from daytona_api_client_async.models.create_workspace import CreateWorkspace
|
|
47
|
+
from daytona_api_client_async.models.daytona_configuration import DaytonaConfiguration
|
|
48
|
+
from daytona_api_client_async.models.display_info_response import DisplayInfoResponse
|
|
49
|
+
from daytona_api_client_async.models.docker_registry import DockerRegistry
|
|
50
|
+
from daytona_api_client_async.models.download_files import DownloadFiles
|
|
51
|
+
from daytona_api_client_async.models.execute_request import ExecuteRequest
|
|
52
|
+
from daytona_api_client_async.models.execute_response import ExecuteResponse
|
|
53
|
+
from daytona_api_client_async.models.file_info import FileInfo
|
|
54
|
+
from daytona_api_client_async.models.file_status import FileStatus
|
|
55
|
+
from daytona_api_client_async.models.git_add_request import GitAddRequest
|
|
56
|
+
from daytona_api_client_async.models.git_branch_request import GitBranchRequest
|
|
57
|
+
from daytona_api_client_async.models.git_checkout_request import GitCheckoutRequest
|
|
58
|
+
from daytona_api_client_async.models.git_clone_request import GitCloneRequest
|
|
59
|
+
from daytona_api_client_async.models.git_commit_info import GitCommitInfo
|
|
60
|
+
from daytona_api_client_async.models.git_commit_request import GitCommitRequest
|
|
61
|
+
from daytona_api_client_async.models.git_commit_response import GitCommitResponse
|
|
62
|
+
from daytona_api_client_async.models.git_delete_branch_request import GitDeleteBranchRequest
|
|
63
|
+
from daytona_api_client_async.models.git_repo_request import GitRepoRequest
|
|
64
|
+
from daytona_api_client_async.models.git_status import GitStatus
|
|
65
|
+
from daytona_api_client_async.models.health_controller_check200_response import HealthControllerCheck200Response
|
|
66
|
+
from daytona_api_client_async.models.health_controller_check200_response_info_value import HealthControllerCheck200ResponseInfoValue
|
|
67
|
+
from daytona_api_client_async.models.health_controller_check503_response import HealthControllerCheck503Response
|
|
68
|
+
from daytona_api_client_async.models.keyboard_hotkey_request import KeyboardHotkeyRequest
|
|
69
|
+
from daytona_api_client_async.models.keyboard_press_request import KeyboardPressRequest
|
|
70
|
+
from daytona_api_client_async.models.keyboard_type_request import KeyboardTypeRequest
|
|
71
|
+
from daytona_api_client_async.models.list_branch_response import ListBranchResponse
|
|
72
|
+
from daytona_api_client_async.models.lsp_completion_params import LspCompletionParams
|
|
73
|
+
from daytona_api_client_async.models.lsp_document_request import LspDocumentRequest
|
|
74
|
+
from daytona_api_client_async.models.lsp_location import LspLocation
|
|
75
|
+
from daytona_api_client_async.models.lsp_server_request import LspServerRequest
|
|
76
|
+
from daytona_api_client_async.models.lsp_symbol import LspSymbol
|
|
77
|
+
from daytona_api_client_async.models.match import Match
|
|
78
|
+
from daytona_api_client_async.models.mouse_click_request import MouseClickRequest
|
|
79
|
+
from daytona_api_client_async.models.mouse_click_response import MouseClickResponse
|
|
80
|
+
from daytona_api_client_async.models.mouse_drag_request import MouseDragRequest
|
|
81
|
+
from daytona_api_client_async.models.mouse_drag_response import MouseDragResponse
|
|
82
|
+
from daytona_api_client_async.models.mouse_move_request import MouseMoveRequest
|
|
83
|
+
from daytona_api_client_async.models.mouse_move_response import MouseMoveResponse
|
|
84
|
+
from daytona_api_client_async.models.mouse_position import MousePosition
|
|
85
|
+
from daytona_api_client_async.models.mouse_scroll_request import MouseScrollRequest
|
|
86
|
+
from daytona_api_client_async.models.mouse_scroll_response import MouseScrollResponse
|
|
87
|
+
from daytona_api_client_async.models.oidc_config import OidcConfig
|
|
88
|
+
from daytona_api_client_async.models.organization import Organization
|
|
89
|
+
from daytona_api_client_async.models.organization_invitation import OrganizationInvitation
|
|
90
|
+
from daytona_api_client_async.models.organization_role import OrganizationRole
|
|
91
|
+
from daytona_api_client_async.models.organization_sandbox_default_limited_network_egress import OrganizationSandboxDefaultLimitedNetworkEgress
|
|
92
|
+
from daytona_api_client_async.models.organization_suspension import OrganizationSuspension
|
|
93
|
+
from daytona_api_client_async.models.organization_usage_overview import OrganizationUsageOverview
|
|
94
|
+
from daytona_api_client_async.models.organization_user import OrganizationUser
|
|
95
|
+
from daytona_api_client_async.models.paginated_audit_logs import PaginatedAuditLogs
|
|
96
|
+
from daytona_api_client_async.models.paginated_sandboxes import PaginatedSandboxes
|
|
97
|
+
from daytona_api_client_async.models.paginated_snapshots import PaginatedSnapshots
|
|
98
|
+
from daytona_api_client_async.models.port_preview_url import PortPreviewUrl
|
|
99
|
+
from daytona_api_client_async.models.position import Position
|
|
100
|
+
from daytona_api_client_async.models.posthog_config import PosthogConfig
|
|
101
|
+
from daytona_api_client_async.models.process_errors_response import ProcessErrorsResponse
|
|
102
|
+
from daytona_api_client_async.models.process_logs_response import ProcessLogsResponse
|
|
103
|
+
from daytona_api_client_async.models.process_restart_response import ProcessRestartResponse
|
|
104
|
+
from daytona_api_client_async.models.process_status_response import ProcessStatusResponse
|
|
105
|
+
from daytona_api_client_async.models.project_dir_response import ProjectDirResponse
|
|
106
|
+
from daytona_api_client_async.models.pty_create_request import PtyCreateRequest
|
|
107
|
+
from daytona_api_client_async.models.pty_create_response import PtyCreateResponse
|
|
108
|
+
from daytona_api_client_async.models.pty_list_response import PtyListResponse
|
|
109
|
+
from daytona_api_client_async.models.pty_resize_request import PtyResizeRequest
|
|
110
|
+
from daytona_api_client_async.models.pty_session_info import PtySessionInfo
|
|
111
|
+
from daytona_api_client_async.models.range import Range
|
|
112
|
+
from daytona_api_client_async.models.rate_limit_config import RateLimitConfig
|
|
113
|
+
from daytona_api_client_async.models.rate_limit_entry import RateLimitEntry
|
|
114
|
+
from daytona_api_client_async.models.region import Region
|
|
115
|
+
from daytona_api_client_async.models.region_quota import RegionQuota
|
|
116
|
+
from daytona_api_client_async.models.region_screenshot_response import RegionScreenshotResponse
|
|
117
|
+
from daytona_api_client_async.models.region_usage_overview import RegionUsageOverview
|
|
118
|
+
from daytona_api_client_async.models.registry_push_access_dto import RegistryPushAccessDto
|
|
119
|
+
from daytona_api_client_async.models.replace_request import ReplaceRequest
|
|
120
|
+
from daytona_api_client_async.models.replace_result import ReplaceResult
|
|
121
|
+
from daytona_api_client_async.models.runner import Runner
|
|
122
|
+
from daytona_api_client_async.models.runner_snapshot_dto import RunnerSnapshotDto
|
|
123
|
+
from daytona_api_client_async.models.runner_state import RunnerState
|
|
124
|
+
from daytona_api_client_async.models.sandbox import Sandbox
|
|
125
|
+
from daytona_api_client_async.models.sandbox_class import SandboxClass
|
|
126
|
+
from daytona_api_client_async.models.sandbox_desired_state import SandboxDesiredState
|
|
127
|
+
from daytona_api_client_async.models.sandbox_info import SandboxInfo
|
|
128
|
+
from daytona_api_client_async.models.sandbox_labels import SandboxLabels
|
|
129
|
+
from daytona_api_client_async.models.sandbox_state import SandboxState
|
|
130
|
+
from daytona_api_client_async.models.sandbox_volume import SandboxVolume
|
|
131
|
+
from daytona_api_client_async.models.screenshot_response import ScreenshotResponse
|
|
132
|
+
from daytona_api_client_async.models.search_files_response import SearchFilesResponse
|
|
133
|
+
from daytona_api_client_async.models.send_webhook_dto import SendWebhookDto
|
|
134
|
+
from daytona_api_client_async.models.session import Session
|
|
135
|
+
from daytona_api_client_async.models.session_execute_request import SessionExecuteRequest
|
|
136
|
+
from daytona_api_client_async.models.session_execute_response import SessionExecuteResponse
|
|
137
|
+
from daytona_api_client_async.models.set_snapshot_general_status_dto import SetSnapshotGeneralStatusDto
|
|
138
|
+
from daytona_api_client_async.models.snapshot_dto import SnapshotDto
|
|
139
|
+
from daytona_api_client_async.models.snapshot_state import SnapshotState
|
|
140
|
+
from daytona_api_client_async.models.ssh_access_dto import SshAccessDto
|
|
141
|
+
from daytona_api_client_async.models.ssh_access_validation_dto import SshAccessValidationDto
|
|
142
|
+
from daytona_api_client_async.models.storage_access_dto import StorageAccessDto
|
|
143
|
+
from daytona_api_client_async.models.update_docker_registry import UpdateDockerRegistry
|
|
144
|
+
from daytona_api_client_async.models.update_organization_default_region import UpdateOrganizationDefaultRegion
|
|
145
|
+
from daytona_api_client_async.models.update_organization_invitation import UpdateOrganizationInvitation
|
|
146
|
+
from daytona_api_client_async.models.update_organization_member_access import UpdateOrganizationMemberAccess
|
|
147
|
+
from daytona_api_client_async.models.update_organization_quota import UpdateOrganizationQuota
|
|
148
|
+
from daytona_api_client_async.models.update_organization_region_quota import UpdateOrganizationRegionQuota
|
|
149
|
+
from daytona_api_client_async.models.update_organization_role import UpdateOrganizationRole
|
|
150
|
+
from daytona_api_client_async.models.update_sandbox_state_dto import UpdateSandboxStateDto
|
|
151
|
+
from daytona_api_client_async.models.user import User
|
|
152
|
+
from daytona_api_client_async.models.user_home_dir_response import UserHomeDirResponse
|
|
153
|
+
from daytona_api_client_async.models.user_public_key import UserPublicKey
|
|
154
|
+
from daytona_api_client_async.models.volume_dto import VolumeDto
|
|
155
|
+
from daytona_api_client_async.models.volume_state import VolumeState
|
|
156
|
+
from daytona_api_client_async.models.webhook_app_portal_access import WebhookAppPortalAccess
|
|
157
|
+
from daytona_api_client_async.models.webhook_controller_get_status200_response import WebhookControllerGetStatus200Response
|
|
158
|
+
from daytona_api_client_async.models.webhook_initialization_status import WebhookInitializationStatus
|
|
159
|
+
from daytona_api_client_async.models.windows_response import WindowsResponse
|
|
160
|
+
from daytona_api_client_async.models.work_dir_response import WorkDirResponse
|
|
161
|
+
from daytona_api_client_async.models.workspace import Workspace
|
|
162
|
+
from daytona_api_client_async.models.workspace_port_preview_url import WorkspacePortPreviewUrl
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Daytona
|
|
5
|
+
|
|
6
|
+
Daytona AI platform API Docs
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0
|
|
9
|
+
Contact: support@daytona.com
|
|
10
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
11
|
+
|
|
12
|
+
Do not edit the class manually.
|
|
13
|
+
""" # noqa: E501
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
import pprint
|
|
18
|
+
import re # noqa: F401
|
|
19
|
+
import json
|
|
20
|
+
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
22
|
+
from typing import Any, ClassVar, Dict, List
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
|
|
26
|
+
class AccountProvider(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
AccountProvider
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
name: StrictStr
|
|
31
|
+
display_name: StrictStr = Field(alias="displayName")
|
|
32
|
+
additional_properties: Dict[str, Any] = {}
|
|
33
|
+
__properties: ClassVar[List[str]] = ["name", "displayName"]
|
|
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 AccountProvider 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
|
+
* Fields in `self.additional_properties` are added to the output dict.
|
|
66
|
+
"""
|
|
67
|
+
excluded_fields: Set[str] = set([
|
|
68
|
+
"additional_properties",
|
|
69
|
+
])
|
|
70
|
+
|
|
71
|
+
_dict = self.model_dump(
|
|
72
|
+
by_alias=True,
|
|
73
|
+
exclude=excluded_fields,
|
|
74
|
+
exclude_none=True,
|
|
75
|
+
)
|
|
76
|
+
# puts key-value pairs in additional_properties in the top level
|
|
77
|
+
if self.additional_properties is not None:
|
|
78
|
+
for _key, _value in self.additional_properties.items():
|
|
79
|
+
_dict[_key] = _value
|
|
80
|
+
|
|
81
|
+
return _dict
|
|
82
|
+
|
|
83
|
+
@classmethod
|
|
84
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
85
|
+
"""Create an instance of AccountProvider from a dict"""
|
|
86
|
+
if obj is None:
|
|
87
|
+
return None
|
|
88
|
+
|
|
89
|
+
if not isinstance(obj, dict):
|
|
90
|
+
return cls.model_validate(obj)
|
|
91
|
+
|
|
92
|
+
_obj = cls.model_validate({
|
|
93
|
+
"name": obj.get("name"),
|
|
94
|
+
"displayName": obj.get("displayName")
|
|
95
|
+
})
|
|
96
|
+
# store additional fields in additional_properties
|
|
97
|
+
for _key in obj.keys():
|
|
98
|
+
if _key not in cls.__properties:
|
|
99
|
+
_obj.additional_properties[_key] = obj.get(_key)
|
|
100
|
+
|
|
101
|
+
return _obj
|
|
102
|
+
|
|
103
|
+
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Daytona
|
|
5
|
+
|
|
6
|
+
Daytona AI platform API Docs
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0
|
|
9
|
+
Contact: support@daytona.com
|
|
10
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
11
|
+
|
|
12
|
+
Do not edit the class manually.
|
|
13
|
+
""" # noqa: E501
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
import pprint
|
|
18
|
+
import re # noqa: F401
|
|
19
|
+
import json
|
|
20
|
+
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
|
|
26
|
+
class Announcement(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
Announcement
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
text: StrictStr = Field(description="The announcement text")
|
|
31
|
+
learn_more_url: Optional[StrictStr] = Field(default=None, description="URL to learn more about the announcement", alias="learnMoreUrl")
|
|
32
|
+
additional_properties: Dict[str, Any] = {}
|
|
33
|
+
__properties: ClassVar[List[str]] = ["text", "learnMoreUrl"]
|
|
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 Announcement 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
|
+
* Fields in `self.additional_properties` are added to the output dict.
|
|
66
|
+
"""
|
|
67
|
+
excluded_fields: Set[str] = set([
|
|
68
|
+
"additional_properties",
|
|
69
|
+
])
|
|
70
|
+
|
|
71
|
+
_dict = self.model_dump(
|
|
72
|
+
by_alias=True,
|
|
73
|
+
exclude=excluded_fields,
|
|
74
|
+
exclude_none=True,
|
|
75
|
+
)
|
|
76
|
+
# puts key-value pairs in additional_properties in the top level
|
|
77
|
+
if self.additional_properties is not None:
|
|
78
|
+
for _key, _value in self.additional_properties.items():
|
|
79
|
+
_dict[_key] = _value
|
|
80
|
+
|
|
81
|
+
return _dict
|
|
82
|
+
|
|
83
|
+
@classmethod
|
|
84
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
85
|
+
"""Create an instance of Announcement from a dict"""
|
|
86
|
+
if obj is None:
|
|
87
|
+
return None
|
|
88
|
+
|
|
89
|
+
if not isinstance(obj, dict):
|
|
90
|
+
return cls.model_validate(obj)
|
|
91
|
+
|
|
92
|
+
_obj = cls.model_validate({
|
|
93
|
+
"text": obj.get("text"),
|
|
94
|
+
"learnMoreUrl": obj.get("learnMoreUrl")
|
|
95
|
+
})
|
|
96
|
+
# store additional fields in additional_properties
|
|
97
|
+
for _key in obj.keys():
|
|
98
|
+
if _key not in cls.__properties:
|
|
99
|
+
_obj.additional_properties[_key] = obj.get(_key)
|
|
100
|
+
|
|
101
|
+
return _obj
|
|
102
|
+
|
|
103
|
+
|