Class: Awspec::Type::Base
- Inherits:
-
Object
- Object
- Awspec::Type::Base
- Includes:
- BlackListForwardable, Helper::Finder
- Defined in:
- lib/awspec/type/base.rb
Direct Known Subclasses
Alb, Ami, AutoscalingGroup, CloudfrontDistribution, Cloudtrail, CloudwatchAlarm, CloudwatchEvent, CustomerGateway, DirectconnectVirtualInterface, Ebs, Ec2, EcrRepository, EcsCluster, EcsContainerInstance, EcsService, EcsTaskDefinition, Efs, Elasticache, ElasticacheCacheParameterGroup, Elasticsearch, ElastictranscoderPipeline, Elb, IamGroup, IamPolicy, IamRole, IamUser, Kms, Lambda, LaunchConfiguration, NatGateway, NetworkAcl, NetworkInterface, Rds, RdsDbClusterParameterGroup, RdsDbParameterGroup, Route53HostedZone, RouteTable, S3Bucket, SecurityGroup, SesIdentity, Subnet, Vpc, VpnConnection, VpnGateway, WafWebAcl
Constant Summary
Constants included from Helper::Finder
Instance Attribute Summary collapse
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#resource_via_client ⇒ Object
readonly
Returns the value of attribute resource_via_client.
Class Method Summary collapse
Instance Method Summary collapse
- #exists? ⇒ Boolean
-
#initialize(display_name = nil) ⇒ Base
constructor
A new instance of Base.
- #inspect ⇒ Object
- #method_missing(name) ⇒ Object
- #to_s ⇒ Object
Methods included from BlackListForwardable
#method_missing_via_black_list
Methods included from Helper::Finder::Waf
#find_waf_ip_set, #find_waf_rule, #find_waf_web_acl
Methods included from Helper::Finder::Cloudtrail
#find_trail, #get_trail_status, #is_logging?, #select_all_trails
Methods included from Helper::Finder::Elastictranscoder
Methods included from Helper::Finder::Cloudfront
Methods included from Helper::Finder::Ami
Methods included from Helper::Finder::Directconnect
#find_virtual_interface, #select_virtual_interfaces
Methods included from Helper::Finder::Ses
Methods included from Helper::Finder::CloudwatchEvent
#find_cloudwatch_event, #select_all_cloudwatch_events
Methods included from Helper::Finder::Cloudwatch
#find_cloudwatch_alarm, #select_all_cloudwatch_alarms
Methods included from Helper::Finder::Elasticsearch
#find_elasticsearch_domain, #select_all_elasticsearch_domains
Methods included from Helper::Finder::Elasticache
#find_cache_cluster, #find_cache_subnet_group
Methods included from Helper::Finder::Kms
#find_kms_key, #find_kms_key_by_alias, #select_all_kms_aliases
Methods included from Helper::Finder::Iam
#select_all_attached_policies, #select_all_iam_groups, #select_all_iam_roles, #select_all_iam_users, #select_attached_entities, #select_attached_groups, #select_attached_roles, #select_attached_users, #select_iam_group_by_user_name, #select_policy_evaluation_results
Methods included from Helper::Finder::Lambda
#find_lambda, #select_all_lambda_functions, #select_event_source_by_function_arn
Methods included from Helper::Finder::Elb
#find_elb, #select_elb_by_vpc_id
Methods included from Helper::Finder::Ebs
#find_ebs, #select_all_attached_ebs, #select_ebs_by_instance_id
Methods included from Helper::Finder::Autoscaling
#find_autoscaling_group, #find_launch_configuration
Methods included from Helper::Finder::S3
#find_bucket, #find_bucket_acl, #find_bucket_cors, #find_bucket_lifecycle_configuration, #find_bucket_logging, #find_bucket_policy, #find_bucket_versioning, #select_all_buckets
Methods included from Helper::Finder::Route53
#find_hosted_zone, #select_record_sets_by_hosted_zone_id
Methods included from Helper::Finder::Rds
#find_rds, #select_rds_by_vpc_id
Methods included from Helper::Finder::SecurityGroup
#find_security_group, #select_security_group_by_vpc_id
Methods included from Helper::Finder::Efs
#find_efs, #find_efs_tags, #get_id_by_name_tag, #get_name_by_id, #select_all_file_systems
Methods included from Helper::Finder::Ecs
#find_ecs_cluster, #find_ecs_container_instance, #find_ecs_container_instances, #find_ecs_service, #find_ecs_task_definition, #select_ecs_container_instance_arn_by_cluster_name
Methods included from Helper::Finder::Ecr
Methods included from Helper::Finder::Ec2
#find_ec2, #find_ec2_attribute, #find_ec2_status, #find_nat_gateway, #find_network_interface, #find_vpn_connection, #select_ec2_by_vpc_id, #select_eip_by_instance_id, #select_nat_gateway_by_vpc_id, #select_network_interface_by_instance_id, #select_network_interface_by_vpc_id
Methods included from Helper::Finder::Subnet
#find_subnet, #select_subnet_by_vpc_id
Methods included from Helper::Finder::Vpc
#find_network_acl, #find_route_table, #find_vpc, #find_vpc_peering_connection, #select_network_acl_by_vpc_id, #select_route_table_by_vpc_id
Methods included from Helper::Finder::Alb
#find_alb, #select_alb_by_vpc_id
Constructor Details
#initialize(display_name = nil) ⇒ Base
Returns a new instance of Base.
12 13 14 15 |
# File 'lib/awspec/type/base.rb', line 12 def initialize(display_name = nil) @display_name = display_name @id = nil end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name) ⇒ Object
56 57 58 59 60 61 62 63 64 |
# File 'lib/awspec/type/base.rb', line 56 def method_missing(name) describe = name.to_sym if resource_via_client.members.include?(describe) resource_via_client[describe] else super unless self.respond_to?(:resource) method_missing_via_black_list(name, delegate_to: resource) end end |
Instance Attribute Details
#id ⇒ Object (readonly)
Returns the value of attribute id.
10 11 12 |
# File 'lib/awspec/type/base.rb', line 10 def id @id end |
#resource_via_client ⇒ Object (readonly)
Returns the value of attribute resource_via_client.
10 11 12 |
# File 'lib/awspec/type/base.rb', line 10 def resource_via_client @resource_via_client end |
Class Method Details
.aws_resource(resource) ⇒ Object
38 39 40 41 42 |
# File 'lib/awspec/type/base.rb', line 38 def self.aws_resource(resource) define_method :resource do @resource ||= Awspec::ResourceReader.new(resource.new(id)) end end |
.tags_allowed ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/awspec/type/base.rb', line 44 def self. define_method :has_tag? do |key, value| begin = resource_via_client. rescue NoMethodError = resource_via_client.tag_set end return false unless .any? { |t| t['key'] == key && t['value'] == value } end end |
Instance Method Details
#exists? ⇒ Boolean
26 27 28 |
# File 'lib/awspec/type/base.rb', line 26 def exists? id end |
#inspect ⇒ Object
22 23 24 |
# File 'lib/awspec/type/base.rb', line 22 def inspect to_s end |
#to_s ⇒ Object
17 18 19 20 |
# File 'lib/awspec/type/base.rb', line 17 def to_s type = self.class.name.demodulize.underscore "#{type} '#{@display_name}'" end |