pulumi-gcp 7.5.0a1704347630__py3-none-any.whl → 7.6.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. pulumi_gcp/__init__.py +99 -0
  2. pulumi_gcp/bigqueryanalyticshub/_inputs.py +40 -0
  3. pulumi_gcp/bigqueryanalyticshub/listing.py +117 -3
  4. pulumi_gcp/bigqueryanalyticshub/outputs.py +49 -0
  5. pulumi_gcp/clouddeploy/__init__.py +1 -0
  6. pulumi_gcp/clouddeploy/_inputs.py +239 -0
  7. pulumi_gcp/clouddeploy/automation.py +1103 -0
  8. pulumi_gcp/clouddeploy/outputs.py +246 -0
  9. pulumi_gcp/clouddomains/__init__.py +10 -0
  10. pulumi_gcp/clouddomains/_inputs.py +1098 -0
  11. pulumi_gcp/clouddomains/outputs.py +1156 -0
  12. pulumi_gcp/clouddomains/registration.py +1068 -0
  13. pulumi_gcp/cloudrunv2/job.py +4 -4
  14. pulumi_gcp/composer/_inputs.py +79 -1
  15. pulumi_gcp/composer/outputs.py +131 -4
  16. pulumi_gcp/compute/__init__.py +1 -0
  17. pulumi_gcp/compute/_inputs.py +180 -0
  18. pulumi_gcp/compute/get_instance_template.py +11 -1
  19. pulumi_gcp/compute/get_region_instance_template.py +11 -1
  20. pulumi_gcp/compute/get_reservation.py +212 -0
  21. pulumi_gcp/compute/instance_template.py +47 -0
  22. pulumi_gcp/compute/network_firewall_policy.py +20 -22
  23. pulumi_gcp/compute/outputs.py +325 -0
  24. pulumi_gcp/compute/region_instance_template.py +47 -0
  25. pulumi_gcp/compute/region_network_firewall_policy.py +31 -35
  26. pulumi_gcp/compute/router_peer.py +54 -0
  27. pulumi_gcp/compute/vpn_tunnel.py +8 -4
  28. pulumi_gcp/config/__init__.pyi +2 -0
  29. pulumi_gcp/config/vars.py +4 -0
  30. pulumi_gcp/container/_inputs.py +23 -0
  31. pulumi_gcp/container/aws_node_pool.py +7 -7
  32. pulumi_gcp/container/cluster.py +68 -14
  33. pulumi_gcp/container/get_cluster.py +11 -1
  34. pulumi_gcp/container/outputs.py +49 -0
  35. pulumi_gcp/dataflow/pipeline.py +1 -1
  36. pulumi_gcp/dataproc/_inputs.py +413 -39
  37. pulumi_gcp/dataproc/metastore_service.py +63 -0
  38. pulumi_gcp/dataproc/outputs.py +461 -39
  39. pulumi_gcp/dns/__init__.py +1 -0
  40. pulumi_gcp/dns/_inputs.py +94 -0
  41. pulumi_gcp/dns/get_managed_zones.py +89 -0
  42. pulumi_gcp/dns/outputs.py +62 -0
  43. pulumi_gcp/edgecontainer/vpn_connection.py +10 -10
  44. pulumi_gcp/filestore/__init__.py +1 -0
  45. pulumi_gcp/filestore/get_instance.py +258 -0
  46. pulumi_gcp/filestore/instance.py +7 -7
  47. pulumi_gcp/filestore/outputs.py +126 -0
  48. pulumi_gcp/gkebackup/backup_plan.py +24 -8
  49. pulumi_gcp/gkebackup/restore_plan.py +36 -12
  50. pulumi_gcp/gkebackup/restore_plan_iam_binding.py +36 -12
  51. pulumi_gcp/gkebackup/restore_plan_iam_member.py +36 -12
  52. pulumi_gcp/gkebackup/restore_plan_iam_policy.py +36 -12
  53. pulumi_gcp/gkehub/_inputs.py +502 -2
  54. pulumi_gcp/gkehub/feature.py +34 -0
  55. pulumi_gcp/gkehub/feature_membership.py +177 -0
  56. pulumi_gcp/gkehub/membership.py +18 -6
  57. pulumi_gcp/gkehub/outputs.py +502 -2
  58. pulumi_gcp/gkeonprem/_inputs.py +21 -25
  59. pulumi_gcp/gkeonprem/outputs.py +34 -25
  60. pulumi_gcp/gkeonprem/v_mware_node_pool.py +34 -0
  61. pulumi_gcp/integrationconnectors/__init__.py +1 -0
  62. pulumi_gcp/integrationconnectors/endpoint_attachment.py +669 -0
  63. pulumi_gcp/kms/_inputs.py +42 -0
  64. pulumi_gcp/kms/crypto_key.py +36 -0
  65. pulumi_gcp/kms/get_kms_crypto_key.py +11 -1
  66. pulumi_gcp/kms/outputs.py +62 -0
  67. pulumi_gcp/logging/__init__.py +2 -0
  68. pulumi_gcp/logging/folder_settings.py +490 -0
  69. pulumi_gcp/logging/folder_sink.py +21 -21
  70. pulumi_gcp/logging/organization_settings.py +484 -0
  71. pulumi_gcp/logging/organization_sink.py +21 -21
  72. pulumi_gcp/logging/project_sink.py +7 -14
  73. pulumi_gcp/netapp/__init__.py +3 -0
  74. pulumi_gcp/netapp/active_directory.py +1413 -0
  75. pulumi_gcp/netapp/backup_vault.py +593 -0
  76. pulumi_gcp/netapp/kmsconfig.py +649 -0
  77. pulumi_gcp/orgpolicy/policy.py +28 -0
  78. pulumi_gcp/provider.py +20 -0
  79. pulumi_gcp/pubsub/subscription.py +29 -37
  80. pulumi_gcp/serviceaccount/account.py +47 -0
  81. pulumi_gcp/servicenetworking/connection.py +55 -1
  82. pulumi_gcp/sql/database_instance.py +2 -2
  83. pulumi_gcp/sql/ssl_cert.py +1 -1
  84. pulumi_gcp/sql/user.py +7 -7
  85. pulumi_gcp/storage/transfer_job.py +24 -5
  86. pulumi_gcp/vertex/__init__.py +3 -0
  87. pulumi_gcp/vertex/_inputs.py +339 -0
  88. pulumi_gcp/vertex/ai_feature_group.py +710 -0
  89. pulumi_gcp/vertex/ai_feature_online_store.py +962 -0
  90. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +804 -0
  91. pulumi_gcp/vertex/outputs.py +406 -0
  92. pulumi_gcp/vmwareengine/__init__.py +2 -0
  93. pulumi_gcp/vmwareengine/_inputs.py +84 -0
  94. pulumi_gcp/vmwareengine/external_access_rule.py +947 -0
  95. pulumi_gcp/vmwareengine/get_external_access_rule.py +245 -0
  96. pulumi_gcp/vmwareengine/outputs.py +146 -0
  97. pulumi_gcp/workflows/workflow.py +7 -7
  98. {pulumi_gcp-7.5.0a1704347630.dist-info → pulumi_gcp-7.6.0.dist-info}/METADATA +1 -1
  99. {pulumi_gcp-7.5.0a1704347630.dist-info → pulumi_gcp-7.6.0.dist-info}/RECORD +101 -82
  100. {pulumi_gcp-7.5.0a1704347630.dist-info → pulumi_gcp-7.6.0.dist-info}/WHEEL +0 -0
  101. {pulumi_gcp-7.5.0a1704347630.dist-info → pulumi_gcp-7.6.0.dist-info}/top_level.txt +0 -0
@@ -38,8 +38,18 @@ __all__ = [
38
38
  'FeatureMembershipConfigmanagementPolicyControllerArgs',
39
39
  'FeatureMembershipConfigmanagementPolicyControllerMonitoringArgs',
40
40
  'FeatureMembershipMeshArgs',
41
+ 'FeatureMembershipPolicycontrollerArgs',
42
+ 'FeatureMembershipPolicycontrollerPolicyControllerHubConfigArgs',
43
+ 'FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringArgs',
44
+ 'FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentArgs',
45
+ 'FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryArgs',
41
46
  'FeatureResourceStateArgs',
42
47
  'FeatureSpecArgs',
48
+ 'FeatureSpecClusterupgradeArgs',
49
+ 'FeatureSpecClusterupgradeGkeUpgradeOverrideArgs',
50
+ 'FeatureSpecClusterupgradeGkeUpgradeOverridePostConditionsArgs',
51
+ 'FeatureSpecClusterupgradeGkeUpgradeOverrideUpgradeArgs',
52
+ 'FeatureSpecClusterupgradePostConditionsArgs',
43
53
  'FeatureSpecFleetobservabilityArgs',
44
54
  'FeatureSpecFleetobservabilityLoggingConfigArgs',
45
55
  'FeatureSpecFleetobservabilityLoggingConfigDefaultConfigArgs',
@@ -132,13 +142,17 @@ class FeatureFleetDefaultMemberConfigArgs:
132
142
  @pulumi.input_type
133
143
  class FeatureFleetDefaultMemberConfigConfigmanagementArgs:
134
144
  def __init__(__self__, *,
135
- config_sync: Optional[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgs']] = None):
145
+ config_sync: Optional[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgs']] = None,
146
+ version: Optional[pulumi.Input[str]] = None):
136
147
  """
137
148
  :param pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgs'] config_sync: ConfigSync configuration for the cluster
138
149
  Structure is documented below.
150
+ :param pulumi.Input[str] version: Version of ACM installed
139
151
  """
140
152
  if config_sync is not None:
141
153
  pulumi.set(__self__, "config_sync", config_sync)
154
+ if version is not None:
155
+ pulumi.set(__self__, "version", version)
142
156
 
143
157
  @property
144
158
  @pulumi.getter(name="configSync")
@@ -153,6 +167,18 @@ class FeatureFleetDefaultMemberConfigConfigmanagementArgs:
153
167
  def config_sync(self, value: Optional[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgs']]):
154
168
  pulumi.set(self, "config_sync", value)
155
169
 
170
+ @property
171
+ @pulumi.getter
172
+ def version(self) -> Optional[pulumi.Input[str]]:
173
+ """
174
+ Version of ACM installed
175
+ """
176
+ return pulumi.get(self, "version")
177
+
178
+ @version.setter
179
+ def version(self, value: Optional[pulumi.Input[str]]):
180
+ pulumi.set(self, "version", value)
181
+
156
182
 
157
183
  @pulumi.input_type
158
184
  class FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgs:
@@ -362,7 +388,10 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciArgs:
362
388
  :param pulumi.Input[str] policy_dir: The absolute path of the directory that contains the local resources. Default: the root directory of the image
363
389
  :param pulumi.Input[str] sync_repo: The OCI image repository URL for the package to sync from
364
390
  :param pulumi.Input[str] sync_wait_secs: Period in seconds between consecutive syncs. Default: 15
365
- :param pulumi.Input[str] version: Version of ACM installed
391
+ :param pulumi.Input[str] version: (Optional, Deprecated)
392
+ Version of ACM installed
393
+
394
+ > **Warning:** The `configmanagement.config_sync.oci.version` field is deprecated and will be removed in a future major release. Please use `configmanagement.version` field to specify the version of ACM installed instead.
366
395
  """
367
396
  pulumi.set(__self__, "secret_type", secret_type)
368
397
  if gcp_service_account_email is not None:
@@ -373,6 +402,9 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciArgs:
373
402
  pulumi.set(__self__, "sync_repo", sync_repo)
374
403
  if sync_wait_secs is not None:
375
404
  pulumi.set(__self__, "sync_wait_secs", sync_wait_secs)
405
+ if version is not None:
406
+ warnings.warn("""The `configmanagement.config_sync.oci.version` field is deprecated and will be removed in a future major release. Please use `configmanagement.version` field to specify the version of ACM installed instead.""", DeprecationWarning)
407
+ pulumi.log.warn("""version is deprecated: The `configmanagement.config_sync.oci.version` field is deprecated and will be removed in a future major release. Please use `configmanagement.version` field to specify the version of ACM installed instead.""")
376
408
  if version is not None:
377
409
  pulumi.set(__self__, "version", version)
378
410
 
@@ -440,8 +472,14 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciArgs:
440
472
  @pulumi.getter
441
473
  def version(self) -> Optional[pulumi.Input[str]]:
442
474
  """
475
+ (Optional, Deprecated)
443
476
  Version of ACM installed
477
+
478
+ > **Warning:** The `configmanagement.config_sync.oci.version` field is deprecated and will be removed in a future major release. Please use `configmanagement.version` field to specify the version of ACM installed instead.
444
479
  """
480
+ warnings.warn("""The `configmanagement.config_sync.oci.version` field is deprecated and will be removed in a future major release. Please use `configmanagement.version` field to specify the version of ACM installed instead.""", DeprecationWarning)
481
+ pulumi.log.warn("""version is deprecated: The `configmanagement.config_sync.oci.version` field is deprecated and will be removed in a future major release. Please use `configmanagement.version` field to specify the version of ACM installed instead.""")
482
+
445
483
  return pulumi.get(self, "version")
446
484
 
447
485
  @version.setter
@@ -1793,12 +1831,18 @@ class FeatureMembershipConfigmanagementPolicyControllerArgs:
1793
1831
  class FeatureMembershipConfigmanagementPolicyControllerMonitoringArgs:
1794
1832
  def __init__(__self__, *,
1795
1833
  backends: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
1834
+ """
1835
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] backends: Specifies the list of backends Policy Controller will export to. Must be one of `CLOUD_MONITORING` or `PROMETHEUS`. Defaults to [`CLOUD_MONITORING`, `PROMETHEUS`]. Specifying an empty value `[]` disables metrics export.
1836
+ """
1796
1837
  if backends is not None:
1797
1838
  pulumi.set(__self__, "backends", backends)
1798
1839
 
1799
1840
  @property
1800
1841
  @pulumi.getter
1801
1842
  def backends(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1843
+ """
1844
+ Specifies the list of backends Policy Controller will export to. Must be one of `CLOUD_MONITORING` or `PROMETHEUS`. Defaults to [`CLOUD_MONITORING`, `PROMETHEUS`]. Specifying an empty value `[]` disables metrics export.
1845
+ """
1802
1846
  return pulumi.get(self, "backends")
1803
1847
 
1804
1848
  @backends.setter
@@ -1847,6 +1891,264 @@ class FeatureMembershipMeshArgs:
1847
1891
  pulumi.set(self, "management", value)
1848
1892
 
1849
1893
 
1894
+ @pulumi.input_type
1895
+ class FeatureMembershipPolicycontrollerArgs:
1896
+ def __init__(__self__, *,
1897
+ policy_controller_hub_config: pulumi.Input['FeatureMembershipPolicycontrollerPolicyControllerHubConfigArgs'],
1898
+ version: Optional[pulumi.Input[str]] = None):
1899
+ """
1900
+ :param pulumi.Input['FeatureMembershipPolicycontrollerPolicyControllerHubConfigArgs'] policy_controller_hub_config: Policy Controller configuration for the cluster. Structure is documented below.
1901
+ :param pulumi.Input[str] version: Version of Policy Controller to install. Defaults to the latest version.
1902
+ """
1903
+ pulumi.set(__self__, "policy_controller_hub_config", policy_controller_hub_config)
1904
+ if version is not None:
1905
+ pulumi.set(__self__, "version", version)
1906
+
1907
+ @property
1908
+ @pulumi.getter(name="policyControllerHubConfig")
1909
+ def policy_controller_hub_config(self) -> pulumi.Input['FeatureMembershipPolicycontrollerPolicyControllerHubConfigArgs']:
1910
+ """
1911
+ Policy Controller configuration for the cluster. Structure is documented below.
1912
+ """
1913
+ return pulumi.get(self, "policy_controller_hub_config")
1914
+
1915
+ @policy_controller_hub_config.setter
1916
+ def policy_controller_hub_config(self, value: pulumi.Input['FeatureMembershipPolicycontrollerPolicyControllerHubConfigArgs']):
1917
+ pulumi.set(self, "policy_controller_hub_config", value)
1918
+
1919
+ @property
1920
+ @pulumi.getter
1921
+ def version(self) -> Optional[pulumi.Input[str]]:
1922
+ """
1923
+ Version of Policy Controller to install. Defaults to the latest version.
1924
+ """
1925
+ return pulumi.get(self, "version")
1926
+
1927
+ @version.setter
1928
+ def version(self, value: Optional[pulumi.Input[str]]):
1929
+ pulumi.set(self, "version", value)
1930
+
1931
+
1932
+ @pulumi.input_type
1933
+ class FeatureMembershipPolicycontrollerPolicyControllerHubConfigArgs:
1934
+ def __init__(__self__, *,
1935
+ audit_interval_seconds: Optional[pulumi.Input[int]] = None,
1936
+ constraint_violation_limit: Optional[pulumi.Input[int]] = None,
1937
+ exemptable_namespaces: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1938
+ install_spec: Optional[pulumi.Input[str]] = None,
1939
+ log_denies_enabled: Optional[pulumi.Input[bool]] = None,
1940
+ monitoring: Optional[pulumi.Input['FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringArgs']] = None,
1941
+ mutation_enabled: Optional[pulumi.Input[bool]] = None,
1942
+ policy_content: Optional[pulumi.Input['FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentArgs']] = None,
1943
+ referential_rules_enabled: Optional[pulumi.Input[bool]] = None):
1944
+ """
1945
+ :param pulumi.Input[int] audit_interval_seconds: Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
1946
+ :param pulumi.Input[int] constraint_violation_limit: The maximum number of audit violations to be stored in a constraint. If not set, the default of 20 will be used.
1947
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] exemptable_namespaces: The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
1948
+ :param pulumi.Input[str] install_spec: Configures the mode of the Policy Controller installation. Must be one of `INSTALL_SPEC_NOT_INSTALLED`, `INSTALL_SPEC_ENABLED`, `INSTALL_SPEC_SUSPENDED` or `INSTALL_SPEC_DETACHED`.
1949
+ :param pulumi.Input[bool] log_denies_enabled: Logs all denies and dry run failures.
1950
+ :param pulumi.Input['FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringArgs'] monitoring: Specifies the backends Policy Controller should export metrics to. Structure is documented below.
1951
+ :param pulumi.Input[bool] mutation_enabled: Enables mutation in policy controller. If true, mutation CRDs, webhook, and controller deployment will be deployed to the cluster.
1952
+ :param pulumi.Input['FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentArgs'] policy_content: Specifies the desired policy content on the cluster. Structure is documented below.
1953
+ :param pulumi.Input[bool] referential_rules_enabled: Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
1954
+ """
1955
+ if audit_interval_seconds is not None:
1956
+ pulumi.set(__self__, "audit_interval_seconds", audit_interval_seconds)
1957
+ if constraint_violation_limit is not None:
1958
+ pulumi.set(__self__, "constraint_violation_limit", constraint_violation_limit)
1959
+ if exemptable_namespaces is not None:
1960
+ pulumi.set(__self__, "exemptable_namespaces", exemptable_namespaces)
1961
+ if install_spec is not None:
1962
+ pulumi.set(__self__, "install_spec", install_spec)
1963
+ if log_denies_enabled is not None:
1964
+ pulumi.set(__self__, "log_denies_enabled", log_denies_enabled)
1965
+ if monitoring is not None:
1966
+ pulumi.set(__self__, "monitoring", monitoring)
1967
+ if mutation_enabled is not None:
1968
+ pulumi.set(__self__, "mutation_enabled", mutation_enabled)
1969
+ if policy_content is not None:
1970
+ pulumi.set(__self__, "policy_content", policy_content)
1971
+ if referential_rules_enabled is not None:
1972
+ pulumi.set(__self__, "referential_rules_enabled", referential_rules_enabled)
1973
+
1974
+ @property
1975
+ @pulumi.getter(name="auditIntervalSeconds")
1976
+ def audit_interval_seconds(self) -> Optional[pulumi.Input[int]]:
1977
+ """
1978
+ Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
1979
+ """
1980
+ return pulumi.get(self, "audit_interval_seconds")
1981
+
1982
+ @audit_interval_seconds.setter
1983
+ def audit_interval_seconds(self, value: Optional[pulumi.Input[int]]):
1984
+ pulumi.set(self, "audit_interval_seconds", value)
1985
+
1986
+ @property
1987
+ @pulumi.getter(name="constraintViolationLimit")
1988
+ def constraint_violation_limit(self) -> Optional[pulumi.Input[int]]:
1989
+ """
1990
+ The maximum number of audit violations to be stored in a constraint. If not set, the default of 20 will be used.
1991
+ """
1992
+ return pulumi.get(self, "constraint_violation_limit")
1993
+
1994
+ @constraint_violation_limit.setter
1995
+ def constraint_violation_limit(self, value: Optional[pulumi.Input[int]]):
1996
+ pulumi.set(self, "constraint_violation_limit", value)
1997
+
1998
+ @property
1999
+ @pulumi.getter(name="exemptableNamespaces")
2000
+ def exemptable_namespaces(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2001
+ """
2002
+ The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
2003
+ """
2004
+ return pulumi.get(self, "exemptable_namespaces")
2005
+
2006
+ @exemptable_namespaces.setter
2007
+ def exemptable_namespaces(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2008
+ pulumi.set(self, "exemptable_namespaces", value)
2009
+
2010
+ @property
2011
+ @pulumi.getter(name="installSpec")
2012
+ def install_spec(self) -> Optional[pulumi.Input[str]]:
2013
+ """
2014
+ Configures the mode of the Policy Controller installation. Must be one of `INSTALL_SPEC_NOT_INSTALLED`, `INSTALL_SPEC_ENABLED`, `INSTALL_SPEC_SUSPENDED` or `INSTALL_SPEC_DETACHED`.
2015
+ """
2016
+ return pulumi.get(self, "install_spec")
2017
+
2018
+ @install_spec.setter
2019
+ def install_spec(self, value: Optional[pulumi.Input[str]]):
2020
+ pulumi.set(self, "install_spec", value)
2021
+
2022
+ @property
2023
+ @pulumi.getter(name="logDeniesEnabled")
2024
+ def log_denies_enabled(self) -> Optional[pulumi.Input[bool]]:
2025
+ """
2026
+ Logs all denies and dry run failures.
2027
+ """
2028
+ return pulumi.get(self, "log_denies_enabled")
2029
+
2030
+ @log_denies_enabled.setter
2031
+ def log_denies_enabled(self, value: Optional[pulumi.Input[bool]]):
2032
+ pulumi.set(self, "log_denies_enabled", value)
2033
+
2034
+ @property
2035
+ @pulumi.getter
2036
+ def monitoring(self) -> Optional[pulumi.Input['FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringArgs']]:
2037
+ """
2038
+ Specifies the backends Policy Controller should export metrics to. Structure is documented below.
2039
+ """
2040
+ return pulumi.get(self, "monitoring")
2041
+
2042
+ @monitoring.setter
2043
+ def monitoring(self, value: Optional[pulumi.Input['FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringArgs']]):
2044
+ pulumi.set(self, "monitoring", value)
2045
+
2046
+ @property
2047
+ @pulumi.getter(name="mutationEnabled")
2048
+ def mutation_enabled(self) -> Optional[pulumi.Input[bool]]:
2049
+ """
2050
+ Enables mutation in policy controller. If true, mutation CRDs, webhook, and controller deployment will be deployed to the cluster.
2051
+ """
2052
+ return pulumi.get(self, "mutation_enabled")
2053
+
2054
+ @mutation_enabled.setter
2055
+ def mutation_enabled(self, value: Optional[pulumi.Input[bool]]):
2056
+ pulumi.set(self, "mutation_enabled", value)
2057
+
2058
+ @property
2059
+ @pulumi.getter(name="policyContent")
2060
+ def policy_content(self) -> Optional[pulumi.Input['FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentArgs']]:
2061
+ """
2062
+ Specifies the desired policy content on the cluster. Structure is documented below.
2063
+ """
2064
+ return pulumi.get(self, "policy_content")
2065
+
2066
+ @policy_content.setter
2067
+ def policy_content(self, value: Optional[pulumi.Input['FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentArgs']]):
2068
+ pulumi.set(self, "policy_content", value)
2069
+
2070
+ @property
2071
+ @pulumi.getter(name="referentialRulesEnabled")
2072
+ def referential_rules_enabled(self) -> Optional[pulumi.Input[bool]]:
2073
+ """
2074
+ Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
2075
+ """
2076
+ return pulumi.get(self, "referential_rules_enabled")
2077
+
2078
+ @referential_rules_enabled.setter
2079
+ def referential_rules_enabled(self, value: Optional[pulumi.Input[bool]]):
2080
+ pulumi.set(self, "referential_rules_enabled", value)
2081
+
2082
+
2083
+ @pulumi.input_type
2084
+ class FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringArgs:
2085
+ def __init__(__self__, *,
2086
+ backends: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
2087
+ """
2088
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] backends: Specifies the list of backends Policy Controller will export to. Must be one of `CLOUD_MONITORING` or `PROMETHEUS`. Defaults to [`CLOUD_MONITORING`, `PROMETHEUS`]. Specifying an empty value `[]` disables metrics export.
2089
+ """
2090
+ if backends is not None:
2091
+ pulumi.set(__self__, "backends", backends)
2092
+
2093
+ @property
2094
+ @pulumi.getter
2095
+ def backends(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2096
+ """
2097
+ Specifies the list of backends Policy Controller will export to. Must be one of `CLOUD_MONITORING` or `PROMETHEUS`. Defaults to [`CLOUD_MONITORING`, `PROMETHEUS`]. Specifying an empty value `[]` disables metrics export.
2098
+ """
2099
+ return pulumi.get(self, "backends")
2100
+
2101
+ @backends.setter
2102
+ def backends(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2103
+ pulumi.set(self, "backends", value)
2104
+
2105
+
2106
+ @pulumi.input_type
2107
+ class FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentArgs:
2108
+ def __init__(__self__, *,
2109
+ template_library: Optional[pulumi.Input['FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryArgs']] = None):
2110
+ """
2111
+ :param pulumi.Input['FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryArgs'] template_library: Configures the installation of the Template Library. Structure is documented below.
2112
+ """
2113
+ if template_library is not None:
2114
+ pulumi.set(__self__, "template_library", template_library)
2115
+
2116
+ @property
2117
+ @pulumi.getter(name="templateLibrary")
2118
+ def template_library(self) -> Optional[pulumi.Input['FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryArgs']]:
2119
+ """
2120
+ Configures the installation of the Template Library. Structure is documented below.
2121
+ """
2122
+ return pulumi.get(self, "template_library")
2123
+
2124
+ @template_library.setter
2125
+ def template_library(self, value: Optional[pulumi.Input['FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryArgs']]):
2126
+ pulumi.set(self, "template_library", value)
2127
+
2128
+
2129
+ @pulumi.input_type
2130
+ class FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryArgs:
2131
+ def __init__(__self__, *,
2132
+ installation: Optional[pulumi.Input[str]] = None):
2133
+ """
2134
+ :param pulumi.Input[str] installation: Configures the manner in which the template library is installed on the cluster. Must be one of `ALL`, `NOT_INSTALLED` or `INSTALLATION_UNSPECIFIED`. Defaults to `ALL`.
2135
+ """
2136
+ if installation is not None:
2137
+ pulumi.set(__self__, "installation", installation)
2138
+
2139
+ @property
2140
+ @pulumi.getter
2141
+ def installation(self) -> Optional[pulumi.Input[str]]:
2142
+ """
2143
+ Configures the manner in which the template library is installed on the cluster. Must be one of `ALL`, `NOT_INSTALLED` or `INSTALLATION_UNSPECIFIED`. Defaults to `ALL`.
2144
+ """
2145
+ return pulumi.get(self, "installation")
2146
+
2147
+ @installation.setter
2148
+ def installation(self, value: Optional[pulumi.Input[str]]):
2149
+ pulumi.set(self, "installation", value)
2150
+
2151
+
1850
2152
  @pulumi.input_type
1851
2153
  class FeatureResourceStateArgs:
1852
2154
  def __init__(__self__, *,
@@ -1895,19 +2197,37 @@ class FeatureResourceStateArgs:
1895
2197
  @pulumi.input_type
1896
2198
  class FeatureSpecArgs:
1897
2199
  def __init__(__self__, *,
2200
+ clusterupgrade: Optional[pulumi.Input['FeatureSpecClusterupgradeArgs']] = None,
1898
2201
  fleetobservability: Optional[pulumi.Input['FeatureSpecFleetobservabilityArgs']] = None,
1899
2202
  multiclusteringress: Optional[pulumi.Input['FeatureSpecMulticlusteringressArgs']] = None):
1900
2203
  """
2204
+ :param pulumi.Input['FeatureSpecClusterupgradeArgs'] clusterupgrade: Clusterupgrade feature spec.
2205
+ Structure is documented below.
1901
2206
  :param pulumi.Input['FeatureSpecFleetobservabilityArgs'] fleetobservability: Fleet Observability feature spec.
1902
2207
  Structure is documented below.
1903
2208
  :param pulumi.Input['FeatureSpecMulticlusteringressArgs'] multiclusteringress: Multicluster Ingress-specific spec.
1904
2209
  Structure is documented below.
1905
2210
  """
2211
+ if clusterupgrade is not None:
2212
+ pulumi.set(__self__, "clusterupgrade", clusterupgrade)
1906
2213
  if fleetobservability is not None:
1907
2214
  pulumi.set(__self__, "fleetobservability", fleetobservability)
1908
2215
  if multiclusteringress is not None:
1909
2216
  pulumi.set(__self__, "multiclusteringress", multiclusteringress)
1910
2217
 
2218
+ @property
2219
+ @pulumi.getter
2220
+ def clusterupgrade(self) -> Optional[pulumi.Input['FeatureSpecClusterupgradeArgs']]:
2221
+ """
2222
+ Clusterupgrade feature spec.
2223
+ Structure is documented below.
2224
+ """
2225
+ return pulumi.get(self, "clusterupgrade")
2226
+
2227
+ @clusterupgrade.setter
2228
+ def clusterupgrade(self, value: Optional[pulumi.Input['FeatureSpecClusterupgradeArgs']]):
2229
+ pulumi.set(self, "clusterupgrade", value)
2230
+
1911
2231
  @property
1912
2232
  @pulumi.getter
1913
2233
  def fleetobservability(self) -> Optional[pulumi.Input['FeatureSpecFleetobservabilityArgs']]:
@@ -1935,6 +2255,186 @@ class FeatureSpecArgs:
1935
2255
  pulumi.set(self, "multiclusteringress", value)
1936
2256
 
1937
2257
 
2258
+ @pulumi.input_type
2259
+ class FeatureSpecClusterupgradeArgs:
2260
+ def __init__(__self__, *,
2261
+ upstream_fleets: pulumi.Input[Sequence[pulumi.Input[str]]],
2262
+ gke_upgrade_overrides: Optional[pulumi.Input[Sequence[pulumi.Input['FeatureSpecClusterupgradeGkeUpgradeOverrideArgs']]]] = None,
2263
+ post_conditions: Optional[pulumi.Input['FeatureSpecClusterupgradePostConditionsArgs']] = None):
2264
+ """
2265
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] upstream_fleets: Specified if other fleet should be considered as a source of upgrades. Currently, at most one upstream fleet is allowed. The fleet name should be either fleet project number or id.
2266
+ :param pulumi.Input[Sequence[pulumi.Input['FeatureSpecClusterupgradeGkeUpgradeOverrideArgs']]] gke_upgrade_overrides: Configuration overrides for individual upgrades.
2267
+ Structure is documented below.
2268
+ :param pulumi.Input['FeatureSpecClusterupgradePostConditionsArgs'] post_conditions: Post conditions to override for the specified upgrade.
2269
+ Structure is documented below.
2270
+ """
2271
+ pulumi.set(__self__, "upstream_fleets", upstream_fleets)
2272
+ if gke_upgrade_overrides is not None:
2273
+ pulumi.set(__self__, "gke_upgrade_overrides", gke_upgrade_overrides)
2274
+ if post_conditions is not None:
2275
+ pulumi.set(__self__, "post_conditions", post_conditions)
2276
+
2277
+ @property
2278
+ @pulumi.getter(name="upstreamFleets")
2279
+ def upstream_fleets(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
2280
+ """
2281
+ Specified if other fleet should be considered as a source of upgrades. Currently, at most one upstream fleet is allowed. The fleet name should be either fleet project number or id.
2282
+ """
2283
+ return pulumi.get(self, "upstream_fleets")
2284
+
2285
+ @upstream_fleets.setter
2286
+ def upstream_fleets(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
2287
+ pulumi.set(self, "upstream_fleets", value)
2288
+
2289
+ @property
2290
+ @pulumi.getter(name="gkeUpgradeOverrides")
2291
+ def gke_upgrade_overrides(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FeatureSpecClusterupgradeGkeUpgradeOverrideArgs']]]]:
2292
+ """
2293
+ Configuration overrides for individual upgrades.
2294
+ Structure is documented below.
2295
+ """
2296
+ return pulumi.get(self, "gke_upgrade_overrides")
2297
+
2298
+ @gke_upgrade_overrides.setter
2299
+ def gke_upgrade_overrides(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FeatureSpecClusterupgradeGkeUpgradeOverrideArgs']]]]):
2300
+ pulumi.set(self, "gke_upgrade_overrides", value)
2301
+
2302
+ @property
2303
+ @pulumi.getter(name="postConditions")
2304
+ def post_conditions(self) -> Optional[pulumi.Input['FeatureSpecClusterupgradePostConditionsArgs']]:
2305
+ """
2306
+ Post conditions to override for the specified upgrade.
2307
+ Structure is documented below.
2308
+ """
2309
+ return pulumi.get(self, "post_conditions")
2310
+
2311
+ @post_conditions.setter
2312
+ def post_conditions(self, value: Optional[pulumi.Input['FeatureSpecClusterupgradePostConditionsArgs']]):
2313
+ pulumi.set(self, "post_conditions", value)
2314
+
2315
+
2316
+ @pulumi.input_type
2317
+ class FeatureSpecClusterupgradeGkeUpgradeOverrideArgs:
2318
+ def __init__(__self__, *,
2319
+ post_conditions: pulumi.Input['FeatureSpecClusterupgradeGkeUpgradeOverridePostConditionsArgs'],
2320
+ upgrade: pulumi.Input['FeatureSpecClusterupgradeGkeUpgradeOverrideUpgradeArgs']):
2321
+ """
2322
+ :param pulumi.Input['FeatureSpecClusterupgradeGkeUpgradeOverridePostConditionsArgs'] post_conditions: Post conditions to override for the specified upgrade.
2323
+ Structure is documented below.
2324
+ :param pulumi.Input['FeatureSpecClusterupgradeGkeUpgradeOverrideUpgradeArgs'] upgrade: Which upgrade to override.
2325
+ Structure is documented below.
2326
+ """
2327
+ pulumi.set(__self__, "post_conditions", post_conditions)
2328
+ pulumi.set(__self__, "upgrade", upgrade)
2329
+
2330
+ @property
2331
+ @pulumi.getter(name="postConditions")
2332
+ def post_conditions(self) -> pulumi.Input['FeatureSpecClusterupgradeGkeUpgradeOverridePostConditionsArgs']:
2333
+ """
2334
+ Post conditions to override for the specified upgrade.
2335
+ Structure is documented below.
2336
+ """
2337
+ return pulumi.get(self, "post_conditions")
2338
+
2339
+ @post_conditions.setter
2340
+ def post_conditions(self, value: pulumi.Input['FeatureSpecClusterupgradeGkeUpgradeOverridePostConditionsArgs']):
2341
+ pulumi.set(self, "post_conditions", value)
2342
+
2343
+ @property
2344
+ @pulumi.getter
2345
+ def upgrade(self) -> pulumi.Input['FeatureSpecClusterupgradeGkeUpgradeOverrideUpgradeArgs']:
2346
+ """
2347
+ Which upgrade to override.
2348
+ Structure is documented below.
2349
+ """
2350
+ return pulumi.get(self, "upgrade")
2351
+
2352
+ @upgrade.setter
2353
+ def upgrade(self, value: pulumi.Input['FeatureSpecClusterupgradeGkeUpgradeOverrideUpgradeArgs']):
2354
+ pulumi.set(self, "upgrade", value)
2355
+
2356
+
2357
+ @pulumi.input_type
2358
+ class FeatureSpecClusterupgradeGkeUpgradeOverridePostConditionsArgs:
2359
+ def __init__(__self__, *,
2360
+ soaking: pulumi.Input[str]):
2361
+ """
2362
+ :param pulumi.Input[str] soaking: Amount of time to "soak" after a rollout has been finished before marking it COMPLETE. Cannot exceed 30 days.
2363
+ """
2364
+ pulumi.set(__self__, "soaking", soaking)
2365
+
2366
+ @property
2367
+ @pulumi.getter
2368
+ def soaking(self) -> pulumi.Input[str]:
2369
+ """
2370
+ Amount of time to "soak" after a rollout has been finished before marking it COMPLETE. Cannot exceed 30 days.
2371
+ """
2372
+ return pulumi.get(self, "soaking")
2373
+
2374
+ @soaking.setter
2375
+ def soaking(self, value: pulumi.Input[str]):
2376
+ pulumi.set(self, "soaking", value)
2377
+
2378
+
2379
+ @pulumi.input_type
2380
+ class FeatureSpecClusterupgradeGkeUpgradeOverrideUpgradeArgs:
2381
+ def __init__(__self__, *,
2382
+ name: pulumi.Input[str],
2383
+ version: pulumi.Input[str]):
2384
+ """
2385
+ :param pulumi.Input[str] name: Name of the upgrade, e.g., "k8s_control_plane". It should be a valid upgrade name. It must not exceet 99 characters.
2386
+ :param pulumi.Input[str] version: Version of the upgrade, e.g., "1.22.1-gke.100". It should be a valid version. It must not exceet 99 characters.
2387
+ """
2388
+ pulumi.set(__self__, "name", name)
2389
+ pulumi.set(__self__, "version", version)
2390
+
2391
+ @property
2392
+ @pulumi.getter
2393
+ def name(self) -> pulumi.Input[str]:
2394
+ """
2395
+ Name of the upgrade, e.g., "k8s_control_plane". It should be a valid upgrade name. It must not exceet 99 characters.
2396
+ """
2397
+ return pulumi.get(self, "name")
2398
+
2399
+ @name.setter
2400
+ def name(self, value: pulumi.Input[str]):
2401
+ pulumi.set(self, "name", value)
2402
+
2403
+ @property
2404
+ @pulumi.getter
2405
+ def version(self) -> pulumi.Input[str]:
2406
+ """
2407
+ Version of the upgrade, e.g., "1.22.1-gke.100". It should be a valid version. It must not exceet 99 characters.
2408
+ """
2409
+ return pulumi.get(self, "version")
2410
+
2411
+ @version.setter
2412
+ def version(self, value: pulumi.Input[str]):
2413
+ pulumi.set(self, "version", value)
2414
+
2415
+
2416
+ @pulumi.input_type
2417
+ class FeatureSpecClusterupgradePostConditionsArgs:
2418
+ def __init__(__self__, *,
2419
+ soaking: pulumi.Input[str]):
2420
+ """
2421
+ :param pulumi.Input[str] soaking: Amount of time to "soak" after a rollout has been finished before marking it COMPLETE. Cannot exceed 30 days.
2422
+ """
2423
+ pulumi.set(__self__, "soaking", soaking)
2424
+
2425
+ @property
2426
+ @pulumi.getter
2427
+ def soaking(self) -> pulumi.Input[str]:
2428
+ """
2429
+ Amount of time to "soak" after a rollout has been finished before marking it COMPLETE. Cannot exceed 30 days.
2430
+ """
2431
+ return pulumi.get(self, "soaking")
2432
+
2433
+ @soaking.setter
2434
+ def soaking(self, value: pulumi.Input[str]):
2435
+ pulumi.set(self, "soaking", value)
2436
+
2437
+
1938
2438
  @pulumi.input_type
1939
2439
  class FeatureSpecFleetobservabilityArgs:
1940
2440
  def __init__(__self__, *,
@@ -586,6 +586,23 @@ class Feature(pulumi.CustomResource):
586
586
  ),
587
587
  location="global")
588
588
  ```
589
+ ### Gkehub Feature Clusterupgrade
590
+
591
+ ```python
592
+ import pulumi
593
+ import pulumi_gcp as gcp
594
+
595
+ feature = gcp.gkehub.Feature("feature",
596
+ location="global",
597
+ spec=gcp.gkehub.FeatureSpecArgs(
598
+ clusterupgrade=gcp.gkehub.FeatureSpecClusterupgradeArgs(
599
+ post_conditions=gcp.gkehub.FeatureSpecClusterupgradePostConditionsArgs(
600
+ soaking="60s",
601
+ ),
602
+ upstream_fleets=[],
603
+ ),
604
+ ))
605
+ ```
589
606
 
590
607
  ## Import
591
608
 
@@ -834,6 +851,23 @@ class Feature(pulumi.CustomResource):
834
851
  ),
835
852
  location="global")
836
853
  ```
854
+ ### Gkehub Feature Clusterupgrade
855
+
856
+ ```python
857
+ import pulumi
858
+ import pulumi_gcp as gcp
859
+
860
+ feature = gcp.gkehub.Feature("feature",
861
+ location="global",
862
+ spec=gcp.gkehub.FeatureSpecArgs(
863
+ clusterupgrade=gcp.gkehub.FeatureSpecClusterupgradeArgs(
864
+ post_conditions=gcp.gkehub.FeatureSpecClusterupgradePostConditionsArgs(
865
+ soaking="60s",
866
+ ),
867
+ upstream_fleets=[],
868
+ ),
869
+ ))
870
+ ```
837
871
 
838
872
  ## Import
839
873