Class: Awspec::Type::NetworkAcl

Inherits:
ResourceBase show all
Defined in:
lib/awspec/type/network_acl.rb

Constant Summary collapse

PROTOCOLS =

rubocop:disable Metrics/LineLength

{ 'ALL' => -1, 'HOPOPT' => 0, 'ICMP' => 1, 'IGMP' => 2, 'GGP' => 3, 'IPv4' => 4, 'ST' => 5, 'TCP' => 6, 'CBT' => 7, 'EGP' => 8, 'IGP' => 9, 'BBN-RCC-MON' => 10,
'NVP-II' => 11, 'PUP' => 12, 'ARGUS' => 13, 'EMCON' => 14, 'XNET' => 15, 'CHAOS' => 16, 'UDP' => 17, 'MUX' => 18, 'DCN-MEAS' => 19, 'HMP' => 20,
'PRM' => 21, 'XNS-IDP' => 22, 'TRUNK-1' => 23, 'TRUNK-2' => 24, 'LEAF-1' => 25, 'LEAF-2' => 26, 'RDP' => 27, 'IRTP' => 28, 'ISO-TP4' => 29, 'NETBLT' => 30,
'MFE-NSP' => 31, 'MERIT-INP' => 32, 'DCCP' => 33, '3PC' => 34, 'IDPR' => 35, 'XTP' => 36, 'DDP' => 37, 'IDPR-CMTP' => 38, 'TP++' => 39, 'IL' => 40,
'IPv6' => 41, 'SDRP' => 42, 'IPv6-Route' => 43, 'IPv6-Frag' => 44, 'IDRP' => 45, 'RSVP' => 46, 'GRE' => 47, 'DSR' => 48, 'BNA' => 49, 'ESP' => 50,
'AH' => 51, 'I-NLSP' => 52, 'SWIPE' => 53, 'NARP' => 54, 'MOBILE' => 55, 'TLSP' => 56, 'IPv6-ICMP' => 58, 'IPv6-NoNxt' => 59, 'IPv6-Opts' => 60,
'61' => 61, 'CFTP' => 62, '63' => 63, 'SAT-EXPAK' => 64, 'KRYPTOLAN' => 65, 'RVD' => 66, 'IPPC' => 67, '68' => 68, 'SAT-MON' => 69, 'VISA' => 70,
'IPCV' => 71, 'CPNX' => 72, 'CPHB' => 73, 'WSN' => 74, 'PVP' => 75, 'BR-SAT-MON' => 76, 'SUN-ND' => 77, 'WB-MON' => 78, 'WB-EXPAK' => 79, 'ISO-IP' => 80,
'VMTP' => 81, 'SECURE-VMTP' => 82, 'VINES' => 83, 'IPTM' => 84, 'TTP' => 84, 'NSFNET-IGP' => 85, 'DGP' => 86, 'TCF' => 87, 'EIGRP' => 88, 'OSPFIGP' => 89, 'Sprite-RPC' => 90,
'LARP' => 91, 'MTP' => 92, 'AX.25' => 93, 'IPIP' => 94, 'MICP' => 95, 'SCC-SP' => 96, 'ETHERIP' => 97, 'ENCAP' => 98, '99' => 99, 'GMTP' => 100,
'IFMP' => 101, 'PNNI' => 102, 'PIM' => 103, 'ARIS' => 104, 'SCPS' => 105, 'QNX' => 106, 'A/N' => 107, 'IPComp' => 108, 'SNP' => 109, 'Compaq-Peer' => 110,
'IPX-in-IP' => 111, 'VRRP' => 112, 'PGM' => 113, '114' => 114, 'L2TP' => 115, 'DDX' => 116, 'IATP' => 117, 'STP' => 118, 'SRP' => 119, 'UTI' => 120,
'SMP' => 121, 'SM' => 122, 'PTP' => 123, 'ISIS over IPv4' => 124, 'FIRE' => 125, 'CRTP' => 126, 'CRUDP' => 127, 'SSCOPMCE' => 128, 'IPLT' => 129, 'SPS' => 130,
'PIPE' => 131, 'SCTP' => 132, 'FC' => 133, 'RSVP-E2E-IGNORE' => 134, 'Mobility Header' => 135, 'UDPLite' => 136, 'MPLS-in-IP' => 137, 'manet' => 138, 'HIP' => 139, 'Shim6' => 140,
'WESP' => 141, 'ROHC' => 142, '253' => 253, '254' => 254 }

Constants included from Helper::Finder

Helper::Finder::CLIENTS, Helper::Finder::CLIENT_OPTIONS

Instance Attribute Summary

Attributes inherited from Base

#account

Instance Method Summary collapse

Methods inherited from ResourceBase

aws_resource, #exists?, #initialize

Methods inherited from Base

#inspect, #method_missing, tags_allowed, #to_s

Methods included from BlackListForwardable

#method_missing_via_black_list

Methods included from Helper::Finder::Emr

#find_emr_cluster

Methods included from Helper::Finder::SNSTopic

#find_sns_topic, #find_sns_topic_subs

Methods included from Helper::Finder::Eks

#find_eks_cluster

Methods included from Helper::Finder::Batch

#find_batch_compute_environment, #find_batch_job_definition, #find_batch_job_queue

Methods included from Helper::Finder::Kinesis

#find_kinesis_by_stream_name

Methods included from Helper::Finder::Apigateway

#find_apigateway_by_id, #find_apigateway_by_name

Methods included from Helper::Finder::Codebuild

#find_codebuild_project, #select_all_codebuild_projects

Methods included from Helper::Finder::Cloudformation

#find_cloudformation_stack

Methods included from Helper::Finder::SsmParameter

#find_parameter_tag, #find_ssm_parameter

Methods included from Helper::Finder::Sqs

#find_queue, #find_tags_for_queue

Methods included from Helper::Finder::Dynamodb

#find_dynamodb_table

Methods included from Helper::Finder::CloudwatchLogs

#find_cloudwatch_logs_group, #find_cloudwatch_logs_metric_fileter_by_log_group_name, #find_cloudwatch_logs_stream_by_log_group_name, #find_cloudwatch_logs_subscription_fileter_by_log_group_name, #last_cloudwatch_logs_stream_by_log_group_name, #select_all_cloudwatch_logs_log_groups

Methods included from Helper::Finder::AccountAttributes

#find_ec2_account_attributes, #find_lambda_account_settings, #find_rds_account_attributes, #find_ses_send_quota

Methods included from Helper::Finder::Acm

#find_certificate, #select_all_certificates

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

#find_pipeline

Methods included from Helper::Finder::Cloudfront

#find_cloudfront_distribution

Methods included from Helper::Finder::Ami

#find_ami

Methods included from Helper::Finder::Directconnect

#find_virtual_interface, #select_virtual_interfaces

Methods included from Helper::Finder::Ses

#find_ses_identity

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, #find_elb_attribute, #select_all_elb_tags, #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_block_device_mapping, #find_launch_configuration, #select_alb_target_group_by_autoscaling_group_name, #select_autoscaling_group_by_vpc_id, #select_lb_target_group_by_autoscaling_group_name

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_tag, #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_all_rds_db_cluster_parameters, #select_all_rds_db_parameters, #select_rds_by_vpc_id

Methods included from Helper::Finder::SecurityGroup

#describe_security_groups, #find_security_group, #select_security_group_by_group_id, #select_security_group_by_group_name, #select_security_group_by_tag_name, #select_security_group_by_vpc_id

Methods included from Helper::Finder::Firehose

#find_delivery_stream

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

#find_ecr_repository

Methods included from Helper::Finder::Ec2

#find_ec2, #find_ec2_attribute, #find_ec2_credit_specifications, #find_ec2_status, #find_nat_gateway, #find_network_interface, #find_vpn_connection, #select_ec2_by_vpc_id, #select_eip_by_instance_id, #select_eip_by_public_ip, #select_internet_gateway_by_vpc_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_attribute, #find_vpc_peering_connection, #select_network_acl_by_vpc_id, #select_route_table_by_vpc_id, #select_vpc_attribute, #select_vpc_peering_connection_by_vpc_id

Methods included from Helper::Finder::Alb

#find_alb, #find_alb_listener, #find_alb_target_group, #select_alb_by_vpc_id, #select_rule_by_alb_listener_id

Methods included from Helper::Finder::Nlb

#find_nlb, #find_nlb_listener, #find_nlb_target_group, #select_nlb_by_vpc_id, #select_rule_by_nlb_listener_id

Constructor Details

This class inherits a constructor from Awspec::Type::ResourceBase

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Awspec::Type::Base

Instance Method Details

#allowed?(port = nil, protocol = nil, cidr = nil, rule_number = nil) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
26
# File 'lib/awspec/type/network_acl.rb', line 23

def allowed?(port = nil, protocol = nil, cidr = nil, rule_number = nil)
  rule_action = 'allow'
  entry?(rule_action, port, protocol, cidr, rule_number)
end

#denied?(port = nil, protocol = nil, cidr = nil, rule_number = nil) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
31
# File 'lib/awspec/type/network_acl.rb', line 28

def denied?(port = nil, protocol = nil, cidr = nil, rule_number = nil)
  rule_action = 'deny'
  entry?(rule_action, port, protocol, cidr, rule_number)
end

#has_subnet?(subnet_id) ⇒ Boolean

Returns:

  • (Boolean)


14
15
16
17
18
19
20
21
# File 'lib/awspec/type/network_acl.rb', line 14

def has_subnet?(subnet_id)
  resource_via_client.associations.find do |a|
    next true if a.subnet_id == subnet_id
    subnet = find_subnet(subnet_id)
    next false unless subnet
    next a.subnet_id == subnet.subnet_id
  end
end

#idObject



10
11
12
# File 'lib/awspec/type/network_acl.rb', line 10

def id
  @id ||= resource_via_client.network_acl_id if resource_via_client
end

#inboundObject



33
34
35
36
# File 'lib/awspec/type/network_acl.rb', line 33

def inbound
  @egress = false
  self
end

#inbound_entries_countObject



43
44
45
46
47
# File 'lib/awspec/type/network_acl.rb', line 43

def inbound_entries_count
  resource_via_client.entries.count do |entry|
    entry.egress == false
  end
end

#outboundObject



38
39
40
41
# File 'lib/awspec/type/network_acl.rb', line 38

def outbound
  @egress = true
  self
end

#outbound_entries_countObject



49
50
51
52
53
# File 'lib/awspec/type/network_acl.rb', line 49

def outbound_entries_count
  resource_via_client.entries.count do |entry|
    entry.egress == true
  end
end

#resource_via_clientObject



6
7
8
# File 'lib/awspec/type/network_acl.rb', line 6

def resource_via_client
  @resource_via_client ||= find_network_acl(@display_name)
end