robosystems-client 0.1.9__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 (282) hide show
  1. robosystems_client/__init__.py +14 -0
  2. robosystems_client/api/__init__.py +1 -0
  3. robosystems_client/api/agent/__init__.py +1 -0
  4. robosystems_client/api/agent/query_financial_agent.py +423 -0
  5. robosystems_client/api/auth/__init__.py +1 -0
  6. robosystems_client/api/auth/check_password_strength.py +172 -0
  7. robosystems_client/api/auth/complete_sso_auth.py +177 -0
  8. robosystems_client/api/auth/generate_sso_token.py +174 -0
  9. robosystems_client/api/auth/get_captcha_config.py +87 -0
  10. robosystems_client/api/auth/get_current_auth_user.py +220 -0
  11. robosystems_client/api/auth/get_password_policy.py +134 -0
  12. robosystems_client/api/auth/login_user.py +181 -0
  13. robosystems_client/api/auth/logout_user.py +169 -0
  14. robosystems_client/api/auth/refresh_session.py +174 -0
  15. robosystems_client/api/auth/register_user.py +189 -0
  16. robosystems_client/api/auth/sso_login.py +177 -0
  17. robosystems_client/api/auth/sso_token_exchange.py +181 -0
  18. robosystems_client/api/backup/__init__.py +1 -0
  19. robosystems_client/api/backup/create_backup.py +401 -0
  20. robosystems_client/api/backup/export_backup.py +225 -0
  21. robosystems_client/api/backup/get_backup_download_url.py +258 -0
  22. robosystems_client/api/backup/get_backup_stats.py +182 -0
  23. robosystems_client/api/backup/kuzu_backup_health.py +202 -0
  24. robosystems_client/api/backup/list_backups.py +217 -0
  25. robosystems_client/api/backup/restore_backup.py +401 -0
  26. robosystems_client/api/billing/__init__.py +1 -0
  27. robosystems_client/api/billing/get_available_subscription_plans_v1_graph_id_billing_available_plans_get.py +198 -0
  28. robosystems_client/api/billing/get_credit_billing_info_v1_graph_id_billing_credits_get.py +210 -0
  29. robosystems_client/api/billing/get_current_graph_bill.py +285 -0
  30. robosystems_client/api/billing/get_graph_billing_history.py +329 -0
  31. robosystems_client/api/billing/get_graph_monthly_bill.py +315 -0
  32. robosystems_client/api/billing/get_graph_pricing_info_v1_graph_id_billing_pricing_get.py +198 -0
  33. robosystems_client/api/billing/get_graph_subscription_v1_graph_id_billing_subscription_get.py +198 -0
  34. robosystems_client/api/billing/get_graph_usage_details.py +350 -0
  35. robosystems_client/api/billing/upgrade_graph_subscription_v1_graph_id_billing_subscription_upgrade_post.py +216 -0
  36. robosystems_client/api/connections/__init__.py +1 -0
  37. robosystems_client/api/connections/create_connection.py +327 -0
  38. robosystems_client/api/connections/create_link_token.py +281 -0
  39. robosystems_client/api/connections/delete_connection.py +278 -0
  40. robosystems_client/api/connections/exchange_link_token.py +301 -0
  41. robosystems_client/api/connections/get_connection.py +262 -0
  42. robosystems_client/api/connections/get_connection_options.py +285 -0
  43. robosystems_client/api/connections/init_o_auth.py +230 -0
  44. robosystems_client/api/connections/list_connections.py +314 -0
  45. robosystems_client/api/connections/oauth_callback.py +318 -0
  46. robosystems_client/api/connections/sync_connection.py +362 -0
  47. robosystems_client/api/create/__init__.py +1 -0
  48. robosystems_client/api/create/create_graph.py +375 -0
  49. robosystems_client/api/create/get_available_extensions.py +134 -0
  50. robosystems_client/api/credits_/__init__.py +1 -0
  51. robosystems_client/api/credits_/check_credit_balance.py +299 -0
  52. robosystems_client/api/credits_/check_storage_limits.py +249 -0
  53. robosystems_client/api/credits_/get_credit_summary.py +245 -0
  54. robosystems_client/api/credits_/get_storage_usage.py +279 -0
  55. robosystems_client/api/credits_/list_credit_transactions.py +392 -0
  56. robosystems_client/api/graph_analytics/__init__.py +1 -0
  57. robosystems_client/api/graph_analytics/get_graph_metrics.py +285 -0
  58. robosystems_client/api/graph_analytics/get_graph_usage_stats.py +329 -0
  59. robosystems_client/api/graph_status/__init__.py +1 -0
  60. robosystems_client/api/graph_status/get_database_health.py +273 -0
  61. robosystems_client/api/graph_status/get_database_info.py +277 -0
  62. robosystems_client/api/mcp/__init__.py +1 -0
  63. robosystems_client/api/mcp/call_mcp_tool.py +432 -0
  64. robosystems_client/api/mcp/list_mcp_tools.py +265 -0
  65. robosystems_client/api/operations/__init__.py +1 -0
  66. robosystems_client/api/operations/cancel_operation.py +246 -0
  67. robosystems_client/api/operations/get_operation_status.py +273 -0
  68. robosystems_client/api/operations/stream_operation_events.py +415 -0
  69. robosystems_client/api/query/__init__.py +1 -0
  70. robosystems_client/api/query/execute_cypher_query.py +482 -0
  71. robosystems_client/api/schema/__init__.py +1 -0
  72. robosystems_client/api/schema/export_graph_schema.py +239 -0
  73. robosystems_client/api/schema/get_graph_schema_info.py +277 -0
  74. robosystems_client/api/schema/list_schema_extensions.py +216 -0
  75. robosystems_client/api/schema/validate_schema.py +326 -0
  76. robosystems_client/api/service_offerings/__init__.py +1 -0
  77. robosystems_client/api/service_offerings/get_service_offerings.py +197 -0
  78. robosystems_client/api/status/__init__.py +1 -0
  79. robosystems_client/api/status/get_mcp_health.py +136 -0
  80. robosystems_client/api/status/get_service_status.py +134 -0
  81. robosystems_client/api/user/__init__.py +1 -0
  82. robosystems_client/api/user/create_user_api_key.py +205 -0
  83. robosystems_client/api/user/get_all_credit_summaries.py +256 -0
  84. robosystems_client/api/user/get_current_user.py +187 -0
  85. robosystems_client/api/user/get_user_graphs.py +187 -0
  86. robosystems_client/api/user/list_user_api_keys.py +187 -0
  87. robosystems_client/api/user/revoke_user_api_key.py +209 -0
  88. robosystems_client/api/user/select_user_graph.py +213 -0
  89. robosystems_client/api/user/update_user.py +205 -0
  90. robosystems_client/api/user/update_user_api_key.py +218 -0
  91. robosystems_client/api/user/update_user_password.py +218 -0
  92. robosystems_client/api/user_analytics/__init__.py +1 -0
  93. robosystems_client/api/user_analytics/get_detailed_user_analytics.py +222 -0
  94. robosystems_client/api/user_analytics/get_user_usage_overview.py +187 -0
  95. robosystems_client/api/user_limits/__init__.py +1 -0
  96. robosystems_client/api/user_limits/get_user_limits.py +190 -0
  97. robosystems_client/api/user_limits/get_user_usage.py +187 -0
  98. robosystems_client/api/user_subscriptions/__init__.py +1 -0
  99. robosystems_client/api/user_subscriptions/cancel_shared_repository_subscription.py +209 -0
  100. robosystems_client/api/user_subscriptions/get_repository_credits.py +206 -0
  101. robosystems_client/api/user_subscriptions/get_shared_repository_credits.py +193 -0
  102. robosystems_client/api/user_subscriptions/get_user_shared_subscriptions.py +213 -0
  103. robosystems_client/api/user_subscriptions/subscribe_to_shared_repository.py +214 -0
  104. robosystems_client/api/user_subscriptions/upgrade_shared_repository_subscription.py +228 -0
  105. robosystems_client/client.py +278 -0
  106. robosystems_client/errors.py +16 -0
  107. robosystems_client/extensions/README.md +611 -0
  108. robosystems_client/extensions/__init__.py +108 -0
  109. robosystems_client/extensions/auth_integration.py +210 -0
  110. robosystems_client/extensions/extensions.py +170 -0
  111. robosystems_client/extensions/operation_client.py +368 -0
  112. robosystems_client/extensions/query_client.py +375 -0
  113. robosystems_client/extensions/sse_client.py +520 -0
  114. robosystems_client/extensions/tests/__init__.py +1 -0
  115. robosystems_client/extensions/tests/test_integration.py +490 -0
  116. robosystems_client/extensions/tests/test_unit.py +560 -0
  117. robosystems_client/extensions/utils.py +526 -0
  118. robosystems_client/models/__init__.py +379 -0
  119. robosystems_client/models/account_info.py +79 -0
  120. robosystems_client/models/add_on_credit_info.py +119 -0
  121. robosystems_client/models/agent_message.py +68 -0
  122. robosystems_client/models/agent_request.py +132 -0
  123. robosystems_client/models/agent_request_context_type_0.py +44 -0
  124. robosystems_client/models/agent_response.py +132 -0
  125. robosystems_client/models/agent_response_metadata_type_0.py +44 -0
  126. robosystems_client/models/api_key_info.py +134 -0
  127. robosystems_client/models/api_keys_response.py +74 -0
  128. robosystems_client/models/auth_response.py +82 -0
  129. robosystems_client/models/auth_response_user.py +44 -0
  130. robosystems_client/models/available_extension.py +78 -0
  131. robosystems_client/models/available_extensions_response.py +73 -0
  132. robosystems_client/models/backup_create_request.py +117 -0
  133. robosystems_client/models/backup_export_request.py +72 -0
  134. robosystems_client/models/backup_list_response.py +90 -0
  135. robosystems_client/models/backup_response.py +200 -0
  136. robosystems_client/models/backup_restore_request.py +81 -0
  137. robosystems_client/models/backup_stats_response.py +156 -0
  138. robosystems_client/models/backup_stats_response_backup_formats.py +44 -0
  139. robosystems_client/models/cancel_operation_response_canceloperation.py +44 -0
  140. robosystems_client/models/cancellation_response.py +76 -0
  141. robosystems_client/models/check_credit_balance_response_checkcreditbalance.py +44 -0
  142. robosystems_client/models/connection_options_response.py +82 -0
  143. robosystems_client/models/connection_provider_info.py +203 -0
  144. robosystems_client/models/connection_provider_info_auth_type.py +11 -0
  145. robosystems_client/models/connection_provider_info_provider.py +10 -0
  146. robosystems_client/models/connection_response.py +149 -0
  147. robosystems_client/models/connection_response_metadata.py +44 -0
  148. robosystems_client/models/connection_response_provider.py +10 -0
  149. robosystems_client/models/create_api_key_request.py +82 -0
  150. robosystems_client/models/create_api_key_response.py +74 -0
  151. robosystems_client/models/create_connection_request.py +179 -0
  152. robosystems_client/models/create_connection_request_provider.py +10 -0
  153. robosystems_client/models/create_graph_request.py +183 -0
  154. robosystems_client/models/credit_check_request.py +82 -0
  155. robosystems_client/models/credit_summary.py +128 -0
  156. robosystems_client/models/credit_summary_response.py +140 -0
  157. robosystems_client/models/credits_summary_response.py +122 -0
  158. robosystems_client/models/credits_summary_response_credits_by_addon_item.py +44 -0
  159. robosystems_client/models/custom_schema_definition.py +194 -0
  160. robosystems_client/models/custom_schema_definition_metadata.py +49 -0
  161. robosystems_client/models/custom_schema_definition_nodes_item.py +44 -0
  162. robosystems_client/models/custom_schema_definition_relationships_item.py +44 -0
  163. robosystems_client/models/cypher_query_request.py +128 -0
  164. robosystems_client/models/cypher_query_request_parameters_type_0.py +44 -0
  165. robosystems_client/models/database_health_response.py +181 -0
  166. robosystems_client/models/database_info_response.py +191 -0
  167. robosystems_client/models/detailed_transactions_response.py +124 -0
  168. robosystems_client/models/detailed_transactions_response_date_range.py +44 -0
  169. robosystems_client/models/detailed_transactions_response_summary.py +59 -0
  170. robosystems_client/models/enhanced_credit_transaction_response.py +192 -0
  171. robosystems_client/models/enhanced_credit_transaction_response_metadata.py +44 -0
  172. robosystems_client/models/error_response.py +145 -0
  173. robosystems_client/models/exchange_token_request.py +116 -0
  174. robosystems_client/models/exchange_token_request_metadata_type_0.py +44 -0
  175. robosystems_client/models/get_all_credit_summaries_response_getallcreditsummaries.py +44 -0
  176. robosystems_client/models/get_backup_download_url_response_getbackupdownloadurl.py +44 -0
  177. robosystems_client/models/get_current_auth_user_response_getcurrentauthuser.py +44 -0
  178. robosystems_client/models/get_current_graph_bill_response_getcurrentgraphbill.py +44 -0
  179. robosystems_client/models/get_graph_billing_history_response_getgraphbillinghistory.py +44 -0
  180. robosystems_client/models/get_graph_monthly_bill_response_getgraphmonthlybill.py +44 -0
  181. robosystems_client/models/get_graph_schema_info_response_getgraphschemainfo.py +44 -0
  182. robosystems_client/models/get_graph_usage_details_response_getgraphusagedetails.py +44 -0
  183. robosystems_client/models/get_mcp_health_response_getmcphealth.py +44 -0
  184. robosystems_client/models/get_operation_status_response_getoperationstatus.py +44 -0
  185. robosystems_client/models/get_storage_usage_response_getstorageusage.py +44 -0
  186. robosystems_client/models/graph_info.py +92 -0
  187. robosystems_client/models/graph_metadata.py +105 -0
  188. robosystems_client/models/graph_metrics_response.py +188 -0
  189. robosystems_client/models/graph_metrics_response_estimated_size.py +44 -0
  190. robosystems_client/models/graph_metrics_response_health_status.py +44 -0
  191. robosystems_client/models/graph_metrics_response_node_counts.py +44 -0
  192. robosystems_client/models/graph_metrics_response_relationship_counts.py +44 -0
  193. robosystems_client/models/graph_usage_response.py +116 -0
  194. robosystems_client/models/graph_usage_response_query_statistics.py +44 -0
  195. robosystems_client/models/graph_usage_response_recent_activity.py +44 -0
  196. robosystems_client/models/graph_usage_response_storage_usage.py +44 -0
  197. robosystems_client/models/health_status.py +110 -0
  198. robosystems_client/models/health_status_details_type_0.py +44 -0
  199. robosystems_client/models/http_validation_error.py +75 -0
  200. robosystems_client/models/initial_entity_data.py +212 -0
  201. robosystems_client/models/kuzu_backup_health_response_kuzubackuphealth.py +44 -0
  202. robosystems_client/models/link_token_request.py +174 -0
  203. robosystems_client/models/link_token_request_options_type_0.py +44 -0
  204. robosystems_client/models/link_token_request_provider_type_0.py +10 -0
  205. robosystems_client/models/list_connections_provider_type_0.py +10 -0
  206. robosystems_client/models/list_schema_extensions_response_listschemaextensions.py +44 -0
  207. robosystems_client/models/login_request.py +68 -0
  208. robosystems_client/models/logout_user_response_logoutuser.py +44 -0
  209. robosystems_client/models/mcp_tool_call.py +84 -0
  210. robosystems_client/models/mcp_tool_call_arguments.py +44 -0
  211. robosystems_client/models/mcp_tools_response.py +74 -0
  212. robosystems_client/models/mcp_tools_response_tools_item.py +44 -0
  213. robosystems_client/models/o_auth_callback_request.py +130 -0
  214. robosystems_client/models/o_auth_init_request.py +128 -0
  215. robosystems_client/models/o_auth_init_request_additional_params_type_0.py +44 -0
  216. robosystems_client/models/o_auth_init_response.py +78 -0
  217. robosystems_client/models/password_check_request.py +82 -0
  218. robosystems_client/models/password_check_response.py +112 -0
  219. robosystems_client/models/password_check_response_character_types.py +44 -0
  220. robosystems_client/models/password_policy_response.py +66 -0
  221. robosystems_client/models/password_policy_response_policy.py +44 -0
  222. robosystems_client/models/plaid_connection_config.py +209 -0
  223. robosystems_client/models/plaid_connection_config_accounts_type_0_item.py +44 -0
  224. robosystems_client/models/plaid_connection_config_institution_type_0.py +44 -0
  225. robosystems_client/models/quick_books_connection_config.py +92 -0
  226. robosystems_client/models/register_request.py +98 -0
  227. robosystems_client/models/repository_credits_response.py +101 -0
  228. robosystems_client/models/repository_plan.py +10 -0
  229. robosystems_client/models/repository_type.py +10 -0
  230. robosystems_client/models/response_mode.py +11 -0
  231. robosystems_client/models/schema_export_response.py +163 -0
  232. robosystems_client/models/schema_export_response_data_stats_type_0.py +44 -0
  233. robosystems_client/models/schema_export_response_schema_definition_type_0.py +44 -0
  234. robosystems_client/models/schema_validation_request.py +142 -0
  235. robosystems_client/models/schema_validation_request_schema_definition_type_0.py +44 -0
  236. robosystems_client/models/schema_validation_response.py +227 -0
  237. robosystems_client/models/schema_validation_response_compatibility_type_0.py +44 -0
  238. robosystems_client/models/schema_validation_response_stats_type_0.py +44 -0
  239. robosystems_client/models/sec_connection_config.py +82 -0
  240. robosystems_client/models/sso_complete_request.py +60 -0
  241. robosystems_client/models/sso_exchange_request.py +90 -0
  242. robosystems_client/models/sso_exchange_response.py +78 -0
  243. robosystems_client/models/sso_login_request.py +60 -0
  244. robosystems_client/models/sso_token_response.py +78 -0
  245. robosystems_client/models/storage_limit_response.py +149 -0
  246. robosystems_client/models/subscription_info.py +180 -0
  247. robosystems_client/models/subscription_info_metadata.py +44 -0
  248. robosystems_client/models/subscription_request.py +89 -0
  249. robosystems_client/models/subscription_response.py +82 -0
  250. robosystems_client/models/success_response.py +112 -0
  251. robosystems_client/models/success_response_data_type_0.py +44 -0
  252. robosystems_client/models/sync_connection_request.py +106 -0
  253. robosystems_client/models/sync_connection_request_sync_options_type_0.py +44 -0
  254. robosystems_client/models/sync_connection_response_syncconnection.py +44 -0
  255. robosystems_client/models/tier_upgrade_request.py +62 -0
  256. robosystems_client/models/transaction_summary_response.py +126 -0
  257. robosystems_client/models/update_api_key_request.py +92 -0
  258. robosystems_client/models/update_password_request.py +76 -0
  259. robosystems_client/models/update_user_request.py +92 -0
  260. robosystems_client/models/upgrade_subscription_request.py +82 -0
  261. robosystems_client/models/user_analytics_response.py +132 -0
  262. robosystems_client/models/user_analytics_response_api_usage.py +44 -0
  263. robosystems_client/models/user_analytics_response_graph_usage.py +44 -0
  264. robosystems_client/models/user_analytics_response_limits.py +44 -0
  265. robosystems_client/models/user_analytics_response_recent_activity_item.py +44 -0
  266. robosystems_client/models/user_analytics_response_user_info.py +44 -0
  267. robosystems_client/models/user_graph_summary.py +134 -0
  268. robosystems_client/models/user_graphs_response.py +96 -0
  269. robosystems_client/models/user_limits_response.py +95 -0
  270. robosystems_client/models/user_response.py +132 -0
  271. robosystems_client/models/user_subscriptions_response.py +90 -0
  272. robosystems_client/models/user_usage_response.py +90 -0
  273. robosystems_client/models/user_usage_response_graphs.py +44 -0
  274. robosystems_client/models/user_usage_summary_response.py +130 -0
  275. robosystems_client/models/user_usage_summary_response_usage_vs_limits.py +44 -0
  276. robosystems_client/models/validation_error.py +88 -0
  277. robosystems_client/py.typed +1 -0
  278. robosystems_client/sdk-config.yaml +5 -0
  279. robosystems_client/types.py +54 -0
  280. robosystems_client-0.1.9.dist-info/METADATA +302 -0
  281. robosystems_client-0.1.9.dist-info/RECORD +282 -0
  282. robosystems_client-0.1.9.dist-info/WHEEL +4 -0
@@ -0,0 +1,156 @@
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
+ if TYPE_CHECKING:
8
+ from ..models.backup_stats_response_backup_formats import (
9
+ BackupStatsResponseBackupFormats,
10
+ )
11
+
12
+
13
+ T = TypeVar("T", bound="BackupStatsResponse")
14
+
15
+
16
+ @_attrs_define
17
+ class BackupStatsResponse:
18
+ """Response model for backup statistics.
19
+
20
+ Attributes:
21
+ graph_id (str):
22
+ total_backups (int):
23
+ successful_backups (int):
24
+ failed_backups (int):
25
+ success_rate (float):
26
+ total_original_size_bytes (int):
27
+ total_compressed_size_bytes (int):
28
+ storage_saved_bytes (int):
29
+ average_compression_ratio (float):
30
+ latest_backup_date (Union[None, str]):
31
+ backup_formats (BackupStatsResponseBackupFormats):
32
+ """
33
+
34
+ graph_id: str
35
+ total_backups: int
36
+ successful_backups: int
37
+ failed_backups: int
38
+ success_rate: float
39
+ total_original_size_bytes: int
40
+ total_compressed_size_bytes: int
41
+ storage_saved_bytes: int
42
+ average_compression_ratio: float
43
+ latest_backup_date: Union[None, str]
44
+ backup_formats: "BackupStatsResponseBackupFormats"
45
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
46
+
47
+ def to_dict(self) -> dict[str, Any]:
48
+ graph_id = self.graph_id
49
+
50
+ total_backups = self.total_backups
51
+
52
+ successful_backups = self.successful_backups
53
+
54
+ failed_backups = self.failed_backups
55
+
56
+ success_rate = self.success_rate
57
+
58
+ total_original_size_bytes = self.total_original_size_bytes
59
+
60
+ total_compressed_size_bytes = self.total_compressed_size_bytes
61
+
62
+ storage_saved_bytes = self.storage_saved_bytes
63
+
64
+ average_compression_ratio = self.average_compression_ratio
65
+
66
+ latest_backup_date: Union[None, str]
67
+ latest_backup_date = self.latest_backup_date
68
+
69
+ backup_formats = self.backup_formats.to_dict()
70
+
71
+ field_dict: dict[str, Any] = {}
72
+ field_dict.update(self.additional_properties)
73
+ field_dict.update(
74
+ {
75
+ "graph_id": graph_id,
76
+ "total_backups": total_backups,
77
+ "successful_backups": successful_backups,
78
+ "failed_backups": failed_backups,
79
+ "success_rate": success_rate,
80
+ "total_original_size_bytes": total_original_size_bytes,
81
+ "total_compressed_size_bytes": total_compressed_size_bytes,
82
+ "storage_saved_bytes": storage_saved_bytes,
83
+ "average_compression_ratio": average_compression_ratio,
84
+ "latest_backup_date": latest_backup_date,
85
+ "backup_formats": backup_formats,
86
+ }
87
+ )
88
+
89
+ return field_dict
90
+
91
+ @classmethod
92
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
93
+ from ..models.backup_stats_response_backup_formats import (
94
+ BackupStatsResponseBackupFormats,
95
+ )
96
+
97
+ d = dict(src_dict)
98
+ graph_id = d.pop("graph_id")
99
+
100
+ total_backups = d.pop("total_backups")
101
+
102
+ successful_backups = d.pop("successful_backups")
103
+
104
+ failed_backups = d.pop("failed_backups")
105
+
106
+ success_rate = d.pop("success_rate")
107
+
108
+ total_original_size_bytes = d.pop("total_original_size_bytes")
109
+
110
+ total_compressed_size_bytes = d.pop("total_compressed_size_bytes")
111
+
112
+ storage_saved_bytes = d.pop("storage_saved_bytes")
113
+
114
+ average_compression_ratio = d.pop("average_compression_ratio")
115
+
116
+ def _parse_latest_backup_date(data: object) -> Union[None, str]:
117
+ if data is None:
118
+ return data
119
+ return cast(Union[None, str], data)
120
+
121
+ latest_backup_date = _parse_latest_backup_date(d.pop("latest_backup_date"))
122
+
123
+ backup_formats = BackupStatsResponseBackupFormats.from_dict(d.pop("backup_formats"))
124
+
125
+ backup_stats_response = cls(
126
+ graph_id=graph_id,
127
+ total_backups=total_backups,
128
+ successful_backups=successful_backups,
129
+ failed_backups=failed_backups,
130
+ success_rate=success_rate,
131
+ total_original_size_bytes=total_original_size_bytes,
132
+ total_compressed_size_bytes=total_compressed_size_bytes,
133
+ storage_saved_bytes=storage_saved_bytes,
134
+ average_compression_ratio=average_compression_ratio,
135
+ latest_backup_date=latest_backup_date,
136
+ backup_formats=backup_formats,
137
+ )
138
+
139
+ backup_stats_response.additional_properties = d
140
+ return backup_stats_response
141
+
142
+ @property
143
+ def additional_keys(self) -> list[str]:
144
+ return list(self.additional_properties.keys())
145
+
146
+ def __getitem__(self, key: str) -> Any:
147
+ return self.additional_properties[key]
148
+
149
+ def __setitem__(self, key: str, value: Any) -> None:
150
+ self.additional_properties[key] = value
151
+
152
+ def __delitem__(self, key: str) -> None:
153
+ del self.additional_properties[key]
154
+
155
+ def __contains__(self, key: str) -> bool:
156
+ 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="BackupStatsResponseBackupFormats")
8
+
9
+
10
+ @_attrs_define
11
+ class BackupStatsResponseBackupFormats:
12
+ """ """
13
+
14
+ additional_properties: dict[str, int] = _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
+ backup_stats_response_backup_formats = cls()
26
+
27
+ backup_stats_response_backup_formats.additional_properties = d
28
+ return backup_stats_response_backup_formats
29
+
30
+ @property
31
+ def additional_keys(self) -> list[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> int:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: int) -> 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
@@ -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="CancelOperationResponseCanceloperation")
8
+
9
+
10
+ @_attrs_define
11
+ class CancelOperationResponseCanceloperation:
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
+ cancel_operation_response_canceloperation = cls()
26
+
27
+ cancel_operation_response_canceloperation.additional_properties = d
28
+ return cancel_operation_response_canceloperation
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
@@ -0,0 +1,76 @@
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="CancellationResponse")
8
+
9
+
10
+ @_attrs_define
11
+ class CancellationResponse:
12
+ """Response for subscription cancellation.
13
+
14
+ Attributes:
15
+ message (str): Cancellation confirmation message
16
+ subscription_id (str): ID of the cancelled subscription
17
+ cancelled_at (str): Cancellation timestamp (ISO format)
18
+ """
19
+
20
+ message: str
21
+ subscription_id: str
22
+ cancelled_at: str
23
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> dict[str, Any]:
26
+ message = self.message
27
+
28
+ subscription_id = self.subscription_id
29
+
30
+ cancelled_at = self.cancelled_at
31
+
32
+ field_dict: dict[str, Any] = {}
33
+ field_dict.update(self.additional_properties)
34
+ field_dict.update(
35
+ {
36
+ "message": message,
37
+ "subscription_id": subscription_id,
38
+ "cancelled_at": cancelled_at,
39
+ }
40
+ )
41
+
42
+ return field_dict
43
+
44
+ @classmethod
45
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
46
+ d = dict(src_dict)
47
+ message = d.pop("message")
48
+
49
+ subscription_id = d.pop("subscription_id")
50
+
51
+ cancelled_at = d.pop("cancelled_at")
52
+
53
+ cancellation_response = cls(
54
+ message=message,
55
+ subscription_id=subscription_id,
56
+ cancelled_at=cancelled_at,
57
+ )
58
+
59
+ cancellation_response.additional_properties = d
60
+ return cancellation_response
61
+
62
+ @property
63
+ def additional_keys(self) -> list[str]:
64
+ return list(self.additional_properties.keys())
65
+
66
+ def __getitem__(self, key: str) -> Any:
67
+ return self.additional_properties[key]
68
+
69
+ def __setitem__(self, key: str, value: Any) -> None:
70
+ self.additional_properties[key] = value
71
+
72
+ def __delitem__(self, key: str) -> None:
73
+ del self.additional_properties[key]
74
+
75
+ def __contains__(self, key: str) -> bool:
76
+ 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="CheckCreditBalanceResponseCheckcreditbalance")
8
+
9
+
10
+ @_attrs_define
11
+ class CheckCreditBalanceResponseCheckcreditbalance:
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
+ check_credit_balance_response_checkcreditbalance = cls()
26
+
27
+ check_credit_balance_response_checkcreditbalance.additional_properties = d
28
+ return check_credit_balance_response_checkcreditbalance
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
@@ -0,0 +1,82 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ if TYPE_CHECKING:
8
+ from ..models.connection_provider_info import ConnectionProviderInfo
9
+
10
+
11
+ T = TypeVar("T", bound="ConnectionOptionsResponse")
12
+
13
+
14
+ @_attrs_define
15
+ class ConnectionOptionsResponse:
16
+ """Response with all available connection options.
17
+
18
+ Attributes:
19
+ providers (list['ConnectionProviderInfo']): Available connection providers
20
+ total_providers (int): Total number of providers
21
+ """
22
+
23
+ providers: list["ConnectionProviderInfo"]
24
+ total_providers: int
25
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> dict[str, Any]:
28
+ providers = []
29
+ for providers_item_data in self.providers:
30
+ providers_item = providers_item_data.to_dict()
31
+ providers.append(providers_item)
32
+
33
+ total_providers = self.total_providers
34
+
35
+ field_dict: dict[str, Any] = {}
36
+ field_dict.update(self.additional_properties)
37
+ field_dict.update(
38
+ {
39
+ "providers": providers,
40
+ "total_providers": total_providers,
41
+ }
42
+ )
43
+
44
+ return field_dict
45
+
46
+ @classmethod
47
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
48
+ from ..models.connection_provider_info import ConnectionProviderInfo
49
+
50
+ d = dict(src_dict)
51
+ providers = []
52
+ _providers = d.pop("providers")
53
+ for providers_item_data in _providers:
54
+ providers_item = ConnectionProviderInfo.from_dict(providers_item_data)
55
+
56
+ providers.append(providers_item)
57
+
58
+ total_providers = d.pop("total_providers")
59
+
60
+ connection_options_response = cls(
61
+ providers=providers,
62
+ total_providers=total_providers,
63
+ )
64
+
65
+ connection_options_response.additional_properties = d
66
+ return connection_options_response
67
+
68
+ @property
69
+ def additional_keys(self) -> list[str]:
70
+ return list(self.additional_properties.keys())
71
+
72
+ def __getitem__(self, key: str) -> Any:
73
+ return self.additional_properties[key]
74
+
75
+ def __setitem__(self, key: str, value: Any) -> None:
76
+ self.additional_properties[key] = value
77
+
78
+ def __delitem__(self, key: str) -> None:
79
+ del self.additional_properties[key]
80
+
81
+ def __contains__(self, key: str) -> bool:
82
+ return key in self.additional_properties
@@ -0,0 +1,203 @@
1
+ from collections.abc import Mapping
2
+ from typing import 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.connection_provider_info_auth_type import ConnectionProviderInfoAuthType
8
+ from ..models.connection_provider_info_provider import ConnectionProviderInfoProvider
9
+ from ..types import UNSET, Unset
10
+
11
+ T = TypeVar("T", bound="ConnectionProviderInfo")
12
+
13
+
14
+ @_attrs_define
15
+ class ConnectionProviderInfo:
16
+ """Information about a connection provider.
17
+
18
+ Attributes:
19
+ provider (ConnectionProviderInfoProvider): Provider identifier
20
+ display_name (str): Human-readable provider name
21
+ description (str): Provider description
22
+ auth_type (ConnectionProviderInfoAuthType): Authentication type
23
+ required_config (list[str]): Required configuration fields
24
+ features (list[str]): Supported features
25
+ data_types (list[str]): Types of data available
26
+ auth_flow (Union[None, Unset, str]): Description of authentication flow
27
+ optional_config (Union[Unset, list[str]]): Optional configuration fields
28
+ sync_frequency (Union[None, Unset, str]): Typical sync frequency
29
+ setup_instructions (Union[None, Unset, str]): Setup instructions
30
+ documentation_url (Union[None, Unset, str]): Link to documentation
31
+ """
32
+
33
+ provider: ConnectionProviderInfoProvider
34
+ display_name: str
35
+ description: str
36
+ auth_type: ConnectionProviderInfoAuthType
37
+ required_config: list[str]
38
+ features: list[str]
39
+ data_types: list[str]
40
+ auth_flow: Union[None, Unset, str] = UNSET
41
+ optional_config: Union[Unset, list[str]] = UNSET
42
+ sync_frequency: Union[None, Unset, str] = UNSET
43
+ setup_instructions: Union[None, Unset, str] = UNSET
44
+ documentation_url: Union[None, Unset, str] = UNSET
45
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
46
+
47
+ def to_dict(self) -> dict[str, Any]:
48
+ provider = self.provider.value
49
+
50
+ display_name = self.display_name
51
+
52
+ description = self.description
53
+
54
+ auth_type = self.auth_type.value
55
+
56
+ required_config = self.required_config
57
+
58
+ features = self.features
59
+
60
+ data_types = self.data_types
61
+
62
+ auth_flow: Union[None, Unset, str]
63
+ if isinstance(self.auth_flow, Unset):
64
+ auth_flow = UNSET
65
+ else:
66
+ auth_flow = self.auth_flow
67
+
68
+ optional_config: Union[Unset, list[str]] = UNSET
69
+ if not isinstance(self.optional_config, Unset):
70
+ optional_config = self.optional_config
71
+
72
+ sync_frequency: Union[None, Unset, str]
73
+ if isinstance(self.sync_frequency, Unset):
74
+ sync_frequency = UNSET
75
+ else:
76
+ sync_frequency = self.sync_frequency
77
+
78
+ setup_instructions: Union[None, Unset, str]
79
+ if isinstance(self.setup_instructions, Unset):
80
+ setup_instructions = UNSET
81
+ else:
82
+ setup_instructions = self.setup_instructions
83
+
84
+ documentation_url: Union[None, Unset, str]
85
+ if isinstance(self.documentation_url, Unset):
86
+ documentation_url = UNSET
87
+ else:
88
+ documentation_url = self.documentation_url
89
+
90
+ field_dict: dict[str, Any] = {}
91
+ field_dict.update(self.additional_properties)
92
+ field_dict.update(
93
+ {
94
+ "provider": provider,
95
+ "display_name": display_name,
96
+ "description": description,
97
+ "auth_type": auth_type,
98
+ "required_config": required_config,
99
+ "features": features,
100
+ "data_types": data_types,
101
+ }
102
+ )
103
+ if auth_flow is not UNSET:
104
+ field_dict["auth_flow"] = auth_flow
105
+ if optional_config is not UNSET:
106
+ field_dict["optional_config"] = optional_config
107
+ if sync_frequency is not UNSET:
108
+ field_dict["sync_frequency"] = sync_frequency
109
+ if setup_instructions is not UNSET:
110
+ field_dict["setup_instructions"] = setup_instructions
111
+ if documentation_url is not UNSET:
112
+ field_dict["documentation_url"] = documentation_url
113
+
114
+ return field_dict
115
+
116
+ @classmethod
117
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
118
+ d = dict(src_dict)
119
+ provider = ConnectionProviderInfoProvider(d.pop("provider"))
120
+
121
+ display_name = d.pop("display_name")
122
+
123
+ description = d.pop("description")
124
+
125
+ auth_type = ConnectionProviderInfoAuthType(d.pop("auth_type"))
126
+
127
+ required_config = cast(list[str], d.pop("required_config"))
128
+
129
+ features = cast(list[str], d.pop("features"))
130
+
131
+ data_types = cast(list[str], d.pop("data_types"))
132
+
133
+ def _parse_auth_flow(data: object) -> Union[None, Unset, str]:
134
+ if data is None:
135
+ return data
136
+ if isinstance(data, Unset):
137
+ return data
138
+ return cast(Union[None, Unset, str], data)
139
+
140
+ auth_flow = _parse_auth_flow(d.pop("auth_flow", UNSET))
141
+
142
+ optional_config = cast(list[str], d.pop("optional_config", UNSET))
143
+
144
+ def _parse_sync_frequency(data: object) -> Union[None, Unset, str]:
145
+ if data is None:
146
+ return data
147
+ if isinstance(data, Unset):
148
+ return data
149
+ return cast(Union[None, Unset, str], data)
150
+
151
+ sync_frequency = _parse_sync_frequency(d.pop("sync_frequency", UNSET))
152
+
153
+ def _parse_setup_instructions(data: object) -> Union[None, Unset, str]:
154
+ if data is None:
155
+ return data
156
+ if isinstance(data, Unset):
157
+ return data
158
+ return cast(Union[None, Unset, str], data)
159
+
160
+ setup_instructions = _parse_setup_instructions(d.pop("setup_instructions", UNSET))
161
+
162
+ def _parse_documentation_url(data: object) -> Union[None, Unset, str]:
163
+ if data is None:
164
+ return data
165
+ if isinstance(data, Unset):
166
+ return data
167
+ return cast(Union[None, Unset, str], data)
168
+
169
+ documentation_url = _parse_documentation_url(d.pop("documentation_url", UNSET))
170
+
171
+ connection_provider_info = cls(
172
+ provider=provider,
173
+ display_name=display_name,
174
+ description=description,
175
+ auth_type=auth_type,
176
+ required_config=required_config,
177
+ features=features,
178
+ data_types=data_types,
179
+ auth_flow=auth_flow,
180
+ optional_config=optional_config,
181
+ sync_frequency=sync_frequency,
182
+ setup_instructions=setup_instructions,
183
+ documentation_url=documentation_url,
184
+ )
185
+
186
+ connection_provider_info.additional_properties = d
187
+ return connection_provider_info
188
+
189
+ @property
190
+ def additional_keys(self) -> list[str]:
191
+ return list(self.additional_properties.keys())
192
+
193
+ def __getitem__(self, key: str) -> Any:
194
+ return self.additional_properties[key]
195
+
196
+ def __setitem__(self, key: str, value: Any) -> None:
197
+ self.additional_properties[key] = value
198
+
199
+ def __delitem__(self, key: str) -> None:
200
+ del self.additional_properties[key]
201
+
202
+ def __contains__(self, key: str) -> bool:
203
+ return key in self.additional_properties
@@ -0,0 +1,11 @@
1
+ from enum import Enum
2
+
3
+
4
+ class ConnectionProviderInfoAuthType(str, Enum):
5
+ API_KEY = "api_key"
6
+ LINK = "link"
7
+ NONE = "none"
8
+ OAUTH = "oauth"
9
+
10
+ def __str__(self) -> str:
11
+ return str(self.value)
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class ConnectionProviderInfoProvider(str, Enum):
5
+ PLAID = "plaid"
6
+ QUICKBOOKS = "quickbooks"
7
+ SEC = "sec"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)