windmill-api 1.461.0__py3-none-any.whl → 1.462.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.

@@ -0,0 +1,157 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Dict, List, Optional, Union
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.list_available_teams_ids_response_200_item import ListAvailableTeamsIdsResponse200Item
9
+ from ...types import Response
10
+
11
+
12
+ def _get_kwargs(
13
+ workspace: str,
14
+ ) -> Dict[str, Any]:
15
+ pass
16
+
17
+ return {
18
+ "method": "get",
19
+ "url": "/w/{workspace}/workspaces/available_teams_ids".format(
20
+ workspace=workspace,
21
+ ),
22
+ }
23
+
24
+
25
+ def _parse_response(
26
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
27
+ ) -> Optional[List["ListAvailableTeamsIdsResponse200Item"]]:
28
+ if response.status_code == HTTPStatus.OK:
29
+ response_200 = []
30
+ _response_200 = response.json()
31
+ for response_200_item_data in _response_200:
32
+ response_200_item = ListAvailableTeamsIdsResponse200Item.from_dict(response_200_item_data)
33
+
34
+ response_200.append(response_200_item)
35
+
36
+ return response_200
37
+ if client.raise_on_unexpected_status:
38
+ raise errors.UnexpectedStatus(response.status_code, response.content)
39
+ else:
40
+ return None
41
+
42
+
43
+ def _build_response(
44
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
45
+ ) -> Response[List["ListAvailableTeamsIdsResponse200Item"]]:
46
+ return Response(
47
+ status_code=HTTPStatus(response.status_code),
48
+ content=response.content,
49
+ headers=response.headers,
50
+ parsed=_parse_response(client=client, response=response),
51
+ )
52
+
53
+
54
+ def sync_detailed(
55
+ workspace: str,
56
+ *,
57
+ client: Union[AuthenticatedClient, Client],
58
+ ) -> Response[List["ListAvailableTeamsIdsResponse200Item"]]:
59
+ """list available teams ids
60
+
61
+ Args:
62
+ workspace (str):
63
+
64
+ Raises:
65
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
66
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
67
+
68
+ Returns:
69
+ Response[List['ListAvailableTeamsIdsResponse200Item']]
70
+ """
71
+
72
+ kwargs = _get_kwargs(
73
+ workspace=workspace,
74
+ )
75
+
76
+ response = client.get_httpx_client().request(
77
+ **kwargs,
78
+ )
79
+
80
+ return _build_response(client=client, response=response)
81
+
82
+
83
+ def sync(
84
+ workspace: str,
85
+ *,
86
+ client: Union[AuthenticatedClient, Client],
87
+ ) -> Optional[List["ListAvailableTeamsIdsResponse200Item"]]:
88
+ """list available teams ids
89
+
90
+ Args:
91
+ workspace (str):
92
+
93
+ Raises:
94
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
95
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
96
+
97
+ Returns:
98
+ List['ListAvailableTeamsIdsResponse200Item']
99
+ """
100
+
101
+ return sync_detailed(
102
+ workspace=workspace,
103
+ client=client,
104
+ ).parsed
105
+
106
+
107
+ async def asyncio_detailed(
108
+ workspace: str,
109
+ *,
110
+ client: Union[AuthenticatedClient, Client],
111
+ ) -> Response[List["ListAvailableTeamsIdsResponse200Item"]]:
112
+ """list available teams ids
113
+
114
+ Args:
115
+ workspace (str):
116
+
117
+ Raises:
118
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
119
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
120
+
121
+ Returns:
122
+ Response[List['ListAvailableTeamsIdsResponse200Item']]
123
+ """
124
+
125
+ kwargs = _get_kwargs(
126
+ workspace=workspace,
127
+ )
128
+
129
+ response = await client.get_async_httpx_client().request(**kwargs)
130
+
131
+ return _build_response(client=client, response=response)
132
+
133
+
134
+ async def asyncio(
135
+ workspace: str,
136
+ *,
137
+ client: Union[AuthenticatedClient, Client],
138
+ ) -> Optional[List["ListAvailableTeamsIdsResponse200Item"]]:
139
+ """list available teams ids
140
+
141
+ Args:
142
+ workspace (str):
143
+
144
+ Raises:
145
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
146
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
147
+
148
+ Returns:
149
+ List['ListAvailableTeamsIdsResponse200Item']
150
+ """
151
+
152
+ return (
153
+ await asyncio_detailed(
154
+ workspace=workspace,
155
+ client=client,
156
+ )
157
+ ).parsed
@@ -0,0 +1,105 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Dict, Optional, Union
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.run_teams_message_test_job_json_body import RunTeamsMessageTestJobJsonBody
9
+ from ...types import Response
10
+
11
+
12
+ def _get_kwargs(
13
+ workspace: str,
14
+ *,
15
+ json_body: RunTeamsMessageTestJobJsonBody,
16
+ ) -> Dict[str, Any]:
17
+ pass
18
+
19
+ json_json_body = json_body.to_dict()
20
+
21
+ return {
22
+ "method": "post",
23
+ "url": "/w/{workspace}/workspaces/run_teams_message_test_job".format(
24
+ workspace=workspace,
25
+ ),
26
+ "json": json_json_body,
27
+ }
28
+
29
+
30
+ def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[Any]:
31
+ if client.raise_on_unexpected_status:
32
+ raise errors.UnexpectedStatus(response.status_code, response.content)
33
+ else:
34
+ return None
35
+
36
+
37
+ def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[Any]:
38
+ return Response(
39
+ status_code=HTTPStatus(response.status_code),
40
+ content=response.content,
41
+ headers=response.headers,
42
+ parsed=_parse_response(client=client, response=response),
43
+ )
44
+
45
+
46
+ def sync_detailed(
47
+ workspace: str,
48
+ *,
49
+ client: Union[AuthenticatedClient, Client],
50
+ json_body: RunTeamsMessageTestJobJsonBody,
51
+ ) -> Response[Any]:
52
+ """run a job that sends a message to Teams
53
+
54
+ Args:
55
+ workspace (str):
56
+ json_body (RunTeamsMessageTestJobJsonBody):
57
+
58
+ Raises:
59
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
60
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
61
+
62
+ Returns:
63
+ Response[Any]
64
+ """
65
+
66
+ kwargs = _get_kwargs(
67
+ workspace=workspace,
68
+ json_body=json_body,
69
+ )
70
+
71
+ response = client.get_httpx_client().request(
72
+ **kwargs,
73
+ )
74
+
75
+ return _build_response(client=client, response=response)
76
+
77
+
78
+ async def asyncio_detailed(
79
+ workspace: str,
80
+ *,
81
+ client: Union[AuthenticatedClient, Client],
82
+ json_body: RunTeamsMessageTestJobJsonBody,
83
+ ) -> Response[Any]:
84
+ """run a job that sends a message to Teams
85
+
86
+ Args:
87
+ workspace (str):
88
+ json_body (RunTeamsMessageTestJobJsonBody):
89
+
90
+ Raises:
91
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
92
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
93
+
94
+ Returns:
95
+ Response[Any]
96
+ """
97
+
98
+ kwargs = _get_kwargs(
99
+ workspace=workspace,
100
+ json_body=json_body,
101
+ )
102
+
103
+ response = await client.get_async_httpx_client().request(**kwargs)
104
+
105
+ return _build_response(client=client, response=response)
@@ -0,0 +1,66 @@
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="ConnectTeamsJsonBody")
9
+
10
+
11
+ @_attrs_define
12
+ class ConnectTeamsJsonBody:
13
+ """
14
+ Attributes:
15
+ team_id (Union[Unset, str]):
16
+ team_name (Union[Unset, str]):
17
+ """
18
+
19
+ team_id: Union[Unset, str] = UNSET
20
+ team_name: Union[Unset, str] = UNSET
21
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
22
+
23
+ def to_dict(self) -> Dict[str, Any]:
24
+ team_id = self.team_id
25
+ team_name = self.team_name
26
+
27
+ field_dict: Dict[str, Any] = {}
28
+ field_dict.update(self.additional_properties)
29
+ field_dict.update({})
30
+ if team_id is not UNSET:
31
+ field_dict["team_id"] = team_id
32
+ if team_name is not UNSET:
33
+ field_dict["team_name"] = team_name
34
+
35
+ return field_dict
36
+
37
+ @classmethod
38
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
39
+ d = src_dict.copy()
40
+ team_id = d.pop("team_id", UNSET)
41
+
42
+ team_name = d.pop("team_name", UNSET)
43
+
44
+ connect_teams_json_body = cls(
45
+ team_id=team_id,
46
+ team_name=team_name,
47
+ )
48
+
49
+ connect_teams_json_body.additional_properties = d
50
+ return connect_teams_json_body
51
+
52
+ @property
53
+ def additional_keys(self) -> List[str]:
54
+ return list(self.additional_properties.keys())
55
+
56
+ def __getitem__(self, key: str) -> Any:
57
+ return self.additional_properties[key]
58
+
59
+ def __setitem__(self, key: str, value: Any) -> None:
60
+ self.additional_properties[key] = value
61
+
62
+ def __delitem__(self, key: str) -> None:
63
+ del self.additional_properties[key]
64
+
65
+ def __contains__(self, key: str) -> bool:
66
+ return key in self.additional_properties
@@ -0,0 +1,58 @@
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="EditTeamsCommandJsonBody")
9
+
10
+
11
+ @_attrs_define
12
+ class EditTeamsCommandJsonBody:
13
+ """
14
+ Attributes:
15
+ slack_command_script (Union[Unset, str]):
16
+ """
17
+
18
+ slack_command_script: Union[Unset, str] = UNSET
19
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
20
+
21
+ def to_dict(self) -> Dict[str, Any]:
22
+ slack_command_script = self.slack_command_script
23
+
24
+ field_dict: Dict[str, Any] = {}
25
+ field_dict.update(self.additional_properties)
26
+ field_dict.update({})
27
+ if slack_command_script is not UNSET:
28
+ field_dict["slack_command_script"] = slack_command_script
29
+
30
+ return field_dict
31
+
32
+ @classmethod
33
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
34
+ d = src_dict.copy()
35
+ slack_command_script = d.pop("slack_command_script", UNSET)
36
+
37
+ edit_teams_command_json_body = cls(
38
+ slack_command_script=slack_command_script,
39
+ )
40
+
41
+ edit_teams_command_json_body.additional_properties = d
42
+ return edit_teams_command_json_body
43
+
44
+ @property
45
+ def additional_keys(self) -> List[str]:
46
+ return list(self.additional_properties.keys())
47
+
48
+ def __getitem__(self, key: str) -> Any:
49
+ return self.additional_properties[key]
50
+
51
+ def __setitem__(self, key: str, value: Any) -> None:
52
+ self.additional_properties[key] = value
53
+
54
+ def __delitem__(self, key: str) -> None:
55
+ del self.additional_properties[key]
56
+
57
+ def __contains__(self, key: str) -> bool:
58
+ return key in self.additional_properties
@@ -29,6 +29,9 @@ class GetSettingsResponse200:
29
29
  slack_name (Union[Unset, str]):
30
30
  slack_team_id (Union[Unset, str]):
31
31
  slack_command_script (Union[Unset, str]):
32
+ teams_team_id (Union[Unset, str]):
33
+ teams_command_script (Union[Unset, str]):
34
+ teams_team_name (Union[Unset, str]):
32
35
  auto_invite_domain (Union[Unset, str]):
33
36
  auto_invite_operator (Union[Unset, bool]):
34
37
  auto_add (Union[Unset, bool]):
@@ -57,6 +60,9 @@ class GetSettingsResponse200:
57
60
  slack_name: Union[Unset, str] = UNSET
58
61
  slack_team_id: Union[Unset, str] = UNSET
59
62
  slack_command_script: Union[Unset, str] = UNSET
63
+ teams_team_id: Union[Unset, str] = UNSET
64
+ teams_command_script: Union[Unset, str] = UNSET
65
+ teams_team_name: Union[Unset, str] = UNSET
60
66
  auto_invite_domain: Union[Unset, str] = UNSET
61
67
  auto_invite_operator: Union[Unset, bool] = UNSET
62
68
  auto_add: Union[Unset, bool] = UNSET
@@ -87,6 +93,9 @@ class GetSettingsResponse200:
87
93
  slack_name = self.slack_name
88
94
  slack_team_id = self.slack_team_id
89
95
  slack_command_script = self.slack_command_script
96
+ teams_team_id = self.teams_team_id
97
+ teams_command_script = self.teams_command_script
98
+ teams_team_name = self.teams_team_name
90
99
  auto_invite_domain = self.auto_invite_domain
91
100
  auto_invite_operator = self.auto_invite_operator
92
101
  auto_add = self.auto_add
@@ -144,6 +153,12 @@ class GetSettingsResponse200:
144
153
  field_dict["slack_team_id"] = slack_team_id
145
154
  if slack_command_script is not UNSET:
146
155
  field_dict["slack_command_script"] = slack_command_script
156
+ if teams_team_id is not UNSET:
157
+ field_dict["teams_team_id"] = teams_team_id
158
+ if teams_command_script is not UNSET:
159
+ field_dict["teams_command_script"] = teams_command_script
160
+ if teams_team_name is not UNSET:
161
+ field_dict["teams_team_name"] = teams_team_name
147
162
  if auto_invite_domain is not UNSET:
148
163
  field_dict["auto_invite_domain"] = auto_invite_domain
149
164
  if auto_invite_operator is not UNSET:
@@ -212,6 +227,12 @@ class GetSettingsResponse200:
212
227
 
213
228
  slack_command_script = d.pop("slack_command_script", UNSET)
214
229
 
230
+ teams_team_id = d.pop("teams_team_id", UNSET)
231
+
232
+ teams_command_script = d.pop("teams_command_script", UNSET)
233
+
234
+ teams_team_name = d.pop("teams_team_name", UNSET)
235
+
215
236
  auto_invite_domain = d.pop("auto_invite_domain", UNSET)
216
237
 
217
238
  auto_invite_operator = d.pop("auto_invite_operator", UNSET)
@@ -295,6 +316,9 @@ class GetSettingsResponse200:
295
316
  slack_name=slack_name,
296
317
  slack_team_id=slack_team_id,
297
318
  slack_command_script=slack_command_script,
319
+ teams_team_id=teams_team_id,
320
+ teams_command_script=teams_command_script,
321
+ teams_team_name=teams_team_name,
298
322
  auto_invite_domain=auto_invite_domain,
299
323
  auto_invite_operator=auto_invite_operator,
300
324
  auto_add=auto_add,
@@ -0,0 +1,82 @@
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="ListAvailableTeamsChannelsResponse200Item")
9
+
10
+
11
+ @_attrs_define
12
+ class ListAvailableTeamsChannelsResponse200Item:
13
+ """
14
+ Attributes:
15
+ channel_name (Union[Unset, str]):
16
+ channel_id (Union[Unset, str]):
17
+ service_url (Union[Unset, str]):
18
+ tenant_id (Union[Unset, str]):
19
+ """
20
+
21
+ channel_name: Union[Unset, str] = UNSET
22
+ channel_id: Union[Unset, str] = UNSET
23
+ service_url: Union[Unset, str] = UNSET
24
+ tenant_id: Union[Unset, str] = UNSET
25
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> Dict[str, Any]:
28
+ channel_name = self.channel_name
29
+ channel_id = self.channel_id
30
+ service_url = self.service_url
31
+ tenant_id = self.tenant_id
32
+
33
+ field_dict: Dict[str, Any] = {}
34
+ field_dict.update(self.additional_properties)
35
+ field_dict.update({})
36
+ if channel_name is not UNSET:
37
+ field_dict["channel_name"] = channel_name
38
+ if channel_id is not UNSET:
39
+ field_dict["channel_id"] = channel_id
40
+ if service_url is not UNSET:
41
+ field_dict["service_url"] = service_url
42
+ if tenant_id is not UNSET:
43
+ field_dict["tenant_id"] = tenant_id
44
+
45
+ return field_dict
46
+
47
+ @classmethod
48
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
49
+ d = src_dict.copy()
50
+ channel_name = d.pop("channel_name", UNSET)
51
+
52
+ channel_id = d.pop("channel_id", UNSET)
53
+
54
+ service_url = d.pop("service_url", UNSET)
55
+
56
+ tenant_id = d.pop("tenant_id", UNSET)
57
+
58
+ list_available_teams_channels_response_200_item = cls(
59
+ channel_name=channel_name,
60
+ channel_id=channel_id,
61
+ service_url=service_url,
62
+ tenant_id=tenant_id,
63
+ )
64
+
65
+ list_available_teams_channels_response_200_item.additional_properties = d
66
+ return list_available_teams_channels_response_200_item
67
+
68
+ @property
69
+ def additional_keys(self) -> List[str]:
70
+ return list(self.additional_properties.keys())
71
+
72
+ def __getitem__(self, key: str) -> Any:
73
+ return self.additional_properties[key]
74
+
75
+ def __setitem__(self, key: str, value: Any) -> None:
76
+ self.additional_properties[key] = value
77
+
78
+ def __delitem__(self, key: str) -> None:
79
+ del self.additional_properties[key]
80
+
81
+ def __contains__(self, key: str) -> bool:
82
+ return key in self.additional_properties
@@ -0,0 +1,66 @@
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="ListAvailableTeamsIdsResponse200Item")
9
+
10
+
11
+ @_attrs_define
12
+ class ListAvailableTeamsIdsResponse200Item:
13
+ """
14
+ Attributes:
15
+ team_name (Union[Unset, str]):
16
+ team_id (Union[Unset, str]):
17
+ """
18
+
19
+ team_name: Union[Unset, str] = UNSET
20
+ team_id: Union[Unset, str] = UNSET
21
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
22
+
23
+ def to_dict(self) -> Dict[str, Any]:
24
+ team_name = self.team_name
25
+ team_id = self.team_id
26
+
27
+ field_dict: Dict[str, Any] = {}
28
+ field_dict.update(self.additional_properties)
29
+ field_dict.update({})
30
+ if team_name is not UNSET:
31
+ field_dict["team_name"] = team_name
32
+ if team_id is not UNSET:
33
+ field_dict["team_id"] = team_id
34
+
35
+ return field_dict
36
+
37
+ @classmethod
38
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
39
+ d = src_dict.copy()
40
+ team_name = d.pop("team_name", UNSET)
41
+
42
+ team_id = d.pop("team_id", UNSET)
43
+
44
+ list_available_teams_ids_response_200_item = cls(
45
+ team_name=team_name,
46
+ team_id=team_id,
47
+ )
48
+
49
+ list_available_teams_ids_response_200_item.additional_properties = d
50
+ return list_available_teams_ids_response_200_item
51
+
52
+ @property
53
+ def additional_keys(self) -> List[str]:
54
+ return list(self.additional_properties.keys())
55
+
56
+ def __getitem__(self, key: str) -> Any:
57
+ return self.additional_properties[key]
58
+
59
+ def __setitem__(self, key: str, value: Any) -> None:
60
+ self.additional_properties[key] = value
61
+
62
+ def __delitem__(self, key: str) -> None:
63
+ del self.additional_properties[key]
64
+
65
+ def __contains__(self, key: str) -> bool:
66
+ 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="RunTeamsMessageTestJobJsonBody")
9
+
10
+
11
+ @_attrs_define
12
+ class RunTeamsMessageTestJobJsonBody:
13
+ """
14
+ Attributes:
15
+ hub_script_path (Union[Unset, str]):
16
+ channel (Union[Unset, str]):
17
+ test_msg (Union[Unset, str]):
18
+ """
19
+
20
+ hub_script_path: Union[Unset, str] = UNSET
21
+ channel: Union[Unset, str] = UNSET
22
+ test_msg: 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
+ hub_script_path = self.hub_script_path
27
+ channel = self.channel
28
+ test_msg = self.test_msg
29
+
30
+ field_dict: Dict[str, Any] = {}
31
+ field_dict.update(self.additional_properties)
32
+ field_dict.update({})
33
+ if hub_script_path is not UNSET:
34
+ field_dict["hub_script_path"] = hub_script_path
35
+ if channel is not UNSET:
36
+ field_dict["channel"] = channel
37
+ if test_msg is not UNSET:
38
+ field_dict["test_msg"] = test_msg
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
+ hub_script_path = d.pop("hub_script_path", UNSET)
46
+
47
+ channel = d.pop("channel", UNSET)
48
+
49
+ test_msg = d.pop("test_msg", UNSET)
50
+
51
+ run_teams_message_test_job_json_body = cls(
52
+ hub_script_path=hub_script_path,
53
+ channel=channel,
54
+ test_msg=test_msg,
55
+ )
56
+
57
+ run_teams_message_test_job_json_body.additional_properties = d
58
+ return run_teams_message_test_job_json_body
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