projen 0.81.17__py3-none-any.whl → 0.98.25__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.
@@ -11,7 +11,22 @@ import jsii
11
11
  import publication
12
12
  import typing_extensions
13
13
 
14
- from typeguard import check_type
14
+ import typeguard
15
+ from importlib.metadata import version as _metadata_package_version
16
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
17
+
18
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
19
+ if TYPEGUARD_MAJOR_VERSION <= 2:
20
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
21
+ else:
22
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
23
+ pass
24
+ else:
25
+ if TYPEGUARD_MAJOR_VERSION == 3:
26
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
27
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
28
+ else:
29
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
15
30
 
16
31
  from ..._jsii import *
17
32
 
@@ -50,18 +65,32 @@ class AppPermission(enum.Enum):
50
65
  name_mapping={
51
66
  "actions": "actions",
52
67
  "administration": "administration",
68
+ "attestations": "attestations",
53
69
  "checks": "checks",
70
+ "codespaces": "codespaces",
54
71
  "contents": "contents",
72
+ "dependabot_secrets": "dependabotSecrets",
55
73
  "deployments": "deployments",
74
+ "email_addresses": "emailAddresses",
56
75
  "environments": "environments",
76
+ "followers": "followers",
77
+ "git_ssh_keys": "gitSshKeys",
78
+ "gpg_keys": "gpgKeys",
79
+ "interaction_limits": "interactionLimits",
57
80
  "issues": "issues",
58
81
  "members": "members",
59
82
  "metadata": "metadata",
60
83
  "organization_administration": "organizationAdministration",
61
84
  "organization_announcement_banners": "organizationAnnouncementBanners",
85
+ "organization_copilot_seat_management": "organizationCopilotSeatManagement",
86
+ "organization_custom_org_roles": "organizationCustomOrgRoles",
87
+ "organization_custom_properties": "organizationCustomProperties",
62
88
  "organization_custom_roles": "organizationCustomRoles",
89
+ "organization_events": "organizationEvents",
63
90
  "organization_hooks": "organizationHooks",
64
91
  "organization_packages": "organizationPackages",
92
+ "organization_personal_access_token_requests": "organizationPersonalAccessTokenRequests",
93
+ "organization_personal_access_tokens": "organizationPersonalAccessTokens",
65
94
  "organization_plan": "organizationPlan",
66
95
  "organization_projects": "organizationProjects",
67
96
  "organization_secrets": "organizationSecrets",
@@ -69,14 +98,17 @@ class AppPermission(enum.Enum):
69
98
  "orgnaization_user_blocking": "orgnaizationUserBlocking",
70
99
  "packages": "packages",
71
100
  "pages": "pages",
101
+ "profile": "profile",
72
102
  "pull_requests": "pullRequests",
73
103
  "repository_announcement_banners": "repositoryAnnouncementBanners",
104
+ "repository_custom_properties": "repositoryCustomProperties",
74
105
  "repository_hooks": "repositoryHooks",
75
- "repository_project": "repositoryProject",
106
+ "repository_projects": "repositoryProjects",
76
107
  "secrets": "secrets",
77
108
  "secret_scanning_alerts": "secretScanningAlerts",
78
109
  "security_events": "securityEvents",
79
110
  "single_file": "singleFile",
111
+ "starring": "starring",
80
112
  "statuses": "statuses",
81
113
  "team_discussions": "teamDiscussions",
82
114
  "vulnerability_alerts": "vulnerabilityAlerts",
@@ -89,18 +121,32 @@ class AppPermissions:
89
121
  *,
90
122
  actions: typing.Optional[AppPermission] = None,
91
123
  administration: typing.Optional[AppPermission] = None,
124
+ attestations: typing.Optional[AppPermission] = None,
92
125
  checks: typing.Optional[AppPermission] = None,
126
+ codespaces: typing.Optional[AppPermission] = None,
93
127
  contents: typing.Optional[AppPermission] = None,
128
+ dependabot_secrets: typing.Optional[AppPermission] = None,
94
129
  deployments: typing.Optional[AppPermission] = None,
130
+ email_addresses: typing.Optional[AppPermission] = None,
95
131
  environments: typing.Optional[AppPermission] = None,
132
+ followers: typing.Optional[AppPermission] = None,
133
+ git_ssh_keys: typing.Optional[AppPermission] = None,
134
+ gpg_keys: typing.Optional[AppPermission] = None,
135
+ interaction_limits: typing.Optional[AppPermission] = None,
96
136
  issues: typing.Optional[AppPermission] = None,
97
137
  members: typing.Optional[AppPermission] = None,
98
138
  metadata: typing.Optional[AppPermission] = None,
99
139
  organization_administration: typing.Optional[AppPermission] = None,
100
140
  organization_announcement_banners: typing.Optional[AppPermission] = None,
141
+ organization_copilot_seat_management: typing.Optional[AppPermission] = None,
142
+ organization_custom_org_roles: typing.Optional[AppPermission] = None,
143
+ organization_custom_properties: typing.Optional[AppPermission] = None,
101
144
  organization_custom_roles: typing.Optional[AppPermission] = None,
145
+ organization_events: typing.Optional[AppPermission] = None,
102
146
  organization_hooks: typing.Optional[AppPermission] = None,
103
147
  organization_packages: typing.Optional[AppPermission] = None,
148
+ organization_personal_access_token_requests: typing.Optional[AppPermission] = None,
149
+ organization_personal_access_tokens: typing.Optional[AppPermission] = None,
104
150
  organization_plan: typing.Optional[AppPermission] = None,
105
151
  organization_projects: typing.Optional[AppPermission] = None,
106
152
  organization_secrets: typing.Optional[AppPermission] = None,
@@ -108,14 +154,17 @@ class AppPermissions:
108
154
  orgnaization_user_blocking: typing.Optional[AppPermission] = None,
109
155
  packages: typing.Optional[AppPermission] = None,
110
156
  pages: typing.Optional[AppPermission] = None,
157
+ profile: typing.Optional[AppPermission] = None,
111
158
  pull_requests: typing.Optional[AppPermission] = None,
112
159
  repository_announcement_banners: typing.Optional[AppPermission] = None,
160
+ repository_custom_properties: typing.Optional[AppPermission] = None,
113
161
  repository_hooks: typing.Optional[AppPermission] = None,
114
- repository_project: typing.Optional[AppPermission] = None,
162
+ repository_projects: typing.Optional[AppPermission] = None,
115
163
  secrets: typing.Optional[AppPermission] = None,
116
164
  secret_scanning_alerts: typing.Optional[AppPermission] = None,
117
165
  security_events: typing.Optional[AppPermission] = None,
118
166
  single_file: typing.Optional[AppPermission] = None,
167
+ starring: typing.Optional[AppPermission] = None,
119
168
  statuses: typing.Optional[AppPermission] = None,
120
169
  team_discussions: typing.Optional[AppPermission] = None,
121
170
  vulnerability_alerts: typing.Optional[AppPermission] = None,
@@ -129,18 +178,32 @@ class AppPermissions:
129
178
 
130
179
  :param actions:
131
180
  :param administration:
181
+ :param attestations:
132
182
  :param checks:
183
+ :param codespaces:
133
184
  :param contents:
185
+ :param dependabot_secrets:
134
186
  :param deployments:
187
+ :param email_addresses:
135
188
  :param environments:
189
+ :param followers:
190
+ :param git_ssh_keys:
191
+ :param gpg_keys:
192
+ :param interaction_limits:
136
193
  :param issues:
137
194
  :param members:
138
195
  :param metadata:
139
196
  :param organization_administration:
140
197
  :param organization_announcement_banners:
198
+ :param organization_copilot_seat_management:
199
+ :param organization_custom_org_roles:
200
+ :param organization_custom_properties:
141
201
  :param organization_custom_roles:
202
+ :param organization_events:
142
203
  :param organization_hooks:
143
204
  :param organization_packages:
205
+ :param organization_personal_access_token_requests:
206
+ :param organization_personal_access_tokens:
144
207
  :param organization_plan:
145
208
  :param organization_projects:
146
209
  :param organization_secrets:
@@ -148,38 +211,55 @@ class AppPermissions:
148
211
  :param orgnaization_user_blocking:
149
212
  :param packages:
150
213
  :param pages:
214
+ :param profile:
151
215
  :param pull_requests:
152
216
  :param repository_announcement_banners:
217
+ :param repository_custom_properties:
153
218
  :param repository_hooks:
154
- :param repository_project:
219
+ :param repository_projects:
155
220
  :param secrets:
156
221
  :param secret_scanning_alerts:
157
222
  :param security_events:
158
223
  :param single_file:
224
+ :param starring:
159
225
  :param statuses:
160
226
  :param team_discussions:
161
227
  :param vulnerability_alerts:
162
228
  :param workflows:
163
229
 
164
- :see: https://docs.github.com/en/rest/apps/apps?apiVersion=2022-11-28#create-an-installation-access-token-for-an-app
230
+ :see: https://github.com/actions/create-github-app-token/blob/main/action.yml#L28
165
231
  :stability: experimental
166
232
  '''
167
233
  if __debug__:
168
234
  type_hints = typing.get_type_hints(_typecheckingstub__6e0085e134a87f8de8cb54bc56e329333881c3520710c833f5ed76097c8d1299)
169
235
  check_type(argname="argument actions", value=actions, expected_type=type_hints["actions"])
170
236
  check_type(argname="argument administration", value=administration, expected_type=type_hints["administration"])
237
+ check_type(argname="argument attestations", value=attestations, expected_type=type_hints["attestations"])
171
238
  check_type(argname="argument checks", value=checks, expected_type=type_hints["checks"])
239
+ check_type(argname="argument codespaces", value=codespaces, expected_type=type_hints["codespaces"])
172
240
  check_type(argname="argument contents", value=contents, expected_type=type_hints["contents"])
241
+ check_type(argname="argument dependabot_secrets", value=dependabot_secrets, expected_type=type_hints["dependabot_secrets"])
173
242
  check_type(argname="argument deployments", value=deployments, expected_type=type_hints["deployments"])
243
+ check_type(argname="argument email_addresses", value=email_addresses, expected_type=type_hints["email_addresses"])
174
244
  check_type(argname="argument environments", value=environments, expected_type=type_hints["environments"])
245
+ check_type(argname="argument followers", value=followers, expected_type=type_hints["followers"])
246
+ check_type(argname="argument git_ssh_keys", value=git_ssh_keys, expected_type=type_hints["git_ssh_keys"])
247
+ check_type(argname="argument gpg_keys", value=gpg_keys, expected_type=type_hints["gpg_keys"])
248
+ check_type(argname="argument interaction_limits", value=interaction_limits, expected_type=type_hints["interaction_limits"])
175
249
  check_type(argname="argument issues", value=issues, expected_type=type_hints["issues"])
176
250
  check_type(argname="argument members", value=members, expected_type=type_hints["members"])
177
251
  check_type(argname="argument metadata", value=metadata, expected_type=type_hints["metadata"])
178
252
  check_type(argname="argument organization_administration", value=organization_administration, expected_type=type_hints["organization_administration"])
179
253
  check_type(argname="argument organization_announcement_banners", value=organization_announcement_banners, expected_type=type_hints["organization_announcement_banners"])
254
+ check_type(argname="argument organization_copilot_seat_management", value=organization_copilot_seat_management, expected_type=type_hints["organization_copilot_seat_management"])
255
+ check_type(argname="argument organization_custom_org_roles", value=organization_custom_org_roles, expected_type=type_hints["organization_custom_org_roles"])
256
+ check_type(argname="argument organization_custom_properties", value=organization_custom_properties, expected_type=type_hints["organization_custom_properties"])
180
257
  check_type(argname="argument organization_custom_roles", value=organization_custom_roles, expected_type=type_hints["organization_custom_roles"])
258
+ check_type(argname="argument organization_events", value=organization_events, expected_type=type_hints["organization_events"])
181
259
  check_type(argname="argument organization_hooks", value=organization_hooks, expected_type=type_hints["organization_hooks"])
182
260
  check_type(argname="argument organization_packages", value=organization_packages, expected_type=type_hints["organization_packages"])
261
+ check_type(argname="argument organization_personal_access_token_requests", value=organization_personal_access_token_requests, expected_type=type_hints["organization_personal_access_token_requests"])
262
+ check_type(argname="argument organization_personal_access_tokens", value=organization_personal_access_tokens, expected_type=type_hints["organization_personal_access_tokens"])
183
263
  check_type(argname="argument organization_plan", value=organization_plan, expected_type=type_hints["organization_plan"])
184
264
  check_type(argname="argument organization_projects", value=organization_projects, expected_type=type_hints["organization_projects"])
185
265
  check_type(argname="argument organization_secrets", value=organization_secrets, expected_type=type_hints["organization_secrets"])
@@ -187,14 +267,17 @@ class AppPermissions:
187
267
  check_type(argname="argument orgnaization_user_blocking", value=orgnaization_user_blocking, expected_type=type_hints["orgnaization_user_blocking"])
188
268
  check_type(argname="argument packages", value=packages, expected_type=type_hints["packages"])
189
269
  check_type(argname="argument pages", value=pages, expected_type=type_hints["pages"])
270
+ check_type(argname="argument profile", value=profile, expected_type=type_hints["profile"])
190
271
  check_type(argname="argument pull_requests", value=pull_requests, expected_type=type_hints["pull_requests"])
191
272
  check_type(argname="argument repository_announcement_banners", value=repository_announcement_banners, expected_type=type_hints["repository_announcement_banners"])
273
+ check_type(argname="argument repository_custom_properties", value=repository_custom_properties, expected_type=type_hints["repository_custom_properties"])
192
274
  check_type(argname="argument repository_hooks", value=repository_hooks, expected_type=type_hints["repository_hooks"])
193
- check_type(argname="argument repository_project", value=repository_project, expected_type=type_hints["repository_project"])
275
+ check_type(argname="argument repository_projects", value=repository_projects, expected_type=type_hints["repository_projects"])
194
276
  check_type(argname="argument secrets", value=secrets, expected_type=type_hints["secrets"])
195
277
  check_type(argname="argument secret_scanning_alerts", value=secret_scanning_alerts, expected_type=type_hints["secret_scanning_alerts"])
196
278
  check_type(argname="argument security_events", value=security_events, expected_type=type_hints["security_events"])
197
279
  check_type(argname="argument single_file", value=single_file, expected_type=type_hints["single_file"])
280
+ check_type(argname="argument starring", value=starring, expected_type=type_hints["starring"])
198
281
  check_type(argname="argument statuses", value=statuses, expected_type=type_hints["statuses"])
199
282
  check_type(argname="argument team_discussions", value=team_discussions, expected_type=type_hints["team_discussions"])
200
283
  check_type(argname="argument vulnerability_alerts", value=vulnerability_alerts, expected_type=type_hints["vulnerability_alerts"])
@@ -204,14 +287,30 @@ class AppPermissions:
204
287
  self._values["actions"] = actions
205
288
  if administration is not None:
206
289
  self._values["administration"] = administration
290
+ if attestations is not None:
291
+ self._values["attestations"] = attestations
207
292
  if checks is not None:
208
293
  self._values["checks"] = checks
294
+ if codespaces is not None:
295
+ self._values["codespaces"] = codespaces
209
296
  if contents is not None:
210
297
  self._values["contents"] = contents
298
+ if dependabot_secrets is not None:
299
+ self._values["dependabot_secrets"] = dependabot_secrets
211
300
  if deployments is not None:
212
301
  self._values["deployments"] = deployments
302
+ if email_addresses is not None:
303
+ self._values["email_addresses"] = email_addresses
213
304
  if environments is not None:
214
305
  self._values["environments"] = environments
306
+ if followers is not None:
307
+ self._values["followers"] = followers
308
+ if git_ssh_keys is not None:
309
+ self._values["git_ssh_keys"] = git_ssh_keys
310
+ if gpg_keys is not None:
311
+ self._values["gpg_keys"] = gpg_keys
312
+ if interaction_limits is not None:
313
+ self._values["interaction_limits"] = interaction_limits
215
314
  if issues is not None:
216
315
  self._values["issues"] = issues
217
316
  if members is not None:
@@ -222,12 +321,24 @@ class AppPermissions:
222
321
  self._values["organization_administration"] = organization_administration
223
322
  if organization_announcement_banners is not None:
224
323
  self._values["organization_announcement_banners"] = organization_announcement_banners
324
+ if organization_copilot_seat_management is not None:
325
+ self._values["organization_copilot_seat_management"] = organization_copilot_seat_management
326
+ if organization_custom_org_roles is not None:
327
+ self._values["organization_custom_org_roles"] = organization_custom_org_roles
328
+ if organization_custom_properties is not None:
329
+ self._values["organization_custom_properties"] = organization_custom_properties
225
330
  if organization_custom_roles is not None:
226
331
  self._values["organization_custom_roles"] = organization_custom_roles
332
+ if organization_events is not None:
333
+ self._values["organization_events"] = organization_events
227
334
  if organization_hooks is not None:
228
335
  self._values["organization_hooks"] = organization_hooks
229
336
  if organization_packages is not None:
230
337
  self._values["organization_packages"] = organization_packages
338
+ if organization_personal_access_token_requests is not None:
339
+ self._values["organization_personal_access_token_requests"] = organization_personal_access_token_requests
340
+ if organization_personal_access_tokens is not None:
341
+ self._values["organization_personal_access_tokens"] = organization_personal_access_tokens
231
342
  if organization_plan is not None:
232
343
  self._values["organization_plan"] = organization_plan
233
344
  if organization_projects is not None:
@@ -242,14 +353,18 @@ class AppPermissions:
242
353
  self._values["packages"] = packages
243
354
  if pages is not None:
244
355
  self._values["pages"] = pages
356
+ if profile is not None:
357
+ self._values["profile"] = profile
245
358
  if pull_requests is not None:
246
359
  self._values["pull_requests"] = pull_requests
247
360
  if repository_announcement_banners is not None:
248
361
  self._values["repository_announcement_banners"] = repository_announcement_banners
362
+ if repository_custom_properties is not None:
363
+ self._values["repository_custom_properties"] = repository_custom_properties
249
364
  if repository_hooks is not None:
250
365
  self._values["repository_hooks"] = repository_hooks
251
- if repository_project is not None:
252
- self._values["repository_project"] = repository_project
366
+ if repository_projects is not None:
367
+ self._values["repository_projects"] = repository_projects
253
368
  if secrets is not None:
254
369
  self._values["secrets"] = secrets
255
370
  if secret_scanning_alerts is not None:
@@ -258,6 +373,8 @@ class AppPermissions:
258
373
  self._values["security_events"] = security_events
259
374
  if single_file is not None:
260
375
  self._values["single_file"] = single_file
376
+ if starring is not None:
377
+ self._values["starring"] = starring
261
378
  if statuses is not None:
262
379
  self._values["statuses"] = statuses
263
380
  if team_discussions is not None:
@@ -283,6 +400,14 @@ class AppPermissions:
283
400
  result = self._values.get("administration")
284
401
  return typing.cast(typing.Optional[AppPermission], result)
285
402
 
403
+ @builtins.property
404
+ def attestations(self) -> typing.Optional[AppPermission]:
405
+ '''
406
+ :stability: experimental
407
+ '''
408
+ result = self._values.get("attestations")
409
+ return typing.cast(typing.Optional[AppPermission], result)
410
+
286
411
  @builtins.property
287
412
  def checks(self) -> typing.Optional[AppPermission]:
288
413
  '''
@@ -291,6 +416,14 @@ class AppPermissions:
291
416
  result = self._values.get("checks")
292
417
  return typing.cast(typing.Optional[AppPermission], result)
293
418
 
419
+ @builtins.property
420
+ def codespaces(self) -> typing.Optional[AppPermission]:
421
+ '''
422
+ :stability: experimental
423
+ '''
424
+ result = self._values.get("codespaces")
425
+ return typing.cast(typing.Optional[AppPermission], result)
426
+
294
427
  @builtins.property
295
428
  def contents(self) -> typing.Optional[AppPermission]:
296
429
  '''
@@ -299,6 +432,14 @@ class AppPermissions:
299
432
  result = self._values.get("contents")
300
433
  return typing.cast(typing.Optional[AppPermission], result)
301
434
 
435
+ @builtins.property
436
+ def dependabot_secrets(self) -> typing.Optional[AppPermission]:
437
+ '''
438
+ :stability: experimental
439
+ '''
440
+ result = self._values.get("dependabot_secrets")
441
+ return typing.cast(typing.Optional[AppPermission], result)
442
+
302
443
  @builtins.property
303
444
  def deployments(self) -> typing.Optional[AppPermission]:
304
445
  '''
@@ -307,6 +448,14 @@ class AppPermissions:
307
448
  result = self._values.get("deployments")
308
449
  return typing.cast(typing.Optional[AppPermission], result)
309
450
 
451
+ @builtins.property
452
+ def email_addresses(self) -> typing.Optional[AppPermission]:
453
+ '''
454
+ :stability: experimental
455
+ '''
456
+ result = self._values.get("email_addresses")
457
+ return typing.cast(typing.Optional[AppPermission], result)
458
+
310
459
  @builtins.property
311
460
  def environments(self) -> typing.Optional[AppPermission]:
312
461
  '''
@@ -315,6 +464,38 @@ class AppPermissions:
315
464
  result = self._values.get("environments")
316
465
  return typing.cast(typing.Optional[AppPermission], result)
317
466
 
467
+ @builtins.property
468
+ def followers(self) -> typing.Optional[AppPermission]:
469
+ '''
470
+ :stability: experimental
471
+ '''
472
+ result = self._values.get("followers")
473
+ return typing.cast(typing.Optional[AppPermission], result)
474
+
475
+ @builtins.property
476
+ def git_ssh_keys(self) -> typing.Optional[AppPermission]:
477
+ '''
478
+ :stability: experimental
479
+ '''
480
+ result = self._values.get("git_ssh_keys")
481
+ return typing.cast(typing.Optional[AppPermission], result)
482
+
483
+ @builtins.property
484
+ def gpg_keys(self) -> typing.Optional[AppPermission]:
485
+ '''
486
+ :stability: experimental
487
+ '''
488
+ result = self._values.get("gpg_keys")
489
+ return typing.cast(typing.Optional[AppPermission], result)
490
+
491
+ @builtins.property
492
+ def interaction_limits(self) -> typing.Optional[AppPermission]:
493
+ '''
494
+ :stability: experimental
495
+ '''
496
+ result = self._values.get("interaction_limits")
497
+ return typing.cast(typing.Optional[AppPermission], result)
498
+
318
499
  @builtins.property
319
500
  def issues(self) -> typing.Optional[AppPermission]:
320
501
  '''
@@ -355,6 +536,30 @@ class AppPermissions:
355
536
  result = self._values.get("organization_announcement_banners")
356
537
  return typing.cast(typing.Optional[AppPermission], result)
357
538
 
539
+ @builtins.property
540
+ def organization_copilot_seat_management(self) -> typing.Optional[AppPermission]:
541
+ '''
542
+ :stability: experimental
543
+ '''
544
+ result = self._values.get("organization_copilot_seat_management")
545
+ return typing.cast(typing.Optional[AppPermission], result)
546
+
547
+ @builtins.property
548
+ def organization_custom_org_roles(self) -> typing.Optional[AppPermission]:
549
+ '''
550
+ :stability: experimental
551
+ '''
552
+ result = self._values.get("organization_custom_org_roles")
553
+ return typing.cast(typing.Optional[AppPermission], result)
554
+
555
+ @builtins.property
556
+ def organization_custom_properties(self) -> typing.Optional[AppPermission]:
557
+ '''
558
+ :stability: experimental
559
+ '''
560
+ result = self._values.get("organization_custom_properties")
561
+ return typing.cast(typing.Optional[AppPermission], result)
562
+
358
563
  @builtins.property
359
564
  def organization_custom_roles(self) -> typing.Optional[AppPermission]:
360
565
  '''
@@ -363,6 +568,14 @@ class AppPermissions:
363
568
  result = self._values.get("organization_custom_roles")
364
569
  return typing.cast(typing.Optional[AppPermission], result)
365
570
 
571
+ @builtins.property
572
+ def organization_events(self) -> typing.Optional[AppPermission]:
573
+ '''
574
+ :stability: experimental
575
+ '''
576
+ result = self._values.get("organization_events")
577
+ return typing.cast(typing.Optional[AppPermission], result)
578
+
366
579
  @builtins.property
367
580
  def organization_hooks(self) -> typing.Optional[AppPermission]:
368
581
  '''
@@ -379,6 +592,24 @@ class AppPermissions:
379
592
  result = self._values.get("organization_packages")
380
593
  return typing.cast(typing.Optional[AppPermission], result)
381
594
 
595
+ @builtins.property
596
+ def organization_personal_access_token_requests(
597
+ self,
598
+ ) -> typing.Optional[AppPermission]:
599
+ '''
600
+ :stability: experimental
601
+ '''
602
+ result = self._values.get("organization_personal_access_token_requests")
603
+ return typing.cast(typing.Optional[AppPermission], result)
604
+
605
+ @builtins.property
606
+ def organization_personal_access_tokens(self) -> typing.Optional[AppPermission]:
607
+ '''
608
+ :stability: experimental
609
+ '''
610
+ result = self._values.get("organization_personal_access_tokens")
611
+ return typing.cast(typing.Optional[AppPermission], result)
612
+
382
613
  @builtins.property
383
614
  def organization_plan(self) -> typing.Optional[AppPermission]:
384
615
  '''
@@ -435,6 +666,14 @@ class AppPermissions:
435
666
  result = self._values.get("pages")
436
667
  return typing.cast(typing.Optional[AppPermission], result)
437
668
 
669
+ @builtins.property
670
+ def profile(self) -> typing.Optional[AppPermission]:
671
+ '''
672
+ :stability: experimental
673
+ '''
674
+ result = self._values.get("profile")
675
+ return typing.cast(typing.Optional[AppPermission], result)
676
+
438
677
  @builtins.property
439
678
  def pull_requests(self) -> typing.Optional[AppPermission]:
440
679
  '''
@@ -446,11 +685,21 @@ class AppPermissions:
446
685
  @builtins.property
447
686
  def repository_announcement_banners(self) -> typing.Optional[AppPermission]:
448
687
  '''
449
- :stability: experimental
688
+ :deprecated: removed by GitHub
689
+
690
+ :stability: deprecated
450
691
  '''
451
692
  result = self._values.get("repository_announcement_banners")
452
693
  return typing.cast(typing.Optional[AppPermission], result)
453
694
 
695
+ @builtins.property
696
+ def repository_custom_properties(self) -> typing.Optional[AppPermission]:
697
+ '''
698
+ :stability: experimental
699
+ '''
700
+ result = self._values.get("repository_custom_properties")
701
+ return typing.cast(typing.Optional[AppPermission], result)
702
+
454
703
  @builtins.property
455
704
  def repository_hooks(self) -> typing.Optional[AppPermission]:
456
705
  '''
@@ -460,11 +709,11 @@ class AppPermissions:
460
709
  return typing.cast(typing.Optional[AppPermission], result)
461
710
 
462
711
  @builtins.property
463
- def repository_project(self) -> typing.Optional[AppPermission]:
712
+ def repository_projects(self) -> typing.Optional[AppPermission]:
464
713
  '''
465
714
  :stability: experimental
466
715
  '''
467
- result = self._values.get("repository_project")
716
+ result = self._values.get("repository_projects")
468
717
  return typing.cast(typing.Optional[AppPermission], result)
469
718
 
470
719
  @builtins.property
@@ -499,6 +748,14 @@ class AppPermissions:
499
748
  result = self._values.get("single_file")
500
749
  return typing.cast(typing.Optional[AppPermission], result)
501
750
 
751
+ @builtins.property
752
+ def starring(self) -> typing.Optional[AppPermission]:
753
+ '''
754
+ :stability: experimental
755
+ '''
756
+ result = self._values.get("starring")
757
+ return typing.cast(typing.Optional[AppPermission], result)
758
+
502
759
  @builtins.property
503
760
  def statuses(self) -> typing.Optional[AppPermission]:
504
761
  '''
@@ -2042,7 +2299,7 @@ class JobMatrix:
2042
2299
  def __init__(
2043
2300
  self,
2044
2301
  *,
2045
- domain: typing.Optional[typing.Mapping[builtins.str, typing.Sequence[typing.Union[builtins.str, jsii.Number, builtins.bool]]]] = None,
2302
+ domain: typing.Optional[typing.Mapping[builtins.str, typing.Union[builtins.str, typing.Sequence[typing.Union[builtins.str, jsii.Number, builtins.bool]]]]] = None,
2046
2303
  exclude: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Union[builtins.str, jsii.Number, builtins.bool]]]] = None,
2047
2304
  include: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Union[builtins.str, jsii.Number, builtins.bool]]]] = None,
2048
2305
  ) -> None:
@@ -2070,7 +2327,7 @@ class JobMatrix:
2070
2327
  @builtins.property
2071
2328
  def domain(
2072
2329
  self,
2073
- ) -> typing.Optional[typing.Mapping[builtins.str, typing.List[typing.Union[builtins.str, jsii.Number, builtins.bool]]]]:
2330
+ ) -> typing.Optional[typing.Mapping[builtins.str, typing.Union[builtins.str, typing.List[typing.Union[builtins.str, jsii.Number, builtins.bool]]]]]:
2074
2331
  '''(experimental) Each option you define in the matrix has a key and value.
2075
2332
 
2076
2333
  The keys you
@@ -2083,7 +2340,7 @@ class JobMatrix:
2083
2340
  :stability: experimental
2084
2341
  '''
2085
2342
  result = self._values.get("domain")
2086
- return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.List[typing.Union[builtins.str, jsii.Number, builtins.bool]]]], result)
2343
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Union[builtins.str, typing.List[typing.Union[builtins.str, jsii.Number, builtins.bool]]]]], result)
2087
2344
 
2088
2345
  @builtins.property
2089
2346
  def exclude(
@@ -2155,12 +2412,14 @@ class JobPermission(enum.Enum):
2155
2412
  jsii_struct_bases=[],
2156
2413
  name_mapping={
2157
2414
  "actions": "actions",
2415
+ "attestations": "attestations",
2158
2416
  "checks": "checks",
2159
2417
  "contents": "contents",
2160
2418
  "deployments": "deployments",
2161
2419
  "discussions": "discussions",
2162
2420
  "id_token": "idToken",
2163
2421
  "issues": "issues",
2422
+ "models": "models",
2164
2423
  "packages": "packages",
2165
2424
  "pages": "pages",
2166
2425
  "pull_requests": "pullRequests",
@@ -2174,12 +2433,14 @@ class JobPermissions:
2174
2433
  self,
2175
2434
  *,
2176
2435
  actions: typing.Optional[JobPermission] = None,
2436
+ attestations: typing.Optional[JobPermission] = None,
2177
2437
  checks: typing.Optional[JobPermission] = None,
2178
2438
  contents: typing.Optional[JobPermission] = None,
2179
2439
  deployments: typing.Optional[JobPermission] = None,
2180
2440
  discussions: typing.Optional[JobPermission] = None,
2181
2441
  id_token: typing.Optional[JobPermission] = None,
2182
2442
  issues: typing.Optional[JobPermission] = None,
2443
+ models: typing.Optional[JobPermission] = None,
2183
2444
  packages: typing.Optional[JobPermission] = None,
2184
2445
  pages: typing.Optional[JobPermission] = None,
2185
2446
  pull_requests: typing.Optional[JobPermission] = None,
@@ -2195,12 +2456,14 @@ class JobPermissions:
2195
2456
  when none is specified.
2196
2457
 
2197
2458
  :param actions:
2459
+ :param attestations:
2198
2460
  :param checks:
2199
2461
  :param contents:
2200
2462
  :param deployments:
2201
2463
  :param discussions:
2202
2464
  :param id_token:
2203
2465
  :param issues:
2466
+ :param models:
2204
2467
  :param packages:
2205
2468
  :param pages:
2206
2469
  :param pull_requests:
@@ -2208,17 +2471,20 @@ class JobPermissions:
2208
2471
  :param security_events:
2209
2472
  :param statuses:
2210
2473
 
2474
+ :see: https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/controlling-permissions-for-github_token#defining-access-for-the-github_token-permissions
2211
2475
  :stability: experimental
2212
2476
  '''
2213
2477
  if __debug__:
2214
2478
  type_hints = typing.get_type_hints(_typecheckingstub__5f9b6a3fbdc58e402a1aaac55747b5faedde783c61dcd4c97c759406d925e9a5)
2215
2479
  check_type(argname="argument actions", value=actions, expected_type=type_hints["actions"])
2480
+ check_type(argname="argument attestations", value=attestations, expected_type=type_hints["attestations"])
2216
2481
  check_type(argname="argument checks", value=checks, expected_type=type_hints["checks"])
2217
2482
  check_type(argname="argument contents", value=contents, expected_type=type_hints["contents"])
2218
2483
  check_type(argname="argument deployments", value=deployments, expected_type=type_hints["deployments"])
2219
2484
  check_type(argname="argument discussions", value=discussions, expected_type=type_hints["discussions"])
2220
2485
  check_type(argname="argument id_token", value=id_token, expected_type=type_hints["id_token"])
2221
2486
  check_type(argname="argument issues", value=issues, expected_type=type_hints["issues"])
2487
+ check_type(argname="argument models", value=models, expected_type=type_hints["models"])
2222
2488
  check_type(argname="argument packages", value=packages, expected_type=type_hints["packages"])
2223
2489
  check_type(argname="argument pages", value=pages, expected_type=type_hints["pages"])
2224
2490
  check_type(argname="argument pull_requests", value=pull_requests, expected_type=type_hints["pull_requests"])
@@ -2228,6 +2494,8 @@ class JobPermissions:
2228
2494
  self._values: typing.Dict[builtins.str, typing.Any] = {}
2229
2495
  if actions is not None:
2230
2496
  self._values["actions"] = actions
2497
+ if attestations is not None:
2498
+ self._values["attestations"] = attestations
2231
2499
  if checks is not None:
2232
2500
  self._values["checks"] = checks
2233
2501
  if contents is not None:
@@ -2240,6 +2508,8 @@ class JobPermissions:
2240
2508
  self._values["id_token"] = id_token
2241
2509
  if issues is not None:
2242
2510
  self._values["issues"] = issues
2511
+ if models is not None:
2512
+ self._values["models"] = models
2243
2513
  if packages is not None:
2244
2514
  self._values["packages"] = packages
2245
2515
  if pages is not None:
@@ -2261,6 +2531,14 @@ class JobPermissions:
2261
2531
  result = self._values.get("actions")
2262
2532
  return typing.cast(typing.Optional[JobPermission], result)
2263
2533
 
2534
+ @builtins.property
2535
+ def attestations(self) -> typing.Optional[JobPermission]:
2536
+ '''
2537
+ :stability: experimental
2538
+ '''
2539
+ result = self._values.get("attestations")
2540
+ return typing.cast(typing.Optional[JobPermission], result)
2541
+
2264
2542
  @builtins.property
2265
2543
  def checks(self) -> typing.Optional[JobPermission]:
2266
2544
  '''
@@ -2309,6 +2587,14 @@ class JobPermissions:
2309
2587
  result = self._values.get("issues")
2310
2588
  return typing.cast(typing.Optional[JobPermission], result)
2311
2589
 
2590
+ @builtins.property
2591
+ def models(self) -> typing.Optional[JobPermission]:
2592
+ '''
2593
+ :stability: experimental
2594
+ '''
2595
+ result = self._values.get("models")
2596
+ return typing.cast(typing.Optional[JobPermission], result)
2597
+
2312
2598
  @builtins.property
2313
2599
  def packages(self) -> typing.Optional[JobPermission]:
2314
2600
  '''
@@ -2336,7 +2622,9 @@ class JobPermissions:
2336
2622
  @builtins.property
2337
2623
  def repository_projects(self) -> typing.Optional[JobPermission]:
2338
2624
  '''
2339
- :stability: experimental
2625
+ :deprecated: removed by GitHub
2626
+
2627
+ :stability: deprecated
2340
2628
  '''
2341
2629
  result = self._values.get("repository_projects")
2342
2630
  return typing.cast(typing.Optional[JobPermission], result)
@@ -3265,6 +3553,7 @@ class StatusOptions:
3265
3553
  "id": "id",
3266
3554
  "if_": "if",
3267
3555
  "name": "name",
3556
+ "shell": "shell",
3268
3557
  "working_directory": "workingDirectory",
3269
3558
  },
3270
3559
  )
@@ -3276,6 +3565,7 @@ class StepConfiguration:
3276
3565
  id: typing.Optional[builtins.str] = None,
3277
3566
  if_: typing.Optional[builtins.str] = None,
3278
3567
  name: typing.Optional[builtins.str] = None,
3568
+ shell: typing.Optional[builtins.str] = None,
3279
3569
  working_directory: typing.Optional[builtins.str] = None,
3280
3570
  ) -> None:
3281
3571
  '''(experimental) Fields that describe the How, Why, When, and Who of a Step.
@@ -3288,6 +3578,7 @@ class StepConfiguration:
3288
3578
  :param id: (experimental) A unique identifier for the step. You can use the id to reference the step in contexts.
3289
3579
  :param if_: (experimental) You can use the if conditional to prevent a job from running unless a condition is met. You can use any supported context and expression to create a conditional.
3290
3580
  :param name: (experimental) A name for your step to display on GitHub.
3581
+ :param shell: (experimental) Overrides the default shell settings in the runner's operating system and the job's default. Refer to GitHub documentation for allowed values.
3291
3582
  :param working_directory: (experimental) Specifies a working directory for a step. Overrides a job's working directory.
3292
3583
 
3293
3584
  :stability: experimental
@@ -3298,6 +3589,7 @@ class StepConfiguration:
3298
3589
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3299
3590
  check_type(argname="argument if_", value=if_, expected_type=type_hints["if_"])
3300
3591
  check_type(argname="argument name", value=name, expected_type=type_hints["name"])
3592
+ check_type(argname="argument shell", value=shell, expected_type=type_hints["shell"])
3301
3593
  check_type(argname="argument working_directory", value=working_directory, expected_type=type_hints["working_directory"])
3302
3594
  self._values: typing.Dict[builtins.str, typing.Any] = {}
3303
3595
  if env is not None:
@@ -3308,6 +3600,8 @@ class StepConfiguration:
3308
3600
  self._values["if_"] = if_
3309
3601
  if name is not None:
3310
3602
  self._values["name"] = name
3603
+ if shell is not None:
3604
+ self._values["shell"] = shell
3311
3605
  if working_directory is not None:
3312
3606
  self._values["working_directory"] = working_directory
3313
3607
 
@@ -3355,6 +3649,18 @@ class StepConfiguration:
3355
3649
  result = self._values.get("name")
3356
3650
  return typing.cast(typing.Optional[builtins.str], result)
3357
3651
 
3652
+ @builtins.property
3653
+ def shell(self) -> typing.Optional[builtins.str]:
3654
+ '''(experimental) Overrides the default shell settings in the runner's operating system and the job's default.
3655
+
3656
+ Refer to GitHub documentation for allowed values.
3657
+
3658
+ :see: https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell
3659
+ :stability: experimental
3660
+ '''
3661
+ result = self._values.get("shell")
3662
+ return typing.cast(typing.Optional[builtins.str], result)
3663
+
3358
3664
  @builtins.property
3359
3665
  def working_directory(self) -> typing.Optional[builtins.str]:
3360
3666
  '''(experimental) Specifies a working directory for a step.
@@ -4395,6 +4701,7 @@ class WorkflowRunOptions:
4395
4701
  "id": "id",
4396
4702
  "if_": "if",
4397
4703
  "name": "name",
4704
+ "shell": "shell",
4398
4705
  "working_directory": "workingDirectory",
4399
4706
  "continue_on_error": "continueOnError",
4400
4707
  "timeout_minutes": "timeoutMinutes",
@@ -4408,6 +4715,7 @@ class JobStepConfiguration(StepConfiguration):
4408
4715
  id: typing.Optional[builtins.str] = None,
4409
4716
  if_: typing.Optional[builtins.str] = None,
4410
4717
  name: typing.Optional[builtins.str] = None,
4718
+ shell: typing.Optional[builtins.str] = None,
4411
4719
  working_directory: typing.Optional[builtins.str] = None,
4412
4720
  continue_on_error: typing.Optional[builtins.bool] = None,
4413
4721
  timeout_minutes: typing.Optional[jsii.Number] = None,
@@ -4418,6 +4726,7 @@ class JobStepConfiguration(StepConfiguration):
4418
4726
  :param id: (experimental) A unique identifier for the step. You can use the id to reference the step in contexts.
4419
4727
  :param if_: (experimental) You can use the if conditional to prevent a job from running unless a condition is met. You can use any supported context and expression to create a conditional.
4420
4728
  :param name: (experimental) A name for your step to display on GitHub.
4729
+ :param shell: (experimental) Overrides the default shell settings in the runner's operating system and the job's default. Refer to GitHub documentation for allowed values.
4421
4730
  :param working_directory: (experimental) Specifies a working directory for a step. Overrides a job's working directory.
4422
4731
  :param continue_on_error: (experimental) Prevents a job from failing when a step fails. Set to true to allow a job to pass when this step fails.
4423
4732
  :param timeout_minutes: (experimental) The maximum number of minutes to run the step before killing the process.
@@ -4430,6 +4739,7 @@ class JobStepConfiguration(StepConfiguration):
4430
4739
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
4431
4740
  check_type(argname="argument if_", value=if_, expected_type=type_hints["if_"])
4432
4741
  check_type(argname="argument name", value=name, expected_type=type_hints["name"])
4742
+ check_type(argname="argument shell", value=shell, expected_type=type_hints["shell"])
4433
4743
  check_type(argname="argument working_directory", value=working_directory, expected_type=type_hints["working_directory"])
4434
4744
  check_type(argname="argument continue_on_error", value=continue_on_error, expected_type=type_hints["continue_on_error"])
4435
4745
  check_type(argname="argument timeout_minutes", value=timeout_minutes, expected_type=type_hints["timeout_minutes"])
@@ -4442,6 +4752,8 @@ class JobStepConfiguration(StepConfiguration):
4442
4752
  self._values["if_"] = if_
4443
4753
  if name is not None:
4444
4754
  self._values["name"] = name
4755
+ if shell is not None:
4756
+ self._values["shell"] = shell
4445
4757
  if working_directory is not None:
4446
4758
  self._values["working_directory"] = working_directory
4447
4759
  if continue_on_error is not None:
@@ -4493,6 +4805,18 @@ class JobStepConfiguration(StepConfiguration):
4493
4805
  result = self._values.get("name")
4494
4806
  return typing.cast(typing.Optional[builtins.str], result)
4495
4807
 
4808
+ @builtins.property
4809
+ def shell(self) -> typing.Optional[builtins.str]:
4810
+ '''(experimental) Overrides the default shell settings in the runner's operating system and the job's default.
4811
+
4812
+ Refer to GitHub documentation for allowed values.
4813
+
4814
+ :see: https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell
4815
+ :stability: experimental
4816
+ '''
4817
+ result = self._values.get("shell")
4818
+ return typing.cast(typing.Optional[builtins.str], result)
4819
+
4496
4820
  @builtins.property
4497
4821
  def working_directory(self) -> typing.Optional[builtins.str]:
4498
4822
  '''(experimental) Specifies a working directory for a step.
@@ -4763,6 +5087,7 @@ class PullRequestTargetOptions(PushOptions):
4763
5087
  "id": "id",
4764
5088
  "if_": "if",
4765
5089
  "name": "name",
5090
+ "shell": "shell",
4766
5091
  "working_directory": "workingDirectory",
4767
5092
  "run": "run",
4768
5093
  "uses": "uses",
@@ -4777,6 +5102,7 @@ class Step(StepConfiguration):
4777
5102
  id: typing.Optional[builtins.str] = None,
4778
5103
  if_: typing.Optional[builtins.str] = None,
4779
5104
  name: typing.Optional[builtins.str] = None,
5105
+ shell: typing.Optional[builtins.str] = None,
4780
5106
  working_directory: typing.Optional[builtins.str] = None,
4781
5107
  run: typing.Optional[builtins.str] = None,
4782
5108
  uses: typing.Optional[builtins.str] = None,
@@ -4793,6 +5119,7 @@ class Step(StepConfiguration):
4793
5119
  :param id: (experimental) A unique identifier for the step. You can use the id to reference the step in contexts.
4794
5120
  :param if_: (experimental) You can use the if conditional to prevent a job from running unless a condition is met. You can use any supported context and expression to create a conditional.
4795
5121
  :param name: (experimental) A name for your step to display on GitHub.
5122
+ :param shell: (experimental) Overrides the default shell settings in the runner's operating system and the job's default. Refer to GitHub documentation for allowed values.
4796
5123
  :param working_directory: (experimental) Specifies a working directory for a step. Overrides a job's working directory.
4797
5124
  :param run: (experimental) Runs command-line programs using the operating system's shell. If you do not provide a name, the step name will default to the text specified in the run command.
4798
5125
  :param uses: (experimental) Selects an action to run as part of a step in your job. An action is a reusable unit of code. You can use an action defined in the same repository as the workflow, a public repository, or in a published Docker container image.
@@ -4807,6 +5134,7 @@ class Step(StepConfiguration):
4807
5134
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
4808
5135
  check_type(argname="argument if_", value=if_, expected_type=type_hints["if_"])
4809
5136
  check_type(argname="argument name", value=name, expected_type=type_hints["name"])
5137
+ check_type(argname="argument shell", value=shell, expected_type=type_hints["shell"])
4810
5138
  check_type(argname="argument working_directory", value=working_directory, expected_type=type_hints["working_directory"])
4811
5139
  check_type(argname="argument run", value=run, expected_type=type_hints["run"])
4812
5140
  check_type(argname="argument uses", value=uses, expected_type=type_hints["uses"])
@@ -4820,6 +5148,8 @@ class Step(StepConfiguration):
4820
5148
  self._values["if_"] = if_
4821
5149
  if name is not None:
4822
5150
  self._values["name"] = name
5151
+ if shell is not None:
5152
+ self._values["shell"] = shell
4823
5153
  if working_directory is not None:
4824
5154
  self._values["working_directory"] = working_directory
4825
5155
  if run is not None:
@@ -4873,6 +5203,18 @@ class Step(StepConfiguration):
4873
5203
  result = self._values.get("name")
4874
5204
  return typing.cast(typing.Optional[builtins.str], result)
4875
5205
 
5206
+ @builtins.property
5207
+ def shell(self) -> typing.Optional[builtins.str]:
5208
+ '''(experimental) Overrides the default shell settings in the runner's operating system and the job's default.
5209
+
5210
+ Refer to GitHub documentation for allowed values.
5211
+
5212
+ :see: https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell
5213
+ :stability: experimental
5214
+ '''
5215
+ result = self._values.get("shell")
5216
+ return typing.cast(typing.Optional[builtins.str], result)
5217
+
4876
5218
  @builtins.property
4877
5219
  def working_directory(self) -> typing.Optional[builtins.str]:
4878
5220
  '''(experimental) Specifies a working directory for a step.
@@ -4944,6 +5286,7 @@ class Step(StepConfiguration):
4944
5286
  "id": "id",
4945
5287
  "if_": "if",
4946
5288
  "name": "name",
5289
+ "shell": "shell",
4947
5290
  "working_directory": "workingDirectory",
4948
5291
  "run": "run",
4949
5292
  "uses": "uses",
@@ -4960,6 +5303,7 @@ class JobStep(Step, JobStepConfiguration):
4960
5303
  id: typing.Optional[builtins.str] = None,
4961
5304
  if_: typing.Optional[builtins.str] = None,
4962
5305
  name: typing.Optional[builtins.str] = None,
5306
+ shell: typing.Optional[builtins.str] = None,
4963
5307
  working_directory: typing.Optional[builtins.str] = None,
4964
5308
  run: typing.Optional[builtins.str] = None,
4965
5309
  uses: typing.Optional[builtins.str] = None,
@@ -4973,6 +5317,7 @@ class JobStep(Step, JobStepConfiguration):
4973
5317
  :param id: (experimental) A unique identifier for the step. You can use the id to reference the step in contexts.
4974
5318
  :param if_: (experimental) You can use the if conditional to prevent a job from running unless a condition is met. You can use any supported context and expression to create a conditional.
4975
5319
  :param name: (experimental) A name for your step to display on GitHub.
5320
+ :param shell: (experimental) Overrides the default shell settings in the runner's operating system and the job's default. Refer to GitHub documentation for allowed values.
4976
5321
  :param working_directory: (experimental) Specifies a working directory for a step. Overrides a job's working directory.
4977
5322
  :param run: (experimental) Runs command-line programs using the operating system's shell. If you do not provide a name, the step name will default to the text specified in the run command.
4978
5323
  :param uses: (experimental) Selects an action to run as part of a step in your job. An action is a reusable unit of code. You can use an action defined in the same repository as the workflow, a public repository, or in a published Docker container image.
@@ -4989,6 +5334,7 @@ class JobStep(Step, JobStepConfiguration):
4989
5334
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
4990
5335
  check_type(argname="argument if_", value=if_, expected_type=type_hints["if_"])
4991
5336
  check_type(argname="argument name", value=name, expected_type=type_hints["name"])
5337
+ check_type(argname="argument shell", value=shell, expected_type=type_hints["shell"])
4992
5338
  check_type(argname="argument working_directory", value=working_directory, expected_type=type_hints["working_directory"])
4993
5339
  check_type(argname="argument run", value=run, expected_type=type_hints["run"])
4994
5340
  check_type(argname="argument uses", value=uses, expected_type=type_hints["uses"])
@@ -5004,6 +5350,8 @@ class JobStep(Step, JobStepConfiguration):
5004
5350
  self._values["if_"] = if_
5005
5351
  if name is not None:
5006
5352
  self._values["name"] = name
5353
+ if shell is not None:
5354
+ self._values["shell"] = shell
5007
5355
  if working_directory is not None:
5008
5356
  self._values["working_directory"] = working_directory
5009
5357
  if run is not None:
@@ -5061,6 +5409,18 @@ class JobStep(Step, JobStepConfiguration):
5061
5409
  result = self._values.get("name")
5062
5410
  return typing.cast(typing.Optional[builtins.str], result)
5063
5411
 
5412
+ @builtins.property
5413
+ def shell(self) -> typing.Optional[builtins.str]:
5414
+ '''(experimental) Overrides the default shell settings in the runner's operating system and the job's default.
5415
+
5416
+ Refer to GitHub documentation for allowed values.
5417
+
5418
+ :see: https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell
5419
+ :stability: experimental
5420
+ '''
5421
+ result = self._values.get("shell")
5422
+ return typing.cast(typing.Optional[builtins.str], result)
5423
+
5064
5424
  @builtins.property
5065
5425
  def working_directory(self) -> typing.Optional[builtins.str]:
5066
5426
  '''(experimental) Specifies a working directory for a step.
@@ -5210,18 +5570,32 @@ def _typecheckingstub__6e0085e134a87f8de8cb54bc56e329333881c3520710c833f5ed76097
5210
5570
  *,
5211
5571
  actions: typing.Optional[AppPermission] = None,
5212
5572
  administration: typing.Optional[AppPermission] = None,
5573
+ attestations: typing.Optional[AppPermission] = None,
5213
5574
  checks: typing.Optional[AppPermission] = None,
5575
+ codespaces: typing.Optional[AppPermission] = None,
5214
5576
  contents: typing.Optional[AppPermission] = None,
5577
+ dependabot_secrets: typing.Optional[AppPermission] = None,
5215
5578
  deployments: typing.Optional[AppPermission] = None,
5579
+ email_addresses: typing.Optional[AppPermission] = None,
5216
5580
  environments: typing.Optional[AppPermission] = None,
5581
+ followers: typing.Optional[AppPermission] = None,
5582
+ git_ssh_keys: typing.Optional[AppPermission] = None,
5583
+ gpg_keys: typing.Optional[AppPermission] = None,
5584
+ interaction_limits: typing.Optional[AppPermission] = None,
5217
5585
  issues: typing.Optional[AppPermission] = None,
5218
5586
  members: typing.Optional[AppPermission] = None,
5219
5587
  metadata: typing.Optional[AppPermission] = None,
5220
5588
  organization_administration: typing.Optional[AppPermission] = None,
5221
5589
  organization_announcement_banners: typing.Optional[AppPermission] = None,
5590
+ organization_copilot_seat_management: typing.Optional[AppPermission] = None,
5591
+ organization_custom_org_roles: typing.Optional[AppPermission] = None,
5592
+ organization_custom_properties: typing.Optional[AppPermission] = None,
5222
5593
  organization_custom_roles: typing.Optional[AppPermission] = None,
5594
+ organization_events: typing.Optional[AppPermission] = None,
5223
5595
  organization_hooks: typing.Optional[AppPermission] = None,
5224
5596
  organization_packages: typing.Optional[AppPermission] = None,
5597
+ organization_personal_access_token_requests: typing.Optional[AppPermission] = None,
5598
+ organization_personal_access_tokens: typing.Optional[AppPermission] = None,
5225
5599
  organization_plan: typing.Optional[AppPermission] = None,
5226
5600
  organization_projects: typing.Optional[AppPermission] = None,
5227
5601
  organization_secrets: typing.Optional[AppPermission] = None,
@@ -5229,14 +5603,17 @@ def _typecheckingstub__6e0085e134a87f8de8cb54bc56e329333881c3520710c833f5ed76097
5229
5603
  orgnaization_user_blocking: typing.Optional[AppPermission] = None,
5230
5604
  packages: typing.Optional[AppPermission] = None,
5231
5605
  pages: typing.Optional[AppPermission] = None,
5606
+ profile: typing.Optional[AppPermission] = None,
5232
5607
  pull_requests: typing.Optional[AppPermission] = None,
5233
5608
  repository_announcement_banners: typing.Optional[AppPermission] = None,
5609
+ repository_custom_properties: typing.Optional[AppPermission] = None,
5234
5610
  repository_hooks: typing.Optional[AppPermission] = None,
5235
- repository_project: typing.Optional[AppPermission] = None,
5611
+ repository_projects: typing.Optional[AppPermission] = None,
5236
5612
  secrets: typing.Optional[AppPermission] = None,
5237
5613
  secret_scanning_alerts: typing.Optional[AppPermission] = None,
5238
5614
  security_events: typing.Optional[AppPermission] = None,
5239
5615
  single_file: typing.Optional[AppPermission] = None,
5616
+ starring: typing.Optional[AppPermission] = None,
5240
5617
  statuses: typing.Optional[AppPermission] = None,
5241
5618
  team_discussions: typing.Optional[AppPermission] = None,
5242
5619
  vulnerability_alerts: typing.Optional[AppPermission] = None,
@@ -5381,7 +5758,7 @@ def _typecheckingstub__4afc181ec4ce3844469de535090d57cb39b9f47cf28d0bdc1e7a95bf2
5381
5758
 
5382
5759
  def _typecheckingstub__27c1bb692367ba40c0c0307ec4a86916287ff1f39e99b1eeab7f30bb7886bbda(
5383
5760
  *,
5384
- domain: typing.Optional[typing.Mapping[builtins.str, typing.Sequence[typing.Union[builtins.str, jsii.Number, builtins.bool]]]] = None,
5761
+ domain: typing.Optional[typing.Mapping[builtins.str, typing.Union[builtins.str, typing.Sequence[typing.Union[builtins.str, jsii.Number, builtins.bool]]]]] = None,
5385
5762
  exclude: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Union[builtins.str, jsii.Number, builtins.bool]]]] = None,
5386
5763
  include: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Union[builtins.str, jsii.Number, builtins.bool]]]] = None,
5387
5764
  ) -> None:
@@ -5391,12 +5768,14 @@ def _typecheckingstub__27c1bb692367ba40c0c0307ec4a86916287ff1f39e99b1eeab7f30bb7
5391
5768
  def _typecheckingstub__5f9b6a3fbdc58e402a1aaac55747b5faedde783c61dcd4c97c759406d925e9a5(
5392
5769
  *,
5393
5770
  actions: typing.Optional[JobPermission] = None,
5771
+ attestations: typing.Optional[JobPermission] = None,
5394
5772
  checks: typing.Optional[JobPermission] = None,
5395
5773
  contents: typing.Optional[JobPermission] = None,
5396
5774
  deployments: typing.Optional[JobPermission] = None,
5397
5775
  discussions: typing.Optional[JobPermission] = None,
5398
5776
  id_token: typing.Optional[JobPermission] = None,
5399
5777
  issues: typing.Optional[JobPermission] = None,
5778
+ models: typing.Optional[JobPermission] = None,
5400
5779
  packages: typing.Optional[JobPermission] = None,
5401
5780
  pages: typing.Optional[JobPermission] = None,
5402
5781
  pull_requests: typing.Optional[JobPermission] = None,
@@ -5524,6 +5903,7 @@ def _typecheckingstub__044349b8d18055b991a5680dc1d218dc2901bc2369d30fa23e79229d8
5524
5903
  id: typing.Optional[builtins.str] = None,
5525
5904
  if_: typing.Optional[builtins.str] = None,
5526
5905
  name: typing.Optional[builtins.str] = None,
5906
+ shell: typing.Optional[builtins.str] = None,
5527
5907
  working_directory: typing.Optional[builtins.str] = None,
5528
5908
  ) -> None:
5529
5909
  """Type checking stubs"""
@@ -5610,6 +5990,7 @@ def _typecheckingstub__015947eea91a5bd0b89e515aeca63fc47bd80c9c63472b7c37f32a247
5610
5990
  id: typing.Optional[builtins.str] = None,
5611
5991
  if_: typing.Optional[builtins.str] = None,
5612
5992
  name: typing.Optional[builtins.str] = None,
5993
+ shell: typing.Optional[builtins.str] = None,
5613
5994
  working_directory: typing.Optional[builtins.str] = None,
5614
5995
  continue_on_error: typing.Optional[builtins.bool] = None,
5615
5996
  timeout_minutes: typing.Optional[jsii.Number] = None,
@@ -5643,6 +6024,7 @@ def _typecheckingstub__91711bdec7a542de93f053fdd93de2213c56069702113a10e2c71564c
5643
6024
  id: typing.Optional[builtins.str] = None,
5644
6025
  if_: typing.Optional[builtins.str] = None,
5645
6026
  name: typing.Optional[builtins.str] = None,
6027
+ shell: typing.Optional[builtins.str] = None,
5646
6028
  working_directory: typing.Optional[builtins.str] = None,
5647
6029
  run: typing.Optional[builtins.str] = None,
5648
6030
  uses: typing.Optional[builtins.str] = None,
@@ -5657,6 +6039,7 @@ def _typecheckingstub__0df3f4a2690eb7ddc82908948a9807cfdc9923a4466ac38225eda950e
5657
6039
  id: typing.Optional[builtins.str] = None,
5658
6040
  if_: typing.Optional[builtins.str] = None,
5659
6041
  name: typing.Optional[builtins.str] = None,
6042
+ shell: typing.Optional[builtins.str] = None,
5660
6043
  working_directory: typing.Optional[builtins.str] = None,
5661
6044
  run: typing.Optional[builtins.str] = None,
5662
6045
  uses: typing.Optional[builtins.str] = None,