@@ -471,10 +471,73 @@ def update!(**args)
471
471
end
472
472
end
473
473
474
+ # BackupConfigDetails defines the configuration of Backups created via this
475
+ # BackupPlan.
476
+ class BackupConfigDetails
477
+ include Google ::Apis ::Core ::Hashable
478
+
479
+ # Output only. If True, include all namespaced resources
480
+ # Corresponds to the JSON property `allNamespaces`
481
+ # @return [Boolean]
482
+ attr_accessor :all_namespaces
483
+ alias_method :all_namespaces? , :all_namespaces
484
+
485
+ # Defined a customer managed encryption key that will be used to encrypt Backup
486
+ # artifacts.
487
+ # Corresponds to the JSON property `encryptionKey`
488
+ # @return [Google::Apis::GkebackupV1::EncryptionKey]
489
+ attr_accessor :encryption_key
490
+
491
+ # Output only. This flag specifies whether Kubernetes Secret resources should be
492
+ # included when they fall into the scope of Backups. Default: False
493
+ # Corresponds to the JSON property `includeSecrets`
494
+ # @return [Boolean]
495
+ attr_accessor :include_secrets
496
+ alias_method :include_secrets? , :include_secrets
497
+
498
+ # Output only. This flag specifies whether volume data should be backed up when
499
+ # PVCs are included in the scope of a Backup. Default: False
500
+ # Corresponds to the JSON property `includeVolumeData`
501
+ # @return [Boolean]
502
+ attr_accessor :include_volume_data
503
+ alias_method :include_volume_data? , :include_volume_data
504
+
505
+ # A list of namespaced Kubernetes resources.
506
+ # Corresponds to the JSON property `selectedApplications`
507
+ # @return [Google::Apis::GkebackupV1::NamespacedNames]
508
+ attr_accessor :selected_applications
509
+
510
+ # A list of Kubernetes Namespaces.
511
+ # Corresponds to the JSON property `selectedNamespaces`
512
+ # @return [Google::Apis::GkebackupV1::Namespaces]
513
+ attr_accessor :selected_namespaces
514
+
515
+ def initialize ( **args )
516
+ update! ( **args )
517
+ end
518
+
519
+ # Update properties of this object
520
+ def update! ( **args )
521
+ @all_namespaces = args [ :all_namespaces ] if args . key? ( :all_namespaces )
522
+ @encryption_key = args [ :encryption_key ] if args . key? ( :encryption_key )
523
+ @include_secrets = args [ :include_secrets ] if args . key? ( :include_secrets )
524
+ @include_volume_data = args [ :include_volume_data ] if args . key? ( :include_volume_data )
525
+ @selected_applications = args [ :selected_applications ] if args . key? ( :selected_applications )
526
+ @selected_namespaces = args [ :selected_namespaces ] if args . key? ( :selected_namespaces )
527
+ end
528
+ end
529
+
474
530
# Defines the configuration and scheduling for a "line" of Backups.
475
531
class BackupPlan
476
532
include Google ::Apis ::Core ::Hashable
477
533
534
+ # Output only. The fully qualified name of the BackupChannel to be used to
535
+ # create a backup. This field is set only if the cluster being backed up is in a
536
+ # different project. `projects/*/locations/*/backupChannels/*`
537
+ # Corresponds to the JSON property `backupChannel`
538
+ # @return [String]
539
+ attr_accessor :backup_channel
540
+
478
541
# BackupConfig defines the configuration of Backups created via this BackupPlan.
479
542
# Corresponds to the JSON property `backupConfig`
480
543
# @return [Google::Apis::GkebackupV1::BackupConfig]
@@ -598,6 +661,7 @@ def initialize(**args)
598
661
599
662
# Update properties of this object
600
663
def update! ( **args )
664
+ @backup_channel = args [ :backup_channel ] if args . key? ( :backup_channel )
601
665
@backup_config = args [ :backup_config ] if args . key? ( :backup_config )
602
666
@backup_schedule = args [ :backup_schedule ] if args . key? ( :backup_schedule )
603
667
@cluster = args [ :cluster ] if args . key? ( :cluster )
@@ -699,6 +763,12 @@ def update!(**args)
699
763
class BackupPlanDetails
700
764
include Google ::Apis ::Core ::Hashable
701
765
766
+ # BackupConfigDetails defines the configuration of Backups created via this
767
+ # BackupPlan.
768
+ # Corresponds to the JSON property `backupConfigDetails`
769
+ # @return [Google::Apis::GkebackupV1::BackupConfigDetails]
770
+ attr_accessor :backup_config_details
771
+
702
772
# Output only. The fully qualified name of the last successful Backup created
703
773
# under this BackupPlan. `projects/*/locations/*/backupPlans/*/backups/*`
704
774
# Corresponds to the JSON property `lastSuccessfulBackup`
@@ -723,6 +793,11 @@ class BackupPlanDetails
723
793
# @return [Fixnum]
724
794
attr_accessor :protected_pod_count
725
795
796
+ # RetentionPolicyDetails defines a Backup retention policy for a BackupPlan.
797
+ # Corresponds to the JSON property `retentionPolicyDetails`
798
+ # @return [Google::Apis::GkebackupV1::RetentionPolicyDetails]
799
+ attr_accessor :retention_policy_details
800
+
726
801
# Output only. A number that represents the current risk level of this
727
802
# BackupPlan from RPO perspective with 1 being no risk and 5 being highest risk.
728
803
# Corresponds to the JSON property `rpoRiskLevel`
@@ -740,10 +815,12 @@ def initialize(**args)
740
815
741
816
# Update properties of this object
742
817
def update! ( **args )
818
+ @backup_config_details = args [ :backup_config_details ] if args . key? ( :backup_config_details )
743
819
@last_successful_backup = args [ :last_successful_backup ] if args . key? ( :last_successful_backup )
744
820
@last_successful_backup_time = args [ :last_successful_backup_time ] if args . key? ( :last_successful_backup_time )
745
821
@next_scheduled_backup_time = args [ :next_scheduled_backup_time ] if args . key? ( :next_scheduled_backup_time )
746
822
@protected_pod_count = args [ :protected_pod_count ] if args . key? ( :protected_pod_count )
823
+ @retention_policy_details = args [ :retention_policy_details ] if args . key? ( :retention_policy_details )
747
824
@rpo_risk_level = args [ :rpo_risk_level ] if args . key? ( :rpo_risk_level )
748
825
@state = args [ :state ] if args . key? ( :state )
749
826
end
@@ -2544,6 +2621,14 @@ class RestorePlan
2544
2621
# @return [String]
2545
2622
attr_accessor :name
2546
2623
2624
+ # Output only. The fully qualified name of the RestoreChannel to be used to
2625
+ # create a RestorePlan. This field is set only if the `backup_plan` is in a
2626
+ # different project than the RestorePlan. Format: `projects/*/locations/*/
2627
+ # restoreChannels/*`
2628
+ # Corresponds to the JSON property `restoreChannel`
2629
+ # @return [String]
2630
+ attr_accessor :restore_channel
2631
+
2547
2632
# Configuration of a restore.
2548
2633
# Corresponds to the JSON property `restoreConfig`
2549
2634
# @return [Google::Apis::GkebackupV1::RestoreConfig]
@@ -2586,6 +2671,7 @@ def update!(**args)
2586
2671
@etag = args [ :etag ] if args . key? ( :etag )
2587
2672
@labels = args [ :labels ] if args . key? ( :labels )
2588
2673
@name = args [ :name ] if args . key? ( :name )
2674
+ @restore_channel = args [ :restore_channel ] if args . key? ( :restore_channel )
2589
2675
@restore_config = args [ :restore_config ] if args . key? ( :restore_config )
2590
2676
@state = args [ :state ] if args . key? ( :state )
2591
2677
@state_reason = args [ :state_reason ] if args . key? ( :state_reason )
@@ -2712,6 +2798,41 @@ def update!(**args)
2712
2798
end
2713
2799
end
2714
2800
2801
+ # RetentionPolicyDetails defines a Backup retention policy for a BackupPlan.
2802
+ class RetentionPolicyDetails
2803
+ include Google ::Apis ::Core ::Hashable
2804
+
2805
+ # Optional. Minimum age for Backups created via this BackupPlan (in days). This
2806
+ # field MUST be an integer value between 0-90 (inclusive). A Backup created
2807
+ # under this BackupPlan will NOT be deletable until it reaches Backup's (
2808
+ # create_time + backup_delete_lock_days). Updating this field of a BackupPlan
2809
+ # does NOT affect existing Backups under it. Backups created AFTER a successful
2810
+ # update will inherit the new value. Default: 0 (no delete blocking)
2811
+ # Corresponds to the JSON property `backupDeleteLockDays`
2812
+ # @return [Fixnum]
2813
+ attr_accessor :backup_delete_lock_days
2814
+
2815
+ # Optional. The default maximum age of a Backup created via this BackupPlan.
2816
+ # This field MUST be an integer value >= 0 and <= 365. If specified, a Backup
2817
+ # created under this BackupPlan will be automatically deleted after its age
2818
+ # reaches (create_time + backup_retain_days). If not specified, Backups created
2819
+ # under this BackupPlan will NOT be subject to automatic deletion. Default: 0 (
2820
+ # no automatic deletion)
2821
+ # Corresponds to the JSON property `backupRetainDays`
2822
+ # @return [Fixnum]
2823
+ attr_accessor :backup_retain_days
2824
+
2825
+ def initialize ( **args )
2826
+ update! ( **args )
2827
+ end
2828
+
2829
+ # Update properties of this object
2830
+ def update! ( **args )
2831
+ @backup_delete_lock_days = args [ :backup_delete_lock_days ] if args . key? ( :backup_delete_lock_days )
2832
+ @backup_retain_days = args [ :backup_retain_days ] if args . key? ( :backup_retain_days )
2833
+ end
2834
+ end
2835
+
2715
2836
# Defines RPO scheduling configuration for automatically creating Backups via
2716
2837
# this BackupPlan.
2717
2838
class RpoConfig
0 commit comments