latitudesh-python-sdk 1.1.0__py3-none-any.whl → 2.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of latitudesh-python-sdk might be problematic. Click here for more details.

Files changed (93) hide show
  1. latitudesh_python_sdk/_hooks/types.py +7 -0
  2. latitudesh_python_sdk/_version.py +6 -4
  3. latitudesh_python_sdk/apikeys.py +73 -156
  4. latitudesh_python_sdk/basesdk.py +16 -24
  5. latitudesh_python_sdk/billing.py +13 -32
  6. latitudesh_python_sdk/events_sdk.py +11 -34
  7. latitudesh_python_sdk/firewalls_sdk.py +105 -264
  8. latitudesh_python_sdk/httpclient.py +6 -16
  9. latitudesh_python_sdk/ipaddresses_sdk.py +29 -68
  10. latitudesh_python_sdk/models/__init__.py +2586 -1126
  11. latitudesh_python_sdk/models/apierror.py +30 -14
  12. latitudesh_python_sdk/models/assign_server_virtual_networkop.py +2 -2
  13. latitudesh_python_sdk/models/{bandwidth_plan.py → bandwidth_plan_data.py} +9 -9
  14. latitudesh_python_sdk/models/bandwidth_plans.py +14 -3
  15. latitudesh_python_sdk/models/custom_tag.py +15 -0
  16. latitudesh_python_sdk/models/custom_tag_data.py +54 -0
  17. latitudesh_python_sdk/models/custom_tags.py +26 -0
  18. latitudesh_python_sdk/models/delete_ssh_keyop.py +16 -0
  19. latitudesh_python_sdk/models/delete_user_dataop.py +16 -0
  20. latitudesh_python_sdk/models/deploy_config.py +11 -6
  21. latitudesh_python_sdk/models/error_object.py +11 -6
  22. latitudesh_python_sdk/models/event_data.py +98 -0
  23. latitudesh_python_sdk/models/events.py +16 -1
  24. latitudesh_python_sdk/models/filesystem_data.py +4 -0
  25. latitudesh_python_sdk/models/firewall.py +15 -0
  26. latitudesh_python_sdk/models/firewall_assignment_data.py +50 -0
  27. latitudesh_python_sdk/models/firewall_assignments.py +29 -0
  28. latitudesh_python_sdk/models/firewall_data.py +71 -0
  29. latitudesh_python_sdk/models/firewall_server.py +4 -1
  30. latitudesh_python_sdk/models/firewalls.py +7 -7
  31. latitudesh_python_sdk/models/get_firewall_assignmentsop.py +3 -3
  32. latitudesh_python_sdk/models/get_ssh_keyop.py +30 -0
  33. latitudesh_python_sdk/models/get_ssh_keysop.py +22 -0
  34. latitudesh_python_sdk/models/get_traffic_consumptionop.py +8 -4
  35. latitudesh_python_sdk/models/get_user_dataop.py +31 -0
  36. latitudesh_python_sdk/models/get_users_dataop.py +35 -0
  37. latitudesh_python_sdk/models/latitudesherror.py +26 -0
  38. latitudesh_python_sdk/models/no_response_error.py +13 -0
  39. latitudesh_python_sdk/models/operating_system_data.py +65 -0
  40. latitudesh_python_sdk/models/operating_systems.py +15 -0
  41. latitudesh_python_sdk/models/out_of_band_connection.py +4 -4
  42. latitudesh_python_sdk/models/patch_user_dataop.py +69 -0
  43. latitudesh_python_sdk/models/post_ssh_keyop.py +58 -0
  44. latitudesh_python_sdk/models/post_user_dataop.py +45 -0
  45. latitudesh_python_sdk/models/project_include.py +3 -0
  46. latitudesh_python_sdk/models/put_ssh_keyop.py +80 -0
  47. latitudesh_python_sdk/models/region_resource_data.py +4 -4
  48. latitudesh_python_sdk/models/responsevalidationerror.py +25 -0
  49. latitudesh_python_sdk/models/role.py +11 -0
  50. latitudesh_python_sdk/models/server.py +11 -6
  51. latitudesh_python_sdk/models/server_data.py +14 -3
  52. latitudesh_python_sdk/models/server_region_resource_data.py +40 -0
  53. latitudesh_python_sdk/models/{ssh_key.py → ssh_keys.py} +13 -2
  54. latitudesh_python_sdk/models/storage_plan_data.py +47 -0
  55. latitudesh_python_sdk/models/storage_plans.py +14 -3
  56. latitudesh_python_sdk/models/update_serverop.py +58 -10
  57. latitudesh_python_sdk/models/user_data.py +11 -0
  58. latitudesh_python_sdk/models/virtual_network.py +30 -6
  59. latitudesh_python_sdk/models/virtual_network1.py +15 -0
  60. latitudesh_python_sdk/models/virtual_network_assignment.py +41 -0
  61. latitudesh_python_sdk/models/virtual_network_assignment_data.py +68 -0
  62. latitudesh_python_sdk/models/virtual_network_assignments.py +5 -5
  63. latitudesh_python_sdk/models/virtual_network_data.py +88 -0
  64. latitudesh_python_sdk/models/virtual_networks.py +3 -3
  65. latitudesh_python_sdk/operatingsystems_sdk.py +13 -32
  66. latitudesh_python_sdk/plans.py +99 -214
  67. latitudesh_python_sdk/privatenetworks.py +131 -290
  68. latitudesh_python_sdk/projects_sdk.py +79 -158
  69. latitudesh_python_sdk/regions_sdk.py +25 -66
  70. latitudesh_python_sdk/roles.py +25 -64
  71. latitudesh_python_sdk/sdk.py +110 -73
  72. latitudesh_python_sdk/sdkconfiguration.py +0 -7
  73. latitudesh_python_sdk/servers_sdk.py +305 -646
  74. latitudesh_python_sdk/sshkeys_sdk.py +1856 -0
  75. latitudesh_python_sdk/storage.py +41 -120
  76. latitudesh_python_sdk/tags.py +67 -146
  77. latitudesh_python_sdk/teams_sdk.py +41 -100
  78. latitudesh_python_sdk/teamsmembers.py +37 -96
  79. latitudesh_python_sdk/traffic_sdk.py +37 -76
  80. latitudesh_python_sdk/userdata_sdk.py +959 -149
  81. latitudesh_python_sdk/userprofile.py +37 -100
  82. latitudesh_python_sdk/utils/__init__.py +131 -46
  83. latitudesh_python_sdk/utils/forms.py +49 -28
  84. latitudesh_python_sdk/utils/serializers.py +3 -2
  85. latitudesh_python_sdk/utils/unmarshal_json_response.py +24 -0
  86. latitudesh_python_sdk/virtualmachines.py +71 -140
  87. latitudesh_python_sdk/vpnsessions.py +93 -172
  88. {latitudesh_python_sdk-1.1.0.dist-info → latitudesh_python_sdk-2.0.1.dist-info}/METADATA +76 -43
  89. {latitudesh_python_sdk-1.1.0.dist-info → latitudesh_python_sdk-2.0.1.dist-info}/RECORD +91 -67
  90. {latitudesh_python_sdk-1.1.0.dist-info → latitudesh_python_sdk-2.0.1.dist-info}/WHEEL +1 -1
  91. latitudesh_python_sdk/models/storage_plan.py +0 -36
  92. latitudesh_python_sdk/sshkeys.py +0 -1050
  93. {latitudesh_python_sdk-1.1.0.dist-info → latitudesh_python_sdk-2.0.1.dist-info}/LICENSE +0 -0
@@ -0,0 +1,71 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from enum import Enum
5
+ from latitudesh_python_sdk.types import BaseModel
6
+ import pydantic
7
+ from typing import List, Optional
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
+
10
+
11
+ class FirewallDataType(str, Enum):
12
+ FIREWALLS = "firewalls"
13
+
14
+
15
+ class FirewallDataRulesTypedDict(TypedDict):
16
+ from_: NotRequired[str]
17
+ to: NotRequired[str]
18
+ port: NotRequired[str]
19
+ protocol: NotRequired[str]
20
+
21
+
22
+ class FirewallDataRules(BaseModel):
23
+ from_: Annotated[Optional[str], pydantic.Field(alias="from")] = None
24
+
25
+ to: Optional[str] = None
26
+
27
+ port: Optional[str] = None
28
+
29
+ protocol: Optional[str] = None
30
+
31
+
32
+ class FirewallDataProjectTypedDict(TypedDict):
33
+ id: NotRequired[str]
34
+ slug: NotRequired[str]
35
+ name: NotRequired[str]
36
+
37
+
38
+ class FirewallDataProject(BaseModel):
39
+ id: Optional[str] = None
40
+
41
+ slug: Optional[str] = None
42
+
43
+ name: Optional[str] = None
44
+
45
+
46
+ class FirewallDataAttributesTypedDict(TypedDict):
47
+ name: NotRequired[str]
48
+ rules: NotRequired[List[FirewallDataRulesTypedDict]]
49
+ project: NotRequired[FirewallDataProjectTypedDict]
50
+
51
+
52
+ class FirewallDataAttributes(BaseModel):
53
+ name: Optional[str] = None
54
+
55
+ rules: Optional[List[FirewallDataRules]] = None
56
+
57
+ project: Optional[FirewallDataProject] = None
58
+
59
+
60
+ class FirewallDataTypedDict(TypedDict):
61
+ id: NotRequired[str]
62
+ type: NotRequired[FirewallDataType]
63
+ attributes: NotRequired[FirewallDataAttributesTypedDict]
64
+
65
+
66
+ class FirewallData(BaseModel):
67
+ id: Optional[str] = None
68
+
69
+ type: Optional[FirewallDataType] = None
70
+
71
+ attributes: Optional[FirewallDataAttributes] = None
@@ -8,7 +8,7 @@ from typing_extensions import NotRequired, TypedDict
8
8
 
9
9
 
10
10
  class FirewallServerType(str, Enum):
11
- FIREWALL_ASSIGNMENTS = "firewall_assignments"
11
+ FIREWALL_SERVERS = "firewall_servers"
12
12
 
13
13
 
14
14
  class FirewallServerServerTypedDict(TypedDict):
@@ -28,6 +28,7 @@ class FirewallServerServer(BaseModel):
28
28
  class FirewallServerAttributesTypedDict(TypedDict):
29
29
  server: NotRequired[FirewallServerServerTypedDict]
30
30
  firewall_id: NotRequired[str]
31
+ server_id: NotRequired[str]
31
32
 
32
33
 
33
34
  class FirewallServerAttributes(BaseModel):
@@ -35,6 +36,8 @@ class FirewallServerAttributes(BaseModel):
35
36
 
36
37
  firewall_id: Optional[str] = None
37
38
 
39
+ server_id: Optional[str] = None
40
+
38
41
 
39
42
  class FirewallServerTypedDict(TypedDict):
40
43
  id: NotRequired[str]
@@ -1,26 +1,26 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from .firewall import Firewall, FirewallTypedDict
4
+ from .firewall_data import FirewallData, FirewallDataTypedDict
5
5
  from latitudesh_python_sdk.types import BaseModel
6
6
  from typing import List, Optional
7
7
  from typing_extensions import NotRequired, TypedDict
8
8
 
9
9
 
10
- class MetaTypedDict(TypedDict):
10
+ class FirewallsMetaTypedDict(TypedDict):
11
11
  pass
12
12
 
13
13
 
14
- class Meta(BaseModel):
14
+ class FirewallsMeta(BaseModel):
15
15
  pass
16
16
 
17
17
 
18
18
  class FirewallsTypedDict(TypedDict):
19
- data: NotRequired[List[FirewallTypedDict]]
20
- meta: NotRequired[MetaTypedDict]
19
+ data: NotRequired[List[FirewallDataTypedDict]]
20
+ meta: NotRequired[FirewallsMetaTypedDict]
21
21
 
22
22
 
23
23
  class Firewalls(BaseModel):
24
- data: Optional[List[Firewall]] = None
24
+ data: Optional[List[FirewallData]] = None
25
25
 
26
- meta: Optional[Meta] = None
26
+ meta: Optional[FirewallsMeta] = None
@@ -1,7 +1,7 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from .firewall_server import FirewallServer, FirewallServerTypedDict
4
+ from .firewall_assignments import FirewallAssignments, FirewallAssignmentsTypedDict
5
5
  from latitudesh_python_sdk.types import BaseModel
6
6
  from latitudesh_python_sdk.utils import (
7
7
  FieldMetadata,
@@ -44,10 +44,10 @@ class GetFirewallAssignmentsRequest(BaseModel):
44
44
 
45
45
 
46
46
  class GetFirewallAssignmentsResponseTypedDict(TypedDict):
47
- result: FirewallServerTypedDict
47
+ result: FirewallAssignmentsTypedDict
48
48
 
49
49
 
50
50
  class GetFirewallAssignmentsResponse(BaseModel):
51
51
  next: Callable[[], Optional[GetFirewallAssignmentsResponse]]
52
52
 
53
- result: FirewallServer
53
+ result: FirewallAssignments
@@ -0,0 +1,30 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .ssh_key_data import SSHKeyData, SSHKeyDataTypedDict
5
+ from latitudesh_python_sdk.types import BaseModel
6
+ from latitudesh_python_sdk.utils import FieldMetadata, PathParamMetadata
7
+ from typing import Optional
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
+
10
+
11
+ class GetSSHKeyRequestTypedDict(TypedDict):
12
+ ssh_key_id: str
13
+
14
+
15
+ class GetSSHKeyRequest(BaseModel):
16
+ ssh_key_id: Annotated[
17
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
18
+ ]
19
+
20
+
21
+ class GetSSHKeyResponseBodyTypedDict(TypedDict):
22
+ r"""Success"""
23
+
24
+ data: NotRequired[SSHKeyDataTypedDict]
25
+
26
+
27
+ class GetSSHKeyResponseBody(BaseModel):
28
+ r"""Success"""
29
+
30
+ data: Optional[SSHKeyData] = None
@@ -0,0 +1,22 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from latitudesh_python_sdk.types import BaseModel
5
+ from latitudesh_python_sdk.utils import FieldMetadata, QueryParamMetadata
6
+ import pydantic
7
+ from typing import Optional
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
+
10
+
11
+ class GetSSHKeysRequestTypedDict(TypedDict):
12
+ filter_tags: NotRequired[str]
13
+ r"""The tags ids to filter by, separated by comma, e.g. `filter[tags]=tag_1,tag_2`will return ssh keys with `tag_1` AND `tag_2`"""
14
+
15
+
16
+ class GetSSHKeysRequest(BaseModel):
17
+ filter_tags: Annotated[
18
+ Optional[str],
19
+ pydantic.Field(alias="filter[tags]"),
20
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
21
+ ] = None
22
+ r"""The tags ids to filter by, separated by comma, e.g. `filter[tags]=tag_1,tag_2`will return ssh keys with `tag_1` AND `tag_2`"""
@@ -13,8 +13,10 @@ class GetTrafficConsumptionRequestTypedDict(TypedDict):
13
13
  r"""The start timestamp to retrieve the traffic. You must provide in ISO8601 format. Example: filter[date][gte]=2024-04-01T00:00:00Z"""
14
14
  filter_date_lte: str
15
15
  r"""The end timestamp to retrieve the traffic. You must provide in ISO8601 format. Example: filter[date][gte]=2024-04-31T23:59:59Z"""
16
- filter_server: NotRequired[int]
17
- filter_project: NotRequired[int]
16
+ filter_server: NotRequired[str]
17
+ r"""The server id to filter by"""
18
+ filter_project: NotRequired[str]
19
+ r"""The project id to filter by"""
18
20
 
19
21
 
20
22
  class GetTrafficConsumptionRequest(BaseModel):
@@ -33,13 +35,15 @@ class GetTrafficConsumptionRequest(BaseModel):
33
35
  r"""The end timestamp to retrieve the traffic. You must provide in ISO8601 format. Example: filter[date][gte]=2024-04-31T23:59:59Z"""
34
36
 
35
37
  filter_server: Annotated[
36
- Optional[int],
38
+ Optional[str],
37
39
  pydantic.Field(alias="filter[server]"),
38
40
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
39
41
  ] = None
42
+ r"""The server id to filter by"""
40
43
 
41
44
  filter_project: Annotated[
42
- Optional[int],
45
+ Optional[str],
43
46
  pydantic.Field(alias="filter[project]"),
44
47
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
45
48
  ] = None
49
+ r"""The project id to filter by"""
@@ -0,0 +1,31 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from latitudesh_python_sdk.types import BaseModel
5
+ from latitudesh_python_sdk.utils import (
6
+ FieldMetadata,
7
+ PathParamMetadata,
8
+ QueryParamMetadata,
9
+ )
10
+ import pydantic
11
+ from typing import Optional
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
13
+
14
+
15
+ class GetUserDataRequestTypedDict(TypedDict):
16
+ user_data_id: str
17
+ extra_fields_user_data: NotRequired[str]
18
+ r"""The `decoded_content` is provided as an extra attribute that shows content in decoded form."""
19
+
20
+
21
+ class GetUserDataRequest(BaseModel):
22
+ user_data_id: Annotated[
23
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
24
+ ]
25
+
26
+ extra_fields_user_data: Annotated[
27
+ Optional[str],
28
+ pydantic.Field(alias="extra_fields[user_data]"),
29
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
30
+ ] = "decoded_content"
31
+ r"""The `decoded_content` is provided as an extra attribute that shows content in decoded form."""
@@ -0,0 +1,35 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .user_data import UserData, UserDataTypedDict
5
+ from latitudesh_python_sdk.types import BaseModel
6
+ from latitudesh_python_sdk.utils import FieldMetadata, QueryParamMetadata
7
+ import pydantic
8
+ from typing import List, Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class GetUsersDataRequestTypedDict(TypedDict):
13
+ extra_fields_user_data: NotRequired[str]
14
+ r"""The `decoded_content` is provided as an extra attribute that shows content in decoded form."""
15
+
16
+
17
+ class GetUsersDataRequest(BaseModel):
18
+ extra_fields_user_data: Annotated[
19
+ Optional[str],
20
+ pydantic.Field(alias="extra_fields[user_data]"),
21
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
22
+ ] = "decoded_content"
23
+ r"""The `decoded_content` is provided as an extra attribute that shows content in decoded form."""
24
+
25
+
26
+ class GetUsersDataResponseBodyTypedDict(TypedDict):
27
+ r"""Success"""
28
+
29
+ data: NotRequired[List[UserDataTypedDict]]
30
+
31
+
32
+ class GetUsersDataResponseBody(BaseModel):
33
+ r"""Success"""
34
+
35
+ data: Optional[List[UserData]] = None
@@ -0,0 +1,26 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ import httpx
4
+ from typing import Optional
5
+
6
+
7
+ class LatitudeshError(Exception):
8
+ """The base class for all HTTP error responses."""
9
+
10
+ message: str
11
+ status_code: int
12
+ body: str
13
+ headers: httpx.Headers
14
+ raw_response: httpx.Response
15
+
16
+ def __init__(
17
+ self, message: str, raw_response: httpx.Response, body: Optional[str] = None
18
+ ):
19
+ self.message = message
20
+ self.status_code = raw_response.status_code
21
+ self.body = body if body is not None else raw_response.text
22
+ self.headers = raw_response.headers
23
+ self.raw_response = raw_response
24
+
25
+ def __str__(self):
26
+ return self.message
@@ -0,0 +1,13 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ class NoResponseError(Exception):
4
+ """Error raised when no HTTP response is received from the server."""
5
+
6
+ message: str
7
+
8
+ def __init__(self, message: str = "No response received"):
9
+ self.message = message
10
+ super().__init__(message)
11
+
12
+ def __str__(self):
13
+ return self.message
@@ -0,0 +1,65 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from enum import Enum
5
+ from latitudesh_python_sdk.types import BaseModel
6
+ from typing import List, Optional
7
+ from typing_extensions import NotRequired, TypedDict
8
+
9
+
10
+ class OperatingSystemDataType(str, Enum):
11
+ OPERATING_SYSTEMS = "operating_systems"
12
+
13
+
14
+ class OperatingSystemDataFeaturesTypedDict(TypedDict):
15
+ raid: NotRequired[bool]
16
+ ssh_keys: NotRequired[bool]
17
+ user_data: NotRequired[bool]
18
+
19
+
20
+ class OperatingSystemDataFeatures(BaseModel):
21
+ raid: Optional[bool] = None
22
+
23
+ ssh_keys: Optional[bool] = None
24
+
25
+ user_data: Optional[bool] = None
26
+
27
+
28
+ class OperatingSystemDataAttributesTypedDict(TypedDict):
29
+ features: NotRequired[OperatingSystemDataFeaturesTypedDict]
30
+ name: NotRequired[str]
31
+ slug: NotRequired[str]
32
+ distro: NotRequired[str]
33
+ user: NotRequired[str]
34
+ version: NotRequired[str]
35
+ provisionable_on: NotRequired[List[str]]
36
+
37
+
38
+ class OperatingSystemDataAttributes(BaseModel):
39
+ features: Optional[OperatingSystemDataFeatures] = None
40
+
41
+ name: Optional[str] = None
42
+
43
+ slug: Optional[str] = None
44
+
45
+ distro: Optional[str] = None
46
+
47
+ user: Optional[str] = None
48
+
49
+ version: Optional[str] = None
50
+
51
+ provisionable_on: Optional[List[str]] = None
52
+
53
+
54
+ class OperatingSystemDataTypedDict(TypedDict):
55
+ id: NotRequired[str]
56
+ type: NotRequired[OperatingSystemDataType]
57
+ attributes: NotRequired[OperatingSystemDataAttributesTypedDict]
58
+
59
+
60
+ class OperatingSystemData(BaseModel):
61
+ id: Optional[str] = None
62
+
63
+ type: Optional[OperatingSystemDataType] = None
64
+
65
+ attributes: Optional[OperatingSystemDataAttributes] = None
@@ -1,6 +1,7 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from .operating_system_data import OperatingSystemData, OperatingSystemDataTypedDict
4
5
  from latitudesh_python_sdk.types import BaseModel
5
6
  from typing import List, Optional
6
7
  from typing_extensions import NotRequired, TypedDict
@@ -46,12 +47,26 @@ class OperatingSystemsAttributes(BaseModel):
46
47
  provisionable_on: Optional[List[str]] = None
47
48
 
48
49
 
50
+ class OperatingSystemsMetaTypedDict(TypedDict):
51
+ pass
52
+
53
+
54
+ class OperatingSystemsMeta(BaseModel):
55
+ pass
56
+
57
+
49
58
  class OperatingSystemsTypedDict(TypedDict):
50
59
  id: NotRequired[str]
51
60
  attributes: NotRequired[OperatingSystemsAttributesTypedDict]
61
+ data: NotRequired[List[OperatingSystemDataTypedDict]]
62
+ meta: NotRequired[OperatingSystemsMetaTypedDict]
52
63
 
53
64
 
54
65
  class OperatingSystems(BaseModel):
55
66
  id: Optional[str] = None
56
67
 
57
68
  attributes: Optional[OperatingSystemsAttributes] = None
69
+
70
+ data: Optional[List[OperatingSystemData]] = None
71
+
72
+ meta: Optional[OperatingSystemsMeta] = None
@@ -6,13 +6,13 @@ from typing import Optional
6
6
  from typing_extensions import NotRequired, TypedDict
7
7
 
8
8
 
9
- class OutOfBandConnectionSSHKeyTypedDict(TypedDict):
9
+ class SSHKeyTypedDict(TypedDict):
10
10
  id: NotRequired[str]
11
11
  description: NotRequired[str]
12
12
  fingerprint: NotRequired[str]
13
13
 
14
14
 
15
- class OutOfBandConnectionSSHKey(BaseModel):
15
+ class SSHKey(BaseModel):
16
16
  id: Optional[str] = None
17
17
 
18
18
  description: Optional[str] = None
@@ -36,7 +36,7 @@ class Credentials(BaseModel):
36
36
 
37
37
 
38
38
  class OutOfBandConnectionAttributesTypedDict(TypedDict):
39
- ssh_key: NotRequired[OutOfBandConnectionSSHKeyTypedDict]
39
+ ssh_key: NotRequired[SSHKeyTypedDict]
40
40
  created_at: NotRequired[str]
41
41
  username: NotRequired[str]
42
42
  credentials: NotRequired[CredentialsTypedDict]
@@ -48,7 +48,7 @@ class OutOfBandConnectionAttributesTypedDict(TypedDict):
48
48
 
49
49
 
50
50
  class OutOfBandConnectionAttributes(BaseModel):
51
- ssh_key: Optional[OutOfBandConnectionSSHKey] = None
51
+ ssh_key: Optional[SSHKey] = None
52
52
 
53
53
  created_at: Optional[str] = None
54
54
 
@@ -0,0 +1,69 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from enum import Enum
5
+ from latitudesh_python_sdk.types import BaseModel
6
+ from latitudesh_python_sdk.utils import (
7
+ FieldMetadata,
8
+ PathParamMetadata,
9
+ RequestMetadata,
10
+ )
11
+ from typing import Optional
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
13
+
14
+
15
+ class PatchUserDataUserDataType(str, Enum):
16
+ USER_DATA = "user_data"
17
+
18
+
19
+ class PatchUserDataUserDataAttributesTypedDict(TypedDict):
20
+ description: NotRequired[str]
21
+ r"""description dummy user data"""
22
+ content: NotRequired[str]
23
+ r"""encoded content of the User Data"""
24
+
25
+
26
+ class PatchUserDataUserDataAttributes(BaseModel):
27
+ description: Optional[str] = None
28
+ r"""description dummy user data"""
29
+
30
+ content: Optional[str] = None
31
+ r"""encoded content of the User Data"""
32
+
33
+
34
+ class PatchUserDataUserDataDataTypedDict(TypedDict):
35
+ id: str
36
+ type: PatchUserDataUserDataType
37
+ attributes: NotRequired[PatchUserDataUserDataAttributesTypedDict]
38
+
39
+
40
+ class PatchUserDataUserDataData(BaseModel):
41
+ id: str
42
+
43
+ type: PatchUserDataUserDataType
44
+
45
+ attributes: Optional[PatchUserDataUserDataAttributes] = None
46
+
47
+
48
+ class PatchUserDataUserDataRequestBodyTypedDict(TypedDict):
49
+ data: PatchUserDataUserDataDataTypedDict
50
+
51
+
52
+ class PatchUserDataUserDataRequestBody(BaseModel):
53
+ data: PatchUserDataUserDataData
54
+
55
+
56
+ class PatchUserDataRequestTypedDict(TypedDict):
57
+ user_data_id: str
58
+ request_body: NotRequired[PatchUserDataUserDataRequestBodyTypedDict]
59
+
60
+
61
+ class PatchUserDataRequest(BaseModel):
62
+ user_data_id: Annotated[
63
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
64
+ ]
65
+
66
+ request_body: Annotated[
67
+ Optional[PatchUserDataUserDataRequestBody],
68
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
69
+ ] = None
@@ -0,0 +1,58 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .ssh_key_data import SSHKeyData, SSHKeyDataTypedDict
5
+ from enum import Enum
6
+ from latitudesh_python_sdk.types import BaseModel
7
+ from typing import Optional
8
+ from typing_extensions import NotRequired, TypedDict
9
+
10
+
11
+ class PostSSHKeySSHKeysType(str, Enum):
12
+ SSH_KEYS = "ssh_keys"
13
+
14
+
15
+ class PostSSHKeySSHKeysAttributesTypedDict(TypedDict):
16
+ name: NotRequired[str]
17
+ r"""Name of the SSH Key"""
18
+ public_key: NotRequired[str]
19
+ r"""SSH Public Key"""
20
+
21
+
22
+ class PostSSHKeySSHKeysAttributes(BaseModel):
23
+ name: Optional[str] = None
24
+ r"""Name of the SSH Key"""
25
+
26
+ public_key: Optional[str] = None
27
+ r"""SSH Public Key"""
28
+
29
+
30
+ class PostSSHKeySSHKeysDataTypedDict(TypedDict):
31
+ type: PostSSHKeySSHKeysType
32
+ attributes: NotRequired[PostSSHKeySSHKeysAttributesTypedDict]
33
+
34
+
35
+ class PostSSHKeySSHKeysData(BaseModel):
36
+ type: PostSSHKeySSHKeysType
37
+
38
+ attributes: Optional[PostSSHKeySSHKeysAttributes] = None
39
+
40
+
41
+ class PostSSHKeySSHKeysRequestBodyTypedDict(TypedDict):
42
+ data: PostSSHKeySSHKeysDataTypedDict
43
+
44
+
45
+ class PostSSHKeySSHKeysRequestBody(BaseModel):
46
+ data: PostSSHKeySSHKeysData
47
+
48
+
49
+ class PostSSHKeyResponseBodyTypedDict(TypedDict):
50
+ r"""Created"""
51
+
52
+ data: NotRequired[SSHKeyDataTypedDict]
53
+
54
+
55
+ class PostSSHKeyResponseBody(BaseModel):
56
+ r"""Created"""
57
+
58
+ data: Optional[SSHKeyData] = None
@@ -0,0 +1,45 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from enum import Enum
5
+ from latitudesh_python_sdk.types import BaseModel
6
+ from typing import Optional
7
+ from typing_extensions import NotRequired, TypedDict
8
+
9
+
10
+ class PostUserDataUserDataType(str, Enum):
11
+ USER_DATA = "user_data"
12
+
13
+
14
+ class PostUserDataUserDataAttributesTypedDict(TypedDict):
15
+ description: str
16
+ r"""description of the User Data"""
17
+ content: str
18
+ r"""base64 encoded content of the User Data"""
19
+
20
+
21
+ class PostUserDataUserDataAttributes(BaseModel):
22
+ description: str
23
+ r"""description of the User Data"""
24
+
25
+ content: str
26
+ r"""base64 encoded content of the User Data"""
27
+
28
+
29
+ class PostUserDataUserDataDataTypedDict(TypedDict):
30
+ type: PostUserDataUserDataType
31
+ attributes: NotRequired[PostUserDataUserDataAttributesTypedDict]
32
+
33
+
34
+ class PostUserDataUserDataData(BaseModel):
35
+ type: PostUserDataUserDataType
36
+
37
+ attributes: Optional[PostUserDataUserDataAttributes] = None
38
+
39
+
40
+ class PostUserDataUserDataRequestBodyTypedDict(TypedDict):
41
+ data: PostUserDataUserDataDataTypedDict
42
+
43
+
44
+ class PostUserDataUserDataRequestBody(BaseModel):
45
+ data: PostUserDataUserDataData
@@ -48,6 +48,7 @@ class ProjectIncludeTypedDict(TypedDict):
48
48
  environment: NotRequired[str]
49
49
  billing: NotRequired[BillingModelTypedDict]
50
50
  stats: NotRequired[StatsTypedDict]
51
+ provisioning_type: NotRequired[str]
51
52
 
52
53
 
53
54
  class ProjectInclude(BaseModel):
@@ -70,3 +71,5 @@ class ProjectInclude(BaseModel):
70
71
  billing: Optional[BillingModel] = None
71
72
 
72
73
  stats: Optional[Stats] = None
74
+
75
+ provisioning_type: Optional[str] = None