projen 0.81.17__py3-none-any.whl → 0.98.25__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
projen/java/__init__.py CHANGED
@@ -11,7 +11,22 @@ import jsii
11
11
  import publication
12
12
  import typing_extensions
13
13
 
14
- from typeguard import check_type
14
+ import typeguard
15
+ from importlib.metadata import version as _metadata_package_version
16
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
17
+
18
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
19
+ if TYPEGUARD_MAJOR_VERSION <= 2:
20
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
21
+ else:
22
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
23
+ pass
24
+ else:
25
+ if TYPEGUARD_MAJOR_VERSION == 3:
26
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
27
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
28
+ else:
29
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
15
30
 
16
31
  from .._jsii import *
17
32
 
@@ -40,6 +55,26 @@ from ..github import (
40
55
  )
41
56
 
42
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
+
43
78
  class JavaProject(
44
79
  _GitHubProject_c48bc7ea,
45
80
  metaclass=jsii.JSIIMeta,
@@ -689,7 +724,14 @@ class MavenPackagingOptions:
689
724
  @jsii.data_type(
690
725
  jsii_type="projen.java.MavenRepository",
691
726
  jsii_struct_bases=[],
692
- 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
+ },
693
735
  )
694
736
  class MavenRepository:
695
737
  def __init__(
@@ -699,6 +741,8 @@ class MavenRepository:
699
741
  url: builtins.str,
700
742
  layout: typing.Optional[builtins.str] = None,
701
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,
702
746
  ) -> None:
703
747
  '''(experimental) Represents a Maven repository.
704
748
 
@@ -706,16 +750,24 @@ class MavenRepository:
706
750
  :param url: (experimental) The url of the repository.
707
751
  :param layout: (experimental) The layout of the repository.
708
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.
709
755
 
710
756
  :see: https://maven.apache.org/guides/introduction/introduction-to-repositories.html
711
757
  :stability: experimental
712
758
  '''
759
+ if isinstance(releases, dict):
760
+ releases = MavenRepositoryPolicy(**releases)
761
+ if isinstance(snapshots, dict):
762
+ snapshots = MavenRepositoryPolicy(**snapshots)
713
763
  if __debug__:
714
764
  type_hints = typing.get_type_hints(_typecheckingstub__12e8ee88cd330385feef214bd08b3bc44314dc15ddbcd48e4f74c198bda84bde)
715
765
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
716
766
  check_type(argname="argument url", value=url, expected_type=type_hints["url"])
717
767
  check_type(argname="argument layout", value=layout, expected_type=type_hints["layout"])
718
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"])
719
771
  self._values: typing.Dict[builtins.str, typing.Any] = {
720
772
  "id": id,
721
773
  "url": url,
@@ -724,6 +776,10 @@ class MavenRepository:
724
776
  self._values["layout"] = layout
725
777
  if name is not None:
726
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
727
783
 
728
784
  @builtins.property
729
785
  def id(self) -> builtins.str:
@@ -763,6 +819,24 @@ class MavenRepository:
763
819
  result = self._values.get("name")
764
820
  return typing.cast(typing.Optional[builtins.str], result)
765
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
+
766
840
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
767
841
  return isinstance(rhs, self.__class__) and rhs._values == self._values
768
842
 
@@ -775,6 +849,87 @@ class MavenRepository:
775
849
  )
776
850
 
777
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
+
778
933
  class MavenSample(
779
934
  _Component_2b0ad27f,
780
935
  metaclass=jsii.JSIIMeta,
@@ -935,7 +1090,12 @@ class ParentPom:
935
1090
  @jsii.data_type(
936
1091
  jsii_type="projen.java.PluginExecution",
937
1092
  jsii_struct_bases=[],
938
- name_mapping={"goals": "goals", "id": "id", "phase": "phase"},
1093
+ name_mapping={
1094
+ "goals": "goals",
1095
+ "id": "id",
1096
+ "configuration": "configuration",
1097
+ "phase": "phase",
1098
+ },
939
1099
  )
940
1100
  class PluginExecution:
941
1101
  def __init__(
@@ -943,12 +1103,14 @@ class PluginExecution:
943
1103
  *,
944
1104
  goals: typing.Sequence[builtins.str],
945
1105
  id: builtins.str,
1106
+ configuration: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
946
1107
  phase: typing.Optional[builtins.str] = None,
947
1108
  ) -> None:
948
1109
  '''(experimental) Plugin execution definition.
949
1110
 
950
1111
  :param goals: (experimental) Which Maven goals this plugin should be associated with.
951
1112
  :param id: (experimental) The ID.
1113
+ :param configuration: (experimental) Execution key/value configuration. Default: {}
952
1114
  :param phase: (experimental) The phase in which the plugin should execute.
953
1115
 
954
1116
  :stability: experimental
@@ -957,11 +1119,14 @@ class PluginExecution:
957
1119
  type_hints = typing.get_type_hints(_typecheckingstub__b8b1bc2eb1ab79c9e54c8b62fd341a87dd82eec6a2b2ec76a5fdb6f1c51d5444)
958
1120
  check_type(argname="argument goals", value=goals, expected_type=type_hints["goals"])
959
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"])
960
1123
  check_type(argname="argument phase", value=phase, expected_type=type_hints["phase"])
961
1124
  self._values: typing.Dict[builtins.str, typing.Any] = {
962
1125
  "goals": goals,
963
1126
  "id": id,
964
1127
  }
1128
+ if configuration is not None:
1129
+ self._values["configuration"] = configuration
965
1130
  if phase is not None:
966
1131
  self._values["phase"] = phase
967
1132
 
@@ -985,6 +1150,19 @@ class PluginExecution:
985
1150
  assert result is not None, "Required property 'id' is missing"
986
1151
  return typing.cast(builtins.str, result)
987
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
+
988
1166
  @builtins.property
989
1167
  def phase(self) -> typing.Optional[builtins.str]:
990
1168
  '''(experimental) The phase in which the plugin should execute.
@@ -1186,6 +1364,38 @@ class Pom(_Component_2b0ad27f, metaclass=jsii.JSIIMeta, jsii_type="projen.java.P
1186
1364
 
1187
1365
  return typing.cast(_Dependency_f510e013, jsii.invoke(self, "addPlugin", [spec, options]))
1188
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
+
1189
1399
  @jsii.member(jsii_name="addProperty")
1190
1400
  def add_property(self, key: builtins.str, value: builtins.str) -> None:
1191
1401
  '''(experimental) Adds a key/value property to the pom.
@@ -1209,6 +1419,8 @@ class Pom(_Component_2b0ad27f, metaclass=jsii.JSIIMeta, jsii_type="projen.java.P
1209
1419
  url: builtins.str,
1210
1420
  layout: typing.Optional[builtins.str] = None,
1211
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,
1212
1424
  ) -> None:
1213
1425
  '''(experimental) Adds a repository to the pom.
1214
1426
 
@@ -1216,10 +1428,19 @@ class Pom(_Component_2b0ad27f, metaclass=jsii.JSIIMeta, jsii_type="projen.java.P
1216
1428
  :param url: (experimental) The url of the repository.
1217
1429
  :param layout: (experimental) The layout of the repository.
1218
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.
1219
1433
 
1220
1434
  :stability: experimental
1221
1435
  '''
1222
- 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
+ )
1223
1444
 
1224
1445
  return typing.cast(None, jsii.invoke(self, "addRepository", [repository]))
1225
1446
 
@@ -1659,6 +1880,56 @@ class ProjenrcOptions:
1659
1880
  )
1660
1881
 
1661
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
+
1662
1933
  @jsii.data_type(
1663
1934
  jsii_type="projen.java.JavaProjectCommonOptions",
1664
1935
  jsii_struct_bases=[_GitHubProjectOptions_547f2d08, PomOptions],
@@ -3532,6 +3803,7 @@ class JavaProjectOptions(JavaProjectCommonOptions):
3532
3803
 
3533
3804
 
3534
3805
  __all__ = [
3806
+ "ChecksumPolicy",
3535
3807
  "JavaProject",
3536
3808
  "JavaProjectCommonOptions",
3537
3809
  "JavaProjectOptions",
@@ -3542,6 +3814,7 @@ __all__ = [
3542
3814
  "MavenPackaging",
3543
3815
  "MavenPackagingOptions",
3544
3816
  "MavenRepository",
3817
+ "MavenRepositoryPolicy",
3545
3818
  "MavenSample",
3546
3819
  "MavenSampleOptions",
3547
3820
  "ParentPom",
@@ -3551,6 +3824,7 @@ __all__ = [
3551
3824
  "PomOptions",
3552
3825
  "Projenrc",
3553
3826
  "ProjenrcOptions",
3827
+ "UpdatePolicy",
3554
3828
  ]
3555
3829
 
3556
3830
  publication.publish()
@@ -3642,6 +3916,17 @@ def _typecheckingstub__12e8ee88cd330385feef214bd08b3bc44314dc15ddbcd48e4f74c198b
3642
3916
  url: builtins.str,
3643
3917
  layout: typing.Optional[builtins.str] = None,
3644
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,
3645
3930
  ) -> None:
3646
3931
  """Type checking stubs"""
3647
3932
  pass
@@ -3675,6 +3960,7 @@ def _typecheckingstub__b8b1bc2eb1ab79c9e54c8b62fd341a87dd82eec6a2b2ec76a5fdb6f1c
3675
3960
  *,
3676
3961
  goals: typing.Sequence[builtins.str],
3677
3962
  id: builtins.str,
3963
+ configuration: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
3678
3964
  phase: typing.Optional[builtins.str] = None,
3679
3965
  ) -> None:
3680
3966
  """Type checking stubs"""
@@ -3765,6 +4051,12 @@ def _typecheckingstub__6ae2ae91be40e1fe4218504ad4a0a84a64d14b1c1274575f956490848
3765
4051
  """Type checking stubs"""
3766
4052
  pass
3767
4053
 
4054
+ def _typecheckingstub__0bf8e37b8aa70ecfb764a100f3a50eabbce221f62cf2cc199c929b8132fe42cc(
4055
+ minutes: jsii.Number,
4056
+ ) -> None:
4057
+ """Type checking stubs"""
4058
+ pass
4059
+
3768
4060
  def _typecheckingstub__95d1347bcc9244ea45fe2d94ee57536743a6579b8c3cbeefd1a9832f2acb54b0(
3769
4061
  *,
3770
4062
  name: builtins.str,