@@ -319,6 +319,17 @@ class Instance
319319 # @return [String]
320320 attr_accessor :location_id
321321
322+ # Maintenance policy for an instance.
323+ # Corresponds to the JSON property `maintenancePolicy`
324+ # @return [Google::Apis::RedisV1::MaintenancePolicy]
325+ attr_accessor :maintenance_policy
326+
327+ # Upcoming maintenance schedule. If no maintenance is scheduled, fields are not
328+ # populated.
329+ # Corresponds to the JSON property `maintenanceSchedule`
330+ # @return [Google::Apis::RedisV1::MaintenanceSchedule]
331+ attr_accessor :maintenance_schedule
332+
322333 # Required. Redis memory size in GiB.
323334 # Corresponds to the JSON property `memorySizeGb`
324335 # @return [Fixnum]
@@ -419,6 +430,8 @@ def update!(**args)
419430 @host = args [ :host ] if args . key? ( :host )
420431 @labels = args [ :labels ] if args . key? ( :labels )
421432 @location_id = args [ :location_id ] if args . key? ( :location_id )
433+ @maintenance_policy = args [ :maintenance_policy ] if args . key? ( :maintenance_policy )
434+ @maintenance_schedule = args [ :maintenance_schedule ] if args . key? ( :maintenance_schedule )
422435 @memory_size_gb = args [ :memory_size_gb ] if args . key? ( :memory_size_gb )
423436 @name = args [ :name ] if args . key? ( :name )
424437 @persistence_iam_identity = args [ :persistence_iam_identity ] if args . key? ( :persistence_iam_identity )
@@ -591,6 +604,88 @@ def update!(**args)
591604 end
592605 end
593606
607+ # Maintenance policy for an instance.
608+ class MaintenancePolicy
609+ include Google ::Apis ::Core ::Hashable
610+
611+ # Output only. The time when the policy was created.
612+ # Corresponds to the JSON property `createTime`
613+ # @return [String]
614+ attr_accessor :create_time
615+
616+ # Optional. Description of what this policy is for. Create/Update methods return
617+ # INVALID_ARGUMENT if the length is greater than 512.
618+ # Corresponds to the JSON property `description`
619+ # @return [String]
620+ attr_accessor :description
621+
622+ # Output only. The time when the policy was last updated.
623+ # Corresponds to the JSON property `updateTime`
624+ # @return [String]
625+ attr_accessor :update_time
626+
627+ # Optional. Maintenance window that is applied to resources covered by this
628+ # policy. Minimum 1. For the current version, the maximum number of
629+ # weekly_window is expected to be one.
630+ # Corresponds to the JSON property `weeklyMaintenanceWindow`
631+ # @return [Array<Google::Apis::RedisV1::WeeklyMaintenanceWindow>]
632+ attr_accessor :weekly_maintenance_window
633+
634+ def initialize ( **args )
635+ update! ( **args )
636+ end
637+
638+ # Update properties of this object
639+ def update! ( **args )
640+ @create_time = args [ :create_time ] if args . key? ( :create_time )
641+ @description = args [ :description ] if args . key? ( :description )
642+ @update_time = args [ :update_time ] if args . key? ( :update_time )
643+ @weekly_maintenance_window = args [ :weekly_maintenance_window ] if args . key? ( :weekly_maintenance_window )
644+ end
645+ end
646+
647+ # Upcoming maintenance schedule. If no maintenance is scheduled, fields are not
648+ # populated.
649+ class MaintenanceSchedule
650+ include Google ::Apis ::Core ::Hashable
651+
652+ # If the scheduled maintenance can be rescheduled, default is true.
653+ # Corresponds to the JSON property `canReschedule`
654+ # @return [Boolean]
655+ attr_accessor :can_reschedule
656+ alias_method :can_reschedule? , :can_reschedule
657+
658+ # Output only. The end time of any upcoming scheduled maintenance for this
659+ # instance.
660+ # Corresponds to the JSON property `endTime`
661+ # @return [String]
662+ attr_accessor :end_time
663+
664+ # Output only. The deadline that the maintenance schedule start time can not go
665+ # beyond, including reschedule.
666+ # Corresponds to the JSON property `scheduleDeadlineTime`
667+ # @return [String]
668+ attr_accessor :schedule_deadline_time
669+
670+ # Output only. The start time of any upcoming scheduled maintenance for this
671+ # instance.
672+ # Corresponds to the JSON property `startTime`
673+ # @return [String]
674+ attr_accessor :start_time
675+
676+ def initialize ( **args )
677+ update! ( **args )
678+ end
679+
680+ # Update properties of this object
681+ def update! ( **args )
682+ @can_reschedule = args [ :can_reschedule ] if args . key? ( :can_reschedule )
683+ @end_time = args [ :end_time ] if args . key? ( :end_time )
684+ @schedule_deadline_time = args [ :schedule_deadline_time ] if args . key? ( :schedule_deadline_time )
685+ @start_time = args [ :start_time ] if args . key? ( :start_time )
686+ end
687+ end
688+
594689 # This resource represents a long-running operation that is the result of a
595690 # network API call.
596691 class Operation
@@ -676,6 +771,34 @@ def update!(**args)
676771 end
677772 end
678773
774+ # Request for RescheduleMaintenance.
775+ class RescheduleMaintenanceRequest
776+ include Google ::Apis ::Core ::Hashable
777+
778+ # Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as
779+ # well.
780+ # Corresponds to the JSON property `rescheduleType`
781+ # @return [String]
782+ attr_accessor :reschedule_type
783+
784+ # Optional. Timestamp when the maintenance shall be rescheduled to if
785+ # reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for example `2012-11-15T16:
786+ # 19:00.094Z`.
787+ # Corresponds to the JSON property `scheduleTime`
788+ # @return [String]
789+ attr_accessor :schedule_time
790+
791+ def initialize ( **args )
792+ update! ( **args )
793+ end
794+
795+ # Update properties of this object
796+ def update! ( **args )
797+ @reschedule_type = args [ :reschedule_type ] if args . key? ( :reschedule_type )
798+ @schedule_time = args [ :schedule_time ] if args . key? ( :schedule_time )
799+ end
800+ end
801+
679802 # The `Status` type defines a logical error model that is suitable for different
680803 # programming environments, including REST APIs and RPC APIs. It is used by [
681804 # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -715,6 +838,47 @@ def update!(**args)
715838 end
716839 end
717840
841+ # Represents a time of day. The date and time zone are either not significant or
842+ # are specified elsewhere. An API may choose to allow leap seconds. Related
843+ # types are google.type.Date and `google.protobuf.Timestamp`.
844+ class TimeOfDay
845+ include Google ::Apis ::Core ::Hashable
846+
847+ # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to
848+ # allow the value "24:00:00" for scenarios like business closing time.
849+ # Corresponds to the JSON property `hours`
850+ # @return [Fixnum]
851+ attr_accessor :hours
852+
853+ # Minutes of hour of day. Must be from 0 to 59.
854+ # Corresponds to the JSON property `minutes`
855+ # @return [Fixnum]
856+ attr_accessor :minutes
857+
858+ # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
859+ # Corresponds to the JSON property `nanos`
860+ # @return [Fixnum]
861+ attr_accessor :nanos
862+
863+ # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
864+ # allow the value 60 if it allows leap-seconds.
865+ # Corresponds to the JSON property `seconds`
866+ # @return [Fixnum]
867+ attr_accessor :seconds
868+
869+ def initialize ( **args )
870+ update! ( **args )
871+ end
872+
873+ # Update properties of this object
874+ def update! ( **args )
875+ @hours = args [ :hours ] if args . key? ( :hours )
876+ @minutes = args [ :minutes ] if args . key? ( :minutes )
877+ @nanos = args [ :nanos ] if args . key? ( :nanos )
878+ @seconds = args [ :seconds ] if args . key? ( :seconds )
879+ end
880+ end
881+
718882 # TlsCertificate Resource
719883 class TlsCertificate
720884 include Google ::Apis ::Core ::Hashable
@@ -778,6 +942,41 @@ def update!(**args)
778942 @redis_version = args [ :redis_version ] if args . key? ( :redis_version )
779943 end
780944 end
945+
946+ # Time window in which disruptive maintenance updates occur. Non-disruptive
947+ # updates can occur inside or outside this window.
948+ class WeeklyMaintenanceWindow
949+ include Google ::Apis ::Core ::Hashable
950+
951+ # Required. The day of week that maintenance updates occur.
952+ # Corresponds to the JSON property `day`
953+ # @return [String]
954+ attr_accessor :day
955+
956+ # Output only. Duration of the maintenance window. The current window is fixed
957+ # at 3 hours.
958+ # Corresponds to the JSON property `duration`
959+ # @return [String]
960+ attr_accessor :duration
961+
962+ # Represents a time of day. The date and time zone are either not significant or
963+ # are specified elsewhere. An API may choose to allow leap seconds. Related
964+ # types are google.type.Date and `google.protobuf.Timestamp`.
965+ # Corresponds to the JSON property `startTime`
966+ # @return [Google::Apis::RedisV1::TimeOfDay]
967+ attr_accessor :start_time
968+
969+ def initialize ( **args )
970+ update! ( **args )
971+ end
972+
973+ # Update properties of this object
974+ def update! ( **args )
975+ @day = args [ :day ] if args . key? ( :day )
976+ @duration = args [ :duration ] if args . key? ( :duration )
977+ @start_time = args [ :start_time ] if args . key? ( :start_time )
978+ end
979+ end
781980 end
782981 end
783982end
0 commit comments