projen 0.79.4__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.
@@ -1,3 +1,6 @@
1
+ from pkgutil import extend_path
2
+ __path__ = extend_path(__path__, __name__)
3
+
1
4
  import abc
2
5
  import builtins
3
6
  import datetime
@@ -8,7 +11,22 @@ import jsii
8
11
  import publication
9
12
  import typing_extensions
10
13
 
11
- 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
12
30
 
13
31
  from ..._jsii import *
14
32
 
@@ -47,18 +65,32 @@ class AppPermission(enum.Enum):
47
65
  name_mapping={
48
66
  "actions": "actions",
49
67
  "administration": "administration",
68
+ "attestations": "attestations",
50
69
  "checks": "checks",
70
+ "codespaces": "codespaces",
51
71
  "contents": "contents",
72
+ "dependabot_secrets": "dependabotSecrets",
52
73
  "deployments": "deployments",
74
+ "email_addresses": "emailAddresses",
53
75
  "environments": "environments",
76
+ "followers": "followers",
77
+ "git_ssh_keys": "gitSshKeys",
78
+ "gpg_keys": "gpgKeys",
79
+ "interaction_limits": "interactionLimits",
54
80
  "issues": "issues",
55
81
  "members": "members",
56
82
  "metadata": "metadata",
57
83
  "organization_administration": "organizationAdministration",
58
84
  "organization_announcement_banners": "organizationAnnouncementBanners",
85
+ "organization_copilot_seat_management": "organizationCopilotSeatManagement",
86
+ "organization_custom_org_roles": "organizationCustomOrgRoles",
87
+ "organization_custom_properties": "organizationCustomProperties",
59
88
  "organization_custom_roles": "organizationCustomRoles",
89
+ "organization_events": "organizationEvents",
60
90
  "organization_hooks": "organizationHooks",
61
91
  "organization_packages": "organizationPackages",
92
+ "organization_personal_access_token_requests": "organizationPersonalAccessTokenRequests",
93
+ "organization_personal_access_tokens": "organizationPersonalAccessTokens",
62
94
  "organization_plan": "organizationPlan",
63
95
  "organization_projects": "organizationProjects",
64
96
  "organization_secrets": "organizationSecrets",
@@ -66,14 +98,17 @@ class AppPermission(enum.Enum):
66
98
  "orgnaization_user_blocking": "orgnaizationUserBlocking",
67
99
  "packages": "packages",
68
100
  "pages": "pages",
101
+ "profile": "profile",
69
102
  "pull_requests": "pullRequests",
70
103
  "repository_announcement_banners": "repositoryAnnouncementBanners",
104
+ "repository_custom_properties": "repositoryCustomProperties",
71
105
  "repository_hooks": "repositoryHooks",
72
- "repository_project": "repositoryProject",
106
+ "repository_projects": "repositoryProjects",
73
107
  "secrets": "secrets",
74
108
  "secret_scanning_alerts": "secretScanningAlerts",
75
109
  "security_events": "securityEvents",
76
110
  "single_file": "singleFile",
111
+ "starring": "starring",
77
112
  "statuses": "statuses",
78
113
  "team_discussions": "teamDiscussions",
79
114
  "vulnerability_alerts": "vulnerabilityAlerts",
@@ -86,18 +121,32 @@ class AppPermissions:
86
121
  *,
87
122
  actions: typing.Optional[AppPermission] = None,
88
123
  administration: typing.Optional[AppPermission] = None,
124
+ attestations: typing.Optional[AppPermission] = None,
89
125
  checks: typing.Optional[AppPermission] = None,
126
+ codespaces: typing.Optional[AppPermission] = None,
90
127
  contents: typing.Optional[AppPermission] = None,
128
+ dependabot_secrets: typing.Optional[AppPermission] = None,
91
129
  deployments: typing.Optional[AppPermission] = None,
130
+ email_addresses: typing.Optional[AppPermission] = None,
92
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,
93
136
  issues: typing.Optional[AppPermission] = None,
94
137
  members: typing.Optional[AppPermission] = None,
95
138
  metadata: typing.Optional[AppPermission] = None,
96
139
  organization_administration: typing.Optional[AppPermission] = None,
97
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,
98
144
  organization_custom_roles: typing.Optional[AppPermission] = None,
145
+ organization_events: typing.Optional[AppPermission] = None,
99
146
  organization_hooks: typing.Optional[AppPermission] = None,
100
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,
101
150
  organization_plan: typing.Optional[AppPermission] = None,
102
151
  organization_projects: typing.Optional[AppPermission] = None,
103
152
  organization_secrets: typing.Optional[AppPermission] = None,
@@ -105,14 +154,17 @@ class AppPermissions:
105
154
  orgnaization_user_blocking: typing.Optional[AppPermission] = None,
106
155
  packages: typing.Optional[AppPermission] = None,
107
156
  pages: typing.Optional[AppPermission] = None,
157
+ profile: typing.Optional[AppPermission] = None,
108
158
  pull_requests: typing.Optional[AppPermission] = None,
109
159
  repository_announcement_banners: typing.Optional[AppPermission] = None,
160
+ repository_custom_properties: typing.Optional[AppPermission] = None,
110
161
  repository_hooks: typing.Optional[AppPermission] = None,
111
- repository_project: typing.Optional[AppPermission] = None,
162
+ repository_projects: typing.Optional[AppPermission] = None,
112
163
  secrets: typing.Optional[AppPermission] = None,
113
164
  secret_scanning_alerts: typing.Optional[AppPermission] = None,
114
165
  security_events: typing.Optional[AppPermission] = None,
115
166
  single_file: typing.Optional[AppPermission] = None,
167
+ starring: typing.Optional[AppPermission] = None,
116
168
  statuses: typing.Optional[AppPermission] = None,
117
169
  team_discussions: typing.Optional[AppPermission] = None,
118
170
  vulnerability_alerts: typing.Optional[AppPermission] = None,
@@ -126,18 +178,32 @@ class AppPermissions:
126
178
 
127
179
  :param actions:
128
180
  :param administration:
181
+ :param attestations:
129
182
  :param checks:
183
+ :param codespaces:
130
184
  :param contents:
185
+ :param dependabot_secrets:
131
186
  :param deployments:
187
+ :param email_addresses:
132
188
  :param environments:
189
+ :param followers:
190
+ :param git_ssh_keys:
191
+ :param gpg_keys:
192
+ :param interaction_limits:
133
193
  :param issues:
134
194
  :param members:
135
195
  :param metadata:
136
196
  :param organization_administration:
137
197
  :param organization_announcement_banners:
198
+ :param organization_copilot_seat_management:
199
+ :param organization_custom_org_roles:
200
+ :param organization_custom_properties:
138
201
  :param organization_custom_roles:
202
+ :param organization_events:
139
203
  :param organization_hooks:
140
204
  :param organization_packages:
205
+ :param organization_personal_access_token_requests:
206
+ :param organization_personal_access_tokens:
141
207
  :param organization_plan:
142
208
  :param organization_projects:
143
209
  :param organization_secrets:
@@ -145,38 +211,55 @@ class AppPermissions:
145
211
  :param orgnaization_user_blocking:
146
212
  :param packages:
147
213
  :param pages:
214
+ :param profile:
148
215
  :param pull_requests:
149
216
  :param repository_announcement_banners:
217
+ :param repository_custom_properties:
150
218
  :param repository_hooks:
151
- :param repository_project:
219
+ :param repository_projects:
152
220
  :param secrets:
153
221
  :param secret_scanning_alerts:
154
222
  :param security_events:
155
223
  :param single_file:
224
+ :param starring:
156
225
  :param statuses:
157
226
  :param team_discussions:
158
227
  :param vulnerability_alerts:
159
228
  :param workflows:
160
229
 
161
- :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
162
231
  :stability: experimental
163
232
  '''
164
233
  if __debug__:
165
234
  type_hints = typing.get_type_hints(_typecheckingstub__6e0085e134a87f8de8cb54bc56e329333881c3520710c833f5ed76097c8d1299)
166
235
  check_type(argname="argument actions", value=actions, expected_type=type_hints["actions"])
167
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"])
168
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"])
169
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"])
170
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"])
171
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"])
172
249
  check_type(argname="argument issues", value=issues, expected_type=type_hints["issues"])
173
250
  check_type(argname="argument members", value=members, expected_type=type_hints["members"])
174
251
  check_type(argname="argument metadata", value=metadata, expected_type=type_hints["metadata"])
175
252
  check_type(argname="argument organization_administration", value=organization_administration, expected_type=type_hints["organization_administration"])
176
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"])
177
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"])
178
259
  check_type(argname="argument organization_hooks", value=organization_hooks, expected_type=type_hints["organization_hooks"])
179
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"])
180
263
  check_type(argname="argument organization_plan", value=organization_plan, expected_type=type_hints["organization_plan"])
181
264
  check_type(argname="argument organization_projects", value=organization_projects, expected_type=type_hints["organization_projects"])
182
265
  check_type(argname="argument organization_secrets", value=organization_secrets, expected_type=type_hints["organization_secrets"])
@@ -184,14 +267,17 @@ class AppPermissions:
184
267
  check_type(argname="argument orgnaization_user_blocking", value=orgnaization_user_blocking, expected_type=type_hints["orgnaization_user_blocking"])
185
268
  check_type(argname="argument packages", value=packages, expected_type=type_hints["packages"])
186
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"])
187
271
  check_type(argname="argument pull_requests", value=pull_requests, expected_type=type_hints["pull_requests"])
188
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"])
189
274
  check_type(argname="argument repository_hooks", value=repository_hooks, expected_type=type_hints["repository_hooks"])
190
- 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"])
191
276
  check_type(argname="argument secrets", value=secrets, expected_type=type_hints["secrets"])
192
277
  check_type(argname="argument secret_scanning_alerts", value=secret_scanning_alerts, expected_type=type_hints["secret_scanning_alerts"])
193
278
  check_type(argname="argument security_events", value=security_events, expected_type=type_hints["security_events"])
194
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"])
195
281
  check_type(argname="argument statuses", value=statuses, expected_type=type_hints["statuses"])
196
282
  check_type(argname="argument team_discussions", value=team_discussions, expected_type=type_hints["team_discussions"])
197
283
  check_type(argname="argument vulnerability_alerts", value=vulnerability_alerts, expected_type=type_hints["vulnerability_alerts"])
@@ -201,14 +287,30 @@ class AppPermissions:
201
287
  self._values["actions"] = actions
202
288
  if administration is not None:
203
289
  self._values["administration"] = administration
290
+ if attestations is not None:
291
+ self._values["attestations"] = attestations
204
292
  if checks is not None:
205
293
  self._values["checks"] = checks
294
+ if codespaces is not None:
295
+ self._values["codespaces"] = codespaces
206
296
  if contents is not None:
207
297
  self._values["contents"] = contents
298
+ if dependabot_secrets is not None:
299
+ self._values["dependabot_secrets"] = dependabot_secrets
208
300
  if deployments is not None:
209
301
  self._values["deployments"] = deployments
302
+ if email_addresses is not None:
303
+ self._values["email_addresses"] = email_addresses
210
304
  if environments is not None:
211
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
212
314
  if issues is not None:
213
315
  self._values["issues"] = issues
214
316
  if members is not None:
@@ -219,12 +321,24 @@ class AppPermissions:
219
321
  self._values["organization_administration"] = organization_administration
220
322
  if organization_announcement_banners is not None:
221
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
222
330
  if organization_custom_roles is not None:
223
331
  self._values["organization_custom_roles"] = organization_custom_roles
332
+ if organization_events is not None:
333
+ self._values["organization_events"] = organization_events
224
334
  if organization_hooks is not None:
225
335
  self._values["organization_hooks"] = organization_hooks
226
336
  if organization_packages is not None:
227
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
228
342
  if organization_plan is not None:
229
343
  self._values["organization_plan"] = organization_plan
230
344
  if organization_projects is not None:
@@ -239,14 +353,18 @@ class AppPermissions:
239
353
  self._values["packages"] = packages
240
354
  if pages is not None:
241
355
  self._values["pages"] = pages
356
+ if profile is not None:
357
+ self._values["profile"] = profile
242
358
  if pull_requests is not None:
243
359
  self._values["pull_requests"] = pull_requests
244
360
  if repository_announcement_banners is not None:
245
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
246
364
  if repository_hooks is not None:
247
365
  self._values["repository_hooks"] = repository_hooks
248
- if repository_project is not None:
249
- self._values["repository_project"] = repository_project
366
+ if repository_projects is not None:
367
+ self._values["repository_projects"] = repository_projects
250
368
  if secrets is not None:
251
369
  self._values["secrets"] = secrets
252
370
  if secret_scanning_alerts is not None:
@@ -255,6 +373,8 @@ class AppPermissions:
255
373
  self._values["security_events"] = security_events
256
374
  if single_file is not None:
257
375
  self._values["single_file"] = single_file
376
+ if starring is not None:
377
+ self._values["starring"] = starring
258
378
  if statuses is not None:
259
379
  self._values["statuses"] = statuses
260
380
  if team_discussions is not None:
@@ -280,6 +400,14 @@ class AppPermissions:
280
400
  result = self._values.get("administration")
281
401
  return typing.cast(typing.Optional[AppPermission], result)
282
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
+
283
411
  @builtins.property
284
412
  def checks(self) -> typing.Optional[AppPermission]:
285
413
  '''
@@ -288,6 +416,14 @@ class AppPermissions:
288
416
  result = self._values.get("checks")
289
417
  return typing.cast(typing.Optional[AppPermission], result)
290
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
+
291
427
  @builtins.property
292
428
  def contents(self) -> typing.Optional[AppPermission]:
293
429
  '''
@@ -296,6 +432,14 @@ class AppPermissions:
296
432
  result = self._values.get("contents")
297
433
  return typing.cast(typing.Optional[AppPermission], result)
298
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
+
299
443
  @builtins.property
300
444
  def deployments(self) -> typing.Optional[AppPermission]:
301
445
  '''
@@ -304,6 +448,14 @@ class AppPermissions:
304
448
  result = self._values.get("deployments")
305
449
  return typing.cast(typing.Optional[AppPermission], result)
306
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
+
307
459
  @builtins.property
308
460
  def environments(self) -> typing.Optional[AppPermission]:
309
461
  '''
@@ -312,6 +464,38 @@ class AppPermissions:
312
464
  result = self._values.get("environments")
313
465
  return typing.cast(typing.Optional[AppPermission], result)
314
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
+
315
499
  @builtins.property
316
500
  def issues(self) -> typing.Optional[AppPermission]:
317
501
  '''
@@ -352,6 +536,30 @@ class AppPermissions:
352
536
  result = self._values.get("organization_announcement_banners")
353
537
  return typing.cast(typing.Optional[AppPermission], result)
354
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
+
355
563
  @builtins.property
356
564
  def organization_custom_roles(self) -> typing.Optional[AppPermission]:
357
565
  '''
@@ -360,6 +568,14 @@ class AppPermissions:
360
568
  result = self._values.get("organization_custom_roles")
361
569
  return typing.cast(typing.Optional[AppPermission], result)
362
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
+
363
579
  @builtins.property
364
580
  def organization_hooks(self) -> typing.Optional[AppPermission]:
365
581
  '''
@@ -376,6 +592,24 @@ class AppPermissions:
376
592
  result = self._values.get("organization_packages")
377
593
  return typing.cast(typing.Optional[AppPermission], result)
378
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
+
379
613
  @builtins.property
380
614
  def organization_plan(self) -> typing.Optional[AppPermission]:
381
615
  '''
@@ -432,6 +666,14 @@ class AppPermissions:
432
666
  result = self._values.get("pages")
433
667
  return typing.cast(typing.Optional[AppPermission], result)
434
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
+
435
677
  @builtins.property
436
678
  def pull_requests(self) -> typing.Optional[AppPermission]:
437
679
  '''
@@ -443,11 +685,21 @@ class AppPermissions:
443
685
  @builtins.property
444
686
  def repository_announcement_banners(self) -> typing.Optional[AppPermission]:
445
687
  '''
446
- :stability: experimental
688
+ :deprecated: removed by GitHub
689
+
690
+ :stability: deprecated
447
691
  '''
448
692
  result = self._values.get("repository_announcement_banners")
449
693
  return typing.cast(typing.Optional[AppPermission], result)
450
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
+
451
703
  @builtins.property
452
704
  def repository_hooks(self) -> typing.Optional[AppPermission]:
453
705
  '''
@@ -457,11 +709,11 @@ class AppPermissions:
457
709
  return typing.cast(typing.Optional[AppPermission], result)
458
710
 
459
711
  @builtins.property
460
- def repository_project(self) -> typing.Optional[AppPermission]:
712
+ def repository_projects(self) -> typing.Optional[AppPermission]:
461
713
  '''
462
714
  :stability: experimental
463
715
  '''
464
- result = self._values.get("repository_project")
716
+ result = self._values.get("repository_projects")
465
717
  return typing.cast(typing.Optional[AppPermission], result)
466
718
 
467
719
  @builtins.property
@@ -496,6 +748,14 @@ class AppPermissions:
496
748
  result = self._values.get("single_file")
497
749
  return typing.cast(typing.Optional[AppPermission], result)
498
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
+
499
759
  @builtins.property
500
760
  def statuses(self) -> typing.Optional[AppPermission]:
501
761
  '''
@@ -2039,7 +2299,7 @@ class JobMatrix:
2039
2299
  def __init__(
2040
2300
  self,
2041
2301
  *,
2042
- 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,
2043
2303
  exclude: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Union[builtins.str, jsii.Number, builtins.bool]]]] = None,
2044
2304
  include: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Union[builtins.str, jsii.Number, builtins.bool]]]] = None,
2045
2305
  ) -> None:
@@ -2067,7 +2327,7 @@ class JobMatrix:
2067
2327
  @builtins.property
2068
2328
  def domain(
2069
2329
  self,
2070
- ) -> 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]]]]]:
2071
2331
  '''(experimental) Each option you define in the matrix has a key and value.
2072
2332
 
2073
2333
  The keys you
@@ -2080,7 +2340,7 @@ class JobMatrix:
2080
2340
  :stability: experimental
2081
2341
  '''
2082
2342
  result = self._values.get("domain")
2083
- 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)
2084
2344
 
2085
2345
  @builtins.property
2086
2346
  def exclude(
@@ -2152,12 +2412,14 @@ class JobPermission(enum.Enum):
2152
2412
  jsii_struct_bases=[],
2153
2413
  name_mapping={
2154
2414
  "actions": "actions",
2415
+ "attestations": "attestations",
2155
2416
  "checks": "checks",
2156
2417
  "contents": "contents",
2157
2418
  "deployments": "deployments",
2158
2419
  "discussions": "discussions",
2159
2420
  "id_token": "idToken",
2160
2421
  "issues": "issues",
2422
+ "models": "models",
2161
2423
  "packages": "packages",
2162
2424
  "pages": "pages",
2163
2425
  "pull_requests": "pullRequests",
@@ -2171,12 +2433,14 @@ class JobPermissions:
2171
2433
  self,
2172
2434
  *,
2173
2435
  actions: typing.Optional[JobPermission] = None,
2436
+ attestations: typing.Optional[JobPermission] = None,
2174
2437
  checks: typing.Optional[JobPermission] = None,
2175
2438
  contents: typing.Optional[JobPermission] = None,
2176
2439
  deployments: typing.Optional[JobPermission] = None,
2177
2440
  discussions: typing.Optional[JobPermission] = None,
2178
2441
  id_token: typing.Optional[JobPermission] = None,
2179
2442
  issues: typing.Optional[JobPermission] = None,
2443
+ models: typing.Optional[JobPermission] = None,
2180
2444
  packages: typing.Optional[JobPermission] = None,
2181
2445
  pages: typing.Optional[JobPermission] = None,
2182
2446
  pull_requests: typing.Optional[JobPermission] = None,
@@ -2192,12 +2456,14 @@ class JobPermissions:
2192
2456
  when none is specified.
2193
2457
 
2194
2458
  :param actions:
2459
+ :param attestations:
2195
2460
  :param checks:
2196
2461
  :param contents:
2197
2462
  :param deployments:
2198
2463
  :param discussions:
2199
2464
  :param id_token:
2200
2465
  :param issues:
2466
+ :param models:
2201
2467
  :param packages:
2202
2468
  :param pages:
2203
2469
  :param pull_requests:
@@ -2205,17 +2471,20 @@ class JobPermissions:
2205
2471
  :param security_events:
2206
2472
  :param statuses:
2207
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
2208
2475
  :stability: experimental
2209
2476
  '''
2210
2477
  if __debug__:
2211
2478
  type_hints = typing.get_type_hints(_typecheckingstub__5f9b6a3fbdc58e402a1aaac55747b5faedde783c61dcd4c97c759406d925e9a5)
2212
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"])
2213
2481
  check_type(argname="argument checks", value=checks, expected_type=type_hints["checks"])
2214
2482
  check_type(argname="argument contents", value=contents, expected_type=type_hints["contents"])
2215
2483
  check_type(argname="argument deployments", value=deployments, expected_type=type_hints["deployments"])
2216
2484
  check_type(argname="argument discussions", value=discussions, expected_type=type_hints["discussions"])
2217
2485
  check_type(argname="argument id_token", value=id_token, expected_type=type_hints["id_token"])
2218
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"])
2219
2488
  check_type(argname="argument packages", value=packages, expected_type=type_hints["packages"])
2220
2489
  check_type(argname="argument pages", value=pages, expected_type=type_hints["pages"])
2221
2490
  check_type(argname="argument pull_requests", value=pull_requests, expected_type=type_hints["pull_requests"])
@@ -2225,6 +2494,8 @@ class JobPermissions:
2225
2494
  self._values: typing.Dict[builtins.str, typing.Any] = {}
2226
2495
  if actions is not None:
2227
2496
  self._values["actions"] = actions
2497
+ if attestations is not None:
2498
+ self._values["attestations"] = attestations
2228
2499
  if checks is not None:
2229
2500
  self._values["checks"] = checks
2230
2501
  if contents is not None:
@@ -2237,6 +2508,8 @@ class JobPermissions:
2237
2508
  self._values["id_token"] = id_token
2238
2509
  if issues is not None:
2239
2510
  self._values["issues"] = issues
2511
+ if models is not None:
2512
+ self._values["models"] = models
2240
2513
  if packages is not None:
2241
2514
  self._values["packages"] = packages
2242
2515
  if pages is not None:
@@ -2258,6 +2531,14 @@ class JobPermissions:
2258
2531
  result = self._values.get("actions")
2259
2532
  return typing.cast(typing.Optional[JobPermission], result)
2260
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
+
2261
2542
  @builtins.property
2262
2543
  def checks(self) -> typing.Optional[JobPermission]:
2263
2544
  '''
@@ -2306,6 +2587,14 @@ class JobPermissions:
2306
2587
  result = self._values.get("issues")
2307
2588
  return typing.cast(typing.Optional[JobPermission], result)
2308
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
+
2309
2598
  @builtins.property
2310
2599
  def packages(self) -> typing.Optional[JobPermission]:
2311
2600
  '''
@@ -2333,7 +2622,9 @@ class JobPermissions:
2333
2622
  @builtins.property
2334
2623
  def repository_projects(self) -> typing.Optional[JobPermission]:
2335
2624
  '''
2336
- :stability: experimental
2625
+ :deprecated: removed by GitHub
2626
+
2627
+ :stability: deprecated
2337
2628
  '''
2338
2629
  result = self._values.get("repository_projects")
2339
2630
  return typing.cast(typing.Optional[JobPermission], result)
@@ -3262,6 +3553,7 @@ class StatusOptions:
3262
3553
  "id": "id",
3263
3554
  "if_": "if",
3264
3555
  "name": "name",
3556
+ "shell": "shell",
3265
3557
  "working_directory": "workingDirectory",
3266
3558
  },
3267
3559
  )
@@ -3273,6 +3565,7 @@ class StepConfiguration:
3273
3565
  id: typing.Optional[builtins.str] = None,
3274
3566
  if_: typing.Optional[builtins.str] = None,
3275
3567
  name: typing.Optional[builtins.str] = None,
3568
+ shell: typing.Optional[builtins.str] = None,
3276
3569
  working_directory: typing.Optional[builtins.str] = None,
3277
3570
  ) -> None:
3278
3571
  '''(experimental) Fields that describe the How, Why, When, and Who of a Step.
@@ -3285,6 +3578,7 @@ class StepConfiguration:
3285
3578
  :param id: (experimental) A unique identifier for the step. You can use the id to reference the step in contexts.
3286
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.
3287
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.
3288
3582
  :param working_directory: (experimental) Specifies a working directory for a step. Overrides a job's working directory.
3289
3583
 
3290
3584
  :stability: experimental
@@ -3295,6 +3589,7 @@ class StepConfiguration:
3295
3589
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3296
3590
  check_type(argname="argument if_", value=if_, expected_type=type_hints["if_"])
3297
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"])
3298
3593
  check_type(argname="argument working_directory", value=working_directory, expected_type=type_hints["working_directory"])
3299
3594
  self._values: typing.Dict[builtins.str, typing.Any] = {}
3300
3595
  if env is not None:
@@ -3305,6 +3600,8 @@ class StepConfiguration:
3305
3600
  self._values["if_"] = if_
3306
3601
  if name is not None:
3307
3602
  self._values["name"] = name
3603
+ if shell is not None:
3604
+ self._values["shell"] = shell
3308
3605
  if working_directory is not None:
3309
3606
  self._values["working_directory"] = working_directory
3310
3607
 
@@ -3352,6 +3649,18 @@ class StepConfiguration:
3352
3649
  result = self._values.get("name")
3353
3650
  return typing.cast(typing.Optional[builtins.str], result)
3354
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
+
3355
3664
  @builtins.property
3356
3665
  def working_directory(self) -> typing.Optional[builtins.str]:
3357
3666
  '''(experimental) Specifies a working directory for a step.
@@ -4392,6 +4701,7 @@ class WorkflowRunOptions:
4392
4701
  "id": "id",
4393
4702
  "if_": "if",
4394
4703
  "name": "name",
4704
+ "shell": "shell",
4395
4705
  "working_directory": "workingDirectory",
4396
4706
  "continue_on_error": "continueOnError",
4397
4707
  "timeout_minutes": "timeoutMinutes",
@@ -4405,6 +4715,7 @@ class JobStepConfiguration(StepConfiguration):
4405
4715
  id: typing.Optional[builtins.str] = None,
4406
4716
  if_: typing.Optional[builtins.str] = None,
4407
4717
  name: typing.Optional[builtins.str] = None,
4718
+ shell: typing.Optional[builtins.str] = None,
4408
4719
  working_directory: typing.Optional[builtins.str] = None,
4409
4720
  continue_on_error: typing.Optional[builtins.bool] = None,
4410
4721
  timeout_minutes: typing.Optional[jsii.Number] = None,
@@ -4415,6 +4726,7 @@ class JobStepConfiguration(StepConfiguration):
4415
4726
  :param id: (experimental) A unique identifier for the step. You can use the id to reference the step in contexts.
4416
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.
4417
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.
4418
4730
  :param working_directory: (experimental) Specifies a working directory for a step. Overrides a job's working directory.
4419
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.
4420
4732
  :param timeout_minutes: (experimental) The maximum number of minutes to run the step before killing the process.
@@ -4427,6 +4739,7 @@ class JobStepConfiguration(StepConfiguration):
4427
4739
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
4428
4740
  check_type(argname="argument if_", value=if_, expected_type=type_hints["if_"])
4429
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"])
4430
4743
  check_type(argname="argument working_directory", value=working_directory, expected_type=type_hints["working_directory"])
4431
4744
  check_type(argname="argument continue_on_error", value=continue_on_error, expected_type=type_hints["continue_on_error"])
4432
4745
  check_type(argname="argument timeout_minutes", value=timeout_minutes, expected_type=type_hints["timeout_minutes"])
@@ -4439,6 +4752,8 @@ class JobStepConfiguration(StepConfiguration):
4439
4752
  self._values["if_"] = if_
4440
4753
  if name is not None:
4441
4754
  self._values["name"] = name
4755
+ if shell is not None:
4756
+ self._values["shell"] = shell
4442
4757
  if working_directory is not None:
4443
4758
  self._values["working_directory"] = working_directory
4444
4759
  if continue_on_error is not None:
@@ -4490,6 +4805,18 @@ class JobStepConfiguration(StepConfiguration):
4490
4805
  result = self._values.get("name")
4491
4806
  return typing.cast(typing.Optional[builtins.str], result)
4492
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
+
4493
4820
  @builtins.property
4494
4821
  def working_directory(self) -> typing.Optional[builtins.str]:
4495
4822
  '''(experimental) Specifies a working directory for a step.
@@ -4760,6 +5087,7 @@ class PullRequestTargetOptions(PushOptions):
4760
5087
  "id": "id",
4761
5088
  "if_": "if",
4762
5089
  "name": "name",
5090
+ "shell": "shell",
4763
5091
  "working_directory": "workingDirectory",
4764
5092
  "run": "run",
4765
5093
  "uses": "uses",
@@ -4774,6 +5102,7 @@ class Step(StepConfiguration):
4774
5102
  id: typing.Optional[builtins.str] = None,
4775
5103
  if_: typing.Optional[builtins.str] = None,
4776
5104
  name: typing.Optional[builtins.str] = None,
5105
+ shell: typing.Optional[builtins.str] = None,
4777
5106
  working_directory: typing.Optional[builtins.str] = None,
4778
5107
  run: typing.Optional[builtins.str] = None,
4779
5108
  uses: typing.Optional[builtins.str] = None,
@@ -4790,6 +5119,7 @@ class Step(StepConfiguration):
4790
5119
  :param id: (experimental) A unique identifier for the step. You can use the id to reference the step in contexts.
4791
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.
4792
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.
4793
5123
  :param working_directory: (experimental) Specifies a working directory for a step. Overrides a job's working directory.
4794
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.
4795
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.
@@ -4804,6 +5134,7 @@ class Step(StepConfiguration):
4804
5134
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
4805
5135
  check_type(argname="argument if_", value=if_, expected_type=type_hints["if_"])
4806
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"])
4807
5138
  check_type(argname="argument working_directory", value=working_directory, expected_type=type_hints["working_directory"])
4808
5139
  check_type(argname="argument run", value=run, expected_type=type_hints["run"])
4809
5140
  check_type(argname="argument uses", value=uses, expected_type=type_hints["uses"])
@@ -4817,6 +5148,8 @@ class Step(StepConfiguration):
4817
5148
  self._values["if_"] = if_
4818
5149
  if name is not None:
4819
5150
  self._values["name"] = name
5151
+ if shell is not None:
5152
+ self._values["shell"] = shell
4820
5153
  if working_directory is not None:
4821
5154
  self._values["working_directory"] = working_directory
4822
5155
  if run is not None:
@@ -4870,6 +5203,18 @@ class Step(StepConfiguration):
4870
5203
  result = self._values.get("name")
4871
5204
  return typing.cast(typing.Optional[builtins.str], result)
4872
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
+
4873
5218
  @builtins.property
4874
5219
  def working_directory(self) -> typing.Optional[builtins.str]:
4875
5220
  '''(experimental) Specifies a working directory for a step.
@@ -4941,6 +5286,7 @@ class Step(StepConfiguration):
4941
5286
  "id": "id",
4942
5287
  "if_": "if",
4943
5288
  "name": "name",
5289
+ "shell": "shell",
4944
5290
  "working_directory": "workingDirectory",
4945
5291
  "run": "run",
4946
5292
  "uses": "uses",
@@ -4957,6 +5303,7 @@ class JobStep(Step, JobStepConfiguration):
4957
5303
  id: typing.Optional[builtins.str] = None,
4958
5304
  if_: typing.Optional[builtins.str] = None,
4959
5305
  name: typing.Optional[builtins.str] = None,
5306
+ shell: typing.Optional[builtins.str] = None,
4960
5307
  working_directory: typing.Optional[builtins.str] = None,
4961
5308
  run: typing.Optional[builtins.str] = None,
4962
5309
  uses: typing.Optional[builtins.str] = None,
@@ -4970,6 +5317,7 @@ class JobStep(Step, JobStepConfiguration):
4970
5317
  :param id: (experimental) A unique identifier for the step. You can use the id to reference the step in contexts.
4971
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.
4972
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.
4973
5321
  :param working_directory: (experimental) Specifies a working directory for a step. Overrides a job's working directory.
4974
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.
4975
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.
@@ -4986,6 +5334,7 @@ class JobStep(Step, JobStepConfiguration):
4986
5334
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
4987
5335
  check_type(argname="argument if_", value=if_, expected_type=type_hints["if_"])
4988
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"])
4989
5338
  check_type(argname="argument working_directory", value=working_directory, expected_type=type_hints["working_directory"])
4990
5339
  check_type(argname="argument run", value=run, expected_type=type_hints["run"])
4991
5340
  check_type(argname="argument uses", value=uses, expected_type=type_hints["uses"])
@@ -5001,6 +5350,8 @@ class JobStep(Step, JobStepConfiguration):
5001
5350
  self._values["if_"] = if_
5002
5351
  if name is not None:
5003
5352
  self._values["name"] = name
5353
+ if shell is not None:
5354
+ self._values["shell"] = shell
5004
5355
  if working_directory is not None:
5005
5356
  self._values["working_directory"] = working_directory
5006
5357
  if run is not None:
@@ -5058,6 +5409,18 @@ class JobStep(Step, JobStepConfiguration):
5058
5409
  result = self._values.get("name")
5059
5410
  return typing.cast(typing.Optional[builtins.str], result)
5060
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
+
5061
5424
  @builtins.property
5062
5425
  def working_directory(self) -> typing.Optional[builtins.str]:
5063
5426
  '''(experimental) Specifies a working directory for a step.
@@ -5207,18 +5570,32 @@ def _typecheckingstub__6e0085e134a87f8de8cb54bc56e329333881c3520710c833f5ed76097
5207
5570
  *,
5208
5571
  actions: typing.Optional[AppPermission] = None,
5209
5572
  administration: typing.Optional[AppPermission] = None,
5573
+ attestations: typing.Optional[AppPermission] = None,
5210
5574
  checks: typing.Optional[AppPermission] = None,
5575
+ codespaces: typing.Optional[AppPermission] = None,
5211
5576
  contents: typing.Optional[AppPermission] = None,
5577
+ dependabot_secrets: typing.Optional[AppPermission] = None,
5212
5578
  deployments: typing.Optional[AppPermission] = None,
5579
+ email_addresses: typing.Optional[AppPermission] = None,
5213
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,
5214
5585
  issues: typing.Optional[AppPermission] = None,
5215
5586
  members: typing.Optional[AppPermission] = None,
5216
5587
  metadata: typing.Optional[AppPermission] = None,
5217
5588
  organization_administration: typing.Optional[AppPermission] = None,
5218
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,
5219
5593
  organization_custom_roles: typing.Optional[AppPermission] = None,
5594
+ organization_events: typing.Optional[AppPermission] = None,
5220
5595
  organization_hooks: typing.Optional[AppPermission] = None,
5221
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,
5222
5599
  organization_plan: typing.Optional[AppPermission] = None,
5223
5600
  organization_projects: typing.Optional[AppPermission] = None,
5224
5601
  organization_secrets: typing.Optional[AppPermission] = None,
@@ -5226,14 +5603,17 @@ def _typecheckingstub__6e0085e134a87f8de8cb54bc56e329333881c3520710c833f5ed76097
5226
5603
  orgnaization_user_blocking: typing.Optional[AppPermission] = None,
5227
5604
  packages: typing.Optional[AppPermission] = None,
5228
5605
  pages: typing.Optional[AppPermission] = None,
5606
+ profile: typing.Optional[AppPermission] = None,
5229
5607
  pull_requests: typing.Optional[AppPermission] = None,
5230
5608
  repository_announcement_banners: typing.Optional[AppPermission] = None,
5609
+ repository_custom_properties: typing.Optional[AppPermission] = None,
5231
5610
  repository_hooks: typing.Optional[AppPermission] = None,
5232
- repository_project: typing.Optional[AppPermission] = None,
5611
+ repository_projects: typing.Optional[AppPermission] = None,
5233
5612
  secrets: typing.Optional[AppPermission] = None,
5234
5613
  secret_scanning_alerts: typing.Optional[AppPermission] = None,
5235
5614
  security_events: typing.Optional[AppPermission] = None,
5236
5615
  single_file: typing.Optional[AppPermission] = None,
5616
+ starring: typing.Optional[AppPermission] = None,
5237
5617
  statuses: typing.Optional[AppPermission] = None,
5238
5618
  team_discussions: typing.Optional[AppPermission] = None,
5239
5619
  vulnerability_alerts: typing.Optional[AppPermission] = None,
@@ -5378,7 +5758,7 @@ def _typecheckingstub__4afc181ec4ce3844469de535090d57cb39b9f47cf28d0bdc1e7a95bf2
5378
5758
 
5379
5759
  def _typecheckingstub__27c1bb692367ba40c0c0307ec4a86916287ff1f39e99b1eeab7f30bb7886bbda(
5380
5760
  *,
5381
- 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,
5382
5762
  exclude: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Union[builtins.str, jsii.Number, builtins.bool]]]] = None,
5383
5763
  include: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Union[builtins.str, jsii.Number, builtins.bool]]]] = None,
5384
5764
  ) -> None:
@@ -5388,12 +5768,14 @@ def _typecheckingstub__27c1bb692367ba40c0c0307ec4a86916287ff1f39e99b1eeab7f30bb7
5388
5768
  def _typecheckingstub__5f9b6a3fbdc58e402a1aaac55747b5faedde783c61dcd4c97c759406d925e9a5(
5389
5769
  *,
5390
5770
  actions: typing.Optional[JobPermission] = None,
5771
+ attestations: typing.Optional[JobPermission] = None,
5391
5772
  checks: typing.Optional[JobPermission] = None,
5392
5773
  contents: typing.Optional[JobPermission] = None,
5393
5774
  deployments: typing.Optional[JobPermission] = None,
5394
5775
  discussions: typing.Optional[JobPermission] = None,
5395
5776
  id_token: typing.Optional[JobPermission] = None,
5396
5777
  issues: typing.Optional[JobPermission] = None,
5778
+ models: typing.Optional[JobPermission] = None,
5397
5779
  packages: typing.Optional[JobPermission] = None,
5398
5780
  pages: typing.Optional[JobPermission] = None,
5399
5781
  pull_requests: typing.Optional[JobPermission] = None,
@@ -5521,6 +5903,7 @@ def _typecheckingstub__044349b8d18055b991a5680dc1d218dc2901bc2369d30fa23e79229d8
5521
5903
  id: typing.Optional[builtins.str] = None,
5522
5904
  if_: typing.Optional[builtins.str] = None,
5523
5905
  name: typing.Optional[builtins.str] = None,
5906
+ shell: typing.Optional[builtins.str] = None,
5524
5907
  working_directory: typing.Optional[builtins.str] = None,
5525
5908
  ) -> None:
5526
5909
  """Type checking stubs"""
@@ -5607,6 +5990,7 @@ def _typecheckingstub__015947eea91a5bd0b89e515aeca63fc47bd80c9c63472b7c37f32a247
5607
5990
  id: typing.Optional[builtins.str] = None,
5608
5991
  if_: typing.Optional[builtins.str] = None,
5609
5992
  name: typing.Optional[builtins.str] = None,
5993
+ shell: typing.Optional[builtins.str] = None,
5610
5994
  working_directory: typing.Optional[builtins.str] = None,
5611
5995
  continue_on_error: typing.Optional[builtins.bool] = None,
5612
5996
  timeout_minutes: typing.Optional[jsii.Number] = None,
@@ -5640,6 +6024,7 @@ def _typecheckingstub__91711bdec7a542de93f053fdd93de2213c56069702113a10e2c71564c
5640
6024
  id: typing.Optional[builtins.str] = None,
5641
6025
  if_: typing.Optional[builtins.str] = None,
5642
6026
  name: typing.Optional[builtins.str] = None,
6027
+ shell: typing.Optional[builtins.str] = None,
5643
6028
  working_directory: typing.Optional[builtins.str] = None,
5644
6029
  run: typing.Optional[builtins.str] = None,
5645
6030
  uses: typing.Optional[builtins.str] = None,
@@ -5654,6 +6039,7 @@ def _typecheckingstub__0df3f4a2690eb7ddc82908948a9807cfdc9923a4466ac38225eda950e
5654
6039
  id: typing.Optional[builtins.str] = None,
5655
6040
  if_: typing.Optional[builtins.str] = None,
5656
6041
  name: typing.Optional[builtins.str] = None,
6042
+ shell: typing.Optional[builtins.str] = None,
5657
6043
  working_directory: typing.Optional[builtins.str] = None,
5658
6044
  run: typing.Optional[builtins.str] = None,
5659
6045
  uses: typing.Optional[builtins.str] = None,