blaxel 0.2.33__py3-none-any.whl → 0.2.35__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.
- blaxel/__init__.py +2 -2
- blaxel/core/__init__.py +2 -1
- blaxel/core/client/api/agents/create_agent.py +64 -19
- blaxel/core/client/api/agents/delete_agent.py +44 -15
- blaxel/core/client/api/agents/get_agent.py +43 -14
- blaxel/core/client/api/agents/list_agents.py +40 -11
- blaxel/core/client/api/agents/update_agent.py +60 -19
- blaxel/core/client/api/compute/create_sandbox.py +60 -23
- blaxel/core/client/api/compute/delete_sandbox.py +40 -19
- blaxel/core/client/api/compute/get_sandbox.py +39 -18
- blaxel/core/client/api/compute/list_sandboxes.py +40 -19
- blaxel/core/client/api/compute/update_sandbox.py +56 -23
- blaxel/core/client/api/configurations/get_configuration.py +16 -4
- blaxel/core/client/api/customdomains/create_custom_domain.py +12 -0
- blaxel/core/client/api/customdomains/list_custom_domains.py +16 -4
- blaxel/core/client/api/default/get_template.py +8 -4
- blaxel/core/client/api/functions/create_function.py +62 -19
- blaxel/core/client/api/functions/delete_function.py +46 -15
- blaxel/core/client/api/functions/get_function.py +45 -14
- blaxel/core/client/api/functions/list_functions.py +44 -15
- blaxel/core/client/api/functions/update_function.py +62 -19
- blaxel/core/client/api/images/cleanup_images.py +12 -12
- blaxel/core/client/api/images/delete_image.py +12 -8
- blaxel/core/client/api/images/delete_image_tag.py +12 -8
- blaxel/core/client/api/images/get_image.py +12 -8
- blaxel/core/client/api/images/list_images.py +12 -8
- blaxel/core/client/api/integrations/create_integration_connection.py +56 -23
- blaxel/core/client/api/integrations/delete_integration_connection.py +48 -19
- blaxel/core/client/api/integrations/get_integration.py +12 -8
- blaxel/core/client/api/integrations/get_integration_connection.py +44 -19
- blaxel/core/client/api/integrations/get_integration_connection_model.py +2 -2
- blaxel/core/client/api/integrations/list_integration_connections.py +36 -19
- blaxel/core/client/api/integrations/update_integration_connection.py +52 -19
- blaxel/core/client/api/jobs/create_job.py +20 -12
- blaxel/core/client/api/jobs/create_job_execution.py +22 -16
- blaxel/core/client/api/jobs/delete_job.py +12 -8
- blaxel/core/client/api/jobs/delete_job_execution.py +12 -8
- blaxel/core/client/api/jobs/get_job.py +24 -20
- blaxel/core/client/api/jobs/get_job_execution.py +8 -4
- blaxel/core/client/api/jobs/list_job_executions.py +8 -4
- blaxel/core/client/api/jobs/list_jobs.py +12 -8
- blaxel/core/client/api/jobs/update_job.py +20 -12
- blaxel/core/client/api/locations/list_locations.py +12 -8
- blaxel/core/client/api/{default → mcphub}/list_mcp_hub_definitions.py +20 -4
- blaxel/core/client/api/models/create_model.py +52 -23
- blaxel/core/client/api/models/delete_model.py +40 -19
- blaxel/core/client/api/models/get_model.py +40 -19
- blaxel/core/client/api/models/list_models.py +40 -19
- blaxel/core/client/api/models/update_model.py +52 -23
- blaxel/core/client/api/policies/create_policy.py +12 -8
- blaxel/core/client/api/policies/delete_policy.py +12 -8
- blaxel/core/client/api/policies/get_policy.py +12 -8
- blaxel/core/client/api/policies/list_policies.py +12 -8
- blaxel/core/client/api/policies/update_policy.py +12 -8
- blaxel/core/client/api/public_ipslist/list_public_ips.py +37 -5
- blaxel/core/client/api/sandboxhub/__init__.py +0 -0
- blaxel/core/client/api/{default → sandboxhub}/list_sandbox_hub_definitions.py +20 -4
- blaxel/core/client/api/service_accounts/create_api_key_for_service_account.py +12 -8
- blaxel/core/client/api/service_accounts/create_workspace_service_account.py +12 -8
- blaxel/core/client/api/service_accounts/delete_api_key_for_service_account.py +6 -4
- blaxel/core/client/api/service_accounts/delete_workspace_service_account.py +12 -8
- blaxel/core/client/api/service_accounts/get_workspace_service_accounts.py +12 -8
- blaxel/core/client/api/service_accounts/list_api_keys_for_service_account.py +12 -8
- blaxel/core/client/api/service_accounts/update_workspace_service_account.py +8 -8
- blaxel/core/client/api/templates/list_templates.py +12 -8
- blaxel/core/client/api/volume_templates/create_volume_template.py +8 -4
- blaxel/core/client/api/volume_templates/list_volume_templates.py +8 -4
- blaxel/core/client/api/volumes/create_volume.py +56 -23
- blaxel/core/client/api/volumes/delete_volume.py +44 -19
- blaxel/core/client/api/volumes/get_volume.py +40 -19
- blaxel/core/client/api/volumes/list_volumes.py +40 -19
- blaxel/core/client/api/workspaces/create_workspace.py +54 -23
- blaxel/core/client/api/workspaces/delete_workspace.py +42 -19
- blaxel/core/client/api/workspaces/get_workspace.py +42 -19
- blaxel/core/client/api/workspaces/invite_workspace_user.py +8 -4
- blaxel/core/client/api/workspaces/list_workspace_users.py +12 -8
- blaxel/core/client/api/workspaces/list_workspaces.py +36 -19
- blaxel/core/client/api/workspaces/update_workspace.py +50 -19
- blaxel/core/client/models/__init__.py +76 -146
- blaxel/core/client/models/agent.py +43 -47
- blaxel/core/client/models/agent_runtime.py +139 -0
- blaxel/core/client/models/agent_runtime_generation.py +18 -0
- blaxel/core/client/models/agent_spec.py +33 -110
- blaxel/core/client/models/api_key.py +5 -4
- blaxel/core/client/models/core_event.py +5 -5
- blaxel/core/client/models/create_api_key_for_service_account_body.py +2 -1
- blaxel/core/client/models/create_job_execution_request.py +1 -1
- blaxel/core/client/models/create_job_execution_response.py +13 -9
- blaxel/core/client/models/custom_domain.py +19 -36
- blaxel/core/client/models/custom_domain_metadata.py +4 -3
- blaxel/core/client/models/custom_domain_spec.py +14 -5
- blaxel/core/client/models/custom_domain_spec_status.py +19 -0
- blaxel/core/client/models/entrypoint.py +39 -13
- blaxel/core/client/models/{workspace_labels.py → entrypoint_args_item.py} +6 -6
- blaxel/core/client/models/entrypoint_env.py +3 -3
- blaxel/core/client/models/{job_metrics_executions_total.py → entrypoint_super_gateway_args_item.py} +6 -6
- blaxel/core/client/models/{spec_configuration.py → env.py} +17 -8
- blaxel/core/{sandbox/client/models/welcome_response.py → client/models/error.py} +26 -23
- blaxel/core/client/models/expiration_policy.py +30 -11
- blaxel/core/client/models/expiration_policy_action.py +17 -0
- blaxel/core/client/models/expiration_policy_type.py +19 -0
- blaxel/core/client/models/flavor.py +13 -5
- blaxel/core/client/models/flavor_type.py +18 -0
- blaxel/core/client/models/form.py +6 -6
- blaxel/core/client/models/function.py +43 -47
- blaxel/core/client/models/function_runtime.py +138 -0
- blaxel/core/client/models/function_runtime_generation.py +18 -0
- blaxel/core/client/models/function_spec.py +27 -73
- blaxel/core/client/models/function_spec_transport.py +18 -0
- blaxel/core/client/models/image.py +19 -36
- blaxel/core/client/models/integration_connection.py +25 -39
- blaxel/core/client/models/integration_connection_spec.py +8 -5
- blaxel/core/client/models/integration_connection_spec_config.py +1 -1
- blaxel/core/client/models/integration_connection_spec_secret.py +1 -1
- blaxel/core/client/models/integration_endpoint.py +41 -11
- blaxel/core/client/models/integration_endpoint_ignore_models_item.py +45 -0
- blaxel/core/client/models/{mcp_definition_entrypoint.py → integration_endpoint_models_item.py} +6 -6
- blaxel/core/client/models/job.py +43 -47
- blaxel/core/client/models/job_execution.py +30 -37
- blaxel/core/client/models/job_execution_metadata.py +3 -3
- blaxel/core/client/models/job_execution_spec.py +2 -2
- blaxel/core/client/models/job_execution_stats.py +5 -5
- blaxel/core/client/models/job_execution_status.py +24 -0
- blaxel/core/client/models/job_execution_task.py +12 -4
- blaxel/core/client/models/job_execution_task_metadata.py +1 -1
- blaxel/core/client/models/job_execution_task_spec.py +2 -2
- blaxel/core/client/models/job_execution_task_status.py +23 -0
- blaxel/core/client/models/job_runtime.py +172 -0
- blaxel/core/client/models/job_runtime_generation.py +18 -0
- blaxel/core/client/models/job_spec.py +20 -88
- blaxel/core/client/models/location_response.py +5 -5
- blaxel/core/client/models/mcp_definition.py +30 -17
- blaxel/core/client/models/{job_metrics_tasks_total.py → mcp_definition_categories_item.py} +6 -6
- blaxel/core/client/models/metadata.py +23 -17
- blaxel/core/client/models/metadata_labels.py +4 -1
- blaxel/core/client/models/model.py +43 -47
- blaxel/core/client/models/model_runtime.py +99 -0
- blaxel/core/client/models/model_runtime_type.py +34 -0
- blaxel/core/client/models/model_spec.py +12 -58
- blaxel/core/client/models/o_auth.py +23 -6
- blaxel/core/client/models/{form_oauth.py → o_auth_scope_item.py} +6 -6
- blaxel/core/client/models/pending_invitation_accept.py +2 -1
- blaxel/core/client/models/pending_invitation_workspace_details.py +27 -6
- blaxel/core/client/models/{metrics_request_total_per_code.py → pending_invitation_workspace_details_emails_item.py} +6 -6
- blaxel/core/client/models/policy.py +20 -36
- blaxel/core/client/models/policy_location.py +13 -5
- blaxel/core/client/models/policy_location_type.py +19 -0
- blaxel/core/client/models/policy_max_tokens.py +6 -6
- blaxel/core/client/models/policy_resource_type.py +20 -0
- blaxel/core/client/models/policy_spec.py +31 -10
- blaxel/core/client/models/policy_spec_type.py +19 -0
- blaxel/core/client/models/port.py +25 -15
- blaxel/core/client/models/port_protocol.py +19 -0
- blaxel/core/client/models/preview.py +19 -36
- blaxel/core/client/models/preview_metadata.py +12 -10
- blaxel/core/client/models/preview_token.py +19 -36
- blaxel/core/client/models/preview_token_metadata.py +8 -6
- blaxel/core/client/models/repository.py +2 -2
- blaxel/core/client/models/revision_configuration.py +3 -3
- blaxel/core/client/models/sandbox.py +45 -58
- blaxel/core/client/models/sandbox_definition.py +37 -22
- blaxel/core/client/models/sandbox_definition_categories_item.py +45 -0
- blaxel/core/client/models/sandbox_error.py +148 -0
- blaxel/core/client/models/sandbox_error_details.py +45 -0
- blaxel/core/client/models/sandbox_lifecycle.py +3 -2
- blaxel/core/client/models/sandbox_runtime.py +145 -0
- blaxel/core/client/models/sandbox_spec.py +33 -134
- blaxel/core/client/models/status.py +25 -0
- blaxel/core/client/models/template.py +8 -7
- blaxel/core/client/models/template_variable.py +5 -5
- blaxel/core/client/models/trigger.py +14 -6
- blaxel/core/client/models/trigger_configuration.py +7 -6
- blaxel/core/client/models/trigger_type.py +19 -0
- blaxel/core/client/models/volume.py +35 -47
- blaxel/core/client/models/volume_attachment.py +6 -4
- blaxel/core/client/models/volume_spec.py +7 -4
- blaxel/core/client/models/volume_state.py +3 -3
- blaxel/core/client/models/volume_template.py +19 -33
- blaxel/core/client/models/volume_template_state.py +12 -4
- blaxel/core/client/models/volume_template_state_status.py +19 -0
- blaxel/core/client/models/volume_template_version.py +12 -4
- blaxel/core/client/models/volume_template_version_status.py +19 -0
- blaxel/core/client/models/workspace.py +35 -25
- blaxel/core/client/models/workspace_runtime.py +3 -2
- blaxel/core/client/models/workspace_status.py +22 -0
- blaxel/core/common/__init__.py +1 -1
- blaxel/core/jobs/__init__.py +0 -1
- blaxel/core/sandbox/__init__.py +2 -0
- blaxel/core/sandbox/client/api/process/post_process.py +8 -4
- blaxel/core/sandbox/client/models/__init__.py +0 -2
- blaxel/core/sandbox/client/models/process_response.py +16 -0
- blaxel/core/sandbox/client/models/process_response_status.py +9 -0
- blaxel/core/sandbox/default/__init__.py +2 -0
- blaxel/core/sandbox/default/interpreter.py +5 -1
- blaxel/core/sandbox/default/preview.py +3 -1
- blaxel/core/sandbox/default/sandbox.py +85 -26
- blaxel/core/sandbox/sync/process.py +2 -1
- blaxel/core/sandbox/sync/sandbox.py +68 -23
- blaxel/core/sandbox/types.py +3 -0
- blaxel/core/tools/common.py +16 -2
- blaxel/core/volume/__init__.py +2 -2
- blaxel/core/volume/volume.py +227 -11
- blaxel/langgraph/tools.py +34 -2
- blaxel/openai/tools.py +33 -1
- {blaxel-0.2.33.dist-info → blaxel-0.2.35.dist-info}/METADATA +3 -3
- {blaxel-0.2.33.dist-info → blaxel-0.2.35.dist-info}/RECORD +209 -248
- blaxel/core/client/models/acl.py +0 -133
- blaxel/core/client/models/billable_time_metric.py +0 -89
- blaxel/core/client/models/core_spec.py +0 -194
- blaxel/core/client/models/core_spec_configurations.py +0 -77
- blaxel/core/client/models/histogram_bucket.py +0 -79
- blaxel/core/client/models/histogram_stats.py +0 -88
- blaxel/core/client/models/integration_model.py +0 -162
- blaxel/core/client/models/job_execution_config.py +0 -79
- blaxel/core/client/models/job_metrics.py +0 -262
- blaxel/core/client/models/jobs_chart_value.py +0 -70
- blaxel/core/client/models/jobs_network_chart.py +0 -102
- blaxel/core/client/models/jobs_success_failed_chart.py +0 -147
- blaxel/core/client/models/jobs_total.py +0 -88
- blaxel/core/client/models/last_n_requests_metric.py +0 -97
- blaxel/core/client/models/latency_metric.py +0 -148
- blaxel/core/client/models/logs_response.py +0 -63
- blaxel/core/client/models/logs_response_data.py +0 -99
- blaxel/core/client/models/mcp_definition_form.py +0 -45
- blaxel/core/client/models/memory_allocation_by_name.py +0 -70
- blaxel/core/client/models/memory_allocation_metric.py +0 -61
- blaxel/core/client/models/metric.py +0 -79
- blaxel/core/client/models/metrics.py +0 -273
- blaxel/core/client/models/metrics_models.py +0 -45
- blaxel/core/client/models/metrics_rps_per_code.py +0 -45
- blaxel/core/client/models/pod_template_spec.py +0 -45
- blaxel/core/client/models/request_duration_over_time_metric.py +0 -97
- blaxel/core/client/models/request_duration_over_time_metrics.py +0 -84
- blaxel/core/client/models/request_total_by_origin_metric.py +0 -129
- blaxel/core/client/models/request_total_by_origin_metric_request_total_by_origin.py +0 -45
- blaxel/core/client/models/request_total_by_origin_metric_request_total_by_origin_and_code.py +0 -45
- blaxel/core/client/models/request_total_metric.py +0 -155
- blaxel/core/client/models/request_total_metric_request_total_per_code.py +0 -45
- blaxel/core/client/models/request_total_metric_rps_per_code.py +0 -45
- blaxel/core/client/models/request_total_response_data.py +0 -97
- blaxel/core/client/models/resource.py +0 -99
- blaxel/core/client/models/resource_log.py +0 -88
- blaxel/core/client/models/resource_log_chart.py +0 -133
- blaxel/core/client/models/resource_log_response.py +0 -83
- blaxel/core/client/models/resource_metrics.py +0 -618
- blaxel/core/client/models/resource_metrics_request_total_per_code.py +0 -45
- blaxel/core/client/models/resource_metrics_request_total_per_code_previous.py +0 -45
- blaxel/core/client/models/resource_metrics_rps_per_code.py +0 -45
- blaxel/core/client/models/resource_metrics_rps_per_code_previous.py +0 -45
- blaxel/core/client/models/resource_trace.py +0 -97
- blaxel/core/client/models/runtime.py +0 -317
- blaxel/core/client/models/runtime_configuration.py +0 -45
- blaxel/core/client/models/runtime_startup_probe.py +0 -45
- blaxel/core/client/models/sandbox_metrics.py +0 -88
- blaxel/core/client/models/serverless_config.py +0 -117
- blaxel/core/client/models/serverless_config_configuration.py +0 -45
- blaxel/core/client/models/start_sandbox.py +0 -98
- blaxel/core/client/models/stop_sandbox.py +0 -98
- blaxel/core/client/models/store_agent.py +0 -181
- blaxel/core/client/models/store_agent_labels.py +0 -45
- blaxel/core/client/models/store_configuration.py +0 -156
- blaxel/core/client/models/store_configuration_option.py +0 -79
- blaxel/core/client/models/time_to_first_token_over_time_metrics.py +0 -87
- blaxel/core/client/models/token_rate_metric.py +0 -106
- blaxel/core/client/models/token_rate_metrics.py +0 -124
- blaxel/core/client/models/token_total_metric.py +0 -112
- blaxel/core/client/models/trace_ids_response.py +0 -45
- blaxel/core/client/models/websocket_channel.py +0 -97
- blaxel/core/client/models/websocket_message.py +0 -106
- blaxel/core/sandbox/client/api/root/delete.py +0 -130
- blaxel/core/sandbox/client/api/root/get.py +0 -130
- blaxel/core/sandbox/client/api/root/options.py +0 -130
- blaxel/core/sandbox/client/api/root/patch.py +0 -130
- blaxel/core/sandbox/client/api/root/post.py +0 -130
- blaxel/core/sandbox/client/api/root/put.py +0 -130
- /blaxel/core/{sandbox/client/api/root → client/api/mcphub}/__init__.py +0 -0
- {blaxel-0.2.33.dist-info → blaxel-0.2.35.dist-info}/WHEEL +0 -0
- {blaxel-0.2.33.dist-info → blaxel-0.2.35.dist-info}/licenses/LICENSE +0 -0
|
@@ -64,9 +64,10 @@ def sync_detailed(
|
|
|
64
64
|
client: Client,
|
|
65
65
|
body: CreateWorkspaceServiceAccountBody,
|
|
66
66
|
) -> Response[CreateWorkspaceServiceAccountResponse200]:
|
|
67
|
-
"""Create
|
|
67
|
+
"""Create service account
|
|
68
68
|
|
|
69
|
-
Creates a service account
|
|
69
|
+
Creates a new service account for machine-to-machine authentication. Returns client ID and secret
|
|
70
|
+
(secret is only shown once at creation). Use these credentials for OAuth client_credentials flow.
|
|
70
71
|
|
|
71
72
|
Args:
|
|
72
73
|
body (CreateWorkspaceServiceAccountBody):
|
|
@@ -95,9 +96,10 @@ def sync(
|
|
|
95
96
|
client: Client,
|
|
96
97
|
body: CreateWorkspaceServiceAccountBody,
|
|
97
98
|
) -> CreateWorkspaceServiceAccountResponse200 | None:
|
|
98
|
-
"""Create
|
|
99
|
+
"""Create service account
|
|
99
100
|
|
|
100
|
-
Creates a service account
|
|
101
|
+
Creates a new service account for machine-to-machine authentication. Returns client ID and secret
|
|
102
|
+
(secret is only shown once at creation). Use these credentials for OAuth client_credentials flow.
|
|
101
103
|
|
|
102
104
|
Args:
|
|
103
105
|
body (CreateWorkspaceServiceAccountBody):
|
|
@@ -121,9 +123,10 @@ async def asyncio_detailed(
|
|
|
121
123
|
client: Client,
|
|
122
124
|
body: CreateWorkspaceServiceAccountBody,
|
|
123
125
|
) -> Response[CreateWorkspaceServiceAccountResponse200]:
|
|
124
|
-
"""Create
|
|
126
|
+
"""Create service account
|
|
125
127
|
|
|
126
|
-
Creates a service account
|
|
128
|
+
Creates a new service account for machine-to-machine authentication. Returns client ID and secret
|
|
129
|
+
(secret is only shown once at creation). Use these credentials for OAuth client_credentials flow.
|
|
127
130
|
|
|
128
131
|
Args:
|
|
129
132
|
body (CreateWorkspaceServiceAccountBody):
|
|
@@ -150,9 +153,10 @@ async def asyncio(
|
|
|
150
153
|
client: Client,
|
|
151
154
|
body: CreateWorkspaceServiceAccountBody,
|
|
152
155
|
) -> CreateWorkspaceServiceAccountResponse200 | None:
|
|
153
|
-
"""Create
|
|
156
|
+
"""Create service account
|
|
154
157
|
|
|
155
|
-
Creates a service account
|
|
158
|
+
Creates a new service account for machine-to-machine authentication. Returns client ID and secret
|
|
159
|
+
(secret is only shown once at creation). Use these credentials for OAuth client_credentials flow.
|
|
156
160
|
|
|
157
161
|
Args:
|
|
158
162
|
body (CreateWorkspaceServiceAccountBody):
|
|
@@ -44,9 +44,10 @@ def sync_detailed(
|
|
|
44
44
|
*,
|
|
45
45
|
client: Client,
|
|
46
46
|
) -> Response[Any]:
|
|
47
|
-
"""
|
|
47
|
+
"""Revoke service account API key
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
Revokes an API key for a service account. The key becomes invalid immediately and any requests using
|
|
50
|
+
it will fail authentication.
|
|
50
51
|
|
|
51
52
|
Args:
|
|
52
53
|
client_id (str):
|
|
@@ -78,9 +79,10 @@ async def asyncio_detailed(
|
|
|
78
79
|
*,
|
|
79
80
|
client: Client,
|
|
80
81
|
) -> Response[Any]:
|
|
81
|
-
"""
|
|
82
|
+
"""Revoke service account API key
|
|
82
83
|
|
|
83
|
-
|
|
84
|
+
Revokes an API key for a service account. The key becomes invalid immediately and any requests using
|
|
85
|
+
it will fail authentication.
|
|
84
86
|
|
|
85
87
|
Args:
|
|
86
88
|
client_id (str):
|
|
@@ -51,9 +51,10 @@ def sync_detailed(
|
|
|
51
51
|
*,
|
|
52
52
|
client: Client,
|
|
53
53
|
) -> Response[DeleteWorkspaceServiceAccountResponse200]:
|
|
54
|
-
"""Delete
|
|
54
|
+
"""Delete service account
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
Permanently deletes a service account and invalidates all its credentials. Any systems using this
|
|
57
|
+
service account will lose access immediately.
|
|
57
58
|
|
|
58
59
|
Args:
|
|
59
60
|
client_id (str):
|
|
@@ -82,9 +83,10 @@ def sync(
|
|
|
82
83
|
*,
|
|
83
84
|
client: Client,
|
|
84
85
|
) -> DeleteWorkspaceServiceAccountResponse200 | None:
|
|
85
|
-
"""Delete
|
|
86
|
+
"""Delete service account
|
|
86
87
|
|
|
87
|
-
|
|
88
|
+
Permanently deletes a service account and invalidates all its credentials. Any systems using this
|
|
89
|
+
service account will lose access immediately.
|
|
88
90
|
|
|
89
91
|
Args:
|
|
90
92
|
client_id (str):
|
|
@@ -108,9 +110,10 @@ async def asyncio_detailed(
|
|
|
108
110
|
*,
|
|
109
111
|
client: Client,
|
|
110
112
|
) -> Response[DeleteWorkspaceServiceAccountResponse200]:
|
|
111
|
-
"""Delete
|
|
113
|
+
"""Delete service account
|
|
112
114
|
|
|
113
|
-
|
|
115
|
+
Permanently deletes a service account and invalidates all its credentials. Any systems using this
|
|
116
|
+
service account will lose access immediately.
|
|
114
117
|
|
|
115
118
|
Args:
|
|
116
119
|
client_id (str):
|
|
@@ -137,9 +140,10 @@ async def asyncio(
|
|
|
137
140
|
*,
|
|
138
141
|
client: Client,
|
|
139
142
|
) -> DeleteWorkspaceServiceAccountResponse200 | None:
|
|
140
|
-
"""Delete
|
|
143
|
+
"""Delete service account
|
|
141
144
|
|
|
142
|
-
|
|
145
|
+
Permanently deletes a service account and invalidates all its credentials. Any systems using this
|
|
146
|
+
service account will lose access immediately.
|
|
143
147
|
|
|
144
148
|
Args:
|
|
145
149
|
client_id (str):
|
|
@@ -55,9 +55,10 @@ def sync_detailed(
|
|
|
55
55
|
*,
|
|
56
56
|
client: Client,
|
|
57
57
|
) -> Response[list["GetWorkspaceServiceAccountsResponse200Item"]]:
|
|
58
|
-
"""
|
|
58
|
+
"""List service accounts
|
|
59
59
|
|
|
60
|
-
Returns
|
|
60
|
+
Returns all service accounts in the workspace. Service accounts are machine identities for external
|
|
61
|
+
systems to authenticate with Blaxel via OAuth or API keys.
|
|
61
62
|
|
|
62
63
|
Raises:
|
|
63
64
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
@@ -80,9 +81,10 @@ def sync(
|
|
|
80
81
|
*,
|
|
81
82
|
client: Client,
|
|
82
83
|
) -> list["GetWorkspaceServiceAccountsResponse200Item"] | None:
|
|
83
|
-
"""
|
|
84
|
+
"""List service accounts
|
|
84
85
|
|
|
85
|
-
Returns
|
|
86
|
+
Returns all service accounts in the workspace. Service accounts are machine identities for external
|
|
87
|
+
systems to authenticate with Blaxel via OAuth or API keys.
|
|
86
88
|
|
|
87
89
|
Raises:
|
|
88
90
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
@@ -101,9 +103,10 @@ async def asyncio_detailed(
|
|
|
101
103
|
*,
|
|
102
104
|
client: Client,
|
|
103
105
|
) -> Response[list["GetWorkspaceServiceAccountsResponse200Item"]]:
|
|
104
|
-
"""
|
|
106
|
+
"""List service accounts
|
|
105
107
|
|
|
106
|
-
Returns
|
|
108
|
+
Returns all service accounts in the workspace. Service accounts are machine identities for external
|
|
109
|
+
systems to authenticate with Blaxel via OAuth or API keys.
|
|
107
110
|
|
|
108
111
|
Raises:
|
|
109
112
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
@@ -124,9 +127,10 @@ async def asyncio(
|
|
|
124
127
|
*,
|
|
125
128
|
client: Client,
|
|
126
129
|
) -> list["GetWorkspaceServiceAccountsResponse200Item"] | None:
|
|
127
|
-
"""
|
|
130
|
+
"""List service accounts
|
|
128
131
|
|
|
129
|
-
Returns
|
|
132
|
+
Returns all service accounts in the workspace. Service accounts are machine identities for external
|
|
133
|
+
systems to authenticate with Blaxel via OAuth or API keys.
|
|
130
134
|
|
|
131
135
|
Raises:
|
|
132
136
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
@@ -50,9 +50,10 @@ def sync_detailed(
|
|
|
50
50
|
*,
|
|
51
51
|
client: Client,
|
|
52
52
|
) -> Response[list["ApiKey"]]:
|
|
53
|
-
"""List API keys
|
|
53
|
+
"""List service account API keys
|
|
54
54
|
|
|
55
|
-
Returns
|
|
55
|
+
Returns all long-lived API keys created for a service account. API keys provide an alternative to
|
|
56
|
+
OAuth for simpler authentication scenarios.
|
|
56
57
|
|
|
57
58
|
Args:
|
|
58
59
|
client_id (str):
|
|
@@ -81,9 +82,10 @@ def sync(
|
|
|
81
82
|
*,
|
|
82
83
|
client: Client,
|
|
83
84
|
) -> list["ApiKey"] | None:
|
|
84
|
-
"""List API keys
|
|
85
|
+
"""List service account API keys
|
|
85
86
|
|
|
86
|
-
Returns
|
|
87
|
+
Returns all long-lived API keys created for a service account. API keys provide an alternative to
|
|
88
|
+
OAuth for simpler authentication scenarios.
|
|
87
89
|
|
|
88
90
|
Args:
|
|
89
91
|
client_id (str):
|
|
@@ -107,9 +109,10 @@ async def asyncio_detailed(
|
|
|
107
109
|
*,
|
|
108
110
|
client: Client,
|
|
109
111
|
) -> Response[list["ApiKey"]]:
|
|
110
|
-
"""List API keys
|
|
112
|
+
"""List service account API keys
|
|
111
113
|
|
|
112
|
-
Returns
|
|
114
|
+
Returns all long-lived API keys created for a service account. API keys provide an alternative to
|
|
115
|
+
OAuth for simpler authentication scenarios.
|
|
113
116
|
|
|
114
117
|
Args:
|
|
115
118
|
client_id (str):
|
|
@@ -136,9 +139,10 @@ async def asyncio(
|
|
|
136
139
|
*,
|
|
137
140
|
client: Client,
|
|
138
141
|
) -> list["ApiKey"] | None:
|
|
139
|
-
"""List API keys
|
|
142
|
+
"""List service account API keys
|
|
140
143
|
|
|
141
|
-
Returns
|
|
144
|
+
Returns all long-lived API keys created for a service account. API keys provide an alternative to
|
|
145
|
+
OAuth for simpler authentication scenarios.
|
|
142
146
|
|
|
143
147
|
Args:
|
|
144
148
|
client_id (str):
|
|
@@ -66,9 +66,9 @@ def sync_detailed(
|
|
|
66
66
|
client: Client,
|
|
67
67
|
body: UpdateWorkspaceServiceAccountBody,
|
|
68
68
|
) -> Response[UpdateWorkspaceServiceAccountResponse200]:
|
|
69
|
-
"""Update
|
|
69
|
+
"""Update service account
|
|
70
70
|
|
|
71
|
-
Updates a service account.
|
|
71
|
+
Updates a service account's name or description. Credentials (client ID/secret) cannot be changed.
|
|
72
72
|
|
|
73
73
|
Args:
|
|
74
74
|
client_id (str):
|
|
@@ -100,9 +100,9 @@ def sync(
|
|
|
100
100
|
client: Client,
|
|
101
101
|
body: UpdateWorkspaceServiceAccountBody,
|
|
102
102
|
) -> UpdateWorkspaceServiceAccountResponse200 | None:
|
|
103
|
-
"""Update
|
|
103
|
+
"""Update service account
|
|
104
104
|
|
|
105
|
-
Updates a service account.
|
|
105
|
+
Updates a service account's name or description. Credentials (client ID/secret) cannot be changed.
|
|
106
106
|
|
|
107
107
|
Args:
|
|
108
108
|
client_id (str):
|
|
@@ -129,9 +129,9 @@ async def asyncio_detailed(
|
|
|
129
129
|
client: Client,
|
|
130
130
|
body: UpdateWorkspaceServiceAccountBody,
|
|
131
131
|
) -> Response[UpdateWorkspaceServiceAccountResponse200]:
|
|
132
|
-
"""Update
|
|
132
|
+
"""Update service account
|
|
133
133
|
|
|
134
|
-
Updates a service account.
|
|
134
|
+
Updates a service account's name or description. Credentials (client ID/secret) cannot be changed.
|
|
135
135
|
|
|
136
136
|
Args:
|
|
137
137
|
client_id (str):
|
|
@@ -161,9 +161,9 @@ async def asyncio(
|
|
|
161
161
|
client: Client,
|
|
162
162
|
body: UpdateWorkspaceServiceAccountBody,
|
|
163
163
|
) -> UpdateWorkspaceServiceAccountResponse200 | None:
|
|
164
|
-
"""Update
|
|
164
|
+
"""Update service account
|
|
165
165
|
|
|
166
|
-
Updates a service account.
|
|
166
|
+
Updates a service account's name or description. Credentials (client ID/secret) cannot be changed.
|
|
167
167
|
|
|
168
168
|
Args:
|
|
169
169
|
client_id (str):
|
|
@@ -47,9 +47,10 @@ def sync_detailed(
|
|
|
47
47
|
*,
|
|
48
48
|
client: Client,
|
|
49
49
|
) -> Response[list["Template"]]:
|
|
50
|
-
"""List templates
|
|
50
|
+
"""List deployment templates
|
|
51
51
|
|
|
52
|
-
Returns
|
|
52
|
+
Returns all deployment templates available for creating agents, functions, and other resources with
|
|
53
|
+
pre-configured settings and code.
|
|
53
54
|
|
|
54
55
|
Raises:
|
|
55
56
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
@@ -72,9 +73,10 @@ def sync(
|
|
|
72
73
|
*,
|
|
73
74
|
client: Client,
|
|
74
75
|
) -> list["Template"] | None:
|
|
75
|
-
"""List templates
|
|
76
|
+
"""List deployment templates
|
|
76
77
|
|
|
77
|
-
Returns
|
|
78
|
+
Returns all deployment templates available for creating agents, functions, and other resources with
|
|
79
|
+
pre-configured settings and code.
|
|
78
80
|
|
|
79
81
|
Raises:
|
|
80
82
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
@@ -93,9 +95,10 @@ async def asyncio_detailed(
|
|
|
93
95
|
*,
|
|
94
96
|
client: Client,
|
|
95
97
|
) -> Response[list["Template"]]:
|
|
96
|
-
"""List templates
|
|
98
|
+
"""List deployment templates
|
|
97
99
|
|
|
98
|
-
Returns
|
|
100
|
+
Returns all deployment templates available for creating agents, functions, and other resources with
|
|
101
|
+
pre-configured settings and code.
|
|
99
102
|
|
|
100
103
|
Raises:
|
|
101
104
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
@@ -116,9 +119,10 @@ async def asyncio(
|
|
|
116
119
|
*,
|
|
117
120
|
client: Client,
|
|
118
121
|
) -> list["Template"] | None:
|
|
119
|
-
"""List templates
|
|
122
|
+
"""List deployment templates
|
|
120
123
|
|
|
121
|
-
Returns
|
|
124
|
+
Returns all deployment templates available for creating agents, functions, and other resources with
|
|
125
|
+
pre-configured settings and code.
|
|
122
126
|
|
|
123
127
|
Raises:
|
|
124
128
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
@@ -72,7 +72,8 @@ def sync_detailed(
|
|
|
72
72
|
) -> Response[VolumeTemplate]:
|
|
73
73
|
"""Create volume template
|
|
74
74
|
|
|
75
|
-
Creates a volume template.
|
|
75
|
+
Creates a new volume template for initializing volumes with pre-configured filesystem contents.
|
|
76
|
+
Optionally returns a presigned URL for uploading the template archive.
|
|
76
77
|
|
|
77
78
|
Args:
|
|
78
79
|
upload (Union[Unset, bool]):
|
|
@@ -109,7 +110,8 @@ def sync(
|
|
|
109
110
|
) -> VolumeTemplate | None:
|
|
110
111
|
"""Create volume template
|
|
111
112
|
|
|
112
|
-
Creates a volume template.
|
|
113
|
+
Creates a new volume template for initializing volumes with pre-configured filesystem contents.
|
|
114
|
+
Optionally returns a presigned URL for uploading the template archive.
|
|
113
115
|
|
|
114
116
|
Args:
|
|
115
117
|
upload (Union[Unset, bool]):
|
|
@@ -141,7 +143,8 @@ async def asyncio_detailed(
|
|
|
141
143
|
) -> Response[VolumeTemplate]:
|
|
142
144
|
"""Create volume template
|
|
143
145
|
|
|
144
|
-
Creates a volume template.
|
|
146
|
+
Creates a new volume template for initializing volumes with pre-configured filesystem contents.
|
|
147
|
+
Optionally returns a presigned URL for uploading the template archive.
|
|
145
148
|
|
|
146
149
|
Args:
|
|
147
150
|
upload (Union[Unset, bool]):
|
|
@@ -176,7 +179,8 @@ async def asyncio(
|
|
|
176
179
|
) -> VolumeTemplate | None:
|
|
177
180
|
"""Create volume template
|
|
178
181
|
|
|
179
|
-
Creates a volume template.
|
|
182
|
+
Creates a new volume template for initializing volumes with pre-configured filesystem contents.
|
|
183
|
+
Optionally returns a presigned URL for uploading the template archive.
|
|
180
184
|
|
|
181
185
|
Args:
|
|
182
186
|
upload (Union[Unset, bool]):
|
|
@@ -51,7 +51,8 @@ def sync_detailed(
|
|
|
51
51
|
) -> Response[list["VolumeTemplate"]]:
|
|
52
52
|
"""List volume templates
|
|
53
53
|
|
|
54
|
-
Returns
|
|
54
|
+
Returns all volume templates in the workspace. Volume templates contain pre-configured filesystem
|
|
55
|
+
snapshots that can be used to initialize new volumes.
|
|
55
56
|
|
|
56
57
|
Raises:
|
|
57
58
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
@@ -76,7 +77,8 @@ def sync(
|
|
|
76
77
|
) -> list["VolumeTemplate"] | None:
|
|
77
78
|
"""List volume templates
|
|
78
79
|
|
|
79
|
-
Returns
|
|
80
|
+
Returns all volume templates in the workspace. Volume templates contain pre-configured filesystem
|
|
81
|
+
snapshots that can be used to initialize new volumes.
|
|
80
82
|
|
|
81
83
|
Raises:
|
|
82
84
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
@@ -97,7 +99,8 @@ async def asyncio_detailed(
|
|
|
97
99
|
) -> Response[list["VolumeTemplate"]]:
|
|
98
100
|
"""List volume templates
|
|
99
101
|
|
|
100
|
-
Returns
|
|
102
|
+
Returns all volume templates in the workspace. Volume templates contain pre-configured filesystem
|
|
103
|
+
snapshots that can be used to initialize new volumes.
|
|
101
104
|
|
|
102
105
|
Raises:
|
|
103
106
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
@@ -120,7 +123,8 @@ async def asyncio(
|
|
|
120
123
|
) -> list["VolumeTemplate"] | None:
|
|
121
124
|
"""List volume templates
|
|
122
125
|
|
|
123
|
-
Returns
|
|
126
|
+
Returns all volume templates in the workspace. Volume templates contain pre-configured filesystem
|
|
127
|
+
snapshots that can be used to initialize new volumes.
|
|
124
128
|
|
|
125
129
|
Raises:
|
|
126
130
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
from http import HTTPStatus
|
|
2
|
-
from typing import Any
|
|
2
|
+
from typing import Any, Union
|
|
3
3
|
|
|
4
4
|
import httpx
|
|
5
5
|
|
|
6
6
|
from ... import errors
|
|
7
7
|
from ...client import Client
|
|
8
|
+
from ...models.error import Error
|
|
8
9
|
from ...models.volume import Volume
|
|
9
10
|
from ...types import Response
|
|
10
11
|
|
|
@@ -32,18 +33,38 @@ def _get_kwargs(
|
|
|
32
33
|
return _kwargs
|
|
33
34
|
|
|
34
35
|
|
|
35
|
-
def _parse_response(*, client: Client, response: httpx.Response) -> Volume | None:
|
|
36
|
+
def _parse_response(*, client: Client, response: httpx.Response) -> Union[Error, Volume] | None:
|
|
36
37
|
if response.status_code == 200:
|
|
37
38
|
response_200 = Volume.from_dict(response.json())
|
|
38
39
|
|
|
39
40
|
return response_200
|
|
41
|
+
if response.status_code == 400:
|
|
42
|
+
response_400 = Error.from_dict(response.json())
|
|
43
|
+
|
|
44
|
+
return response_400
|
|
45
|
+
if response.status_code == 401:
|
|
46
|
+
response_401 = Error.from_dict(response.json())
|
|
47
|
+
|
|
48
|
+
return response_401
|
|
49
|
+
if response.status_code == 403:
|
|
50
|
+
response_403 = Error.from_dict(response.json())
|
|
51
|
+
|
|
52
|
+
return response_403
|
|
53
|
+
if response.status_code == 409:
|
|
54
|
+
response_409 = Error.from_dict(response.json())
|
|
55
|
+
|
|
56
|
+
return response_409
|
|
57
|
+
if response.status_code == 500:
|
|
58
|
+
response_500 = Error.from_dict(response.json())
|
|
59
|
+
|
|
60
|
+
return response_500
|
|
40
61
|
if client.raise_on_unexpected_status:
|
|
41
62
|
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
42
63
|
else:
|
|
43
64
|
return None
|
|
44
65
|
|
|
45
66
|
|
|
46
|
-
def _build_response(*, client: Client, response: httpx.Response) -> Response[Volume]:
|
|
67
|
+
def _build_response(*, client: Client, response: httpx.Response) -> Response[Union[Error, Volume]]:
|
|
47
68
|
return Response(
|
|
48
69
|
status_code=HTTPStatus(response.status_code),
|
|
49
70
|
content=response.content,
|
|
@@ -56,20 +77,23 @@ def sync_detailed(
|
|
|
56
77
|
*,
|
|
57
78
|
client: Client,
|
|
58
79
|
body: Volume,
|
|
59
|
-
) -> Response[Volume]:
|
|
60
|
-
"""Create volume
|
|
80
|
+
) -> Response[Union[Error, Volume]]:
|
|
81
|
+
"""Create persistent volume
|
|
61
82
|
|
|
62
|
-
Creates a volume.
|
|
83
|
+
Creates a new persistent storage volume that can be attached to sandboxes. Volumes must be created
|
|
84
|
+
in a specific region and can only attach to sandboxes in the same region.
|
|
63
85
|
|
|
64
86
|
Args:
|
|
65
|
-
body (Volume):
|
|
87
|
+
body (Volume): Persistent storage volume that can be attached to sandboxes for durable
|
|
88
|
+
file storage across sessions. Volumes survive sandbox deletion and can be reattached to
|
|
89
|
+
new sandboxes.
|
|
66
90
|
|
|
67
91
|
Raises:
|
|
68
92
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
69
93
|
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
70
94
|
|
|
71
95
|
Returns:
|
|
72
|
-
Response[Volume]
|
|
96
|
+
Response[Union[Error, Volume]]
|
|
73
97
|
"""
|
|
74
98
|
|
|
75
99
|
kwargs = _get_kwargs(
|
|
@@ -87,20 +111,23 @@ def sync(
|
|
|
87
111
|
*,
|
|
88
112
|
client: Client,
|
|
89
113
|
body: Volume,
|
|
90
|
-
) -> Volume | None:
|
|
91
|
-
"""Create volume
|
|
114
|
+
) -> Union[Error, Volume] | None:
|
|
115
|
+
"""Create persistent volume
|
|
92
116
|
|
|
93
|
-
Creates a volume.
|
|
117
|
+
Creates a new persistent storage volume that can be attached to sandboxes. Volumes must be created
|
|
118
|
+
in a specific region and can only attach to sandboxes in the same region.
|
|
94
119
|
|
|
95
120
|
Args:
|
|
96
|
-
body (Volume):
|
|
121
|
+
body (Volume): Persistent storage volume that can be attached to sandboxes for durable
|
|
122
|
+
file storage across sessions. Volumes survive sandbox deletion and can be reattached to
|
|
123
|
+
new sandboxes.
|
|
97
124
|
|
|
98
125
|
Raises:
|
|
99
126
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
100
127
|
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
101
128
|
|
|
102
129
|
Returns:
|
|
103
|
-
Volume
|
|
130
|
+
Union[Error, Volume]
|
|
104
131
|
"""
|
|
105
132
|
|
|
106
133
|
return sync_detailed(
|
|
@@ -113,20 +140,23 @@ async def asyncio_detailed(
|
|
|
113
140
|
*,
|
|
114
141
|
client: Client,
|
|
115
142
|
body: Volume,
|
|
116
|
-
) -> Response[Volume]:
|
|
117
|
-
"""Create volume
|
|
143
|
+
) -> Response[Union[Error, Volume]]:
|
|
144
|
+
"""Create persistent volume
|
|
118
145
|
|
|
119
|
-
Creates a volume.
|
|
146
|
+
Creates a new persistent storage volume that can be attached to sandboxes. Volumes must be created
|
|
147
|
+
in a specific region and can only attach to sandboxes in the same region.
|
|
120
148
|
|
|
121
149
|
Args:
|
|
122
|
-
body (Volume):
|
|
150
|
+
body (Volume): Persistent storage volume that can be attached to sandboxes for durable
|
|
151
|
+
file storage across sessions. Volumes survive sandbox deletion and can be reattached to
|
|
152
|
+
new sandboxes.
|
|
123
153
|
|
|
124
154
|
Raises:
|
|
125
155
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
126
156
|
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
127
157
|
|
|
128
158
|
Returns:
|
|
129
|
-
Response[Volume]
|
|
159
|
+
Response[Union[Error, Volume]]
|
|
130
160
|
"""
|
|
131
161
|
|
|
132
162
|
kwargs = _get_kwargs(
|
|
@@ -142,20 +172,23 @@ async def asyncio(
|
|
|
142
172
|
*,
|
|
143
173
|
client: Client,
|
|
144
174
|
body: Volume,
|
|
145
|
-
) -> Volume | None:
|
|
146
|
-
"""Create volume
|
|
175
|
+
) -> Union[Error, Volume] | None:
|
|
176
|
+
"""Create persistent volume
|
|
147
177
|
|
|
148
|
-
Creates a volume.
|
|
178
|
+
Creates a new persistent storage volume that can be attached to sandboxes. Volumes must be created
|
|
179
|
+
in a specific region and can only attach to sandboxes in the same region.
|
|
149
180
|
|
|
150
181
|
Args:
|
|
151
|
-
body (Volume):
|
|
182
|
+
body (Volume): Persistent storage volume that can be attached to sandboxes for durable
|
|
183
|
+
file storage across sessions. Volumes survive sandbox deletion and can be reattached to
|
|
184
|
+
new sandboxes.
|
|
152
185
|
|
|
153
186
|
Raises:
|
|
154
187
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
155
188
|
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
156
189
|
|
|
157
190
|
Returns:
|
|
158
|
-
Volume
|
|
191
|
+
Union[Error, Volume]
|
|
159
192
|
"""
|
|
160
193
|
|
|
161
194
|
return (
|