# coding: utf-8 # # Author:: Alessio Rocchi (<alessio.rocchi@staff.aruba.it>) # © Copyright ArubaCloud. # # LICENSE: MIT (http://opensource.org/licenses/MIT) # require 'fog/core/model' require 'fog/arubacloud/error' module Fog module ArubaCloud class Compute class IP < Fog::Model identity :id, :aliases => 'ResourceId' attribute :gateway, :aliases => 'Gateway' attribute :server , :aliases => 'ServerId' attribute :address, :aliases => 'Value' attribute :netmask, :aliases => 'SubNetMask' attribute :product_id, :aliases => 'ProductId' attribute :loadbalancer_id, :aliases => 'LoadBalancerID' ignore_attributes :CompanyId, :ResourceType def initialize(attributes = {}) @service = attributes[:service] super end def purchase @service.purchase_ip end def remove requires :id, :server unless server.nil? raise Fog::ArubaCloud::Errors::RequestError.new('Cannot remove an address attached to a vm.') end @service.remove_ip(id) end end #IP end # Compute end # ArubaCloud end #Fog