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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"). You
# may not use this file except in compliance with the License. A copy of
# the License is located at
#
# http://aws.amazon.com/apache2.0/
#
# or in the "license" file accompanying this file. This file is
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
# ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.
module AWS
class EC2
class InternetGateway < Resource
# Represents the attachment between an internet gateway and a VPC.
#
# ## Creating Attachments
#
# To create an attachment, just assign an internet gateway to a VPC
# or visa versa.
#
# # attaches a gateway to a vpc
# internet_gateway.vpc = vpc
#
# # this can also be done in reverse
# vpc.internet_gateway = internet_gateway
#
# ## Enumerating Attachments
#
# You can enumerate the attachments for an {InternetGateway} like so:
#
# internet_gateway.attachments.each do |attachment|
# puts "#{attachment.internet_gateway.id} => #{attachment.vpc.id}"
# end
#
# ## Deleting Attachments
#
# You can delete an attachment from the Attachment object:
#
# internet_gateway.attachments.each(&:delete)
#
# You can also delete an attachment by assigning a nil value:
#
# # removes the current attachment to the vpc is one exists
# internet_gateway.vpc = nil
#
class Attachment
# @api private
def initialize internet_gateway, details
@internet_gateway = internet_gateway
@vpc = VPC.new(details.vpc_id, :config => internet_gateway.config)
@state = details.state.to_sym
end
# @return [InternetGateway]
attr_reader :internet_gateway
# @return [VPC]
attr_reader :vpc
# @return [Symbol]
attr_reader :state
# Deletes this attachment.
# @return (see InternetGateway#detach)
def delete
internet_gateway.detach(vpc)
end
alias_method :detach, :delete
end
end
end
end
|