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
@@ -1,22 +1,38 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
- from dataclasses import dataclass
4
- from typing import Optional
5
3
  import httpx
4
+ from typing import Optional
5
+
6
+ from latitudesh_python_sdk.models import LatitudeshError
7
+
8
+ MAX_MESSAGE_LEN = 10_000
9
+
10
+
11
+ class APIError(LatitudeshError):
12
+ """The fallback error class if no more specific error class is matched."""
13
+
14
+ def __init__(
15
+ self, message: str, raw_response: httpx.Response, body: Optional[str] = None
16
+ ):
17
+ body_display = body or raw_response.text or '""'
6
18
 
19
+ if message:
20
+ message += ": "
21
+ message += f"Status {raw_response.status_code}"
7
22
 
8
- @dataclass
9
- class APIError(Exception):
10
- """Represents an error returned by the API."""
23
+ headers = raw_response.headers
24
+ content_type = headers.get("content-type", '""')
25
+ if content_type != "application/json":
26
+ if " " in content_type:
27
+ content_type = f'"{content_type}"'
28
+ message += f" Content-Type {content_type}"
11
29
 
12
- message: str
13
- status_code: int = -1
14
- body: str = ""
15
- raw_response: Optional[httpx.Response] = None
30
+ if len(body_display) > MAX_MESSAGE_LEN:
31
+ truncated = body_display[:MAX_MESSAGE_LEN]
32
+ remaining = len(body_display) - MAX_MESSAGE_LEN
33
+ body_display = f"{truncated}...and {remaining} more chars"
16
34
 
17
- def __str__(self):
18
- body = ""
19
- if len(self.body) > 0:
20
- body = f"\n{self.body}"
35
+ message += f". Body: {body_display}"
36
+ message = message.strip()
21
37
 
22
- return f"{self.message}: Status {self.status_code}{body}"
38
+ super().__init__(message, raw_response, body)
@@ -13,13 +13,13 @@ class AssignServerVirtualNetworkPrivateNetworksType(str, Enum):
13
13
 
14
14
  class AssignServerVirtualNetworkPrivateNetworksAttributesTypedDict(TypedDict):
15
15
  server_id: str
16
- virtual_network_id: int
16
+ virtual_network_id: str
17
17
 
18
18
 
19
19
  class AssignServerVirtualNetworkPrivateNetworksAttributes(BaseModel):
20
20
  server_id: str
21
21
 
22
- virtual_network_id: int
22
+ virtual_network_id: str
23
23
 
24
24
 
25
25
  class AssignServerVirtualNetworkPrivateNetworksDataTypedDict(TypedDict):
@@ -7,7 +7,7 @@ from typing import List, Optional
7
7
  from typing_extensions import NotRequired, TypedDict
8
8
 
9
9
 
10
- class BandwidthPlanType(str, Enum):
10
+ class BandwidthPlanDataType(str, Enum):
11
11
  BANDWIDTH_PLAN = "bandwidth_plan"
12
12
 
13
13
 
@@ -44,13 +44,13 @@ class Pricing(BaseModel):
44
44
  brl: Optional[Brl] = None
45
45
 
46
46
 
47
- class BandwidthPlanAttributesTypedDict(TypedDict):
47
+ class BandwidthPlanDataAttributesTypedDict(TypedDict):
48
48
  region: NotRequired[str]
49
49
  locations: NotRequired[List[str]]
50
50
  pricing: NotRequired[PricingTypedDict]
51
51
 
52
52
 
53
- class BandwidthPlanAttributes(BaseModel):
53
+ class BandwidthPlanDataAttributes(BaseModel):
54
54
  region: Optional[str] = None
55
55
 
56
56
  locations: Optional[List[str]] = None
@@ -58,15 +58,15 @@ class BandwidthPlanAttributes(BaseModel):
58
58
  pricing: Optional[Pricing] = None
59
59
 
60
60
 
61
- class BandwidthPlanTypedDict(TypedDict):
61
+ class BandwidthPlanDataTypedDict(TypedDict):
62
62
  id: NotRequired[str]
63
- type: NotRequired[BandwidthPlanType]
64
- attributes: NotRequired[BandwidthPlanAttributesTypedDict]
63
+ type: NotRequired[BandwidthPlanDataType]
64
+ attributes: NotRequired[BandwidthPlanDataAttributesTypedDict]
65
65
 
66
66
 
67
- class BandwidthPlan(BaseModel):
67
+ class BandwidthPlanData(BaseModel):
68
68
  id: Optional[str] = None
69
69
 
70
- type: Optional[BandwidthPlanType] = None
70
+ type: Optional[BandwidthPlanDataType] = None
71
71
 
72
- attributes: Optional[BandwidthPlanAttributes] = None
72
+ attributes: Optional[BandwidthPlanDataAttributes] = None
@@ -1,15 +1,26 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from .bandwidth_plan import BandwidthPlan, BandwidthPlanTypedDict
4
+ from .bandwidth_plan_data import BandwidthPlanData, BandwidthPlanDataTypedDict
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 BandwidthPlansMetaTypedDict(TypedDict):
11
+ pass
12
+
13
+
14
+ class BandwidthPlansMeta(BaseModel):
15
+ pass
16
+
17
+
10
18
  class BandwidthPlansTypedDict(TypedDict):
11
- data: NotRequired[List[BandwidthPlanTypedDict]]
19
+ data: NotRequired[List[BandwidthPlanDataTypedDict]]
20
+ meta: NotRequired[BandwidthPlansMetaTypedDict]
12
21
 
13
22
 
14
23
  class BandwidthPlans(BaseModel):
15
- data: Optional[List[BandwidthPlan]] = None
24
+ data: Optional[List[BandwidthPlanData]] = None
25
+
26
+ meta: Optional[BandwidthPlansMeta] = 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 .custom_tag_data import CustomTagData, CustomTagDataTypedDict
4
5
  from .team_include import TeamInclude, TeamIncludeTypedDict
5
6
  from enum import Enum
6
7
  from latitudesh_python_sdk.types import BaseModel
@@ -40,10 +41,20 @@ class CustomTagAttributes(BaseModel):
40
41
  team: Optional[TeamInclude] = None
41
42
 
42
43
 
44
+ class CustomTagMetaTypedDict(TypedDict):
45
+ pass
46
+
47
+
48
+ class CustomTagMeta(BaseModel):
49
+ pass
50
+
51
+
43
52
  class CustomTagTypedDict(TypedDict):
44
53
  id: NotRequired[str]
45
54
  type: NotRequired[CustomTagType]
46
55
  attributes: NotRequired[CustomTagAttributesTypedDict]
56
+ data: NotRequired[CustomTagDataTypedDict]
57
+ meta: NotRequired[CustomTagMetaTypedDict]
47
58
 
48
59
 
49
60
  class CustomTag(BaseModel):
@@ -52,3 +63,7 @@ class CustomTag(BaseModel):
52
63
  type: Optional[CustomTagType] = None
53
64
 
54
65
  attributes: Optional[CustomTagAttributes] = None
66
+
67
+ data: Optional[CustomTagData] = None
68
+
69
+ meta: Optional[CustomTagMeta] = None
@@ -0,0 +1,54 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .team_include import TeamInclude, TeamIncludeTypedDict
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 CustomTagDataType(str, Enum):
12
+ TAGS = "tags"
13
+
14
+
15
+ class CustomTagDataAttributesTypedDict(TypedDict):
16
+ name: NotRequired[str]
17
+ r"""Name of the Tag"""
18
+ slug: NotRequired[str]
19
+ r"""Slug of the Tag"""
20
+ description: NotRequired[str]
21
+ r"""Description of the Tag"""
22
+ color: NotRequired[str]
23
+ r"""Color of the Tag"""
24
+ team: NotRequired[TeamIncludeTypedDict]
25
+
26
+
27
+ class CustomTagDataAttributes(BaseModel):
28
+ name: Optional[str] = None
29
+ r"""Name of the Tag"""
30
+
31
+ slug: Optional[str] = None
32
+ r"""Slug of the Tag"""
33
+
34
+ description: Optional[str] = None
35
+ r"""Description of the Tag"""
36
+
37
+ color: Optional[str] = None
38
+ r"""Color of the Tag"""
39
+
40
+ team: Optional[TeamInclude] = None
41
+
42
+
43
+ class CustomTagDataTypedDict(TypedDict):
44
+ id: NotRequired[str]
45
+ type: NotRequired[CustomTagDataType]
46
+ attributes: NotRequired[CustomTagDataAttributesTypedDict]
47
+
48
+
49
+ class CustomTagData(BaseModel):
50
+ id: Optional[str] = None
51
+
52
+ type: Optional[CustomTagDataType] = None
53
+
54
+ attributes: Optional[CustomTagDataAttributes] = None
@@ -0,0 +1,26 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .custom_tag_data import CustomTagData, CustomTagDataTypedDict
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 CustomTagsMetaTypedDict(TypedDict):
11
+ pass
12
+
13
+
14
+ class CustomTagsMeta(BaseModel):
15
+ pass
16
+
17
+
18
+ class CustomTagsTypedDict(TypedDict):
19
+ data: NotRequired[List[CustomTagDataTypedDict]]
20
+ meta: NotRequired[CustomTagsMetaTypedDict]
21
+
22
+
23
+ class CustomTags(BaseModel):
24
+ data: Optional[List[CustomTagData]] = None
25
+
26
+ meta: Optional[CustomTagsMeta] = None
@@ -0,0 +1,16 @@
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, PathParamMetadata
6
+ from typing_extensions import Annotated, TypedDict
7
+
8
+
9
+ class DeleteSSHKeyRequestTypedDict(TypedDict):
10
+ ssh_key_id: str
11
+
12
+
13
+ class DeleteSSHKeyRequest(BaseModel):
14
+ ssh_key_id: Annotated[
15
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
16
+ ]
@@ -0,0 +1,16 @@
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, PathParamMetadata
6
+ from typing_extensions import Annotated, TypedDict
7
+
8
+
9
+ class DeleteUserDataRequestTypedDict(TypedDict):
10
+ user_data_id: str
11
+
12
+
13
+ class DeleteUserDataRequest(BaseModel):
14
+ user_data_id: Annotated[
15
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
16
+ ]
@@ -1,7 +1,8 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from latitudesh_python_sdk import utils
4
+ import httpx
5
+ from latitudesh_python_sdk.models import LatitudeshError
5
6
  from latitudesh_python_sdk.types import BaseModel
6
7
  from typing import List, Optional
7
8
  from typing_extensions import NotRequired, TypedDict
@@ -64,11 +65,15 @@ class DeployConfigErrorData(BaseModel):
64
65
  data: Optional[DeployConfigData] = None
65
66
 
66
67
 
67
- class DeployConfigError(Exception):
68
+ class DeployConfigError(LatitudeshError):
68
69
  data: DeployConfigErrorData
69
70
 
70
- def __init__(self, data: DeployConfigErrorData):
71
+ def __init__(
72
+ self,
73
+ data: DeployConfigErrorData,
74
+ raw_response: httpx.Response,
75
+ body: Optional[str] = None,
76
+ ):
77
+ message = body or raw_response.text
78
+ super().__init__(message, raw_response, body)
71
79
  self.data = data
72
-
73
- def __str__(self) -> str:
74
- return utils.marshal_json(self.data, DeployConfigErrorData)
@@ -1,7 +1,8 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from latitudesh_python_sdk import utils
4
+ import httpx
5
+ from latitudesh_python_sdk.models import LatitudeshError
5
6
  from latitudesh_python_sdk.types import BaseModel
6
7
  from typing import List, Optional
7
8
  from typing_extensions import NotRequired, TypedDict
@@ -39,11 +40,15 @@ class ErrorObjectData(BaseModel):
39
40
  errors: Optional[List[Errors]] = None
40
41
 
41
42
 
42
- class ErrorObject(Exception):
43
+ class ErrorObject(LatitudeshError):
43
44
  data: ErrorObjectData
44
45
 
45
- def __init__(self, data: ErrorObjectData):
46
+ def __init__(
47
+ self,
48
+ data: ErrorObjectData,
49
+ raw_response: httpx.Response,
50
+ body: Optional[str] = None,
51
+ ):
52
+ message = body or raw_response.text
53
+ super().__init__(message, raw_response, body)
46
54
  self.data = data
47
-
48
- def __str__(self) -> str:
49
- return utils.marshal_json(self.data, ErrorObjectData)
@@ -0,0 +1,98 @@
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 EventDataType(str, Enum):
11
+ EVENTS = "events"
12
+
13
+
14
+ class EventDataAuthorTypedDict(TypedDict):
15
+ id: NotRequired[str]
16
+ name: NotRequired[str]
17
+ email: NotRequired[str]
18
+
19
+
20
+ class EventDataAuthor(BaseModel):
21
+ id: Optional[str] = None
22
+
23
+ name: Optional[str] = None
24
+
25
+ email: Optional[str] = None
26
+
27
+
28
+ class EventDataProjectTypedDict(TypedDict):
29
+ id: NotRequired[str]
30
+ name: NotRequired[str]
31
+ slug: NotRequired[str]
32
+
33
+
34
+ class EventDataProject(BaseModel):
35
+ id: Optional[str] = None
36
+
37
+ name: Optional[str] = None
38
+
39
+ slug: Optional[str] = None
40
+
41
+
42
+ class EventDataTeamTypedDict(TypedDict):
43
+ id: NotRequired[str]
44
+ name: NotRequired[str]
45
+
46
+
47
+ class EventDataTeam(BaseModel):
48
+ id: Optional[str] = None
49
+
50
+ name: Optional[str] = None
51
+
52
+
53
+ class EventDataTargetTypedDict(TypedDict):
54
+ id: NotRequired[str]
55
+ name: NotRequired[str]
56
+
57
+
58
+ class EventDataTarget(BaseModel):
59
+ id: Optional[str] = None
60
+
61
+ name: Optional[str] = None
62
+
63
+
64
+ class EventDataAttributesTypedDict(TypedDict):
65
+ action: NotRequired[str]
66
+ created_at: NotRequired[str]
67
+ author: NotRequired[EventDataAuthorTypedDict]
68
+ project: NotRequired[EventDataProjectTypedDict]
69
+ team: NotRequired[EventDataTeamTypedDict]
70
+ target: NotRequired[EventDataTargetTypedDict]
71
+
72
+
73
+ class EventDataAttributes(BaseModel):
74
+ action: Optional[str] = None
75
+
76
+ created_at: Optional[str] = None
77
+
78
+ author: Optional[EventDataAuthor] = None
79
+
80
+ project: Optional[EventDataProject] = None
81
+
82
+ team: Optional[EventDataTeam] = None
83
+
84
+ target: Optional[EventDataTarget] = None
85
+
86
+
87
+ class EventDataTypedDict(TypedDict):
88
+ id: NotRequired[str]
89
+ type: NotRequired[EventDataType]
90
+ attributes: NotRequired[EventDataAttributesTypedDict]
91
+
92
+
93
+ class EventData(BaseModel):
94
+ id: Optional[str] = None
95
+
96
+ type: Optional[EventDataType] = None
97
+
98
+ attributes: Optional[EventDataAttributes] = None
@@ -1,8 +1,9 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from .event_data import EventData, EventDataTypedDict
4
5
  from latitudesh_python_sdk.types import BaseModel
5
- from typing import Optional
6
+ from typing import List, Optional
6
7
  from typing_extensions import NotRequired, TypedDict
7
8
 
8
9
 
@@ -79,12 +80,26 @@ class EventsAttributes(BaseModel):
79
80
  target: Optional[Target] = None
80
81
 
81
82
 
83
+ class MetaTypedDict(TypedDict):
84
+ pass
85
+
86
+
87
+ class Meta(BaseModel):
88
+ pass
89
+
90
+
82
91
  class EventsTypedDict(TypedDict):
83
92
  id: NotRequired[str]
84
93
  attributes: NotRequired[EventsAttributesTypedDict]
94
+ data: NotRequired[List[EventDataTypedDict]]
95
+ meta: NotRequired[MetaTypedDict]
85
96
 
86
97
 
87
98
  class Events(BaseModel):
88
99
  id: Optional[str] = None
89
100
 
90
101
  attributes: Optional[EventsAttributes] = None
102
+
103
+ data: Optional[List[EventData]] = None
104
+
105
+ meta: Optional[Meta] = 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 datetime import datetime
4
5
  from enum import Enum
5
6
  from latitudesh_python_sdk.types import BaseModel
6
7
  from typing import Optional
@@ -29,6 +30,7 @@ class FilesystemDataAttributesTypedDict(TypedDict):
29
30
  name: NotRequired[str]
30
31
  size_in_gb: NotRequired[int]
31
32
  project: NotRequired[FilesystemDataProjectTypedDict]
33
+ created_at: NotRequired[datetime]
32
34
 
33
35
 
34
36
  class FilesystemDataAttributes(BaseModel):
@@ -38,6 +40,8 @@ class FilesystemDataAttributes(BaseModel):
38
40
 
39
41
  project: Optional[FilesystemDataProject] = None
40
42
 
43
+ created_at: Optional[datetime] = None
44
+
41
45
 
42
46
  class FilesystemDataTypedDict(TypedDict):
43
47
  id: NotRequired[str]
@@ -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 .firewall_data import FirewallData, FirewallDataTypedDict
4
5
  from enum import Enum
5
6
  from latitudesh_python_sdk.types import BaseModel
6
7
  import pydantic
@@ -57,10 +58,20 @@ class FirewallAttributes(BaseModel):
57
58
  project: Optional[FirewallProject] = None
58
59
 
59
60
 
61
+ class FirewallMetaTypedDict(TypedDict):
62
+ pass
63
+
64
+
65
+ class FirewallMeta(BaseModel):
66
+ pass
67
+
68
+
60
69
  class FirewallTypedDict(TypedDict):
61
70
  id: NotRequired[str]
62
71
  type: NotRequired[FirewallType]
63
72
  attributes: NotRequired[FirewallAttributesTypedDict]
73
+ data: NotRequired[FirewallDataTypedDict]
74
+ meta: NotRequired[FirewallMetaTypedDict]
64
75
 
65
76
 
66
77
  class Firewall(BaseModel):
@@ -69,3 +80,7 @@ class Firewall(BaseModel):
69
80
  type: Optional[FirewallType] = None
70
81
 
71
82
  attributes: Optional[FirewallAttributes] = None
83
+
84
+ data: Optional[FirewallData] = None
85
+
86
+ meta: Optional[FirewallMeta] = None
@@ -0,0 +1,50 @@
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 FirewallAssignmentDataType(str, Enum):
11
+ FIREWALL_ASSIGNMENTS = "firewall_assignments"
12
+
13
+
14
+ class FirewallAssignmentDataServerTypedDict(TypedDict):
15
+ id: NotRequired[str]
16
+ primary_ipv4: NotRequired[str]
17
+ hostname: NotRequired[str]
18
+
19
+
20
+ class FirewallAssignmentDataServer(BaseModel):
21
+ id: Optional[str] = None
22
+
23
+ primary_ipv4: Optional[str] = None
24
+
25
+ hostname: Optional[str] = None
26
+
27
+
28
+ class FirewallAssignmentDataAttributesTypedDict(TypedDict):
29
+ server: NotRequired[FirewallAssignmentDataServerTypedDict]
30
+ firewall_id: NotRequired[str]
31
+
32
+
33
+ class FirewallAssignmentDataAttributes(BaseModel):
34
+ server: Optional[FirewallAssignmentDataServer] = None
35
+
36
+ firewall_id: Optional[str] = None
37
+
38
+
39
+ class FirewallAssignmentDataTypedDict(TypedDict):
40
+ id: NotRequired[str]
41
+ type: NotRequired[FirewallAssignmentDataType]
42
+ attributes: NotRequired[FirewallAssignmentDataAttributesTypedDict]
43
+
44
+
45
+ class FirewallAssignmentData(BaseModel):
46
+ id: Optional[str] = None
47
+
48
+ type: Optional[FirewallAssignmentDataType] = None
49
+
50
+ attributes: Optional[FirewallAssignmentDataAttributes] = None
@@ -0,0 +1,29 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .firewall_assignment_data import (
5
+ FirewallAssignmentData,
6
+ FirewallAssignmentDataTypedDict,
7
+ )
8
+ from latitudesh_python_sdk.types import BaseModel
9
+ from typing import List, Optional
10
+ from typing_extensions import NotRequired, TypedDict
11
+
12
+
13
+ class FirewallAssignmentsMetaTypedDict(TypedDict):
14
+ pass
15
+
16
+
17
+ class FirewallAssignmentsMeta(BaseModel):
18
+ pass
19
+
20
+
21
+ class FirewallAssignmentsTypedDict(TypedDict):
22
+ data: NotRequired[List[FirewallAssignmentDataTypedDict]]
23
+ meta: NotRequired[FirewallAssignmentsMetaTypedDict]
24
+
25
+
26
+ class FirewallAssignments(BaseModel):
27
+ data: Optional[List[FirewallAssignmentData]] = None
28
+
29
+ meta: Optional[FirewallAssignmentsMeta] = None