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.
- render_sdk/__init__.py +41 -4
- render_sdk/client/__init__.py +25 -0
- render_sdk/client/client.py +5 -0
- render_sdk/client/sse.py +5 -1
- render_sdk/client/tests/test_client.py +6 -4
- render_sdk/client/tests/test_sse.py +1 -0
- render_sdk/client/workflows.py +10 -2
- render_sdk/experimental/__init__.py +31 -0
- render_sdk/experimental/experimental.py +71 -0
- render_sdk/experimental/object/__init__.py +30 -0
- render_sdk/experimental/object/api.py +260 -0
- render_sdk/experimental/object/client.py +475 -0
- render_sdk/experimental/object/types.py +87 -0
- render_sdk/public_api/api/audit_logs/list_organization_audit_logs.py +303 -0
- render_sdk/public_api/api/audit_logs/list_owner_audit_logs.py +303 -0
- render_sdk/public_api/api/blob_storage/delete_blob.py +215 -0
- render_sdk/public_api/api/blob_storage/get_blob.py +221 -0
- render_sdk/public_api/api/{workflows/list_workflow_versions.py → blob_storage/list_blobs.py} +52 -30
- render_sdk/public_api/api/blob_storage/put_blob.py +248 -0
- render_sdk/public_api/api/blueprints/validate_blueprint.py +212 -0
- render_sdk/public_api/api/key_value/resume_key_value.py +203 -0
- render_sdk/public_api/api/key_value/suspend_key_value.py +203 -0
- render_sdk/public_api/api/metrics/get_bandwidth_sources.py +251 -0
- render_sdk/public_api/api/postgres/create_postgres_user.py +229 -0
- render_sdk/public_api/api/postgres/delete_postgres_user.py +201 -0
- render_sdk/public_api/api/postgres/list_postgres_users.py +195 -0
- render_sdk/public_api/api/redis_deprecated/__init__.py +1 -0
- render_sdk/public_api/api/{redis → redis_deprecated}/create_redis.py +4 -4
- render_sdk/public_api/api/{redis → redis_deprecated}/delete_redis.py +4 -4
- render_sdk/public_api/api/{redis → redis_deprecated}/list_redis.py +4 -0
- render_sdk/public_api/api/{redis → redis_deprecated}/retrieve_redis.py +4 -4
- render_sdk/public_api/api/{redis → redis_deprecated}/retrieve_redis_connection_info.py +4 -0
- render_sdk/public_api/api/{redis → redis_deprecated}/update_redis.py +4 -4
- render_sdk/public_api/api/services/create_service.py +4 -4
- render_sdk/public_api/api/workflow_tasks_ea/__init__.py +1 -0
- render_sdk/public_api/api/{workflows → workflow_tasks_ea}/cancel_task_run.py +12 -4
- render_sdk/public_api/api/{workflows → workflow_tasks_ea}/create_task.py +12 -4
- render_sdk/public_api/api/{workflows → workflow_tasks_ea}/get_task.py +12 -4
- render_sdk/public_api/api/{workflows → workflow_tasks_ea}/get_task_run.py +12 -4
- render_sdk/public_api/api/{workflows → workflow_tasks_ea}/list_task_runs.py +12 -0
- render_sdk/public_api/api/{workflows → workflow_tasks_ea}/list_tasks.py +24 -12
- render_sdk/public_api/api/workflows_ea/__init__.py +1 -0
- render_sdk/public_api/api/workflows_ea/create_workflow.py +199 -0
- render_sdk/public_api/api/{workflows/deploy_workflow.py → workflows_ea/create_workflow_version.py} +31 -14
- render_sdk/public_api/api/{workflows → workflows_ea}/delete_workflow.py +12 -4
- render_sdk/public_api/api/{workflows → workflows_ea}/get_workflow.py +32 -14
- render_sdk/public_api/api/{workflows → workflows_ea}/get_workflow_version.py +12 -4
- render_sdk/public_api/api/workflows_ea/list_workflow_versions.py +275 -0
- render_sdk/public_api/api/{workflows → workflows_ea}/list_workflows.py +41 -14
- render_sdk/public_api/api/workflows_ea/update_workflow.py +212 -0
- render_sdk/public_api/api/workspaces/remove_workspace_member.py +206 -0
- render_sdk/public_api/api/workspaces/update_workspace_member.py +235 -0
- render_sdk/public_api/models/__init__.py +82 -4
- render_sdk/public_api/models/audit_log.py +113 -0
- render_sdk/public_api/models/audit_log_actor.py +80 -0
- render_sdk/public_api/models/audit_log_actor_type.py +10 -0
- render_sdk/public_api/models/audit_log_event.py +80 -0
- render_sdk/public_api/models/audit_log_metadata.py +49 -0
- render_sdk/public_api/models/audit_log_status.py +9 -0
- render_sdk/public_api/models/audit_log_with_cursor.py +73 -0
- render_sdk/public_api/models/background_worker_details.py +2 -2
- render_sdk/public_api/models/background_worker_details_patch.py +1 -1
- render_sdk/public_api/models/background_worker_details_post.py +1 -1
- render_sdk/public_api/models/blob_metadata.py +85 -0
- render_sdk/public_api/models/blob_with_cursor.py +73 -0
- render_sdk/public_api/models/cache.py +6 -4
- render_sdk/public_api/models/cache_profile.py +10 -0
- render_sdk/public_api/models/create_deploy_body.py +23 -0
- render_sdk/public_api/models/create_version.py +70 -0
- render_sdk/public_api/models/credential_create_input.py +59 -0
- render_sdk/public_api/models/cron_job_details.py +2 -2
- render_sdk/public_api/models/cron_job_details_patch.py +1 -1
- render_sdk/public_api/models/cron_job_details_post.py +1 -1
- render_sdk/public_api/models/deploy_mode.py +9 -0
- render_sdk/public_api/models/event.py +11 -27
- render_sdk/public_api/models/event_type.py +1 -1
- render_sdk/public_api/models/get_bandwidth_sources_response_200.py +75 -0
- render_sdk/public_api/models/get_bandwidth_sources_response_200_data_item.py +101 -0
- render_sdk/public_api/models/get_bandwidth_sources_response_200_data_item_labels.py +78 -0
- render_sdk/public_api/models/get_bandwidth_sources_response_200_data_item_labels_traffic_source.py +12 -0
- render_sdk/public_api/models/get_bandwidth_sources_response_200_data_item_values_item.py +68 -0
- render_sdk/public_api/models/{server_unhealthy.py → get_bandwidth_sources_response_400.py} +12 -12
- render_sdk/public_api/models/get_blob_output.py +71 -0
- render_sdk/public_api/models/list_postgres_users_response_200_item.py +86 -0
- render_sdk/public_api/models/otel_provider_type.py +2 -0
- render_sdk/public_api/models/postgres.py +8 -0
- render_sdk/public_api/models/postgres_detail.py +26 -0
- render_sdk/public_api/models/postgres_parameter_overrides.py +44 -0
- render_sdk/public_api/models/postgres_patch_input.py +27 -0
- render_sdk/public_api/models/postgres_post_input.py +27 -0
- render_sdk/public_api/models/postgres_version.py +1 -0
- render_sdk/public_api/models/preview_input.py +2 -2
- render_sdk/public_api/models/private_service_details.py +2 -2
- render_sdk/public_api/models/private_service_details_patch.py +1 -1
- render_sdk/public_api/models/private_service_details_post.py +1 -1
- render_sdk/public_api/models/project_post_environment_input.py +26 -1
- render_sdk/public_api/models/put_blob_input.py +59 -0
- render_sdk/public_api/models/put_blob_output.py +79 -0
- render_sdk/public_api/models/read_replica.py +25 -1
- render_sdk/public_api/models/read_replica_input.py +25 -1
- render_sdk/public_api/models/run_task.py +35 -7
- render_sdk/public_api/models/service_event.py +12 -27
- render_sdk/public_api/models/service_event_type.py +0 -1
- render_sdk/public_api/models/service_post.py +9 -6
- render_sdk/public_api/models/task_attempt.py +88 -0
- render_sdk/public_api/models/task_attempt_details.py +108 -0
- render_sdk/public_api/models/task_data_type_1.py +44 -0
- render_sdk/public_api/models/task_run.py +23 -1
- render_sdk/public_api/models/task_run_details.py +50 -5
- render_sdk/public_api/models/task_run_status.py +1 -0
- render_sdk/public_api/models/task_with_cursor.py +73 -0
- render_sdk/public_api/models/team_member.py +5 -4
- render_sdk/public_api/models/team_member_role.py +12 -0
- render_sdk/public_api/models/update_workspace_member_body.py +61 -0
- render_sdk/public_api/models/validate_blueprint_request.py +84 -0
- render_sdk/public_api/models/validate_blueprint_response.py +105 -0
- render_sdk/public_api/models/validation_error.py +88 -0
- render_sdk/public_api/models/validation_plan_summary.py +107 -0
- render_sdk/public_api/models/web_service_details.py +2 -2
- render_sdk/public_api/models/web_service_details_patch.py +6 -5
- render_sdk/public_api/models/web_service_details_post.py +6 -5
- render_sdk/public_api/models/workflow.py +144 -0
- render_sdk/public_api/models/workflow_create.py +99 -0
- render_sdk/public_api/models/workflow_update.py +90 -0
- render_sdk/public_api/models/workflow_version.py +10 -14
- render_sdk/public_api/models/workflow_version_status.py +13 -0
- render_sdk/public_api/models/workflow_version_with_cursor.py +73 -0
- render_sdk/public_api/models/workflow_with_cursor.py +73 -0
- render_sdk/render.py +65 -0
- render_sdk/version.py +27 -0
- render_sdk/workflows/__init__.py +5 -1
- render_sdk/workflows/app.py +262 -0
- render_sdk/workflows/callback_api/models/task_options.py +18 -0
- render_sdk/workflows/cli.py +58 -0
- render_sdk/workflows/client.py +2 -7
- render_sdk/workflows/runner.py +12 -7
- render_sdk/workflows/task.py +11 -2
- render_sdk/workflows/tests/test_app.py +412 -0
- render_sdk/workflows/tests/test_cli.py +134 -0
- render_sdk/workflows/tests/test_end_to_end.py +69 -1
- render_sdk/workflows/tests/test_registration.py +56 -1
- {render_sdk-0.1.3.dist-info → render_sdk-0.2.0.dist-info}/METADATA +1 -1
- {render_sdk-0.1.3.dist-info → render_sdk-0.2.0.dist-info}/RECORD +149 -78
- render_sdk-0.2.0.dist-info/entry_points.txt +3 -0
- render_sdk/public_api/models/image_version.py +0 -79
- /render_sdk/public_api/api/{redis → audit_logs}/__init__.py +0 -0
- /render_sdk/public_api/api/{workflows → blob_storage}/__init__.py +0 -0
- /render_sdk/public_api/api/{workflows → workflow_tasks_ea}/stream_task_runs_events.py +0 -0
- {render_sdk-0.1.3.dist-info → render_sdk-0.2.0.dist-info}/WHEEL +0 -0
- {render_sdk-0.1.3.dist-info → render_sdk-0.2.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,59 @@
|
|
|
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="PutBlobInput")
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@_attrs_define
|
|
11
|
+
class PutBlobInput:
|
|
12
|
+
"""
|
|
13
|
+
Attributes:
|
|
14
|
+
size_bytes (int): The size of the blob in bytes. Example: 1048576.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
size_bytes: int
|
|
18
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
19
|
+
|
|
20
|
+
def to_dict(self) -> dict[str, Any]:
|
|
21
|
+
size_bytes = self.size_bytes
|
|
22
|
+
|
|
23
|
+
field_dict: dict[str, Any] = {}
|
|
24
|
+
field_dict.update(self.additional_properties)
|
|
25
|
+
field_dict.update(
|
|
26
|
+
{
|
|
27
|
+
"sizeBytes": size_bytes,
|
|
28
|
+
}
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
return field_dict
|
|
32
|
+
|
|
33
|
+
@classmethod
|
|
34
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
35
|
+
d = dict(src_dict)
|
|
36
|
+
size_bytes = d.pop("sizeBytes")
|
|
37
|
+
|
|
38
|
+
put_blob_input = cls(
|
|
39
|
+
size_bytes=size_bytes,
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
put_blob_input.additional_properties = d
|
|
43
|
+
return put_blob_input
|
|
44
|
+
|
|
45
|
+
@property
|
|
46
|
+
def additional_keys(self) -> list[str]:
|
|
47
|
+
return list(self.additional_properties.keys())
|
|
48
|
+
|
|
49
|
+
def __getitem__(self, key: str) -> Any:
|
|
50
|
+
return self.additional_properties[key]
|
|
51
|
+
|
|
52
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
53
|
+
self.additional_properties[key] = value
|
|
54
|
+
|
|
55
|
+
def __delitem__(self, key: str) -> None:
|
|
56
|
+
del self.additional_properties[key]
|
|
57
|
+
|
|
58
|
+
def __contains__(self, key: str) -> bool:
|
|
59
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,79 @@
|
|
|
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="PutBlobOutput")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@_attrs_define
|
|
13
|
+
class PutBlobOutput:
|
|
14
|
+
"""
|
|
15
|
+
Attributes:
|
|
16
|
+
url (str): Presigned URL for uploading the blob Example: https://example-bucket.s3.amazonaws.com/presigned-put-
|
|
17
|
+
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
|
+
max_size_bytes (int): The maximum size of the blob in bytes Example: 1048576.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
url: str
|
|
24
|
+
expires_at: datetime.datetime
|
|
25
|
+
max_size_bytes: int
|
|
26
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
27
|
+
|
|
28
|
+
def to_dict(self) -> dict[str, Any]:
|
|
29
|
+
url = self.url
|
|
30
|
+
|
|
31
|
+
expires_at = self.expires_at.isoformat()
|
|
32
|
+
|
|
33
|
+
max_size_bytes = self.max_size_bytes
|
|
34
|
+
|
|
35
|
+
field_dict: dict[str, Any] = {}
|
|
36
|
+
field_dict.update(self.additional_properties)
|
|
37
|
+
field_dict.update(
|
|
38
|
+
{
|
|
39
|
+
"url": url,
|
|
40
|
+
"expiresAt": expires_at,
|
|
41
|
+
"maxSizeBytes": max_size_bytes,
|
|
42
|
+
}
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
return field_dict
|
|
46
|
+
|
|
47
|
+
@classmethod
|
|
48
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
49
|
+
d = dict(src_dict)
|
|
50
|
+
url = d.pop("url")
|
|
51
|
+
|
|
52
|
+
expires_at = isoparse(d.pop("expiresAt"))
|
|
53
|
+
|
|
54
|
+
max_size_bytes = d.pop("maxSizeBytes")
|
|
55
|
+
|
|
56
|
+
put_blob_output = cls(
|
|
57
|
+
url=url,
|
|
58
|
+
expires_at=expires_at,
|
|
59
|
+
max_size_bytes=max_size_bytes,
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
put_blob_output.additional_properties = d
|
|
63
|
+
return put_blob_output
|
|
64
|
+
|
|
65
|
+
@property
|
|
66
|
+
def additional_keys(self) -> list[str]:
|
|
67
|
+
return list(self.additional_properties.keys())
|
|
68
|
+
|
|
69
|
+
def __getitem__(self, key: str) -> Any:
|
|
70
|
+
return self.additional_properties[key]
|
|
71
|
+
|
|
72
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
73
|
+
self.additional_properties[key] = value
|
|
74
|
+
|
|
75
|
+
def __delitem__(self, key: str) -> None:
|
|
76
|
+
del self.additional_properties[key]
|
|
77
|
+
|
|
78
|
+
def __contains__(self, key: str) -> bool:
|
|
79
|
+
return key in self.additional_properties
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
from collections.abc import Mapping
|
|
2
|
-
from typing import Any, TypeVar
|
|
2
|
+
from typing import TYPE_CHECKING, Any, TypeVar, Union
|
|
3
3
|
|
|
4
4
|
from attrs import define as _attrs_define
|
|
5
5
|
from attrs import field as _attrs_field
|
|
6
6
|
|
|
7
|
+
from ..types import UNSET, Unset
|
|
8
|
+
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from ..models.postgres_parameter_overrides import PostgresParameterOverrides
|
|
11
|
+
|
|
12
|
+
|
|
7
13
|
T = TypeVar("T", bound="ReadReplica")
|
|
8
14
|
|
|
9
15
|
|
|
@@ -13,10 +19,12 @@ class ReadReplica:
|
|
|
13
19
|
Attributes:
|
|
14
20
|
id (str): The replica instance identifier.
|
|
15
21
|
name (str): The display name of the replica instance.
|
|
22
|
+
parameter_overrides (Union[Unset, PostgresParameterOverrides]):
|
|
16
23
|
"""
|
|
17
24
|
|
|
18
25
|
id: str
|
|
19
26
|
name: str
|
|
27
|
+
parameter_overrides: Union[Unset, "PostgresParameterOverrides"] = UNSET
|
|
20
28
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
21
29
|
|
|
22
30
|
def to_dict(self) -> dict[str, Any]:
|
|
@@ -24,6 +32,10 @@ class ReadReplica:
|
|
|
24
32
|
|
|
25
33
|
name = self.name
|
|
26
34
|
|
|
35
|
+
parameter_overrides: Union[Unset, dict[str, Any]] = UNSET
|
|
36
|
+
if not isinstance(self.parameter_overrides, Unset):
|
|
37
|
+
parameter_overrides = self.parameter_overrides.to_dict()
|
|
38
|
+
|
|
27
39
|
field_dict: dict[str, Any] = {}
|
|
28
40
|
field_dict.update(self.additional_properties)
|
|
29
41
|
field_dict.update(
|
|
@@ -32,19 +44,31 @@ class ReadReplica:
|
|
|
32
44
|
"name": name,
|
|
33
45
|
}
|
|
34
46
|
)
|
|
47
|
+
if parameter_overrides is not UNSET:
|
|
48
|
+
field_dict["parameterOverrides"] = parameter_overrides
|
|
35
49
|
|
|
36
50
|
return field_dict
|
|
37
51
|
|
|
38
52
|
@classmethod
|
|
39
53
|
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
54
|
+
from ..models.postgres_parameter_overrides import PostgresParameterOverrides
|
|
55
|
+
|
|
40
56
|
d = dict(src_dict)
|
|
41
57
|
id = d.pop("id")
|
|
42
58
|
|
|
43
59
|
name = d.pop("name")
|
|
44
60
|
|
|
61
|
+
_parameter_overrides = d.pop("parameterOverrides", UNSET)
|
|
62
|
+
parameter_overrides: Union[Unset, PostgresParameterOverrides]
|
|
63
|
+
if isinstance(_parameter_overrides, Unset):
|
|
64
|
+
parameter_overrides = UNSET
|
|
65
|
+
else:
|
|
66
|
+
parameter_overrides = PostgresParameterOverrides.from_dict(_parameter_overrides)
|
|
67
|
+
|
|
45
68
|
read_replica = cls(
|
|
46
69
|
id=id,
|
|
47
70
|
name=name,
|
|
71
|
+
parameter_overrides=parameter_overrides,
|
|
48
72
|
)
|
|
49
73
|
|
|
50
74
|
read_replica.additional_properties = d
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
from collections.abc import Mapping
|
|
2
|
-
from typing import Any, TypeVar
|
|
2
|
+
from typing import TYPE_CHECKING, Any, TypeVar, Union
|
|
3
3
|
|
|
4
4
|
from attrs import define as _attrs_define
|
|
5
5
|
from attrs import field as _attrs_field
|
|
6
6
|
|
|
7
|
+
from ..types import UNSET, Unset
|
|
8
|
+
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from ..models.postgres_parameter_overrides import PostgresParameterOverrides
|
|
11
|
+
|
|
12
|
+
|
|
7
13
|
T = TypeVar("T", bound="ReadReplicaInput")
|
|
8
14
|
|
|
9
15
|
|
|
@@ -12,14 +18,20 @@ class ReadReplicaInput:
|
|
|
12
18
|
"""
|
|
13
19
|
Attributes:
|
|
14
20
|
name (str): The display name of the replica instance.
|
|
21
|
+
parameter_overrides (Union[Unset, PostgresParameterOverrides]):
|
|
15
22
|
"""
|
|
16
23
|
|
|
17
24
|
name: str
|
|
25
|
+
parameter_overrides: Union[Unset, "PostgresParameterOverrides"] = UNSET
|
|
18
26
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
19
27
|
|
|
20
28
|
def to_dict(self) -> dict[str, Any]:
|
|
21
29
|
name = self.name
|
|
22
30
|
|
|
31
|
+
parameter_overrides: Union[Unset, dict[str, Any]] = UNSET
|
|
32
|
+
if not isinstance(self.parameter_overrides, Unset):
|
|
33
|
+
parameter_overrides = self.parameter_overrides.to_dict()
|
|
34
|
+
|
|
23
35
|
field_dict: dict[str, Any] = {}
|
|
24
36
|
field_dict.update(self.additional_properties)
|
|
25
37
|
field_dict.update(
|
|
@@ -27,16 +39,28 @@ class ReadReplicaInput:
|
|
|
27
39
|
"name": name,
|
|
28
40
|
}
|
|
29
41
|
)
|
|
42
|
+
if parameter_overrides is not UNSET:
|
|
43
|
+
field_dict["parameterOverrides"] = parameter_overrides
|
|
30
44
|
|
|
31
45
|
return field_dict
|
|
32
46
|
|
|
33
47
|
@classmethod
|
|
34
48
|
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
49
|
+
from ..models.postgres_parameter_overrides import PostgresParameterOverrides
|
|
50
|
+
|
|
35
51
|
d = dict(src_dict)
|
|
36
52
|
name = d.pop("name")
|
|
37
53
|
|
|
54
|
+
_parameter_overrides = d.pop("parameterOverrides", UNSET)
|
|
55
|
+
parameter_overrides: Union[Unset, PostgresParameterOverrides]
|
|
56
|
+
if isinstance(_parameter_overrides, Unset):
|
|
57
|
+
parameter_overrides = UNSET
|
|
58
|
+
else:
|
|
59
|
+
parameter_overrides = PostgresParameterOverrides.from_dict(_parameter_overrides)
|
|
60
|
+
|
|
38
61
|
read_replica_input = cls(
|
|
39
62
|
name=name,
|
|
63
|
+
parameter_overrides=parameter_overrides,
|
|
40
64
|
)
|
|
41
65
|
|
|
42
66
|
read_replica_input.additional_properties = d
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
from collections.abc import Mapping
|
|
2
|
-
from typing import Any, TypeVar, cast
|
|
2
|
+
from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
|
|
3
3
|
|
|
4
4
|
from attrs import define as _attrs_define
|
|
5
5
|
from attrs import field as _attrs_field
|
|
6
6
|
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
from ..models.task_data_type_1 import TaskDataType1
|
|
9
|
+
|
|
10
|
+
|
|
7
11
|
T = TypeVar("T", bound="RunTask")
|
|
8
12
|
|
|
9
13
|
|
|
@@ -11,19 +15,26 @@ T = TypeVar("T", bound="RunTask")
|
|
|
11
15
|
class RunTask:
|
|
12
16
|
"""
|
|
13
17
|
Attributes:
|
|
14
|
-
task (str): Either a task ID or a workflow slug with task name and optional version. If a version is not
|
|
15
|
-
provided, the latest version of the task will be used.
|
|
16
|
-
|
|
18
|
+
task (str): Either a task ID or a workflow slug with task name and optional version name. If a version is not
|
|
19
|
+
provided, the latest version of the task will be used. Example: tsk-1234, my-workflow-slug/my-task, my-workflow-
|
|
20
|
+
slug/my-task:SHA123.
|
|
21
|
+
input_ (Union['TaskDataType1', list[Any]]): Input data for a task. Can be either an array (for positional
|
|
22
|
+
arguments) or an object (for named parameters).
|
|
17
23
|
"""
|
|
18
24
|
|
|
19
25
|
task: str
|
|
20
|
-
input_:
|
|
26
|
+
input_: Union["TaskDataType1", list[Any]]
|
|
21
27
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
22
28
|
|
|
23
29
|
def to_dict(self) -> dict[str, Any]:
|
|
24
30
|
task = self.task
|
|
25
31
|
|
|
26
|
-
input_
|
|
32
|
+
input_: Union[dict[str, Any], list[Any]]
|
|
33
|
+
if isinstance(self.input_, list):
|
|
34
|
+
input_ = self.input_
|
|
35
|
+
|
|
36
|
+
else:
|
|
37
|
+
input_ = self.input_.to_dict()
|
|
27
38
|
|
|
28
39
|
field_dict: dict[str, Any] = {}
|
|
29
40
|
field_dict.update(self.additional_properties)
|
|
@@ -38,10 +49,27 @@ class RunTask:
|
|
|
38
49
|
|
|
39
50
|
@classmethod
|
|
40
51
|
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
52
|
+
from ..models.task_data_type_1 import TaskDataType1
|
|
53
|
+
|
|
41
54
|
d = dict(src_dict)
|
|
42
55
|
task = d.pop("task")
|
|
43
56
|
|
|
44
|
-
|
|
57
|
+
def _parse_input_(data: object) -> Union["TaskDataType1", list[Any]]:
|
|
58
|
+
try:
|
|
59
|
+
if not isinstance(data, list):
|
|
60
|
+
raise TypeError()
|
|
61
|
+
componentsschemas_task_data_type_0 = cast(list[Any], data)
|
|
62
|
+
|
|
63
|
+
return componentsschemas_task_data_type_0
|
|
64
|
+
except: # noqa: E722
|
|
65
|
+
pass
|
|
66
|
+
if not isinstance(data, dict):
|
|
67
|
+
raise TypeError()
|
|
68
|
+
componentsschemas_task_data_type_1 = TaskDataType1.from_dict(data)
|
|
69
|
+
|
|
70
|
+
return componentsschemas_task_data_type_1
|
|
71
|
+
|
|
72
|
+
input_ = _parse_input_(d.pop("input"))
|
|
45
73
|
|
|
46
74
|
run_task = cls(
|
|
47
75
|
task=task,
|
|
@@ -43,7 +43,6 @@ if TYPE_CHECKING:
|
|
|
43
43
|
from ..models.server_failed import ServerFailed
|
|
44
44
|
from ..models.server_hardware_failure import ServerHardwareFailure
|
|
45
45
|
from ..models.server_restarted import ServerRestarted
|
|
46
|
-
from ..models.server_unhealthy import ServerUnhealthy
|
|
47
46
|
from ..models.service_resumed import ServiceResumed
|
|
48
47
|
from ..models.service_suspended import ServiceSuspended
|
|
49
48
|
from ..models.suspender_added import SuspenderAdded
|
|
@@ -70,8 +69,8 @@ class ServiceEvent:
|
|
|
70
69
|
'InstanceCountChanged', 'InstanceTypeChanged', 'JobRunEnded', 'MaintenanceEnded', 'MaintenanceModeEnabled',
|
|
71
70
|
'MaintenanceModeURIUpdated', 'MaintenanceStarted', 'PipelineMinutesExhausted', 'PreDeployEnded',
|
|
72
71
|
'PreDeployStarted', 'ServerAvailable', 'ServerFailed', 'ServerHardwareFailure', 'ServerRestarted',
|
|
73
|
-
'
|
|
74
|
-
'
|
|
72
|
+
'ServiceResumed', 'ServiceSuspended', 'SuspenderAdded', 'SuspenderRemoved', 'ZeroDowntimeRedeployEnded',
|
|
73
|
+
'ZeroDowntimeRedeployStarted']):
|
|
75
74
|
"""
|
|
76
75
|
|
|
77
76
|
id: str
|
|
@@ -113,7 +112,6 @@ class ServiceEvent:
|
|
|
113
112
|
"ServerFailed",
|
|
114
113
|
"ServerHardwareFailure",
|
|
115
114
|
"ServerRestarted",
|
|
116
|
-
"ServerUnhealthy",
|
|
117
115
|
"ServiceResumed",
|
|
118
116
|
"ServiceSuspended",
|
|
119
117
|
"SuspenderAdded",
|
|
@@ -157,7 +155,6 @@ class ServiceEvent:
|
|
|
157
155
|
from ..models.server_failed import ServerFailed
|
|
158
156
|
from ..models.server_hardware_failure import ServerHardwareFailure
|
|
159
157
|
from ..models.server_restarted import ServerRestarted
|
|
160
|
-
from ..models.server_unhealthy import ServerUnhealthy
|
|
161
158
|
from ..models.service_resumed import ServiceResumed
|
|
162
159
|
from ..models.service_suspended import ServiceSuspended
|
|
163
160
|
from ..models.suspender_added import SuspenderAdded
|
|
@@ -236,8 +233,6 @@ class ServiceEvent:
|
|
|
236
233
|
details = self.details.to_dict()
|
|
237
234
|
elif isinstance(self.details, ServerRestarted):
|
|
238
235
|
details = self.details.to_dict()
|
|
239
|
-
elif isinstance(self.details, ServerUnhealthy):
|
|
240
|
-
details = self.details.to_dict()
|
|
241
236
|
elif isinstance(self.details, ServiceResumed):
|
|
242
237
|
details = self.details.to_dict()
|
|
243
238
|
elif isinstance(self.details, ServiceSuspended):
|
|
@@ -307,7 +302,6 @@ class ServiceEvent:
|
|
|
307
302
|
from ..models.server_failed import ServerFailed
|
|
308
303
|
from ..models.server_hardware_failure import ServerHardwareFailure
|
|
309
304
|
from ..models.server_restarted import ServerRestarted
|
|
310
|
-
from ..models.server_unhealthy import ServerUnhealthy
|
|
311
305
|
from ..models.service_resumed import ServiceResumed
|
|
312
306
|
from ..models.service_suspended import ServiceSuspended
|
|
313
307
|
from ..models.suspender_added import SuspenderAdded
|
|
@@ -361,7 +355,6 @@ class ServiceEvent:
|
|
|
361
355
|
"ServerFailed",
|
|
362
356
|
"ServerHardwareFailure",
|
|
363
357
|
"ServerRestarted",
|
|
364
|
-
"ServerUnhealthy",
|
|
365
358
|
"ServiceResumed",
|
|
366
359
|
"ServiceSuspended",
|
|
367
360
|
"SuspenderAdded",
|
|
@@ -620,7 +613,7 @@ class ServiceEvent:
|
|
|
620
613
|
try:
|
|
621
614
|
if not isinstance(data, dict):
|
|
622
615
|
raise TypeError()
|
|
623
|
-
componentsschemasservice_event_details_type_31 =
|
|
616
|
+
componentsschemasservice_event_details_type_31 = ServiceResumed.from_dict(data)
|
|
624
617
|
|
|
625
618
|
return componentsschemasservice_event_details_type_31
|
|
626
619
|
except: # noqa: E722
|
|
@@ -628,7 +621,7 @@ class ServiceEvent:
|
|
|
628
621
|
try:
|
|
629
622
|
if not isinstance(data, dict):
|
|
630
623
|
raise TypeError()
|
|
631
|
-
componentsschemasservice_event_details_type_32 =
|
|
624
|
+
componentsschemasservice_event_details_type_32 = ServiceSuspended.from_dict(data)
|
|
632
625
|
|
|
633
626
|
return componentsschemasservice_event_details_type_32
|
|
634
627
|
except: # noqa: E722
|
|
@@ -636,7 +629,7 @@ class ServiceEvent:
|
|
|
636
629
|
try:
|
|
637
630
|
if not isinstance(data, dict):
|
|
638
631
|
raise TypeError()
|
|
639
|
-
componentsschemasservice_event_details_type_33 =
|
|
632
|
+
componentsschemasservice_event_details_type_33 = SuspenderAdded.from_dict(data)
|
|
640
633
|
|
|
641
634
|
return componentsschemasservice_event_details_type_33
|
|
642
635
|
except: # noqa: E722
|
|
@@ -644,7 +637,7 @@ class ServiceEvent:
|
|
|
644
637
|
try:
|
|
645
638
|
if not isinstance(data, dict):
|
|
646
639
|
raise TypeError()
|
|
647
|
-
componentsschemasservice_event_details_type_34 =
|
|
640
|
+
componentsschemasservice_event_details_type_34 = SuspenderRemoved.from_dict(data)
|
|
648
641
|
|
|
649
642
|
return componentsschemasservice_event_details_type_34
|
|
650
643
|
except: # noqa: E722
|
|
@@ -652,7 +645,7 @@ class ServiceEvent:
|
|
|
652
645
|
try:
|
|
653
646
|
if not isinstance(data, dict):
|
|
654
647
|
raise TypeError()
|
|
655
|
-
componentsschemasservice_event_details_type_35 =
|
|
648
|
+
componentsschemasservice_event_details_type_35 = ZeroDowntimeRedeployEnded.from_dict(data)
|
|
656
649
|
|
|
657
650
|
return componentsschemasservice_event_details_type_35
|
|
658
651
|
except: # noqa: E722
|
|
@@ -660,7 +653,7 @@ class ServiceEvent:
|
|
|
660
653
|
try:
|
|
661
654
|
if not isinstance(data, dict):
|
|
662
655
|
raise TypeError()
|
|
663
|
-
componentsschemasservice_event_details_type_36 =
|
|
656
|
+
componentsschemasservice_event_details_type_36 = ZeroDowntimeRedeployStarted.from_dict(data)
|
|
664
657
|
|
|
665
658
|
return componentsschemasservice_event_details_type_36
|
|
666
659
|
except: # noqa: E722
|
|
@@ -668,7 +661,7 @@ class ServiceEvent:
|
|
|
668
661
|
try:
|
|
669
662
|
if not isinstance(data, dict):
|
|
670
663
|
raise TypeError()
|
|
671
|
-
componentsschemasservice_event_details_type_37 =
|
|
664
|
+
componentsschemasservice_event_details_type_37 = EdgeCacheDisabled.from_dict(data)
|
|
672
665
|
|
|
673
666
|
return componentsschemasservice_event_details_type_37
|
|
674
667
|
except: # noqa: E722
|
|
@@ -676,24 +669,16 @@ class ServiceEvent:
|
|
|
676
669
|
try:
|
|
677
670
|
if not isinstance(data, dict):
|
|
678
671
|
raise TypeError()
|
|
679
|
-
componentsschemasservice_event_details_type_38 =
|
|
672
|
+
componentsschemasservice_event_details_type_38 = EdgeCacheEnabled.from_dict(data)
|
|
680
673
|
|
|
681
674
|
return componentsschemasservice_event_details_type_38
|
|
682
675
|
except: # noqa: E722
|
|
683
676
|
pass
|
|
684
|
-
try:
|
|
685
|
-
if not isinstance(data, dict):
|
|
686
|
-
raise TypeError()
|
|
687
|
-
componentsschemasservice_event_details_type_39 = EdgeCacheEnabled.from_dict(data)
|
|
688
|
-
|
|
689
|
-
return componentsschemasservice_event_details_type_39
|
|
690
|
-
except: # noqa: E722
|
|
691
|
-
pass
|
|
692
677
|
if not isinstance(data, dict):
|
|
693
678
|
raise TypeError()
|
|
694
|
-
|
|
679
|
+
componentsschemasservice_event_details_type_39 = EdgeCachePurged.from_dict(data)
|
|
695
680
|
|
|
696
|
-
return
|
|
681
|
+
return componentsschemasservice_event_details_type_39
|
|
697
682
|
|
|
698
683
|
details = _parse_details(d.pop("details"))
|
|
699
684
|
|
|
@@ -33,7 +33,6 @@ class ServiceEventType(str, Enum):
|
|
|
33
33
|
SERVER_FAILED = "server_failed"
|
|
34
34
|
SERVER_HARDWARE_FAILURE = "server_hardware_failure"
|
|
35
35
|
SERVER_RESTARTED = "server_restarted"
|
|
36
|
-
SERVER_UNHEALTHY = "server_unhealthy"
|
|
37
36
|
SERVICE_RESUMED = "service_resumed"
|
|
38
37
|
SERVICE_SUSPENDED = "service_suspended"
|
|
39
38
|
SUSPENDER_ADDED = "suspender_added"
|
|
@@ -30,20 +30,23 @@ class ServicePOST:
|
|
|
30
30
|
"""
|
|
31
31
|
Attributes:
|
|
32
32
|
type_ (ServiceType):
|
|
33
|
-
name (str):
|
|
34
|
-
owner_id (str):
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
name (str): The service's name. Must be unique within the workspace.
|
|
34
|
+
owner_id (str): The ID of the workspace the service belongs to. Obtain your workspace's ID from its Settings
|
|
35
|
+
page in the Render Dashboard.
|
|
36
|
+
repo (Union[Unset, str]): The service's repository URL. Do not specify a branch in this string (use the `branch`
|
|
37
|
+
parameter instead). Example: https://github.com/render-examples/flask-hello-world.
|
|
37
38
|
auto_deploy (Union[Unset, AutoDeploy]):
|
|
38
39
|
auto_deploy_trigger (Union[Unset, AutoDeployTrigger]): Controls autodeploy behavior. commit deploys when a
|
|
39
40
|
commit is pushed to a branch. checksPass waits for the branch to be green.
|
|
40
|
-
branch (Union[Unset, str]):
|
|
41
|
+
branch (Union[Unset, str]): The repo branch to pull, build, and deploy. If omitted, uses the repository's
|
|
42
|
+
default branch.
|
|
41
43
|
image (Union[Unset, Image]):
|
|
42
44
|
build_filter (Union[Unset, BuildFilter]):
|
|
43
45
|
root_dir (Union[Unset, str]):
|
|
44
46
|
env_vars (Union[Unset, list[Union['EnvVarKeyGenerateValue', 'EnvVarKeyValue']]]):
|
|
45
47
|
secret_files (Union[Unset, list['SecretFileInput']]):
|
|
46
|
-
environment_id (Union[Unset, str]): The ID of the environment the service
|
|
48
|
+
environment_id (Union[Unset, str]): The ID of the environment the service belongs to, if any. Obtain an
|
|
49
|
+
environment's ID from its Settings page in the Render Dashboard.
|
|
47
50
|
service_details (Union['BackgroundWorkerDetailsPOST', 'CronJobDetailsPOST', 'PrivateServiceDetailsPOST',
|
|
48
51
|
'StaticSiteDetailsPOST', 'WebServiceDetailsPOST', Unset]):
|
|
49
52
|
"""
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
from collections.abc import Mapping
|
|
3
|
+
from typing import Any, TypeVar, Union
|
|
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
|
+
from ..models.task_run_status import TaskRunStatus
|
|
10
|
+
from ..types import UNSET, Unset
|
|
11
|
+
|
|
12
|
+
T = TypeVar("T", bound="TaskAttempt")
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@_attrs_define
|
|
16
|
+
class TaskAttempt:
|
|
17
|
+
"""
|
|
18
|
+
Attributes:
|
|
19
|
+
status (TaskRunStatus):
|
|
20
|
+
started_at (datetime.datetime):
|
|
21
|
+
completed_at (Union[Unset, datetime.datetime]):
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
status: TaskRunStatus
|
|
25
|
+
started_at: datetime.datetime
|
|
26
|
+
completed_at: Union[Unset, datetime.datetime] = UNSET
|
|
27
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
28
|
+
|
|
29
|
+
def to_dict(self) -> dict[str, Any]:
|
|
30
|
+
status = self.status.value
|
|
31
|
+
|
|
32
|
+
started_at = self.started_at.isoformat()
|
|
33
|
+
|
|
34
|
+
completed_at: Union[Unset, str] = UNSET
|
|
35
|
+
if not isinstance(self.completed_at, Unset):
|
|
36
|
+
completed_at = self.completed_at.isoformat()
|
|
37
|
+
|
|
38
|
+
field_dict: dict[str, Any] = {}
|
|
39
|
+
field_dict.update(self.additional_properties)
|
|
40
|
+
field_dict.update(
|
|
41
|
+
{
|
|
42
|
+
"status": status,
|
|
43
|
+
"startedAt": started_at,
|
|
44
|
+
}
|
|
45
|
+
)
|
|
46
|
+
if completed_at is not UNSET:
|
|
47
|
+
field_dict["completedAt"] = completed_at
|
|
48
|
+
|
|
49
|
+
return field_dict
|
|
50
|
+
|
|
51
|
+
@classmethod
|
|
52
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
53
|
+
d = dict(src_dict)
|
|
54
|
+
status = TaskRunStatus(d.pop("status"))
|
|
55
|
+
|
|
56
|
+
started_at = isoparse(d.pop("startedAt"))
|
|
57
|
+
|
|
58
|
+
_completed_at = d.pop("completedAt", UNSET)
|
|
59
|
+
completed_at: Union[Unset, datetime.datetime]
|
|
60
|
+
if isinstance(_completed_at, Unset):
|
|
61
|
+
completed_at = UNSET
|
|
62
|
+
else:
|
|
63
|
+
completed_at = isoparse(_completed_at)
|
|
64
|
+
|
|
65
|
+
task_attempt = cls(
|
|
66
|
+
status=status,
|
|
67
|
+
started_at=started_at,
|
|
68
|
+
completed_at=completed_at,
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
task_attempt.additional_properties = d
|
|
72
|
+
return task_attempt
|
|
73
|
+
|
|
74
|
+
@property
|
|
75
|
+
def additional_keys(self) -> list[str]:
|
|
76
|
+
return list(self.additional_properties.keys())
|
|
77
|
+
|
|
78
|
+
def __getitem__(self, key: str) -> Any:
|
|
79
|
+
return self.additional_properties[key]
|
|
80
|
+
|
|
81
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
82
|
+
self.additional_properties[key] = value
|
|
83
|
+
|
|
84
|
+
def __delitem__(self, key: str) -> None:
|
|
85
|
+
del self.additional_properties[key]
|
|
86
|
+
|
|
87
|
+
def __contains__(self, key: str) -> bool:
|
|
88
|
+
return key in self.additional_properties
|