class Nexpose::ScheduledBackup

Configuration structure for scheduled backups.

Attributes

cancellation_window[RW]

Number of minutes to wait for running scans to pause/complete before aborting the backup task. Defaults to 0 if not set

description[RW]

The description of the backup. Defaults to nil if not set

enabled[RW]

Whether or not this schedule is enabled. Defaults to true if not set

pause_local_scans[RW]

Whether the backup should pause all local scans or wait for local scans to complete. Defaults to true if not set

platform_independent[RW]

Whether the backup will be platform independent or not. Defaults to true if not set

schedule_interval[RW]

The repeat interval based upon type.

schedule_start[RW]

Starting time of the backup task (in unix epoch with milliseconds. Example: 1464956590000)

schedule_type[RW]

Valid schedule types: daily, hourly, monthly-date, monthly-day, weekly.

Public Class Methods

delete(nsc) click to toggle source
# File lib/nexpose/scheduled_backup.rb, line 81
def self.delete(nsc)
  AJAX.delete(nsc, '/api/2.1/schedule_backup/', AJAX::CONTENT_TYPE::JSON)
end
from_hash(hash) click to toggle source
# File lib/nexpose/scheduled_backup.rb, line 44
def self.from_hash(hash)
  repeat_backup_hash = hash[:repeat_type]
  backup = new(start: hash[:start_date],
               enabled: hash[:enabled],
               type: repeat_backup_hash[:type],
               interval: repeat_backup_hash[:interval],
               platform_independent: hash[:platform_independent],
               description: hash[:description],
               pause_local_scans: hash[:pause_local_scans],
               cancellation_window: hash[:cancellation_window])
  backup
end
load(nsc) click to toggle source
# File lib/nexpose/scheduled_backup.rb, line 74
def self.load(nsc)
  uri  = '/api/2.1/schedule_backup/'
  resp = AJAX.get(nsc, uri, AJAX::CONTENT_TYPE::JSON)
  hash = JSON.parse(resp, symbolize_names: true).first
  Nexpose::ScheduledBackup.from_hash(hash || [])
end
new(start:, enabled: true, type:, interval:, platform_independent: true, description: nil, pause_local_scans: true, cancellation_window: 0) click to toggle source
# File lib/nexpose/scheduled_backup.rb, line 24
def initialize(start:, enabled: true, type:, interval:, platform_independent: true, description: nil, pause_local_scans: true, cancellation_window: 0)
  @schedule_start       = start
  @enabled              = enabled
  @schedule_type        = type
  @schedule_interval    = interval.to_i
  @platform_independent = platform_independent
  @description          = description
  @pause_local_scans    = pause_local_scans
  @cancellation_window  = cancellation_window.to_i
end

Public Instance Methods

save(nsc) click to toggle source
# File lib/nexpose/scheduled_backup.rb, line 39
def save(nsc)
  params = to_json
  AJAX.post(nsc, '/api/2.1/schedule_backup/', params, AJAX::CONTENT_TYPE::JSON)
end
to_h() click to toggle source
# File lib/nexpose/scheduled_backup.rb, line 57
def to_h
  backup_hash = {
    start_date: @schedule_start,
    enabled: @enabled,
    description: @description,
    platform_independent: @platform_independent,
    pause_local_scans: @pause_local_scans,
    cancellation_window: @cancellation_window
  }
  repeat_hash = {
    type: @schedule_type,
    interval: @schedule_interval
  }
  backup_hash[:repeat_type] = repeat_hash
  backup_hash
end
to_json() click to toggle source
# File lib/nexpose/scheduled_backup.rb, line 35
def to_json
  JSON.generate(to_h)
end