robosystems-client 0.1.11__py3-none-any.whl → 0.1.13__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.

Potentially problematic release.


This version of robosystems-client might be problematic. Click here for more details.

Files changed (69) hide show
  1. robosystems_client/api/agent/query_financial_agent.py +4 -4
  2. robosystems_client/api/backup/create_backup.py +1 -1
  3. robosystems_client/api/backup/export_backup.py +14 -19
  4. robosystems_client/api/backup/get_backup_download_url.py +1 -1
  5. robosystems_client/api/backup/get_backup_stats.py +19 -1
  6. robosystems_client/api/backup/list_backups.py +19 -1
  7. robosystems_client/api/backup/restore_backup.py +1 -1
  8. robosystems_client/api/copy/copy_data_to_graph.py +314 -0
  9. robosystems_client/api/{credits_ → graph_credits}/check_credit_balance.py +42 -20
  10. robosystems_client/api/graph_health/__init__.py +1 -0
  11. robosystems_client/api/{graph_status → graph_health}/get_database_health.py +1 -1
  12. robosystems_client/api/graph_info/__init__.py +1 -0
  13. robosystems_client/api/{graph_status → graph_info}/get_database_info.py +1 -1
  14. robosystems_client/api/graph_limits/__init__.py +1 -0
  15. robosystems_client/api/graph_limits/get_graph_limits.py +259 -0
  16. robosystems_client/api/subgraphs/__init__.py +1 -0
  17. robosystems_client/api/{billing/upgrade_graph_subscription_v1_graph_id_billing_subscription_upgrade_post.py → subgraphs/create_subgraph.py} +82 -36
  18. robosystems_client/api/subgraphs/delete_subgraph.py +317 -0
  19. robosystems_client/api/subgraphs/get_subgraph_info.py +300 -0
  20. robosystems_client/api/subgraphs/get_subgraph_quota.py +276 -0
  21. robosystems_client/api/{billing/get_credit_billing_info_v1_graph_id_billing_credits_get.py → subgraphs/list_subgraphs.py} +58 -32
  22. robosystems_client/api/user/get_all_credit_summaries.py +1 -1
  23. robosystems_client/extensions/README.md +2 -6
  24. robosystems_client/models/__init__.py +46 -10
  25. robosystems_client/models/copy_response.py +223 -0
  26. robosystems_client/models/{kuzu_backup_health_response_kuzubackuphealth.py → copy_response_error_details_type_0.py} +5 -5
  27. robosystems_client/models/copy_response_status.py +10 -0
  28. robosystems_client/models/create_subgraph_request.py +185 -0
  29. robosystems_client/models/create_subgraph_request_metadata_type_0.py +44 -0
  30. robosystems_client/models/credit_summary_response.py +0 -8
  31. robosystems_client/models/custom_schema_definition.py +2 -2
  32. robosystems_client/models/data_frame_copy_request.py +125 -0
  33. robosystems_client/models/data_frame_copy_request_format.py +10 -0
  34. robosystems_client/models/delete_subgraph_request.py +89 -0
  35. robosystems_client/models/delete_subgraph_response.py +120 -0
  36. robosystems_client/models/get_graph_limits_response_getgraphlimits.py +44 -0
  37. robosystems_client/models/list_subgraphs_response.py +148 -0
  38. robosystems_client/models/s3_copy_request.py +375 -0
  39. robosystems_client/models/s3_copy_request_file_format.py +12 -0
  40. robosystems_client/models/s3_copy_request_s3_url_style_type_0.py +9 -0
  41. robosystems_client/models/subgraph_quota_response.py +158 -0
  42. robosystems_client/models/subgraph_response.py +279 -0
  43. robosystems_client/models/subgraph_response_metadata_type_0.py +44 -0
  44. robosystems_client/models/subgraph_summary.py +155 -0
  45. robosystems_client/models/subgraph_type.py +11 -0
  46. robosystems_client/models/url_copy_request.py +157 -0
  47. robosystems_client/models/url_copy_request_file_format.py +10 -0
  48. robosystems_client/models/url_copy_request_headers_type_0.py +44 -0
  49. {robosystems_client-0.1.11.dist-info → robosystems_client-0.1.13.dist-info}/METADATA +1 -1
  50. {robosystems_client-0.1.11.dist-info → robosystems_client-0.1.13.dist-info}/RECORD +62 -39
  51. robosystems_client/api/backup/kuzu_backup_health.py +0 -202
  52. robosystems_client/api/billing/get_available_subscription_plans_v1_graph_id_billing_available_plans_get.py +0 -198
  53. robosystems_client/api/billing/get_graph_pricing_info_v1_graph_id_billing_pricing_get.py +0 -198
  54. robosystems_client/api/billing/get_graph_subscription_v1_graph_id_billing_subscription_get.py +0 -198
  55. robosystems_client/models/backup_export_request.py +0 -72
  56. robosystems_client/models/credit_check_request.py +0 -82
  57. robosystems_client/models/upgrade_subscription_request.py +0 -82
  58. /robosystems_client/api/{billing → copy}/__init__.py +0 -0
  59. /robosystems_client/api/{credits_ → graph_billing}/__init__.py +0 -0
  60. /robosystems_client/api/{billing → graph_billing}/get_current_graph_bill.py +0 -0
  61. /robosystems_client/api/{billing → graph_billing}/get_graph_billing_history.py +0 -0
  62. /robosystems_client/api/{billing → graph_billing}/get_graph_monthly_bill.py +0 -0
  63. /robosystems_client/api/{billing → graph_billing}/get_graph_usage_details.py +0 -0
  64. /robosystems_client/api/{graph_status → graph_credits}/__init__.py +0 -0
  65. /robosystems_client/api/{credits_ → graph_credits}/check_storage_limits.py +0 -0
  66. /robosystems_client/api/{credits_ → graph_credits}/get_credit_summary.py +0 -0
  67. /robosystems_client/api/{credits_ → graph_credits}/get_storage_usage.py +0 -0
  68. /robosystems_client/api/{credits_ → graph_credits}/list_credit_transactions.py +0 -0
  69. {robosystems_client-0.1.11.dist-info → robosystems_client-0.1.13.dist-info}/WHEEL +0 -0
@@ -0,0 +1,223 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..models.copy_response_status import CopyResponseStatus
8
+ from ..types import UNSET, Unset
9
+
10
+ if TYPE_CHECKING:
11
+ from ..models.copy_response_error_details_type_0 import CopyResponseErrorDetailsType0
12
+
13
+
14
+ T = TypeVar("T", bound="CopyResponse")
15
+
16
+
17
+ @_attrs_define
18
+ class CopyResponse:
19
+ """Response model for copy operations.
20
+
21
+ Attributes:
22
+ status (CopyResponseStatus): Operation status
23
+ source_type (str): Type of source that was copied from
24
+ execution_time_ms (float): Total execution time in milliseconds
25
+ message (str): Human-readable status message
26
+ rows_imported (Union[None, Unset, int]): Number of rows successfully imported
27
+ rows_skipped (Union[None, Unset, int]): Number of rows skipped due to errors (when ignore_errors=true)
28
+ warnings (Union[None, Unset, list[str]]): List of warnings encountered during import
29
+ error_details (Union['CopyResponseErrorDetailsType0', None, Unset]): Detailed error information if operation
30
+ failed
31
+ bytes_processed (Union[None, Unset, int]): Total bytes processed from source
32
+ """
33
+
34
+ status: CopyResponseStatus
35
+ source_type: str
36
+ execution_time_ms: float
37
+ message: str
38
+ rows_imported: Union[None, Unset, int] = UNSET
39
+ rows_skipped: Union[None, Unset, int] = UNSET
40
+ warnings: Union[None, Unset, list[str]] = UNSET
41
+ error_details: Union["CopyResponseErrorDetailsType0", None, Unset] = UNSET
42
+ bytes_processed: Union[None, Unset, int] = UNSET
43
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
44
+
45
+ def to_dict(self) -> dict[str, Any]:
46
+ from ..models.copy_response_error_details_type_0 import (
47
+ CopyResponseErrorDetailsType0,
48
+ )
49
+
50
+ status = self.status.value
51
+
52
+ source_type = self.source_type
53
+
54
+ execution_time_ms = self.execution_time_ms
55
+
56
+ message = self.message
57
+
58
+ rows_imported: Union[None, Unset, int]
59
+ if isinstance(self.rows_imported, Unset):
60
+ rows_imported = UNSET
61
+ else:
62
+ rows_imported = self.rows_imported
63
+
64
+ rows_skipped: Union[None, Unset, int]
65
+ if isinstance(self.rows_skipped, Unset):
66
+ rows_skipped = UNSET
67
+ else:
68
+ rows_skipped = self.rows_skipped
69
+
70
+ warnings: Union[None, Unset, list[str]]
71
+ if isinstance(self.warnings, Unset):
72
+ warnings = UNSET
73
+ elif isinstance(self.warnings, list):
74
+ warnings = self.warnings
75
+
76
+ else:
77
+ warnings = self.warnings
78
+
79
+ error_details: Union[None, Unset, dict[str, Any]]
80
+ if isinstance(self.error_details, Unset):
81
+ error_details = UNSET
82
+ elif isinstance(self.error_details, CopyResponseErrorDetailsType0):
83
+ error_details = self.error_details.to_dict()
84
+ else:
85
+ error_details = self.error_details
86
+
87
+ bytes_processed: Union[None, Unset, int]
88
+ if isinstance(self.bytes_processed, Unset):
89
+ bytes_processed = UNSET
90
+ else:
91
+ bytes_processed = self.bytes_processed
92
+
93
+ field_dict: dict[str, Any] = {}
94
+ field_dict.update(self.additional_properties)
95
+ field_dict.update(
96
+ {
97
+ "status": status,
98
+ "source_type": source_type,
99
+ "execution_time_ms": execution_time_ms,
100
+ "message": message,
101
+ }
102
+ )
103
+ if rows_imported is not UNSET:
104
+ field_dict["rows_imported"] = rows_imported
105
+ if rows_skipped is not UNSET:
106
+ field_dict["rows_skipped"] = rows_skipped
107
+ if warnings is not UNSET:
108
+ field_dict["warnings"] = warnings
109
+ if error_details is not UNSET:
110
+ field_dict["error_details"] = error_details
111
+ if bytes_processed is not UNSET:
112
+ field_dict["bytes_processed"] = bytes_processed
113
+
114
+ return field_dict
115
+
116
+ @classmethod
117
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
118
+ from ..models.copy_response_error_details_type_0 import (
119
+ CopyResponseErrorDetailsType0,
120
+ )
121
+
122
+ d = dict(src_dict)
123
+ status = CopyResponseStatus(d.pop("status"))
124
+
125
+ source_type = d.pop("source_type")
126
+
127
+ execution_time_ms = d.pop("execution_time_ms")
128
+
129
+ message = d.pop("message")
130
+
131
+ def _parse_rows_imported(data: object) -> Union[None, Unset, int]:
132
+ if data is None:
133
+ return data
134
+ if isinstance(data, Unset):
135
+ return data
136
+ return cast(Union[None, Unset, int], data)
137
+
138
+ rows_imported = _parse_rows_imported(d.pop("rows_imported", UNSET))
139
+
140
+ def _parse_rows_skipped(data: object) -> Union[None, Unset, int]:
141
+ if data is None:
142
+ return data
143
+ if isinstance(data, Unset):
144
+ return data
145
+ return cast(Union[None, Unset, int], data)
146
+
147
+ rows_skipped = _parse_rows_skipped(d.pop("rows_skipped", UNSET))
148
+
149
+ def _parse_warnings(data: object) -> Union[None, Unset, list[str]]:
150
+ if data is None:
151
+ return data
152
+ if isinstance(data, Unset):
153
+ return data
154
+ try:
155
+ if not isinstance(data, list):
156
+ raise TypeError()
157
+ warnings_type_0 = cast(list[str], data)
158
+
159
+ return warnings_type_0
160
+ except: # noqa: E722
161
+ pass
162
+ return cast(Union[None, Unset, list[str]], data)
163
+
164
+ warnings = _parse_warnings(d.pop("warnings", UNSET))
165
+
166
+ def _parse_error_details(
167
+ data: object,
168
+ ) -> Union["CopyResponseErrorDetailsType0", None, Unset]:
169
+ if data is None:
170
+ return data
171
+ if isinstance(data, Unset):
172
+ return data
173
+ try:
174
+ if not isinstance(data, dict):
175
+ raise TypeError()
176
+ error_details_type_0 = CopyResponseErrorDetailsType0.from_dict(data)
177
+
178
+ return error_details_type_0
179
+ except: # noqa: E722
180
+ pass
181
+ return cast(Union["CopyResponseErrorDetailsType0", None, Unset], data)
182
+
183
+ error_details = _parse_error_details(d.pop("error_details", UNSET))
184
+
185
+ def _parse_bytes_processed(data: object) -> Union[None, Unset, int]:
186
+ if data is None:
187
+ return data
188
+ if isinstance(data, Unset):
189
+ return data
190
+ return cast(Union[None, Unset, int], data)
191
+
192
+ bytes_processed = _parse_bytes_processed(d.pop("bytes_processed", UNSET))
193
+
194
+ copy_response = cls(
195
+ status=status,
196
+ source_type=source_type,
197
+ execution_time_ms=execution_time_ms,
198
+ message=message,
199
+ rows_imported=rows_imported,
200
+ rows_skipped=rows_skipped,
201
+ warnings=warnings,
202
+ error_details=error_details,
203
+ bytes_processed=bytes_processed,
204
+ )
205
+
206
+ copy_response.additional_properties = d
207
+ return copy_response
208
+
209
+ @property
210
+ def additional_keys(self) -> list[str]:
211
+ return list(self.additional_properties.keys())
212
+
213
+ def __getitem__(self, key: str) -> Any:
214
+ return self.additional_properties[key]
215
+
216
+ def __setitem__(self, key: str, value: Any) -> None:
217
+ self.additional_properties[key] = value
218
+
219
+ def __delitem__(self, key: str) -> None:
220
+ del self.additional_properties[key]
221
+
222
+ def __contains__(self, key: str) -> bool:
223
+ return key in self.additional_properties
@@ -4,11 +4,11 @@ from typing import Any, TypeVar
4
4
  from attrs import define as _attrs_define
5
5
  from attrs import field as _attrs_field
6
6
 
7
- T = TypeVar("T", bound="KuzuBackupHealthResponseKuzubackuphealth")
7
+ T = TypeVar("T", bound="CopyResponseErrorDetailsType0")
8
8
 
9
9
 
10
10
  @_attrs_define
11
- class KuzuBackupHealthResponseKuzubackuphealth:
11
+ class CopyResponseErrorDetailsType0:
12
12
  """ """
13
13
 
14
14
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
@@ -22,10 +22,10 @@ class KuzuBackupHealthResponseKuzubackuphealth:
22
22
  @classmethod
23
23
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
24
  d = dict(src_dict)
25
- kuzu_backup_health_response_kuzubackuphealth = cls()
25
+ copy_response_error_details_type_0 = cls()
26
26
 
27
- kuzu_backup_health_response_kuzubackuphealth.additional_properties = d
28
- return kuzu_backup_health_response_kuzubackuphealth
27
+ copy_response_error_details_type_0.additional_properties = d
28
+ return copy_response_error_details_type_0
29
29
 
30
30
  @property
31
31
  def additional_keys(self) -> list[str]:
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class CopyResponseStatus(str, Enum):
5
+ COMPLETED = "completed"
6
+ FAILED = "failed"
7
+ PARTIAL = "partial"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -0,0 +1,185 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..models.subgraph_type import SubgraphType
8
+ from ..types import UNSET, Unset
9
+
10
+ if TYPE_CHECKING:
11
+ from ..models.create_subgraph_request_metadata_type_0 import (
12
+ CreateSubgraphRequestMetadataType0,
13
+ )
14
+
15
+
16
+ T = TypeVar("T", bound="CreateSubgraphRequest")
17
+
18
+
19
+ @_attrs_define
20
+ class CreateSubgraphRequest:
21
+ """Request model for creating a subgraph.
22
+
23
+ Attributes:
24
+ name (str): Alphanumeric name for the subgraph (e.g., dev, staging, prod1)
25
+ display_name (str): Human-readable display name for the subgraph
26
+ description (Union[None, Unset, str]): Optional description of the subgraph's purpose
27
+ schema_extensions (Union[None, Unset, list[str]]): Schema extensions to include (inherits from parent by
28
+ default)
29
+ subgraph_type (Union[Unset, SubgraphType]): Types of subgraphs.
30
+ metadata (Union['CreateSubgraphRequestMetadataType0', None, Unset]): Additional metadata for the subgraph
31
+ """
32
+
33
+ name: str
34
+ display_name: str
35
+ description: Union[None, Unset, str] = UNSET
36
+ schema_extensions: Union[None, Unset, list[str]] = UNSET
37
+ subgraph_type: Union[Unset, SubgraphType] = UNSET
38
+ metadata: Union["CreateSubgraphRequestMetadataType0", None, Unset] = UNSET
39
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
40
+
41
+ def to_dict(self) -> dict[str, Any]:
42
+ from ..models.create_subgraph_request_metadata_type_0 import (
43
+ CreateSubgraphRequestMetadataType0,
44
+ )
45
+
46
+ name = self.name
47
+
48
+ display_name = self.display_name
49
+
50
+ description: Union[None, Unset, str]
51
+ if isinstance(self.description, Unset):
52
+ description = UNSET
53
+ else:
54
+ description = self.description
55
+
56
+ schema_extensions: Union[None, Unset, list[str]]
57
+ if isinstance(self.schema_extensions, Unset):
58
+ schema_extensions = UNSET
59
+ elif isinstance(self.schema_extensions, list):
60
+ schema_extensions = self.schema_extensions
61
+
62
+ else:
63
+ schema_extensions = self.schema_extensions
64
+
65
+ subgraph_type: Union[Unset, str] = UNSET
66
+ if not isinstance(self.subgraph_type, Unset):
67
+ subgraph_type = self.subgraph_type.value
68
+
69
+ metadata: Union[None, Unset, dict[str, Any]]
70
+ if isinstance(self.metadata, Unset):
71
+ metadata = UNSET
72
+ elif isinstance(self.metadata, CreateSubgraphRequestMetadataType0):
73
+ metadata = self.metadata.to_dict()
74
+ else:
75
+ metadata = self.metadata
76
+
77
+ field_dict: dict[str, Any] = {}
78
+ field_dict.update(self.additional_properties)
79
+ field_dict.update(
80
+ {
81
+ "name": name,
82
+ "display_name": display_name,
83
+ }
84
+ )
85
+ if description is not UNSET:
86
+ field_dict["description"] = description
87
+ if schema_extensions is not UNSET:
88
+ field_dict["schema_extensions"] = schema_extensions
89
+ if subgraph_type is not UNSET:
90
+ field_dict["subgraph_type"] = subgraph_type
91
+ if metadata is not UNSET:
92
+ field_dict["metadata"] = metadata
93
+
94
+ return field_dict
95
+
96
+ @classmethod
97
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
98
+ from ..models.create_subgraph_request_metadata_type_0 import (
99
+ CreateSubgraphRequestMetadataType0,
100
+ )
101
+
102
+ d = dict(src_dict)
103
+ name = d.pop("name")
104
+
105
+ display_name = d.pop("display_name")
106
+
107
+ def _parse_description(data: object) -> Union[None, Unset, str]:
108
+ if data is None:
109
+ return data
110
+ if isinstance(data, Unset):
111
+ return data
112
+ return cast(Union[None, Unset, str], data)
113
+
114
+ description = _parse_description(d.pop("description", UNSET))
115
+
116
+ def _parse_schema_extensions(data: object) -> Union[None, Unset, list[str]]:
117
+ if data is None:
118
+ return data
119
+ if isinstance(data, Unset):
120
+ return data
121
+ try:
122
+ if not isinstance(data, list):
123
+ raise TypeError()
124
+ schema_extensions_type_0 = cast(list[str], data)
125
+
126
+ return schema_extensions_type_0
127
+ except: # noqa: E722
128
+ pass
129
+ return cast(Union[None, Unset, list[str]], data)
130
+
131
+ schema_extensions = _parse_schema_extensions(d.pop("schema_extensions", UNSET))
132
+
133
+ _subgraph_type = d.pop("subgraph_type", UNSET)
134
+ subgraph_type: Union[Unset, SubgraphType]
135
+ if isinstance(_subgraph_type, Unset):
136
+ subgraph_type = UNSET
137
+ else:
138
+ subgraph_type = SubgraphType(_subgraph_type)
139
+
140
+ def _parse_metadata(
141
+ data: object,
142
+ ) -> Union["CreateSubgraphRequestMetadataType0", None, Unset]:
143
+ if data is None:
144
+ return data
145
+ if isinstance(data, Unset):
146
+ return data
147
+ try:
148
+ if not isinstance(data, dict):
149
+ raise TypeError()
150
+ metadata_type_0 = CreateSubgraphRequestMetadataType0.from_dict(data)
151
+
152
+ return metadata_type_0
153
+ except: # noqa: E722
154
+ pass
155
+ return cast(Union["CreateSubgraphRequestMetadataType0", None, Unset], data)
156
+
157
+ metadata = _parse_metadata(d.pop("metadata", UNSET))
158
+
159
+ create_subgraph_request = cls(
160
+ name=name,
161
+ display_name=display_name,
162
+ description=description,
163
+ schema_extensions=schema_extensions,
164
+ subgraph_type=subgraph_type,
165
+ metadata=metadata,
166
+ )
167
+
168
+ create_subgraph_request.additional_properties = d
169
+ return create_subgraph_request
170
+
171
+ @property
172
+ def additional_keys(self) -> list[str]:
173
+ return list(self.additional_properties.keys())
174
+
175
+ def __getitem__(self, key: str) -> Any:
176
+ return self.additional_properties[key]
177
+
178
+ def __setitem__(self, key: str, value: Any) -> None:
179
+ self.additional_properties[key] = value
180
+
181
+ def __delitem__(self, key: str) -> None:
182
+ del self.additional_properties[key]
183
+
184
+ def __contains__(self, key: str) -> bool:
185
+ return key in self.additional_properties
@@ -0,0 +1,44 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="CreateSubgraphRequestMetadataType0")
8
+
9
+
10
+ @_attrs_define
11
+ class CreateSubgraphRequestMetadataType0:
12
+ """ """
13
+
14
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
15
+
16
+ def to_dict(self) -> dict[str, Any]:
17
+ field_dict: dict[str, Any] = {}
18
+ field_dict.update(self.additional_properties)
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
+ d = dict(src_dict)
25
+ create_subgraph_request_metadata_type_0 = cls()
26
+
27
+ create_subgraph_request_metadata_type_0.additional_properties = d
28
+ return create_subgraph_request_metadata_type_0
29
+
30
+ @property
31
+ def additional_keys(self) -> list[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> Any:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: Any) -> None:
38
+ self.additional_properties[key] = value
39
+
40
+ def __delitem__(self, key: str) -> None:
41
+ del self.additional_properties[key]
42
+
43
+ def __contains__(self, key: str) -> bool:
44
+ return key in self.additional_properties
@@ -16,7 +16,6 @@ class CreditSummaryResponse:
16
16
  Attributes:
17
17
  graph_id (str):
18
18
  graph_tier (str):
19
- credit_multiplier (float):
20
19
  current_balance (float):
21
20
  monthly_allocation (float):
22
21
  consumed_this_month (float):
@@ -27,7 +26,6 @@ class CreditSummaryResponse:
27
26
 
28
27
  graph_id: str
29
28
  graph_tier: str
30
- credit_multiplier: float
31
29
  current_balance: float
32
30
  monthly_allocation: float
33
31
  consumed_this_month: float
@@ -41,8 +39,6 @@ class CreditSummaryResponse:
41
39
 
42
40
  graph_tier = self.graph_tier
43
41
 
44
- credit_multiplier = self.credit_multiplier
45
-
46
42
  current_balance = self.current_balance
47
43
 
48
44
  monthly_allocation = self.monthly_allocation
@@ -65,7 +61,6 @@ class CreditSummaryResponse:
65
61
  {
66
62
  "graph_id": graph_id,
67
63
  "graph_tier": graph_tier,
68
- "credit_multiplier": credit_multiplier,
69
64
  "current_balance": current_balance,
70
65
  "monthly_allocation": monthly_allocation,
71
66
  "consumed_this_month": consumed_this_month,
@@ -85,8 +80,6 @@ class CreditSummaryResponse:
85
80
 
86
81
  graph_tier = d.pop("graph_tier")
87
82
 
88
- credit_multiplier = d.pop("credit_multiplier")
89
-
90
83
  current_balance = d.pop("current_balance")
91
84
 
92
85
  monthly_allocation = d.pop("monthly_allocation")
@@ -111,7 +104,6 @@ class CreditSummaryResponse:
111
104
  credit_summary_response = cls(
112
105
  graph_id=graph_id,
113
106
  graph_tier=graph_tier,
114
- credit_multiplier=credit_multiplier,
115
107
  current_balance=current_balance,
116
108
  monthly_allocation=monthly_allocation,
117
109
  consumed_this_month=consumed_this_month,
@@ -31,8 +31,8 @@ class CustomSchemaDefinition:
31
31
  nodes (Union[Unset, list['CustomSchemaDefinitionNodesItem']]): List of node definitions with properties Example:
32
32
  [{'name': 'Product', 'properties': [{'name': 'sku', 'type': 'STRING', 'is_primary_key': True}, {'name': 'name',
33
33
  'type': 'STRING', 'is_required': True}, {'name': 'price', 'type': 'DOUBLE'}, {'name': 'quantity', 'type':
34
- 'INT64'}]}, {'name': 'Warehouse', 'properties': [{'name': 'id', 'type': 'STRING', 'is_primary_key': True},
35
- {'name': 'location', 'type': 'STRING'}]}].
34
+ 'INT64'}]}, {'name': 'Warehouse', 'properties': [{'name': 'identifier', 'type': 'STRING', 'is_primary_key':
35
+ True}, {'name': 'location', 'type': 'STRING'}]}].
36
36
  relationships (Union[Unset, list['CustomSchemaDefinitionRelationshipsItem']]): List of relationship definitions
37
37
  Example: [{'from_node': 'Product', 'name': 'STORED_IN', 'properties': [{'name': 'since', 'type': 'DATE'}],
38
38
  'to_node': 'Warehouse'}].
@@ -0,0 +1,125 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, Literal, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..models.data_frame_copy_request_format import DataFrameCopyRequestFormat
8
+ from ..types import UNSET, Unset
9
+
10
+ T = TypeVar("T", bound="DataFrameCopyRequest")
11
+
12
+
13
+ @_attrs_define
14
+ class DataFrameCopyRequest:
15
+ """Request model for DataFrame copy operations (future).
16
+
17
+ Attributes:
18
+ table_name (str): Target Kuzu table name
19
+ data_reference (str): Reference to uploaded DataFrame data
20
+ ignore_errors (Union[Unset, bool]): Skip duplicate/invalid rows (enables upsert-like behavior) Default: True.
21
+ extended_timeout (Union[Unset, bool]): Use extended timeout for large datasets Default: False.
22
+ validate_schema (Union[Unset, bool]): Validate source schema against target table Default: True.
23
+ source_type (Union[Literal['dataframe'], Unset]): Source type identifier Default: 'dataframe'.
24
+ format_ (Union[Unset, DataFrameCopyRequestFormat]): DataFrame format Default: DataFrameCopyRequestFormat.PANDAS.
25
+ """
26
+
27
+ table_name: str
28
+ data_reference: str
29
+ ignore_errors: Union[Unset, bool] = True
30
+ extended_timeout: Union[Unset, bool] = False
31
+ validate_schema: Union[Unset, bool] = True
32
+ source_type: Union[Literal["dataframe"], Unset] = "dataframe"
33
+ format_: Union[Unset, DataFrameCopyRequestFormat] = DataFrameCopyRequestFormat.PANDAS
34
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
35
+
36
+ def to_dict(self) -> dict[str, Any]:
37
+ table_name = self.table_name
38
+
39
+ data_reference = self.data_reference
40
+
41
+ ignore_errors = self.ignore_errors
42
+
43
+ extended_timeout = self.extended_timeout
44
+
45
+ validate_schema = self.validate_schema
46
+
47
+ source_type = self.source_type
48
+
49
+ format_: Union[Unset, str] = UNSET
50
+ if not isinstance(self.format_, Unset):
51
+ format_ = self.format_.value
52
+
53
+ field_dict: dict[str, Any] = {}
54
+ field_dict.update(self.additional_properties)
55
+ field_dict.update(
56
+ {
57
+ "table_name": table_name,
58
+ "data_reference": data_reference,
59
+ }
60
+ )
61
+ if ignore_errors is not UNSET:
62
+ field_dict["ignore_errors"] = ignore_errors
63
+ if extended_timeout is not UNSET:
64
+ field_dict["extended_timeout"] = extended_timeout
65
+ if validate_schema is not UNSET:
66
+ field_dict["validate_schema"] = validate_schema
67
+ if source_type is not UNSET:
68
+ field_dict["source_type"] = source_type
69
+ if format_ is not UNSET:
70
+ field_dict["format"] = format_
71
+
72
+ return field_dict
73
+
74
+ @classmethod
75
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
76
+ d = dict(src_dict)
77
+ table_name = d.pop("table_name")
78
+
79
+ data_reference = d.pop("data_reference")
80
+
81
+ ignore_errors = d.pop("ignore_errors", UNSET)
82
+
83
+ extended_timeout = d.pop("extended_timeout", UNSET)
84
+
85
+ validate_schema = d.pop("validate_schema", UNSET)
86
+
87
+ source_type = cast(Union[Literal["dataframe"], Unset], d.pop("source_type", UNSET))
88
+ if source_type != "dataframe" and not isinstance(source_type, Unset):
89
+ raise ValueError(f"source_type must match const 'dataframe', got '{source_type}'")
90
+
91
+ _format_ = d.pop("format", UNSET)
92
+ format_: Union[Unset, DataFrameCopyRequestFormat]
93
+ if isinstance(_format_, Unset):
94
+ format_ = UNSET
95
+ else:
96
+ format_ = DataFrameCopyRequestFormat(_format_)
97
+
98
+ data_frame_copy_request = cls(
99
+ table_name=table_name,
100
+ data_reference=data_reference,
101
+ ignore_errors=ignore_errors,
102
+ extended_timeout=extended_timeout,
103
+ validate_schema=validate_schema,
104
+ source_type=source_type,
105
+ format_=format_,
106
+ )
107
+
108
+ data_frame_copy_request.additional_properties = d
109
+ return data_frame_copy_request
110
+
111
+ @property
112
+ def additional_keys(self) -> list[str]:
113
+ return list(self.additional_properties.keys())
114
+
115
+ def __getitem__(self, key: str) -> Any:
116
+ return self.additional_properties[key]
117
+
118
+ def __setitem__(self, key: str, value: Any) -> None:
119
+ self.additional_properties[key] = value
120
+
121
+ def __delitem__(self, key: str) -> None:
122
+ del self.additional_properties[key]
123
+
124
+ def __contains__(self, key: str) -> bool:
125
+ return key in self.additional_properties
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class DataFrameCopyRequestFormat(str, Enum):
5
+ ARROW = "arrow"
6
+ PANDAS = "pandas"
7
+ POLARS = "polars"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)