/* * Copyright (c) 2016 EMC Corporation * All Rights Reserved */ package com.emc.storageos.db.client.model; /** * SchedulePolicy will contain the details of a schedule policy. * It will hold information about the policyId, policyName, policyType, schedulePolicyParameters, * snapshotExpireParameters. * * @author prasaa9 * */ @Cf("SchedulePolicy") public class SchedulePolicy extends DiscoveredDataObject { // Tenant named URI private NamedURI tenantOrg; // Type of the policy private String policyType; // Name of the policy private String policyName; // Type of schedule policy e.g days, weeks or months, hours, minutes private String scheduleFrequency; // Policy run on every private Long scheduleRepeat; // Time when policy run private String scheduleTime; // Day of week when policy run private String scheduleDayOfWeek; // Day of month when policy run private Long scheduleDayOfMonth; // Snapshot expire type e.g hours, days, weeks, months or never private String snapshotExpireType; // Snapshot expire at private Long snapshotExpireTime; // List of resources associated with schedule policy private StringSet assignedResources; public static enum SchedulePolicyType { file_snapshot } public static enum ScheduleFrequency { MINUTES, HOURS, DAYS, WEEKS, MONTHS } public static enum SnapshotExpireType { HOURS, DAYS, WEEKS, MONTHS, NEVER } @NamedRelationIndex(cf = "NamedRelation", type = TenantOrg.class) @Name("tenantOrg") public NamedURI getTenantOrg() { return tenantOrg; } public void setTenantOrg(NamedURI tenantOrg) { this.tenantOrg = tenantOrg; setChanged("tenantOrg"); } @Name("policyType") public String getPolicyType() { return policyType; } public void setPolicyType(String policyType) { this.policyType = policyType; setChanged("policyType"); } @Name("policyName") public String getPolicyName() { return policyName; } public void setPolicyName(String policyName) { this.policyName = policyName; setChanged("policyName"); } @Name("scheduleFrequency") public String getScheduleFrequency() { return scheduleFrequency; } public void setScheduleFrequency(String scheduleFrequency) { this.scheduleFrequency = scheduleFrequency; setChanged("scheduleFrequency"); } @Name("scheduleRepeat") public Long getScheduleRepeat() { return scheduleRepeat; } public void setScheduleRepeat(Long scheduleRepeat) { this.scheduleRepeat = scheduleRepeat; setChanged("scheduleRepeat"); } @Name("scheduleTime") public String getScheduleTime() { return scheduleTime; } public void setScheduleTime(String scheduleTime) { this.scheduleTime = scheduleTime; setChanged("scheduleTime"); } @Name("scheduleDayOfWeek") public String getScheduleDayOfWeek() { return scheduleDayOfWeek; } public void setScheduleDayOfWeek(String scheduleDayOfWeek) { this.scheduleDayOfWeek = scheduleDayOfWeek; setChanged("scheduleDayOfWeek"); } @Name("scheduleDayOfMonth") public Long getScheduleDayOfMonth() { return scheduleDayOfMonth; } public void setScheduleDayOfMonth(Long scheduleDayOfMonth) { this.scheduleDayOfMonth = scheduleDayOfMonth; setChanged("scheduleDayOfMonth"); } @Name("snapshotExpireType") public String getSnapshotExpireType() { return snapshotExpireType; } public void setSnapshotExpireType(String snapshotExpireType) { this.snapshotExpireType = snapshotExpireType; setChanged("snapshotExpireType"); } @Name("snapshotExpireTime") public Long getSnapshotExpireTime() { return snapshotExpireTime; } public void setSnapshotExpireTime(Long snapshotExpireTime) { this.snapshotExpireTime = snapshotExpireTime; setChanged("snapshotExpireTime"); } @Name("assignedResources") public StringSet getAssignedResources() { if (assignedResources == null) { assignedResources = new StringSet(); } return assignedResources; } public void setAssignedResources(StringSet assignedResources) { this.assignedResources = assignedResources; setChanged("assignedResources"); } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("Policy [type="); builder.append(policyType); builder.append(", policy name="); builder.append(policyName); builder.append(", schedule type="); builder.append(scheduleFrequency); builder.append(", schedule repeat="); builder.append(scheduleRepeat); builder.append(", schedule time="); builder.append(scheduleTime); builder.append(", schedule day od week="); builder.append(scheduleDayOfWeek); builder.append(", schedule day of month="); builder.append(scheduleDayOfMonth); builder.append(", snapshot expire type="); builder.append(snapshotExpireType); builder.append(", snapshot expire time="); builder.append(snapshotExpireTime); builder.append("]"); return builder.toString(); } }