awspec 1.24.3 → 1.25.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (441) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +67 -0
  3. data/.github/workflows/doc.yml +29 -0
  4. data/.rubocop.yml +76 -27
  5. data/Gemfile +4 -0
  6. data/README.md +1 -3
  7. data/Rakefile +5 -4
  8. data/awspec.gemspec +5 -5
  9. data/bin/console +1 -0
  10. data/bin/toolbox +1 -0
  11. data/doc/_resource_types/cloudwatch_logs.md +9 -0
  12. data/doc/_resource_types/eks_nodegroup.md +53 -0
  13. data/doc/resource_types.md +76 -23
  14. data/exe/awspec +1 -0
  15. data/lib/awspec/cli.rb +2 -0
  16. data/lib/awspec/command/generate.rb +11 -9
  17. data/lib/awspec/config.rb +2 -0
  18. data/lib/awspec/error.rb +4 -0
  19. data/lib/awspec/ext/array.rb +5 -2
  20. data/lib/awspec/ext/hash.rb +5 -2
  21. data/lib/awspec/ext/string.rb +2 -0
  22. data/lib/awspec/ext/struct.rb +2 -0
  23. data/lib/awspec/ext.rb +2 -0
  24. data/lib/awspec/generator/doc/type/account.rb +4 -4
  25. data/lib/awspec/generator/doc/type/account_attribute.rb +4 -4
  26. data/lib/awspec/generator/doc/type/account_attribute_base.rb +3 -2
  27. data/lib/awspec/generator/doc/type/acm.rb +4 -2
  28. data/lib/awspec/generator/doc/type/alb.rb +5 -3
  29. data/lib/awspec/generator/doc/type/alb_listener.rb +3 -1
  30. data/lib/awspec/generator/doc/type/alb_target_group.rb +3 -1
  31. data/lib/awspec/generator/doc/type/ami.rb +4 -2
  32. data/lib/awspec/generator/doc/type/apigateway.rb +2 -0
  33. data/lib/awspec/generator/doc/type/autoscaling_group.rb +2 -0
  34. data/lib/awspec/generator/doc/type/base.rb +11 -8
  35. data/lib/awspec/generator/doc/type/batch_compute_environment.rb +6 -4
  36. data/lib/awspec/generator/doc/type/batch_job_definition.rb +2 -0
  37. data/lib/awspec/generator/doc/type/batch_job_queue.rb +2 -0
  38. data/lib/awspec/generator/doc/type/cloudformation_stack.rb +2 -0
  39. data/lib/awspec/generator/doc/type/cloudfront_distribution.rb +4 -2
  40. data/lib/awspec/generator/doc/type/cloudtrail.rb +2 -0
  41. data/lib/awspec/generator/doc/type/cloudwatch_alarm.rb +3 -1
  42. data/lib/awspec/generator/doc/type/cloudwatch_event.rb +2 -0
  43. data/lib/awspec/generator/doc/type/cloudwatch_logs.rb +2 -0
  44. data/lib/awspec/generator/doc/type/codebuild.rb +2 -0
  45. data/lib/awspec/generator/doc/type/codedeploy.rb +2 -0
  46. data/lib/awspec/generator/doc/type/codedeploy_deployment_group.rb +2 -0
  47. data/lib/awspec/generator/doc/type/cognito_identity_pool.rb +2 -0
  48. data/lib/awspec/generator/doc/type/cognito_user_pool.rb +2 -0
  49. data/lib/awspec/generator/doc/type/customer_gateway.rb +4 -2
  50. data/lib/awspec/generator/doc/type/directconnect_virtual_interface.rb +4 -2
  51. data/lib/awspec/generator/doc/type/dynamodb_table.rb +4 -2
  52. data/lib/awspec/generator/doc/type/ebs.rb +4 -2
  53. data/lib/awspec/generator/doc/type/ec2.rb +4 -2
  54. data/lib/awspec/generator/doc/type/ec2_account_attributes.rb +2 -0
  55. data/lib/awspec/generator/doc/type/ecr_repository.rb +2 -0
  56. data/lib/awspec/generator/doc/type/ecs_cluster.rb +4 -2
  57. data/lib/awspec/generator/doc/type/ecs_container_instance.rb +4 -2
  58. data/lib/awspec/generator/doc/type/ecs_service.rb +4 -2
  59. data/lib/awspec/generator/doc/type/ecs_task_definition.rb +4 -2
  60. data/lib/awspec/generator/doc/type/efs.rb +2 -0
  61. data/lib/awspec/generator/doc/type/eip.rb +2 -0
  62. data/lib/awspec/generator/doc/type/eks.rb +4 -2
  63. data/lib/awspec/generator/doc/type/eks_nodegroup.rb +4 -2
  64. data/lib/awspec/generator/doc/type/elasticache.rb +4 -2
  65. data/lib/awspec/generator/doc/type/elasticache_cache_parameter_group.rb +2 -0
  66. data/lib/awspec/generator/doc/type/elasticsearch.rb +2 -0
  67. data/lib/awspec/generator/doc/type/elastictranscoder_pipeline.rb +4 -2
  68. data/lib/awspec/generator/doc/type/elb.rb +5 -3
  69. data/lib/awspec/generator/doc/type/emr.rb +4 -2
  70. data/lib/awspec/generator/doc/type/firehose.rb +2 -0
  71. data/lib/awspec/generator/doc/type/iam_group.rb +3 -1
  72. data/lib/awspec/generator/doc/type/iam_policy.rb +2 -0
  73. data/lib/awspec/generator/doc/type/iam_role.rb +3 -1
  74. data/lib/awspec/generator/doc/type/iam_user.rb +3 -1
  75. data/lib/awspec/generator/doc/type/internet_gateway.rb +2 -0
  76. data/lib/awspec/generator/doc/type/kinesis.rb +2 -0
  77. data/lib/awspec/generator/doc/type/kms.rb +2 -0
  78. data/lib/awspec/generator/doc/type/lambda.rb +3 -1
  79. data/lib/awspec/generator/doc/type/lambda_account_settings.rb +2 -0
  80. data/lib/awspec/generator/doc/type/launch_configuration.rb +2 -0
  81. data/lib/awspec/generator/doc/type/launch_template.rb +2 -0
  82. data/lib/awspec/generator/doc/type/mq.rb +5 -3
  83. data/lib/awspec/generator/doc/type/msk.rb +2 -0
  84. data/lib/awspec/generator/doc/type/nat_gateway.rb +4 -2
  85. data/lib/awspec/generator/doc/type/network_acl.rb +4 -2
  86. data/lib/awspec/generator/doc/type/network_interface.rb +4 -2
  87. data/lib/awspec/generator/doc/type/nlb.rb +4 -2
  88. data/lib/awspec/generator/doc/type/nlb_listener.rb +3 -1
  89. data/lib/awspec/generator/doc/type/nlb_target_group.rb +3 -1
  90. data/lib/awspec/generator/doc/type/rds.rb +5 -3
  91. data/lib/awspec/generator/doc/type/rds_account_attributes.rb +2 -0
  92. data/lib/awspec/generator/doc/type/rds_db_cluster_parameter_group.rb +2 -0
  93. data/lib/awspec/generator/doc/type/rds_db_parameter_group.rb +2 -0
  94. data/lib/awspec/generator/doc/type/redshift.rb +5 -3
  95. data/lib/awspec/generator/doc/type/redshift_cluster_parameter_group.rb +2 -0
  96. data/lib/awspec/generator/doc/type/route53_hosted_zone.rb +2 -0
  97. data/lib/awspec/generator/doc/type/route_table.rb +2 -0
  98. data/lib/awspec/generator/doc/type/s3_bucket.rb +3 -1
  99. data/lib/awspec/generator/doc/type/secretsmanager.rb +2 -0
  100. data/lib/awspec/generator/doc/type/security_group.rb +4 -2
  101. data/lib/awspec/generator/doc/type/ses_identity.rb +4 -2
  102. data/lib/awspec/generator/doc/type/ses_send_quota.rb +2 -0
  103. data/lib/awspec/generator/doc/type/sns_topic.rb +5 -3
  104. data/lib/awspec/generator/doc/type/sqs.rb +2 -0
  105. data/lib/awspec/generator/doc/type/ssm_parameter.rb +2 -0
  106. data/lib/awspec/generator/doc/type/subnet.rb +4 -2
  107. data/lib/awspec/generator/doc/type/transit_gateway.rb +2 -0
  108. data/lib/awspec/generator/doc/type/vpc.rb +4 -2
  109. data/lib/awspec/generator/doc/type/vpc_endpoints.rb +2 -0
  110. data/lib/awspec/generator/doc/type/vpn_connection.rb +4 -2
  111. data/lib/awspec/generator/doc/type/vpn_gateway.rb +4 -2
  112. data/lib/awspec/generator/doc/type/waf_web_acl.rb +3 -1
  113. data/lib/awspec/generator/doc/type/wafregional_web_acl.rb +3 -1
  114. data/lib/awspec/generator/doc/type.rb +5 -3
  115. data/lib/awspec/generator/spec/acm.rb +4 -2
  116. data/lib/awspec/generator/spec/alb.rb +6 -4
  117. data/lib/awspec/generator/spec/alb_listener.rb +6 -4
  118. data/lib/awspec/generator/spec/autoscaling_group.rb +6 -4
  119. data/lib/awspec/generator/spec/cloudwatch_alarm.rb +4 -2
  120. data/lib/awspec/generator/spec/cloudwatch_event.rb +4 -2
  121. data/lib/awspec/generator/spec/cloudwatch_logs.rb +9 -3
  122. data/lib/awspec/generator/spec/codebuild.rb +4 -2
  123. data/lib/awspec/generator/spec/directconnect.rb +4 -2
  124. data/lib/awspec/generator/spec/ebs.rb +5 -4
  125. data/lib/awspec/generator/spec/ec2.rb +5 -2
  126. data/lib/awspec/generator/spec/efs.rb +4 -2
  127. data/lib/awspec/generator/spec/eip.rb +4 -2
  128. data/lib/awspec/generator/spec/elasticache.rb +5 -2
  129. data/lib/awspec/generator/spec/elasticsearch.rb +4 -2
  130. data/lib/awspec/generator/spec/elb.rb +8 -6
  131. data/lib/awspec/generator/spec/iam_group.rb +4 -2
  132. data/lib/awspec/generator/spec/iam_policy.rb +3 -0
  133. data/lib/awspec/generator/spec/iam_role.rb +4 -2
  134. data/lib/awspec/generator/spec/iam_user.rb +4 -2
  135. data/lib/awspec/generator/spec/internet_gateway.rb +6 -4
  136. data/lib/awspec/generator/spec/kms.rb +4 -2
  137. data/lib/awspec/generator/spec/lambda.rb +4 -2
  138. data/lib/awspec/generator/spec/nat_gateway.rb +6 -4
  139. data/lib/awspec/generator/spec/network_acl.rb +15 -13
  140. data/lib/awspec/generator/spec/network_interface.rb +13 -10
  141. data/lib/awspec/generator/spec/nlb.rb +6 -4
  142. data/lib/awspec/generator/spec/nlb_listener.rb +6 -4
  143. data/lib/awspec/generator/spec/rds.rb +5 -2
  144. data/lib/awspec/generator/spec/rds_db_cluster_parameter_group.rb +3 -2
  145. data/lib/awspec/generator/spec/rds_db_parameter_group.rb +3 -2
  146. data/lib/awspec/generator/spec/redshift.rb +5 -2
  147. data/lib/awspec/generator/spec/redshift_cluster_parameter_group.rb +3 -2
  148. data/lib/awspec/generator/spec/route53_hosted_zone.rb +4 -2
  149. data/lib/awspec/generator/spec/route_table.rb +12 -14
  150. data/lib/awspec/generator/spec/s3_bucket.rb +9 -6
  151. data/lib/awspec/generator/spec/security_group.rb +9 -8
  152. data/lib/awspec/generator/spec/subnet.rb +6 -4
  153. data/lib/awspec/generator/spec/vpc.rb +5 -2
  154. data/lib/awspec/generator/template.rb +17 -15
  155. data/lib/awspec/generator.rb +4 -2
  156. data/lib/awspec/helper/client_wrap.rb +5 -1
  157. data/lib/awspec/helper/color.rb +2 -0
  158. data/lib/awspec/helper/finder/account_attributes.rb +8 -6
  159. data/lib/awspec/helper/finder/acm.rb +4 -0
  160. data/lib/awspec/helper/finder/alb.rb +7 -5
  161. data/lib/awspec/helper/finder/ami.rb +4 -0
  162. data/lib/awspec/helper/finder/apigateway.rb +2 -0
  163. data/lib/awspec/helper/finder/autoscaling.rb +3 -0
  164. data/lib/awspec/helper/finder/batch.rb +2 -0
  165. data/lib/awspec/helper/finder/cloudformation.rb +2 -0
  166. data/lib/awspec/helper/finder/cloudfront.rb +3 -0
  167. data/lib/awspec/helper/finder/cloudtrail.rb +2 -0
  168. data/lib/awspec/helper/finder/cloudwatch.rb +3 -0
  169. data/lib/awspec/helper/finder/cloudwatch_event.rb +2 -0
  170. data/lib/awspec/helper/finder/cloudwatch_logs.rb +10 -5
  171. data/lib/awspec/helper/finder/codebuild.rb +3 -0
  172. data/lib/awspec/helper/finder/codedeploy.rb +2 -0
  173. data/lib/awspec/helper/finder/cognito_identity_pool.rb +2 -0
  174. data/lib/awspec/helper/finder/cognito_user_pool.rb +2 -0
  175. data/lib/awspec/helper/finder/directconnect.rb +2 -0
  176. data/lib/awspec/helper/finder/dynamodb.rb +2 -0
  177. data/lib/awspec/helper/finder/ebs.rb +5 -0
  178. data/lib/awspec/helper/finder/ec2.rb +56 -26
  179. data/lib/awspec/helper/finder/ecr.rb +2 -0
  180. data/lib/awspec/helper/finder/ecs.rb +5 -2
  181. data/lib/awspec/helper/finder/efs.rb +5 -4
  182. data/lib/awspec/helper/finder/eks.rb +2 -0
  183. data/lib/awspec/helper/finder/elasticache.rb +3 -1
  184. data/lib/awspec/helper/finder/elasticsearch.rb +3 -1
  185. data/lib/awspec/helper/finder/elastictranscoder.rb +3 -0
  186. data/lib/awspec/helper/finder/elb.rb +6 -4
  187. data/lib/awspec/helper/finder/emr.rb +2 -0
  188. data/lib/awspec/helper/finder/firehose.rb +2 -0
  189. data/lib/awspec/helper/finder/iam.rb +16 -12
  190. data/lib/awspec/helper/finder/kinesis.rb +2 -0
  191. data/lib/awspec/helper/finder/kms.rb +3 -1
  192. data/lib/awspec/helper/finder/lambda.rb +3 -0
  193. data/lib/awspec/helper/finder/mq.rb +3 -1
  194. data/lib/awspec/helper/finder/msk.rb +2 -0
  195. data/lib/awspec/helper/finder/nlb.rb +11 -8
  196. data/lib/awspec/helper/finder/rds.rb +4 -1
  197. data/lib/awspec/helper/finder/redshift.rb +4 -1
  198. data/lib/awspec/helper/finder/route53.rb +4 -1
  199. data/lib/awspec/helper/finder/s3.rb +4 -2
  200. data/lib/awspec/helper/finder/secretsmanager.rb +2 -0
  201. data/lib/awspec/helper/finder/security_group.rb +2 -0
  202. data/lib/awspec/helper/finder/ses.rb +2 -0
  203. data/lib/awspec/helper/finder/sns_topic.rb +5 -3
  204. data/lib/awspec/helper/finder/sqs.rb +2 -0
  205. data/lib/awspec/helper/finder/ssm_parameter.rb +4 -1
  206. data/lib/awspec/helper/finder/subnet.rb +126 -20
  207. data/lib/awspec/helper/finder/vpc.rb +12 -6
  208. data/lib/awspec/helper/finder/vpc_endpoints.rb +2 -0
  209. data/lib/awspec/helper/finder/waf.rb +5 -0
  210. data/lib/awspec/helper/finder/wafregional.rb +5 -0
  211. data/lib/awspec/helper/finder.rb +3 -1
  212. data/lib/awspec/helper/states.rb +4 -2
  213. data/lib/awspec/helper/type.rb +8 -4
  214. data/lib/awspec/helper.rb +2 -0
  215. data/lib/awspec/matcher/be_allowed.rb +2 -0
  216. data/lib/awspec/matcher/be_allowed_action.rb +2 -0
  217. data/lib/awspec/matcher/be_attached_to.rb +3 -0
  218. data/lib/awspec/matcher/be_connected_to_vpc.rb +2 -0
  219. data/lib/awspec/matcher/be_denied.rb +2 -0
  220. data/lib/awspec/matcher/be_opened.rb +2 -0
  221. data/lib/awspec/matcher/be_opened_only.rb +2 -0
  222. data/lib/awspec/matcher/belong_to_alb.rb +4 -0
  223. data/lib/awspec/matcher/belong_to_cache_subnet_group.rb +2 -0
  224. data/lib/awspec/matcher/belong_to_cluster_subnet_group.rb +2 -0
  225. data/lib/awspec/matcher/belong_to_db_subnet_group.rb +2 -0
  226. data/lib/awspec/matcher/belong_to_domain.rb +2 -0
  227. data/lib/awspec/matcher/belong_to_iam_group.rb +2 -0
  228. data/lib/awspec/matcher/belong_to_metric.rb +2 -0
  229. data/lib/awspec/matcher/belong_to_nlb.rb +4 -0
  230. data/lib/awspec/matcher/belong_to_replication_group.rb +2 -0
  231. data/lib/awspec/matcher/belong_to_subnet.rb +5 -0
  232. data/lib/awspec/matcher/belong_to_subnets.rb +16 -0
  233. data/lib/awspec/matcher/belong_to_vpc.rb +4 -0
  234. data/lib/awspec/matcher/have_attribute_definition.rb +2 -0
  235. data/lib/awspec/matcher/have_cluster_parameter_group.rb +2 -0
  236. data/lib/awspec/matcher/have_custom_response_error_code.rb +3 -2
  237. data/lib/awspec/matcher/have_db_parameter_group.rb +2 -0
  238. data/lib/awspec/matcher/have_env_var.rb +2 -0
  239. data/lib/awspec/matcher/have_env_var_value.rb +2 -0
  240. data/lib/awspec/matcher/have_env_vars.rb +2 -0
  241. data/lib/awspec/matcher/have_inline_policy.rb +2 -0
  242. data/lib/awspec/matcher/have_key_policy.rb +2 -0
  243. data/lib/awspec/matcher/have_key_schema.rb +2 -0
  244. data/lib/awspec/matcher/have_metric_filter.rb +11 -0
  245. data/lib/awspec/matcher/have_network_interface.rb +2 -0
  246. data/lib/awspec/matcher/have_option_group.rb +2 -0
  247. data/lib/awspec/matcher/have_origin.rb +3 -2
  248. data/lib/awspec/matcher/have_private_ip_address.rb +2 -0
  249. data/lib/awspec/matcher/have_record_set.rb +3 -1
  250. data/lib/awspec/matcher/have_route.rb +5 -3
  251. data/lib/awspec/matcher/have_rule.rb +3 -0
  252. data/lib/awspec/matcher/have_subscription_attributes.rb +3 -0
  253. data/lib/awspec/matcher/have_subscription_filter.rb +2 -0
  254. data/lib/awspec/matcher/have_tag.rb +2 -0
  255. data/lib/awspec/matcher/have_vpc_peering_connection.rb +2 -0
  256. data/lib/awspec/matcher/include_subscribed.rb +2 -0
  257. data/lib/awspec/matcher.rb +6 -0
  258. data/lib/awspec/resource_reader.rb +3 -0
  259. data/lib/awspec/setup.rb +7 -5
  260. data/lib/awspec/shared_context.rb +3 -0
  261. data/lib/awspec/stub/account.rb +2 -0
  262. data/lib/awspec/stub/acm.rb +2 -0
  263. data/lib/awspec/stub/alb.rb +3 -1
  264. data/lib/awspec/stub/alb_listener.rb +4 -3
  265. data/lib/awspec/stub/alb_target_group.rb +3 -1
  266. data/lib/awspec/stub/ami.rb +2 -0
  267. data/lib/awspec/stub/apigateway.rb +2 -0
  268. data/lib/awspec/stub/autoscaling_group.rb +6 -4
  269. data/lib/awspec/stub/batch_compute_environment.rb +2 -0
  270. data/lib/awspec/stub/batch_job_definition.rb +2 -0
  271. data/lib/awspec/stub/batch_job_queue.rb +2 -0
  272. data/lib/awspec/stub/cloudformation_stack.rb +4 -2
  273. data/lib/awspec/stub/cloudfront_distribution.rb +6 -4
  274. data/lib/awspec/stub/cloudtrail.rb +2 -0
  275. data/lib/awspec/stub/cloudwatch_logs.rb +4 -1
  276. data/lib/awspec/stub/codebuild.rb +5 -3
  277. data/lib/awspec/stub/codedeploy.rb +2 -0
  278. data/lib/awspec/stub/codedeploy_deployment_group.rb +2 -0
  279. data/lib/awspec/stub/cognito_identity_pool.rb +2 -0
  280. data/lib/awspec/stub/cognito_user_pool.rb +2 -0
  281. data/lib/awspec/stub/directconnect_virtual_interface.rb +2 -0
  282. data/lib/awspec/stub/duplicated_resource_type.rb +2 -0
  283. data/lib/awspec/stub/dynamodb_table.rb +2 -0
  284. data/lib/awspec/stub/ebs.rb +2 -0
  285. data/lib/awspec/stub/ec2.rb +2 -0
  286. data/lib/awspec/stub/ec2_has_multi_security_groups.rb +2 -0
  287. data/lib/awspec/stub/ec2_non_existing.rb +2 -0
  288. data/lib/awspec/stub/ecr_repository.rb +2 -0
  289. data/lib/awspec/stub/ecs.rb +13 -22
  290. data/lib/awspec/stub/ecs_cluster.rb +4 -4
  291. data/lib/awspec/stub/ecs_container_instance.rb +3 -2
  292. data/lib/awspec/stub/ecs_service.rb +4 -4
  293. data/lib/awspec/stub/ecs_task_definition.rb +9 -14
  294. data/lib/awspec/stub/efs.rb +2 -0
  295. data/lib/awspec/stub/eip.rb +2 -0
  296. data/lib/awspec/stub/eks.rb +5 -3
  297. data/lib/awspec/stub/eks_nodegroup.rb +63 -1
  298. data/lib/awspec/stub/elasticache.rb +2 -0
  299. data/lib/awspec/stub/elasticache_cache_parameter_group.rb +2 -0
  300. data/lib/awspec/stub/elasticsearch.rb +1 -0
  301. data/lib/awspec/stub/elastictranscoder_pipeline.rb +2 -0
  302. data/lib/awspec/stub/elb.rb +2 -0
  303. data/lib/awspec/stub/emr.rb +2 -0
  304. data/lib/awspec/stub/firehose.rb +2 -0
  305. data/lib/awspec/stub/iam_group.rb +3 -2
  306. data/lib/awspec/stub/iam_policy.rb +2 -0
  307. data/lib/awspec/stub/iam_role.rb +3 -2
  308. data/lib/awspec/stub/iam_user.rb +3 -2
  309. data/lib/awspec/stub/internet_gateway.rb +2 -0
  310. data/lib/awspec/stub/kinesis.rb +8 -6
  311. data/lib/awspec/stub/kms.rb +2 -0
  312. data/lib/awspec/stub/lambda.rb +2 -0
  313. data/lib/awspec/stub/launch_configuration.rb +2 -0
  314. data/lib/awspec/stub/launch_template.rb +2 -0
  315. data/lib/awspec/stub/mq.rb +5 -3
  316. data/lib/awspec/stub/msk.rb +5 -3
  317. data/lib/awspec/stub/nat_gateway.rb +2 -0
  318. data/lib/awspec/stub/network_acl.rb +2 -0
  319. data/lib/awspec/stub/network_interface.rb +2 -0
  320. data/lib/awspec/stub/nlb.rb +3 -1
  321. data/lib/awspec/stub/nlb_listener.rb +4 -3
  322. data/lib/awspec/stub/nlb_target_group.rb +3 -1
  323. data/lib/awspec/stub/rds.rb +2 -0
  324. data/lib/awspec/stub/rds_db_cluster_parameter_group.rb +2 -0
  325. data/lib/awspec/stub/rds_db_parameter_group.rb +10 -0
  326. data/lib/awspec/stub/redshift.rb +2 -0
  327. data/lib/awspec/stub/redshift_cluster_parameter_group.rb +2 -0
  328. data/lib/awspec/stub/route53_hosted_zone.rb +2 -0
  329. data/lib/awspec/stub/route_table.rb +2 -0
  330. data/lib/awspec/stub/s3_bucket.rb +2 -0
  331. data/lib/awspec/stub/secretsmanager.rb +2 -0
  332. data/lib/awspec/stub/security_group.rb +2 -0
  333. data/lib/awspec/stub/ses_identity.rb +2 -0
  334. data/lib/awspec/stub/sns_topic.rb +18 -9
  335. data/lib/awspec/stub/sns_topic_error.rb +17 -0
  336. data/lib/awspec/stub/sqs.rb +2 -0
  337. data/lib/awspec/stub/ssm_parameter.rb +2 -0
  338. data/lib/awspec/stub/subnet.rb +2 -0
  339. data/lib/awspec/stub/transit_gateway.rb +2 -0
  340. data/lib/awspec/stub/vpc.rb +2 -0
  341. data/lib/awspec/stub/vpc_endpoints.rb +2 -0
  342. data/lib/awspec/stub/waf_web_acl.rb +2 -0
  343. data/lib/awspec/stub/wafregional_web_acl.rb +2 -0
  344. data/lib/awspec/stub.rb +3 -1
  345. data/lib/awspec/toolbox.rb +2 -0
  346. data/lib/awspec/type/account.rb +4 -2
  347. data/lib/awspec/type/account_attribute.rb +5 -2
  348. data/lib/awspec/type/account_attribute_base.rb +2 -0
  349. data/lib/awspec/type/acm.rb +8 -6
  350. data/lib/awspec/type/alb.rb +8 -3
  351. data/lib/awspec/type/alb_listener.rb +4 -0
  352. data/lib/awspec/type/alb_target_group.rb +3 -0
  353. data/lib/awspec/type/ami.rb +5 -3
  354. data/lib/awspec/type/apigateway.rb +9 -3
  355. data/lib/awspec/type/autoscaling_group.rb +3 -0
  356. data/lib/awspec/type/base.rb +6 -3
  357. data/lib/awspec/type/batch_compute_environment.rb +6 -4
  358. data/lib/awspec/type/batch_job_definition.rb +2 -0
  359. data/lib/awspec/type/batch_job_queue.rb +4 -2
  360. data/lib/awspec/type/cloudformation_stack.rb +2 -0
  361. data/lib/awspec/type/cloudfront_distribution.rb +11 -5
  362. data/lib/awspec/type/cloudtrail.rb +2 -0
  363. data/lib/awspec/type/cloudwatch_alarm.rb +2 -0
  364. data/lib/awspec/type/cloudwatch_event.rb +2 -0
  365. data/lib/awspec/type/cloudwatch_logs.rb +10 -3
  366. data/lib/awspec/type/codebuild.rb +2 -0
  367. data/lib/awspec/type/codedeploy.rb +2 -0
  368. data/lib/awspec/type/codedeploy_deployment_group.rb +4 -0
  369. data/lib/awspec/type/cognito_identity_pool.rb +2 -0
  370. data/lib/awspec/type/cognito_user_pool.rb +2 -0
  371. data/lib/awspec/type/customer_gateway.rb +5 -3
  372. data/lib/awspec/type/directconnect_virtual_interface.rb +5 -3
  373. data/lib/awspec/type/dynamodb_table.rb +5 -3
  374. data/lib/awspec/type/ebs.rb +6 -3
  375. data/lib/awspec/type/ec2.rb +10 -0
  376. data/lib/awspec/type/ec2_account_attributes.rb +2 -0
  377. data/lib/awspec/type/ecr_repository.rb +2 -0
  378. data/lib/awspec/type/ecs_cluster.rb +5 -2
  379. data/lib/awspec/type/ecs_container_instance.rb +4 -2
  380. data/lib/awspec/type/ecs_service.rb +5 -2
  381. data/lib/awspec/type/ecs_task_definition.rb +4 -2
  382. data/lib/awspec/type/efs.rb +3 -0
  383. data/lib/awspec/type/eip.rb +3 -0
  384. data/lib/awspec/type/eks.rb +4 -2
  385. data/lib/awspec/type/eks_nodegroup.rb +109 -2
  386. data/lib/awspec/type/elasticache.rb +7 -3
  387. data/lib/awspec/type/elasticache_cache_parameter_group.rb +3 -0
  388. data/lib/awspec/type/elasticsearch.rb +2 -0
  389. data/lib/awspec/type/elastictranscoder_pipeline.rb +5 -3
  390. data/lib/awspec/type/elb.rb +11 -3
  391. data/lib/awspec/type/emr.rb +8 -6
  392. data/lib/awspec/type/firehose.rb +4 -2
  393. data/lib/awspec/type/iam_group.rb +4 -0
  394. data/lib/awspec/type/iam_policy.rb +5 -0
  395. data/lib/awspec/type/iam_role.rb +3 -0
  396. data/lib/awspec/type/iam_user.rb +3 -0
  397. data/lib/awspec/type/internet_gateway.rb +2 -0
  398. data/lib/awspec/type/kinesis.rb +3 -0
  399. data/lib/awspec/type/kms.rb +3 -0
  400. data/lib/awspec/type/lambda.rb +2 -0
  401. data/lib/awspec/type/lambda_account_settings.rb +2 -0
  402. data/lib/awspec/type/launch_configuration.rb +3 -0
  403. data/lib/awspec/type/launch_template.rb +3 -0
  404. data/lib/awspec/type/mq.rb +7 -3
  405. data/lib/awspec/type/msk.rb +5 -3
  406. data/lib/awspec/type/nat_gateway.rb +5 -3
  407. data/lib/awspec/type/network_acl.rb +9 -2
  408. data/lib/awspec/type/network_interface.rb +9 -3
  409. data/lib/awspec/type/nlb.rb +6 -3
  410. data/lib/awspec/type/nlb_listener.rb +4 -0
  411. data/lib/awspec/type/nlb_target_group.rb +3 -0
  412. data/lib/awspec/type/rds.rb +7 -3
  413. data/lib/awspec/type/rds_account_attributes.rb +2 -0
  414. data/lib/awspec/type/rds_db_cluster_parameter_group.rb +3 -0
  415. data/lib/awspec/type/rds_db_parameter_group.rb +58 -0
  416. data/lib/awspec/type/redshift.rb +7 -3
  417. data/lib/awspec/type/redshift_cluster_parameter_group.rb +2 -0
  418. data/lib/awspec/type/resource_base.rb +2 -0
  419. data/lib/awspec/type/route53_hosted_zone.rb +7 -2
  420. data/lib/awspec/type/route_table.rb +12 -0
  421. data/lib/awspec/type/s3_bucket.rb +7 -4
  422. data/lib/awspec/type/secretsmanager.rb +2 -0
  423. data/lib/awspec/type/security_group.rb +14 -2
  424. data/lib/awspec/type/ses_identity.rb +8 -6
  425. data/lib/awspec/type/ses_send_quota.rb +2 -0
  426. data/lib/awspec/type/sns_topic.rb +4 -0
  427. data/lib/awspec/type/sqs.rb +4 -0
  428. data/lib/awspec/type/ssm_parameter.rb +3 -0
  429. data/lib/awspec/type/subnet.rb +6 -3
  430. data/lib/awspec/type/transit_gateway.rb +2 -0
  431. data/lib/awspec/type/vpc.rb +7 -3
  432. data/lib/awspec/type/vpc_endpoints.rb +5 -3
  433. data/lib/awspec/type/vpn_connection.rb +5 -3
  434. data/lib/awspec/type/vpn_gateway.rb +5 -3
  435. data/lib/awspec/type/waf_web_acl.rb +3 -0
  436. data/lib/awspec/type/wafregional_web_acl.rb +3 -0
  437. data/lib/awspec/version.rb +3 -1
  438. data/lib/awspec.rb +2 -0
  439. metadata +31 -28
  440. data/.tachikoma.yml +0 -1
  441. data/.travis.yml +0 -27
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ac14ec851ce396f40316106c3784538793a8522009cc6d2172b71d01bc16691
4
- data.tar.gz: 291660659e3c9223777f70e779c1d2ab34a591a4bfd83590002764977a70e73d
3
+ metadata.gz: 02cc903214e73de4d0d6ed6bee30b9bf987e9f5ef11387b17686ecb92675aae8
4
+ data.tar.gz: e890b372efb87f544a31a91caa358a6a313293edebb7fb66a24dd29fa636b34e
5
5
  SHA512:
6
- metadata.gz: 411f890f896ba013a75805159318bca637f0c43f0cc2b62c9e745d3b3386a31ba24d2080c1f4821f6fd68d5392bd1003a03838f119fa156b28f1959d4016ef98
7
- data.tar.gz: f9ee6a4015f25bb56b85ae3a741a628bc5985b4e85f04e92099faaa9fb14caf02d7e8a13ef6ec86e3e5cd51455fe0b1d7d6fcc6feed3853d88661233f4079afd
6
+ metadata.gz: db38f329352a2488a4fafc1c3f324f6653addb8e05585c90cf0644cacb64e75712cb14ac9095f7ca85c465606e9460f262e2438613ff844d99a5aaee79d3b3d8
7
+ data.tar.gz: 4655fa571461a651b73c6afd85aabff2c26ccdad639609b6f51a12df3fe09f8df3330d7b7909a67cfafc5c3dd8a89d85be118e17cf2c13ed4d575c95c54ba0de
@@ -0,0 +1,67 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+
8
+ jobs:
9
+ lint:
10
+ name: Lint
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v2
16
+
17
+ - name: Set up Ruby
18
+ uses: ruby/setup-ruby@v1
19
+ with:
20
+ ruby-version: 3.1
21
+ bundler-cache: true
22
+
23
+ - name: Run rubocop
24
+ uses: reviewdog/action-rubocop@v1
25
+ with:
26
+ github_token: ${{ secrets.GITHUB_TOKEN }}
27
+ reporter: github-pr-review
28
+ fail_on_error: true
29
+
30
+ test:
31
+ name: Test
32
+ needs: [ lint ]
33
+ strategy:
34
+ fail-fast: false
35
+ matrix:
36
+ ruby-version:
37
+ - '2.1'
38
+ - '2.2'
39
+ - '2.3'
40
+ - '2.4'
41
+ - '2.5'
42
+ - '2.6'
43
+ - '2.7'
44
+ - '3.0'
45
+ - '3.1'
46
+ runs-on: ubuntu-latest
47
+ env:
48
+ DISABLE_AWS_CLIENT_CHECK: true
49
+
50
+ steps:
51
+ - name: Checkout
52
+ uses: actions/checkout@v2
53
+
54
+ - name: Set up Ruby
55
+ uses: ruby/setup-ruby@v1
56
+ with:
57
+ ruby-version: ${{ matrix.ruby-version }}
58
+ bundler-cache: true
59
+
60
+ - name: Show Ruby version
61
+ run: ruby -v
62
+
63
+ - name: Generate document
64
+ run: bundle exec bin/toolbox docgen > doc/resource_types.md
65
+
66
+ - name: Run tests
67
+ run: bundle exec rake spec
@@ -0,0 +1,29 @@
1
+ name: Doc
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '0 0 * * 0'
6
+
7
+ jobs:
8
+ doc:
9
+ name: Document
10
+ runs-on: ubuntu-latest
11
+ env:
12
+ DISABLE_AWS_CLIENT_CHECK: true
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v2
16
+
17
+ - name: Set up Ruby
18
+ uses: ruby/setup-ruby@v1
19
+ with:
20
+ ruby-version: '2.7'
21
+ bundler-cache: true
22
+
23
+ - name: Generate document
24
+ run: bundle exec bin/toolbox docgen > doc/resource_types.md
25
+
26
+ - uses: EndBug/add-and-commit@v7
27
+ with:
28
+ default_author: github_actions
29
+ add: 'doc/resource_types.md'
data/.rubocop.yml CHANGED
@@ -1,23 +1,53 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.1
2
+ SuggestExtensions: false
3
3
 
4
- Layout/IndentHeredoc:
4
+ Layout/ClosingHeredocIndentation:
5
5
  Enabled: false
6
6
 
7
- Layout/MultilineOperationIndentation:
7
+ Layout/HashAlignment:
8
8
  Enabled: false
9
9
 
10
- Layout/MultilineMethodCallBraceLayout:
10
+ Layout/HeredocIndentation:
11
+ Enabled: false
12
+
13
+ Gemspec/RequiredRubyVersion:
14
+ Enabled: false
15
+
16
+ Lint/DuplicateMethods:
17
+ Exclude:
18
+ - 'lib/awspec/type/codedeploy_deployment_group.rb'
19
+ - 'lib/awspec/type/ecs_container_instance.rb'
20
+ - 'lib/awspec/type/ecs_service.rb'
21
+ - 'lib/awspec/type/eks_nodegroup.rb'
22
+ - 'lib/awspec/type/resource_base.rb'
23
+
24
+ Lint/ErbNewArguments:
11
25
  Enabled: false
12
26
 
13
- Lint/HandleExceptions:
27
+ Lint/MissingCopEnableDirective:
14
28
  Enabled: false
15
29
 
30
+ Lint/MissingSuper:
31
+ Exclude:
32
+ - 'lib/awspec/generator/doc/type/account_attribute.rb'
33
+ - 'lib/awspec/generator/doc/type/account_attribute_base.rb'
34
+ - 'lib/awspec/type/account_attribute.rb'
35
+ - 'lib/awspec/type/resource_base.rb'
36
+
37
+ Lint/SuppressedException:
38
+ Exclude:
39
+ - 'Rakefile'
40
+
41
+ Lint/UnreachableLoop:
42
+ Exclude:
43
+ - 'lib/awspec/type/nat_gateway.rb'
44
+ - 'lib/awspec/type/route53_hosted_zone.rb'
45
+
16
46
  Lint/UselessAssignment:
17
47
  Enabled: false
18
48
 
19
49
  Metrics/AbcSize:
20
- Max: 50
50
+ Max: 60
21
51
 
22
52
  Metrics/BlockLength:
23
53
  Max: 60
@@ -26,48 +56,72 @@ Metrics/ClassLength:
26
56
  Max: 130
27
57
 
28
58
  Metrics/CyclomaticComplexity:
29
- Max: 15
30
-
31
- Metrics/LineLength:
32
- Max: 120
59
+ Max: 30
33
60
 
34
61
  Metrics/MethodLength:
35
62
  Max: 30
36
63
 
37
64
  Metrics/ModuleLength:
38
- CountComments: false
39
65
  Max: 200
40
66
 
67
+ Metrics/ParameterLists:
68
+ MaxOptionalParameters: 4
69
+
41
70
  Metrics/PerceivedComplexity:
42
- Max: 15
71
+ Max: 30
72
+
73
+ Naming/HeredocDelimiterNaming:
74
+ Enabled: false
75
+
76
+ Naming/MethodParameterName:
77
+ Exclude:
78
+ - 'lib/awspec/generator/spec/security_group.rb'
79
+ - 'lib/awspec/helper/client_wrap.rb'
80
+ - 'lib/awspec/type/network_acl.rb'
43
81
 
44
- Style/PredicateName:
82
+ Naming/PredicateName:
45
83
  Enabled: false
46
84
 
47
- Performance/StringReplacement:
85
+ Naming/VariableNumber:
48
86
  Enabled: false
49
87
 
50
88
  Security/Eval:
89
+ Exclude:
90
+ - 'lib/awspec/command/generate.rb'
91
+ - 'lib/awspec/generator/doc/type.rb'
92
+ - 'lib/awspec/helper/type.rb'
93
+ - 'lib/awspec/type/account.rb'
94
+ - 'lib/awspec/type/account_attribute.rb'
95
+ - 'spec/generator/doc/type_spec.rb'
96
+
97
+ Style/CaseLikeIf:
51
98
  Enabled: false
52
99
 
53
- Style/Alias:
100
+ Style/ClassAndModuleChildren:
54
101
  Enabled: false
55
102
 
56
- Style/BarePercentLiterals:
103
+ Style/Documentation:
57
104
  Enabled: false
58
105
 
59
- Style/BracesAroundHashParameters:
106
+ Style/EvalWithLocation:
60
107
  Enabled: false
61
108
 
62
- Style/ClassAndModuleChildren:
109
+ Style/HashSyntax:
63
110
  Enabled: false
64
111
 
65
- Style/Documentation:
112
+ Style/HashTransformKeys:
66
113
  Enabled: false
67
114
 
68
- Style/MethodMissing:
115
+ Style/IfUnlessModifier:
69
116
  Enabled: false
70
117
 
118
+ Style/MissingRespondToMissing:
119
+ Enabled: false
120
+
121
+ Style/MixinUsage:
122
+ Exclude:
123
+ - 'lib/awspec/helper.rb'
124
+
71
125
  Style/MutableConstant:
72
126
  Enabled: false
73
127
 
@@ -77,17 +131,12 @@ Style/NumericLiteralPrefix:
77
131
  Style/NumericPredicate:
78
132
  Enabled: false
79
133
 
80
- Style/StabbyLambdaParentheses:
134
+ Style/SafeNavigation:
81
135
  Enabled: false
82
136
 
83
- Style/PercentLiteralDelimiters:
84
- Enabled: false
85
-
86
- Style/RedundantSelf:
137
+ Style/SoleNestedConditional:
87
138
  Enabled: false
88
139
 
89
140
  Style/SymbolProc:
90
141
  Enabled: false
91
142
 
92
- Style/YodaCondition:
93
- Enabled: false
data/Gemfile CHANGED
@@ -1,4 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in awspec.gemspec
4
6
  gemspec
7
+
8
+ gem 'ox' if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create('3.0.0')
data/README.md CHANGED
@@ -1,11 +1,9 @@
1
- # awspec [![Gem](https://img.shields.io/gem/v/awspec.svg)](https://rubygems.org/gems/awspec) [![Travis](https://img.shields.io/travis/k1LoW/awspec.svg)](https://travis-ci.org/k1LoW/awspec)
1
+ # awspec [![Gem](https://img.shields.io/gem/v/awspec.svg)](https://rubygems.org/gems/awspec) [![CI](https://github.com/k1LoW/awspec/actions/workflows/ci.yml/badge.svg)](https://github.com/k1LoW/awspec/actions)
2
2
 
3
3
  ![Logo](./awspec-logo.png)
4
4
 
5
5
  RSpec tests for your AWS resources.
6
6
 
7
- [![Join the chat at https://gitter.im/k1LoW/awspec](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/k1LoW/awspec?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
8
-
9
7
  [Resource Types](doc/resource_types.md) | [Contributing](doc/contributing.md)
10
8
 
11
9
  ## Installation
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
 
3
5
  begin
@@ -12,7 +14,7 @@ end
12
14
  require 'awspec'
13
15
 
14
16
  types = Awspec::Helper::Type::TYPES.map do |type|
15
- 'spec:' + type
17
+ "spec:#{type}"
16
18
  end
17
19
 
18
20
  if defined?(RSpec)
@@ -23,14 +25,13 @@ if defined?(RSpec)
23
25
  'spec:core',
24
26
  'spec:generator_spec',
25
27
  'spec:generator_doc',
26
- 'spec:rubocop',
27
28
  'spec:helper']
28
29
 
29
30
  task type: types
30
31
 
31
32
  Awspec::Helper::Type::TYPES.map do |type|
32
33
  RSpec::Core::RakeTask.new(type) do |t|
33
- t.pattern = 'spec/type/' + type + '_spec.rb'
34
+ t.pattern = "spec/type/#{type}_spec.rb"
34
35
  end
35
36
  end
36
37
 
@@ -60,5 +61,5 @@ end
60
61
 
61
62
  task :generate_docs do
62
63
  docs = Awspec::Generator::Doc::Type.generate_doc
63
- File.write('doc/resource_types.md', docs + "\n")
64
+ File.write('doc/resource_types.md', "#{docs}\n")
64
65
  end
data/awspec.gemspec CHANGED
@@ -1,6 +1,6 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path('../lib', __FILE__)
3
+ lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require 'awspec/version'
6
6
 
@@ -21,18 +21,18 @@ Gem::Specification.new do |spec|
21
21
  spec.require_paths = ['lib']
22
22
 
23
23
  spec.required_ruby_version = '>= 2.1'
24
- spec.add_runtime_dependency 'aws-sdk', '~> 3'
24
+ spec.add_runtime_dependency 'addressable'
25
25
  spec.add_runtime_dependency 'awsecrets', '~> 1'
26
+ spec.add_runtime_dependency 'aws-sdk', '~> 3'
26
27
  spec.add_runtime_dependency 'dry-inflector'
27
28
  spec.add_runtime_dependency 'ipaddress'
28
29
  spec.add_runtime_dependency 'rspec', '~> 3.0'
29
30
  spec.add_runtime_dependency 'rspec-its'
30
31
  spec.add_runtime_dependency 'term-ansicolor'
31
32
  spec.add_runtime_dependency 'thor'
32
- spec.add_runtime_dependency 'addressable'
33
33
  spec.add_development_dependency 'bundler', '>= 1.9', '< 3.0'
34
34
  spec.add_development_dependency 'octorelease'
35
35
  spec.add_development_dependency 'pry'
36
36
  spec.add_development_dependency 'rake', '~> 12.0'
37
- spec.add_development_dependency 'rubocop', '~> 0.49.0'
37
+ spec.add_development_dependency 'rubocop'
38
38
  end
data/bin/console CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'awspec'
data/bin/toolbox CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'awspec'
4
5
 
@@ -21,6 +21,15 @@ describe cloudwatch_logs('my-cloudwatch-logs-group') do
21
21
  it { should have_metric_filter('my-cloudwatch-logs-metric-filter') }
22
22
  end
23
23
  ```
24
+ or
25
+ ```ruby
26
+ describe cloudwatch_logs('my-cloudwatch-logs-group') do
27
+ it do
28
+ should have_metric_filter('my-cloudwatch-logs-metric-filter')
29
+ .filter_pattern('[date, error]')
30
+ end
31
+ end
32
+ ```
24
33
 
25
34
  ### have_subscription_filter
26
35
 
@@ -5,6 +5,25 @@ describe eks_nodegroup('my-eks-nodegroup'), cluster: 'my-cluster' do
5
5
  it { should exist }
6
6
  end
7
7
  ```
8
+
9
+ ### have_security_group
10
+
11
+ ```ruby
12
+ describe eks_nodegroup('my-eks-nodegroup'), cluster: 'my-cluster' do
13
+ it { should have_security_group('sg-1a2b3cd4') }
14
+ end
15
+ ```
16
+
17
+ ### scaling_config
18
+
19
+ ```ruby
20
+ describe eks_nodegroup('my-eks-nodegroup'), cluster: 'my-cluster' do
21
+ its('scaling_config.min_size') { should eq 1 }
22
+ its('scaling_config.desired_size') { should eq 2 }
23
+ its('scaling_config.max_size') { should eq 3 }
24
+ end
25
+ ```
26
+
8
27
  ### be_active, be_creating
9
28
 
10
29
  ```ruby
@@ -12,3 +31,37 @@ describe eks('my-eks-nodegroup'), cluster: 'my-cluster' do
12
31
  it { should be_active }
13
32
  end
14
33
  ```
34
+
35
+ ### be_ready
36
+
37
+ This matcher *might* not be exactly you are expecting: it is different from what
38
+ you can see when looking at the AWS console at the Node Groups configuration
39
+ and check if the nodes Status is "Ready".
40
+
41
+ What you seeing over there is
42
+ [actually the same thing](https://aws.amazon.com/premiumsupport/knowledge-center/eks-node-status-ready/)
43
+ you would if using `kubectl`.
44
+
45
+ This matcher cannot do the same because it would involve using the Kubernetes
46
+ API: the AWS Ruby SDK currently doesn't expose this information.
47
+
48
+ What you can get from `be_ready` matcher is asserting that you have **at least**
49
+ the number of EC2 instances (the nodes in your EKS Node Group) are actually
50
+ in running state. It doesn't mean everything is fine, the node (EC2 instance)
51
+ can be running but without communication with the cluster or any order issue
52
+ regarding the Kubernetes configuration.
53
+
54
+ Although it might look an incomplete assertion, definitely the Node Group
55
+ "Status" won't be "Active" if the EC2 instances associated with it are not
56
+ running.
57
+
58
+ So, using this assertion like the sample below:
59
+
60
+ ```ruby
61
+ describe eks('my-eks-nodegroup'), cluster: 'my-cluster' do
62
+ it { should be_ready }
63
+ end
64
+ ```
65
+
66
+ Will pass if at least the minimum expected (see `scaling_config`) number of EC2
67
+ instances are running.