1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
module Fog
module Compute
class Google
##
# Represents a Route resource
#
# @see https://developers.google.com/compute/docs/reference/latest/routes
class Route < Fog::Model
identity :name
attribute :kind
attribute :id
attribute :creation_timestamp, :aliases => "creationTimestamp"
attribute :description
attribute :dest_range, :aliases => "destRange"
attribute :network
attribute :next_hop_gateway, :aliases => "nextHopGateway"
attribute :next_hop_instance, :aliases => "nextHopInstance"
attribute :next_hop_ip, :aliases => "nextHopIp"
attribute :next_hop_network, :aliases => "nextHopNetwork"
attribute :next_hop_vpn_tunnel, :aliases => "nextHopVpnTunnel"
attribute :priority
attribute :self_link, :aliases => "selfLink"
attribute :tags
attribute :warnings
def save
requires :identity, :network, :dest_range, :priority
data = service.insert_route(identity, network, dest_range, priority, attributes)
operation = Fog::Compute::Google::Operations.new(:service => service)
.get(data.name)
operation.wait_for { ready? }
reload
end
def destroy(async = true)
requires :identity
data = service.delete_route(identity)
operation = Fog::Compute::Google::Operations.new(:service => service)
.get(data.name)
operation.wait_for { ready? } unless async
operation
end
end
end
end
end
|