windmill-api 1.497.1__py3-none-any.whl → 1.498.0__py3-none-any.whl

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

Potentially problematic release.


This version of windmill-api might be problematic. Click here for more details.

Files changed (51) hide show
  1. windmill_api/api/openapi/__init__.py +0 -0
  2. windmill_api/api/openapi/download_openapi_spec.py +166 -0
  3. windmill_api/api/openapi/generate_openapi_spec.py +105 -0
  4. windmill_api/models/create_http_trigger_json_body.py +16 -0
  5. windmill_api/models/create_http_triggers_json_body_item.py +16 -0
  6. windmill_api/models/download_openapi_spec_json_body.py +150 -0
  7. windmill_api/models/download_openapi_spec_json_body_http_route_filters_item.py +72 -0
  8. windmill_api/models/download_openapi_spec_json_body_info.py +122 -0
  9. windmill_api/models/download_openapi_spec_json_body_info_contact.py +74 -0
  10. windmill_api/models/download_openapi_spec_json_body_info_license.py +76 -0
  11. windmill_api/models/download_openapi_spec_json_body_openapi_spec_format.py +9 -0
  12. windmill_api/models/download_openapi_spec_json_body_webhook_filters_item.py +89 -0
  13. windmill_api/models/download_openapi_spec_json_body_webhook_filters_item_runnable_kind.py +9 -0
  14. windmill_api/models/download_openapi_spec_json_body_webhook_filters_item_user_or_folder_regex.py +10 -0
  15. windmill_api/models/edit_http_trigger.py +16 -0
  16. windmill_api/models/generate_openapi_spec.py +140 -0
  17. windmill_api/models/generate_openapi_spec_http_route_filters_item.py +72 -0
  18. windmill_api/models/generate_openapi_spec_info.py +122 -0
  19. windmill_api/models/generate_openapi_spec_info_contact.py +74 -0
  20. windmill_api/models/generate_openapi_spec_info_license.py +76 -0
  21. windmill_api/models/generate_openapi_spec_json_body.py +150 -0
  22. windmill_api/models/generate_openapi_spec_json_body_http_route_filters_item.py +72 -0
  23. windmill_api/models/generate_openapi_spec_json_body_info.py +122 -0
  24. windmill_api/models/generate_openapi_spec_json_body_info_contact.py +74 -0
  25. windmill_api/models/generate_openapi_spec_json_body_info_license.py +76 -0
  26. windmill_api/models/generate_openapi_spec_json_body_openapi_spec_format.py +9 -0
  27. windmill_api/models/generate_openapi_spec_json_body_webhook_filters_item.py +89 -0
  28. windmill_api/models/generate_openapi_spec_json_body_webhook_filters_item_runnable_kind.py +9 -0
  29. windmill_api/models/generate_openapi_spec_json_body_webhook_filters_item_user_or_folder_regex.py +10 -0
  30. windmill_api/models/generate_openapi_spec_openapi_spec_format.py +9 -0
  31. windmill_api/models/generate_openapi_spec_webhook_filters_item.py +87 -0
  32. windmill_api/models/generate_openapi_spec_webhook_filters_item_runnable_kind.py +9 -0
  33. windmill_api/models/generate_openapi_spec_webhook_filters_item_user_or_folder_regex.py +10 -0
  34. windmill_api/models/get_http_trigger_response_200.py +16 -0
  35. windmill_api/models/http_trigger.py +16 -0
  36. windmill_api/models/list_http_triggers_response_200_item.py +16 -0
  37. windmill_api/models/new_http_trigger.py +16 -0
  38. windmill_api/models/openapi_http_route_filters.py +72 -0
  39. windmill_api/models/openapi_spec_format.py +9 -0
  40. windmill_api/models/openapi_v3_info.py +122 -0
  41. windmill_api/models/openapi_v3_info_contact.py +74 -0
  42. windmill_api/models/openapi_v3_info_license.py +76 -0
  43. windmill_api/models/runnable_kind.py +9 -0
  44. windmill_api/models/update_http_trigger_json_body.py +16 -0
  45. windmill_api/models/webhook_filters.py +83 -0
  46. windmill_api/models/webhook_filters_runnable_kind.py +9 -0
  47. windmill_api/models/webhook_filters_user_or_folder_regex.py +10 -0
  48. {windmill_api-1.497.1.dist-info → windmill_api-1.498.0.dist-info}/METADATA +1 -1
  49. {windmill_api-1.497.1.dist-info → windmill_api-1.498.0.dist-info}/RECORD +51 -12
  50. {windmill_api-1.497.1.dist-info → windmill_api-1.498.0.dist-info}/LICENSE +0 -0
  51. {windmill_api-1.497.1.dist-info → windmill_api-1.498.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,122 @@
1
+ from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ if TYPE_CHECKING:
9
+ from ..models.download_openapi_spec_json_body_info_contact import DownloadOpenapiSpecJsonBodyInfoContact
10
+ from ..models.download_openapi_spec_json_body_info_license import DownloadOpenapiSpecJsonBodyInfoLicense
11
+
12
+
13
+ T = TypeVar("T", bound="DownloadOpenapiSpecJsonBodyInfo")
14
+
15
+
16
+ @_attrs_define
17
+ class DownloadOpenapiSpecJsonBodyInfo:
18
+ """
19
+ Attributes:
20
+ title (str):
21
+ version (str):
22
+ description (Union[Unset, str]):
23
+ terms_of_service (Union[Unset, str]):
24
+ contact (Union[Unset, DownloadOpenapiSpecJsonBodyInfoContact]):
25
+ license_ (Union[Unset, DownloadOpenapiSpecJsonBodyInfoLicense]):
26
+ """
27
+
28
+ title: str
29
+ version: str
30
+ description: Union[Unset, str] = UNSET
31
+ terms_of_service: Union[Unset, str] = UNSET
32
+ contact: Union[Unset, "DownloadOpenapiSpecJsonBodyInfoContact"] = UNSET
33
+ license_: Union[Unset, "DownloadOpenapiSpecJsonBodyInfoLicense"] = UNSET
34
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
35
+
36
+ def to_dict(self) -> Dict[str, Any]:
37
+ title = self.title
38
+ version = self.version
39
+ description = self.description
40
+ terms_of_service = self.terms_of_service
41
+ contact: Union[Unset, Dict[str, Any]] = UNSET
42
+ if not isinstance(self.contact, Unset):
43
+ contact = self.contact.to_dict()
44
+
45
+ license_: Union[Unset, Dict[str, Any]] = UNSET
46
+ if not isinstance(self.license_, Unset):
47
+ license_ = self.license_.to_dict()
48
+
49
+ field_dict: Dict[str, Any] = {}
50
+ field_dict.update(self.additional_properties)
51
+ field_dict.update(
52
+ {
53
+ "title": title,
54
+ "version": version,
55
+ }
56
+ )
57
+ if description is not UNSET:
58
+ field_dict["description"] = description
59
+ if terms_of_service is not UNSET:
60
+ field_dict["terms_of_service"] = terms_of_service
61
+ if contact is not UNSET:
62
+ field_dict["contact"] = contact
63
+ if license_ is not UNSET:
64
+ field_dict["license"] = license_
65
+
66
+ return field_dict
67
+
68
+ @classmethod
69
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
70
+ from ..models.download_openapi_spec_json_body_info_contact import DownloadOpenapiSpecJsonBodyInfoContact
71
+ from ..models.download_openapi_spec_json_body_info_license import DownloadOpenapiSpecJsonBodyInfoLicense
72
+
73
+ d = src_dict.copy()
74
+ title = d.pop("title")
75
+
76
+ version = d.pop("version")
77
+
78
+ description = d.pop("description", UNSET)
79
+
80
+ terms_of_service = d.pop("terms_of_service", UNSET)
81
+
82
+ _contact = d.pop("contact", UNSET)
83
+ contact: Union[Unset, DownloadOpenapiSpecJsonBodyInfoContact]
84
+ if isinstance(_contact, Unset):
85
+ contact = UNSET
86
+ else:
87
+ contact = DownloadOpenapiSpecJsonBodyInfoContact.from_dict(_contact)
88
+
89
+ _license_ = d.pop("license", UNSET)
90
+ license_: Union[Unset, DownloadOpenapiSpecJsonBodyInfoLicense]
91
+ if isinstance(_license_, Unset):
92
+ license_ = UNSET
93
+ else:
94
+ license_ = DownloadOpenapiSpecJsonBodyInfoLicense.from_dict(_license_)
95
+
96
+ download_openapi_spec_json_body_info = cls(
97
+ title=title,
98
+ version=version,
99
+ description=description,
100
+ terms_of_service=terms_of_service,
101
+ contact=contact,
102
+ license_=license_,
103
+ )
104
+
105
+ download_openapi_spec_json_body_info.additional_properties = d
106
+ return download_openapi_spec_json_body_info
107
+
108
+ @property
109
+ def additional_keys(self) -> List[str]:
110
+ return list(self.additional_properties.keys())
111
+
112
+ def __getitem__(self, key: str) -> Any:
113
+ return self.additional_properties[key]
114
+
115
+ def __setitem__(self, key: str, value: Any) -> None:
116
+ self.additional_properties[key] = value
117
+
118
+ def __delitem__(self, key: str) -> None:
119
+ del self.additional_properties[key]
120
+
121
+ def __contains__(self, key: str) -> bool:
122
+ return key in self.additional_properties
@@ -0,0 +1,74 @@
1
+ from typing import Any, Dict, List, Type, TypeVar, Union
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ T = TypeVar("T", bound="DownloadOpenapiSpecJsonBodyInfoContact")
9
+
10
+
11
+ @_attrs_define
12
+ class DownloadOpenapiSpecJsonBodyInfoContact:
13
+ """
14
+ Attributes:
15
+ name (Union[Unset, str]):
16
+ url (Union[Unset, str]):
17
+ email (Union[Unset, str]):
18
+ """
19
+
20
+ name: Union[Unset, str] = UNSET
21
+ url: Union[Unset, str] = UNSET
22
+ email: Union[Unset, str] = UNSET
23
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> Dict[str, Any]:
26
+ name = self.name
27
+ url = self.url
28
+ email = self.email
29
+
30
+ field_dict: Dict[str, Any] = {}
31
+ field_dict.update(self.additional_properties)
32
+ field_dict.update({})
33
+ if name is not UNSET:
34
+ field_dict["name"] = name
35
+ if url is not UNSET:
36
+ field_dict["url"] = url
37
+ if email is not UNSET:
38
+ field_dict["email"] = email
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
44
+ d = src_dict.copy()
45
+ name = d.pop("name", UNSET)
46
+
47
+ url = d.pop("url", UNSET)
48
+
49
+ email = d.pop("email", UNSET)
50
+
51
+ download_openapi_spec_json_body_info_contact = cls(
52
+ name=name,
53
+ url=url,
54
+ email=email,
55
+ )
56
+
57
+ download_openapi_spec_json_body_info_contact.additional_properties = d
58
+ return download_openapi_spec_json_body_info_contact
59
+
60
+ @property
61
+ def additional_keys(self) -> List[str]:
62
+ return list(self.additional_properties.keys())
63
+
64
+ def __getitem__(self, key: str) -> Any:
65
+ return self.additional_properties[key]
66
+
67
+ def __setitem__(self, key: str, value: Any) -> None:
68
+ self.additional_properties[key] = value
69
+
70
+ def __delitem__(self, key: str) -> None:
71
+ del self.additional_properties[key]
72
+
73
+ def __contains__(self, key: str) -> bool:
74
+ return key in self.additional_properties
@@ -0,0 +1,76 @@
1
+ from typing import Any, Dict, List, Type, TypeVar, Union
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ T = TypeVar("T", bound="DownloadOpenapiSpecJsonBodyInfoLicense")
9
+
10
+
11
+ @_attrs_define
12
+ class DownloadOpenapiSpecJsonBodyInfoLicense:
13
+ """
14
+ Attributes:
15
+ name (str):
16
+ identifier (Union[Unset, str]):
17
+ url (Union[Unset, str]):
18
+ """
19
+
20
+ name: str
21
+ identifier: Union[Unset, str] = UNSET
22
+ url: Union[Unset, str] = UNSET
23
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> Dict[str, Any]:
26
+ name = self.name
27
+ identifier = self.identifier
28
+ url = self.url
29
+
30
+ field_dict: Dict[str, Any] = {}
31
+ field_dict.update(self.additional_properties)
32
+ field_dict.update(
33
+ {
34
+ "name": name,
35
+ }
36
+ )
37
+ if identifier is not UNSET:
38
+ field_dict["identifier"] = identifier
39
+ if url is not UNSET:
40
+ field_dict["url"] = url
41
+
42
+ return field_dict
43
+
44
+ @classmethod
45
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
46
+ d = src_dict.copy()
47
+ name = d.pop("name")
48
+
49
+ identifier = d.pop("identifier", UNSET)
50
+
51
+ url = d.pop("url", UNSET)
52
+
53
+ download_openapi_spec_json_body_info_license = cls(
54
+ name=name,
55
+ identifier=identifier,
56
+ url=url,
57
+ )
58
+
59
+ download_openapi_spec_json_body_info_license.additional_properties = d
60
+ return download_openapi_spec_json_body_info_license
61
+
62
+ @property
63
+ def additional_keys(self) -> List[str]:
64
+ return list(self.additional_properties.keys())
65
+
66
+ def __getitem__(self, key: str) -> Any:
67
+ return self.additional_properties[key]
68
+
69
+ def __setitem__(self, key: str, value: Any) -> None:
70
+ self.additional_properties[key] = value
71
+
72
+ def __delitem__(self, key: str) -> None:
73
+ del self.additional_properties[key]
74
+
75
+ def __contains__(self, key: str) -> bool:
76
+ return key in self.additional_properties
@@ -0,0 +1,9 @@
1
+ from enum import Enum
2
+
3
+
4
+ class DownloadOpenapiSpecJsonBodyOpenapiSpecFormat(str, Enum):
5
+ JSON = "json"
6
+ YAML = "yaml"
7
+
8
+ def __str__(self) -> str:
9
+ return str(self.value)
@@ -0,0 +1,89 @@
1
+ from typing import Any, Dict, List, Type, TypeVar
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..models.download_openapi_spec_json_body_webhook_filters_item_runnable_kind import (
7
+ DownloadOpenapiSpecJsonBodyWebhookFiltersItemRunnableKind,
8
+ )
9
+ from ..models.download_openapi_spec_json_body_webhook_filters_item_user_or_folder_regex import (
10
+ DownloadOpenapiSpecJsonBodyWebhookFiltersItemUserOrFolderRegex,
11
+ )
12
+
13
+ T = TypeVar("T", bound="DownloadOpenapiSpecJsonBodyWebhookFiltersItem")
14
+
15
+
16
+ @_attrs_define
17
+ class DownloadOpenapiSpecJsonBodyWebhookFiltersItem:
18
+ """
19
+ Attributes:
20
+ user_or_folder_regex (DownloadOpenapiSpecJsonBodyWebhookFiltersItemUserOrFolderRegex):
21
+ user_or_folder_regex_value (str):
22
+ path (str):
23
+ runnable_kind (DownloadOpenapiSpecJsonBodyWebhookFiltersItemRunnableKind):
24
+ """
25
+
26
+ user_or_folder_regex: DownloadOpenapiSpecJsonBodyWebhookFiltersItemUserOrFolderRegex
27
+ user_or_folder_regex_value: str
28
+ path: str
29
+ runnable_kind: DownloadOpenapiSpecJsonBodyWebhookFiltersItemRunnableKind
30
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
31
+
32
+ def to_dict(self) -> Dict[str, Any]:
33
+ user_or_folder_regex = self.user_or_folder_regex.value
34
+
35
+ user_or_folder_regex_value = self.user_or_folder_regex_value
36
+ path = self.path
37
+ runnable_kind = self.runnable_kind.value
38
+
39
+ field_dict: Dict[str, Any] = {}
40
+ field_dict.update(self.additional_properties)
41
+ field_dict.update(
42
+ {
43
+ "user_or_folder_regex": user_or_folder_regex,
44
+ "user_or_folder_regex_value": user_or_folder_regex_value,
45
+ "path": path,
46
+ "runnable_kind": runnable_kind,
47
+ }
48
+ )
49
+
50
+ return field_dict
51
+
52
+ @classmethod
53
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
54
+ d = src_dict.copy()
55
+ user_or_folder_regex = DownloadOpenapiSpecJsonBodyWebhookFiltersItemUserOrFolderRegex(
56
+ d.pop("user_or_folder_regex")
57
+ )
58
+
59
+ user_or_folder_regex_value = d.pop("user_or_folder_regex_value")
60
+
61
+ path = d.pop("path")
62
+
63
+ runnable_kind = DownloadOpenapiSpecJsonBodyWebhookFiltersItemRunnableKind(d.pop("runnable_kind"))
64
+
65
+ download_openapi_spec_json_body_webhook_filters_item = cls(
66
+ user_or_folder_regex=user_or_folder_regex,
67
+ user_or_folder_regex_value=user_or_folder_regex_value,
68
+ path=path,
69
+ runnable_kind=runnable_kind,
70
+ )
71
+
72
+ download_openapi_spec_json_body_webhook_filters_item.additional_properties = d
73
+ return download_openapi_spec_json_body_webhook_filters_item
74
+
75
+ @property
76
+ def additional_keys(self) -> List[str]:
77
+ return list(self.additional_properties.keys())
78
+
79
+ def __getitem__(self, key: str) -> Any:
80
+ return self.additional_properties[key]
81
+
82
+ def __setitem__(self, key: str, value: Any) -> None:
83
+ self.additional_properties[key] = value
84
+
85
+ def __delitem__(self, key: str) -> None:
86
+ del self.additional_properties[key]
87
+
88
+ def __contains__(self, key: str) -> bool:
89
+ return key in self.additional_properties
@@ -0,0 +1,9 @@
1
+ from enum import Enum
2
+
3
+
4
+ class DownloadOpenapiSpecJsonBodyWebhookFiltersItemRunnableKind(str, Enum):
5
+ FLOW = "flow"
6
+ SCRIPT = "script"
7
+
8
+ def __str__(self) -> str:
9
+ return str(self.value)
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class DownloadOpenapiSpecJsonBodyWebhookFiltersItemUserOrFolderRegex(str, Enum):
5
+ F = "f"
6
+ U = "u"
7
+ VALUE_0 = "*"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -26,6 +26,8 @@ class EditHttpTrigger:
26
26
  authentication_method (EditHttpTriggerAuthenticationMethod):
27
27
  is_static_website (bool):
28
28
  route_path (Union[Unset, str]):
29
+ summary (Union[Unset, str]):
30
+ description (Union[Unset, str]):
29
31
  workspaced_route (Union[Unset, bool]):
30
32
  static_asset_config (Union[Unset, EditHttpTriggerStaticAssetConfig]):
31
33
  authentication_resource_path (Union[Unset, str]):
@@ -41,6 +43,8 @@ class EditHttpTrigger:
41
43
  authentication_method: EditHttpTriggerAuthenticationMethod
42
44
  is_static_website: bool
43
45
  route_path: Union[Unset, str] = UNSET
46
+ summary: Union[Unset, str] = UNSET
47
+ description: Union[Unset, str] = UNSET
44
48
  workspaced_route: Union[Unset, bool] = UNSET
45
49
  static_asset_config: Union[Unset, "EditHttpTriggerStaticAssetConfig"] = UNSET
46
50
  authentication_resource_path: Union[Unset, str] = UNSET
@@ -59,6 +63,8 @@ class EditHttpTrigger:
59
63
 
60
64
  is_static_website = self.is_static_website
61
65
  route_path = self.route_path
66
+ summary = self.summary
67
+ description = self.description
62
68
  workspaced_route = self.workspaced_route
63
69
  static_asset_config: Union[Unset, Dict[str, Any]] = UNSET
64
70
  if not isinstance(self.static_asset_config, Unset):
@@ -83,6 +89,10 @@ class EditHttpTrigger:
83
89
  )
84
90
  if route_path is not UNSET:
85
91
  field_dict["route_path"] = route_path
92
+ if summary is not UNSET:
93
+ field_dict["summary"] = summary
94
+ if description is not UNSET:
95
+ field_dict["description"] = description
86
96
  if workspaced_route is not UNSET:
87
97
  field_dict["workspaced_route"] = workspaced_route
88
98
  if static_asset_config is not UNSET:
@@ -117,6 +127,10 @@ class EditHttpTrigger:
117
127
 
118
128
  route_path = d.pop("route_path", UNSET)
119
129
 
130
+ summary = d.pop("summary", UNSET)
131
+
132
+ description = d.pop("description", UNSET)
133
+
120
134
  workspaced_route = d.pop("workspaced_route", UNSET)
121
135
 
122
136
  _static_asset_config = d.pop("static_asset_config", UNSET)
@@ -141,6 +155,8 @@ class EditHttpTrigger:
141
155
  authentication_method=authentication_method,
142
156
  is_static_website=is_static_website,
143
157
  route_path=route_path,
158
+ summary=summary,
159
+ description=description,
144
160
  workspaced_route=workspaced_route,
145
161
  static_asset_config=static_asset_config,
146
162
  authentication_resource_path=authentication_resource_path,
@@ -0,0 +1,140 @@
1
+ from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..models.generate_openapi_spec_openapi_spec_format import GenerateOpenapiSpecOpenapiSpecFormat
7
+ from ..types import UNSET, Unset
8
+
9
+ if TYPE_CHECKING:
10
+ from ..models.generate_openapi_spec_http_route_filters_item import GenerateOpenapiSpecHttpRouteFiltersItem
11
+ from ..models.generate_openapi_spec_info import GenerateOpenapiSpecInfo
12
+ from ..models.generate_openapi_spec_webhook_filters_item import GenerateOpenapiSpecWebhookFiltersItem
13
+
14
+
15
+ T = TypeVar("T", bound="GenerateOpenapiSpec")
16
+
17
+
18
+ @_attrs_define
19
+ class GenerateOpenapiSpec:
20
+ """
21
+ Attributes:
22
+ info (Union[Unset, GenerateOpenapiSpecInfo]):
23
+ url (Union[Unset, str]):
24
+ openapi_spec_format (Union[Unset, GenerateOpenapiSpecOpenapiSpecFormat]):
25
+ http_route_filters (Union[Unset, List['GenerateOpenapiSpecHttpRouteFiltersItem']]):
26
+ webhook_filters (Union[Unset, List['GenerateOpenapiSpecWebhookFiltersItem']]):
27
+ """
28
+
29
+ info: Union[Unset, "GenerateOpenapiSpecInfo"] = UNSET
30
+ url: Union[Unset, str] = UNSET
31
+ openapi_spec_format: Union[Unset, GenerateOpenapiSpecOpenapiSpecFormat] = UNSET
32
+ http_route_filters: Union[Unset, List["GenerateOpenapiSpecHttpRouteFiltersItem"]] = UNSET
33
+ webhook_filters: Union[Unset, List["GenerateOpenapiSpecWebhookFiltersItem"]] = UNSET
34
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
35
+
36
+ def to_dict(self) -> Dict[str, Any]:
37
+ info: Union[Unset, Dict[str, Any]] = UNSET
38
+ if not isinstance(self.info, Unset):
39
+ info = self.info.to_dict()
40
+
41
+ url = self.url
42
+ openapi_spec_format: Union[Unset, str] = UNSET
43
+ if not isinstance(self.openapi_spec_format, Unset):
44
+ openapi_spec_format = self.openapi_spec_format.value
45
+
46
+ http_route_filters: Union[Unset, List[Dict[str, Any]]] = UNSET
47
+ if not isinstance(self.http_route_filters, Unset):
48
+ http_route_filters = []
49
+ for http_route_filters_item_data in self.http_route_filters:
50
+ http_route_filters_item = http_route_filters_item_data.to_dict()
51
+
52
+ http_route_filters.append(http_route_filters_item)
53
+
54
+ webhook_filters: Union[Unset, List[Dict[str, Any]]] = UNSET
55
+ if not isinstance(self.webhook_filters, Unset):
56
+ webhook_filters = []
57
+ for webhook_filters_item_data in self.webhook_filters:
58
+ webhook_filters_item = webhook_filters_item_data.to_dict()
59
+
60
+ webhook_filters.append(webhook_filters_item)
61
+
62
+ field_dict: Dict[str, Any] = {}
63
+ field_dict.update(self.additional_properties)
64
+ field_dict.update({})
65
+ if info is not UNSET:
66
+ field_dict["info"] = info
67
+ if url is not UNSET:
68
+ field_dict["url"] = url
69
+ if openapi_spec_format is not UNSET:
70
+ field_dict["openapi_spec_format"] = openapi_spec_format
71
+ if http_route_filters is not UNSET:
72
+ field_dict["http_route_filters"] = http_route_filters
73
+ if webhook_filters is not UNSET:
74
+ field_dict["webhook_filters"] = webhook_filters
75
+
76
+ return field_dict
77
+
78
+ @classmethod
79
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
80
+ from ..models.generate_openapi_spec_http_route_filters_item import GenerateOpenapiSpecHttpRouteFiltersItem
81
+ from ..models.generate_openapi_spec_info import GenerateOpenapiSpecInfo
82
+ from ..models.generate_openapi_spec_webhook_filters_item import GenerateOpenapiSpecWebhookFiltersItem
83
+
84
+ d = src_dict.copy()
85
+ _info = d.pop("info", UNSET)
86
+ info: Union[Unset, GenerateOpenapiSpecInfo]
87
+ if isinstance(_info, Unset):
88
+ info = UNSET
89
+ else:
90
+ info = GenerateOpenapiSpecInfo.from_dict(_info)
91
+
92
+ url = d.pop("url", UNSET)
93
+
94
+ _openapi_spec_format = d.pop("openapi_spec_format", UNSET)
95
+ openapi_spec_format: Union[Unset, GenerateOpenapiSpecOpenapiSpecFormat]
96
+ if isinstance(_openapi_spec_format, Unset):
97
+ openapi_spec_format = UNSET
98
+ else:
99
+ openapi_spec_format = GenerateOpenapiSpecOpenapiSpecFormat(_openapi_spec_format)
100
+
101
+ http_route_filters = []
102
+ _http_route_filters = d.pop("http_route_filters", UNSET)
103
+ for http_route_filters_item_data in _http_route_filters or []:
104
+ http_route_filters_item = GenerateOpenapiSpecHttpRouteFiltersItem.from_dict(http_route_filters_item_data)
105
+
106
+ http_route_filters.append(http_route_filters_item)
107
+
108
+ webhook_filters = []
109
+ _webhook_filters = d.pop("webhook_filters", UNSET)
110
+ for webhook_filters_item_data in _webhook_filters or []:
111
+ webhook_filters_item = GenerateOpenapiSpecWebhookFiltersItem.from_dict(webhook_filters_item_data)
112
+
113
+ webhook_filters.append(webhook_filters_item)
114
+
115
+ generate_openapi_spec = cls(
116
+ info=info,
117
+ url=url,
118
+ openapi_spec_format=openapi_spec_format,
119
+ http_route_filters=http_route_filters,
120
+ webhook_filters=webhook_filters,
121
+ )
122
+
123
+ generate_openapi_spec.additional_properties = d
124
+ return generate_openapi_spec
125
+
126
+ @property
127
+ def additional_keys(self) -> List[str]:
128
+ return list(self.additional_properties.keys())
129
+
130
+ def __getitem__(self, key: str) -> Any:
131
+ return self.additional_properties[key]
132
+
133
+ def __setitem__(self, key: str, value: Any) -> None:
134
+ self.additional_properties[key] = value
135
+
136
+ def __delitem__(self, key: str) -> None:
137
+ del self.additional_properties[key]
138
+
139
+ def __contains__(self, key: str) -> bool:
140
+ return key in self.additional_properties
@@ -0,0 +1,72 @@
1
+ from typing import Any, Dict, List, Type, TypeVar
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ T = TypeVar("T", bound="GenerateOpenapiSpecHttpRouteFiltersItem")
7
+
8
+
9
+ @_attrs_define
10
+ class GenerateOpenapiSpecHttpRouteFiltersItem:
11
+ """
12
+ Attributes:
13
+ folder_regex (str):
14
+ path_regex (str):
15
+ route_path_regex (str):
16
+ """
17
+
18
+ folder_regex: str
19
+ path_regex: str
20
+ route_path_regex: str
21
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
22
+
23
+ def to_dict(self) -> Dict[str, Any]:
24
+ folder_regex = self.folder_regex
25
+ path_regex = self.path_regex
26
+ route_path_regex = self.route_path_regex
27
+
28
+ field_dict: Dict[str, Any] = {}
29
+ field_dict.update(self.additional_properties)
30
+ field_dict.update(
31
+ {
32
+ "folder_regex": folder_regex,
33
+ "path_regex": path_regex,
34
+ "route_path_regex": route_path_regex,
35
+ }
36
+ )
37
+
38
+ return field_dict
39
+
40
+ @classmethod
41
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
42
+ d = src_dict.copy()
43
+ folder_regex = d.pop("folder_regex")
44
+
45
+ path_regex = d.pop("path_regex")
46
+
47
+ route_path_regex = d.pop("route_path_regex")
48
+
49
+ generate_openapi_spec_http_route_filters_item = cls(
50
+ folder_regex=folder_regex,
51
+ path_regex=path_regex,
52
+ route_path_regex=route_path_regex,
53
+ )
54
+
55
+ generate_openapi_spec_http_route_filters_item.additional_properties = d
56
+ return generate_openapi_spec_http_route_filters_item
57
+
58
+ @property
59
+ def additional_keys(self) -> List[str]:
60
+ return list(self.additional_properties.keys())
61
+
62
+ def __getitem__(self, key: str) -> Any:
63
+ return self.additional_properties[key]
64
+
65
+ def __setitem__(self, key: str, value: Any) -> None:
66
+ self.additional_properties[key] = value
67
+
68
+ def __delitem__(self, key: str) -> None:
69
+ del self.additional_properties[key]
70
+
71
+ def __contains__(self, key: str) -> bool:
72
+ return key in self.additional_properties