pulumi-gcp 8.10.0a1731950704__py3-none-any.whl → 8.10.0a1732125494__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.
Files changed (51) hide show
  1. pulumi_gcp/__init__.py +24 -0
  2. pulumi_gcp/accesscontextmanager/__init__.py +1 -0
  3. pulumi_gcp/accesscontextmanager/_inputs.py +90 -54
  4. pulumi_gcp/accesscontextmanager/get_access_policy.py +158 -0
  5. pulumi_gcp/accesscontextmanager/outputs.py +60 -36
  6. pulumi_gcp/artifactregistry/_inputs.py +56 -0
  7. pulumi_gcp/artifactregistry/outputs.py +65 -0
  8. pulumi_gcp/artifactregistry/repository.py +48 -0
  9. pulumi_gcp/backupdisasterrecovery/__init__.py +1 -0
  10. pulumi_gcp/backupdisasterrecovery/backup_vault.py +63 -0
  11. pulumi_gcp/backupdisasterrecovery/get_data_source.py +263 -0
  12. pulumi_gcp/backupdisasterrecovery/outputs.py +402 -0
  13. pulumi_gcp/certificateauthority/authority.py +28 -138
  14. pulumi_gcp/cloudrun/service.py +0 -10
  15. pulumi_gcp/cloudrunv2/get_service.py +15 -4
  16. pulumi_gcp/cloudrunv2/service.py +30 -2
  17. pulumi_gcp/compute/_inputs.py +12 -12
  18. pulumi_gcp/compute/outputs.py +10 -10
  19. pulumi_gcp/dataproc/__init__.py +1 -0
  20. pulumi_gcp/dataproc/_inputs.py +490 -0
  21. pulumi_gcp/dataproc/gdc_spark_application.py +1658 -0
  22. pulumi_gcp/dataproc/outputs.py +385 -0
  23. pulumi_gcp/filestore/_inputs.py +152 -0
  24. pulumi_gcp/filestore/get_instance.py +12 -1
  25. pulumi_gcp/filestore/instance.py +47 -0
  26. pulumi_gcp/filestore/outputs.py +229 -0
  27. pulumi_gcp/iam/__init__.py +2 -0
  28. pulumi_gcp/iam/_inputs.py +274 -0
  29. pulumi_gcp/iam/folders_policy_binding.py +917 -0
  30. pulumi_gcp/iam/organizations_policy_binding.py +901 -0
  31. pulumi_gcp/iam/outputs.py +198 -0
  32. pulumi_gcp/managedkafka/cluster.py +4 -0
  33. pulumi_gcp/managedkafka/topic.py +4 -0
  34. pulumi_gcp/pubsub/subscription.py +8 -8
  35. pulumi_gcp/pulumi-plugin.json +1 -1
  36. pulumi_gcp/redis/_inputs.py +213 -0
  37. pulumi_gcp/redis/cluster.py +289 -0
  38. pulumi_gcp/redis/outputs.py +185 -0
  39. pulumi_gcp/securesourcemanager/_inputs.py +33 -0
  40. pulumi_gcp/securesourcemanager/instance.py +90 -3
  41. pulumi_gcp/securesourcemanager/outputs.py +19 -0
  42. pulumi_gcp/spanner/database.py +14 -14
  43. pulumi_gcp/sql/_inputs.py +73 -0
  44. pulumi_gcp/sql/database_instance.py +60 -0
  45. pulumi_gcp/sql/outputs.py +146 -0
  46. pulumi_gcp/sql/user.py +2 -2
  47. pulumi_gcp/tags/location_tag_binding.py +8 -8
  48. {pulumi_gcp-8.10.0a1731950704.dist-info → pulumi_gcp-8.10.0a1732125494.dist-info}/METADATA +1 -1
  49. {pulumi_gcp-8.10.0a1731950704.dist-info → pulumi_gcp-8.10.0a1732125494.dist-info}/RECORD +51 -46
  50. {pulumi_gcp-8.10.0a1731950704.dist-info → pulumi_gcp-8.10.0a1732125494.dist-info}/WHEEL +0 -0
  51. {pulumi_gcp-8.10.0a1731950704.dist-info → pulumi_gcp-8.10.0a1732125494.dist-info}/top_level.txt +0 -0
@@ -1682,9 +1682,11 @@ class ServicePerimeterDryRunEgressPolicyEgressFrom(dict):
1682
1682
  source_restriction: Optional[str] = None,
1683
1683
  sources: Optional[Sequence['outputs.ServicePerimeterDryRunEgressPolicyEgressFromSource']] = None):
1684
1684
  """
1685
- :param Sequence[str] identities: A list of identities that are allowed access through this `EgressPolicy`.
1686
- Should be in the format of email address. The email address should
1687
- represent individual user or service account only.
1685
+ :param Sequence[str] identities: Identities can be an individual user, service account, Google group,
1686
+ or third-party identity. For third-party identity, only single identities
1687
+ are supported and other identity types are not supported.The v1 identities
1688
+ that have the prefix user, group and serviceAccount in
1689
+ https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.
1688
1690
  :param str identity_type: Specifies the type of identities that are allowed access to outside the
1689
1691
  perimeter. If left unspecified, then members of `identities` field will
1690
1692
  be allowed access.
@@ -1707,9 +1709,11 @@ class ServicePerimeterDryRunEgressPolicyEgressFrom(dict):
1707
1709
  @pulumi.getter
1708
1710
  def identities(self) -> Optional[Sequence[str]]:
1709
1711
  """
1710
- A list of identities that are allowed access through this `EgressPolicy`.
1711
- Should be in the format of email address. The email address should
1712
- represent individual user or service account only.
1712
+ Identities can be an individual user, service account, Google group,
1713
+ or third-party identity. For third-party identity, only single identities
1714
+ are supported and other identity types are not supported.The v1 identities
1715
+ that have the prefix user, group and serviceAccount in
1716
+ https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.
1713
1717
  """
1714
1718
  return pulumi.get(self, "identities")
1715
1719
 
@@ -1978,9 +1982,11 @@ class ServicePerimeterDryRunIngressPolicyIngressFrom(dict):
1978
1982
  identity_type: Optional[str] = None,
1979
1983
  sources: Optional[Sequence['outputs.ServicePerimeterDryRunIngressPolicyIngressFromSource']] = None):
1980
1984
  """
1981
- :param Sequence[str] identities: A list of identities that are allowed access through this ingress policy.
1982
- Should be in the format of email address. The email address should represent
1983
- individual user or service account only.
1985
+ :param Sequence[str] identities: Identities can be an individual user, service account, Google group,
1986
+ or third-party identity. For third-party identity, only single identities
1987
+ are supported and other identity types are not supported.The v1 identities
1988
+ that have the prefix user, group and serviceAccount in
1989
+ https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.
1984
1990
  :param str identity_type: Specifies the type of identities that are allowed access from outside the
1985
1991
  perimeter. If left unspecified, then members of `identities` field will be
1986
1992
  allowed access.
@@ -1999,9 +2005,11 @@ class ServicePerimeterDryRunIngressPolicyIngressFrom(dict):
1999
2005
  @pulumi.getter
2000
2006
  def identities(self) -> Optional[Sequence[str]]:
2001
2007
  """
2002
- A list of identities that are allowed access through this ingress policy.
2003
- Should be in the format of email address. The email address should represent
2004
- individual user or service account only.
2008
+ Identities can be an individual user, service account, Google group,
2009
+ or third-party identity. For third-party identity, only single identities
2010
+ are supported and other identity types are not supported.The v1 identities
2011
+ that have the prefix user, group and serviceAccount in
2012
+ https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.
2005
2013
  """
2006
2014
  return pulumi.get(self, "identities")
2007
2015
 
@@ -2273,9 +2281,11 @@ class ServicePerimeterEgressPolicyEgressFrom(dict):
2273
2281
  source_restriction: Optional[str] = None,
2274
2282
  sources: Optional[Sequence['outputs.ServicePerimeterEgressPolicyEgressFromSource']] = None):
2275
2283
  """
2276
- :param Sequence[str] identities: A list of identities that are allowed access through this `EgressPolicy`.
2277
- Should be in the format of email address. The email address should
2278
- represent individual user or service account only.
2284
+ :param Sequence[str] identities: Identities can be an individual user, service account, Google group,
2285
+ or third-party identity. For third-party identity, only single identities
2286
+ are supported and other identity types are not supported.The v1 identities
2287
+ that have the prefix user, group and serviceAccount in
2288
+ https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.
2279
2289
  :param str identity_type: Specifies the type of identities that are allowed access to outside the
2280
2290
  perimeter. If left unspecified, then members of `identities` field will
2281
2291
  be allowed access.
@@ -2298,9 +2308,11 @@ class ServicePerimeterEgressPolicyEgressFrom(dict):
2298
2308
  @pulumi.getter
2299
2309
  def identities(self) -> Optional[Sequence[str]]:
2300
2310
  """
2301
- A list of identities that are allowed access through this `EgressPolicy`.
2302
- Should be in the format of email address. The email address should
2303
- represent individual user or service account only.
2311
+ Identities can be an individual user, service account, Google group,
2312
+ or third-party identity. For third-party identity, only single identities
2313
+ are supported and other identity types are not supported.The v1 identities
2314
+ that have the prefix user, group and serviceAccount in
2315
+ https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.
2304
2316
  """
2305
2317
  return pulumi.get(self, "identities")
2306
2318
 
@@ -2569,9 +2581,11 @@ class ServicePerimeterIngressPolicyIngressFrom(dict):
2569
2581
  identity_type: Optional[str] = None,
2570
2582
  sources: Optional[Sequence['outputs.ServicePerimeterIngressPolicyIngressFromSource']] = None):
2571
2583
  """
2572
- :param Sequence[str] identities: A list of identities that are allowed access through this ingress policy.
2573
- Should be in the format of email address. The email address should represent
2574
- individual user or service account only.
2584
+ :param Sequence[str] identities: Identities can be an individual user, service account, Google group,
2585
+ or third-party identity. For third-party identity, only single identities
2586
+ are supported and other identity types are not supported.The v1 identities
2587
+ that have the prefix user, group and serviceAccount in
2588
+ https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.
2575
2589
  :param str identity_type: Specifies the type of identities that are allowed access from outside the
2576
2590
  perimeter. If left unspecified, then members of `identities` field will be
2577
2591
  allowed access.
@@ -2590,9 +2604,11 @@ class ServicePerimeterIngressPolicyIngressFrom(dict):
2590
2604
  @pulumi.getter
2591
2605
  def identities(self) -> Optional[Sequence[str]]:
2592
2606
  """
2593
- A list of identities that are allowed access through this ingress policy.
2594
- Should be in the format of email address. The email address should represent
2595
- individual user or service account only.
2607
+ Identities can be an individual user, service account, Google group,
2608
+ or third-party identity. For third-party identity, only single identities
2609
+ are supported and other identity types are not supported.The v1 identities
2610
+ that have the prefix user, group and serviceAccount in
2611
+ https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.
2596
2612
  """
2597
2613
  return pulumi.get(self, "identities")
2598
2614
 
@@ -5078,9 +5094,11 @@ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressFrom(dict):
5078
5094
  source_restriction: Optional[str] = None,
5079
5095
  sources: Optional[Sequence['outputs.ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSource']] = None):
5080
5096
  """
5081
- :param Sequence[str] identities: A list of identities that are allowed access through this `EgressPolicy`.
5082
- Should be in the format of email address. The email address should
5083
- represent individual user or service account only.
5097
+ :param Sequence[str] identities: Identities can be an individual user, service account, Google group,
5098
+ or third-party identity. For third-party identity, only single identities
5099
+ are supported and other identity types are not supported.The v1 identities
5100
+ that have the prefix user, group and serviceAccount in
5101
+ https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.
5084
5102
  :param str identity_type: Specifies the type of identities that are allowed access to outside the
5085
5103
  perimeter. If left unspecified, then members of `identities` field will
5086
5104
  be allowed access.
@@ -5103,9 +5121,11 @@ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressFrom(dict):
5103
5121
  @pulumi.getter
5104
5122
  def identities(self) -> Optional[Sequence[str]]:
5105
5123
  """
5106
- A list of identities that are allowed access through this `EgressPolicy`.
5107
- Should be in the format of email address. The email address should
5108
- represent individual user or service account only.
5124
+ Identities can be an individual user, service account, Google group,
5125
+ or third-party identity. For third-party identity, only single identities
5126
+ are supported and other identity types are not supported.The v1 identities
5127
+ that have the prefix user, group and serviceAccount in
5128
+ https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.
5109
5129
  """
5110
5130
  return pulumi.get(self, "identities")
5111
5131
 
@@ -5975,9 +5995,11 @@ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressFrom(dict):
5975
5995
  source_restriction: Optional[str] = None,
5976
5996
  sources: Optional[Sequence['outputs.ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSource']] = None):
5977
5997
  """
5978
- :param Sequence[str] identities: A list of identities that are allowed access through this `EgressPolicy`.
5979
- Should be in the format of email address. The email address should
5980
- represent individual user or service account only.
5998
+ :param Sequence[str] identities: Identities can be an individual user, service account, Google group,
5999
+ or third-party identity. For third-party identity, only single identities
6000
+ are supported and other identity types are not supported.The v1 identities
6001
+ that have the prefix user, group and serviceAccount in
6002
+ https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.
5981
6003
  :param str identity_type: Specifies the type of identities that are allowed access to outside the
5982
6004
  perimeter. If left unspecified, then members of `identities` field will
5983
6005
  be allowed access.
@@ -6000,9 +6022,11 @@ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressFrom(dict):
6000
6022
  @pulumi.getter
6001
6023
  def identities(self) -> Optional[Sequence[str]]:
6002
6024
  """
6003
- A list of identities that are allowed access through this `EgressPolicy`.
6004
- Should be in the format of email address. The email address should
6005
- represent individual user or service account only.
6025
+ Identities can be an individual user, service account, Google group,
6026
+ or third-party identity. For third-party identity, only single identities
6027
+ are supported and other identity types are not supported.The v1 identities
6028
+ that have the prefix user, group and serviceAccount in
6029
+ https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.
6006
6030
  """
6007
6031
  return pulumi.get(self, "identities")
6008
6032
 
@@ -35,6 +35,8 @@ __all__ = [
35
35
  'RepositoryRemoteRepositoryConfigAptRepositoryArgsDict',
36
36
  'RepositoryRemoteRepositoryConfigAptRepositoryPublicRepositoryArgs',
37
37
  'RepositoryRemoteRepositoryConfigAptRepositoryPublicRepositoryArgsDict',
38
+ 'RepositoryRemoteRepositoryConfigCommonRepositoryArgs',
39
+ 'RepositoryRemoteRepositoryConfigCommonRepositoryArgsDict',
38
40
  'RepositoryRemoteRepositoryConfigDockerRepositoryArgs',
39
41
  'RepositoryRemoteRepositoryConfigDockerRepositoryArgsDict',
40
42
  'RepositoryRemoteRepositoryConfigDockerRepositoryCustomRepositoryArgs',
@@ -554,6 +556,11 @@ if not MYPY:
554
556
  Specific settings for an Apt remote repository.
555
557
  Structure is documented below.
556
558
  """
559
+ common_repository: NotRequired[pulumi.Input['RepositoryRemoteRepositoryConfigCommonRepositoryArgsDict']]
560
+ """
561
+ Specific settings for an Artifact Registory remote repository.
562
+ Structure is documented below.
563
+ """
557
564
  description: NotRequired[pulumi.Input[str]]
558
565
  """
559
566
  The description of the remote source.
@@ -600,6 +607,7 @@ elif False:
600
607
  class RepositoryRemoteRepositoryConfigArgs:
601
608
  def __init__(__self__, *,
602
609
  apt_repository: Optional[pulumi.Input['RepositoryRemoteRepositoryConfigAptRepositoryArgs']] = None,
610
+ common_repository: Optional[pulumi.Input['RepositoryRemoteRepositoryConfigCommonRepositoryArgs']] = None,
603
611
  description: Optional[pulumi.Input[str]] = None,
604
612
  disable_upstream_validation: Optional[pulumi.Input[bool]] = None,
605
613
  docker_repository: Optional[pulumi.Input['RepositoryRemoteRepositoryConfigDockerRepositoryArgs']] = None,
@@ -611,6 +619,8 @@ class RepositoryRemoteRepositoryConfigArgs:
611
619
  """
612
620
  :param pulumi.Input['RepositoryRemoteRepositoryConfigAptRepositoryArgs'] apt_repository: Specific settings for an Apt remote repository.
613
621
  Structure is documented below.
622
+ :param pulumi.Input['RepositoryRemoteRepositoryConfigCommonRepositoryArgs'] common_repository: Specific settings for an Artifact Registory remote repository.
623
+ Structure is documented below.
614
624
  :param pulumi.Input[str] description: The description of the remote source.
615
625
  :param pulumi.Input[bool] disable_upstream_validation: If true, the remote repository upstream and upstream credentials will
616
626
  not be validated.
@@ -629,6 +639,8 @@ class RepositoryRemoteRepositoryConfigArgs:
629
639
  """
630
640
  if apt_repository is not None:
631
641
  pulumi.set(__self__, "apt_repository", apt_repository)
642
+ if common_repository is not None:
643
+ pulumi.set(__self__, "common_repository", common_repository)
632
644
  if description is not None:
633
645
  pulumi.set(__self__, "description", description)
634
646
  if disable_upstream_validation is not None:
@@ -659,6 +671,19 @@ class RepositoryRemoteRepositoryConfigArgs:
659
671
  def apt_repository(self, value: Optional[pulumi.Input['RepositoryRemoteRepositoryConfigAptRepositoryArgs']]):
660
672
  pulumi.set(self, "apt_repository", value)
661
673
 
674
+ @property
675
+ @pulumi.getter(name="commonRepository")
676
+ def common_repository(self) -> Optional[pulumi.Input['RepositoryRemoteRepositoryConfigCommonRepositoryArgs']]:
677
+ """
678
+ Specific settings for an Artifact Registory remote repository.
679
+ Structure is documented below.
680
+ """
681
+ return pulumi.get(self, "common_repository")
682
+
683
+ @common_repository.setter
684
+ def common_repository(self, value: Optional[pulumi.Input['RepositoryRemoteRepositoryConfigCommonRepositoryArgs']]):
685
+ pulumi.set(self, "common_repository", value)
686
+
662
687
  @property
663
688
  @pulumi.getter
664
689
  def description(self) -> Optional[pulumi.Input[str]]:
@@ -851,6 +876,37 @@ class RepositoryRemoteRepositoryConfigAptRepositoryPublicRepositoryArgs:
851
876
  pulumi.set(self, "repository_path", value)
852
877
 
853
878
 
879
+ if not MYPY:
880
+ class RepositoryRemoteRepositoryConfigCommonRepositoryArgsDict(TypedDict):
881
+ uri: pulumi.Input[str]
882
+ """
883
+ Specific uri to the Artifact Registory repository, e.g. `projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY`
884
+ """
885
+ elif False:
886
+ RepositoryRemoteRepositoryConfigCommonRepositoryArgsDict: TypeAlias = Mapping[str, Any]
887
+
888
+ @pulumi.input_type
889
+ class RepositoryRemoteRepositoryConfigCommonRepositoryArgs:
890
+ def __init__(__self__, *,
891
+ uri: pulumi.Input[str]):
892
+ """
893
+ :param pulumi.Input[str] uri: Specific uri to the Artifact Registory repository, e.g. `projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY`
894
+ """
895
+ pulumi.set(__self__, "uri", uri)
896
+
897
+ @property
898
+ @pulumi.getter
899
+ def uri(self) -> pulumi.Input[str]:
900
+ """
901
+ Specific uri to the Artifact Registory repository, e.g. `projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY`
902
+ """
903
+ return pulumi.get(self, "uri")
904
+
905
+ @uri.setter
906
+ def uri(self, value: pulumi.Input[str]):
907
+ pulumi.set(self, "uri", value)
908
+
909
+
854
910
  if not MYPY:
855
911
  class RepositoryRemoteRepositoryConfigDockerRepositoryArgsDict(TypedDict):
856
912
  custom_repository: NotRequired[pulumi.Input['RepositoryRemoteRepositoryConfigDockerRepositoryCustomRepositoryArgsDict']]
@@ -26,6 +26,7 @@ __all__ = [
26
26
  'RepositoryRemoteRepositoryConfig',
27
27
  'RepositoryRemoteRepositoryConfigAptRepository',
28
28
  'RepositoryRemoteRepositoryConfigAptRepositoryPublicRepository',
29
+ 'RepositoryRemoteRepositoryConfigCommonRepository',
29
30
  'RepositoryRemoteRepositoryConfigDockerRepository',
30
31
  'RepositoryRemoteRepositoryConfigDockerRepositoryCustomRepository',
31
32
  'RepositoryRemoteRepositoryConfigMavenRepository',
@@ -48,6 +49,7 @@ __all__ = [
48
49
  'GetRepositoryRemoteRepositoryConfigResult',
49
50
  'GetRepositoryRemoteRepositoryConfigAptRepositoryResult',
50
51
  'GetRepositoryRemoteRepositoryConfigAptRepositoryPublicRepositoryResult',
52
+ 'GetRepositoryRemoteRepositoryConfigCommonRepositoryResult',
51
53
  'GetRepositoryRemoteRepositoryConfigDockerRepositoryResult',
52
54
  'GetRepositoryRemoteRepositoryConfigDockerRepositoryCustomRepositoryResult',
53
55
  'GetRepositoryRemoteRepositoryConfigMavenRepositoryResult',
@@ -456,6 +458,8 @@ class RepositoryRemoteRepositoryConfig(dict):
456
458
  suggest = None
457
459
  if key == "aptRepository":
458
460
  suggest = "apt_repository"
461
+ elif key == "commonRepository":
462
+ suggest = "common_repository"
459
463
  elif key == "disableUpstreamValidation":
460
464
  suggest = "disable_upstream_validation"
461
465
  elif key == "dockerRepository":
@@ -484,6 +488,7 @@ class RepositoryRemoteRepositoryConfig(dict):
484
488
 
485
489
  def __init__(__self__, *,
486
490
  apt_repository: Optional['outputs.RepositoryRemoteRepositoryConfigAptRepository'] = None,
491
+ common_repository: Optional['outputs.RepositoryRemoteRepositoryConfigCommonRepository'] = None,
487
492
  description: Optional[str] = None,
488
493
  disable_upstream_validation: Optional[bool] = None,
489
494
  docker_repository: Optional['outputs.RepositoryRemoteRepositoryConfigDockerRepository'] = None,
@@ -495,6 +500,8 @@ class RepositoryRemoteRepositoryConfig(dict):
495
500
  """
496
501
  :param 'RepositoryRemoteRepositoryConfigAptRepositoryArgs' apt_repository: Specific settings for an Apt remote repository.
497
502
  Structure is documented below.
503
+ :param 'RepositoryRemoteRepositoryConfigCommonRepositoryArgs' common_repository: Specific settings for an Artifact Registory remote repository.
504
+ Structure is documented below.
498
505
  :param str description: The description of the remote source.
499
506
  :param bool disable_upstream_validation: If true, the remote repository upstream and upstream credentials will
500
507
  not be validated.
@@ -513,6 +520,8 @@ class RepositoryRemoteRepositoryConfig(dict):
513
520
  """
514
521
  if apt_repository is not None:
515
522
  pulumi.set(__self__, "apt_repository", apt_repository)
523
+ if common_repository is not None:
524
+ pulumi.set(__self__, "common_repository", common_repository)
516
525
  if description is not None:
517
526
  pulumi.set(__self__, "description", description)
518
527
  if disable_upstream_validation is not None:
@@ -539,6 +548,15 @@ class RepositoryRemoteRepositoryConfig(dict):
539
548
  """
540
549
  return pulumi.get(self, "apt_repository")
541
550
 
551
+ @property
552
+ @pulumi.getter(name="commonRepository")
553
+ def common_repository(self) -> Optional['outputs.RepositoryRemoteRepositoryConfigCommonRepository']:
554
+ """
555
+ Specific settings for an Artifact Registory remote repository.
556
+ Structure is documented below.
557
+ """
558
+ return pulumi.get(self, "common_repository")
559
+
542
560
  @property
543
561
  @pulumi.getter
544
562
  def description(self) -> Optional[str]:
@@ -699,6 +717,24 @@ class RepositoryRemoteRepositoryConfigAptRepositoryPublicRepository(dict):
699
717
  return pulumi.get(self, "repository_path")
700
718
 
701
719
 
720
+ @pulumi.output_type
721
+ class RepositoryRemoteRepositoryConfigCommonRepository(dict):
722
+ def __init__(__self__, *,
723
+ uri: str):
724
+ """
725
+ :param str uri: Specific uri to the Artifact Registory repository, e.g. `projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY`
726
+ """
727
+ pulumi.set(__self__, "uri", uri)
728
+
729
+ @property
730
+ @pulumi.getter
731
+ def uri(self) -> str:
732
+ """
733
+ Specific uri to the Artifact Registory repository, e.g. `projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY`
734
+ """
735
+ return pulumi.get(self, "uri")
736
+
737
+
702
738
  @pulumi.output_type
703
739
  class RepositoryRemoteRepositoryConfigDockerRepository(dict):
704
740
  @staticmethod
@@ -1466,6 +1502,7 @@ class GetRepositoryMavenConfigResult(dict):
1466
1502
  class GetRepositoryRemoteRepositoryConfigResult(dict):
1467
1503
  def __init__(__self__, *,
1468
1504
  apt_repositories: Sequence['outputs.GetRepositoryRemoteRepositoryConfigAptRepositoryResult'],
1505
+ common_repositories: Sequence['outputs.GetRepositoryRemoteRepositoryConfigCommonRepositoryResult'],
1469
1506
  description: str,
1470
1507
  disable_upstream_validation: bool,
1471
1508
  docker_repositories: Sequence['outputs.GetRepositoryRemoteRepositoryConfigDockerRepositoryResult'],
@@ -1476,6 +1513,7 @@ class GetRepositoryRemoteRepositoryConfigResult(dict):
1476
1513
  yum_repositories: Sequence['outputs.GetRepositoryRemoteRepositoryConfigYumRepositoryResult']):
1477
1514
  """
1478
1515
  :param Sequence['GetRepositoryRemoteRepositoryConfigAptRepositoryArgs'] apt_repositories: Specific settings for an Apt remote repository.
1516
+ :param Sequence['GetRepositoryRemoteRepositoryConfigCommonRepositoryArgs'] common_repositories: Specific settings for an Artifact Registory remote repository.
1479
1517
  :param str description: The description of the remote source.
1480
1518
  :param bool disable_upstream_validation: If true, the remote repository upstream and upstream credentials will
1481
1519
  not be validated.
@@ -1487,6 +1525,7 @@ class GetRepositoryRemoteRepositoryConfigResult(dict):
1487
1525
  :param Sequence['GetRepositoryRemoteRepositoryConfigYumRepositoryArgs'] yum_repositories: Specific settings for an Yum remote repository.
1488
1526
  """
1489
1527
  pulumi.set(__self__, "apt_repositories", apt_repositories)
1528
+ pulumi.set(__self__, "common_repositories", common_repositories)
1490
1529
  pulumi.set(__self__, "description", description)
1491
1530
  pulumi.set(__self__, "disable_upstream_validation", disable_upstream_validation)
1492
1531
  pulumi.set(__self__, "docker_repositories", docker_repositories)
@@ -1504,6 +1543,14 @@ class GetRepositoryRemoteRepositoryConfigResult(dict):
1504
1543
  """
1505
1544
  return pulumi.get(self, "apt_repositories")
1506
1545
 
1546
+ @property
1547
+ @pulumi.getter(name="commonRepositories")
1548
+ def common_repositories(self) -> Sequence['outputs.GetRepositoryRemoteRepositoryConfigCommonRepositoryResult']:
1549
+ """
1550
+ Specific settings for an Artifact Registory remote repository.
1551
+ """
1552
+ return pulumi.get(self, "common_repositories")
1553
+
1507
1554
  @property
1508
1555
  @pulumi.getter
1509
1556
  def description(self) -> str:
@@ -1617,6 +1664,24 @@ class GetRepositoryRemoteRepositoryConfigAptRepositoryPublicRepositoryResult(dic
1617
1664
  return pulumi.get(self, "repository_path")
1618
1665
 
1619
1666
 
1667
+ @pulumi.output_type
1668
+ class GetRepositoryRemoteRepositoryConfigCommonRepositoryResult(dict):
1669
+ def __init__(__self__, *,
1670
+ uri: str):
1671
+ """
1672
+ :param str uri: Specific uri to the Artifact Registory repository, e.g. 'projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY'
1673
+ """
1674
+ pulumi.set(__self__, "uri", uri)
1675
+
1676
+ @property
1677
+ @pulumi.getter
1678
+ def uri(self) -> str:
1679
+ """
1680
+ Specific uri to the Artifact Registory repository, e.g. 'projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY'
1681
+ """
1682
+ return pulumi.get(self, "uri")
1683
+
1684
+
1620
1685
  @pulumi.output_type
1621
1686
  class GetRepositoryRemoteRepositoryConfigDockerRepositoryResult(dict):
1622
1687
  def __init__(__self__, *,
@@ -1119,6 +1119,30 @@ class Repository(pulumi.CustomResource):
1119
1119
  },
1120
1120
  })
1121
1121
  ```
1122
+ ### Artifact Registry Repository Remote Common Repository With Docker
1123
+
1124
+ ```python
1125
+ import pulumi
1126
+ import pulumi_gcp as gcp
1127
+
1128
+ upstream_repo = gcp.artifactregistry.Repository("upstream_repo",
1129
+ location="us-central1",
1130
+ repository_id="example-upstream-repo",
1131
+ description="example upstream repository",
1132
+ format="DOCKER")
1133
+ my_repo = gcp.artifactregistry.Repository("my-repo",
1134
+ location="us-central1",
1135
+ repository_id="example-common-remote",
1136
+ description="example remote common repository with docker upstream",
1137
+ format="DOCKER",
1138
+ mode="REMOTE_REPOSITORY",
1139
+ remote_repository_config={
1140
+ "description": "pull-through cache of another Artifact Registry repository",
1141
+ "common_repository": {
1142
+ "uri": upstream_repo.id,
1143
+ },
1144
+ })
1145
+ ```
1122
1146
 
1123
1147
  ## Import
1124
1148
 
@@ -1615,6 +1639,30 @@ class Repository(pulumi.CustomResource):
1615
1639
  },
1616
1640
  })
1617
1641
  ```
1642
+ ### Artifact Registry Repository Remote Common Repository With Docker
1643
+
1644
+ ```python
1645
+ import pulumi
1646
+ import pulumi_gcp as gcp
1647
+
1648
+ upstream_repo = gcp.artifactregistry.Repository("upstream_repo",
1649
+ location="us-central1",
1650
+ repository_id="example-upstream-repo",
1651
+ description="example upstream repository",
1652
+ format="DOCKER")
1653
+ my_repo = gcp.artifactregistry.Repository("my-repo",
1654
+ location="us-central1",
1655
+ repository_id="example-common-remote",
1656
+ description="example remote common repository with docker upstream",
1657
+ format="DOCKER",
1658
+ mode="REMOTE_REPOSITORY",
1659
+ remote_repository_config={
1660
+ "description": "pull-through cache of another Artifact Registry repository",
1661
+ "common_repository": {
1662
+ "uri": upstream_repo.id,
1663
+ },
1664
+ })
1665
+ ```
1618
1666
 
1619
1667
  ## Import
1620
1668
 
@@ -10,6 +10,7 @@ from .backup_plan_association import *
10
10
  from .backup_vault import *
11
11
  from .get_backup_plan import *
12
12
  from .get_backup_plan_association import *
13
+ from .get_data_source import *
13
14
  from .get_management_server import *
14
15
  from .management_server import *
15
16
  from ._inputs import *