pulumi-gcp 7.26.0a1717725112__py3-none-any.whl → 7.27.0__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 (81) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/appengine/_inputs.py +40 -0
  3. pulumi_gcp/appengine/flexible_app_version.py +47 -0
  4. pulumi_gcp/appengine/outputs.py +51 -0
  5. pulumi_gcp/bigtable/instance.py +47 -0
  6. pulumi_gcp/clouddeploy/_inputs.py +16 -0
  7. pulumi_gcp/clouddeploy/outputs.py +12 -0
  8. pulumi_gcp/compute/__init__.py +2 -0
  9. pulumi_gcp/compute/_inputs.py +84 -0
  10. pulumi_gcp/compute/backend_service.py +54 -0
  11. pulumi_gcp/compute/disk.py +68 -0
  12. pulumi_gcp/compute/get_backend_service.py +11 -1
  13. pulumi_gcp/compute/get_disk.py +11 -1
  14. pulumi_gcp/compute/get_instance.py +11 -1
  15. pulumi_gcp/compute/get_instance_group_manager.py +31 -1
  16. pulumi_gcp/compute/get_instance_template.py +11 -1
  17. pulumi_gcp/compute/get_region_instance_template.py +11 -1
  18. pulumi_gcp/compute/get_security_policy.py +214 -0
  19. pulumi_gcp/compute/instance.py +47 -0
  20. pulumi_gcp/compute/instance_from_machine_image.py +47 -0
  21. pulumi_gcp/compute/instance_from_template.py +47 -0
  22. pulumi_gcp/compute/instance_group_manager.py +185 -0
  23. pulumi_gcp/compute/instance_template.py +47 -0
  24. pulumi_gcp/compute/outputs.py +1039 -0
  25. pulumi_gcp/compute/project_cloud_armor_tier.py +336 -0
  26. pulumi_gcp/compute/region_instance_group_manager.py +185 -0
  27. pulumi_gcp/compute/region_instance_template.py +47 -0
  28. pulumi_gcp/config/__init__.pyi +2 -0
  29. pulumi_gcp/config/vars.py +4 -0
  30. pulumi_gcp/container/_inputs.py +33 -4
  31. pulumi_gcp/container/cluster.py +61 -0
  32. pulumi_gcp/container/get_cluster.py +11 -1
  33. pulumi_gcp/container/outputs.py +48 -4
  34. pulumi_gcp/dataloss/_inputs.py +185 -19
  35. pulumi_gcp/dataloss/outputs.py +206 -17
  36. pulumi_gcp/dataloss/prevention_inspect_template.py +54 -0
  37. pulumi_gcp/gkebackup/_inputs.py +282 -7
  38. pulumi_gcp/gkebackup/backup_plan.py +100 -0
  39. pulumi_gcp/gkebackup/outputs.py +312 -7
  40. pulumi_gcp/gkebackup/restore_plan.py +326 -0
  41. pulumi_gcp/gkebackup/restore_plan_iam_binding.py +326 -0
  42. pulumi_gcp/gkebackup/restore_plan_iam_member.py +326 -0
  43. pulumi_gcp/gkebackup/restore_plan_iam_policy.py +326 -0
  44. pulumi_gcp/healthcare/_inputs.py +17 -1
  45. pulumi_gcp/healthcare/dicom_store.py +2 -0
  46. pulumi_gcp/healthcare/fhir_store.py +44 -60
  47. pulumi_gcp/healthcare/outputs.py +15 -1
  48. pulumi_gcp/integrationconnectors/endpoint_attachment.py +47 -0
  49. pulumi_gcp/kms/crypto_key.py +14 -7
  50. pulumi_gcp/netapp/_inputs.py +58 -0
  51. pulumi_gcp/netapp/outputs.py +67 -0
  52. pulumi_gcp/netapp/volume.py +54 -0
  53. pulumi_gcp/networkservices/__init__.py +1 -0
  54. pulumi_gcp/networkservices/_inputs.py +47 -0
  55. pulumi_gcp/networkservices/outputs.py +56 -0
  56. pulumi_gcp/networkservices/service_lb_policies.py +782 -0
  57. pulumi_gcp/provider.py +20 -0
  58. pulumi_gcp/pulumi-plugin.json +1 -1
  59. pulumi_gcp/redis/_inputs.py +44 -0
  60. pulumi_gcp/redis/cluster.py +128 -3
  61. pulumi_gcp/redis/outputs.py +36 -0
  62. pulumi_gcp/secretmanager/_inputs.py +20 -0
  63. pulumi_gcp/secretmanager/outputs.py +20 -0
  64. pulumi_gcp/secretmanager/secret_iam_binding.py +244 -0
  65. pulumi_gcp/secretmanager/secret_iam_member.py +244 -0
  66. pulumi_gcp/secretmanager/secret_iam_policy.py +224 -0
  67. pulumi_gcp/securitycenter/__init__.py +1 -0
  68. pulumi_gcp/securitycenter/management_organization_event_threat_detection_custom_module.py +568 -0
  69. pulumi_gcp/spanner/__init__.py +1 -0
  70. pulumi_gcp/spanner/_inputs.py +68 -0
  71. pulumi_gcp/spanner/instance_config.py +569 -0
  72. pulumi_gcp/spanner/outputs.py +73 -0
  73. pulumi_gcp/sql/_inputs.py +8 -2
  74. pulumi_gcp/sql/outputs.py +9 -6
  75. pulumi_gcp/workstations/_inputs.py +51 -1
  76. pulumi_gcp/workstations/outputs.py +46 -2
  77. pulumi_gcp/workstations/workstation_config.py +10 -4
  78. {pulumi_gcp-7.26.0a1717725112.dist-info → pulumi_gcp-7.27.0.dist-info}/METADATA +1 -1
  79. {pulumi_gcp-7.26.0a1717725112.dist-info → pulumi_gcp-7.27.0.dist-info}/RECORD +81 -76
  80. {pulumi_gcp-7.26.0a1717725112.dist-info → pulumi_gcp-7.27.0.dist-info}/WHEEL +0 -0
  81. {pulumi_gcp-7.26.0a1717725112.dist-info → pulumi_gcp-7.27.0.dist-info}/top_level.txt +0 -0
@@ -31,6 +31,10 @@ __all__ = [
31
31
  'RestorePlanRestoreConfigClusterResourceRestoreScopeExcludedGroupKindArgs',
32
32
  'RestorePlanRestoreConfigClusterResourceRestoreScopeSelectedGroupKindArgs',
33
33
  'RestorePlanRestoreConfigExcludedNamespacesArgs',
34
+ 'RestorePlanRestoreConfigRestoreOrderArgs',
35
+ 'RestorePlanRestoreConfigRestoreOrderGroupKindDependencyArgs',
36
+ 'RestorePlanRestoreConfigRestoreOrderGroupKindDependencyRequiringArgs',
37
+ 'RestorePlanRestoreConfigRestoreOrderGroupKindDependencySatisfyingArgs',
34
38
  'RestorePlanRestoreConfigSelectedApplicationsArgs',
35
39
  'RestorePlanRestoreConfigSelectedApplicationsNamespacedNameArgs',
36
40
  'RestorePlanRestoreConfigSelectedNamespacesArgs',
@@ -38,6 +42,7 @@ __all__ = [
38
42
  'RestorePlanRestoreConfigTransformationRuleFieldActionArgs',
39
43
  'RestorePlanRestoreConfigTransformationRuleResourceFilterArgs',
40
44
  'RestorePlanRestoreConfigTransformationRuleResourceFilterGroupKindArgs',
45
+ 'RestorePlanRestoreConfigVolumeDataRestorePolicyBindingArgs',
41
46
  ]
42
47
 
43
48
  @pulumi.input_type
@@ -47,6 +52,7 @@ class BackupPlanBackupConfigArgs:
47
52
  encryption_key: Optional[pulumi.Input['BackupPlanBackupConfigEncryptionKeyArgs']] = None,
48
53
  include_secrets: Optional[pulumi.Input[bool]] = None,
49
54
  include_volume_data: Optional[pulumi.Input[bool]] = None,
55
+ permissive_mode: Optional[pulumi.Input[bool]] = None,
50
56
  selected_applications: Optional[pulumi.Input['BackupPlanBackupConfigSelectedApplicationsArgs']] = None,
51
57
  selected_namespaces: Optional[pulumi.Input['BackupPlanBackupConfigSelectedNamespacesArgs']] = None):
52
58
  """
@@ -58,6 +64,9 @@ class BackupPlanBackupConfigArgs:
58
64
  when they fall into the scope of Backups.
59
65
  :param pulumi.Input[bool] include_volume_data: This flag specifies whether volume data should be backed up when PVCs are
60
66
  included in the scope of a Backup.
67
+ :param pulumi.Input[bool] permissive_mode: This flag specifies whether Backups will not fail when
68
+ Backup for GKE detects Kubernetes configuration that is
69
+ non-standard or requires additional setup to restore.
61
70
  :param pulumi.Input['BackupPlanBackupConfigSelectedApplicationsArgs'] selected_applications: A list of namespaced Kubernetes Resources.
62
71
  Structure is documented below.
63
72
  :param pulumi.Input['BackupPlanBackupConfigSelectedNamespacesArgs'] selected_namespaces: If set, include just the resources in the listed namespaces.
@@ -71,6 +80,8 @@ class BackupPlanBackupConfigArgs:
71
80
  pulumi.set(__self__, "include_secrets", include_secrets)
72
81
  if include_volume_data is not None:
73
82
  pulumi.set(__self__, "include_volume_data", include_volume_data)
83
+ if permissive_mode is not None:
84
+ pulumi.set(__self__, "permissive_mode", permissive_mode)
74
85
  if selected_applications is not None:
75
86
  pulumi.set(__self__, "selected_applications", selected_applications)
76
87
  if selected_namespaces is not None:
@@ -128,6 +139,20 @@ class BackupPlanBackupConfigArgs:
128
139
  def include_volume_data(self, value: Optional[pulumi.Input[bool]]):
129
140
  pulumi.set(self, "include_volume_data", value)
130
141
 
142
+ @property
143
+ @pulumi.getter(name="permissiveMode")
144
+ def permissive_mode(self) -> Optional[pulumi.Input[bool]]:
145
+ """
146
+ This flag specifies whether Backups will not fail when
147
+ Backup for GKE detects Kubernetes configuration that is
148
+ non-standard or requires additional setup to restore.
149
+ """
150
+ return pulumi.get(self, "permissive_mode")
151
+
152
+ @permissive_mode.setter
153
+ def permissive_mode(self, value: Optional[pulumi.Input[bool]]):
154
+ pulumi.set(self, "permissive_mode", value)
155
+
131
156
  @property
132
157
  @pulumi.getter(name="selectedApplications")
133
158
  def selected_applications(self) -> Optional[pulumi.Input['BackupPlanBackupConfigSelectedApplicationsArgs']]:
@@ -905,10 +930,12 @@ class RestorePlanRestoreConfigArgs:
905
930
  excluded_namespaces: Optional[pulumi.Input['RestorePlanRestoreConfigExcludedNamespacesArgs']] = None,
906
931
  namespaced_resource_restore_mode: Optional[pulumi.Input[str]] = None,
907
932
  no_namespaces: Optional[pulumi.Input[bool]] = None,
933
+ restore_order: Optional[pulumi.Input['RestorePlanRestoreConfigRestoreOrderArgs']] = None,
908
934
  selected_applications: Optional[pulumi.Input['RestorePlanRestoreConfigSelectedApplicationsArgs']] = None,
909
935
  selected_namespaces: Optional[pulumi.Input['RestorePlanRestoreConfigSelectedNamespacesArgs']] = None,
910
936
  transformation_rules: Optional[pulumi.Input[Sequence[pulumi.Input['RestorePlanRestoreConfigTransformationRuleArgs']]]] = None,
911
- volume_data_restore_policy: Optional[pulumi.Input[str]] = None):
937
+ volume_data_restore_policy: Optional[pulumi.Input[str]] = None,
938
+ volume_data_restore_policy_bindings: Optional[pulumi.Input[Sequence[pulumi.Input['RestorePlanRestoreConfigVolumeDataRestorePolicyBindingArgs']]]] = None):
912
939
  """
913
940
  :param pulumi.Input[bool] all_namespaces: If True, restore all namespaced resources in the Backup.
914
941
  Setting this field to False will result in an error.
@@ -930,9 +957,11 @@ class RestorePlanRestoreConfigArgs:
930
957
  if the `namespacedResourceRestoreScope` is anything other than `noNamespaces`.
931
958
  See https://cloud.google.com/kubernetes-engine/docs/add-on/backup-for-gke/reference/rest/v1/RestoreConfig#namespacedresourcerestoremode
932
959
  for more information on each mode.
933
- Possible values are: `DELETE_AND_RESTORE`, `FAIL_ON_CONFLICT`.
960
+ Possible values are: `DELETE_AND_RESTORE`, `FAIL_ON_CONFLICT`, `MERGE_SKIP_ON_CONFLICT`, `MERGE_REPLACE_VOLUME_ON_CONFLICT`, `MERGE_REPLACE_ON_CONFLICT`.
934
961
  :param pulumi.Input[bool] no_namespaces: Do not restore any namespaced resources if set to "True".
935
962
  Specifying this field to "False" is not allowed.
963
+ :param pulumi.Input['RestorePlanRestoreConfigRestoreOrderArgs'] restore_order: It contains custom ordering to use on a Restore.
964
+ Structure is documented below.
936
965
  :param pulumi.Input['RestorePlanRestoreConfigSelectedApplicationsArgs'] selected_applications: A list of selected ProtectedApplications to restore.
937
966
  The listed ProtectedApplications and all the resources
938
967
  to which they refer will be restored.
@@ -953,6 +982,10 @@ class RestorePlanRestoreConfigArgs:
953
982
  See https://cloud.google.com/kubernetes-engine/docs/add-on/backup-for-gke/reference/rest/v1/RestoreConfig#VolumeDataRestorePolicy
954
983
  for more information on each policy option.
955
984
  Possible values are: `RESTORE_VOLUME_DATA_FROM_BACKUP`, `REUSE_VOLUME_HANDLE_FROM_BACKUP`, `NO_VOLUME_DATA_RESTORATION`.
985
+ :param pulumi.Input[Sequence[pulumi.Input['RestorePlanRestoreConfigVolumeDataRestorePolicyBindingArgs']]] volume_data_restore_policy_bindings: A table that binds volumes by their scope to a restore policy. Bindings
986
+ must have a unique scope. Any volumes not scoped in the bindings are
987
+ subject to the policy defined in volume_data_restore_policy.
988
+ Structure is documented below.
956
989
  """
957
990
  if all_namespaces is not None:
958
991
  pulumi.set(__self__, "all_namespaces", all_namespaces)
@@ -966,6 +999,8 @@ class RestorePlanRestoreConfigArgs:
966
999
  pulumi.set(__self__, "namespaced_resource_restore_mode", namespaced_resource_restore_mode)
967
1000
  if no_namespaces is not None:
968
1001
  pulumi.set(__self__, "no_namespaces", no_namespaces)
1002
+ if restore_order is not None:
1003
+ pulumi.set(__self__, "restore_order", restore_order)
969
1004
  if selected_applications is not None:
970
1005
  pulumi.set(__self__, "selected_applications", selected_applications)
971
1006
  if selected_namespaces is not None:
@@ -974,6 +1009,8 @@ class RestorePlanRestoreConfigArgs:
974
1009
  pulumi.set(__self__, "transformation_rules", transformation_rules)
975
1010
  if volume_data_restore_policy is not None:
976
1011
  pulumi.set(__self__, "volume_data_restore_policy", volume_data_restore_policy)
1012
+ if volume_data_restore_policy_bindings is not None:
1013
+ pulumi.set(__self__, "volume_data_restore_policy_bindings", volume_data_restore_policy_bindings)
977
1014
 
978
1015
  @property
979
1016
  @pulumi.getter(name="allNamespaces")
@@ -1043,7 +1080,7 @@ class RestorePlanRestoreConfigArgs:
1043
1080
  if the `namespacedResourceRestoreScope` is anything other than `noNamespaces`.
1044
1081
  See https://cloud.google.com/kubernetes-engine/docs/add-on/backup-for-gke/reference/rest/v1/RestoreConfig#namespacedresourcerestoremode
1045
1082
  for more information on each mode.
1046
- Possible values are: `DELETE_AND_RESTORE`, `FAIL_ON_CONFLICT`.
1083
+ Possible values are: `DELETE_AND_RESTORE`, `FAIL_ON_CONFLICT`, `MERGE_SKIP_ON_CONFLICT`, `MERGE_REPLACE_VOLUME_ON_CONFLICT`, `MERGE_REPLACE_ON_CONFLICT`.
1047
1084
  """
1048
1085
  return pulumi.get(self, "namespaced_resource_restore_mode")
1049
1086
 
@@ -1064,6 +1101,19 @@ class RestorePlanRestoreConfigArgs:
1064
1101
  def no_namespaces(self, value: Optional[pulumi.Input[bool]]):
1065
1102
  pulumi.set(self, "no_namespaces", value)
1066
1103
 
1104
+ @property
1105
+ @pulumi.getter(name="restoreOrder")
1106
+ def restore_order(self) -> Optional[pulumi.Input['RestorePlanRestoreConfigRestoreOrderArgs']]:
1107
+ """
1108
+ It contains custom ordering to use on a Restore.
1109
+ Structure is documented below.
1110
+ """
1111
+ return pulumi.get(self, "restore_order")
1112
+
1113
+ @restore_order.setter
1114
+ def restore_order(self, value: Optional[pulumi.Input['RestorePlanRestoreConfigRestoreOrderArgs']]):
1115
+ pulumi.set(self, "restore_order", value)
1116
+
1067
1117
  @property
1068
1118
  @pulumi.getter(name="selectedApplications")
1069
1119
  def selected_applications(self) -> Optional[pulumi.Input['RestorePlanRestoreConfigSelectedApplicationsArgs']]:
@@ -1128,6 +1178,21 @@ class RestorePlanRestoreConfigArgs:
1128
1178
  def volume_data_restore_policy(self, value: Optional[pulumi.Input[str]]):
1129
1179
  pulumi.set(self, "volume_data_restore_policy", value)
1130
1180
 
1181
+ @property
1182
+ @pulumi.getter(name="volumeDataRestorePolicyBindings")
1183
+ def volume_data_restore_policy_bindings(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RestorePlanRestoreConfigVolumeDataRestorePolicyBindingArgs']]]]:
1184
+ """
1185
+ A table that binds volumes by their scope to a restore policy. Bindings
1186
+ must have a unique scope. Any volumes not scoped in the bindings are
1187
+ subject to the policy defined in volume_data_restore_policy.
1188
+ Structure is documented below.
1189
+ """
1190
+ return pulumi.get(self, "volume_data_restore_policy_bindings")
1191
+
1192
+ @volume_data_restore_policy_bindings.setter
1193
+ def volume_data_restore_policy_bindings(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RestorePlanRestoreConfigVolumeDataRestorePolicyBindingArgs']]]]):
1194
+ pulumi.set(self, "volume_data_restore_policy_bindings", value)
1195
+
1131
1196
 
1132
1197
  @pulumi.input_type
1133
1198
  class RestorePlanRestoreConfigClusterResourceRestoreScopeArgs:
@@ -1330,6 +1395,173 @@ class RestorePlanRestoreConfigExcludedNamespacesArgs:
1330
1395
  pulumi.set(self, "namespaces", value)
1331
1396
 
1332
1397
 
1398
+ @pulumi.input_type
1399
+ class RestorePlanRestoreConfigRestoreOrderArgs:
1400
+ def __init__(__self__, *,
1401
+ group_kind_dependencies: pulumi.Input[Sequence[pulumi.Input['RestorePlanRestoreConfigRestoreOrderGroupKindDependencyArgs']]]):
1402
+ """
1403
+ :param pulumi.Input[Sequence[pulumi.Input['RestorePlanRestoreConfigRestoreOrderGroupKindDependencyArgs']]] group_kind_dependencies: A list of group kind dependency pairs
1404
+ that is used by Backup for GKE to
1405
+ generate a group kind restore order.
1406
+ Structure is documented below.
1407
+ """
1408
+ pulumi.set(__self__, "group_kind_dependencies", group_kind_dependencies)
1409
+
1410
+ @property
1411
+ @pulumi.getter(name="groupKindDependencies")
1412
+ def group_kind_dependencies(self) -> pulumi.Input[Sequence[pulumi.Input['RestorePlanRestoreConfigRestoreOrderGroupKindDependencyArgs']]]:
1413
+ """
1414
+ A list of group kind dependency pairs
1415
+ that is used by Backup for GKE to
1416
+ generate a group kind restore order.
1417
+ Structure is documented below.
1418
+ """
1419
+ return pulumi.get(self, "group_kind_dependencies")
1420
+
1421
+ @group_kind_dependencies.setter
1422
+ def group_kind_dependencies(self, value: pulumi.Input[Sequence[pulumi.Input['RestorePlanRestoreConfigRestoreOrderGroupKindDependencyArgs']]]):
1423
+ pulumi.set(self, "group_kind_dependencies", value)
1424
+
1425
+
1426
+ @pulumi.input_type
1427
+ class RestorePlanRestoreConfigRestoreOrderGroupKindDependencyArgs:
1428
+ def __init__(__self__, *,
1429
+ requiring: pulumi.Input['RestorePlanRestoreConfigRestoreOrderGroupKindDependencyRequiringArgs'],
1430
+ satisfying: pulumi.Input['RestorePlanRestoreConfigRestoreOrderGroupKindDependencySatisfyingArgs']):
1431
+ """
1432
+ :param pulumi.Input['RestorePlanRestoreConfigRestoreOrderGroupKindDependencyRequiringArgs'] requiring: The requiring group kind requires that the satisfying
1433
+ group kind be restored first.
1434
+ Structure is documented below.
1435
+ :param pulumi.Input['RestorePlanRestoreConfigRestoreOrderGroupKindDependencySatisfyingArgs'] satisfying: The satisfying group kind must be restored first
1436
+ in order to satisfy the dependency.
1437
+ Structure is documented below.
1438
+ """
1439
+ pulumi.set(__self__, "requiring", requiring)
1440
+ pulumi.set(__self__, "satisfying", satisfying)
1441
+
1442
+ @property
1443
+ @pulumi.getter
1444
+ def requiring(self) -> pulumi.Input['RestorePlanRestoreConfigRestoreOrderGroupKindDependencyRequiringArgs']:
1445
+ """
1446
+ The requiring group kind requires that the satisfying
1447
+ group kind be restored first.
1448
+ Structure is documented below.
1449
+ """
1450
+ return pulumi.get(self, "requiring")
1451
+
1452
+ @requiring.setter
1453
+ def requiring(self, value: pulumi.Input['RestorePlanRestoreConfigRestoreOrderGroupKindDependencyRequiringArgs']):
1454
+ pulumi.set(self, "requiring", value)
1455
+
1456
+ @property
1457
+ @pulumi.getter
1458
+ def satisfying(self) -> pulumi.Input['RestorePlanRestoreConfigRestoreOrderGroupKindDependencySatisfyingArgs']:
1459
+ """
1460
+ The satisfying group kind must be restored first
1461
+ in order to satisfy the dependency.
1462
+ Structure is documented below.
1463
+ """
1464
+ return pulumi.get(self, "satisfying")
1465
+
1466
+ @satisfying.setter
1467
+ def satisfying(self, value: pulumi.Input['RestorePlanRestoreConfigRestoreOrderGroupKindDependencySatisfyingArgs']):
1468
+ pulumi.set(self, "satisfying", value)
1469
+
1470
+
1471
+ @pulumi.input_type
1472
+ class RestorePlanRestoreConfigRestoreOrderGroupKindDependencyRequiringArgs:
1473
+ def __init__(__self__, *,
1474
+ resource_group: Optional[pulumi.Input[str]] = None,
1475
+ resource_kind: Optional[pulumi.Input[str]] = None):
1476
+ """
1477
+ :param pulumi.Input[str] resource_group: API Group of a Kubernetes resource, e.g.
1478
+ "apiextensions.k8s.io", "storage.k8s.io", etc.
1479
+ Use empty string for core group.
1480
+ :param pulumi.Input[str] resource_kind: Kind of a Kubernetes resource, e.g.
1481
+ "CustomResourceDefinition", "StorageClass", etc.
1482
+
1483
+ - - -
1484
+ """
1485
+ if resource_group is not None:
1486
+ pulumi.set(__self__, "resource_group", resource_group)
1487
+ if resource_kind is not None:
1488
+ pulumi.set(__self__, "resource_kind", resource_kind)
1489
+
1490
+ @property
1491
+ @pulumi.getter(name="resourceGroup")
1492
+ def resource_group(self) -> Optional[pulumi.Input[str]]:
1493
+ """
1494
+ API Group of a Kubernetes resource, e.g.
1495
+ "apiextensions.k8s.io", "storage.k8s.io", etc.
1496
+ Use empty string for core group.
1497
+ """
1498
+ return pulumi.get(self, "resource_group")
1499
+
1500
+ @resource_group.setter
1501
+ def resource_group(self, value: Optional[pulumi.Input[str]]):
1502
+ pulumi.set(self, "resource_group", value)
1503
+
1504
+ @property
1505
+ @pulumi.getter(name="resourceKind")
1506
+ def resource_kind(self) -> Optional[pulumi.Input[str]]:
1507
+ """
1508
+ Kind of a Kubernetes resource, e.g.
1509
+ "CustomResourceDefinition", "StorageClass", etc.
1510
+
1511
+ - - -
1512
+ """
1513
+ return pulumi.get(self, "resource_kind")
1514
+
1515
+ @resource_kind.setter
1516
+ def resource_kind(self, value: Optional[pulumi.Input[str]]):
1517
+ pulumi.set(self, "resource_kind", value)
1518
+
1519
+
1520
+ @pulumi.input_type
1521
+ class RestorePlanRestoreConfigRestoreOrderGroupKindDependencySatisfyingArgs:
1522
+ def __init__(__self__, *,
1523
+ resource_group: Optional[pulumi.Input[str]] = None,
1524
+ resource_kind: Optional[pulumi.Input[str]] = None):
1525
+ """
1526
+ :param pulumi.Input[str] resource_group: API Group of a Kubernetes resource, e.g.
1527
+ "apiextensions.k8s.io", "storage.k8s.io", etc.
1528
+ Use empty string for core group.
1529
+ :param pulumi.Input[str] resource_kind: Kind of a Kubernetes resource, e.g.
1530
+ "CustomResourceDefinition", "StorageClass", etc.
1531
+ """
1532
+ if resource_group is not None:
1533
+ pulumi.set(__self__, "resource_group", resource_group)
1534
+ if resource_kind is not None:
1535
+ pulumi.set(__self__, "resource_kind", resource_kind)
1536
+
1537
+ @property
1538
+ @pulumi.getter(name="resourceGroup")
1539
+ def resource_group(self) -> Optional[pulumi.Input[str]]:
1540
+ """
1541
+ API Group of a Kubernetes resource, e.g.
1542
+ "apiextensions.k8s.io", "storage.k8s.io", etc.
1543
+ Use empty string for core group.
1544
+ """
1545
+ return pulumi.get(self, "resource_group")
1546
+
1547
+ @resource_group.setter
1548
+ def resource_group(self, value: Optional[pulumi.Input[str]]):
1549
+ pulumi.set(self, "resource_group", value)
1550
+
1551
+ @property
1552
+ @pulumi.getter(name="resourceKind")
1553
+ def resource_kind(self) -> Optional[pulumi.Input[str]]:
1554
+ """
1555
+ Kind of a Kubernetes resource, e.g.
1556
+ "CustomResourceDefinition", "StorageClass", etc.
1557
+ """
1558
+ return pulumi.get(self, "resource_kind")
1559
+
1560
+ @resource_kind.setter
1561
+ def resource_kind(self, value: Optional[pulumi.Input[str]]):
1562
+ pulumi.set(self, "resource_kind", value)
1563
+
1564
+
1333
1565
  @pulumi.input_type
1334
1566
  class RestorePlanRestoreConfigSelectedApplicationsArgs:
1335
1567
  def __init__(__self__, *,
@@ -1501,8 +1733,6 @@ class RestorePlanRestoreConfigTransformationRuleFieldActionArgs:
1501
1733
  location within the target document where the operation is performed.
1502
1734
  :param pulumi.Input[str] value: A string that specifies the desired value in string format
1503
1735
  to use for transformation.
1504
-
1505
- - - -
1506
1736
  """
1507
1737
  pulumi.set(__self__, "op", op)
1508
1738
  if from_path is not None:
@@ -1557,8 +1787,6 @@ class RestorePlanRestoreConfigTransformationRuleFieldActionArgs:
1557
1787
  """
1558
1788
  A string that specifies the desired value in string format
1559
1789
  to use for transformation.
1560
-
1561
- - - -
1562
1790
  """
1563
1791
  return pulumi.get(self, "value")
1564
1792
 
@@ -1695,3 +1923,50 @@ class RestorePlanRestoreConfigTransformationRuleResourceFilterGroupKindArgs:
1695
1923
  pulumi.set(self, "resource_kind", value)
1696
1924
 
1697
1925
 
1926
+ @pulumi.input_type
1927
+ class RestorePlanRestoreConfigVolumeDataRestorePolicyBindingArgs:
1928
+ def __init__(__self__, *,
1929
+ policy: pulumi.Input[str],
1930
+ volume_type: pulumi.Input[str]):
1931
+ """
1932
+ :param pulumi.Input[str] policy: Specifies the mechanism to be used to restore this volume data.
1933
+ See https://cloud.google.com/kubernetes-engine/docs/add-on/backup-for-gke/reference/rest/v1/RestoreConfig#VolumeDataRestorePolicy
1934
+ for more information on each policy option.
1935
+ Possible values are: `RESTORE_VOLUME_DATA_FROM_BACKUP`, `REUSE_VOLUME_HANDLE_FROM_BACKUP`, `NO_VOLUME_DATA_RESTORATION`.
1936
+ :param pulumi.Input[str] volume_type: The volume type, as determined by the PVC's
1937
+ bound PV, to apply the policy to.
1938
+ Possible values are: `GCE_PERSISTENT_DISK`.
1939
+ """
1940
+ pulumi.set(__self__, "policy", policy)
1941
+ pulumi.set(__self__, "volume_type", volume_type)
1942
+
1943
+ @property
1944
+ @pulumi.getter
1945
+ def policy(self) -> pulumi.Input[str]:
1946
+ """
1947
+ Specifies the mechanism to be used to restore this volume data.
1948
+ See https://cloud.google.com/kubernetes-engine/docs/add-on/backup-for-gke/reference/rest/v1/RestoreConfig#VolumeDataRestorePolicy
1949
+ for more information on each policy option.
1950
+ Possible values are: `RESTORE_VOLUME_DATA_FROM_BACKUP`, `REUSE_VOLUME_HANDLE_FROM_BACKUP`, `NO_VOLUME_DATA_RESTORATION`.
1951
+ """
1952
+ return pulumi.get(self, "policy")
1953
+
1954
+ @policy.setter
1955
+ def policy(self, value: pulumi.Input[str]):
1956
+ pulumi.set(self, "policy", value)
1957
+
1958
+ @property
1959
+ @pulumi.getter(name="volumeType")
1960
+ def volume_type(self) -> pulumi.Input[str]:
1961
+ """
1962
+ The volume type, as determined by the PVC's
1963
+ bound PV, to apply the policy to.
1964
+ Possible values are: `GCE_PERSISTENT_DISK`.
1965
+ """
1966
+ return pulumi.get(self, "volume_type")
1967
+
1968
+ @volume_type.setter
1969
+ def volume_type(self, value: pulumi.Input[str]):
1970
+ pulumi.set(self, "volume_type", value)
1971
+
1972
+
@@ -715,6 +715,56 @@ class BackupPlan(pulumi.CustomResource):
715
715
  ),
716
716
  ))
717
717
  ```
718
+ ### Gkebackup Backupplan Permissive
719
+
720
+ ```python
721
+ import pulumi
722
+ import pulumi_gcp as gcp
723
+
724
+ primary = gcp.container.Cluster("primary",
725
+ name="permissive-cluster",
726
+ location="us-central1",
727
+ initial_node_count=1,
728
+ workload_identity_config=gcp.container.ClusterWorkloadIdentityConfigArgs(
729
+ workload_pool="my-project-name.svc.id.goog",
730
+ ),
731
+ addons_config=gcp.container.ClusterAddonsConfigArgs(
732
+ gke_backup_agent_config=gcp.container.ClusterAddonsConfigGkeBackupAgentConfigArgs(
733
+ enabled=True,
734
+ ),
735
+ ),
736
+ deletion_protection=True,
737
+ network="default",
738
+ subnetwork="default")
739
+ permissive = gcp.gkebackup.BackupPlan("permissive",
740
+ name="permissive-plan",
741
+ cluster=primary.id,
742
+ location="us-central1",
743
+ retention_policy=gcp.gkebackup.BackupPlanRetentionPolicyArgs(
744
+ backup_delete_lock_days=30,
745
+ backup_retain_days=180,
746
+ ),
747
+ backup_schedule=gcp.gkebackup.BackupPlanBackupScheduleArgs(
748
+ cron_schedule="0 9 * * 1",
749
+ ),
750
+ backup_config=gcp.gkebackup.BackupPlanBackupConfigArgs(
751
+ include_volume_data=True,
752
+ include_secrets=True,
753
+ permissive_mode=True,
754
+ selected_applications=gcp.gkebackup.BackupPlanBackupConfigSelectedApplicationsArgs(
755
+ namespaced_names=[
756
+ gcp.gkebackup.BackupPlanBackupConfigSelectedApplicationsNamespacedNameArgs(
757
+ name="app1",
758
+ namespace="ns1",
759
+ ),
760
+ gcp.gkebackup.BackupPlanBackupConfigSelectedApplicationsNamespacedNameArgs(
761
+ name="app2",
762
+ namespace="ns2",
763
+ ),
764
+ ],
765
+ ),
766
+ ))
767
+ ```
718
768
  ### Gkebackup Backupplan Rpo Daily Window
719
769
 
720
770
  ```python
@@ -1085,6 +1135,56 @@ class BackupPlan(pulumi.CustomResource):
1085
1135
  ),
1086
1136
  ))
1087
1137
  ```
1138
+ ### Gkebackup Backupplan Permissive
1139
+
1140
+ ```python
1141
+ import pulumi
1142
+ import pulumi_gcp as gcp
1143
+
1144
+ primary = gcp.container.Cluster("primary",
1145
+ name="permissive-cluster",
1146
+ location="us-central1",
1147
+ initial_node_count=1,
1148
+ workload_identity_config=gcp.container.ClusterWorkloadIdentityConfigArgs(
1149
+ workload_pool="my-project-name.svc.id.goog",
1150
+ ),
1151
+ addons_config=gcp.container.ClusterAddonsConfigArgs(
1152
+ gke_backup_agent_config=gcp.container.ClusterAddonsConfigGkeBackupAgentConfigArgs(
1153
+ enabled=True,
1154
+ ),
1155
+ ),
1156
+ deletion_protection=True,
1157
+ network="default",
1158
+ subnetwork="default")
1159
+ permissive = gcp.gkebackup.BackupPlan("permissive",
1160
+ name="permissive-plan",
1161
+ cluster=primary.id,
1162
+ location="us-central1",
1163
+ retention_policy=gcp.gkebackup.BackupPlanRetentionPolicyArgs(
1164
+ backup_delete_lock_days=30,
1165
+ backup_retain_days=180,
1166
+ ),
1167
+ backup_schedule=gcp.gkebackup.BackupPlanBackupScheduleArgs(
1168
+ cron_schedule="0 9 * * 1",
1169
+ ),
1170
+ backup_config=gcp.gkebackup.BackupPlanBackupConfigArgs(
1171
+ include_volume_data=True,
1172
+ include_secrets=True,
1173
+ permissive_mode=True,
1174
+ selected_applications=gcp.gkebackup.BackupPlanBackupConfigSelectedApplicationsArgs(
1175
+ namespaced_names=[
1176
+ gcp.gkebackup.BackupPlanBackupConfigSelectedApplicationsNamespacedNameArgs(
1177
+ name="app1",
1178
+ namespace="ns1",
1179
+ ),
1180
+ gcp.gkebackup.BackupPlanBackupConfigSelectedApplicationsNamespacedNameArgs(
1181
+ name="app2",
1182
+ namespace="ns2",
1183
+ ),
1184
+ ],
1185
+ ),
1186
+ ))
1187
+ ```
1088
1188
  ### Gkebackup Backupplan Rpo Daily Window
1089
1189
 
1090
1190
  ```python