# coding: utf-8 # # Author:: Dangleterre Michaël # © Copyright ArubaCloud. # # LICENSE: MIT (http://opensource.org/licenses/MIT) # require 'fog/core/model' require 'fog/arubacloud/error' module Fog module ArubaCloud class Compute class Schedule < Fog::Model ADD = 'Add' EDIT = 'Edit' SUSPEND = 'Suspend' DELETE = 'Delete' identity :id, :aliases => 'OperationId' attribute :name attribute :OperationId, :aliases => 'OperationId' attribute :ServerId, :aliases => 'ServerId' attribute :OperationType, :aliases => 'OperationType' attribute :OperationLabel, :aliases => 'OperationLabel' attribute :dateStart, :aliases => 'dateStart' attribute :dateEnd, :aliases => 'dateEnd' #attribute :OperationParameters, :aliases => 'OperationParameters' attribute :frequencyType, :aliases => 'frequencyType' attribute :ScheduleDaysOfMonth, :aliases => ':ScheduleDaysOfMonth' attribute :monthlyRecurrence, :aliases => 'monthlyRecurrence' attribute :ScheduleWeekDays, :aliases => 'ScheduleWeekDays' attribute :daysOfMonth, :aliases => 'daysOfMonth' attribute :daysOfWeek, :aliases => 'daysOfWeek' attribute :frequency, :aliases => 'frequency' ignore_attributes :OperationParameters def initialize @service = attributes[:service] end # initialize def get_scheduled_operations requires :dateStart, :dateEnd response = service.get_scheduled_operations new_attributes = response merge_attributes(new_attributes) end # get_schedule def create_scheduled_operation requires :dateStart, :dateEnd, :OperationType, :ServerId data = attributes service.create_scheduled_operation(data) end # create_schedule_operation def create_scheduled_occurrence requires :ServerId, :OperationType, :OperationLabel, :dateStart, :dateEnd, :frequencyType, :monthlyRecurrence, :daysOfMonth, :daysOfWeek, :frequency if :name != nil data[:name] = name else raise Fog::ArubaCloud::Errors::BadParameters.Exception('Missing Parameter') end end def suspend_scheduled_operation requires :id data = :attributes if :OperationId != nil data[:OperationId] = id else raise Fog::ArubaCloud::Errors::BadParameters.Exception('Missing Parameter') end end # suspend_scheduled_operation def delete_scheduled_operation requires :operationid data = :attributes if :OperationId != nil data[:OperationId] = operationid else raise Fog::ArubaCloud::Errors::BadParameters.Exception('Missing Parameter') end end # delete_scheduled_operation end # Schedule end # Compute end # ArubaCloud end # Fog