@@ -471,10 +471,73 @@ def update!(**args)
471471 end
472472 end
473473
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+
474530 # Defines the configuration and scheduling for a "line" of Backups.
475531 class BackupPlan
476532 include Google ::Apis ::Core ::Hashable
477533
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+
478541 # BackupConfig defines the configuration of Backups created via this BackupPlan.
479542 # Corresponds to the JSON property `backupConfig`
480543 # @return [Google::Apis::GkebackupV1::BackupConfig]
@@ -598,6 +661,7 @@ def initialize(**args)
598661
599662 # Update properties of this object
600663 def update! ( **args )
664+ @backup_channel = args [ :backup_channel ] if args . key? ( :backup_channel )
601665 @backup_config = args [ :backup_config ] if args . key? ( :backup_config )
602666 @backup_schedule = args [ :backup_schedule ] if args . key? ( :backup_schedule )
603667 @cluster = args [ :cluster ] if args . key? ( :cluster )
@@ -699,6 +763,12 @@ def update!(**args)
699763 class BackupPlanDetails
700764 include Google ::Apis ::Core ::Hashable
701765
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+
702772 # Output only. The fully qualified name of the last successful Backup created
703773 # under this BackupPlan. `projects/*/locations/*/backupPlans/*/backups/*`
704774 # Corresponds to the JSON property `lastSuccessfulBackup`
@@ -723,6 +793,11 @@ class BackupPlanDetails
723793 # @return [Fixnum]
724794 attr_accessor :protected_pod_count
725795
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+
726801 # Output only. A number that represents the current risk level of this
727802 # BackupPlan from RPO perspective with 1 being no risk and 5 being highest risk.
728803 # Corresponds to the JSON property `rpoRiskLevel`
@@ -740,10 +815,12 @@ def initialize(**args)
740815
741816 # Update properties of this object
742817 def update! ( **args )
818+ @backup_config_details = args [ :backup_config_details ] if args . key? ( :backup_config_details )
743819 @last_successful_backup = args [ :last_successful_backup ] if args . key? ( :last_successful_backup )
744820 @last_successful_backup_time = args [ :last_successful_backup_time ] if args . key? ( :last_successful_backup_time )
745821 @next_scheduled_backup_time = args [ :next_scheduled_backup_time ] if args . key? ( :next_scheduled_backup_time )
746822 @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 )
747824 @rpo_risk_level = args [ :rpo_risk_level ] if args . key? ( :rpo_risk_level )
748825 @state = args [ :state ] if args . key? ( :state )
749826 end
@@ -2544,6 +2621,14 @@ class RestorePlan
25442621 # @return [String]
25452622 attr_accessor :name
25462623
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+
25472632 # Configuration of a restore.
25482633 # Corresponds to the JSON property `restoreConfig`
25492634 # @return [Google::Apis::GkebackupV1::RestoreConfig]
@@ -2586,6 +2671,7 @@ def update!(**args)
25862671 @etag = args [ :etag ] if args . key? ( :etag )
25872672 @labels = args [ :labels ] if args . key? ( :labels )
25882673 @name = args [ :name ] if args . key? ( :name )
2674+ @restore_channel = args [ :restore_channel ] if args . key? ( :restore_channel )
25892675 @restore_config = args [ :restore_config ] if args . key? ( :restore_config )
25902676 @state = args [ :state ] if args . key? ( :state )
25912677 @state_reason = args [ :state_reason ] if args . key? ( :state_reason )
@@ -2712,6 +2798,41 @@ def update!(**args)
27122798 end
27132799 end
27142800
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+
27152836 # Defines RPO scheduling configuration for automatically creating Backups via
27162837 # this BackupPlan.
27172838 class RpoConfig
0 commit comments