apex-dispatch-api-client 0.7.2__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.
- apex_dispatch_api_client/__about__.py +15 -0
- apex_dispatch_api_client/__init__.py +8 -0
- apex_dispatch_api_client/api/__init__.py +1 -0
- apex_dispatch_api_client/api/default/__init__.py +1 -0
- apex_dispatch_api_client/api/default/health_health_get.py +85 -0
- apex_dispatch_api_client/api/unit_jobs/__init__.py +1 -0
- apex_dispatch_api_client/api/unit_jobs/create_sync_job_sync_jobs_post.py +178 -0
- apex_dispatch_api_client/api/unit_jobs/create_unit_job_unit_jobs_post.py +180 -0
- apex_dispatch_api_client/api/unit_jobs/delete_job_unit_jobs_job_id_delete.py +170 -0
- apex_dispatch_api_client/api/unit_jobs/get_job_params_params_post.py +179 -0
- apex_dispatch_api_client/api/unit_jobs/get_job_results_unit_jobs_job_id_results_get.py +186 -0
- apex_dispatch_api_client/api/unit_jobs/get_job_unit_jobs_job_id_get.py +172 -0
- apex_dispatch_api_client/api/upscale_tasks/__init__.py +1 -0
- apex_dispatch_api_client/api/upscale_tasks/create_upscale_task_upscale_tasks_post.py +180 -0
- apex_dispatch_api_client/api/upscale_tasks/get_jobs_status_jobs_status_get.py +192 -0
- apex_dispatch_api_client/api/upscale_tasks/get_upscale_task_upscale_tasks_task_id_get.py +172 -0
- apex_dispatch_api_client/api/upscale_tasks/split_in_tiles_tiles_post.py +184 -0
- apex_dispatch_api_client/client.py +282 -0
- apex_dispatch_api_client/errors.py +16 -0
- apex_dispatch_api_client/models/__init__.py +99 -0
- apex_dispatch_api_client/models/asset.py +155 -0
- apex_dispatch_api_client/models/base_job_request.py +104 -0
- apex_dispatch_api_client/models/base_job_request_parameters.py +47 -0
- apex_dispatch_api_client/models/collection.py +332 -0
- apex_dispatch_api_client/models/collection_assets_type_0.py +60 -0
- apex_dispatch_api_client/models/collection_summaries_type_0.py +109 -0
- apex_dispatch_api_client/models/collection_summaries_type_0_additional_property_type_2.py +47 -0
- apex_dispatch_api_client/models/error_response.py +138 -0
- apex_dispatch_api_client/models/error_response_details_type_0.py +47 -0
- apex_dispatch_api_client/models/extent.py +80 -0
- apex_dispatch_api_client/models/geometry_collection.py +247 -0
- apex_dispatch_api_client/models/grid_type_enum.py +9 -0
- apex_dispatch_api_client/models/http_validation_error.py +79 -0
- apex_dispatch_api_client/models/jobs_filter.py +9 -0
- apex_dispatch_api_client/models/jobs_status_response.py +97 -0
- apex_dispatch_api_client/models/line_string.py +163 -0
- apex_dispatch_api_client/models/link.py +123 -0
- apex_dispatch_api_client/models/mime_types.py +37 -0
- apex_dispatch_api_client/models/multi_line_string.py +180 -0
- apex_dispatch_api_client/models/multi_point.py +163 -0
- apex_dispatch_api_client/models/multi_polygon.py +191 -0
- apex_dispatch_api_client/models/output_format_enum.py +11 -0
- apex_dispatch_api_client/models/param_request.py +77 -0
- apex_dispatch_api_client/models/param_type_enum.py +16 -0
- apex_dispatch_api_client/models/parameter.py +108 -0
- apex_dispatch_api_client/models/parameter_dimension.py +69 -0
- apex_dispatch_api_client/models/point.py +151 -0
- apex_dispatch_api_client/models/polygon.py +180 -0
- apex_dispatch_api_client/models/process_type_enum.py +9 -0
- apex_dispatch_api_client/models/processing_job.py +130 -0
- apex_dispatch_api_client/models/processing_job_parameters.py +47 -0
- apex_dispatch_api_client/models/processing_job_summary.py +116 -0
- apex_dispatch_api_client/models/processing_job_summary_parameters.py +47 -0
- apex_dispatch_api_client/models/processing_status_enum.py +14 -0
- apex_dispatch_api_client/models/provider.py +135 -0
- apex_dispatch_api_client/models/range_.py +79 -0
- apex_dispatch_api_client/models/service_details.py +95 -0
- apex_dispatch_api_client/models/spatial_extent.py +96 -0
- apex_dispatch_api_client/models/tile_request.py +77 -0
- apex_dispatch_api_client/models/time_interval.py +99 -0
- apex_dispatch_api_client/models/upscaling_task.py +138 -0
- apex_dispatch_api_client/models/upscaling_task_request.py +118 -0
- apex_dispatch_api_client/models/upscaling_task_request_parameters.py +47 -0
- apex_dispatch_api_client/models/upscaling_task_summary.py +88 -0
- apex_dispatch_api_client/models/validation_error.py +123 -0
- apex_dispatch_api_client/models/validation_error_context.py +47 -0
- apex_dispatch_api_client/types.py +54 -0
- apex_dispatch_api_client-0.7.2.dist-info/METADATA +167 -0
- apex_dispatch_api_client-0.7.2.dist-info/RECORD +71 -0
- apex_dispatch_api_client-0.7.2.dist-info/WHEEL +4 -0
- apex_dispatch_api_client-0.7.2.dist-info/licenses/LICENSE +202 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import Any, TypeVar, cast
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
from ..types import UNSET, Unset
|
|
10
|
+
|
|
11
|
+
T = TypeVar("T", bound="Provider")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@_attrs_define
|
|
15
|
+
class Provider:
|
|
16
|
+
"""https://github.com/radiantearth/stac-spec/blob/v1.0.0/collection-spec/collection-spec.md#provider-object
|
|
17
|
+
|
|
18
|
+
Attributes:
|
|
19
|
+
name (str):
|
|
20
|
+
description (None | str | Unset):
|
|
21
|
+
roles (list[str] | None | Unset):
|
|
22
|
+
url (None | str | Unset):
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
name: str
|
|
26
|
+
description: None | str | Unset = UNSET
|
|
27
|
+
roles: list[str] | None | Unset = UNSET
|
|
28
|
+
url: None | str | Unset = UNSET
|
|
29
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
30
|
+
|
|
31
|
+
def to_dict(self) -> dict[str, Any]:
|
|
32
|
+
name = self.name
|
|
33
|
+
|
|
34
|
+
description: None | str | Unset
|
|
35
|
+
if isinstance(self.description, Unset):
|
|
36
|
+
description = UNSET
|
|
37
|
+
else:
|
|
38
|
+
description = self.description
|
|
39
|
+
|
|
40
|
+
roles: list[str] | None | Unset
|
|
41
|
+
if isinstance(self.roles, Unset):
|
|
42
|
+
roles = UNSET
|
|
43
|
+
elif isinstance(self.roles, list):
|
|
44
|
+
roles = self.roles
|
|
45
|
+
|
|
46
|
+
else:
|
|
47
|
+
roles = self.roles
|
|
48
|
+
|
|
49
|
+
url: None | str | Unset
|
|
50
|
+
if isinstance(self.url, Unset):
|
|
51
|
+
url = UNSET
|
|
52
|
+
else:
|
|
53
|
+
url = self.url
|
|
54
|
+
|
|
55
|
+
field_dict: dict[str, Any] = {}
|
|
56
|
+
field_dict.update(self.additional_properties)
|
|
57
|
+
field_dict.update(
|
|
58
|
+
{
|
|
59
|
+
"name": name,
|
|
60
|
+
}
|
|
61
|
+
)
|
|
62
|
+
if description is not UNSET:
|
|
63
|
+
field_dict["description"] = description
|
|
64
|
+
if roles is not UNSET:
|
|
65
|
+
field_dict["roles"] = roles
|
|
66
|
+
if url is not UNSET:
|
|
67
|
+
field_dict["url"] = url
|
|
68
|
+
|
|
69
|
+
return field_dict
|
|
70
|
+
|
|
71
|
+
@classmethod
|
|
72
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
73
|
+
d = dict(src_dict)
|
|
74
|
+
name = d.pop("name")
|
|
75
|
+
|
|
76
|
+
def _parse_description(data: object) -> None | str | Unset:
|
|
77
|
+
if data is None:
|
|
78
|
+
return data
|
|
79
|
+
if isinstance(data, Unset):
|
|
80
|
+
return data
|
|
81
|
+
return cast(None | str | Unset, data)
|
|
82
|
+
|
|
83
|
+
description = _parse_description(d.pop("description", UNSET))
|
|
84
|
+
|
|
85
|
+
def _parse_roles(data: object) -> list[str] | None | Unset:
|
|
86
|
+
if data is None:
|
|
87
|
+
return data
|
|
88
|
+
if isinstance(data, Unset):
|
|
89
|
+
return data
|
|
90
|
+
try:
|
|
91
|
+
if not isinstance(data, list):
|
|
92
|
+
raise TypeError()
|
|
93
|
+
roles_type_0 = cast(list[str], data)
|
|
94
|
+
|
|
95
|
+
return roles_type_0
|
|
96
|
+
except (TypeError, ValueError, AttributeError, KeyError):
|
|
97
|
+
pass
|
|
98
|
+
return cast(list[str] | None | Unset, data)
|
|
99
|
+
|
|
100
|
+
roles = _parse_roles(d.pop("roles", UNSET))
|
|
101
|
+
|
|
102
|
+
def _parse_url(data: object) -> None | str | Unset:
|
|
103
|
+
if data is None:
|
|
104
|
+
return data
|
|
105
|
+
if isinstance(data, Unset):
|
|
106
|
+
return data
|
|
107
|
+
return cast(None | str | Unset, data)
|
|
108
|
+
|
|
109
|
+
url = _parse_url(d.pop("url", UNSET))
|
|
110
|
+
|
|
111
|
+
provider = cls(
|
|
112
|
+
name=name,
|
|
113
|
+
description=description,
|
|
114
|
+
roles=roles,
|
|
115
|
+
url=url,
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
provider.additional_properties = d
|
|
119
|
+
return provider
|
|
120
|
+
|
|
121
|
+
@property
|
|
122
|
+
def additional_keys(self) -> list[str]:
|
|
123
|
+
return list(self.additional_properties.keys())
|
|
124
|
+
|
|
125
|
+
def __getitem__(self, key: str) -> Any:
|
|
126
|
+
return self.additional_properties[key]
|
|
127
|
+
|
|
128
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
129
|
+
self.additional_properties[key] = value
|
|
130
|
+
|
|
131
|
+
def __delitem__(self, key: str) -> None:
|
|
132
|
+
del self.additional_properties[key]
|
|
133
|
+
|
|
134
|
+
def __contains__(self, key: str) -> bool:
|
|
135
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import Any, TypeVar, cast
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
T = TypeVar("T", bound="Range")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@_attrs_define
|
|
13
|
+
class Range:
|
|
14
|
+
"""https://github.com/radiantearth/stac-spec/blob/v1.0.0/collection-spec/collection-spec.md#stats-object
|
|
15
|
+
|
|
16
|
+
Attributes:
|
|
17
|
+
minimum (float | int | str):
|
|
18
|
+
maximum (float | int | str):
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
minimum: float | int | str
|
|
22
|
+
maximum: float | int | str
|
|
23
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
24
|
+
|
|
25
|
+
def to_dict(self) -> dict[str, Any]:
|
|
26
|
+
minimum: float | int | str
|
|
27
|
+
minimum = self.minimum
|
|
28
|
+
|
|
29
|
+
maximum: float | int | str
|
|
30
|
+
maximum = self.maximum
|
|
31
|
+
|
|
32
|
+
field_dict: dict[str, Any] = {}
|
|
33
|
+
field_dict.update(self.additional_properties)
|
|
34
|
+
field_dict.update(
|
|
35
|
+
{
|
|
36
|
+
"minimum": minimum,
|
|
37
|
+
"maximum": maximum,
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
return field_dict
|
|
42
|
+
|
|
43
|
+
@classmethod
|
|
44
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
45
|
+
d = dict(src_dict)
|
|
46
|
+
|
|
47
|
+
def _parse_minimum(data: object) -> float | int | str:
|
|
48
|
+
return cast(float | int | str, data)
|
|
49
|
+
|
|
50
|
+
minimum = _parse_minimum(d.pop("minimum"))
|
|
51
|
+
|
|
52
|
+
def _parse_maximum(data: object) -> float | int | str:
|
|
53
|
+
return cast(float | int | str, data)
|
|
54
|
+
|
|
55
|
+
maximum = _parse_maximum(d.pop("maximum"))
|
|
56
|
+
|
|
57
|
+
range_ = cls(
|
|
58
|
+
minimum=minimum,
|
|
59
|
+
maximum=maximum,
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
range_.additional_properties = d
|
|
63
|
+
return range_
|
|
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
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import Any, TypeVar, cast
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
from ..types import UNSET, Unset
|
|
10
|
+
|
|
11
|
+
T = TypeVar("T", bound="ServiceDetails")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@_attrs_define
|
|
15
|
+
class ServiceDetails:
|
|
16
|
+
"""
|
|
17
|
+
Attributes:
|
|
18
|
+
endpoint (str): URL to the endpoint where the service is hosted. For openEO, this is the openEO backend. For OGC
|
|
19
|
+
API Processes, this field should include the base URL of the platform API
|
|
20
|
+
application (str): Path to the application that needs to be executed. For openEO this is referring to the public
|
|
21
|
+
URL of the UDP (JSON) to execute. For OGC API Processes, this field should include the URL path pointing to the
|
|
22
|
+
hosted service.
|
|
23
|
+
namespace (None | str | Unset): Namespace under the endpoint where the service is hosted.For openEO, this field
|
|
24
|
+
is not set.For OGC API Processes, this field should include the namespace IDrepresenting the service deployment
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
endpoint: str
|
|
28
|
+
application: str
|
|
29
|
+
namespace: None | str | Unset = UNSET
|
|
30
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
31
|
+
|
|
32
|
+
def to_dict(self) -> dict[str, Any]:
|
|
33
|
+
endpoint = self.endpoint
|
|
34
|
+
|
|
35
|
+
application = self.application
|
|
36
|
+
|
|
37
|
+
namespace: None | str | Unset
|
|
38
|
+
if isinstance(self.namespace, Unset):
|
|
39
|
+
namespace = UNSET
|
|
40
|
+
else:
|
|
41
|
+
namespace = self.namespace
|
|
42
|
+
|
|
43
|
+
field_dict: dict[str, Any] = {}
|
|
44
|
+
field_dict.update(self.additional_properties)
|
|
45
|
+
field_dict.update(
|
|
46
|
+
{
|
|
47
|
+
"endpoint": endpoint,
|
|
48
|
+
"application": application,
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
|
+
if namespace is not UNSET:
|
|
52
|
+
field_dict["namespace"] = namespace
|
|
53
|
+
|
|
54
|
+
return field_dict
|
|
55
|
+
|
|
56
|
+
@classmethod
|
|
57
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
58
|
+
d = dict(src_dict)
|
|
59
|
+
endpoint = d.pop("endpoint")
|
|
60
|
+
|
|
61
|
+
application = d.pop("application")
|
|
62
|
+
|
|
63
|
+
def _parse_namespace(data: object) -> None | str | Unset:
|
|
64
|
+
if data is None:
|
|
65
|
+
return data
|
|
66
|
+
if isinstance(data, Unset):
|
|
67
|
+
return data
|
|
68
|
+
return cast(None | str | Unset, data)
|
|
69
|
+
|
|
70
|
+
namespace = _parse_namespace(d.pop("namespace", UNSET))
|
|
71
|
+
|
|
72
|
+
service_details = cls(
|
|
73
|
+
endpoint=endpoint,
|
|
74
|
+
application=application,
|
|
75
|
+
namespace=namespace,
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
service_details.additional_properties = d
|
|
79
|
+
return service_details
|
|
80
|
+
|
|
81
|
+
@property
|
|
82
|
+
def additional_keys(self) -> list[str]:
|
|
83
|
+
return list(self.additional_properties.keys())
|
|
84
|
+
|
|
85
|
+
def __getitem__(self, key: str) -> Any:
|
|
86
|
+
return self.additional_properties[key]
|
|
87
|
+
|
|
88
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
89
|
+
self.additional_properties[key] = value
|
|
90
|
+
|
|
91
|
+
def __delitem__(self, key: str) -> None:
|
|
92
|
+
del self.additional_properties[key]
|
|
93
|
+
|
|
94
|
+
def __contains__(self, key: str) -> bool:
|
|
95
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import Any, TypeVar, cast
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
T = TypeVar("T", bound="SpatialExtent")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@_attrs_define
|
|
13
|
+
class SpatialExtent:
|
|
14
|
+
"""https://github.com/radiantearth/stac-spec/blob/v1.0.0/collection-spec/collection-spec.md#spatial-extent-object
|
|
15
|
+
|
|
16
|
+
Attributes:
|
|
17
|
+
bbox (list[list[float | int]]):
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
bbox: list[list[float | int]]
|
|
21
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
22
|
+
|
|
23
|
+
def to_dict(self) -> dict[str, Any]:
|
|
24
|
+
bbox = []
|
|
25
|
+
for bbox_item_data in self.bbox:
|
|
26
|
+
bbox_item: list[float | int]
|
|
27
|
+
if isinstance(bbox_item_data, list):
|
|
28
|
+
bbox_item = []
|
|
29
|
+
for bbox_item_type_0_item_data in bbox_item_data:
|
|
30
|
+
bbox_item_type_0_item: float | int
|
|
31
|
+
bbox_item_type_0_item = bbox_item_type_0_item_data
|
|
32
|
+
bbox_item.append(bbox_item_type_0_item)
|
|
33
|
+
|
|
34
|
+
bbox.append(bbox_item)
|
|
35
|
+
|
|
36
|
+
field_dict: dict[str, Any] = {}
|
|
37
|
+
field_dict.update(self.additional_properties)
|
|
38
|
+
field_dict.update(
|
|
39
|
+
{
|
|
40
|
+
"bbox": bbox,
|
|
41
|
+
}
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
return field_dict
|
|
45
|
+
|
|
46
|
+
@classmethod
|
|
47
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
48
|
+
d = dict(src_dict)
|
|
49
|
+
bbox = []
|
|
50
|
+
_bbox = d.pop("bbox")
|
|
51
|
+
for bbox_item_data in _bbox:
|
|
52
|
+
|
|
53
|
+
def _parse_bbox_item(data: object) -> list[float | int]:
|
|
54
|
+
if not isinstance(data, list):
|
|
55
|
+
raise TypeError()
|
|
56
|
+
bbox_item_type_0 = []
|
|
57
|
+
_bbox_item_type_0 = data
|
|
58
|
+
for bbox_item_type_0_item_data in _bbox_item_type_0:
|
|
59
|
+
|
|
60
|
+
def _parse_bbox_item_type_0_item(data: object) -> float | int:
|
|
61
|
+
return cast(float | int, data)
|
|
62
|
+
|
|
63
|
+
bbox_item_type_0_item = _parse_bbox_item_type_0_item(
|
|
64
|
+
bbox_item_type_0_item_data
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
bbox_item_type_0.append(bbox_item_type_0_item)
|
|
68
|
+
|
|
69
|
+
return bbox_item_type_0
|
|
70
|
+
|
|
71
|
+
bbox_item = _parse_bbox_item(bbox_item_data)
|
|
72
|
+
|
|
73
|
+
bbox.append(bbox_item)
|
|
74
|
+
|
|
75
|
+
spatial_extent = cls(
|
|
76
|
+
bbox=bbox,
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
spatial_extent.additional_properties = d
|
|
80
|
+
return spatial_extent
|
|
81
|
+
|
|
82
|
+
@property
|
|
83
|
+
def additional_keys(self) -> list[str]:
|
|
84
|
+
return list(self.additional_properties.keys())
|
|
85
|
+
|
|
86
|
+
def __getitem__(self, key: str) -> Any:
|
|
87
|
+
return self.additional_properties[key]
|
|
88
|
+
|
|
89
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
90
|
+
self.additional_properties[key] = value
|
|
91
|
+
|
|
92
|
+
def __delitem__(self, key: str) -> None:
|
|
93
|
+
del self.additional_properties[key]
|
|
94
|
+
|
|
95
|
+
def __contains__(self, key: str) -> bool:
|
|
96
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import TYPE_CHECKING, Any, TypeVar
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
from ..models.grid_type_enum import GridTypeEnum
|
|
10
|
+
|
|
11
|
+
if TYPE_CHECKING:
|
|
12
|
+
from ..models.polygon import Polygon
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
T = TypeVar("T", bound="TileRequest")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@_attrs_define
|
|
19
|
+
class TileRequest:
|
|
20
|
+
"""
|
|
21
|
+
Attributes:
|
|
22
|
+
aoi (Polygon): Polygon Model
|
|
23
|
+
grid (GridTypeEnum):
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
aoi: Polygon
|
|
27
|
+
grid: GridTypeEnum
|
|
28
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
29
|
+
|
|
30
|
+
def to_dict(self) -> dict[str, Any]:
|
|
31
|
+
aoi = self.aoi.to_dict()
|
|
32
|
+
|
|
33
|
+
grid = self.grid.value
|
|
34
|
+
|
|
35
|
+
field_dict: dict[str, Any] = {}
|
|
36
|
+
field_dict.update(self.additional_properties)
|
|
37
|
+
field_dict.update(
|
|
38
|
+
{
|
|
39
|
+
"aoi": aoi,
|
|
40
|
+
"grid": grid,
|
|
41
|
+
}
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
return field_dict
|
|
45
|
+
|
|
46
|
+
@classmethod
|
|
47
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
48
|
+
from ..models.polygon import Polygon
|
|
49
|
+
|
|
50
|
+
d = dict(src_dict)
|
|
51
|
+
aoi = Polygon.from_dict(d.pop("aoi"))
|
|
52
|
+
|
|
53
|
+
grid = GridTypeEnum(d.pop("grid"))
|
|
54
|
+
|
|
55
|
+
tile_request = cls(
|
|
56
|
+
aoi=aoi,
|
|
57
|
+
grid=grid,
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
tile_request.additional_properties = d
|
|
61
|
+
return tile_request
|
|
62
|
+
|
|
63
|
+
@property
|
|
64
|
+
def additional_keys(self) -> list[str]:
|
|
65
|
+
return list(self.additional_properties.keys())
|
|
66
|
+
|
|
67
|
+
def __getitem__(self, key: str) -> Any:
|
|
68
|
+
return self.additional_properties[key]
|
|
69
|
+
|
|
70
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
71
|
+
self.additional_properties[key] = value
|
|
72
|
+
|
|
73
|
+
def __delitem__(self, key: str) -> None:
|
|
74
|
+
del self.additional_properties[key]
|
|
75
|
+
|
|
76
|
+
def __contains__(self, key: str) -> bool:
|
|
77
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import datetime
|
|
4
|
+
from collections.abc import Mapping
|
|
5
|
+
from typing import Any, TypeVar, cast
|
|
6
|
+
|
|
7
|
+
from attrs import define as _attrs_define
|
|
8
|
+
from attrs import field as _attrs_field
|
|
9
|
+
from dateutil.parser import isoparse
|
|
10
|
+
|
|
11
|
+
T = TypeVar("T", bound="TimeInterval")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@_attrs_define
|
|
15
|
+
class TimeInterval:
|
|
16
|
+
"""https://github.com/radiantearth/stac-spec/blob/v1.0.0/collection-spec/collection-spec.md#temporal-extent-object
|
|
17
|
+
|
|
18
|
+
Attributes:
|
|
19
|
+
interval (list[list[datetime.datetime | None]]):
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
interval: list[list[datetime.datetime | None]]
|
|
23
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
24
|
+
|
|
25
|
+
def to_dict(self) -> dict[str, Any]:
|
|
26
|
+
interval = []
|
|
27
|
+
for interval_item_data in self.interval:
|
|
28
|
+
interval_item = []
|
|
29
|
+
for interval_item_item_data in interval_item_data:
|
|
30
|
+
interval_item_item: None | str
|
|
31
|
+
if isinstance(interval_item_item_data, datetime.datetime):
|
|
32
|
+
interval_item_item = interval_item_item_data.isoformat()
|
|
33
|
+
else:
|
|
34
|
+
interval_item_item = interval_item_item_data
|
|
35
|
+
interval_item.append(interval_item_item)
|
|
36
|
+
|
|
37
|
+
interval.append(interval_item)
|
|
38
|
+
|
|
39
|
+
field_dict: dict[str, Any] = {}
|
|
40
|
+
field_dict.update(self.additional_properties)
|
|
41
|
+
field_dict.update(
|
|
42
|
+
{
|
|
43
|
+
"interval": interval,
|
|
44
|
+
}
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
return field_dict
|
|
48
|
+
|
|
49
|
+
@classmethod
|
|
50
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
51
|
+
d = dict(src_dict)
|
|
52
|
+
interval = []
|
|
53
|
+
_interval = d.pop("interval")
|
|
54
|
+
for interval_item_data in _interval:
|
|
55
|
+
interval_item = []
|
|
56
|
+
_interval_item = interval_item_data
|
|
57
|
+
for interval_item_item_data in _interval_item:
|
|
58
|
+
|
|
59
|
+
def _parse_interval_item_item(data: object) -> datetime.datetime | None:
|
|
60
|
+
if data is None:
|
|
61
|
+
return data
|
|
62
|
+
try:
|
|
63
|
+
if not isinstance(data, str):
|
|
64
|
+
raise TypeError()
|
|
65
|
+
interval_item_item_type_0 = isoparse(data)
|
|
66
|
+
|
|
67
|
+
return interval_item_item_type_0
|
|
68
|
+
except (TypeError, ValueError, AttributeError, KeyError):
|
|
69
|
+
pass
|
|
70
|
+
return cast(datetime.datetime | None, data)
|
|
71
|
+
|
|
72
|
+
interval_item_item = _parse_interval_item_item(interval_item_item_data)
|
|
73
|
+
|
|
74
|
+
interval_item.append(interval_item_item)
|
|
75
|
+
|
|
76
|
+
interval.append(interval_item)
|
|
77
|
+
|
|
78
|
+
time_interval = cls(
|
|
79
|
+
interval=interval,
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
time_interval.additional_properties = d
|
|
83
|
+
return time_interval
|
|
84
|
+
|
|
85
|
+
@property
|
|
86
|
+
def additional_keys(self) -> list[str]:
|
|
87
|
+
return list(self.additional_properties.keys())
|
|
88
|
+
|
|
89
|
+
def __getitem__(self, key: str) -> Any:
|
|
90
|
+
return self.additional_properties[key]
|
|
91
|
+
|
|
92
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
93
|
+
self.additional_properties[key] = value
|
|
94
|
+
|
|
95
|
+
def __delitem__(self, key: str) -> None:
|
|
96
|
+
del self.additional_properties[key]
|
|
97
|
+
|
|
98
|
+
def __contains__(self, key: str) -> bool:
|
|
99
|
+
return key in self.additional_properties
|