render_sdk 0.1.2__py3-none-any.whl → 0.2.0__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.
Files changed (156) hide show
  1. render_sdk/__init__.py +41 -4
  2. render_sdk/client/__init__.py +25 -0
  3. render_sdk/client/client.py +5 -0
  4. render_sdk/client/sse.py +5 -1
  5. render_sdk/client/tests/test_client.py +6 -4
  6. render_sdk/client/tests/test_sse.py +1 -0
  7. render_sdk/client/types.py +2 -1
  8. render_sdk/client/workflows.py +13 -3
  9. render_sdk/experimental/__init__.py +31 -0
  10. render_sdk/experimental/experimental.py +71 -0
  11. render_sdk/experimental/object/__init__.py +30 -0
  12. render_sdk/experimental/object/api.py +260 -0
  13. render_sdk/experimental/object/client.py +475 -0
  14. render_sdk/experimental/object/types.py +87 -0
  15. render_sdk/public_api/api/audit_logs/list_organization_audit_logs.py +303 -0
  16. render_sdk/public_api/api/audit_logs/list_owner_audit_logs.py +303 -0
  17. render_sdk/public_api/api/blob_storage/delete_blob.py +215 -0
  18. render_sdk/public_api/api/blob_storage/get_blob.py +221 -0
  19. render_sdk/public_api/api/{workflows/list_workflow_versions.py → blob_storage/list_blobs.py} +52 -30
  20. render_sdk/public_api/api/blob_storage/put_blob.py +248 -0
  21. render_sdk/public_api/api/blueprints/validate_blueprint.py +212 -0
  22. render_sdk/public_api/api/key_value/resume_key_value.py +203 -0
  23. render_sdk/public_api/api/key_value/suspend_key_value.py +203 -0
  24. render_sdk/public_api/api/metrics/get_bandwidth_sources.py +251 -0
  25. render_sdk/public_api/api/postgres/create_postgres_user.py +229 -0
  26. render_sdk/public_api/api/postgres/delete_postgres_user.py +201 -0
  27. render_sdk/public_api/api/postgres/list_postgres_users.py +195 -0
  28. render_sdk/public_api/api/redis_deprecated/__init__.py +1 -0
  29. render_sdk/public_api/api/{redis → redis_deprecated}/create_redis.py +4 -4
  30. render_sdk/public_api/api/{redis → redis_deprecated}/delete_redis.py +4 -4
  31. render_sdk/public_api/api/{redis → redis_deprecated}/list_redis.py +4 -0
  32. render_sdk/public_api/api/{redis → redis_deprecated}/retrieve_redis.py +4 -4
  33. render_sdk/public_api/api/{redis → redis_deprecated}/retrieve_redis_connection_info.py +4 -0
  34. render_sdk/public_api/api/{redis → redis_deprecated}/update_redis.py +4 -4
  35. render_sdk/public_api/api/services/create_service.py +4 -4
  36. render_sdk/public_api/api/workflow_tasks_ea/__init__.py +1 -0
  37. render_sdk/public_api/api/{workflows → workflow_tasks_ea}/cancel_task_run.py +12 -4
  38. render_sdk/public_api/api/{workflows → workflow_tasks_ea}/create_task.py +12 -4
  39. render_sdk/public_api/api/{workflows → workflow_tasks_ea}/get_task.py +12 -4
  40. render_sdk/public_api/api/{workflows → workflow_tasks_ea}/get_task_run.py +12 -4
  41. render_sdk/public_api/api/{workflows → workflow_tasks_ea}/list_task_runs.py +12 -0
  42. render_sdk/public_api/api/{workflows → workflow_tasks_ea}/list_tasks.py +24 -12
  43. render_sdk/public_api/api/workflows_ea/__init__.py +1 -0
  44. render_sdk/public_api/api/workflows_ea/create_workflow.py +199 -0
  45. render_sdk/public_api/api/{workflows/deploy_workflow.py → workflows_ea/create_workflow_version.py} +31 -14
  46. render_sdk/public_api/api/{workflows → workflows_ea}/delete_workflow.py +12 -4
  47. render_sdk/public_api/api/{workflows → workflows_ea}/get_workflow.py +32 -14
  48. render_sdk/public_api/api/{workflows → workflows_ea}/get_workflow_version.py +12 -4
  49. render_sdk/public_api/api/workflows_ea/list_workflow_versions.py +275 -0
  50. render_sdk/public_api/api/{workflows → workflows_ea}/list_workflows.py +41 -14
  51. render_sdk/public_api/api/workflows_ea/update_workflow.py +212 -0
  52. render_sdk/public_api/api/workspaces/remove_workspace_member.py +206 -0
  53. render_sdk/public_api/api/workspaces/update_workspace_member.py +235 -0
  54. render_sdk/public_api/models/__init__.py +82 -4
  55. render_sdk/public_api/models/audit_log.py +113 -0
  56. render_sdk/public_api/models/audit_log_actor.py +80 -0
  57. render_sdk/public_api/models/audit_log_actor_type.py +10 -0
  58. render_sdk/public_api/models/audit_log_event.py +80 -0
  59. render_sdk/public_api/models/audit_log_metadata.py +49 -0
  60. render_sdk/public_api/models/audit_log_status.py +9 -0
  61. render_sdk/public_api/models/audit_log_with_cursor.py +73 -0
  62. render_sdk/public_api/models/background_worker_details.py +2 -2
  63. render_sdk/public_api/models/background_worker_details_patch.py +1 -1
  64. render_sdk/public_api/models/background_worker_details_post.py +1 -1
  65. render_sdk/public_api/models/blob_metadata.py +85 -0
  66. render_sdk/public_api/models/blob_with_cursor.py +73 -0
  67. render_sdk/public_api/models/cache.py +6 -4
  68. render_sdk/public_api/models/cache_profile.py +10 -0
  69. render_sdk/public_api/models/create_deploy_body.py +23 -0
  70. render_sdk/public_api/models/create_version.py +70 -0
  71. render_sdk/public_api/models/credential_create_input.py +59 -0
  72. render_sdk/public_api/models/cron_job_details.py +2 -2
  73. render_sdk/public_api/models/cron_job_details_patch.py +1 -1
  74. render_sdk/public_api/models/cron_job_details_post.py +1 -1
  75. render_sdk/public_api/models/deploy_mode.py +9 -0
  76. render_sdk/public_api/models/event.py +11 -27
  77. render_sdk/public_api/models/event_type.py +1 -1
  78. render_sdk/public_api/models/get_bandwidth_sources_response_200.py +75 -0
  79. render_sdk/public_api/models/get_bandwidth_sources_response_200_data_item.py +101 -0
  80. render_sdk/public_api/models/get_bandwidth_sources_response_200_data_item_labels.py +78 -0
  81. render_sdk/public_api/models/get_bandwidth_sources_response_200_data_item_labels_traffic_source.py +12 -0
  82. render_sdk/public_api/models/get_bandwidth_sources_response_200_data_item_values_item.py +68 -0
  83. render_sdk/public_api/models/{server_unhealthy.py → get_bandwidth_sources_response_400.py} +12 -12
  84. render_sdk/public_api/models/get_blob_output.py +71 -0
  85. render_sdk/public_api/models/list_postgres_users_response_200_item.py +86 -0
  86. render_sdk/public_api/models/otel_provider_type.py +2 -0
  87. render_sdk/public_api/models/postgres.py +8 -0
  88. render_sdk/public_api/models/postgres_detail.py +26 -0
  89. render_sdk/public_api/models/postgres_parameter_overrides.py +44 -0
  90. render_sdk/public_api/models/postgres_patch_input.py +27 -0
  91. render_sdk/public_api/models/postgres_post_input.py +27 -0
  92. render_sdk/public_api/models/postgres_version.py +1 -0
  93. render_sdk/public_api/models/preview_input.py +2 -2
  94. render_sdk/public_api/models/private_service_details.py +2 -2
  95. render_sdk/public_api/models/private_service_details_patch.py +1 -1
  96. render_sdk/public_api/models/private_service_details_post.py +1 -1
  97. render_sdk/public_api/models/project_post_environment_input.py +26 -1
  98. render_sdk/public_api/models/put_blob_input.py +59 -0
  99. render_sdk/public_api/models/put_blob_output.py +79 -0
  100. render_sdk/public_api/models/read_replica.py +25 -1
  101. render_sdk/public_api/models/read_replica_input.py +25 -1
  102. render_sdk/public_api/models/run_task.py +35 -7
  103. render_sdk/public_api/models/service_event.py +12 -27
  104. render_sdk/public_api/models/service_event_type.py +0 -1
  105. render_sdk/public_api/models/service_post.py +9 -6
  106. render_sdk/public_api/models/task_attempt.py +88 -0
  107. render_sdk/public_api/models/task_attempt_details.py +108 -0
  108. render_sdk/public_api/models/task_data_type_1.py +44 -0
  109. render_sdk/public_api/models/task_run.py +23 -1
  110. render_sdk/public_api/models/task_run_details.py +50 -5
  111. render_sdk/public_api/models/task_run_status.py +1 -0
  112. render_sdk/public_api/models/task_with_cursor.py +73 -0
  113. render_sdk/public_api/models/team_member.py +5 -4
  114. render_sdk/public_api/models/team_member_role.py +12 -0
  115. render_sdk/public_api/models/update_workspace_member_body.py +61 -0
  116. render_sdk/public_api/models/validate_blueprint_request.py +84 -0
  117. render_sdk/public_api/models/validate_blueprint_response.py +105 -0
  118. render_sdk/public_api/models/validation_error.py +88 -0
  119. render_sdk/public_api/models/validation_plan_summary.py +107 -0
  120. render_sdk/public_api/models/web_service_details.py +2 -2
  121. render_sdk/public_api/models/web_service_details_patch.py +6 -5
  122. render_sdk/public_api/models/web_service_details_post.py +6 -5
  123. render_sdk/public_api/models/workflow.py +144 -0
  124. render_sdk/public_api/models/workflow_create.py +99 -0
  125. render_sdk/public_api/models/workflow_update.py +90 -0
  126. render_sdk/public_api/models/workflow_version.py +10 -14
  127. render_sdk/public_api/models/workflow_version_status.py +13 -0
  128. render_sdk/public_api/models/workflow_version_with_cursor.py +73 -0
  129. render_sdk/public_api/models/workflow_with_cursor.py +73 -0
  130. render_sdk/render.py +65 -0
  131. render_sdk/version.py +27 -0
  132. render_sdk/workflows/__init__.py +5 -1
  133. render_sdk/workflows/app.py +262 -0
  134. render_sdk/workflows/callback_api/models/__init__.py +2 -0
  135. render_sdk/workflows/callback_api/models/task.py +21 -0
  136. render_sdk/workflows/callback_api/models/task_options.py +18 -0
  137. render_sdk/workflows/callback_api/models/task_parameter.py +88 -0
  138. render_sdk/workflows/callback_api/py.typed +1 -1
  139. render_sdk/workflows/cli.py +58 -0
  140. render_sdk/workflows/client.py +8 -9
  141. render_sdk/workflows/executor.py +19 -7
  142. render_sdk/workflows/runner.py +43 -10
  143. render_sdk/workflows/task.py +84 -5
  144. render_sdk/workflows/tests/test_app.py +412 -0
  145. render_sdk/workflows/tests/test_cli.py +134 -0
  146. render_sdk/workflows/tests/test_end_to_end.py +71 -1
  147. render_sdk/workflows/tests/test_registration.py +58 -1
  148. {render_sdk-0.1.2.dist-info → render_sdk-0.2.0.dist-info}/METADATA +4 -3
  149. {render_sdk-0.1.2.dist-info → render_sdk-0.2.0.dist-info}/RECORD +155 -83
  150. {render_sdk-0.1.2.dist-info → render_sdk-0.2.0.dist-info}/WHEEL +1 -1
  151. render_sdk-0.2.0.dist-info/entry_points.txt +3 -0
  152. render_sdk/public_api/models/image_version.py +0 -79
  153. /render_sdk/public_api/api/{redis → audit_logs}/__init__.py +0 -0
  154. /render_sdk/public_api/api/{workflows → blob_storage}/__init__.py +0 -0
  155. /render_sdk/public_api/api/{workflows → workflow_tasks_ea}/stream_task_runs_events.py +0 -0
  156. {render_sdk-0.1.2.dist-info → render_sdk-0.2.0.dist-info/licenses}/LICENSE +0 -0
@@ -64,7 +64,6 @@ if TYPE_CHECKING:
64
64
  from ..models.server_failed import ServerFailed
65
65
  from ..models.server_hardware_failure import ServerHardwareFailure
66
66
  from ..models.server_restarted import ServerRestarted
67
- from ..models.server_unhealthy import ServerUnhealthy
68
67
  from ..models.service_resumed import ServiceResumed
69
68
  from ..models.service_suspended import ServiceSuspended
70
69
  from ..models.suspender_added import SuspenderAdded
@@ -96,9 +95,8 @@ class Event:
96
95
  'PostgresPITRCheckpointFailed', 'PostgresPITRCheckpointStarted', 'PostgresReadReplicaStale',
97
96
  'PostgresReadReplicasChanged', 'PostgresRestarted', 'PostgresUnavailable', 'PostgresUpgradeFailed',
98
97
  'PostgresUpgradeStarted', 'PostgresUpgradeSucceeded', 'PreDeployEnded', 'PreDeployStarted', 'ServerAvailable',
99
- 'ServerFailed', 'ServerHardwareFailure', 'ServerRestarted', 'ServerUnhealthy', 'ServiceResumed',
100
- 'ServiceSuspended', 'SuspenderAdded', 'SuspenderRemoved', 'ZeroDowntimeRedeployEnded',
101
- 'ZeroDowntimeRedeployStarted']):
98
+ 'ServerFailed', 'ServerHardwareFailure', 'ServerRestarted', 'ServiceResumed', 'ServiceSuspended',
99
+ 'SuspenderAdded', 'SuspenderRemoved', 'ZeroDowntimeRedeployEnded', 'ZeroDowntimeRedeployStarted']):
102
100
  """
103
101
 
104
102
  id: str
@@ -161,7 +159,6 @@ class Event:
161
159
  "ServerFailed",
162
160
  "ServerHardwareFailure",
163
161
  "ServerRestarted",
164
- "ServerUnhealthy",
165
162
  "ServiceResumed",
166
163
  "ServiceSuspended",
167
164
  "SuspenderAdded",
@@ -226,7 +223,6 @@ class Event:
226
223
  from ..models.server_failed import ServerFailed
227
224
  from ..models.server_hardware_failure import ServerHardwareFailure
228
225
  from ..models.server_restarted import ServerRestarted
229
- from ..models.server_unhealthy import ServerUnhealthy
230
226
  from ..models.service_resumed import ServiceResumed
231
227
  from ..models.service_suspended import ServiceSuspended
232
228
  from ..models.suspender_added import SuspenderAdded
@@ -305,8 +301,6 @@ class Event:
305
301
  details = self.details.to_dict()
306
302
  elif isinstance(self.details, ServerRestarted):
307
303
  details = self.details.to_dict()
308
- elif isinstance(self.details, ServerUnhealthy):
309
- details = self.details.to_dict()
310
304
  elif isinstance(self.details, ServiceResumed):
311
305
  details = self.details.to_dict()
312
306
  elif isinstance(self.details, ServiceSuspended):
@@ -439,7 +433,6 @@ class Event:
439
433
  from ..models.server_failed import ServerFailed
440
434
  from ..models.server_hardware_failure import ServerHardwareFailure
441
435
  from ..models.server_restarted import ServerRestarted
442
- from ..models.server_unhealthy import ServerUnhealthy
443
436
  from ..models.service_resumed import ServiceResumed
444
437
  from ..models.service_suspended import ServiceSuspended
445
438
  from ..models.suspender_added import SuspenderAdded
@@ -514,7 +507,6 @@ class Event:
514
507
  "ServerFailed",
515
508
  "ServerHardwareFailure",
516
509
  "ServerRestarted",
517
- "ServerUnhealthy",
518
510
  "ServiceResumed",
519
511
  "ServiceSuspended",
520
512
  "SuspenderAdded",
@@ -773,7 +765,7 @@ class Event:
773
765
  try:
774
766
  if not isinstance(data, dict):
775
767
  raise TypeError()
776
- componentsschemasservice_event_details_type_31 = ServerUnhealthy.from_dict(data)
768
+ componentsschemasservice_event_details_type_31 = ServiceResumed.from_dict(data)
777
769
 
778
770
  return componentsschemasservice_event_details_type_31
779
771
  except: # noqa: E722
@@ -781,7 +773,7 @@ class Event:
781
773
  try:
782
774
  if not isinstance(data, dict):
783
775
  raise TypeError()
784
- componentsschemasservice_event_details_type_32 = ServiceResumed.from_dict(data)
776
+ componentsschemasservice_event_details_type_32 = ServiceSuspended.from_dict(data)
785
777
 
786
778
  return componentsschemasservice_event_details_type_32
787
779
  except: # noqa: E722
@@ -789,7 +781,7 @@ class Event:
789
781
  try:
790
782
  if not isinstance(data, dict):
791
783
  raise TypeError()
792
- componentsschemasservice_event_details_type_33 = ServiceSuspended.from_dict(data)
784
+ componentsschemasservice_event_details_type_33 = SuspenderAdded.from_dict(data)
793
785
 
794
786
  return componentsschemasservice_event_details_type_33
795
787
  except: # noqa: E722
@@ -797,7 +789,7 @@ class Event:
797
789
  try:
798
790
  if not isinstance(data, dict):
799
791
  raise TypeError()
800
- componentsschemasservice_event_details_type_34 = SuspenderAdded.from_dict(data)
792
+ componentsschemasservice_event_details_type_34 = SuspenderRemoved.from_dict(data)
801
793
 
802
794
  return componentsschemasservice_event_details_type_34
803
795
  except: # noqa: E722
@@ -805,7 +797,7 @@ class Event:
805
797
  try:
806
798
  if not isinstance(data, dict):
807
799
  raise TypeError()
808
- componentsschemasservice_event_details_type_35 = SuspenderRemoved.from_dict(data)
800
+ componentsschemasservice_event_details_type_35 = ZeroDowntimeRedeployEnded.from_dict(data)
809
801
 
810
802
  return componentsschemasservice_event_details_type_35
811
803
  except: # noqa: E722
@@ -813,7 +805,7 @@ class Event:
813
805
  try:
814
806
  if not isinstance(data, dict):
815
807
  raise TypeError()
816
- componentsschemasservice_event_details_type_36 = ZeroDowntimeRedeployEnded.from_dict(data)
808
+ componentsschemasservice_event_details_type_36 = ZeroDowntimeRedeployStarted.from_dict(data)
817
809
 
818
810
  return componentsschemasservice_event_details_type_36
819
811
  except: # noqa: E722
@@ -821,7 +813,7 @@ class Event:
821
813
  try:
822
814
  if not isinstance(data, dict):
823
815
  raise TypeError()
824
- componentsschemasservice_event_details_type_37 = ZeroDowntimeRedeployStarted.from_dict(data)
816
+ componentsschemasservice_event_details_type_37 = EdgeCacheDisabled.from_dict(data)
825
817
 
826
818
  return componentsschemasservice_event_details_type_37
827
819
  except: # noqa: E722
@@ -829,7 +821,7 @@ class Event:
829
821
  try:
830
822
  if not isinstance(data, dict):
831
823
  raise TypeError()
832
- componentsschemasservice_event_details_type_38 = EdgeCacheDisabled.from_dict(data)
824
+ componentsschemasservice_event_details_type_38 = EdgeCacheEnabled.from_dict(data)
833
825
 
834
826
  return componentsschemasservice_event_details_type_38
835
827
  except: # noqa: E722
@@ -837,19 +829,11 @@ class Event:
837
829
  try:
838
830
  if not isinstance(data, dict):
839
831
  raise TypeError()
840
- componentsschemasservice_event_details_type_39 = EdgeCacheEnabled.from_dict(data)
832
+ componentsschemasservice_event_details_type_39 = EdgeCachePurged.from_dict(data)
841
833
 
842
834
  return componentsschemasservice_event_details_type_39
843
835
  except: # noqa: E722
844
836
  pass
845
- try:
846
- if not isinstance(data, dict):
847
- raise TypeError()
848
- componentsschemasservice_event_details_type_40 = EdgeCachePurged.from_dict(data)
849
-
850
- return componentsschemasservice_event_details_type_40
851
- except: # noqa: E722
852
- pass
853
837
  try:
854
838
  if not isinstance(data, dict):
855
839
  raise TypeError()
@@ -37,6 +37,7 @@ class EventType(str, Enum):
37
37
  POSTGRES_BACKUP_STARTED = "postgres_backup_started"
38
38
  POSTGRES_CLUSTER_LEADER_CHANGED = "postgres_cluster_leader_changed"
39
39
  POSTGRES_CREATED = "postgres_created"
40
+ POSTGRES_DISK_AUTOSCALING_ENABLED_CHANGED = "postgres_disk_autoscaling_enabled_changed"
40
41
  POSTGRES_DISK_SIZE_CHANGED = "postgres_disk_size_changed"
41
42
  POSTGRES_HA_STATUS_CHANGED = "postgres_ha_status_changed"
42
43
  POSTGRES_PITR_CHECKPOINT_COMPLETED = "postgres_pitr_checkpoint_completed"
@@ -58,7 +59,6 @@ class EventType(str, Enum):
58
59
  SERVER_FAILED = "server_failed"
59
60
  SERVER_HARDWARE_FAILURE = "server_hardware_failure"
60
61
  SERVER_RESTARTED = "server_restarted"
61
- SERVER_UNHEALTHY = "server_unhealthy"
62
62
  SERVICE_RESUMED = "service_resumed"
63
63
  SERVICE_SUSPENDED = "service_suspended"
64
64
  ZERO_DOWNTIME_REDEPLOY_ENDED = "zero_downtime_redeploy_ended"
@@ -0,0 +1,75 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar, Union
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ if TYPE_CHECKING:
10
+ from ..models.get_bandwidth_sources_response_200_data_item import GetBandwidthSourcesResponse200DataItem
11
+
12
+
13
+ T = TypeVar("T", bound="GetBandwidthSourcesResponse200")
14
+
15
+
16
+ @_attrs_define
17
+ class GetBandwidthSourcesResponse200:
18
+ """
19
+ Attributes:
20
+ data (Union[Unset, list['GetBandwidthSourcesResponse200DataItem']]):
21
+ """
22
+
23
+ data: Union[Unset, list["GetBandwidthSourcesResponse200DataItem"]] = UNSET
24
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
+
26
+ def to_dict(self) -> dict[str, Any]:
27
+ data: Union[Unset, list[dict[str, Any]]] = UNSET
28
+ if not isinstance(self.data, Unset):
29
+ data = []
30
+ for data_item_data in self.data:
31
+ data_item = data_item_data.to_dict()
32
+ data.append(data_item)
33
+
34
+ field_dict: dict[str, Any] = {}
35
+ field_dict.update(self.additional_properties)
36
+ field_dict.update({})
37
+ if data is not UNSET:
38
+ field_dict["data"] = data
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
44
+ from ..models.get_bandwidth_sources_response_200_data_item import GetBandwidthSourcesResponse200DataItem
45
+
46
+ d = dict(src_dict)
47
+ data = []
48
+ _data = d.pop("data", UNSET)
49
+ for data_item_data in _data or []:
50
+ data_item = GetBandwidthSourcesResponse200DataItem.from_dict(data_item_data)
51
+
52
+ data.append(data_item)
53
+
54
+ get_bandwidth_sources_response_200 = cls(
55
+ data=data,
56
+ )
57
+
58
+ get_bandwidth_sources_response_200.additional_properties = d
59
+ return get_bandwidth_sources_response_200
60
+
61
+ @property
62
+ def additional_keys(self) -> list[str]:
63
+ return list(self.additional_properties.keys())
64
+
65
+ def __getitem__(self, key: str) -> Any:
66
+ return self.additional_properties[key]
67
+
68
+ def __setitem__(self, key: str, value: Any) -> None:
69
+ self.additional_properties[key] = value
70
+
71
+ def __delitem__(self, key: str) -> None:
72
+ del self.additional_properties[key]
73
+
74
+ def __contains__(self, key: str) -> bool:
75
+ return key in self.additional_properties
@@ -0,0 +1,101 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar, Union
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ if TYPE_CHECKING:
10
+ from ..models.get_bandwidth_sources_response_200_data_item_labels import (
11
+ GetBandwidthSourcesResponse200DataItemLabels,
12
+ )
13
+ from ..models.get_bandwidth_sources_response_200_data_item_values_item import (
14
+ GetBandwidthSourcesResponse200DataItemValuesItem,
15
+ )
16
+
17
+
18
+ T = TypeVar("T", bound="GetBandwidthSourcesResponse200DataItem")
19
+
20
+
21
+ @_attrs_define
22
+ class GetBandwidthSourcesResponse200DataItem:
23
+ """
24
+ Attributes:
25
+ labels (Union[Unset, GetBandwidthSourcesResponse200DataItemLabels]):
26
+ values (Union[Unset, list['GetBandwidthSourcesResponse200DataItemValuesItem']]):
27
+ """
28
+
29
+ labels: Union[Unset, "GetBandwidthSourcesResponse200DataItemLabels"] = UNSET
30
+ values: Union[Unset, list["GetBandwidthSourcesResponse200DataItemValuesItem"]] = UNSET
31
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
32
+
33
+ def to_dict(self) -> dict[str, Any]:
34
+ labels: Union[Unset, dict[str, Any]] = UNSET
35
+ if not isinstance(self.labels, Unset):
36
+ labels = self.labels.to_dict()
37
+
38
+ values: Union[Unset, list[dict[str, Any]]] = UNSET
39
+ if not isinstance(self.values, Unset):
40
+ values = []
41
+ for values_item_data in self.values:
42
+ values_item = values_item_data.to_dict()
43
+ values.append(values_item)
44
+
45
+ field_dict: dict[str, Any] = {}
46
+ field_dict.update(self.additional_properties)
47
+ field_dict.update({})
48
+ if labels is not UNSET:
49
+ field_dict["labels"] = labels
50
+ if values is not UNSET:
51
+ field_dict["values"] = values
52
+
53
+ return field_dict
54
+
55
+ @classmethod
56
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
57
+ from ..models.get_bandwidth_sources_response_200_data_item_labels import (
58
+ GetBandwidthSourcesResponse200DataItemLabels,
59
+ )
60
+ from ..models.get_bandwidth_sources_response_200_data_item_values_item import (
61
+ GetBandwidthSourcesResponse200DataItemValuesItem,
62
+ )
63
+
64
+ d = dict(src_dict)
65
+ _labels = d.pop("labels", UNSET)
66
+ labels: Union[Unset, GetBandwidthSourcesResponse200DataItemLabels]
67
+ if isinstance(_labels, Unset):
68
+ labels = UNSET
69
+ else:
70
+ labels = GetBandwidthSourcesResponse200DataItemLabels.from_dict(_labels)
71
+
72
+ values = []
73
+ _values = d.pop("values", UNSET)
74
+ for values_item_data in _values or []:
75
+ values_item = GetBandwidthSourcesResponse200DataItemValuesItem.from_dict(values_item_data)
76
+
77
+ values.append(values_item)
78
+
79
+ get_bandwidth_sources_response_200_data_item = cls(
80
+ labels=labels,
81
+ values=values,
82
+ )
83
+
84
+ get_bandwidth_sources_response_200_data_item.additional_properties = d
85
+ return get_bandwidth_sources_response_200_data_item
86
+
87
+ @property
88
+ def additional_keys(self) -> list[str]:
89
+ return list(self.additional_properties.keys())
90
+
91
+ def __getitem__(self, key: str) -> Any:
92
+ return self.additional_properties[key]
93
+
94
+ def __setitem__(self, key: str, value: Any) -> None:
95
+ self.additional_properties[key] = value
96
+
97
+ def __delitem__(self, key: str) -> None:
98
+ del self.additional_properties[key]
99
+
100
+ def __contains__(self, key: str) -> bool:
101
+ return key in self.additional_properties
@@ -0,0 +1,78 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..models.get_bandwidth_sources_response_200_data_item_labels_traffic_source import (
8
+ GetBandwidthSourcesResponse200DataItemLabelsTrafficSource,
9
+ )
10
+ from ..types import UNSET, Unset
11
+
12
+ T = TypeVar("T", bound="GetBandwidthSourcesResponse200DataItemLabels")
13
+
14
+
15
+ @_attrs_define
16
+ class GetBandwidthSourcesResponse200DataItemLabels:
17
+ """
18
+ Attributes:
19
+ resource (Union[Unset, str]): Example: srv-abc123.
20
+ traffic_source (Union[Unset, GetBandwidthSourcesResponse200DataItemLabelsTrafficSource]): Example: http.
21
+ """
22
+
23
+ resource: Union[Unset, str] = UNSET
24
+ traffic_source: Union[Unset, GetBandwidthSourcesResponse200DataItemLabelsTrafficSource] = UNSET
25
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> dict[str, Any]:
28
+ resource = self.resource
29
+
30
+ traffic_source: Union[Unset, str] = UNSET
31
+ if not isinstance(self.traffic_source, Unset):
32
+ traffic_source = self.traffic_source.value
33
+
34
+ field_dict: dict[str, Any] = {}
35
+ field_dict.update(self.additional_properties)
36
+ field_dict.update({})
37
+ if resource is not UNSET:
38
+ field_dict["resource"] = resource
39
+ if traffic_source is not UNSET:
40
+ field_dict["trafficSource"] = traffic_source
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
+ resource = d.pop("resource", UNSET)
48
+
49
+ _traffic_source = d.pop("trafficSource", UNSET)
50
+ traffic_source: Union[Unset, GetBandwidthSourcesResponse200DataItemLabelsTrafficSource]
51
+ if isinstance(_traffic_source, Unset):
52
+ traffic_source = UNSET
53
+ else:
54
+ traffic_source = GetBandwidthSourcesResponse200DataItemLabelsTrafficSource(_traffic_source)
55
+
56
+ get_bandwidth_sources_response_200_data_item_labels = cls(
57
+ resource=resource,
58
+ traffic_source=traffic_source,
59
+ )
60
+
61
+ get_bandwidth_sources_response_200_data_item_labels.additional_properties = d
62
+ return get_bandwidth_sources_response_200_data_item_labels
63
+
64
+ @property
65
+ def additional_keys(self) -> list[str]:
66
+ return list(self.additional_properties.keys())
67
+
68
+ def __getitem__(self, key: str) -> Any:
69
+ return self.additional_properties[key]
70
+
71
+ def __setitem__(self, key: str, value: Any) -> None:
72
+ self.additional_properties[key] = value
73
+
74
+ def __delitem__(self, key: str) -> None:
75
+ del self.additional_properties[key]
76
+
77
+ def __contains__(self, key: str) -> bool:
78
+ return key in self.additional_properties
@@ -0,0 +1,12 @@
1
+ from enum import Enum
2
+
3
+
4
+ class GetBandwidthSourcesResponse200DataItemLabelsTrafficSource(str, Enum):
5
+ HTTP = "http"
6
+ NAT = "nat"
7
+ PRIVATELINK = "privatelink"
8
+ TOTAL = "total"
9
+ WEBSOCKET = "websocket"
10
+
11
+ def __str__(self) -> str:
12
+ return str(self.value)
@@ -0,0 +1,68 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ T = TypeVar("T", bound="GetBandwidthSourcesResponse200DataItemValuesItem")
10
+
11
+
12
+ @_attrs_define
13
+ class GetBandwidthSourcesResponse200DataItemValuesItem:
14
+ """
15
+ Attributes:
16
+ timestamp (Union[Unset, int]): Example: 1709856000.
17
+ value (Union[Unset, float]): Example: 100.
18
+ """
19
+
20
+ timestamp: Union[Unset, int] = UNSET
21
+ value: Union[Unset, float] = UNSET
22
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
23
+
24
+ def to_dict(self) -> dict[str, Any]:
25
+ timestamp = self.timestamp
26
+
27
+ value = self.value
28
+
29
+ field_dict: dict[str, Any] = {}
30
+ field_dict.update(self.additional_properties)
31
+ field_dict.update({})
32
+ if timestamp is not UNSET:
33
+ field_dict["timestamp"] = timestamp
34
+ if value is not UNSET:
35
+ field_dict["value"] = value
36
+
37
+ return field_dict
38
+
39
+ @classmethod
40
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
41
+ d = dict(src_dict)
42
+ timestamp = d.pop("timestamp", UNSET)
43
+
44
+ value = d.pop("value", UNSET)
45
+
46
+ get_bandwidth_sources_response_200_data_item_values_item = cls(
47
+ timestamp=timestamp,
48
+ value=value,
49
+ )
50
+
51
+ get_bandwidth_sources_response_200_data_item_values_item.additional_properties = d
52
+ return get_bandwidth_sources_response_200_data_item_values_item
53
+
54
+ @property
55
+ def additional_keys(self) -> list[str]:
56
+ return list(self.additional_properties.keys())
57
+
58
+ def __getitem__(self, key: str) -> Any:
59
+ return self.additional_properties[key]
60
+
61
+ def __setitem__(self, key: str, value: Any) -> None:
62
+ self.additional_properties[key] = value
63
+
64
+ def __delitem__(self, key: str) -> None:
65
+ del self.additional_properties[key]
66
+
67
+ def __contains__(self, key: str) -> bool:
68
+ return key in self.additional_properties
@@ -6,41 +6,41 @@ from attrs import field as _attrs_field
6
6
 
7
7
  from ..types import UNSET, Unset
8
8
 
9
- T = TypeVar("T", bound="ServerUnhealthy")
9
+ T = TypeVar("T", bound="GetBandwidthSourcesResponse400")
10
10
 
11
11
 
12
12
  @_attrs_define
13
- class ServerUnhealthy:
13
+ class GetBandwidthSourcesResponse400:
14
14
  """
15
15
  Attributes:
16
- instance_id (Union[Unset, str]): Example: srv-d0cjkelq67qs70c2pugg-sbpkm.
16
+ error (Union[Unset, str]): Example: bandwidth sources data is only available after 2025-03-09.
17
17
  """
18
18
 
19
- instance_id: Union[Unset, str] = UNSET
19
+ error: Union[Unset, str] = UNSET
20
20
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
21
21
 
22
22
  def to_dict(self) -> dict[str, Any]:
23
- instance_id = self.instance_id
23
+ error = self.error
24
24
 
25
25
  field_dict: dict[str, Any] = {}
26
26
  field_dict.update(self.additional_properties)
27
27
  field_dict.update({})
28
- if instance_id is not UNSET:
29
- field_dict["instanceID"] = instance_id
28
+ if error is not UNSET:
29
+ field_dict["error"] = error
30
30
 
31
31
  return field_dict
32
32
 
33
33
  @classmethod
34
34
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
35
35
  d = dict(src_dict)
36
- instance_id = d.pop("instanceID", UNSET)
36
+ error = d.pop("error", UNSET)
37
37
 
38
- server_unhealthy = cls(
39
- instance_id=instance_id,
38
+ get_bandwidth_sources_response_400 = cls(
39
+ error=error,
40
40
  )
41
41
 
42
- server_unhealthy.additional_properties = d
43
- return server_unhealthy
42
+ get_bandwidth_sources_response_400.additional_properties = d
43
+ return get_bandwidth_sources_response_400
44
44
 
45
45
  @property
46
46
  def additional_keys(self) -> list[str]:
@@ -0,0 +1,71 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import Any, TypeVar
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+ from dateutil.parser import isoparse
8
+
9
+ T = TypeVar("T", bound="GetBlobOutput")
10
+
11
+
12
+ @_attrs_define
13
+ class GetBlobOutput:
14
+ """
15
+ Attributes:
16
+ url (str): Presigned URL for downloading the blob Example: https://example-bucket.s3.amazonaws.com/presigned-
17
+ get-url.
18
+ expires_at (datetime.datetime): The time at which the presigned URL expires (ISO 8601 format) Example:
19
+ 2024-01-15T12:30:00Z.
20
+ """
21
+
22
+ url: str
23
+ expires_at: datetime.datetime
24
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
+
26
+ def to_dict(self) -> dict[str, Any]:
27
+ url = self.url
28
+
29
+ expires_at = self.expires_at.isoformat()
30
+
31
+ field_dict: dict[str, Any] = {}
32
+ field_dict.update(self.additional_properties)
33
+ field_dict.update(
34
+ {
35
+ "url": url,
36
+ "expiresAt": expires_at,
37
+ }
38
+ )
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
44
+ d = dict(src_dict)
45
+ url = d.pop("url")
46
+
47
+ expires_at = isoparse(d.pop("expiresAt"))
48
+
49
+ get_blob_output = cls(
50
+ url=url,
51
+ expires_at=expires_at,
52
+ )
53
+
54
+ get_blob_output.additional_properties = d
55
+ return get_blob_output
56
+
57
+ @property
58
+ def additional_keys(self) -> list[str]:
59
+ return list(self.additional_properties.keys())
60
+
61
+ def __getitem__(self, key: str) -> Any:
62
+ return self.additional_properties[key]
63
+
64
+ def __setitem__(self, key: str, value: Any) -> None:
65
+ self.additional_properties[key] = value
66
+
67
+ def __delitem__(self, key: str) -> None:
68
+ del self.additional_properties[key]
69
+
70
+ def __contains__(self, key: str) -> bool:
71
+ return key in self.additional_properties