render_sdk 0.1.3__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 (150) 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/workflows.py +10 -2
  8. render_sdk/experimental/__init__.py +31 -0
  9. render_sdk/experimental/experimental.py +71 -0
  10. render_sdk/experimental/object/__init__.py +30 -0
  11. render_sdk/experimental/object/api.py +260 -0
  12. render_sdk/experimental/object/client.py +475 -0
  13. render_sdk/experimental/object/types.py +87 -0
  14. render_sdk/public_api/api/audit_logs/list_organization_audit_logs.py +303 -0
  15. render_sdk/public_api/api/audit_logs/list_owner_audit_logs.py +303 -0
  16. render_sdk/public_api/api/blob_storage/delete_blob.py +215 -0
  17. render_sdk/public_api/api/blob_storage/get_blob.py +221 -0
  18. render_sdk/public_api/api/{workflows/list_workflow_versions.py → blob_storage/list_blobs.py} +52 -30
  19. render_sdk/public_api/api/blob_storage/put_blob.py +248 -0
  20. render_sdk/public_api/api/blueprints/validate_blueprint.py +212 -0
  21. render_sdk/public_api/api/key_value/resume_key_value.py +203 -0
  22. render_sdk/public_api/api/key_value/suspend_key_value.py +203 -0
  23. render_sdk/public_api/api/metrics/get_bandwidth_sources.py +251 -0
  24. render_sdk/public_api/api/postgres/create_postgres_user.py +229 -0
  25. render_sdk/public_api/api/postgres/delete_postgres_user.py +201 -0
  26. render_sdk/public_api/api/postgres/list_postgres_users.py +195 -0
  27. render_sdk/public_api/api/redis_deprecated/__init__.py +1 -0
  28. render_sdk/public_api/api/{redis → redis_deprecated}/create_redis.py +4 -4
  29. render_sdk/public_api/api/{redis → redis_deprecated}/delete_redis.py +4 -4
  30. render_sdk/public_api/api/{redis → redis_deprecated}/list_redis.py +4 -0
  31. render_sdk/public_api/api/{redis → redis_deprecated}/retrieve_redis.py +4 -4
  32. render_sdk/public_api/api/{redis → redis_deprecated}/retrieve_redis_connection_info.py +4 -0
  33. render_sdk/public_api/api/{redis → redis_deprecated}/update_redis.py +4 -4
  34. render_sdk/public_api/api/services/create_service.py +4 -4
  35. render_sdk/public_api/api/workflow_tasks_ea/__init__.py +1 -0
  36. render_sdk/public_api/api/{workflows → workflow_tasks_ea}/cancel_task_run.py +12 -4
  37. render_sdk/public_api/api/{workflows → workflow_tasks_ea}/create_task.py +12 -4
  38. render_sdk/public_api/api/{workflows → workflow_tasks_ea}/get_task.py +12 -4
  39. render_sdk/public_api/api/{workflows → workflow_tasks_ea}/get_task_run.py +12 -4
  40. render_sdk/public_api/api/{workflows → workflow_tasks_ea}/list_task_runs.py +12 -0
  41. render_sdk/public_api/api/{workflows → workflow_tasks_ea}/list_tasks.py +24 -12
  42. render_sdk/public_api/api/workflows_ea/__init__.py +1 -0
  43. render_sdk/public_api/api/workflows_ea/create_workflow.py +199 -0
  44. render_sdk/public_api/api/{workflows/deploy_workflow.py → workflows_ea/create_workflow_version.py} +31 -14
  45. render_sdk/public_api/api/{workflows → workflows_ea}/delete_workflow.py +12 -4
  46. render_sdk/public_api/api/{workflows → workflows_ea}/get_workflow.py +32 -14
  47. render_sdk/public_api/api/{workflows → workflows_ea}/get_workflow_version.py +12 -4
  48. render_sdk/public_api/api/workflows_ea/list_workflow_versions.py +275 -0
  49. render_sdk/public_api/api/{workflows → workflows_ea}/list_workflows.py +41 -14
  50. render_sdk/public_api/api/workflows_ea/update_workflow.py +212 -0
  51. render_sdk/public_api/api/workspaces/remove_workspace_member.py +206 -0
  52. render_sdk/public_api/api/workspaces/update_workspace_member.py +235 -0
  53. render_sdk/public_api/models/__init__.py +82 -4
  54. render_sdk/public_api/models/audit_log.py +113 -0
  55. render_sdk/public_api/models/audit_log_actor.py +80 -0
  56. render_sdk/public_api/models/audit_log_actor_type.py +10 -0
  57. render_sdk/public_api/models/audit_log_event.py +80 -0
  58. render_sdk/public_api/models/audit_log_metadata.py +49 -0
  59. render_sdk/public_api/models/audit_log_status.py +9 -0
  60. render_sdk/public_api/models/audit_log_with_cursor.py +73 -0
  61. render_sdk/public_api/models/background_worker_details.py +2 -2
  62. render_sdk/public_api/models/background_worker_details_patch.py +1 -1
  63. render_sdk/public_api/models/background_worker_details_post.py +1 -1
  64. render_sdk/public_api/models/blob_metadata.py +85 -0
  65. render_sdk/public_api/models/blob_with_cursor.py +73 -0
  66. render_sdk/public_api/models/cache.py +6 -4
  67. render_sdk/public_api/models/cache_profile.py +10 -0
  68. render_sdk/public_api/models/create_deploy_body.py +23 -0
  69. render_sdk/public_api/models/create_version.py +70 -0
  70. render_sdk/public_api/models/credential_create_input.py +59 -0
  71. render_sdk/public_api/models/cron_job_details.py +2 -2
  72. render_sdk/public_api/models/cron_job_details_patch.py +1 -1
  73. render_sdk/public_api/models/cron_job_details_post.py +1 -1
  74. render_sdk/public_api/models/deploy_mode.py +9 -0
  75. render_sdk/public_api/models/event.py +11 -27
  76. render_sdk/public_api/models/event_type.py +1 -1
  77. render_sdk/public_api/models/get_bandwidth_sources_response_200.py +75 -0
  78. render_sdk/public_api/models/get_bandwidth_sources_response_200_data_item.py +101 -0
  79. render_sdk/public_api/models/get_bandwidth_sources_response_200_data_item_labels.py +78 -0
  80. render_sdk/public_api/models/get_bandwidth_sources_response_200_data_item_labels_traffic_source.py +12 -0
  81. render_sdk/public_api/models/get_bandwidth_sources_response_200_data_item_values_item.py +68 -0
  82. render_sdk/public_api/models/{server_unhealthy.py → get_bandwidth_sources_response_400.py} +12 -12
  83. render_sdk/public_api/models/get_blob_output.py +71 -0
  84. render_sdk/public_api/models/list_postgres_users_response_200_item.py +86 -0
  85. render_sdk/public_api/models/otel_provider_type.py +2 -0
  86. render_sdk/public_api/models/postgres.py +8 -0
  87. render_sdk/public_api/models/postgres_detail.py +26 -0
  88. render_sdk/public_api/models/postgres_parameter_overrides.py +44 -0
  89. render_sdk/public_api/models/postgres_patch_input.py +27 -0
  90. render_sdk/public_api/models/postgres_post_input.py +27 -0
  91. render_sdk/public_api/models/postgres_version.py +1 -0
  92. render_sdk/public_api/models/preview_input.py +2 -2
  93. render_sdk/public_api/models/private_service_details.py +2 -2
  94. render_sdk/public_api/models/private_service_details_patch.py +1 -1
  95. render_sdk/public_api/models/private_service_details_post.py +1 -1
  96. render_sdk/public_api/models/project_post_environment_input.py +26 -1
  97. render_sdk/public_api/models/put_blob_input.py +59 -0
  98. render_sdk/public_api/models/put_blob_output.py +79 -0
  99. render_sdk/public_api/models/read_replica.py +25 -1
  100. render_sdk/public_api/models/read_replica_input.py +25 -1
  101. render_sdk/public_api/models/run_task.py +35 -7
  102. render_sdk/public_api/models/service_event.py +12 -27
  103. render_sdk/public_api/models/service_event_type.py +0 -1
  104. render_sdk/public_api/models/service_post.py +9 -6
  105. render_sdk/public_api/models/task_attempt.py +88 -0
  106. render_sdk/public_api/models/task_attempt_details.py +108 -0
  107. render_sdk/public_api/models/task_data_type_1.py +44 -0
  108. render_sdk/public_api/models/task_run.py +23 -1
  109. render_sdk/public_api/models/task_run_details.py +50 -5
  110. render_sdk/public_api/models/task_run_status.py +1 -0
  111. render_sdk/public_api/models/task_with_cursor.py +73 -0
  112. render_sdk/public_api/models/team_member.py +5 -4
  113. render_sdk/public_api/models/team_member_role.py +12 -0
  114. render_sdk/public_api/models/update_workspace_member_body.py +61 -0
  115. render_sdk/public_api/models/validate_blueprint_request.py +84 -0
  116. render_sdk/public_api/models/validate_blueprint_response.py +105 -0
  117. render_sdk/public_api/models/validation_error.py +88 -0
  118. render_sdk/public_api/models/validation_plan_summary.py +107 -0
  119. render_sdk/public_api/models/web_service_details.py +2 -2
  120. render_sdk/public_api/models/web_service_details_patch.py +6 -5
  121. render_sdk/public_api/models/web_service_details_post.py +6 -5
  122. render_sdk/public_api/models/workflow.py +144 -0
  123. render_sdk/public_api/models/workflow_create.py +99 -0
  124. render_sdk/public_api/models/workflow_update.py +90 -0
  125. render_sdk/public_api/models/workflow_version.py +10 -14
  126. render_sdk/public_api/models/workflow_version_status.py +13 -0
  127. render_sdk/public_api/models/workflow_version_with_cursor.py +73 -0
  128. render_sdk/public_api/models/workflow_with_cursor.py +73 -0
  129. render_sdk/render.py +65 -0
  130. render_sdk/version.py +27 -0
  131. render_sdk/workflows/__init__.py +5 -1
  132. render_sdk/workflows/app.py +262 -0
  133. render_sdk/workflows/callback_api/models/task_options.py +18 -0
  134. render_sdk/workflows/cli.py +58 -0
  135. render_sdk/workflows/client.py +2 -7
  136. render_sdk/workflows/runner.py +12 -7
  137. render_sdk/workflows/task.py +11 -2
  138. render_sdk/workflows/tests/test_app.py +412 -0
  139. render_sdk/workflows/tests/test_cli.py +134 -0
  140. render_sdk/workflows/tests/test_end_to_end.py +69 -1
  141. render_sdk/workflows/tests/test_registration.py +56 -1
  142. {render_sdk-0.1.3.dist-info → render_sdk-0.2.0.dist-info}/METADATA +1 -1
  143. {render_sdk-0.1.3.dist-info → render_sdk-0.2.0.dist-info}/RECORD +149 -78
  144. render_sdk-0.2.0.dist-info/entry_points.txt +3 -0
  145. render_sdk/public_api/models/image_version.py +0 -79
  146. /render_sdk/public_api/api/{redis → audit_logs}/__init__.py +0 -0
  147. /render_sdk/public_api/api/{workflows → blob_storage}/__init__.py +0 -0
  148. /render_sdk/public_api/api/{workflows → workflow_tasks_ea}/stream_task_runs_events.py +0 -0
  149. {render_sdk-0.1.3.dist-info → render_sdk-0.2.0.dist-info}/WHEEL +0 -0
  150. {render_sdk-0.1.3.dist-info → render_sdk-0.2.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,203 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Optional, Union, cast
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.error import Error
9
+ from ...types import Response
10
+
11
+
12
+ def _get_kwargs(
13
+ key_value_id: str,
14
+ ) -> dict[str, Any]:
15
+ _kwargs: dict[str, Any] = {
16
+ "method": "post",
17
+ "url": f"/key-value/{key_value_id}/suspend",
18
+ }
19
+
20
+ return _kwargs
21
+
22
+
23
+ def _parse_response(
24
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
25
+ ) -> Optional[Union[Any, Error]]:
26
+ if response.status_code == 202:
27
+ response_202 = cast(Any, None)
28
+ return response_202
29
+
30
+ if response.status_code == 400:
31
+ response_400 = Error.from_dict(response.json())
32
+
33
+ return response_400
34
+
35
+ if response.status_code == 401:
36
+ response_401 = Error.from_dict(response.json())
37
+
38
+ return response_401
39
+
40
+ if response.status_code == 403:
41
+ response_403 = Error.from_dict(response.json())
42
+
43
+ return response_403
44
+
45
+ if response.status_code == 404:
46
+ response_404 = Error.from_dict(response.json())
47
+
48
+ return response_404
49
+
50
+ if response.status_code == 406:
51
+ response_406 = Error.from_dict(response.json())
52
+
53
+ return response_406
54
+
55
+ if response.status_code == 410:
56
+ response_410 = Error.from_dict(response.json())
57
+
58
+ return response_410
59
+
60
+ if response.status_code == 429:
61
+ response_429 = Error.from_dict(response.json())
62
+
63
+ return response_429
64
+
65
+ if response.status_code == 500:
66
+ response_500 = Error.from_dict(response.json())
67
+
68
+ return response_500
69
+
70
+ if response.status_code == 503:
71
+ response_503 = Error.from_dict(response.json())
72
+
73
+ return response_503
74
+
75
+ if client.raise_on_unexpected_status:
76
+ raise errors.UnexpectedStatus(response.status_code, response.content)
77
+ else:
78
+ return None
79
+
80
+
81
+ def _build_response(
82
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
83
+ ) -> Response[Union[Any, Error]]:
84
+ return Response(
85
+ status_code=HTTPStatus(response.status_code),
86
+ content=response.content,
87
+ headers=response.headers,
88
+ parsed=_parse_response(client=client, response=response),
89
+ )
90
+
91
+
92
+ def sync_detailed(
93
+ key_value_id: str,
94
+ *,
95
+ client: Union[AuthenticatedClient, Client],
96
+ ) -> Response[Union[Any, Error]]:
97
+ """Suspend Key Value instance
98
+
99
+ Suspend a Key Value instance by ID.
100
+
101
+ Args:
102
+ key_value_id (str):
103
+
104
+ Raises:
105
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
106
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
107
+
108
+ Returns:
109
+ Response[Union[Any, Error]]
110
+ """
111
+
112
+ kwargs = _get_kwargs(
113
+ key_value_id=key_value_id,
114
+ )
115
+
116
+ response = client.get_httpx_client().request(
117
+ **kwargs,
118
+ )
119
+
120
+ return _build_response(client=client, response=response)
121
+
122
+
123
+ def sync(
124
+ key_value_id: str,
125
+ *,
126
+ client: Union[AuthenticatedClient, Client],
127
+ ) -> Optional[Union[Any, Error]]:
128
+ """Suspend Key Value instance
129
+
130
+ Suspend a Key Value instance by ID.
131
+
132
+ Args:
133
+ key_value_id (str):
134
+
135
+ Raises:
136
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
137
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
138
+
139
+ Returns:
140
+ Union[Any, Error]
141
+ """
142
+
143
+ return sync_detailed(
144
+ key_value_id=key_value_id,
145
+ client=client,
146
+ ).parsed
147
+
148
+
149
+ async def asyncio_detailed(
150
+ key_value_id: str,
151
+ *,
152
+ client: Union[AuthenticatedClient, Client],
153
+ ) -> Response[Union[Any, Error]]:
154
+ """Suspend Key Value instance
155
+
156
+ Suspend a Key Value instance by ID.
157
+
158
+ Args:
159
+ key_value_id (str):
160
+
161
+ Raises:
162
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
163
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
164
+
165
+ Returns:
166
+ Response[Union[Any, Error]]
167
+ """
168
+
169
+ kwargs = _get_kwargs(
170
+ key_value_id=key_value_id,
171
+ )
172
+
173
+ response = await client.get_async_httpx_client().request(**kwargs)
174
+
175
+ return _build_response(client=client, response=response)
176
+
177
+
178
+ async def asyncio(
179
+ key_value_id: str,
180
+ *,
181
+ client: Union[AuthenticatedClient, Client],
182
+ ) -> Optional[Union[Any, Error]]:
183
+ """Suspend Key Value instance
184
+
185
+ Suspend a Key Value instance by ID.
186
+
187
+ Args:
188
+ key_value_id (str):
189
+
190
+ Raises:
191
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
192
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
193
+
194
+ Returns:
195
+ Union[Any, Error]
196
+ """
197
+
198
+ return (
199
+ await asyncio_detailed(
200
+ key_value_id=key_value_id,
201
+ client=client,
202
+ )
203
+ ).parsed
@@ -0,0 +1,251 @@
1
+ import datetime
2
+ from http import HTTPStatus
3
+ from typing import Any, Optional, Union
4
+
5
+ import httpx
6
+
7
+ from ... import errors
8
+ from ...client import AuthenticatedClient, Client
9
+ from ...models.error import Error
10
+ from ...models.get_bandwidth_sources_response_200 import GetBandwidthSourcesResponse200
11
+ from ...models.get_bandwidth_sources_response_400 import GetBandwidthSourcesResponse400
12
+ from ...types import UNSET, Response, Unset
13
+
14
+
15
+ def _get_kwargs(
16
+ *,
17
+ start_time: Union[Unset, datetime.datetime] = UNSET,
18
+ end_time: Union[Unset, datetime.datetime] = UNSET,
19
+ resource: Union[Unset, str] = UNSET,
20
+ service: Union[Unset, str] = UNSET,
21
+ ) -> dict[str, Any]:
22
+ params: dict[str, Any] = {}
23
+
24
+ json_start_time: Union[Unset, str] = UNSET
25
+ if not isinstance(start_time, Unset):
26
+ json_start_time = start_time.isoformat()
27
+ params["startTime"] = json_start_time
28
+
29
+ json_end_time: Union[Unset, str] = UNSET
30
+ if not isinstance(end_time, Unset):
31
+ json_end_time = end_time.isoformat()
32
+ params["endTime"] = json_end_time
33
+
34
+ params["resource"] = resource
35
+
36
+ params["service"] = service
37
+
38
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
39
+
40
+ _kwargs: dict[str, Any] = {
41
+ "method": "get",
42
+ "url": "/metrics/bandwidth-sources",
43
+ "params": params,
44
+ }
45
+
46
+ return _kwargs
47
+
48
+
49
+ def _parse_response(
50
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
51
+ ) -> Optional[Union[Error, GetBandwidthSourcesResponse200, GetBandwidthSourcesResponse400]]:
52
+ if response.status_code == 200:
53
+ response_200 = GetBandwidthSourcesResponse200.from_dict(response.json())
54
+
55
+ return response_200
56
+
57
+ if response.status_code == 400:
58
+ response_400 = GetBandwidthSourcesResponse400.from_dict(response.json())
59
+
60
+ return response_400
61
+
62
+ if response.status_code == 500:
63
+ response_500 = Error.from_dict(response.json())
64
+
65
+ return response_500
66
+
67
+ if client.raise_on_unexpected_status:
68
+ raise errors.UnexpectedStatus(response.status_code, response.content)
69
+ else:
70
+ return None
71
+
72
+
73
+ def _build_response(
74
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
75
+ ) -> Response[Union[Error, GetBandwidthSourcesResponse200, GetBandwidthSourcesResponse400]]:
76
+ return Response(
77
+ status_code=HTTPStatus(response.status_code),
78
+ content=response.content,
79
+ headers=response.headers,
80
+ parsed=_parse_response(client=client, response=response),
81
+ )
82
+
83
+
84
+ def sync_detailed(
85
+ *,
86
+ client: Union[AuthenticatedClient, Client],
87
+ start_time: Union[Unset, datetime.datetime] = UNSET,
88
+ end_time: Union[Unset, datetime.datetime] = UNSET,
89
+ resource: Union[Unset, str] = UNSET,
90
+ service: Union[Unset, str] = UNSET,
91
+ ) -> Response[Union[Error, GetBandwidthSourcesResponse200, GetBandwidthSourcesResponse400]]:
92
+ """Get bandwidth usage breakdown by traffic source
93
+
94
+ Get bandwidth usage for one or more resources broken down by traffic source (HTTP, WebSocket, NAT,
95
+ PrivateLink).
96
+
97
+ Returns hourly data points with traffic source breakdown. Traffic source data is available from
98
+ March 9, 2025 onwards.
99
+ Queries for earlier dates will return a 400 Bad Request error.
100
+
101
+ Args:
102
+ start_time (Union[Unset, datetime.datetime]): Example: 2021-06-17T08:15:30Z.
103
+ end_time (Union[Unset, datetime.datetime]): Example: 2021-06-17T08:30:30Z.
104
+ resource (Union[Unset, str]): Example: srv-xxxxx.
105
+ service (Union[Unset, str]): Example: srv-xxxxx.
106
+
107
+ Raises:
108
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
109
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
110
+
111
+ Returns:
112
+ Response[Union[Error, GetBandwidthSourcesResponse200, GetBandwidthSourcesResponse400]]
113
+ """
114
+
115
+ kwargs = _get_kwargs(
116
+ start_time=start_time,
117
+ end_time=end_time,
118
+ resource=resource,
119
+ service=service,
120
+ )
121
+
122
+ response = client.get_httpx_client().request(
123
+ **kwargs,
124
+ )
125
+
126
+ return _build_response(client=client, response=response)
127
+
128
+
129
+ def sync(
130
+ *,
131
+ client: Union[AuthenticatedClient, Client],
132
+ start_time: Union[Unset, datetime.datetime] = UNSET,
133
+ end_time: Union[Unset, datetime.datetime] = UNSET,
134
+ resource: Union[Unset, str] = UNSET,
135
+ service: Union[Unset, str] = UNSET,
136
+ ) -> Optional[Union[Error, GetBandwidthSourcesResponse200, GetBandwidthSourcesResponse400]]:
137
+ """Get bandwidth usage breakdown by traffic source
138
+
139
+ Get bandwidth usage for one or more resources broken down by traffic source (HTTP, WebSocket, NAT,
140
+ PrivateLink).
141
+
142
+ Returns hourly data points with traffic source breakdown. Traffic source data is available from
143
+ March 9, 2025 onwards.
144
+ Queries for earlier dates will return a 400 Bad Request error.
145
+
146
+ Args:
147
+ start_time (Union[Unset, datetime.datetime]): Example: 2021-06-17T08:15:30Z.
148
+ end_time (Union[Unset, datetime.datetime]): Example: 2021-06-17T08:30:30Z.
149
+ resource (Union[Unset, str]): Example: srv-xxxxx.
150
+ service (Union[Unset, str]): Example: srv-xxxxx.
151
+
152
+ Raises:
153
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
154
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
155
+
156
+ Returns:
157
+ Union[Error, GetBandwidthSourcesResponse200, GetBandwidthSourcesResponse400]
158
+ """
159
+
160
+ return sync_detailed(
161
+ client=client,
162
+ start_time=start_time,
163
+ end_time=end_time,
164
+ resource=resource,
165
+ service=service,
166
+ ).parsed
167
+
168
+
169
+ async def asyncio_detailed(
170
+ *,
171
+ client: Union[AuthenticatedClient, Client],
172
+ start_time: Union[Unset, datetime.datetime] = UNSET,
173
+ end_time: Union[Unset, datetime.datetime] = UNSET,
174
+ resource: Union[Unset, str] = UNSET,
175
+ service: Union[Unset, str] = UNSET,
176
+ ) -> Response[Union[Error, GetBandwidthSourcesResponse200, GetBandwidthSourcesResponse400]]:
177
+ """Get bandwidth usage breakdown by traffic source
178
+
179
+ Get bandwidth usage for one or more resources broken down by traffic source (HTTP, WebSocket, NAT,
180
+ PrivateLink).
181
+
182
+ Returns hourly data points with traffic source breakdown. Traffic source data is available from
183
+ March 9, 2025 onwards.
184
+ Queries for earlier dates will return a 400 Bad Request error.
185
+
186
+ Args:
187
+ start_time (Union[Unset, datetime.datetime]): Example: 2021-06-17T08:15:30Z.
188
+ end_time (Union[Unset, datetime.datetime]): Example: 2021-06-17T08:30:30Z.
189
+ resource (Union[Unset, str]): Example: srv-xxxxx.
190
+ service (Union[Unset, str]): Example: srv-xxxxx.
191
+
192
+ Raises:
193
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
194
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
195
+
196
+ Returns:
197
+ Response[Union[Error, GetBandwidthSourcesResponse200, GetBandwidthSourcesResponse400]]
198
+ """
199
+
200
+ kwargs = _get_kwargs(
201
+ start_time=start_time,
202
+ end_time=end_time,
203
+ resource=resource,
204
+ service=service,
205
+ )
206
+
207
+ response = await client.get_async_httpx_client().request(**kwargs)
208
+
209
+ return _build_response(client=client, response=response)
210
+
211
+
212
+ async def asyncio(
213
+ *,
214
+ client: Union[AuthenticatedClient, Client],
215
+ start_time: Union[Unset, datetime.datetime] = UNSET,
216
+ end_time: Union[Unset, datetime.datetime] = UNSET,
217
+ resource: Union[Unset, str] = UNSET,
218
+ service: Union[Unset, str] = UNSET,
219
+ ) -> Optional[Union[Error, GetBandwidthSourcesResponse200, GetBandwidthSourcesResponse400]]:
220
+ """Get bandwidth usage breakdown by traffic source
221
+
222
+ Get bandwidth usage for one or more resources broken down by traffic source (HTTP, WebSocket, NAT,
223
+ PrivateLink).
224
+
225
+ Returns hourly data points with traffic source breakdown. Traffic source data is available from
226
+ March 9, 2025 onwards.
227
+ Queries for earlier dates will return a 400 Bad Request error.
228
+
229
+ Args:
230
+ start_time (Union[Unset, datetime.datetime]): Example: 2021-06-17T08:15:30Z.
231
+ end_time (Union[Unset, datetime.datetime]): Example: 2021-06-17T08:30:30Z.
232
+ resource (Union[Unset, str]): Example: srv-xxxxx.
233
+ service (Union[Unset, str]): Example: srv-xxxxx.
234
+
235
+ Raises:
236
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
237
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
238
+
239
+ Returns:
240
+ Union[Error, GetBandwidthSourcesResponse200, GetBandwidthSourcesResponse400]
241
+ """
242
+
243
+ return (
244
+ await asyncio_detailed(
245
+ client=client,
246
+ start_time=start_time,
247
+ end_time=end_time,
248
+ resource=resource,
249
+ service=service,
250
+ )
251
+ ).parsed
@@ -0,0 +1,229 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Optional, Union, cast
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.credential_create_input import CredentialCreateInput
9
+ from ...models.error import Error
10
+ from ...types import Response
11
+
12
+
13
+ def _get_kwargs(
14
+ postgres_id: str,
15
+ *,
16
+ body: CredentialCreateInput,
17
+ ) -> dict[str, Any]:
18
+ headers: dict[str, Any] = {}
19
+
20
+ _kwargs: dict[str, Any] = {
21
+ "method": "post",
22
+ "url": f"/postgres/{postgres_id}/credentials",
23
+ }
24
+
25
+ _kwargs["json"] = body.to_dict()
26
+
27
+ headers["Content-Type"] = "application/json"
28
+
29
+ _kwargs["headers"] = headers
30
+ return _kwargs
31
+
32
+
33
+ def _parse_response(
34
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
35
+ ) -> Optional[Union[Any, Error]]:
36
+ if response.status_code == 202:
37
+ response_202 = cast(Any, None)
38
+ return response_202
39
+
40
+ if response.status_code == 400:
41
+ response_400 = Error.from_dict(response.json())
42
+
43
+ return response_400
44
+
45
+ if response.status_code == 401:
46
+ response_401 = Error.from_dict(response.json())
47
+
48
+ return response_401
49
+
50
+ if response.status_code == 403:
51
+ response_403 = Error.from_dict(response.json())
52
+
53
+ return response_403
54
+
55
+ if response.status_code == 404:
56
+ response_404 = Error.from_dict(response.json())
57
+
58
+ return response_404
59
+
60
+ if response.status_code == 406:
61
+ response_406 = Error.from_dict(response.json())
62
+
63
+ return response_406
64
+
65
+ if response.status_code == 410:
66
+ response_410 = Error.from_dict(response.json())
67
+
68
+ return response_410
69
+
70
+ if response.status_code == 429:
71
+ response_429 = Error.from_dict(response.json())
72
+
73
+ return response_429
74
+
75
+ if response.status_code == 500:
76
+ response_500 = Error.from_dict(response.json())
77
+
78
+ return response_500
79
+
80
+ if response.status_code == 503:
81
+ response_503 = Error.from_dict(response.json())
82
+
83
+ return response_503
84
+
85
+ if client.raise_on_unexpected_status:
86
+ raise errors.UnexpectedStatus(response.status_code, response.content)
87
+ else:
88
+ return None
89
+
90
+
91
+ def _build_response(
92
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
93
+ ) -> Response[Union[Any, Error]]:
94
+ return Response(
95
+ status_code=HTTPStatus(response.status_code),
96
+ content=response.content,
97
+ headers=response.headers,
98
+ parsed=_parse_response(client=client, response=response),
99
+ )
100
+
101
+
102
+ def sync_detailed(
103
+ postgres_id: str,
104
+ *,
105
+ client: Union[AuthenticatedClient, Client],
106
+ body: CredentialCreateInput,
107
+ ) -> Response[Union[Any, Error]]:
108
+ r"""Create PostgreSQL User
109
+
110
+ Create a new PostgreSQL user for the Render Postgres instance with the provided ID. This becomes the
111
+ database's new \"default\" user.
112
+
113
+ Args:
114
+ postgres_id (str):
115
+ body (CredentialCreateInput):
116
+
117
+ Raises:
118
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
119
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
120
+
121
+ Returns:
122
+ Response[Union[Any, Error]]
123
+ """
124
+
125
+ kwargs = _get_kwargs(
126
+ postgres_id=postgres_id,
127
+ body=body,
128
+ )
129
+
130
+ response = client.get_httpx_client().request(
131
+ **kwargs,
132
+ )
133
+
134
+ return _build_response(client=client, response=response)
135
+
136
+
137
+ def sync(
138
+ postgres_id: str,
139
+ *,
140
+ client: Union[AuthenticatedClient, Client],
141
+ body: CredentialCreateInput,
142
+ ) -> Optional[Union[Any, Error]]:
143
+ r"""Create PostgreSQL User
144
+
145
+ Create a new PostgreSQL user for the Render Postgres instance with the provided ID. This becomes the
146
+ database's new \"default\" user.
147
+
148
+ Args:
149
+ postgres_id (str):
150
+ body (CredentialCreateInput):
151
+
152
+ Raises:
153
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
154
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
155
+
156
+ Returns:
157
+ Union[Any, Error]
158
+ """
159
+
160
+ return sync_detailed(
161
+ postgres_id=postgres_id,
162
+ client=client,
163
+ body=body,
164
+ ).parsed
165
+
166
+
167
+ async def asyncio_detailed(
168
+ postgres_id: str,
169
+ *,
170
+ client: Union[AuthenticatedClient, Client],
171
+ body: CredentialCreateInput,
172
+ ) -> Response[Union[Any, Error]]:
173
+ r"""Create PostgreSQL User
174
+
175
+ Create a new PostgreSQL user for the Render Postgres instance with the provided ID. This becomes the
176
+ database's new \"default\" user.
177
+
178
+ Args:
179
+ postgres_id (str):
180
+ body (CredentialCreateInput):
181
+
182
+ Raises:
183
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
184
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
185
+
186
+ Returns:
187
+ Response[Union[Any, Error]]
188
+ """
189
+
190
+ kwargs = _get_kwargs(
191
+ postgres_id=postgres_id,
192
+ body=body,
193
+ )
194
+
195
+ response = await client.get_async_httpx_client().request(**kwargs)
196
+
197
+ return _build_response(client=client, response=response)
198
+
199
+
200
+ async def asyncio(
201
+ postgres_id: str,
202
+ *,
203
+ client: Union[AuthenticatedClient, Client],
204
+ body: CredentialCreateInput,
205
+ ) -> Optional[Union[Any, Error]]:
206
+ r"""Create PostgreSQL User
207
+
208
+ Create a new PostgreSQL user for the Render Postgres instance with the provided ID. This becomes the
209
+ database's new \"default\" user.
210
+
211
+ Args:
212
+ postgres_id (str):
213
+ body (CredentialCreateInput):
214
+
215
+ Raises:
216
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
217
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
218
+
219
+ Returns:
220
+ Union[Any, Error]
221
+ """
222
+
223
+ return (
224
+ await asyncio_detailed(
225
+ postgres_id=postgres_id,
226
+ client=client,
227
+ body=body,
228
+ )
229
+ ).parsed