blaxel 0.2.34__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/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 +51 -16
- blaxel/core/sandbox/sync/process.py +2 -1
- blaxel/core/sandbox/sync/sandbox.py +34 -13
- blaxel/core/tools/common.py +16 -2
- blaxel/core/volume/__init__.py +2 -2
- blaxel/core/volume/volume.py +32 -10
- blaxel/langgraph/tools.py +34 -2
- blaxel/openai/tools.py +33 -1
- {blaxel-0.2.34.dist-info → blaxel-0.2.35.dist-info}/METADATA +3 -3
- {blaxel-0.2.34.dist-info → blaxel-0.2.35.dist-info}/RECORD +207 -246
- 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.34.dist-info → blaxel-0.2.35.dist-info}/WHEEL +0 -0
- {blaxel-0.2.34.dist-info → blaxel-0.2.35.dist-info}/licenses/LICENSE +0 -0
blaxel/core/client/models/acl.py
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
from typing import Any, TypeVar, Union
|
|
2
|
-
|
|
3
|
-
from attrs import define as _attrs_define
|
|
4
|
-
from attrs import field as _attrs_field
|
|
5
|
-
|
|
6
|
-
from ..types import UNSET, Unset
|
|
7
|
-
|
|
8
|
-
T = TypeVar("T", bound="ACL")
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
@_attrs_define
|
|
12
|
-
class ACL:
|
|
13
|
-
"""ACL
|
|
14
|
-
|
|
15
|
-
Attributes:
|
|
16
|
-
created_at (Union[Unset, str]): The date and time when the resource was created
|
|
17
|
-
updated_at (Union[Unset, str]): The date and time when the resource was updated
|
|
18
|
-
id (Union[Unset, str]): ACL id
|
|
19
|
-
resource_id (Union[Unset, str]): Resource ID
|
|
20
|
-
resource_type (Union[Unset, str]): Resource type
|
|
21
|
-
role (Union[Unset, str]): Role
|
|
22
|
-
subject_id (Union[Unset, str]): Subject ID
|
|
23
|
-
subject_type (Union[Unset, str]): Subject type
|
|
24
|
-
workspace (Union[Unset, str]): Workspace name
|
|
25
|
-
"""
|
|
26
|
-
|
|
27
|
-
created_at: Union[Unset, str] = UNSET
|
|
28
|
-
updated_at: Union[Unset, str] = UNSET
|
|
29
|
-
id: Union[Unset, str] = UNSET
|
|
30
|
-
resource_id: Union[Unset, str] = UNSET
|
|
31
|
-
resource_type: Union[Unset, str] = UNSET
|
|
32
|
-
role: Union[Unset, str] = UNSET
|
|
33
|
-
subject_id: Union[Unset, str] = UNSET
|
|
34
|
-
subject_type: Union[Unset, str] = UNSET
|
|
35
|
-
workspace: Union[Unset, str] = UNSET
|
|
36
|
-
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
37
|
-
|
|
38
|
-
def to_dict(self) -> dict[str, Any]:
|
|
39
|
-
created_at = self.created_at
|
|
40
|
-
|
|
41
|
-
updated_at = self.updated_at
|
|
42
|
-
|
|
43
|
-
id = self.id
|
|
44
|
-
|
|
45
|
-
resource_id = self.resource_id
|
|
46
|
-
|
|
47
|
-
resource_type = self.resource_type
|
|
48
|
-
|
|
49
|
-
role = self.role
|
|
50
|
-
|
|
51
|
-
subject_id = self.subject_id
|
|
52
|
-
|
|
53
|
-
subject_type = self.subject_type
|
|
54
|
-
|
|
55
|
-
workspace = self.workspace
|
|
56
|
-
|
|
57
|
-
field_dict: dict[str, Any] = {}
|
|
58
|
-
field_dict.update(self.additional_properties)
|
|
59
|
-
field_dict.update({})
|
|
60
|
-
if created_at is not UNSET:
|
|
61
|
-
field_dict["createdAt"] = created_at
|
|
62
|
-
if updated_at is not UNSET:
|
|
63
|
-
field_dict["updatedAt"] = updated_at
|
|
64
|
-
if id is not UNSET:
|
|
65
|
-
field_dict["id"] = id
|
|
66
|
-
if resource_id is not UNSET:
|
|
67
|
-
field_dict["resource_id"] = resource_id
|
|
68
|
-
if resource_type is not UNSET:
|
|
69
|
-
field_dict["resource_type"] = resource_type
|
|
70
|
-
if role is not UNSET:
|
|
71
|
-
field_dict["role"] = role
|
|
72
|
-
if subject_id is not UNSET:
|
|
73
|
-
field_dict["subject_id"] = subject_id
|
|
74
|
-
if subject_type is not UNSET:
|
|
75
|
-
field_dict["subject_type"] = subject_type
|
|
76
|
-
if workspace is not UNSET:
|
|
77
|
-
field_dict["workspace"] = workspace
|
|
78
|
-
|
|
79
|
-
return field_dict
|
|
80
|
-
|
|
81
|
-
@classmethod
|
|
82
|
-
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
|
|
83
|
-
if not src_dict:
|
|
84
|
-
return None
|
|
85
|
-
d = src_dict.copy()
|
|
86
|
-
created_at = d.pop("createdAt", d.pop("created_at", UNSET))
|
|
87
|
-
|
|
88
|
-
updated_at = d.pop("updatedAt", d.pop("updated_at", UNSET))
|
|
89
|
-
|
|
90
|
-
id = d.pop("id", UNSET)
|
|
91
|
-
|
|
92
|
-
resource_id = d.pop("resource_id", UNSET)
|
|
93
|
-
|
|
94
|
-
resource_type = d.pop("resource_type", UNSET)
|
|
95
|
-
|
|
96
|
-
role = d.pop("role", UNSET)
|
|
97
|
-
|
|
98
|
-
subject_id = d.pop("subject_id", UNSET)
|
|
99
|
-
|
|
100
|
-
subject_type = d.pop("subject_type", UNSET)
|
|
101
|
-
|
|
102
|
-
workspace = d.pop("workspace", UNSET)
|
|
103
|
-
|
|
104
|
-
acl = cls(
|
|
105
|
-
created_at=created_at,
|
|
106
|
-
updated_at=updated_at,
|
|
107
|
-
id=id,
|
|
108
|
-
resource_id=resource_id,
|
|
109
|
-
resource_type=resource_type,
|
|
110
|
-
role=role,
|
|
111
|
-
subject_id=subject_id,
|
|
112
|
-
subject_type=subject_type,
|
|
113
|
-
workspace=workspace,
|
|
114
|
-
)
|
|
115
|
-
|
|
116
|
-
acl.additional_properties = d
|
|
117
|
-
return acl
|
|
118
|
-
|
|
119
|
-
@property
|
|
120
|
-
def additional_keys(self) -> list[str]:
|
|
121
|
-
return list(self.additional_properties.keys())
|
|
122
|
-
|
|
123
|
-
def __getitem__(self, key: str) -> Any:
|
|
124
|
-
return self.additional_properties[key]
|
|
125
|
-
|
|
126
|
-
def __setitem__(self, key: str, value: Any) -> None:
|
|
127
|
-
self.additional_properties[key] = value
|
|
128
|
-
|
|
129
|
-
def __delitem__(self, key: str) -> None:
|
|
130
|
-
del self.additional_properties[key]
|
|
131
|
-
|
|
132
|
-
def __contains__(self, key: str) -> bool:
|
|
133
|
-
return key in self.additional_properties
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
from typing import TYPE_CHECKING, Any, TypeVar, Union
|
|
2
|
-
|
|
3
|
-
from attrs import define as _attrs_define
|
|
4
|
-
from attrs import field as _attrs_field
|
|
5
|
-
|
|
6
|
-
from ..types import UNSET, Unset
|
|
7
|
-
|
|
8
|
-
if TYPE_CHECKING:
|
|
9
|
-
from ..models.jobs_chart_value import JobsChartValue
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
T = TypeVar("T", bound="BillableTimeMetric")
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@_attrs_define
|
|
16
|
-
class BillableTimeMetric:
|
|
17
|
-
"""Billable time metric
|
|
18
|
-
|
|
19
|
-
Attributes:
|
|
20
|
-
billable_time (Union[Unset, list['JobsChartValue']]): Billable time
|
|
21
|
-
total_allocation (Union[Unset, float]): Total memory allocation in GB-seconds
|
|
22
|
-
"""
|
|
23
|
-
|
|
24
|
-
billable_time: Union[Unset, list["JobsChartValue"]] = UNSET
|
|
25
|
-
total_allocation: Union[Unset, float] = UNSET
|
|
26
|
-
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
27
|
-
|
|
28
|
-
def to_dict(self) -> dict[str, Any]:
|
|
29
|
-
billable_time: Union[Unset, list[dict[str, Any]]] = UNSET
|
|
30
|
-
if not isinstance(self.billable_time, Unset):
|
|
31
|
-
billable_time = []
|
|
32
|
-
for billable_time_item_data in self.billable_time:
|
|
33
|
-
if type(billable_time_item_data) is dict:
|
|
34
|
-
billable_time_item = billable_time_item_data
|
|
35
|
-
else:
|
|
36
|
-
billable_time_item = billable_time_item_data.to_dict()
|
|
37
|
-
billable_time.append(billable_time_item)
|
|
38
|
-
|
|
39
|
-
total_allocation = self.total_allocation
|
|
40
|
-
|
|
41
|
-
field_dict: dict[str, Any] = {}
|
|
42
|
-
field_dict.update(self.additional_properties)
|
|
43
|
-
field_dict.update({})
|
|
44
|
-
if billable_time is not UNSET:
|
|
45
|
-
field_dict["billableTime"] = billable_time
|
|
46
|
-
if total_allocation is not UNSET:
|
|
47
|
-
field_dict["totalAllocation"] = total_allocation
|
|
48
|
-
|
|
49
|
-
return field_dict
|
|
50
|
-
|
|
51
|
-
@classmethod
|
|
52
|
-
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
|
|
53
|
-
from ..models.jobs_chart_value import JobsChartValue
|
|
54
|
-
|
|
55
|
-
if not src_dict:
|
|
56
|
-
return None
|
|
57
|
-
d = src_dict.copy()
|
|
58
|
-
billable_time = []
|
|
59
|
-
_billable_time = d.pop("billableTime", d.pop("billable_time", UNSET))
|
|
60
|
-
for billable_time_item_data in _billable_time or []:
|
|
61
|
-
billable_time_item = JobsChartValue.from_dict(billable_time_item_data)
|
|
62
|
-
|
|
63
|
-
billable_time.append(billable_time_item)
|
|
64
|
-
|
|
65
|
-
total_allocation = d.pop("totalAllocation", d.pop("total_allocation", UNSET))
|
|
66
|
-
|
|
67
|
-
billable_time_metric = cls(
|
|
68
|
-
billable_time=billable_time,
|
|
69
|
-
total_allocation=total_allocation,
|
|
70
|
-
)
|
|
71
|
-
|
|
72
|
-
billable_time_metric.additional_properties = d
|
|
73
|
-
return billable_time_metric
|
|
74
|
-
|
|
75
|
-
@property
|
|
76
|
-
def additional_keys(self) -> list[str]:
|
|
77
|
-
return list(self.additional_properties.keys())
|
|
78
|
-
|
|
79
|
-
def __getitem__(self, key: str) -> Any:
|
|
80
|
-
return self.additional_properties[key]
|
|
81
|
-
|
|
82
|
-
def __setitem__(self, key: str, value: Any) -> None:
|
|
83
|
-
self.additional_properties[key] = value
|
|
84
|
-
|
|
85
|
-
def __delitem__(self, key: str) -> None:
|
|
86
|
-
del self.additional_properties[key]
|
|
87
|
-
|
|
88
|
-
def __contains__(self, key: str) -> bool:
|
|
89
|
-
return key in self.additional_properties
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
|
|
2
|
-
|
|
3
|
-
from attrs import define as _attrs_define
|
|
4
|
-
from attrs import field as _attrs_field
|
|
5
|
-
|
|
6
|
-
from ..types import UNSET, Unset
|
|
7
|
-
|
|
8
|
-
if TYPE_CHECKING:
|
|
9
|
-
from ..models.core_spec_configurations import CoreSpecConfigurations
|
|
10
|
-
from ..models.flavor import Flavor
|
|
11
|
-
from ..models.revision_configuration import RevisionConfiguration
|
|
12
|
-
from ..models.runtime import Runtime
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
T = TypeVar("T", bound="CoreSpec")
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
@_attrs_define
|
|
19
|
-
class CoreSpec:
|
|
20
|
-
"""Core specification
|
|
21
|
-
|
|
22
|
-
Attributes:
|
|
23
|
-
configurations (Union[Unset, CoreSpecConfigurations]): Optional configurations for the object
|
|
24
|
-
enabled (Union[Unset, bool]): Enable or disable the resource
|
|
25
|
-
flavors (Union[Unset, list['Flavor']]): Types of hardware available for deployments
|
|
26
|
-
integration_connections (Union[Unset, list[str]]):
|
|
27
|
-
policies (Union[Unset, list[str]]):
|
|
28
|
-
revision (Union[Unset, RevisionConfiguration]): Revision configuration
|
|
29
|
-
runtime (Union[Unset, Runtime]): Set of configurations for a deployment
|
|
30
|
-
sandbox (Union[Unset, bool]): Sandbox mode
|
|
31
|
-
"""
|
|
32
|
-
|
|
33
|
-
configurations: Union[Unset, "CoreSpecConfigurations"] = UNSET
|
|
34
|
-
enabled: Union[Unset, bool] = UNSET
|
|
35
|
-
flavors: Union[Unset, list["Flavor"]] = UNSET
|
|
36
|
-
integration_connections: Union[Unset, list[str]] = UNSET
|
|
37
|
-
policies: Union[Unset, list[str]] = UNSET
|
|
38
|
-
revision: Union[Unset, "RevisionConfiguration"] = UNSET
|
|
39
|
-
runtime: Union[Unset, "Runtime"] = UNSET
|
|
40
|
-
sandbox: Union[Unset, bool] = UNSET
|
|
41
|
-
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
42
|
-
|
|
43
|
-
def to_dict(self) -> dict[str, Any]:
|
|
44
|
-
configurations: Union[Unset, dict[str, Any]] = UNSET
|
|
45
|
-
if (
|
|
46
|
-
self.configurations
|
|
47
|
-
and not isinstance(self.configurations, Unset)
|
|
48
|
-
and not isinstance(self.configurations, dict)
|
|
49
|
-
):
|
|
50
|
-
configurations = self.configurations.to_dict()
|
|
51
|
-
elif self.configurations and isinstance(self.configurations, dict):
|
|
52
|
-
configurations = self.configurations
|
|
53
|
-
|
|
54
|
-
enabled = self.enabled
|
|
55
|
-
|
|
56
|
-
flavors: Union[Unset, list[dict[str, Any]]] = UNSET
|
|
57
|
-
if not isinstance(self.flavors, Unset):
|
|
58
|
-
flavors = []
|
|
59
|
-
for componentsschemas_flavors_item_data in self.flavors:
|
|
60
|
-
if type(componentsschemas_flavors_item_data) is dict:
|
|
61
|
-
componentsschemas_flavors_item = componentsschemas_flavors_item_data
|
|
62
|
-
else:
|
|
63
|
-
componentsschemas_flavors_item = componentsschemas_flavors_item_data.to_dict()
|
|
64
|
-
flavors.append(componentsschemas_flavors_item)
|
|
65
|
-
|
|
66
|
-
integration_connections: Union[Unset, list[str]] = UNSET
|
|
67
|
-
if not isinstance(self.integration_connections, Unset):
|
|
68
|
-
integration_connections = self.integration_connections
|
|
69
|
-
|
|
70
|
-
policies: Union[Unset, list[str]] = UNSET
|
|
71
|
-
if not isinstance(self.policies, Unset):
|
|
72
|
-
policies = self.policies
|
|
73
|
-
|
|
74
|
-
revision: Union[Unset, dict[str, Any]] = UNSET
|
|
75
|
-
if (
|
|
76
|
-
self.revision
|
|
77
|
-
and not isinstance(self.revision, Unset)
|
|
78
|
-
and not isinstance(self.revision, dict)
|
|
79
|
-
):
|
|
80
|
-
revision = self.revision.to_dict()
|
|
81
|
-
elif self.revision and isinstance(self.revision, dict):
|
|
82
|
-
revision = self.revision
|
|
83
|
-
|
|
84
|
-
runtime: Union[Unset, dict[str, Any]] = UNSET
|
|
85
|
-
if (
|
|
86
|
-
self.runtime
|
|
87
|
-
and not isinstance(self.runtime, Unset)
|
|
88
|
-
and not isinstance(self.runtime, dict)
|
|
89
|
-
):
|
|
90
|
-
runtime = self.runtime.to_dict()
|
|
91
|
-
elif self.runtime and isinstance(self.runtime, dict):
|
|
92
|
-
runtime = self.runtime
|
|
93
|
-
|
|
94
|
-
sandbox = self.sandbox
|
|
95
|
-
|
|
96
|
-
field_dict: dict[str, Any] = {}
|
|
97
|
-
field_dict.update(self.additional_properties)
|
|
98
|
-
field_dict.update({})
|
|
99
|
-
if configurations is not UNSET:
|
|
100
|
-
field_dict["configurations"] = configurations
|
|
101
|
-
if enabled is not UNSET:
|
|
102
|
-
field_dict["enabled"] = enabled
|
|
103
|
-
if flavors is not UNSET:
|
|
104
|
-
field_dict["flavors"] = flavors
|
|
105
|
-
if integration_connections is not UNSET:
|
|
106
|
-
field_dict["integrationConnections"] = integration_connections
|
|
107
|
-
if policies is not UNSET:
|
|
108
|
-
field_dict["policies"] = policies
|
|
109
|
-
if revision is not UNSET:
|
|
110
|
-
field_dict["revision"] = revision
|
|
111
|
-
if runtime is not UNSET:
|
|
112
|
-
field_dict["runtime"] = runtime
|
|
113
|
-
if sandbox is not UNSET:
|
|
114
|
-
field_dict["sandbox"] = sandbox
|
|
115
|
-
|
|
116
|
-
return field_dict
|
|
117
|
-
|
|
118
|
-
@classmethod
|
|
119
|
-
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
|
|
120
|
-
from ..models.core_spec_configurations import CoreSpecConfigurations
|
|
121
|
-
from ..models.flavor import Flavor
|
|
122
|
-
from ..models.revision_configuration import RevisionConfiguration
|
|
123
|
-
from ..models.runtime import Runtime
|
|
124
|
-
|
|
125
|
-
if not src_dict:
|
|
126
|
-
return None
|
|
127
|
-
d = src_dict.copy()
|
|
128
|
-
_configurations = d.pop("configurations", UNSET)
|
|
129
|
-
configurations: Union[Unset, CoreSpecConfigurations]
|
|
130
|
-
if isinstance(_configurations, Unset):
|
|
131
|
-
configurations = UNSET
|
|
132
|
-
else:
|
|
133
|
-
configurations = CoreSpecConfigurations.from_dict(_configurations)
|
|
134
|
-
|
|
135
|
-
enabled = d.pop("enabled", UNSET)
|
|
136
|
-
|
|
137
|
-
flavors = []
|
|
138
|
-
_flavors = d.pop("flavors", UNSET)
|
|
139
|
-
for componentsschemas_flavors_item_data in _flavors or []:
|
|
140
|
-
componentsschemas_flavors_item = Flavor.from_dict(componentsschemas_flavors_item_data)
|
|
141
|
-
|
|
142
|
-
flavors.append(componentsschemas_flavors_item)
|
|
143
|
-
|
|
144
|
-
integration_connections = cast(
|
|
145
|
-
list[str], d.pop("integrationConnections", d.pop("integration_connections", UNSET))
|
|
146
|
-
)
|
|
147
|
-
|
|
148
|
-
policies = cast(list[str], d.pop("policies", UNSET))
|
|
149
|
-
|
|
150
|
-
_revision = d.pop("revision", UNSET)
|
|
151
|
-
revision: Union[Unset, RevisionConfiguration]
|
|
152
|
-
if isinstance(_revision, Unset):
|
|
153
|
-
revision = UNSET
|
|
154
|
-
else:
|
|
155
|
-
revision = RevisionConfiguration.from_dict(_revision)
|
|
156
|
-
|
|
157
|
-
_runtime = d.pop("runtime", UNSET)
|
|
158
|
-
runtime: Union[Unset, Runtime]
|
|
159
|
-
if isinstance(_runtime, Unset):
|
|
160
|
-
runtime = UNSET
|
|
161
|
-
else:
|
|
162
|
-
runtime = Runtime.from_dict(_runtime)
|
|
163
|
-
|
|
164
|
-
sandbox = d.pop("sandbox", UNSET)
|
|
165
|
-
|
|
166
|
-
core_spec = cls(
|
|
167
|
-
configurations=configurations,
|
|
168
|
-
enabled=enabled,
|
|
169
|
-
flavors=flavors,
|
|
170
|
-
integration_connections=integration_connections,
|
|
171
|
-
policies=policies,
|
|
172
|
-
revision=revision,
|
|
173
|
-
runtime=runtime,
|
|
174
|
-
sandbox=sandbox,
|
|
175
|
-
)
|
|
176
|
-
|
|
177
|
-
core_spec.additional_properties = d
|
|
178
|
-
return core_spec
|
|
179
|
-
|
|
180
|
-
@property
|
|
181
|
-
def additional_keys(self) -> list[str]:
|
|
182
|
-
return list(self.additional_properties.keys())
|
|
183
|
-
|
|
184
|
-
def __getitem__(self, key: str) -> Any:
|
|
185
|
-
return self.additional_properties[key]
|
|
186
|
-
|
|
187
|
-
def __setitem__(self, key: str, value: Any) -> None:
|
|
188
|
-
self.additional_properties[key] = value
|
|
189
|
-
|
|
190
|
-
def __delitem__(self, key: str) -> None:
|
|
191
|
-
del self.additional_properties[key]
|
|
192
|
-
|
|
193
|
-
def __contains__(self, key: str) -> bool:
|
|
194
|
-
return key in self.additional_properties
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
from typing import TYPE_CHECKING, Any, TypeVar, Union
|
|
2
|
-
|
|
3
|
-
from attrs import define as _attrs_define
|
|
4
|
-
from attrs import field as _attrs_field
|
|
5
|
-
|
|
6
|
-
from ..types import UNSET, Unset
|
|
7
|
-
|
|
8
|
-
if TYPE_CHECKING:
|
|
9
|
-
from ..models.spec_configuration import SpecConfiguration
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
T = TypeVar("T", bound="CoreSpecConfigurations")
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@_attrs_define
|
|
16
|
-
class CoreSpecConfigurations:
|
|
17
|
-
"""Optional configurations for the object
|
|
18
|
-
|
|
19
|
-
Attributes:
|
|
20
|
-
key (Union[Unset, SpecConfiguration]): Configuration, this is a key value storage. In your object you can
|
|
21
|
-
retrieve the value with config[key]
|
|
22
|
-
"""
|
|
23
|
-
|
|
24
|
-
key: Union[Unset, "SpecConfiguration"] = UNSET
|
|
25
|
-
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
26
|
-
|
|
27
|
-
def to_dict(self) -> dict[str, Any]:
|
|
28
|
-
key: Union[Unset, dict[str, Any]] = UNSET
|
|
29
|
-
if self.key and not isinstance(self.key, Unset) and not isinstance(self.key, dict):
|
|
30
|
-
key = self.key.to_dict()
|
|
31
|
-
elif self.key and isinstance(self.key, dict):
|
|
32
|
-
key = self.key
|
|
33
|
-
|
|
34
|
-
field_dict: dict[str, Any] = {}
|
|
35
|
-
field_dict.update(self.additional_properties)
|
|
36
|
-
field_dict.update({})
|
|
37
|
-
if key is not UNSET:
|
|
38
|
-
field_dict["key"] = key
|
|
39
|
-
|
|
40
|
-
return field_dict
|
|
41
|
-
|
|
42
|
-
@classmethod
|
|
43
|
-
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
|
|
44
|
-
from ..models.spec_configuration import SpecConfiguration
|
|
45
|
-
|
|
46
|
-
if not src_dict:
|
|
47
|
-
return None
|
|
48
|
-
d = src_dict.copy()
|
|
49
|
-
_key = d.pop("key", UNSET)
|
|
50
|
-
key: Union[Unset, SpecConfiguration]
|
|
51
|
-
if isinstance(_key, Unset):
|
|
52
|
-
key = UNSET
|
|
53
|
-
else:
|
|
54
|
-
key = SpecConfiguration.from_dict(_key)
|
|
55
|
-
|
|
56
|
-
core_spec_configurations = cls(
|
|
57
|
-
key=key,
|
|
58
|
-
)
|
|
59
|
-
|
|
60
|
-
core_spec_configurations.additional_properties = d
|
|
61
|
-
return core_spec_configurations
|
|
62
|
-
|
|
63
|
-
@property
|
|
64
|
-
def additional_keys(self) -> list[str]:
|
|
65
|
-
return list(self.additional_properties.keys())
|
|
66
|
-
|
|
67
|
-
def __getitem__(self, key: str) -> Any:
|
|
68
|
-
return self.additional_properties[key]
|
|
69
|
-
|
|
70
|
-
def __setitem__(self, key: str, value: Any) -> None:
|
|
71
|
-
self.additional_properties[key] = value
|
|
72
|
-
|
|
73
|
-
def __delitem__(self, key: str) -> None:
|
|
74
|
-
del self.additional_properties[key]
|
|
75
|
-
|
|
76
|
-
def __contains__(self, key: str) -> bool:
|
|
77
|
-
return key in self.additional_properties
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
from typing import Any, TypeVar, Union
|
|
2
|
-
|
|
3
|
-
from attrs import define as _attrs_define
|
|
4
|
-
from attrs import field as _attrs_field
|
|
5
|
-
|
|
6
|
-
from ..types import UNSET, Unset
|
|
7
|
-
|
|
8
|
-
T = TypeVar("T", bound="HistogramBucket")
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
@_attrs_define
|
|
12
|
-
class HistogramBucket:
|
|
13
|
-
"""Histogram bucket
|
|
14
|
-
|
|
15
|
-
Attributes:
|
|
16
|
-
count (Union[Unset, int]): Count
|
|
17
|
-
end (Union[Unset, float]): End
|
|
18
|
-
start (Union[Unset, float]): Start
|
|
19
|
-
"""
|
|
20
|
-
|
|
21
|
-
count: Union[Unset, int] = UNSET
|
|
22
|
-
end: Union[Unset, float] = UNSET
|
|
23
|
-
start: Union[Unset, float] = UNSET
|
|
24
|
-
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
25
|
-
|
|
26
|
-
def to_dict(self) -> dict[str, Any]:
|
|
27
|
-
count = self.count
|
|
28
|
-
|
|
29
|
-
end = self.end
|
|
30
|
-
|
|
31
|
-
start = self.start
|
|
32
|
-
|
|
33
|
-
field_dict: dict[str, Any] = {}
|
|
34
|
-
field_dict.update(self.additional_properties)
|
|
35
|
-
field_dict.update({})
|
|
36
|
-
if count is not UNSET:
|
|
37
|
-
field_dict["count"] = count
|
|
38
|
-
if end is not UNSET:
|
|
39
|
-
field_dict["end"] = end
|
|
40
|
-
if start is not UNSET:
|
|
41
|
-
field_dict["start"] = start
|
|
42
|
-
|
|
43
|
-
return field_dict
|
|
44
|
-
|
|
45
|
-
@classmethod
|
|
46
|
-
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
|
|
47
|
-
if not src_dict:
|
|
48
|
-
return None
|
|
49
|
-
d = src_dict.copy()
|
|
50
|
-
count = d.pop("count", UNSET)
|
|
51
|
-
|
|
52
|
-
end = d.pop("end", UNSET)
|
|
53
|
-
|
|
54
|
-
start = d.pop("start", UNSET)
|
|
55
|
-
|
|
56
|
-
histogram_bucket = cls(
|
|
57
|
-
count=count,
|
|
58
|
-
end=end,
|
|
59
|
-
start=start,
|
|
60
|
-
)
|
|
61
|
-
|
|
62
|
-
histogram_bucket.additional_properties = d
|
|
63
|
-
return histogram_bucket
|
|
64
|
-
|
|
65
|
-
@property
|
|
66
|
-
def additional_keys(self) -> list[str]:
|
|
67
|
-
return list(self.additional_properties.keys())
|
|
68
|
-
|
|
69
|
-
def __getitem__(self, key: str) -> Any:
|
|
70
|
-
return self.additional_properties[key]
|
|
71
|
-
|
|
72
|
-
def __setitem__(self, key: str, value: Any) -> None:
|
|
73
|
-
self.additional_properties[key] = value
|
|
74
|
-
|
|
75
|
-
def __delitem__(self, key: str) -> None:
|
|
76
|
-
del self.additional_properties[key]
|
|
77
|
-
|
|
78
|
-
def __contains__(self, key: str) -> bool:
|
|
79
|
-
return key in self.additional_properties
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
from typing import Any, TypeVar, Union
|
|
2
|
-
|
|
3
|
-
from attrs import define as _attrs_define
|
|
4
|
-
from attrs import field as _attrs_field
|
|
5
|
-
|
|
6
|
-
from ..types import UNSET, Unset
|
|
7
|
-
|
|
8
|
-
T = TypeVar("T", bound="HistogramStats")
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
@_attrs_define
|
|
12
|
-
class HistogramStats:
|
|
13
|
-
"""Histogram stats
|
|
14
|
-
|
|
15
|
-
Attributes:
|
|
16
|
-
average (Union[Unset, float]): Average request duration
|
|
17
|
-
p50 (Union[Unset, float]): P50 request duration
|
|
18
|
-
p90 (Union[Unset, float]): P90 request duration
|
|
19
|
-
p99 (Union[Unset, float]): P99 request duration
|
|
20
|
-
"""
|
|
21
|
-
|
|
22
|
-
average: Union[Unset, float] = UNSET
|
|
23
|
-
p50: Union[Unset, float] = UNSET
|
|
24
|
-
p90: Union[Unset, float] = UNSET
|
|
25
|
-
p99: Union[Unset, float] = UNSET
|
|
26
|
-
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
27
|
-
|
|
28
|
-
def to_dict(self) -> dict[str, Any]:
|
|
29
|
-
average = self.average
|
|
30
|
-
|
|
31
|
-
p50 = self.p50
|
|
32
|
-
|
|
33
|
-
p90 = self.p90
|
|
34
|
-
|
|
35
|
-
p99 = self.p99
|
|
36
|
-
|
|
37
|
-
field_dict: dict[str, Any] = {}
|
|
38
|
-
field_dict.update(self.additional_properties)
|
|
39
|
-
field_dict.update({})
|
|
40
|
-
if average is not UNSET:
|
|
41
|
-
field_dict["average"] = average
|
|
42
|
-
if p50 is not UNSET:
|
|
43
|
-
field_dict["p50"] = p50
|
|
44
|
-
if p90 is not UNSET:
|
|
45
|
-
field_dict["p90"] = p90
|
|
46
|
-
if p99 is not UNSET:
|
|
47
|
-
field_dict["p99"] = p99
|
|
48
|
-
|
|
49
|
-
return field_dict
|
|
50
|
-
|
|
51
|
-
@classmethod
|
|
52
|
-
def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
|
|
53
|
-
if not src_dict:
|
|
54
|
-
return None
|
|
55
|
-
d = src_dict.copy()
|
|
56
|
-
average = d.pop("average", UNSET)
|
|
57
|
-
|
|
58
|
-
p50 = d.pop("p50", UNSET)
|
|
59
|
-
|
|
60
|
-
p90 = d.pop("p90", UNSET)
|
|
61
|
-
|
|
62
|
-
p99 = d.pop("p99", UNSET)
|
|
63
|
-
|
|
64
|
-
histogram_stats = cls(
|
|
65
|
-
average=average,
|
|
66
|
-
p50=p50,
|
|
67
|
-
p90=p90,
|
|
68
|
-
p99=p99,
|
|
69
|
-
)
|
|
70
|
-
|
|
71
|
-
histogram_stats.additional_properties = d
|
|
72
|
-
return histogram_stats
|
|
73
|
-
|
|
74
|
-
@property
|
|
75
|
-
def additional_keys(self) -> list[str]:
|
|
76
|
-
return list(self.additional_properties.keys())
|
|
77
|
-
|
|
78
|
-
def __getitem__(self, key: str) -> Any:
|
|
79
|
-
return self.additional_properties[key]
|
|
80
|
-
|
|
81
|
-
def __setitem__(self, key: str, value: Any) -> None:
|
|
82
|
-
self.additional_properties[key] = value
|
|
83
|
-
|
|
84
|
-
def __delitem__(self, key: str) -> None:
|
|
85
|
-
del self.additional_properties[key]
|
|
86
|
-
|
|
87
|
-
def __contains__(self, key: str) -> bool:
|
|
88
|
-
return key in self.additional_properties
|