Class: Yao::Resources::SecurityGroupRule

Inherits:
Base
  • Object
show all
Defined in:
lib/yao/resources/security_group_rule.rb

Instance Attribute Summary

Attributes included from RestfullyAccessible

#api_version, #service

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#[], #[]=, #created, friendly_attributes, #id, #initialize, map_attribute_to_attribute, map_attribute_to_resource, map_attribute_to_resources, #updated

Methods included from RestfullyAccessible

#admin=, #as_member, #client, #create, #destroy, extended, #get, #list, #list_detail, #resources_path, #resources_path=, #return_single_on_querying=, #update, #with_resources_path

Constructor Details

This class inherits a constructor from Yao::Resources::Base

Class Method Details

.define_attribute_with_guard(_name, _guard_name) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/yao/resources/security_group_rule.rb', line 6

def self.define_attribute_with_guard(_name, _guard_name)
  name = _name.to_s
  guard_name = _guard_name.to_s
  define_method name do
    self[name] || self[guard_name]
  end
end

Instance Method Details

#portObject



23
24
25
26
27
28
29
# File 'lib/yao/resources/security_group_rule.rb', line 23

def port
  if port_range_max == port_range_min
    port_range_max
  else
    port_range
  end
end

#port_rangeObject



39
40
41
# File 'lib/yao/resources/security_group_rule.rb', line 39

def port_range
  port_range_max..port_range_min
end

#remote_groupObject



43
44
45
46
47
48
49
# File 'lib/yao/resources/security_group_rule.rb', line 43

def remote_group
  return nil if self["remote_group_id"].nil? && (self["group"].nil? || self["group"].empty?)

  SecurityGroup.new(
    {"id" => self["remote_group_id"]}.merge(self["group"] || {})
  )
end

#remote_ip_cidrObject



31
32
33
34
35
36
37
# File 'lib/yao/resources/security_group_rule.rb', line 31

def remote_ip_cidr
  if cidr = self["remote_ip_prefix"]
    cidr
  elsif ip_range = self["ip_range"]
    ip_range["cidr"]
  end
end

#security_groupObject



19
20
21
# File 'lib/yao/resources/security_group_rule.rb', line 19

def security_group
  SecurityGroup.find(security_group_id)
end