windmill-api 1.478.1__py3-none-any.whl → 1.479.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 (118) hide show
  1. windmill_api/api/app/list_app_paths_from_workspace_runnable.py +176 -0
  2. windmill_api/api/git_sync/__init__.py +0 -0
  3. windmill_api/api/git_sync/delete_from_workspace.py +107 -0
  4. windmill_api/api/git_sync/export_installation.py +174 -0
  5. windmill_api/api/git_sync/get_global_connected_repositories.py +131 -0
  6. windmill_api/api/git_sync/import_installation.py +111 -0
  7. windmill_api/api/{workspace/set_automatic_billing.py → git_sync/install_from_workspace.py} +11 -9
  8. windmill_api/api/script/list_script_paths_from_workspace_runnable.py +161 -0
  9. windmill_api/api/workspace/get_copilot_info.py +65 -6
  10. windmill_api/api/workspace/get_github_app_token.py +170 -0
  11. windmill_api/models/ai_config.py +107 -0
  12. windmill_api/models/{get_settings_response_200_ai_resource.py → ai_config_code_completion_model.py} +15 -15
  13. windmill_api/models/{get_settings_response_200_ai_resource_provider.py → ai_config_code_completion_model_provider.py} +2 -1
  14. windmill_api/models/{edit_copilot_config_json_body_ai_resource.py → ai_config_default_model.py} +15 -15
  15. windmill_api/models/{edit_copilot_config_json_body_ai_resource_provider.py → ai_config_default_model_provider.py} +2 -1
  16. windmill_api/models/ai_config_providers.py +60 -0
  17. windmill_api/models/ai_config_providers_additional_property.py +65 -0
  18. windmill_api/models/ai_provider.py +1 -0
  19. windmill_api/models/ai_provider_config.py +65 -0
  20. windmill_api/models/{ai_resource.py → ai_provider_model.py} +15 -15
  21. windmill_api/models/{ai_resource_provider.py → ai_provider_model_provider.py} +2 -1
  22. windmill_api/models/archive_script_by_hash_response_200_language.py +2 -0
  23. windmill_api/models/authentication_method.py +13 -0
  24. windmill_api/models/completed_job_language.py +2 -0
  25. windmill_api/models/create_http_trigger_json_body.py +16 -6
  26. windmill_api/models/create_http_trigger_json_body_authentication_method.py +13 -0
  27. windmill_api/models/create_schedule_json_body.py +8 -0
  28. windmill_api/models/create_script_json_body_language.py +2 -0
  29. windmill_api/models/delete_completed_job_response_200_language.py +2 -0
  30. windmill_api/models/delete_script_by_hash_response_200_language.py +2 -0
  31. windmill_api/models/edit_copilot_config_json_body.py +50 -30
  32. windmill_api/models/edit_copilot_config_json_body_code_completion_model.py +69 -0
  33. windmill_api/models/edit_copilot_config_json_body_code_completion_model_provider.py +16 -0
  34. windmill_api/models/edit_copilot_config_json_body_default_model.py +67 -0
  35. windmill_api/models/edit_copilot_config_json_body_default_model_provider.py +16 -0
  36. windmill_api/models/edit_copilot_config_json_body_providers.py +66 -0
  37. windmill_api/models/edit_copilot_config_json_body_providers_additional_property.py +65 -0
  38. windmill_api/models/edit_http_trigger.py +16 -6
  39. windmill_api/models/edit_http_trigger_authentication_method.py +13 -0
  40. windmill_api/models/edit_schedule.py +8 -0
  41. windmill_api/models/{set_automatic_billing_json_body.py → export_installation_response_200.py} +13 -23
  42. windmill_api/models/extended_jobs_jobs_item_type_0_language.py +2 -0
  43. windmill_api/models/extended_jobs_jobs_item_type_1_language.py +2 -0
  44. windmill_api/models/get_completed_job_response_200_language.py +2 -0
  45. windmill_api/models/get_copilot_info_response_200.py +111 -0
  46. windmill_api/models/get_copilot_info_response_200_code_completion_model.py +69 -0
  47. windmill_api/models/get_copilot_info_response_200_code_completion_model_provider.py +16 -0
  48. windmill_api/models/get_copilot_info_response_200_default_model.py +67 -0
  49. windmill_api/models/get_copilot_info_response_200_default_model_provider.py +16 -0
  50. windmill_api/models/get_copilot_info_response_200_providers.py +66 -0
  51. windmill_api/models/get_copilot_info_response_200_providers_additional_property.py +65 -0
  52. windmill_api/models/get_github_app_token_json_body.py +58 -0
  53. windmill_api/models/get_github_app_token_response_200.py +58 -0
  54. windmill_api/models/get_global_connected_repositories_response_200_item.py +104 -0
  55. windmill_api/models/get_global_connected_repositories_response_200_item_repositories_item.py +65 -0
  56. windmill_api/models/get_http_trigger_response_200.py +17 -6
  57. windmill_api/models/get_http_trigger_response_200_authentication_method.py +13 -0
  58. windmill_api/models/get_job_response_200_type_0_language.py +2 -0
  59. windmill_api/models/get_job_response_200_type_1_language.py +2 -0
  60. windmill_api/models/get_premium_info_response_200.py +7 -14
  61. windmill_api/models/get_schedule_response_200.py +8 -0
  62. windmill_api/models/get_script_by_hash_response_200_language.py +2 -0
  63. windmill_api/models/get_script_by_path_response_200_language.py +2 -0
  64. windmill_api/models/get_script_by_path_with_draft_response_200_draft_language.py +2 -0
  65. windmill_api/models/get_script_by_path_with_draft_response_200_language.py +2 -0
  66. windmill_api/models/get_settings_response_200.py +16 -39
  67. windmill_api/models/get_settings_response_200_ai_config.py +113 -0
  68. windmill_api/models/get_settings_response_200_ai_config_code_completion_model.py +69 -0
  69. windmill_api/models/get_settings_response_200_ai_config_code_completion_model_provider.py +16 -0
  70. windmill_api/models/get_settings_response_200_ai_config_default_model.py +69 -0
  71. windmill_api/models/get_settings_response_200_ai_config_default_model_provider.py +16 -0
  72. windmill_api/models/get_settings_response_200_ai_config_providers.py +66 -0
  73. windmill_api/models/get_settings_response_200_ai_config_providers_additional_property.py +65 -0
  74. windmill_api/models/get_suspended_job_flow_response_200_job_type_0_language.py +2 -0
  75. windmill_api/models/get_suspended_job_flow_response_200_job_type_1_language.py +2 -0
  76. windmill_api/models/github_installations_item.py +98 -0
  77. windmill_api/models/github_installations_item_repositories_item.py +65 -0
  78. windmill_api/models/http_trigger.py +17 -6
  79. windmill_api/models/http_trigger_authentication_method.py +13 -0
  80. windmill_api/models/import_installation_json_body.py +58 -0
  81. windmill_api/models/install_from_workspace_json_body.py +65 -0
  82. windmill_api/models/job_type_0_language.py +2 -0
  83. windmill_api/models/job_type_1_language.py +2 -0
  84. windmill_api/models/list_app_paths_from_workspace_runnable_runnable_kind.py +9 -0
  85. windmill_api/models/list_completed_jobs_response_200_item_language.py +2 -0
  86. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_0_language.py +2 -0
  87. windmill_api/models/list_extended_jobs_response_200_jobs_item_type_1_language.py +2 -0
  88. windmill_api/models/list_http_triggers_response_200_item.py +19 -6
  89. windmill_api/models/list_http_triggers_response_200_item_authentication_method.py +13 -0
  90. windmill_api/models/list_jobs_response_200_item_type_0_language.py +2 -0
  91. windmill_api/models/list_jobs_response_200_item_type_1_language.py +2 -0
  92. windmill_api/models/list_queue_response_200_item_language.py +2 -0
  93. windmill_api/models/list_schedules_response_200_item.py +8 -0
  94. windmill_api/models/list_schedules_with_jobs_response_200_item.py +8 -0
  95. windmill_api/models/list_scripts_response_200_item_language.py +2 -0
  96. windmill_api/models/new_http_trigger.py +16 -6
  97. windmill_api/models/new_http_trigger_authentication_method.py +13 -0
  98. windmill_api/models/new_schedule.py +8 -0
  99. windmill_api/models/new_script_language.py +2 -0
  100. windmill_api/models/new_script_with_draft_draft_language.py +2 -0
  101. windmill_api/models/new_script_with_draft_language.py +2 -0
  102. windmill_api/models/preview_language.py +2 -0
  103. windmill_api/models/queued_job_language.py +2 -0
  104. windmill_api/models/raw_script_for_dependencies_language.py +2 -0
  105. windmill_api/models/run_raw_script_dependencies_json_body_raw_scripts_item_language.py +2 -0
  106. windmill_api/models/run_script_preview_json_body_language.py +2 -0
  107. windmill_api/models/schedule.py +8 -0
  108. windmill_api/models/schedule_w_jobs.py +8 -0
  109. windmill_api/models/script_lang.py +2 -0
  110. windmill_api/models/script_language.py +2 -0
  111. windmill_api/models/update_http_trigger_json_body.py +16 -6
  112. windmill_api/models/update_http_trigger_json_body_authentication_method.py +13 -0
  113. windmill_api/models/update_schedule_json_body.py +8 -0
  114. windmill_api/models/workspace_github_installation.py +65 -0
  115. {windmill_api-1.478.1.dist-info → windmill_api-1.479.0.dist-info}/METADATA +1 -1
  116. {windmill_api-1.478.1.dist-info → windmill_api-1.479.0.dist-info}/RECORD +118 -68
  117. {windmill_api-1.478.1.dist-info → windmill_api-1.479.0.dist-info}/LICENSE +0 -0
  118. {windmill_api-1.478.1.dist-info → windmill_api-1.479.0.dist-info}/WHEEL +0 -0
@@ -10,9 +10,11 @@ class RunScriptPreviewJsonBodyLanguage(str, Enum):
10
10
  DENO = "deno"
11
11
  GO = "go"
12
12
  GRAPHQL = "graphql"
13
+ JAVA = "java"
13
14
  MSSQL = "mssql"
14
15
  MYSQL = "mysql"
15
16
  NATIVETS = "nativets"
17
+ NU = "nu"
16
18
  ORACLEDB = "oracledb"
17
19
  PHP = "php"
18
20
  POSTGRESQL = "postgresql"
@@ -47,6 +47,7 @@ class Schedule:
47
47
  ws_error_handler_muted (Union[Unset, bool]):
48
48
  retry (Union[Unset, ScheduleRetry]):
49
49
  summary (Union[Unset, str]):
50
+ description (Union[Unset, str]):
50
51
  no_flow_overlap (Union[Unset, bool]):
51
52
  tag (Union[Unset, str]):
52
53
  paused_until (Union[Unset, datetime.datetime]):
@@ -77,6 +78,7 @@ class Schedule:
77
78
  ws_error_handler_muted: Union[Unset, bool] = UNSET
78
79
  retry: Union[Unset, "ScheduleRetry"] = UNSET
79
80
  summary: Union[Unset, str] = UNSET
81
+ description: Union[Unset, str] = UNSET
80
82
  no_flow_overlap: Union[Unset, bool] = UNSET
81
83
  tag: Union[Unset, str] = UNSET
82
84
  paused_until: Union[Unset, datetime.datetime] = UNSET
@@ -125,6 +127,7 @@ class Schedule:
125
127
  retry = self.retry.to_dict()
126
128
 
127
129
  summary = self.summary
130
+ description = self.description
128
131
  no_flow_overlap = self.no_flow_overlap
129
132
  tag = self.tag
130
133
  paused_until: Union[Unset, str] = UNSET
@@ -177,6 +180,8 @@ class Schedule:
177
180
  field_dict["retry"] = retry
178
181
  if summary is not UNSET:
179
182
  field_dict["summary"] = summary
183
+ if description is not UNSET:
184
+ field_dict["description"] = description
180
185
  if no_flow_overlap is not UNSET:
181
186
  field_dict["no_flow_overlap"] = no_flow_overlap
182
187
  if tag is not UNSET:
@@ -271,6 +276,8 @@ class Schedule:
271
276
 
272
277
  summary = d.pop("summary", UNSET)
273
278
 
279
+ description = d.pop("description", UNSET)
280
+
274
281
  no_flow_overlap = d.pop("no_flow_overlap", UNSET)
275
282
 
276
283
  tag = d.pop("tag", UNSET)
@@ -309,6 +316,7 @@ class Schedule:
309
316
  ws_error_handler_muted=ws_error_handler_muted,
310
317
  retry=retry,
311
318
  summary=summary,
319
+ description=description,
312
320
  no_flow_overlap=no_flow_overlap,
313
321
  tag=tag,
314
322
  paused_until=paused_until,
@@ -48,6 +48,7 @@ class ScheduleWJobs:
48
48
  ws_error_handler_muted (Union[Unset, bool]):
49
49
  retry (Union[Unset, ScheduleWJobsRetry]):
50
50
  summary (Union[Unset, str]):
51
+ description (Union[Unset, str]):
51
52
  no_flow_overlap (Union[Unset, bool]):
52
53
  tag (Union[Unset, str]):
53
54
  paused_until (Union[Unset, datetime.datetime]):
@@ -79,6 +80,7 @@ class ScheduleWJobs:
79
80
  ws_error_handler_muted: Union[Unset, bool] = UNSET
80
81
  retry: Union[Unset, "ScheduleWJobsRetry"] = UNSET
81
82
  summary: Union[Unset, str] = UNSET
83
+ description: Union[Unset, str] = UNSET
82
84
  no_flow_overlap: Union[Unset, bool] = UNSET
83
85
  tag: Union[Unset, str] = UNSET
84
86
  paused_until: Union[Unset, datetime.datetime] = UNSET
@@ -128,6 +130,7 @@ class ScheduleWJobs:
128
130
  retry = self.retry.to_dict()
129
131
 
130
132
  summary = self.summary
133
+ description = self.description
131
134
  no_flow_overlap = self.no_flow_overlap
132
135
  tag = self.tag
133
136
  paused_until: Union[Unset, str] = UNSET
@@ -187,6 +190,8 @@ class ScheduleWJobs:
187
190
  field_dict["retry"] = retry
188
191
  if summary is not UNSET:
189
192
  field_dict["summary"] = summary
193
+ if description is not UNSET:
194
+ field_dict["description"] = description
190
195
  if no_flow_overlap is not UNSET:
191
196
  field_dict["no_flow_overlap"] = no_flow_overlap
192
197
  if tag is not UNSET:
@@ -284,6 +289,8 @@ class ScheduleWJobs:
284
289
 
285
290
  summary = d.pop("summary", UNSET)
286
291
 
292
+ description = d.pop("description", UNSET)
293
+
287
294
  no_flow_overlap = d.pop("no_flow_overlap", UNSET)
288
295
 
289
296
  tag = d.pop("tag", UNSET)
@@ -329,6 +336,7 @@ class ScheduleWJobs:
329
336
  ws_error_handler_muted=ws_error_handler_muted,
330
337
  retry=retry,
331
338
  summary=summary,
339
+ description=description,
332
340
  no_flow_overlap=no_flow_overlap,
333
341
  tag=tag,
334
342
  paused_until=paused_until,
@@ -10,9 +10,11 @@ class ScriptLang(str, Enum):
10
10
  DENO = "deno"
11
11
  GO = "go"
12
12
  GRAPHQL = "graphql"
13
+ JAVA = "java"
13
14
  MSSQL = "mssql"
14
15
  MYSQL = "mysql"
15
16
  NATIVETS = "nativets"
17
+ NU = "nu"
16
18
  ORACLEDB = "oracledb"
17
19
  PHP = "php"
18
20
  POSTGRESQL = "postgresql"
@@ -10,9 +10,11 @@ class ScriptLanguage(str, Enum):
10
10
  DENO = "deno"
11
11
  GO = "go"
12
12
  GRAPHQL = "graphql"
13
+ JAVA = "java"
13
14
  MSSQL = "mssql"
14
15
  MYSQL = "mysql"
15
16
  NATIVETS = "nativets"
17
+ NU = "nu"
16
18
  ORACLEDB = "oracledb"
17
19
  PHP = "php"
18
20
  POSTGRESQL = "postgresql"
@@ -3,6 +3,7 @@ from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union
3
3
  from attrs import define as _attrs_define
4
4
  from attrs import field as _attrs_field
5
5
 
6
+ from ..models.update_http_trigger_json_body_authentication_method import UpdateHttpTriggerJsonBodyAuthenticationMethod
6
7
  from ..models.update_http_trigger_json_body_http_method import UpdateHttpTriggerJsonBodyHttpMethod
7
8
  from ..types import UNSET, Unset
8
9
 
@@ -22,11 +23,12 @@ class UpdateHttpTriggerJsonBody:
22
23
  is_flow (bool):
23
24
  http_method (UpdateHttpTriggerJsonBodyHttpMethod):
24
25
  is_async (bool):
25
- requires_auth (bool):
26
+ authentication_method (UpdateHttpTriggerJsonBodyAuthenticationMethod):
26
27
  is_static_website (bool):
27
28
  route_path (Union[Unset, str]):
28
29
  workspaced_route (Union[Unset, bool]):
29
30
  static_asset_config (Union[Unset, UpdateHttpTriggerJsonBodyStaticAssetConfig]):
31
+ authentication_resource_path (Union[Unset, str]):
30
32
  wrap_body (Union[Unset, bool]):
31
33
  raw_string (Union[Unset, bool]):
32
34
  """
@@ -36,11 +38,12 @@ class UpdateHttpTriggerJsonBody:
36
38
  is_flow: bool
37
39
  http_method: UpdateHttpTriggerJsonBodyHttpMethod
38
40
  is_async: bool
39
- requires_auth: bool
41
+ authentication_method: UpdateHttpTriggerJsonBodyAuthenticationMethod
40
42
  is_static_website: bool
41
43
  route_path: Union[Unset, str] = UNSET
42
44
  workspaced_route: Union[Unset, bool] = UNSET
43
45
  static_asset_config: Union[Unset, "UpdateHttpTriggerJsonBodyStaticAssetConfig"] = UNSET
46
+ authentication_resource_path: Union[Unset, str] = UNSET
44
47
  wrap_body: Union[Unset, bool] = UNSET
45
48
  raw_string: Union[Unset, bool] = UNSET
46
49
  additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
@@ -52,7 +55,8 @@ class UpdateHttpTriggerJsonBody:
52
55
  http_method = self.http_method.value
53
56
 
54
57
  is_async = self.is_async
55
- requires_auth = self.requires_auth
58
+ authentication_method = self.authentication_method.value
59
+
56
60
  is_static_website = self.is_static_website
57
61
  route_path = self.route_path
58
62
  workspaced_route = self.workspaced_route
@@ -60,6 +64,7 @@ class UpdateHttpTriggerJsonBody:
60
64
  if not isinstance(self.static_asset_config, Unset):
61
65
  static_asset_config = self.static_asset_config.to_dict()
62
66
 
67
+ authentication_resource_path = self.authentication_resource_path
63
68
  wrap_body = self.wrap_body
64
69
  raw_string = self.raw_string
65
70
 
@@ -72,7 +77,7 @@ class UpdateHttpTriggerJsonBody:
72
77
  "is_flow": is_flow,
73
78
  "http_method": http_method,
74
79
  "is_async": is_async,
75
- "requires_auth": requires_auth,
80
+ "authentication_method": authentication_method,
76
81
  "is_static_website": is_static_website,
77
82
  }
78
83
  )
@@ -82,6 +87,8 @@ class UpdateHttpTriggerJsonBody:
82
87
  field_dict["workspaced_route"] = workspaced_route
83
88
  if static_asset_config is not UNSET:
84
89
  field_dict["static_asset_config"] = static_asset_config
90
+ if authentication_resource_path is not UNSET:
91
+ field_dict["authentication_resource_path"] = authentication_resource_path
85
92
  if wrap_body is not UNSET:
86
93
  field_dict["wrap_body"] = wrap_body
87
94
  if raw_string is not UNSET:
@@ -106,7 +113,7 @@ class UpdateHttpTriggerJsonBody:
106
113
 
107
114
  is_async = d.pop("is_async")
108
115
 
109
- requires_auth = d.pop("requires_auth")
116
+ authentication_method = UpdateHttpTriggerJsonBodyAuthenticationMethod(d.pop("authentication_method"))
110
117
 
111
118
  is_static_website = d.pop("is_static_website")
112
119
 
@@ -121,6 +128,8 @@ class UpdateHttpTriggerJsonBody:
121
128
  else:
122
129
  static_asset_config = UpdateHttpTriggerJsonBodyStaticAssetConfig.from_dict(_static_asset_config)
123
130
 
131
+ authentication_resource_path = d.pop("authentication_resource_path", UNSET)
132
+
124
133
  wrap_body = d.pop("wrap_body", UNSET)
125
134
 
126
135
  raw_string = d.pop("raw_string", UNSET)
@@ -131,11 +140,12 @@ class UpdateHttpTriggerJsonBody:
131
140
  is_flow=is_flow,
132
141
  http_method=http_method,
133
142
  is_async=is_async,
134
- requires_auth=requires_auth,
143
+ authentication_method=authentication_method,
135
144
  is_static_website=is_static_website,
136
145
  route_path=route_path,
137
146
  workspaced_route=workspaced_route,
138
147
  static_asset_config=static_asset_config,
148
+ authentication_resource_path=authentication_resource_path,
139
149
  wrap_body=wrap_body,
140
150
  raw_string=raw_string,
141
151
  )
@@ -0,0 +1,13 @@
1
+ from enum import Enum
2
+
3
+
4
+ class UpdateHttpTriggerJsonBodyAuthenticationMethod(str, Enum):
5
+ API_KEY = "api_key"
6
+ BASIC_HTTP = "basic_http"
7
+ CUSTOM_SCRIPT = "custom_script"
8
+ NONE = "none"
9
+ SIGNATURE = "signature"
10
+ WINDMILL = "windmill"
11
+
12
+ def __str__(self) -> str:
13
+ return str(self.value)
@@ -38,6 +38,7 @@ class UpdateScheduleJsonBody:
38
38
  retry (Union[Unset, UpdateScheduleJsonBodyRetry]):
39
39
  no_flow_overlap (Union[Unset, bool]):
40
40
  summary (Union[Unset, str]):
41
+ description (Union[Unset, str]):
41
42
  tag (Union[Unset, str]):
42
43
  paused_until (Union[Unset, datetime.datetime]):
43
44
  cron_version (Union[Unset, str]):
@@ -59,6 +60,7 @@ class UpdateScheduleJsonBody:
59
60
  retry: Union[Unset, "UpdateScheduleJsonBodyRetry"] = UNSET
60
61
  no_flow_overlap: Union[Unset, bool] = UNSET
61
62
  summary: Union[Unset, str] = UNSET
63
+ description: Union[Unset, str] = UNSET
62
64
  tag: Union[Unset, str] = UNSET
63
65
  paused_until: Union[Unset, datetime.datetime] = UNSET
64
66
  cron_version: Union[Unset, str] = UNSET
@@ -94,6 +96,7 @@ class UpdateScheduleJsonBody:
94
96
 
95
97
  no_flow_overlap = self.no_flow_overlap
96
98
  summary = self.summary
99
+ description = self.description
97
100
  tag = self.tag
98
101
  paused_until: Union[Unset, str] = UNSET
99
102
  if not isinstance(self.paused_until, Unset):
@@ -136,6 +139,8 @@ class UpdateScheduleJsonBody:
136
139
  field_dict["no_flow_overlap"] = no_flow_overlap
137
140
  if summary is not UNSET:
138
141
  field_dict["summary"] = summary
142
+ if description is not UNSET:
143
+ field_dict["description"] = description
139
144
  if tag is not UNSET:
140
145
  field_dict["tag"] = tag
141
146
  if paused_until is not UNSET:
@@ -206,6 +211,8 @@ class UpdateScheduleJsonBody:
206
211
 
207
212
  summary = d.pop("summary", UNSET)
208
213
 
214
+ description = d.pop("description", UNSET)
215
+
209
216
  tag = d.pop("tag", UNSET)
210
217
 
211
218
  _paused_until = d.pop("paused_until", UNSET)
@@ -234,6 +241,7 @@ class UpdateScheduleJsonBody:
234
241
  retry=retry,
235
242
  no_flow_overlap=no_flow_overlap,
236
243
  summary=summary,
244
+ description=description,
237
245
  tag=tag,
238
246
  paused_until=paused_until,
239
247
  cron_version=cron_version,
@@ -0,0 +1,65 @@
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="WorkspaceGithubInstallation")
7
+
8
+
9
+ @_attrs_define
10
+ class WorkspaceGithubInstallation:
11
+ """
12
+ Attributes:
13
+ account_id (str):
14
+ installation_id (float):
15
+ """
16
+
17
+ account_id: str
18
+ installation_id: float
19
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
20
+
21
+ def to_dict(self) -> Dict[str, Any]:
22
+ account_id = self.account_id
23
+ installation_id = self.installation_id
24
+
25
+ field_dict: Dict[str, Any] = {}
26
+ field_dict.update(self.additional_properties)
27
+ field_dict.update(
28
+ {
29
+ "account_id": account_id,
30
+ "installation_id": installation_id,
31
+ }
32
+ )
33
+
34
+ return field_dict
35
+
36
+ @classmethod
37
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
38
+ d = src_dict.copy()
39
+ account_id = d.pop("account_id")
40
+
41
+ installation_id = d.pop("installation_id")
42
+
43
+ workspace_github_installation = cls(
44
+ account_id=account_id,
45
+ installation_id=installation_id,
46
+ )
47
+
48
+ workspace_github_installation.additional_properties = d
49
+ return workspace_github_installation
50
+
51
+ @property
52
+ def additional_keys(self) -> List[str]:
53
+ return list(self.additional_properties.keys())
54
+
55
+ def __getitem__(self, key: str) -> Any:
56
+ return self.additional_properties[key]
57
+
58
+ def __setitem__(self, key: str, value: Any) -> None:
59
+ self.additional_properties[key] = value
60
+
61
+ def __delitem__(self, key: str) -> None:
62
+ del self.additional_properties[key]
63
+
64
+ def __contains__(self, key: str) -> bool:
65
+ return key in self.additional_properties
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: windmill-api
3
- Version: 1.478.1
3
+ Version: 1.479.0
4
4
  Summary: A client library for accessing Windmill API
5
5
  License: Apache-2.0
6
6
  Author: Ruben Fiszel