# -*- coding: utf-8 -*-
import cohesity_management_sdk.models_v2.daily_schedule
import cohesity_management_sdk.models_v2.week_schedule
import cohesity_management_sdk.models_v2.month_schedule
[docs]class FullSchedule(object):
"""Implementation of the 'Full Schedule' model.
Specifies settings that defines how frequent full backup will be performed
for a Protection Group.
Attributes:
unit (Unit4Enum): Specifies how often to start new runs of a
Protection Group. <br>'Days' specifies that Protection Group run
starts periodically on every day. For full backup schedule,
currently we only support frequecny of 1 which indicates that full
backup will be performed daily. <br>'Weeks' specifies that new
Protection Group runs start weekly on certain days specified using
'dayOfWeek' field. <br>'Months' specifies that new Protection
Group runs start monthly on certain day of specific week. This
schedule needs 'weekOfMonth' and 'dayOfWeek' fields to be set.
<br>'ProtectOnce' specifies that groups using this policy option
will run only once and after that group will permanently be
disabled. <br> Example: To run the Protection Group on Second
Sunday of Every Month, following schedule need to be set: <br>
unit: 'Month' <br> dayOfWeek: 'Sunday' <br> weekOfMonth: 'Second'
day_schedule (DailySchedule): Specifies settings that define a
schedule for a Protection Group runs to start after certain number
of days.
week_schedule (WeekSchedule): Specifies settings that define a
schedule for a Protection Group runs to start on certain days of
week.
month_schedule (MonthSchedule): Specifies settings that define a
schedule for a Protection Group runs to on specific week and
specific days of that week.
"""
# Create a mapping from Model property names to API property names
_names = {
"unit":'unit',
"day_schedule":'daySchedule',
"week_schedule":'weekSchedule',
"month_schedule":'monthSchedule'
}
def __init__(self,
unit=None,
day_schedule=None,
week_schedule=None,
month_schedule=None):
"""Constructor for the FullSchedule class"""
# Initialize members of the class
self.unit = unit
self.day_schedule = day_schedule
self.week_schedule = week_schedule
self.month_schedule = month_schedule
[docs] @classmethod
def from_dictionary(cls,
dictionary):
"""Creates an instance of this model from a dictionary
Args:
dictionary (dictionary): A dictionary representation of the object as
obtained from the deserialization of the server's response. The keys
MUST match property names in the API description.
Returns:
object: An instance of this structure class.
"""
if dictionary is None:
return None
# Extract variables from the dictionary
unit = dictionary.get('unit')
day_schedule = cohesity_management_sdk.models_v2.daily_schedule.DailySchedule.from_dictionary(dictionary.get('daySchedule')) if dictionary.get('daySchedule') else None
week_schedule = cohesity_management_sdk.models_v2.week_schedule.WeekSchedule.from_dictionary(dictionary.get('weekSchedule')) if dictionary.get('weekSchedule') else None
month_schedule = cohesity_management_sdk.models_v2.month_schedule.MonthSchedule.from_dictionary(dictionary.get('monthSchedule')) if dictionary.get('monthSchedule') else None
# Return an object of this model
return cls(unit,
day_schedule,
week_schedule,
month_schedule)