1
0
Fork 0
mirror of https://github.com/fog/fog-aws.git synced 2022-11-09 13:50:52 -05:00
fog--fog-aws/lib/fog/aws/models/compute/internet_gateway.rb

79 lines
1.9 KiB
Ruby
Raw Normal View History

require 'fog/core/model'
module Fog
module Compute
class Aws
class InternetGateway < Fog::Model
identity :id, :aliases => 'internetGatewayId'
attribute :attachment_set, :aliases => 'attachmentSet'
attribute :tag_set, :aliases => 'tagSet'
def initialize(attributes={})
super
end
# Attaches an existing internet gateway
#
# internet_gateway.attach(igw-id, vpc-id)
#
# ==== Returns
#
# True or false depending on the result
#
def attach(vpc_id)
requires :id
service.attach_internet_gateway(id, vpc_id)
reload
end
# Detaches an existing internet gateway
#
# internet_gateway.detach(igw-id, vpc-id)
#
# ==== Returns
#
# True or false depending on the result
#
def detach(vpc_id)
requires :id
service.detach_internet_gateway(id, vpc_id)
reload
end
# Removes an existing internet gateway
#
# internet_gateway.destroy
#
# ==== Returns
#
# True or false depending on the result
#
def destroy
requires :id
service.delete_internet_gateway(id)
true
end
# Create an internet gateway
#
# >> g = Aws.internet_gateways.new()
# >> g.save
#
# == Returns:
#
# requestId and a internetGateway object
#
def save
data = service.create_internet_gateway.body['internetGatewaySet'].first
new_attributes = data.reject {|key,value| key == 'requestId'}
merge_attributes(new_attributes)
true
true
end
end
end
end
end