/**
* The Schedule model module.
* @module Ntnx/Schedule
* @version 4.3.1
* @class Schedule
*
* @param { Number } recoveryPointObjectiveTimeSeconds The Recovery point objective of the schedule in seconds and specified in multiple of 60 seconds. Only following RPO values can be provided for rollup retention type:
Minute(s): 1, 2, 3, 4, 5, 6, 10, 12, 15
Hour(s): 1, 2, 3, 4, 6, 8, 12
Day(s): 1
Week(s): 1, 2
*/
export default class Schedule {
/**
* Constructs a Schedule from a plain JavaScript object, optionally creating a new instance.
* Copies all relevant properties from data to obj if supplied or a new instance if not.
* @param {Object} data The plain JavaScript object bearing properties of interest.
* @param {module:Ntnx/Schedule} obj Optional instance to populate.
* @param callFromChild {Boolean} Flag to recognise calling instance
* @return {module:Ntnx/Schedule} The populated Schedule instance.
*/
static constructFromObject(data: any, obj?: any, callFromChild?: boolean): any;
/**
* Converts a given snake_case string to camelCase.
* @param {string} snakeStr - The input string in snake_case format.
* @returns {string} - The converted string in camelCase format.
*/
static snakeToCamel(snakeStr: string): string;
/**
* Constructs a new Schedule.
* Schedule for protection. The schedule specifies the recovery point objective and the retention policy for the participating locations.
* @alias module:Ntnx/Schedule
*
* @param { Number } recoveryPointObjectiveTimeSeconds The Recovery point objective of the schedule in seconds and specified in multiple of 60 seconds. Only following RPO values can be provided for rollup retention type:
Minute(s): 1, 2, 3, 4, 5, 6, 10, 12, 15
Hour(s): 1, 2, 3, 4, 6, 8, 12
Day(s): 1
Week(s): 1, 2
*/
constructor(recoveryPointObjectiveTimeSeconds: number);
recoveryPointObjectiveTimeSeconds: number;
$objectType: string;
/** @type {object} */
$reserved: object;
/** @type {object} */
$unknownFields: object;
/**
* @return {RecoveryPointType}
*/
getRecoveryPointType(): RecoveryPointType;
/**
* @param {RecoveryPointType} recoveryPointType
*/
setRecoveryPointType(recoveryPointType: RecoveryPointType): void;
recoveryPointType: string;
/**
* Returns The Recovery point objective of the schedule in seconds and specified in multiple of 60 seconds. Only following RPO values can be provided for rollup retention type:
Minute(s): 1, 2, 3, 4, 5, 6, 10, 12, 15
Hour(s): 1, 2, 3, 4, 6, 8, 12
Day(s): 1
Week(s): 1, 2
* minimum: 0
* @return {Number}
*/
getRecoveryPointObjectiveTimeSeconds(): number;
/**
* Sets The Recovery point objective of the schedule in seconds and specified in multiple of 60 seconds. Only following RPO values can be provided for rollup retention type:
Minute(s): 1, 2, 3, 4, 5, 6, 10, 12, 15
Hour(s): 1, 2, 3, 4, 6, 8, 12
Day(s): 1
Week(s): 1, 2
* @param {Number} recoveryPointObjectiveTimeSeconds The Recovery point objective of the schedule in seconds and specified in multiple of 60 seconds. Only following RPO values can be provided for rollup retention type:
Minute(s): 1, 2, 3, 4, 5, 6, 10, 12, 15
Hour(s): 1, 2, 3, 4, 6, 8, 12
Day(s): 1
Week(s): 1, 2
*/
setRecoveryPointObjectiveTimeSeconds(recoveryPointObjectiveTimeSeconds: number): void;
/**
* @return {DayOfWeek}
*/
getDayOfWeek(): DayOfWeek;
/**
* @param {DayOfWeek} dayOfWeek
*/
setDayOfWeek(dayOfWeek: DayOfWeek): void;
dayOfWeek: string;
/**
* Returns Specifies the retention policy for the recovery point schedule.
* @return {LinearRetention | AutoRollupRetention}
*/
getRetention(): LinearRetention | AutoRollupRetention;
/**
* Sets Specifies the retention policy for the recovery point schedule.
* @param {LinearRetention | AutoRollupRetention} retention Specifies the retention policy for the recovery point schedule.
*/
setRetention(retention: LinearRetention | AutoRollupRetention): void;
retention: AutoRollupRetention | LinearRetention;
/**
* Returns Represents the protection start time for the new entities added to the policy after the policy is created in h:m format. The values must be between 00h:00m and 23h:59m and in UTC timezone. It specifies the time when the first snapshot is taken and replicated for any entity added to the policy. If this is not specified, the snapshot is taken immediately and replicated for any new entity added to the policy.
* @return {string}
*/
getStartTime(): string;
/**
* Sets Represents the protection start time for the new entities added to the policy after the policy is created in h:m format. The values must be between 00h:00m and 23h:59m and in UTC timezone. It specifies the time when the first snapshot is taken and replicated for any entity added to the policy. If this is not specified, the snapshot is taken immediately and replicated for any new entity added to the policy.
* @param {string} startTime Represents the protection start time for the new entities added to the policy after the policy is created in h:m format. The values must be between 00h:00m and 23h:59m and in UTC timezone. It specifies the time when the first snapshot is taken and replicated for any entity added to the policy. If this is not specified, the snapshot is taken immediately and replicated for any new entity added to the policy.
*/
setStartTime(startTime: string): void;
startTime: string;
/**
* Returns Auto suspend timeout if there is a connection failure between locations for synchronous replication. If this value is not set, then the policy will not be suspended.
* maximum: 300
* @return {Number}
*/
getSyncReplicationAutoSuspendTimeoutSeconds(): number;
/**
* Sets Auto suspend timeout if there is a connection failure between locations for synchronous replication. If this value is not set, then the policy will not be suspended.
* @param {Number} syncReplicationAutoSuspendTimeoutSeconds Auto suspend timeout if there is a connection failure between locations for synchronous replication. If this value is not set, then the policy will not be suspended.
*/
setSyncReplicationAutoSuspendTimeoutSeconds(syncReplicationAutoSuspendTimeoutSeconds: number): void;
syncReplicationAutoSuspendTimeoutSeconds: number;
/**
* Returns The system-generated schedule ID for the replication configuration. It must not be provided in the create request. In update requests, it can be included to identify and retain the same schedule.
* @return {string}
*/
getScheduleExtId(): string;
/**
* Sets The system-generated schedule ID for the replication configuration. It must not be provided in the create request. In update requests, it can be included to identify and retain the same schedule.
* @param {string} scheduleExtId The system-generated schedule ID for the replication configuration. It must not be provided in the create request. In update requests, it can be included to identify and retain the same schedule.
*/
setScheduleExtId(scheduleExtId: string): void;
scheduleExtId: string;
/**
* Returns Indicates whether replication is paused for all VMs and volume groups associated with the remote replication location. This field is ignored in create requests (treated as a no-op) and can only be used in update requests to pause or resume scheduled replication. Only 0 RPO schedules support this field.
* @return {boolean}
*/
getIsReplicationPaused(): boolean;
/**
* Sets Indicates whether replication is paused for all VMs and volume groups associated with the remote replication location. This field is ignored in create requests (treated as a no-op) and can only be used in update requests to pause or resume scheduled replication. Only 0 RPO schedules support this field.
* @param {boolean} isReplicationPaused Indicates whether replication is paused for all VMs and volume groups associated with the remote replication location. This field is ignored in create requests (treated as a no-op) and can only be used in update requests to pause or resume scheduled replication. Only 0 RPO schedules support this field.
*/
setIsReplicationPaused(isReplicationPaused: boolean): void;
isReplicationPaused: boolean;
/**
* Returns Indicates the duration (in seconds) that the latest recovery point is retained past its expiry time if the entity is unprotected, deleted, or migrated to another location. If not specified, the latest recovery point will be retained for a minimum duration of 30 days. The value must be set to 0 if the user does not want to retain the latest recovery point past its expiry time.
* minimum: 0
* maximum: 2144448000
* @return {Number}
*/
getLatestRecoveryPointRetentionSeconds(): number;
/**
* Sets Indicates the duration (in seconds) that the latest recovery point is retained past its expiry time if the entity is unprotected, deleted, or migrated to another location. If not specified, the latest recovery point will be retained for a minimum duration of 30 days. The value must be set to 0 if the user does not want to retain the latest recovery point past its expiry time.
* @param {Number} latestRecoveryPointRetentionSeconds Indicates the duration (in seconds) that the latest recovery point is retained past its expiry time if the entity is unprotected, deleted, or migrated to another location. If not specified, the latest recovery point will be retained for a minimum duration of 30 days. The value must be set to 0 if the user does not want to retain the latest recovery point past its expiry time.
*/
setLatestRecoveryPointRetentionSeconds(latestRecoveryPointRetentionSeconds: number): void;
latestRecoveryPointRetentionSeconds: number;
get$Reserved(): any;
get$ObjectType(): string;
get$UnknownFields(): any;
toJson(forMutation: any): any;
validate(scope: any, properties: any, ...args: any[]): Promise;
validateProperty(scope: any, property: any): ValidationError;
#private;
}
import RecoveryPointType from "../../../dataprotection/v4/common/RecoveryPointType";
import DayOfWeek from "./DayOfWeek";
import LinearRetention from "./LinearRetention";
import AutoRollupRetention from "./AutoRollupRetention";
import ValidationError from "../../../validation/ValidationError";