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.
projen/java/__init__.py CHANGED
@@ -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
 
@@ -37,6 +55,26 @@ from ..github import (
37
55
  )
38
56
 
39
57
 
58
+ @jsii.enum(jsii_type="projen.java.ChecksumPolicy")
59
+ class ChecksumPolicy(enum.Enum):
60
+ '''
61
+ :stability: experimental
62
+ '''
63
+
64
+ IGNORE = "IGNORE"
65
+ '''
66
+ :stability: experimental
67
+ '''
68
+ FAIL = "FAIL"
69
+ '''
70
+ :stability: experimental
71
+ '''
72
+ WARN = "WARN"
73
+ '''
74
+ :stability: experimental
75
+ '''
76
+
77
+
40
78
  class JavaProject(
41
79
  _GitHubProject_c48bc7ea,
42
80
  metaclass=jsii.JSIIMeta,
@@ -84,6 +122,7 @@ class JavaProject(
84
122
  version: builtins.str,
85
123
  description: typing.Optional[builtins.str] = None,
86
124
  packaging: typing.Optional[builtins.str] = None,
125
+ parent_pom: typing.Optional[typing.Union["ParentPom", typing.Dict[builtins.str, typing.Any]]] = None,
87
126
  url: typing.Optional[builtins.str] = None,
88
127
  name: builtins.str,
89
128
  commit_generated: typing.Optional[builtins.bool] = None,
@@ -132,6 +171,7 @@ class JavaProject(
132
171
  :param version: (experimental) This is the last piece of the naming puzzle. groupId:artifactId denotes a single project but they cannot delineate which incarnation of that project we are talking about. Do we want the junit:junit of 2018 (version 4.12), or of 2007 (version 3.8.2)? In short: code changes, those changes should be versioned, and this element keeps those versions in line. It is also used within an artifact's repository to separate versions from each other. my-project version 1.0 files live in the directory structure $M2_REPO/org/codehaus/mojo/my-project/1.0. Default: "0.1.0"
133
172
  :param description: (experimental) Description of a project is always good. Although this should not replace formal documentation, a quick comment to any readers of the POM is always helpful. Default: undefined
134
173
  :param packaging: (experimental) Project packaging format. Default: "jar"
174
+ :param parent_pom: (experimental) A Parent Pom can be used to have a child project inherit properties/plugins/ect in order to reduce duplication and keep standards across a large amount of repos. Default: undefined
135
175
  :param url: (experimental) The URL, like the name, is not required. This is a nice gesture for projects users, however, so that they know where the project lives. Default: undefined
136
176
  :param name: (experimental) This is the name of your project. Default: $BASEDIR
137
177
  :param commit_generated: (experimental) Whether to commit the managed files by default. Default: true
@@ -182,6 +222,7 @@ class JavaProject(
182
222
  version=version,
183
223
  description=description,
184
224
  packaging=packaging,
225
+ parent_pom=parent_pom,
185
226
  url=url,
186
227
  name=name,
187
228
  commit_generated=commit_generated,
@@ -683,7 +724,14 @@ class MavenPackagingOptions:
683
724
  @jsii.data_type(
684
725
  jsii_type="projen.java.MavenRepository",
685
726
  jsii_struct_bases=[],
686
- name_mapping={"id": "id", "url": "url", "layout": "layout", "name": "name"},
727
+ name_mapping={
728
+ "id": "id",
729
+ "url": "url",
730
+ "layout": "layout",
731
+ "name": "name",
732
+ "releases": "releases",
733
+ "snapshots": "snapshots",
734
+ },
687
735
  )
688
736
  class MavenRepository:
689
737
  def __init__(
@@ -693,6 +741,8 @@ class MavenRepository:
693
741
  url: builtins.str,
694
742
  layout: typing.Optional[builtins.str] = None,
695
743
  name: typing.Optional[builtins.str] = None,
744
+ releases: typing.Optional[typing.Union["MavenRepositoryPolicy", typing.Dict[builtins.str, typing.Any]]] = None,
745
+ snapshots: typing.Optional[typing.Union["MavenRepositoryPolicy", typing.Dict[builtins.str, typing.Any]]] = None,
696
746
  ) -> None:
697
747
  '''(experimental) Represents a Maven repository.
698
748
 
@@ -700,16 +750,24 @@ class MavenRepository:
700
750
  :param url: (experimental) The url of the repository.
701
751
  :param layout: (experimental) The layout of the repository.
702
752
  :param name: (experimental) The name of the repository.
753
+ :param releases: (experimental) Repository Policy for Releases.
754
+ :param snapshots: (experimental) Repository Policy for Snapshots.
703
755
 
704
756
  :see: https://maven.apache.org/guides/introduction/introduction-to-repositories.html
705
757
  :stability: experimental
706
758
  '''
759
+ if isinstance(releases, dict):
760
+ releases = MavenRepositoryPolicy(**releases)
761
+ if isinstance(snapshots, dict):
762
+ snapshots = MavenRepositoryPolicy(**snapshots)
707
763
  if __debug__:
708
764
  type_hints = typing.get_type_hints(_typecheckingstub__12e8ee88cd330385feef214bd08b3bc44314dc15ddbcd48e4f74c198bda84bde)
709
765
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
710
766
  check_type(argname="argument url", value=url, expected_type=type_hints["url"])
711
767
  check_type(argname="argument layout", value=layout, expected_type=type_hints["layout"])
712
768
  check_type(argname="argument name", value=name, expected_type=type_hints["name"])
769
+ check_type(argname="argument releases", value=releases, expected_type=type_hints["releases"])
770
+ check_type(argname="argument snapshots", value=snapshots, expected_type=type_hints["snapshots"])
713
771
  self._values: typing.Dict[builtins.str, typing.Any] = {
714
772
  "id": id,
715
773
  "url": url,
@@ -718,6 +776,10 @@ class MavenRepository:
718
776
  self._values["layout"] = layout
719
777
  if name is not None:
720
778
  self._values["name"] = name
779
+ if releases is not None:
780
+ self._values["releases"] = releases
781
+ if snapshots is not None:
782
+ self._values["snapshots"] = snapshots
721
783
 
722
784
  @builtins.property
723
785
  def id(self) -> builtins.str:
@@ -757,6 +819,24 @@ class MavenRepository:
757
819
  result = self._values.get("name")
758
820
  return typing.cast(typing.Optional[builtins.str], result)
759
821
 
822
+ @builtins.property
823
+ def releases(self) -> typing.Optional["MavenRepositoryPolicy"]:
824
+ '''(experimental) Repository Policy for Releases.
825
+
826
+ :stability: experimental
827
+ '''
828
+ result = self._values.get("releases")
829
+ return typing.cast(typing.Optional["MavenRepositoryPolicy"], result)
830
+
831
+ @builtins.property
832
+ def snapshots(self) -> typing.Optional["MavenRepositoryPolicy"]:
833
+ '''(experimental) Repository Policy for Snapshots.
834
+
835
+ :stability: experimental
836
+ '''
837
+ result = self._values.get("snapshots")
838
+ return typing.cast(typing.Optional["MavenRepositoryPolicy"], result)
839
+
760
840
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
761
841
  return isinstance(rhs, self.__class__) and rhs._values == self._values
762
842
 
@@ -769,6 +849,87 @@ class MavenRepository:
769
849
  )
770
850
 
771
851
 
852
+ @jsii.data_type(
853
+ jsii_type="projen.java.MavenRepositoryPolicy",
854
+ jsii_struct_bases=[],
855
+ name_mapping={
856
+ "checksum_policy": "checksumPolicy",
857
+ "enabled": "enabled",
858
+ "update_policy": "updatePolicy",
859
+ },
860
+ )
861
+ class MavenRepositoryPolicy:
862
+ def __init__(
863
+ self,
864
+ *,
865
+ checksum_policy: typing.Optional[ChecksumPolicy] = None,
866
+ enabled: typing.Optional[builtins.bool] = None,
867
+ update_policy: typing.Optional["UpdatePolicy"] = None,
868
+ ) -> None:
869
+ '''(experimental) Represents a Maven Repository Policy.
870
+
871
+ :param checksum_policy: (experimental) Checksum Policy When Maven deploys files to the repository, it also deploys corresponding checksum files.
872
+ :param enabled:
873
+ :param update_policy: (experimental) Update Policy This element specifies how often updates should attempt to occur. Maven will compare the local POM's timestamp (stored in a repository's maven-metadata file) to the remote. Default: UpdatePolicy.DAILY
874
+
875
+ :see: https://maven.apache.org/settings.html#repositories
876
+ :stability: experimental
877
+ '''
878
+ if __debug__:
879
+ type_hints = typing.get_type_hints(_typecheckingstub__041e104cddeb68a13d0b79cfdce8653000ee58d2c7cef3088a2c8717d7f02ebf)
880
+ check_type(argname="argument checksum_policy", value=checksum_policy, expected_type=type_hints["checksum_policy"])
881
+ check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
882
+ check_type(argname="argument update_policy", value=update_policy, expected_type=type_hints["update_policy"])
883
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
884
+ if checksum_policy is not None:
885
+ self._values["checksum_policy"] = checksum_policy
886
+ if enabled is not None:
887
+ self._values["enabled"] = enabled
888
+ if update_policy is not None:
889
+ self._values["update_policy"] = update_policy
890
+
891
+ @builtins.property
892
+ def checksum_policy(self) -> typing.Optional[ChecksumPolicy]:
893
+ '''(experimental) Checksum Policy When Maven deploys files to the repository, it also deploys corresponding checksum files.
894
+
895
+ :stability: experimental
896
+ '''
897
+ result = self._values.get("checksum_policy")
898
+ return typing.cast(typing.Optional[ChecksumPolicy], result)
899
+
900
+ @builtins.property
901
+ def enabled(self) -> typing.Optional[builtins.bool]:
902
+ '''
903
+ :stability: experimental
904
+ '''
905
+ result = self._values.get("enabled")
906
+ return typing.cast(typing.Optional[builtins.bool], result)
907
+
908
+ @builtins.property
909
+ def update_policy(self) -> typing.Optional["UpdatePolicy"]:
910
+ '''(experimental) Update Policy This element specifies how often updates should attempt to occur.
911
+
912
+ Maven will compare the local POM's timestamp (stored in a repository's maven-metadata file) to the remote.
913
+
914
+ :default: UpdatePolicy.DAILY
915
+
916
+ :stability: experimental
917
+ '''
918
+ result = self._values.get("update_policy")
919
+ return typing.cast(typing.Optional["UpdatePolicy"], result)
920
+
921
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
922
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
923
+
924
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
925
+ return not (rhs == self)
926
+
927
+ def __repr__(self) -> str:
928
+ return "MavenRepositoryPolicy(%s)" % ", ".join(
929
+ k + "=" + repr(v) for k, v in self._values.items()
930
+ )
931
+
932
+
772
933
  class MavenSample(
773
934
  _Component_2b0ad27f,
774
935
  metaclass=jsii.JSIIMeta,
@@ -835,10 +996,106 @@ class MavenSampleOptions:
835
996
  )
836
997
 
837
998
 
999
+ @jsii.data_type(
1000
+ jsii_type="projen.java.ParentPom",
1001
+ jsii_struct_bases=[],
1002
+ name_mapping={
1003
+ "artifact_id": "artifactId",
1004
+ "group_id": "groupId",
1005
+ "relative_path": "relativePath",
1006
+ "version": "version",
1007
+ },
1008
+ )
1009
+ class ParentPom:
1010
+ def __init__(
1011
+ self,
1012
+ *,
1013
+ artifact_id: typing.Optional[builtins.str] = None,
1014
+ group_id: typing.Optional[builtins.str] = None,
1015
+ relative_path: typing.Optional[builtins.str] = None,
1016
+ version: typing.Optional[builtins.str] = None,
1017
+ ) -> None:
1018
+ '''
1019
+ :param artifact_id: (experimental) Parent Pom Artifact ID.
1020
+ :param group_id: (experimental) Parent Pom Group ID.
1021
+ :param relative_path: (experimental) Parent Pom Relative path from the current pom.
1022
+ :param version: (experimental) Parent Pom Version.
1023
+
1024
+ :stability: experimental
1025
+ '''
1026
+ if __debug__:
1027
+ type_hints = typing.get_type_hints(_typecheckingstub__1f47e5dc92031bfaa3a639437d282aedc130d8a3857314c5a71a2ca063798f40)
1028
+ check_type(argname="argument artifact_id", value=artifact_id, expected_type=type_hints["artifact_id"])
1029
+ check_type(argname="argument group_id", value=group_id, expected_type=type_hints["group_id"])
1030
+ check_type(argname="argument relative_path", value=relative_path, expected_type=type_hints["relative_path"])
1031
+ check_type(argname="argument version", value=version, expected_type=type_hints["version"])
1032
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1033
+ if artifact_id is not None:
1034
+ self._values["artifact_id"] = artifact_id
1035
+ if group_id is not None:
1036
+ self._values["group_id"] = group_id
1037
+ if relative_path is not None:
1038
+ self._values["relative_path"] = relative_path
1039
+ if version is not None:
1040
+ self._values["version"] = version
1041
+
1042
+ @builtins.property
1043
+ def artifact_id(self) -> typing.Optional[builtins.str]:
1044
+ '''(experimental) Parent Pom Artifact ID.
1045
+
1046
+ :stability: experimental
1047
+ '''
1048
+ result = self._values.get("artifact_id")
1049
+ return typing.cast(typing.Optional[builtins.str], result)
1050
+
1051
+ @builtins.property
1052
+ def group_id(self) -> typing.Optional[builtins.str]:
1053
+ '''(experimental) Parent Pom Group ID.
1054
+
1055
+ :stability: experimental
1056
+ '''
1057
+ result = self._values.get("group_id")
1058
+ return typing.cast(typing.Optional[builtins.str], result)
1059
+
1060
+ @builtins.property
1061
+ def relative_path(self) -> typing.Optional[builtins.str]:
1062
+ '''(experimental) Parent Pom Relative path from the current pom.
1063
+
1064
+ :stability: experimental
1065
+ '''
1066
+ result = self._values.get("relative_path")
1067
+ return typing.cast(typing.Optional[builtins.str], result)
1068
+
1069
+ @builtins.property
1070
+ def version(self) -> typing.Optional[builtins.str]:
1071
+ '''(experimental) Parent Pom Version.
1072
+
1073
+ :stability: experimental
1074
+ '''
1075
+ result = self._values.get("version")
1076
+ return typing.cast(typing.Optional[builtins.str], result)
1077
+
1078
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1079
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1080
+
1081
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1082
+ return not (rhs == self)
1083
+
1084
+ def __repr__(self) -> str:
1085
+ return "ParentPom(%s)" % ", ".join(
1086
+ k + "=" + repr(v) for k, v in self._values.items()
1087
+ )
1088
+
1089
+
838
1090
  @jsii.data_type(
839
1091
  jsii_type="projen.java.PluginExecution",
840
1092
  jsii_struct_bases=[],
841
- name_mapping={"goals": "goals", "id": "id", "phase": "phase"},
1093
+ name_mapping={
1094
+ "goals": "goals",
1095
+ "id": "id",
1096
+ "configuration": "configuration",
1097
+ "phase": "phase",
1098
+ },
842
1099
  )
843
1100
  class PluginExecution:
844
1101
  def __init__(
@@ -846,12 +1103,14 @@ class PluginExecution:
846
1103
  *,
847
1104
  goals: typing.Sequence[builtins.str],
848
1105
  id: builtins.str,
1106
+ configuration: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
849
1107
  phase: typing.Optional[builtins.str] = None,
850
1108
  ) -> None:
851
1109
  '''(experimental) Plugin execution definition.
852
1110
 
853
1111
  :param goals: (experimental) Which Maven goals this plugin should be associated with.
854
1112
  :param id: (experimental) The ID.
1113
+ :param configuration: (experimental) Execution key/value configuration. Default: {}
855
1114
  :param phase: (experimental) The phase in which the plugin should execute.
856
1115
 
857
1116
  :stability: experimental
@@ -860,11 +1119,14 @@ class PluginExecution:
860
1119
  type_hints = typing.get_type_hints(_typecheckingstub__b8b1bc2eb1ab79c9e54c8b62fd341a87dd82eec6a2b2ec76a5fdb6f1c51d5444)
861
1120
  check_type(argname="argument goals", value=goals, expected_type=type_hints["goals"])
862
1121
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1122
+ check_type(argname="argument configuration", value=configuration, expected_type=type_hints["configuration"])
863
1123
  check_type(argname="argument phase", value=phase, expected_type=type_hints["phase"])
864
1124
  self._values: typing.Dict[builtins.str, typing.Any] = {
865
1125
  "goals": goals,
866
1126
  "id": id,
867
1127
  }
1128
+ if configuration is not None:
1129
+ self._values["configuration"] = configuration
868
1130
  if phase is not None:
869
1131
  self._values["phase"] = phase
870
1132
 
@@ -888,6 +1150,19 @@ class PluginExecution:
888
1150
  assert result is not None, "Required property 'id' is missing"
889
1151
  return typing.cast(builtins.str, result)
890
1152
 
1153
+ @builtins.property
1154
+ def configuration(
1155
+ self,
1156
+ ) -> typing.Optional[typing.Mapping[builtins.str, typing.Any]]:
1157
+ '''(experimental) Execution key/value configuration.
1158
+
1159
+ :default: {}
1160
+
1161
+ :stability: experimental
1162
+ '''
1163
+ result = self._values.get("configuration")
1164
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Any]], result)
1165
+
891
1166
  @builtins.property
892
1167
  def phase(self) -> typing.Optional[builtins.str]:
893
1168
  '''(experimental) The phase in which the plugin should execute.
@@ -1015,6 +1290,7 @@ class Pom(_Component_2b0ad27f, metaclass=jsii.JSIIMeta, jsii_type="projen.java.P
1015
1290
  version: builtins.str,
1016
1291
  description: typing.Optional[builtins.str] = None,
1017
1292
  packaging: typing.Optional[builtins.str] = None,
1293
+ parent_pom: typing.Optional[typing.Union[ParentPom, typing.Dict[builtins.str, typing.Any]]] = None,
1018
1294
  url: typing.Optional[builtins.str] = None,
1019
1295
  ) -> None:
1020
1296
  '''
@@ -1024,6 +1300,7 @@ class Pom(_Component_2b0ad27f, metaclass=jsii.JSIIMeta, jsii_type="projen.java.P
1024
1300
  :param version: (experimental) This is the last piece of the naming puzzle. groupId:artifactId denotes a single project but they cannot delineate which incarnation of that project we are talking about. Do we want the junit:junit of 2018 (version 4.12), or of 2007 (version 3.8.2)? In short: code changes, those changes should be versioned, and this element keeps those versions in line. It is also used within an artifact's repository to separate versions from each other. my-project version 1.0 files live in the directory structure $M2_REPO/org/codehaus/mojo/my-project/1.0. Default: "0.1.0"
1025
1301
  :param description: (experimental) Description of a project is always good. Although this should not replace formal documentation, a quick comment to any readers of the POM is always helpful. Default: undefined
1026
1302
  :param packaging: (experimental) Project packaging format. Default: "jar"
1303
+ :param parent_pom: (experimental) A Parent Pom can be used to have a child project inherit properties/plugins/ect in order to reduce duplication and keep standards across a large amount of repos. Default: undefined
1027
1304
  :param url: (experimental) The URL, like the name, is not required. This is a nice gesture for projects users, however, so that they know where the project lives. Default: undefined
1028
1305
 
1029
1306
  :stability: experimental
@@ -1037,6 +1314,7 @@ class Pom(_Component_2b0ad27f, metaclass=jsii.JSIIMeta, jsii_type="projen.java.P
1037
1314
  version=version,
1038
1315
  description=description,
1039
1316
  packaging=packaging,
1317
+ parent_pom=parent_pom,
1040
1318
  url=url,
1041
1319
  )
1042
1320
 
@@ -1086,6 +1364,38 @@ class Pom(_Component_2b0ad27f, metaclass=jsii.JSIIMeta, jsii_type="projen.java.P
1086
1364
 
1087
1365
  return typing.cast(_Dependency_f510e013, jsii.invoke(self, "addPlugin", [spec, options]))
1088
1366
 
1367
+ @jsii.member(jsii_name="addPluginRepository")
1368
+ def add_plugin_repository(
1369
+ self,
1370
+ *,
1371
+ id: builtins.str,
1372
+ url: builtins.str,
1373
+ layout: typing.Optional[builtins.str] = None,
1374
+ name: typing.Optional[builtins.str] = None,
1375
+ releases: typing.Optional[typing.Union[MavenRepositoryPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
1376
+ snapshots: typing.Optional[typing.Union[MavenRepositoryPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
1377
+ ) -> None:
1378
+ '''
1379
+ :param id: (experimental) The identifier for the repository.
1380
+ :param url: (experimental) The url of the repository.
1381
+ :param layout: (experimental) The layout of the repository.
1382
+ :param name: (experimental) The name of the repository.
1383
+ :param releases: (experimental) Repository Policy for Releases.
1384
+ :param snapshots: (experimental) Repository Policy for Snapshots.
1385
+
1386
+ :stability: experimental
1387
+ '''
1388
+ repository = MavenRepository(
1389
+ id=id,
1390
+ url=url,
1391
+ layout=layout,
1392
+ name=name,
1393
+ releases=releases,
1394
+ snapshots=snapshots,
1395
+ )
1396
+
1397
+ return typing.cast(None, jsii.invoke(self, "addPluginRepository", [repository]))
1398
+
1089
1399
  @jsii.member(jsii_name="addProperty")
1090
1400
  def add_property(self, key: builtins.str, value: builtins.str) -> None:
1091
1401
  '''(experimental) Adds a key/value property to the pom.
@@ -1109,6 +1419,8 @@ class Pom(_Component_2b0ad27f, metaclass=jsii.JSIIMeta, jsii_type="projen.java.P
1109
1419
  url: builtins.str,
1110
1420
  layout: typing.Optional[builtins.str] = None,
1111
1421
  name: typing.Optional[builtins.str] = None,
1422
+ releases: typing.Optional[typing.Union[MavenRepositoryPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
1423
+ snapshots: typing.Optional[typing.Union[MavenRepositoryPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
1112
1424
  ) -> None:
1113
1425
  '''(experimental) Adds a repository to the pom.
1114
1426
 
@@ -1116,10 +1428,19 @@ class Pom(_Component_2b0ad27f, metaclass=jsii.JSIIMeta, jsii_type="projen.java.P
1116
1428
  :param url: (experimental) The url of the repository.
1117
1429
  :param layout: (experimental) The layout of the repository.
1118
1430
  :param name: (experimental) The name of the repository.
1431
+ :param releases: (experimental) Repository Policy for Releases.
1432
+ :param snapshots: (experimental) Repository Policy for Snapshots.
1119
1433
 
1120
1434
  :stability: experimental
1121
1435
  '''
1122
- repository = MavenRepository(id=id, url=url, layout=layout, name=name)
1436
+ repository = MavenRepository(
1437
+ id=id,
1438
+ url=url,
1439
+ layout=layout,
1440
+ name=name,
1441
+ releases=releases,
1442
+ snapshots=snapshots,
1443
+ )
1123
1444
 
1124
1445
  return typing.cast(None, jsii.invoke(self, "addRepository", [repository]))
1125
1446
 
@@ -1218,6 +1539,7 @@ class Pom(_Component_2b0ad27f, metaclass=jsii.JSIIMeta, jsii_type="projen.java.P
1218
1539
  "version": "version",
1219
1540
  "description": "description",
1220
1541
  "packaging": "packaging",
1542
+ "parent_pom": "parentPom",
1221
1543
  "url": "url",
1222
1544
  },
1223
1545
  )
@@ -1230,6 +1552,7 @@ class PomOptions:
1230
1552
  version: builtins.str,
1231
1553
  description: typing.Optional[builtins.str] = None,
1232
1554
  packaging: typing.Optional[builtins.str] = None,
1555
+ parent_pom: typing.Optional[typing.Union[ParentPom, typing.Dict[builtins.str, typing.Any]]] = None,
1233
1556
  url: typing.Optional[builtins.str] = None,
1234
1557
  ) -> None:
1235
1558
  '''(experimental) Options for ``Pom``.
@@ -1239,10 +1562,13 @@ class PomOptions:
1239
1562
  :param version: (experimental) This is the last piece of the naming puzzle. groupId:artifactId denotes a single project but they cannot delineate which incarnation of that project we are talking about. Do we want the junit:junit of 2018 (version 4.12), or of 2007 (version 3.8.2)? In short: code changes, those changes should be versioned, and this element keeps those versions in line. It is also used within an artifact's repository to separate versions from each other. my-project version 1.0 files live in the directory structure $M2_REPO/org/codehaus/mojo/my-project/1.0. Default: "0.1.0"
1240
1563
  :param description: (experimental) Description of a project is always good. Although this should not replace formal documentation, a quick comment to any readers of the POM is always helpful. Default: undefined
1241
1564
  :param packaging: (experimental) Project packaging format. Default: "jar"
1565
+ :param parent_pom: (experimental) A Parent Pom can be used to have a child project inherit properties/plugins/ect in order to reduce duplication and keep standards across a large amount of repos. Default: undefined
1242
1566
  :param url: (experimental) The URL, like the name, is not required. This is a nice gesture for projects users, however, so that they know where the project lives. Default: undefined
1243
1567
 
1244
1568
  :stability: experimental
1245
1569
  '''
1570
+ if isinstance(parent_pom, dict):
1571
+ parent_pom = ParentPom(**parent_pom)
1246
1572
  if __debug__:
1247
1573
  type_hints = typing.get_type_hints(_typecheckingstub__468190ed1f2feac4431fa6e9f5cc22eb8dbb01cd1c5d3bdfdac29f07c4370851)
1248
1574
  check_type(argname="argument artifact_id", value=artifact_id, expected_type=type_hints["artifact_id"])
@@ -1250,6 +1576,7 @@ class PomOptions:
1250
1576
  check_type(argname="argument version", value=version, expected_type=type_hints["version"])
1251
1577
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
1252
1578
  check_type(argname="argument packaging", value=packaging, expected_type=type_hints["packaging"])
1579
+ check_type(argname="argument parent_pom", value=parent_pom, expected_type=type_hints["parent_pom"])
1253
1580
  check_type(argname="argument url", value=url, expected_type=type_hints["url"])
1254
1581
  self._values: typing.Dict[builtins.str, typing.Any] = {
1255
1582
  "artifact_id": artifact_id,
@@ -1260,6 +1587,8 @@ class PomOptions:
1260
1587
  self._values["description"] = description
1261
1588
  if packaging is not None:
1262
1589
  self._values["packaging"] = packaging
1590
+ if parent_pom is not None:
1591
+ self._values["parent_pom"] = parent_pom
1263
1592
  if url is not None:
1264
1593
  self._values["url"] = url
1265
1594
 
@@ -1360,6 +1689,18 @@ class PomOptions:
1360
1689
  result = self._values.get("packaging")
1361
1690
  return typing.cast(typing.Optional[builtins.str], result)
1362
1691
 
1692
+ @builtins.property
1693
+ def parent_pom(self) -> typing.Optional[ParentPom]:
1694
+ '''(experimental) A Parent Pom can be used to have a child project inherit properties/plugins/ect in order to reduce duplication and keep standards across a large amount of repos.
1695
+
1696
+ :default: undefined
1697
+
1698
+ :stability: experimental
1699
+ :featured: true
1700
+ '''
1701
+ result = self._values.get("parent_pom")
1702
+ return typing.cast(typing.Optional[ParentPom], result)
1703
+
1363
1704
  @builtins.property
1364
1705
  def url(self) -> typing.Optional[builtins.str]:
1365
1706
  '''(experimental) The URL, like the name, is not required.
@@ -1539,6 +1880,56 @@ class ProjenrcOptions:
1539
1880
  )
1540
1881
 
1541
1882
 
1883
+ class UpdatePolicy(metaclass=jsii.JSIIMeta, jsii_type="projen.java.UpdatePolicy"):
1884
+ '''
1885
+ :stability: experimental
1886
+ '''
1887
+
1888
+ def __init__(self) -> None:
1889
+ '''
1890
+ :stability: experimental
1891
+ '''
1892
+ jsii.create(self.__class__, self, [])
1893
+
1894
+ @jsii.member(jsii_name="interval")
1895
+ @builtins.classmethod
1896
+ def interval(cls, minutes: jsii.Number) -> builtins.str:
1897
+ '''(experimental) Updates at an interval of X minutes.
1898
+
1899
+ :param minutes: -
1900
+
1901
+ :stability: experimental
1902
+ '''
1903
+ if __debug__:
1904
+ type_hints = typing.get_type_hints(_typecheckingstub__0bf8e37b8aa70ecfb764a100f3a50eabbce221f62cf2cc199c929b8132fe42cc)
1905
+ check_type(argname="argument minutes", value=minutes, expected_type=type_hints["minutes"])
1906
+ return typing.cast(builtins.str, jsii.sinvoke(cls, "interval", [minutes]))
1907
+
1908
+ @jsii.python.classproperty
1909
+ @jsii.member(jsii_name="ALWAYS")
1910
+ def ALWAYS(cls) -> builtins.str:
1911
+ '''
1912
+ :stability: experimental
1913
+ '''
1914
+ return typing.cast(builtins.str, jsii.sget(cls, "ALWAYS"))
1915
+
1916
+ @jsii.python.classproperty
1917
+ @jsii.member(jsii_name="DAILY")
1918
+ def DAILY(cls) -> builtins.str:
1919
+ '''
1920
+ :stability: experimental
1921
+ '''
1922
+ return typing.cast(builtins.str, jsii.sget(cls, "DAILY"))
1923
+
1924
+ @jsii.python.classproperty
1925
+ @jsii.member(jsii_name="NEVER")
1926
+ def NEVER(cls) -> builtins.str:
1927
+ '''
1928
+ :stability: experimental
1929
+ '''
1930
+ return typing.cast(builtins.str, jsii.sget(cls, "NEVER"))
1931
+
1932
+
1542
1933
  @jsii.data_type(
1543
1934
  jsii_type="projen.java.JavaProjectCommonOptions",
1544
1935
  jsii_struct_bases=[_GitHubProjectOptions_547f2d08, PomOptions],
@@ -1577,6 +1968,7 @@ class ProjenrcOptions:
1577
1968
  "version": "version",
1578
1969
  "description": "description",
1579
1970
  "packaging": "packaging",
1971
+ "parent_pom": "parentPom",
1580
1972
  "url": "url",
1581
1973
  "compile_options": "compileOptions",
1582
1974
  "deps": "deps",
@@ -1627,6 +2019,7 @@ class JavaProjectCommonOptions(_GitHubProjectOptions_547f2d08, PomOptions):
1627
2019
  version: builtins.str,
1628
2020
  description: typing.Optional[builtins.str] = None,
1629
2021
  packaging: typing.Optional[builtins.str] = None,
2022
+ parent_pom: typing.Optional[typing.Union[ParentPom, typing.Dict[builtins.str, typing.Any]]] = None,
1630
2023
  url: typing.Optional[builtins.str] = None,
1631
2024
  compile_options: typing.Optional[typing.Union[MavenCompileOptions, typing.Dict[builtins.str, typing.Any]]] = None,
1632
2025
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -1674,6 +2067,7 @@ class JavaProjectCommonOptions(_GitHubProjectOptions_547f2d08, PomOptions):
1674
2067
  :param version: (experimental) This is the last piece of the naming puzzle. groupId:artifactId denotes a single project but they cannot delineate which incarnation of that project we are talking about. Do we want the junit:junit of 2018 (version 4.12), or of 2007 (version 3.8.2)? In short: code changes, those changes should be versioned, and this element keeps those versions in line. It is also used within an artifact's repository to separate versions from each other. my-project version 1.0 files live in the directory structure $M2_REPO/org/codehaus/mojo/my-project/1.0. Default: "0.1.0"
1675
2068
  :param description: (experimental) Description of a project is always good. Although this should not replace formal documentation, a quick comment to any readers of the POM is always helpful. Default: undefined
1676
2069
  :param packaging: (experimental) Project packaging format. Default: "jar"
2070
+ :param parent_pom: (experimental) A Parent Pom can be used to have a child project inherit properties/plugins/ect in order to reduce duplication and keep standards across a large amount of repos. Default: undefined
1677
2071
  :param url: (experimental) The URL, like the name, is not required. This is a nice gesture for projects users, however, so that they know where the project lives. Default: undefined
1678
2072
  :param compile_options: (experimental) Compile options. Default: - defaults
1679
2073
  :param deps: (experimental) List of runtime dependencies for this project. Dependencies use the format: ``<groupId>/<artifactId>@<semver>`` Additional dependencies can be added via ``project.addDependency()``. Default: []
@@ -1709,6 +2103,8 @@ class JavaProjectCommonOptions(_GitHubProjectOptions_547f2d08, PomOptions):
1709
2103
  readme = _SampleReadmeProps_3518b03b(**readme)
1710
2104
  if isinstance(stale_options, dict):
1711
2105
  stale_options = _StaleOptions_929db764(**stale_options)
2106
+ if isinstance(parent_pom, dict):
2107
+ parent_pom = ParentPom(**parent_pom)
1712
2108
  if isinstance(compile_options, dict):
1713
2109
  compile_options = MavenCompileOptions(**compile_options)
1714
2110
  if isinstance(junit_options, dict):
@@ -1753,6 +2149,7 @@ class JavaProjectCommonOptions(_GitHubProjectOptions_547f2d08, PomOptions):
1753
2149
  check_type(argname="argument version", value=version, expected_type=type_hints["version"])
1754
2150
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
1755
2151
  check_type(argname="argument packaging", value=packaging, expected_type=type_hints["packaging"])
2152
+ check_type(argname="argument parent_pom", value=parent_pom, expected_type=type_hints["parent_pom"])
1756
2153
  check_type(argname="argument url", value=url, expected_type=type_hints["url"])
1757
2154
  check_type(argname="argument compile_options", value=compile_options, expected_type=type_hints["compile_options"])
1758
2155
  check_type(argname="argument deps", value=deps, expected_type=type_hints["deps"])
@@ -1829,6 +2226,8 @@ class JavaProjectCommonOptions(_GitHubProjectOptions_547f2d08, PomOptions):
1829
2226
  self._values["description"] = description
1830
2227
  if packaging is not None:
1831
2228
  self._values["packaging"] = packaging
2229
+ if parent_pom is not None:
2230
+ self._values["parent_pom"] = parent_pom
1832
2231
  if url is not None:
1833
2232
  self._values["url"] = url
1834
2233
  if compile_options is not None:
@@ -2299,6 +2698,18 @@ class JavaProjectCommonOptions(_GitHubProjectOptions_547f2d08, PomOptions):
2299
2698
  result = self._values.get("packaging")
2300
2699
  return typing.cast(typing.Optional[builtins.str], result)
2301
2700
 
2701
+ @builtins.property
2702
+ def parent_pom(self) -> typing.Optional[ParentPom]:
2703
+ '''(experimental) A Parent Pom can be used to have a child project inherit properties/plugins/ect in order to reduce duplication and keep standards across a large amount of repos.
2704
+
2705
+ :default: undefined
2706
+
2707
+ :stability: experimental
2708
+ :featured: true
2709
+ '''
2710
+ result = self._values.get("parent_pom")
2711
+ return typing.cast(typing.Optional[ParentPom], result)
2712
+
2302
2713
  @builtins.property
2303
2714
  def url(self) -> typing.Optional[builtins.str]:
2304
2715
  '''(experimental) The URL, like the name, is not required.
@@ -2476,6 +2887,7 @@ class JavaProjectCommonOptions(_GitHubProjectOptions_547f2d08, PomOptions):
2476
2887
  "version": "version",
2477
2888
  "description": "description",
2478
2889
  "packaging": "packaging",
2890
+ "parent_pom": "parentPom",
2479
2891
  "url": "url",
2480
2892
  "compile_options": "compileOptions",
2481
2893
  "deps": "deps",
@@ -2528,6 +2940,7 @@ class JavaProjectOptions(JavaProjectCommonOptions):
2528
2940
  version: builtins.str,
2529
2941
  description: typing.Optional[builtins.str] = None,
2530
2942
  packaging: typing.Optional[builtins.str] = None,
2943
+ parent_pom: typing.Optional[typing.Union[ParentPom, typing.Dict[builtins.str, typing.Any]]] = None,
2531
2944
  url: typing.Optional[builtins.str] = None,
2532
2945
  compile_options: typing.Optional[typing.Union[MavenCompileOptions, typing.Dict[builtins.str, typing.Any]]] = None,
2533
2946
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -2577,6 +2990,7 @@ class JavaProjectOptions(JavaProjectCommonOptions):
2577
2990
  :param version: (experimental) This is the last piece of the naming puzzle. groupId:artifactId denotes a single project but they cannot delineate which incarnation of that project we are talking about. Do we want the junit:junit of 2018 (version 4.12), or of 2007 (version 3.8.2)? In short: code changes, those changes should be versioned, and this element keeps those versions in line. It is also used within an artifact's repository to separate versions from each other. my-project version 1.0 files live in the directory structure $M2_REPO/org/codehaus/mojo/my-project/1.0. Default: "0.1.0"
2578
2991
  :param description: (experimental) Description of a project is always good. Although this should not replace formal documentation, a quick comment to any readers of the POM is always helpful. Default: undefined
2579
2992
  :param packaging: (experimental) Project packaging format. Default: "jar"
2993
+ :param parent_pom: (experimental) A Parent Pom can be used to have a child project inherit properties/plugins/ect in order to reduce duplication and keep standards across a large amount of repos. Default: undefined
2580
2994
  :param url: (experimental) The URL, like the name, is not required. This is a nice gesture for projects users, however, so that they know where the project lives. Default: undefined
2581
2995
  :param compile_options: (experimental) Compile options. Default: - defaults
2582
2996
  :param deps: (experimental) List of runtime dependencies for this project. Dependencies use the format: ``<groupId>/<artifactId>@<semver>`` Additional dependencies can be added via ``project.addDependency()``. Default: []
@@ -2614,6 +3028,8 @@ class JavaProjectOptions(JavaProjectCommonOptions):
2614
3028
  readme = _SampleReadmeProps_3518b03b(**readme)
2615
3029
  if isinstance(stale_options, dict):
2616
3030
  stale_options = _StaleOptions_929db764(**stale_options)
3031
+ if isinstance(parent_pom, dict):
3032
+ parent_pom = ParentPom(**parent_pom)
2617
3033
  if isinstance(compile_options, dict):
2618
3034
  compile_options = MavenCompileOptions(**compile_options)
2619
3035
  if isinstance(junit_options, dict):
@@ -2658,6 +3074,7 @@ class JavaProjectOptions(JavaProjectCommonOptions):
2658
3074
  check_type(argname="argument version", value=version, expected_type=type_hints["version"])
2659
3075
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
2660
3076
  check_type(argname="argument packaging", value=packaging, expected_type=type_hints["packaging"])
3077
+ check_type(argname="argument parent_pom", value=parent_pom, expected_type=type_hints["parent_pom"])
2661
3078
  check_type(argname="argument url", value=url, expected_type=type_hints["url"])
2662
3079
  check_type(argname="argument compile_options", value=compile_options, expected_type=type_hints["compile_options"])
2663
3080
  check_type(argname="argument deps", value=deps, expected_type=type_hints["deps"])
@@ -2736,6 +3153,8 @@ class JavaProjectOptions(JavaProjectCommonOptions):
2736
3153
  self._values["description"] = description
2737
3154
  if packaging is not None:
2738
3155
  self._values["packaging"] = packaging
3156
+ if parent_pom is not None:
3157
+ self._values["parent_pom"] = parent_pom
2739
3158
  if url is not None:
2740
3159
  self._values["url"] = url
2741
3160
  if compile_options is not None:
@@ -3210,6 +3629,18 @@ class JavaProjectOptions(JavaProjectCommonOptions):
3210
3629
  result = self._values.get("packaging")
3211
3630
  return typing.cast(typing.Optional[builtins.str], result)
3212
3631
 
3632
+ @builtins.property
3633
+ def parent_pom(self) -> typing.Optional[ParentPom]:
3634
+ '''(experimental) A Parent Pom can be used to have a child project inherit properties/plugins/ect in order to reduce duplication and keep standards across a large amount of repos.
3635
+
3636
+ :default: undefined
3637
+
3638
+ :stability: experimental
3639
+ :featured: true
3640
+ '''
3641
+ result = self._values.get("parent_pom")
3642
+ return typing.cast(typing.Optional[ParentPom], result)
3643
+
3213
3644
  @builtins.property
3214
3645
  def url(self) -> typing.Optional[builtins.str]:
3215
3646
  '''(experimental) The URL, like the name, is not required.
@@ -3372,6 +3803,7 @@ class JavaProjectOptions(JavaProjectCommonOptions):
3372
3803
 
3373
3804
 
3374
3805
  __all__ = [
3806
+ "ChecksumPolicy",
3375
3807
  "JavaProject",
3376
3808
  "JavaProjectCommonOptions",
3377
3809
  "JavaProjectOptions",
@@ -3382,14 +3814,17 @@ __all__ = [
3382
3814
  "MavenPackaging",
3383
3815
  "MavenPackagingOptions",
3384
3816
  "MavenRepository",
3817
+ "MavenRepositoryPolicy",
3385
3818
  "MavenSample",
3386
3819
  "MavenSampleOptions",
3820
+ "ParentPom",
3387
3821
  "PluginExecution",
3388
3822
  "PluginOptions",
3389
3823
  "Pom",
3390
3824
  "PomOptions",
3391
3825
  "Projenrc",
3392
3826
  "ProjenrcOptions",
3827
+ "UpdatePolicy",
3393
3828
  ]
3394
3829
 
3395
3830
  publication.publish()
@@ -3481,6 +3916,17 @@ def _typecheckingstub__12e8ee88cd330385feef214bd08b3bc44314dc15ddbcd48e4f74c198b
3481
3916
  url: builtins.str,
3482
3917
  layout: typing.Optional[builtins.str] = None,
3483
3918
  name: typing.Optional[builtins.str] = None,
3919
+ releases: typing.Optional[typing.Union[MavenRepositoryPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
3920
+ snapshots: typing.Optional[typing.Union[MavenRepositoryPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
3921
+ ) -> None:
3922
+ """Type checking stubs"""
3923
+ pass
3924
+
3925
+ def _typecheckingstub__041e104cddeb68a13d0b79cfdce8653000ee58d2c7cef3088a2c8717d7f02ebf(
3926
+ *,
3927
+ checksum_policy: typing.Optional[ChecksumPolicy] = None,
3928
+ enabled: typing.Optional[builtins.bool] = None,
3929
+ update_policy: typing.Optional[UpdatePolicy] = None,
3484
3930
  ) -> None:
3485
3931
  """Type checking stubs"""
3486
3932
  pass
@@ -3500,10 +3946,21 @@ def _typecheckingstub__6be9d5c5edaace101d0e427b56fb2e89f3b2e6ac01bd59e3cb1d0743d
3500
3946
  """Type checking stubs"""
3501
3947
  pass
3502
3948
 
3949
+ def _typecheckingstub__1f47e5dc92031bfaa3a639437d282aedc130d8a3857314c5a71a2ca063798f40(
3950
+ *,
3951
+ artifact_id: typing.Optional[builtins.str] = None,
3952
+ group_id: typing.Optional[builtins.str] = None,
3953
+ relative_path: typing.Optional[builtins.str] = None,
3954
+ version: typing.Optional[builtins.str] = None,
3955
+ ) -> None:
3956
+ """Type checking stubs"""
3957
+ pass
3958
+
3503
3959
  def _typecheckingstub__b8b1bc2eb1ab79c9e54c8b62fd341a87dd82eec6a2b2ec76a5fdb6f1c51d5444(
3504
3960
  *,
3505
3961
  goals: typing.Sequence[builtins.str],
3506
3962
  id: builtins.str,
3963
+ configuration: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
3507
3964
  phase: typing.Optional[builtins.str] = None,
3508
3965
  ) -> None:
3509
3966
  """Type checking stubs"""
@@ -3526,6 +3983,7 @@ def _typecheckingstub__e3638a11786e70b5de428bf2064d32761537778501eb3cb189b4457c7
3526
3983
  version: builtins.str,
3527
3984
  description: typing.Optional[builtins.str] = None,
3528
3985
  packaging: typing.Optional[builtins.str] = None,
3986
+ parent_pom: typing.Optional[typing.Union[ParentPom, typing.Dict[builtins.str, typing.Any]]] = None,
3529
3987
  url: typing.Optional[builtins.str] = None,
3530
3988
  ) -> None:
3531
3989
  """Type checking stubs"""
@@ -3567,6 +4025,7 @@ def _typecheckingstub__468190ed1f2feac4431fa6e9f5cc22eb8dbb01cd1c5d3bdfdac29f07c
3567
4025
  version: builtins.str,
3568
4026
  description: typing.Optional[builtins.str] = None,
3569
4027
  packaging: typing.Optional[builtins.str] = None,
4028
+ parent_pom: typing.Optional[typing.Union[ParentPom, typing.Dict[builtins.str, typing.Any]]] = None,
3570
4029
  url: typing.Optional[builtins.str] = None,
3571
4030
  ) -> None:
3572
4031
  """Type checking stubs"""
@@ -3592,6 +4051,12 @@ def _typecheckingstub__6ae2ae91be40e1fe4218504ad4a0a84a64d14b1c1274575f956490848
3592
4051
  """Type checking stubs"""
3593
4052
  pass
3594
4053
 
4054
+ def _typecheckingstub__0bf8e37b8aa70ecfb764a100f3a50eabbce221f62cf2cc199c929b8132fe42cc(
4055
+ minutes: jsii.Number,
4056
+ ) -> None:
4057
+ """Type checking stubs"""
4058
+ pass
4059
+
3595
4060
  def _typecheckingstub__95d1347bcc9244ea45fe2d94ee57536743a6579b8c3cbeefd1a9832f2acb54b0(
3596
4061
  *,
3597
4062
  name: builtins.str,
@@ -3628,6 +4093,7 @@ def _typecheckingstub__95d1347bcc9244ea45fe2d94ee57536743a6579b8c3cbeefd1a9832f2
3628
4093
  version: builtins.str,
3629
4094
  description: typing.Optional[builtins.str] = None,
3630
4095
  packaging: typing.Optional[builtins.str] = None,
4096
+ parent_pom: typing.Optional[typing.Union[ParentPom, typing.Dict[builtins.str, typing.Any]]] = None,
3631
4097
  url: typing.Optional[builtins.str] = None,
3632
4098
  compile_options: typing.Optional[typing.Union[MavenCompileOptions, typing.Dict[builtins.str, typing.Any]]] = None,
3633
4099
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -3678,6 +4144,7 @@ def _typecheckingstub__9bd204911b78eb490a0ff7d3863868024abfc54a7f5ababba6fe97db2
3678
4144
  version: builtins.str,
3679
4145
  description: typing.Optional[builtins.str] = None,
3680
4146
  packaging: typing.Optional[builtins.str] = None,
4147
+ parent_pom: typing.Optional[typing.Union[ParentPom, typing.Dict[builtins.str, typing.Any]]] = None,
3681
4148
  url: typing.Optional[builtins.str] = None,
3682
4149
  compile_options: typing.Optional[typing.Union[MavenCompileOptions, typing.Dict[builtins.str, typing.Any]]] = None,
3683
4150
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,