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.
Files changed (71) hide show
  1. apex_dispatch_api_client/__about__.py +15 -0
  2. apex_dispatch_api_client/__init__.py +8 -0
  3. apex_dispatch_api_client/api/__init__.py +1 -0
  4. apex_dispatch_api_client/api/default/__init__.py +1 -0
  5. apex_dispatch_api_client/api/default/health_health_get.py +85 -0
  6. apex_dispatch_api_client/api/unit_jobs/__init__.py +1 -0
  7. apex_dispatch_api_client/api/unit_jobs/create_sync_job_sync_jobs_post.py +178 -0
  8. apex_dispatch_api_client/api/unit_jobs/create_unit_job_unit_jobs_post.py +180 -0
  9. apex_dispatch_api_client/api/unit_jobs/delete_job_unit_jobs_job_id_delete.py +170 -0
  10. apex_dispatch_api_client/api/unit_jobs/get_job_params_params_post.py +179 -0
  11. apex_dispatch_api_client/api/unit_jobs/get_job_results_unit_jobs_job_id_results_get.py +186 -0
  12. apex_dispatch_api_client/api/unit_jobs/get_job_unit_jobs_job_id_get.py +172 -0
  13. apex_dispatch_api_client/api/upscale_tasks/__init__.py +1 -0
  14. apex_dispatch_api_client/api/upscale_tasks/create_upscale_task_upscale_tasks_post.py +180 -0
  15. apex_dispatch_api_client/api/upscale_tasks/get_jobs_status_jobs_status_get.py +192 -0
  16. apex_dispatch_api_client/api/upscale_tasks/get_upscale_task_upscale_tasks_task_id_get.py +172 -0
  17. apex_dispatch_api_client/api/upscale_tasks/split_in_tiles_tiles_post.py +184 -0
  18. apex_dispatch_api_client/client.py +282 -0
  19. apex_dispatch_api_client/errors.py +16 -0
  20. apex_dispatch_api_client/models/__init__.py +99 -0
  21. apex_dispatch_api_client/models/asset.py +155 -0
  22. apex_dispatch_api_client/models/base_job_request.py +104 -0
  23. apex_dispatch_api_client/models/base_job_request_parameters.py +47 -0
  24. apex_dispatch_api_client/models/collection.py +332 -0
  25. apex_dispatch_api_client/models/collection_assets_type_0.py +60 -0
  26. apex_dispatch_api_client/models/collection_summaries_type_0.py +109 -0
  27. apex_dispatch_api_client/models/collection_summaries_type_0_additional_property_type_2.py +47 -0
  28. apex_dispatch_api_client/models/error_response.py +138 -0
  29. apex_dispatch_api_client/models/error_response_details_type_0.py +47 -0
  30. apex_dispatch_api_client/models/extent.py +80 -0
  31. apex_dispatch_api_client/models/geometry_collection.py +247 -0
  32. apex_dispatch_api_client/models/grid_type_enum.py +9 -0
  33. apex_dispatch_api_client/models/http_validation_error.py +79 -0
  34. apex_dispatch_api_client/models/jobs_filter.py +9 -0
  35. apex_dispatch_api_client/models/jobs_status_response.py +97 -0
  36. apex_dispatch_api_client/models/line_string.py +163 -0
  37. apex_dispatch_api_client/models/link.py +123 -0
  38. apex_dispatch_api_client/models/mime_types.py +37 -0
  39. apex_dispatch_api_client/models/multi_line_string.py +180 -0
  40. apex_dispatch_api_client/models/multi_point.py +163 -0
  41. apex_dispatch_api_client/models/multi_polygon.py +191 -0
  42. apex_dispatch_api_client/models/output_format_enum.py +11 -0
  43. apex_dispatch_api_client/models/param_request.py +77 -0
  44. apex_dispatch_api_client/models/param_type_enum.py +16 -0
  45. apex_dispatch_api_client/models/parameter.py +108 -0
  46. apex_dispatch_api_client/models/parameter_dimension.py +69 -0
  47. apex_dispatch_api_client/models/point.py +151 -0
  48. apex_dispatch_api_client/models/polygon.py +180 -0
  49. apex_dispatch_api_client/models/process_type_enum.py +9 -0
  50. apex_dispatch_api_client/models/processing_job.py +130 -0
  51. apex_dispatch_api_client/models/processing_job_parameters.py +47 -0
  52. apex_dispatch_api_client/models/processing_job_summary.py +116 -0
  53. apex_dispatch_api_client/models/processing_job_summary_parameters.py +47 -0
  54. apex_dispatch_api_client/models/processing_status_enum.py +14 -0
  55. apex_dispatch_api_client/models/provider.py +135 -0
  56. apex_dispatch_api_client/models/range_.py +79 -0
  57. apex_dispatch_api_client/models/service_details.py +95 -0
  58. apex_dispatch_api_client/models/spatial_extent.py +96 -0
  59. apex_dispatch_api_client/models/tile_request.py +77 -0
  60. apex_dispatch_api_client/models/time_interval.py +99 -0
  61. apex_dispatch_api_client/models/upscaling_task.py +138 -0
  62. apex_dispatch_api_client/models/upscaling_task_request.py +118 -0
  63. apex_dispatch_api_client/models/upscaling_task_request_parameters.py +47 -0
  64. apex_dispatch_api_client/models/upscaling_task_summary.py +88 -0
  65. apex_dispatch_api_client/models/validation_error.py +123 -0
  66. apex_dispatch_api_client/models/validation_error_context.py +47 -0
  67. apex_dispatch_api_client/types.py +54 -0
  68. apex_dispatch_api_client-0.7.2.dist-info/METADATA +167 -0
  69. apex_dispatch_api_client-0.7.2.dist-info/RECORD +71 -0
  70. apex_dispatch_api_client-0.7.2.dist-info/WHEEL +4 -0
  71. apex_dispatch_api_client-0.7.2.dist-info/licenses/LICENSE +202 -0
@@ -0,0 +1,163 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import (
5
+ Any,
6
+ Literal,
7
+ TypeVar,
8
+ cast,
9
+ )
10
+
11
+ from attrs import define as _attrs_define
12
+ from attrs import field as _attrs_field
13
+
14
+ from ..types import UNSET, Unset
15
+
16
+ T = TypeVar("T", bound="MultiPoint")
17
+
18
+
19
+ @_attrs_define
20
+ class MultiPoint:
21
+ """MultiPoint Model
22
+
23
+ Attributes:
24
+ type_ (Literal['MultiPoint']):
25
+ coordinates (list[list[float]]):
26
+ bbox (list[float] | None | Unset):
27
+ """
28
+
29
+ type_: Literal["MultiPoint"]
30
+ coordinates: list[list[float]]
31
+ bbox: list[float] | None | Unset = UNSET
32
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
33
+
34
+ def to_dict(self) -> dict[str, Any]:
35
+ type_ = self.type_
36
+
37
+ coordinates = []
38
+ for coordinates_item_data in self.coordinates:
39
+ coordinates_item: list[float]
40
+ if isinstance(coordinates_item_data, list):
41
+ coordinates_item = []
42
+ for componentsschemas_position_2d_item_data in coordinates_item_data:
43
+ componentsschemas_position_2d_item: float
44
+ componentsschemas_position_2d_item = (
45
+ componentsschemas_position_2d_item_data
46
+ )
47
+ coordinates_item.append(componentsschemas_position_2d_item)
48
+
49
+ coordinates.append(coordinates_item)
50
+
51
+ bbox: list[float] | None | Unset
52
+ if isinstance(self.bbox, Unset):
53
+ bbox = UNSET
54
+ elif isinstance(self.bbox, list):
55
+ bbox = []
56
+ for bbox_type_0_item_data in self.bbox:
57
+ bbox_type_0_item: float
58
+ bbox_type_0_item = bbox_type_0_item_data
59
+ bbox.append(bbox_type_0_item)
60
+
61
+ else:
62
+ bbox = self.bbox
63
+
64
+ field_dict: dict[str, Any] = {}
65
+ field_dict.update(self.additional_properties)
66
+ field_dict.update(
67
+ {
68
+ "type": type_,
69
+ "coordinates": coordinates,
70
+ }
71
+ )
72
+ if bbox is not UNSET:
73
+ field_dict["bbox"] = bbox
74
+
75
+ return field_dict
76
+
77
+ @classmethod
78
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
79
+ d = dict(src_dict)
80
+ type_ = cast(Literal["MultiPoint"], d.pop("type"))
81
+ if type_ != "MultiPoint":
82
+ raise ValueError(f"type must match const 'MultiPoint', got '{type_}'")
83
+
84
+ coordinates = []
85
+ _coordinates = d.pop("coordinates")
86
+ for coordinates_item_data in _coordinates:
87
+
88
+ def _parse_coordinates_item(data: object) -> list[float]:
89
+ if not isinstance(data, list):
90
+ raise TypeError()
91
+ coordinates_item_type_0 = []
92
+ _coordinates_item_type_0 = data
93
+ for componentsschemas_position_2d_item_data in _coordinates_item_type_0:
94
+
95
+ def _parse_componentsschemas_position_2d_item(
96
+ data: object,
97
+ ) -> float:
98
+ return cast(float, data)
99
+
100
+ componentsschemas_position_2d_item = (
101
+ _parse_componentsschemas_position_2d_item(
102
+ componentsschemas_position_2d_item_data
103
+ )
104
+ )
105
+
106
+ coordinates_item_type_0.append(componentsschemas_position_2d_item)
107
+
108
+ return coordinates_item_type_0
109
+
110
+ coordinates_item = _parse_coordinates_item(coordinates_item_data)
111
+
112
+ coordinates.append(coordinates_item)
113
+
114
+ def _parse_bbox(data: object) -> list[float] | None | Unset:
115
+ if data is None:
116
+ return data
117
+ if isinstance(data, Unset):
118
+ return data
119
+ try:
120
+ if not isinstance(data, list):
121
+ raise TypeError()
122
+ bbox_type_0 = []
123
+ _bbox_type_0 = data
124
+ for bbox_type_0_item_data in _bbox_type_0:
125
+
126
+ def _parse_bbox_type_0_item(data: object) -> float:
127
+ return cast(float, data)
128
+
129
+ bbox_type_0_item = _parse_bbox_type_0_item(bbox_type_0_item_data)
130
+
131
+ bbox_type_0.append(bbox_type_0_item)
132
+
133
+ return bbox_type_0
134
+ except (TypeError, ValueError, AttributeError, KeyError):
135
+ pass
136
+ return cast(list[float] | None | Unset, data)
137
+
138
+ bbox = _parse_bbox(d.pop("bbox", UNSET))
139
+
140
+ multi_point = cls(
141
+ type_=type_,
142
+ coordinates=coordinates,
143
+ bbox=bbox,
144
+ )
145
+
146
+ multi_point.additional_properties = d
147
+ return multi_point
148
+
149
+ @property
150
+ def additional_keys(self) -> list[str]:
151
+ return list(self.additional_properties.keys())
152
+
153
+ def __getitem__(self, key: str) -> Any:
154
+ return self.additional_properties[key]
155
+
156
+ def __setitem__(self, key: str, value: Any) -> None:
157
+ self.additional_properties[key] = value
158
+
159
+ def __delitem__(self, key: str) -> None:
160
+ del self.additional_properties[key]
161
+
162
+ def __contains__(self, key: str) -> bool:
163
+ return key in self.additional_properties
@@ -0,0 +1,191 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import (
5
+ Any,
6
+ Literal,
7
+ TypeVar,
8
+ cast,
9
+ )
10
+
11
+ from attrs import define as _attrs_define
12
+ from attrs import field as _attrs_field
13
+
14
+ from ..types import UNSET, Unset
15
+
16
+ T = TypeVar("T", bound="MultiPolygon")
17
+
18
+
19
+ @_attrs_define
20
+ class MultiPolygon:
21
+ """MultiPolygon Model
22
+
23
+ Attributes:
24
+ type_ (Literal['MultiPolygon']):
25
+ coordinates (list[list[list[list[float]]]]):
26
+ bbox (list[float] | None | Unset):
27
+ """
28
+
29
+ type_: Literal["MultiPolygon"]
30
+ coordinates: list[list[list[list[float]]]]
31
+ bbox: list[float] | None | Unset = UNSET
32
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
33
+
34
+ def to_dict(self) -> dict[str, Any]:
35
+ type_ = self.type_
36
+
37
+ coordinates = []
38
+ for coordinates_item_data in self.coordinates:
39
+ coordinates_item = []
40
+ for coordinates_item_item_data in coordinates_item_data:
41
+ coordinates_item_item = []
42
+ for coordinates_item_item_item_data in coordinates_item_item_data:
43
+ coordinates_item_item_item: list[float]
44
+ if isinstance(coordinates_item_item_item_data, list):
45
+ coordinates_item_item_item = []
46
+ for (
47
+ componentsschemas_position_2d_item_data
48
+ ) in coordinates_item_item_item_data:
49
+ componentsschemas_position_2d_item: float
50
+ componentsschemas_position_2d_item = (
51
+ componentsschemas_position_2d_item_data
52
+ )
53
+ coordinates_item_item_item.append(
54
+ componentsschemas_position_2d_item
55
+ )
56
+
57
+ coordinates_item_item.append(coordinates_item_item_item)
58
+
59
+ coordinates_item.append(coordinates_item_item)
60
+
61
+ coordinates.append(coordinates_item)
62
+
63
+ bbox: list[float] | None | Unset
64
+ if isinstance(self.bbox, Unset):
65
+ bbox = UNSET
66
+ elif isinstance(self.bbox, list):
67
+ bbox = []
68
+ for bbox_type_0_item_data in self.bbox:
69
+ bbox_type_0_item: float
70
+ bbox_type_0_item = bbox_type_0_item_data
71
+ bbox.append(bbox_type_0_item)
72
+
73
+ else:
74
+ bbox = self.bbox
75
+
76
+ field_dict: dict[str, Any] = {}
77
+ field_dict.update(self.additional_properties)
78
+ field_dict.update(
79
+ {
80
+ "type": type_,
81
+ "coordinates": coordinates,
82
+ }
83
+ )
84
+ if bbox is not UNSET:
85
+ field_dict["bbox"] = bbox
86
+
87
+ return field_dict
88
+
89
+ @classmethod
90
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
91
+ d = dict(src_dict)
92
+ type_ = cast(Literal["MultiPolygon"], d.pop("type"))
93
+ if type_ != "MultiPolygon":
94
+ raise ValueError(f"type must match const 'MultiPolygon', got '{type_}'")
95
+
96
+ coordinates = []
97
+ _coordinates = d.pop("coordinates")
98
+ for coordinates_item_data in _coordinates:
99
+ coordinates_item = []
100
+ _coordinates_item = coordinates_item_data
101
+ for coordinates_item_item_data in _coordinates_item:
102
+ coordinates_item_item = []
103
+ _coordinates_item_item = coordinates_item_item_data
104
+ for coordinates_item_item_item_data in _coordinates_item_item:
105
+
106
+ def _parse_coordinates_item_item_item(data: object) -> list[float]:
107
+ if not isinstance(data, list):
108
+ raise TypeError()
109
+ coordinates_item_item_item_type_0 = []
110
+ _coordinates_item_item_item_type_0 = data
111
+ for (
112
+ componentsschemas_position_2d_item_data
113
+ ) in _coordinates_item_item_item_type_0:
114
+
115
+ def _parse_componentsschemas_position_2d_item(
116
+ data: object,
117
+ ) -> float:
118
+ return cast(float, data)
119
+
120
+ componentsschemas_position_2d_item = (
121
+ _parse_componentsschemas_position_2d_item(
122
+ componentsschemas_position_2d_item_data
123
+ )
124
+ )
125
+
126
+ coordinates_item_item_item_type_0.append(
127
+ componentsschemas_position_2d_item
128
+ )
129
+
130
+ return coordinates_item_item_item_type_0
131
+
132
+ coordinates_item_item_item = _parse_coordinates_item_item_item(
133
+ coordinates_item_item_item_data
134
+ )
135
+
136
+ coordinates_item_item.append(coordinates_item_item_item)
137
+
138
+ coordinates_item.append(coordinates_item_item)
139
+
140
+ coordinates.append(coordinates_item)
141
+
142
+ def _parse_bbox(data: object) -> list[float] | None | Unset:
143
+ if data is None:
144
+ return data
145
+ if isinstance(data, Unset):
146
+ return data
147
+ try:
148
+ if not isinstance(data, list):
149
+ raise TypeError()
150
+ bbox_type_0 = []
151
+ _bbox_type_0 = data
152
+ for bbox_type_0_item_data in _bbox_type_0:
153
+
154
+ def _parse_bbox_type_0_item(data: object) -> float:
155
+ return cast(float, data)
156
+
157
+ bbox_type_0_item = _parse_bbox_type_0_item(bbox_type_0_item_data)
158
+
159
+ bbox_type_0.append(bbox_type_0_item)
160
+
161
+ return bbox_type_0
162
+ except (TypeError, ValueError, AttributeError, KeyError):
163
+ pass
164
+ return cast(list[float] | None | Unset, data)
165
+
166
+ bbox = _parse_bbox(d.pop("bbox", UNSET))
167
+
168
+ multi_polygon = cls(
169
+ type_=type_,
170
+ coordinates=coordinates,
171
+ bbox=bbox,
172
+ )
173
+
174
+ multi_polygon.additional_properties = d
175
+ return multi_polygon
176
+
177
+ @property
178
+ def additional_keys(self) -> list[str]:
179
+ return list(self.additional_properties.keys())
180
+
181
+ def __getitem__(self, key: str) -> Any:
182
+ return self.additional_properties[key]
183
+
184
+ def __setitem__(self, key: str, value: Any) -> None:
185
+ self.additional_properties[key] = value
186
+
187
+ def __delitem__(self, key: str) -> None:
188
+ del self.additional_properties[key]
189
+
190
+ def __contains__(self, key: str) -> bool:
191
+ return key in self.additional_properties
@@ -0,0 +1,11 @@
1
+ from enum import Enum
2
+
3
+
4
+ class OutputFormatEnum(str, Enum):
5
+ GEOJSON = "geojson"
6
+ GTIFF = "gtiff"
7
+ JSON = "json"
8
+ NETCDF = "netcdf"
9
+
10
+ def __str__(self) -> str:
11
+ return str(self.value)
@@ -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.process_type_enum import ProcessTypeEnum
10
+
11
+ if TYPE_CHECKING:
12
+ from ..models.service_details import ServiceDetails
13
+
14
+
15
+ T = TypeVar("T", bound="ParamRequest")
16
+
17
+
18
+ @_attrs_define
19
+ class ParamRequest:
20
+ """
21
+ Attributes:
22
+ label (ProcessTypeEnum):
23
+ service (ServiceDetails):
24
+ """
25
+
26
+ label: ProcessTypeEnum
27
+ service: ServiceDetails
28
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
29
+
30
+ def to_dict(self) -> dict[str, Any]:
31
+ label = self.label.value
32
+
33
+ service = self.service.to_dict()
34
+
35
+ field_dict: dict[str, Any] = {}
36
+ field_dict.update(self.additional_properties)
37
+ field_dict.update(
38
+ {
39
+ "label": label,
40
+ "service": service,
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.service_details import ServiceDetails
49
+
50
+ d = dict(src_dict)
51
+ label = ProcessTypeEnum(d.pop("label"))
52
+
53
+ service = ServiceDetails.from_dict(d.pop("service"))
54
+
55
+ param_request = cls(
56
+ label=label,
57
+ service=service,
58
+ )
59
+
60
+ param_request.additional_properties = d
61
+ return param_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,16 @@
1
+ from enum import Enum
2
+
3
+
4
+ class ParamTypeEnum(str, Enum):
5
+ ARRAY_STRING = "array-string"
6
+ BOOLEAN = "boolean"
7
+ BOUNDING_BOX = "bounding-box"
8
+ DATETIME = "datetime"
9
+ DATE_INTERVAL = "date-interval"
10
+ DOUBLE = "double"
11
+ INTEGER = "integer"
12
+ POLYGON = "polygon"
13
+ STRING = "string"
14
+
15
+ def __str__(self) -> str:
16
+ return str(self.value)
@@ -0,0 +1,108 @@
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 ..models.param_type_enum import ParamTypeEnum
10
+ from ..types import UNSET, Unset
11
+
12
+ T = TypeVar("T", bound="Parameter")
13
+
14
+
15
+ @_attrs_define
16
+ class Parameter:
17
+ """
18
+ Attributes:
19
+ name (str): Name of the parameter
20
+ type_ (ParamTypeEnum):
21
+ optional (bool): Indicates whether the parameter is optional
22
+ description (str): Description of the parameter
23
+ default (Any | Unset): Default value of the parameter, if any
24
+ options (list[Any] | Unset): List of valid options for the parameter, if applicable
25
+ """
26
+
27
+ name: str
28
+ type_: ParamTypeEnum
29
+ optional: bool
30
+ description: str
31
+ default: Any | Unset = UNSET
32
+ options: list[Any] | Unset = UNSET
33
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
34
+
35
+ def to_dict(self) -> dict[str, Any]:
36
+ name = self.name
37
+
38
+ type_ = self.type_.value
39
+
40
+ optional = self.optional
41
+
42
+ description = self.description
43
+
44
+ default = self.default
45
+
46
+ options: list[Any] | Unset = UNSET
47
+ if not isinstance(self.options, Unset):
48
+ options = self.options
49
+
50
+ field_dict: dict[str, Any] = {}
51
+ field_dict.update(self.additional_properties)
52
+ field_dict.update(
53
+ {
54
+ "name": name,
55
+ "type": type_,
56
+ "optional": optional,
57
+ "description": description,
58
+ }
59
+ )
60
+ if default is not UNSET:
61
+ field_dict["default"] = default
62
+ if options is not UNSET:
63
+ field_dict["options"] = options
64
+
65
+ return field_dict
66
+
67
+ @classmethod
68
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
69
+ d = dict(src_dict)
70
+ name = d.pop("name")
71
+
72
+ type_ = ParamTypeEnum(d.pop("type"))
73
+
74
+ optional = d.pop("optional")
75
+
76
+ description = d.pop("description")
77
+
78
+ default = d.pop("default", UNSET)
79
+
80
+ options = cast(list[Any], d.pop("options", UNSET))
81
+
82
+ parameter = cls(
83
+ name=name,
84
+ type_=type_,
85
+ optional=optional,
86
+ description=description,
87
+ default=default,
88
+ options=options,
89
+ )
90
+
91
+ parameter.additional_properties = d
92
+ return parameter
93
+
94
+ @property
95
+ def additional_keys(self) -> list[str]:
96
+ return list(self.additional_properties.keys())
97
+
98
+ def __getitem__(self, key: str) -> Any:
99
+ return self.additional_properties[key]
100
+
101
+ def __setitem__(self, key: str, value: Any) -> None:
102
+ self.additional_properties[key] = value
103
+
104
+ def __delitem__(self, key: str) -> None:
105
+ del self.additional_properties[key]
106
+
107
+ def __contains__(self, key: str) -> bool:
108
+ return key in self.additional_properties
@@ -0,0 +1,69 @@
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="ParameterDimension")
10
+
11
+
12
+ @_attrs_define
13
+ class ParameterDimension:
14
+ """
15
+ Attributes:
16
+ name (str): Name of the parameter for which to loop the multiple values
17
+ values (list[Any]): List of values for which to create a processing job
18
+ """
19
+
20
+ name: str
21
+ values: list[Any]
22
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
23
+
24
+ def to_dict(self) -> dict[str, Any]:
25
+ name = self.name
26
+
27
+ values = self.values
28
+
29
+ field_dict: dict[str, Any] = {}
30
+ field_dict.update(self.additional_properties)
31
+ field_dict.update(
32
+ {
33
+ "name": name,
34
+ "values": values,
35
+ }
36
+ )
37
+
38
+ return field_dict
39
+
40
+ @classmethod
41
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
42
+ d = dict(src_dict)
43
+ name = d.pop("name")
44
+
45
+ values = cast(list[Any], d.pop("values"))
46
+
47
+ parameter_dimension = cls(
48
+ name=name,
49
+ values=values,
50
+ )
51
+
52
+ parameter_dimension.additional_properties = d
53
+ return parameter_dimension
54
+
55
+ @property
56
+ def additional_keys(self) -> list[str]:
57
+ return list(self.additional_properties.keys())
58
+
59
+ def __getitem__(self, key: str) -> Any:
60
+ return self.additional_properties[key]
61
+
62
+ def __setitem__(self, key: str, value: Any) -> None:
63
+ self.additional_properties[key] = value
64
+
65
+ def __delitem__(self, key: str) -> None:
66
+ del self.additional_properties[key]
67
+
68
+ def __contains__(self, key: str) -> bool:
69
+ return key in self.additional_properties