awspec-api_gateway_extended 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +12 -0
  3. data/.rubocop.yml +93 -0
  4. data/.tachikoma.yml +1 -0
  5. data/.travis.yml +21 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +191 -0
  9. data/Rakefile +64 -0
  10. data/awspec-logo.png +0 -0
  11. data/awspec.gemspec +40 -0
  12. data/bin/console +7 -0
  13. data/bin/setup +5 -0
  14. data/bin/toolbox +5 -0
  15. data/doc/_resource_types/acm.md +24 -0
  16. data/doc/_resource_types/alb.md +47 -0
  17. data/doc/_resource_types/alb_listener.md +29 -0
  18. data/doc/_resource_types/alb_target_group.md +35 -0
  19. data/doc/_resource_types/ami.md +19 -0
  20. data/doc/_resource_types/apigateway.md +7 -0
  21. data/doc/_resource_types/autoscaling_group.md +47 -0
  22. data/doc/_resource_types/batch_compute_environment.md +23 -0
  23. data/doc/_resource_types/batch_job_definition.md +7 -0
  24. data/doc/_resource_types/batch_job_queue.md +23 -0
  25. data/doc/_resource_types/cloudformation_stack.md +8 -0
  26. data/doc/_resource_types/cloudfront_distribution.md +67 -0
  27. data/doc/_resource_types/cloudtrail.md +47 -0
  28. data/doc/_resource_types/cloudwatch_alarm.md +39 -0
  29. data/doc/_resource_types/cloudwatch_logs.md +48 -0
  30. data/doc/_resource_types/codebuild.md +1 -0
  31. data/doc/_resource_types/codedeploy.md +1 -0
  32. data/doc/_resource_types/codedeploy_deployment_group.md +17 -0
  33. data/doc/_resource_types/customer_gateway.md +25 -0
  34. data/doc/_resource_types/directconnect_virtual_interface.md +30 -0
  35. data/doc/_resource_types/dynamodb_table.md +52 -0
  36. data/doc/_resource_types/ebs.md +49 -0
  37. data/doc/_resource_types/ec2.md +203 -0
  38. data/doc/_resource_types/ec2_account_attributes.md +8 -0
  39. data/doc/_resource_types/ecs_cluster.md +23 -0
  40. data/doc/_resource_types/ecs_container_instance.md +18 -0
  41. data/doc/_resource_types/ecs_service.md +15 -0
  42. data/doc/_resource_types/ecs_task_definition.md +15 -0
  43. data/doc/_resource_types/efs.md +15 -0
  44. data/doc/_resource_types/eip.md +23 -0
  45. data/doc/_resource_types/eks.md +14 -0
  46. data/doc/_resource_types/elasticache.md +57 -0
  47. data/doc/_resource_types/elasticache_cache_parameter_group.md +17 -0
  48. data/doc/_resource_types/elasticsearch.md +48 -0
  49. data/doc/_resource_types/elastictranscoder_pipeline.md +15 -0
  50. data/doc/_resource_types/elb.md +82 -0
  51. data/doc/_resource_types/emr.md +21 -0
  52. data/doc/_resource_types/firehose.md +31 -0
  53. data/doc/_resource_types/iam_group.md +94 -0
  54. data/doc/_resource_types/iam_policy.md +39 -0
  55. data/doc/_resource_types/iam_role.md +78 -0
  56. data/doc/_resource_types/iam_user.md +86 -0
  57. data/doc/_resource_types/internet_gateway.md +31 -0
  58. data/doc/_resource_types/kinesis.md +7 -0
  59. data/doc/_resource_types/kms.md +70 -0
  60. data/doc/_resource_types/lambda.md +40 -0
  61. data/doc/_resource_types/lambda_account_settings.md +10 -0
  62. data/doc/_resource_types/launch_configuration.md +15 -0
  63. data/doc/_resource_types/launch_template.md +48 -0
  64. data/doc/_resource_types/mq.md +33 -0
  65. data/doc/_resource_types/nat_gateway.md +39 -0
  66. data/doc/_resource_types/network_acl.md +61 -0
  67. data/doc/_resource_types/network_interface.md +66 -0
  68. data/doc/_resource_types/nlb.md +41 -0
  69. data/doc/_resource_types/nlb_listener.md +29 -0
  70. data/doc/_resource_types/nlb_target_group.md +35 -0
  71. data/doc/_resource_types/rds.md +100 -0
  72. data/doc/_resource_types/rds_account_attributes.md +8 -0
  73. data/doc/_resource_types/rds_db_cluster_parameter_group.md +16 -0
  74. data/doc/_resource_types/rds_db_parameter_group.md +15 -0
  75. data/doc/_resource_types/redshift.md +61 -0
  76. data/doc/_resource_types/redshift_cluster_parameter_group.md +17 -0
  77. data/doc/_resource_types/route53_hosted_zone.md +27 -0
  78. data/doc/_resource_types/route_table.md +60 -0
  79. data/doc/_resource_types/s3_bucket.md +158 -0
  80. data/doc/_resource_types/secretsmanager.md +15 -0
  81. data/doc/_resource_types/security_group.md +44 -0
  82. data/doc/_resource_types/ses_identity.md +17 -0
  83. data/doc/_resource_types/ses_send_quota.md +9 -0
  84. data/doc/_resource_types/sns_topic.md +134 -0
  85. data/doc/_resource_types/sqs.md +7 -0
  86. data/doc/_resource_types/ssm_parameter.md +33 -0
  87. data/doc/_resource_types/subnet.md +41 -0
  88. data/doc/_resource_types/vpc.md +88 -0
  89. data/doc/_resource_types/vpn_connection.md +25 -0
  90. data/doc/_resource_types/vpn_gateway.md +25 -0
  91. data/doc/_resource_types/waf_web_acl.md +29 -0
  92. data/doc/_resource_types/wafregional_web_acl.md +29 -0
  93. data/doc/contributing.md +45 -0
  94. data/doc/resource_types.md +3860 -0
  95. data/exe/awspec +5 -0
  96. data/lib/awspec.rb +23 -0
  97. data/lib/awspec/cli.rb +25 -0
  98. data/lib/awspec/command/generate.rb +69 -0
  99. data/lib/awspec/config.rb +41 -0
  100. data/lib/awspec/error.rb +32 -0
  101. data/lib/awspec/ext.rb +4 -0
  102. data/lib/awspec/ext/array.rb +8 -0
  103. data/lib/awspec/ext/hash.rb +10 -0
  104. data/lib/awspec/ext/string.rb +17 -0
  105. data/lib/awspec/ext/struct.rb +8 -0
  106. data/lib/awspec/generator.rb +55 -0
  107. data/lib/awspec/generator/doc/type.rb +60 -0
  108. data/lib/awspec/generator/doc/type/account.rb +71 -0
  109. data/lib/awspec/generator/doc/type/account_attribute.rb +69 -0
  110. data/lib/awspec/generator/doc/type/account_attribute_base.rb +32 -0
  111. data/lib/awspec/generator/doc/type/acm.rb +19 -0
  112. data/lib/awspec/generator/doc/type/alb.rb +21 -0
  113. data/lib/awspec/generator/doc/type/alb_listener.rb +18 -0
  114. data/lib/awspec/generator/doc/type/alb_target_group.rb +17 -0
  115. data/lib/awspec/generator/doc/type/ami.rb +19 -0
  116. data/lib/awspec/generator/doc/type/apigateway.rb +17 -0
  117. data/lib/awspec/generator/doc/type/autoscaling_group.rb +16 -0
  118. data/lib/awspec/generator/doc/type/base.rb +99 -0
  119. data/lib/awspec/generator/doc/type/batch_compute_environment.rb +23 -0
  120. data/lib/awspec/generator/doc/type/batch_job_definition.rb +17 -0
  121. data/lib/awspec/generator/doc/type/batch_job_queue.rb +17 -0
  122. data/lib/awspec/generator/doc/type/cloudformation_stack.rb +17 -0
  123. data/lib/awspec/generator/doc/type/cloudfront_distribution.rb +20 -0
  124. data/lib/awspec/generator/doc/type/cloudtrail.rb +17 -0
  125. data/lib/awspec/generator/doc/type/cloudwatch_alarm.rb +17 -0
  126. data/lib/awspec/generator/doc/type/cloudwatch_event.rb +17 -0
  127. data/lib/awspec/generator/doc/type/cloudwatch_logs.rb +17 -0
  128. data/lib/awspec/generator/doc/type/codebuild.rb +17 -0
  129. data/lib/awspec/generator/doc/type/codedeploy.rb +17 -0
  130. data/lib/awspec/generator/doc/type/codedeploy_deployment_group.rb +17 -0
  131. data/lib/awspec/generator/doc/type/customer_gateway.rb +19 -0
  132. data/lib/awspec/generator/doc/type/directconnect_virtual_interface.rb +21 -0
  133. data/lib/awspec/generator/doc/type/dynamodb_table.rb +19 -0
  134. data/lib/awspec/generator/doc/type/ebs.rb +19 -0
  135. data/lib/awspec/generator/doc/type/ec2.rb +21 -0
  136. data/lib/awspec/generator/doc/type/ec2_account_attributes.rb +17 -0
  137. data/lib/awspec/generator/doc/type/ecr_repository.rb +15 -0
  138. data/lib/awspec/generator/doc/type/ecs_cluster.rb +19 -0
  139. data/lib/awspec/generator/doc/type/ecs_container_instance.rb +19 -0
  140. data/lib/awspec/generator/doc/type/ecs_service.rb +19 -0
  141. data/lib/awspec/generator/doc/type/ecs_task_definition.rb +19 -0
  142. data/lib/awspec/generator/doc/type/efs.rb +17 -0
  143. data/lib/awspec/generator/doc/type/eip.rb +17 -0
  144. data/lib/awspec/generator/doc/type/eks.rb +20 -0
  145. data/lib/awspec/generator/doc/type/elasticache.rb +22 -0
  146. data/lib/awspec/generator/doc/type/elasticache_cache_parameter_group.rb +17 -0
  147. data/lib/awspec/generator/doc/type/elasticsearch.rb +17 -0
  148. data/lib/awspec/generator/doc/type/elastictranscoder_pipeline.rb +21 -0
  149. data/lib/awspec/generator/doc/type/elb.rb +21 -0
  150. data/lib/awspec/generator/doc/type/emr.rb +19 -0
  151. data/lib/awspec/generator/doc/type/firehose.rb +17 -0
  152. data/lib/awspec/generator/doc/type/iam_group.rb +17 -0
  153. data/lib/awspec/generator/doc/type/iam_policy.rb +17 -0
  154. data/lib/awspec/generator/doc/type/iam_role.rb +17 -0
  155. data/lib/awspec/generator/doc/type/iam_user.rb +17 -0
  156. data/lib/awspec/generator/doc/type/internet_gateway.rb +17 -0
  157. data/lib/awspec/generator/doc/type/kinesis.rb +17 -0
  158. data/lib/awspec/generator/doc/type/kms.rb +17 -0
  159. data/lib/awspec/generator/doc/type/lambda.rb +17 -0
  160. data/lib/awspec/generator/doc/type/lambda_account_settings.rb +17 -0
  161. data/lib/awspec/generator/doc/type/launch_configuration.rb +17 -0
  162. data/lib/awspec/generator/doc/type/launch_template.rb +17 -0
  163. data/lib/awspec/generator/doc/type/mq.rb +19 -0
  164. data/lib/awspec/generator/doc/type/nat_gateway.rb +20 -0
  165. data/lib/awspec/generator/doc/type/network_acl.rb +20 -0
  166. data/lib/awspec/generator/doc/type/network_interface.rb +21 -0
  167. data/lib/awspec/generator/doc/type/nlb.rb +20 -0
  168. data/lib/awspec/generator/doc/type/nlb_listener.rb +18 -0
  169. data/lib/awspec/generator/doc/type/nlb_target_group.rb +17 -0
  170. data/lib/awspec/generator/doc/type/rds.rb +22 -0
  171. data/lib/awspec/generator/doc/type/rds_account_attributes.rb +17 -0
  172. data/lib/awspec/generator/doc/type/rds_db_cluster_parameter_group.rb +15 -0
  173. data/lib/awspec/generator/doc/type/rds_db_parameter_group.rb +15 -0
  174. data/lib/awspec/generator/doc/type/redshift.rb +21 -0
  175. data/lib/awspec/generator/doc/type/redshift_cluster_parameter_group.rb +17 -0
  176. data/lib/awspec/generator/doc/type/route53_hosted_zone.rb +16 -0
  177. data/lib/awspec/generator/doc/type/route_table.rb +16 -0
  178. data/lib/awspec/generator/doc/type/s3_bucket.rb +16 -0
  179. data/lib/awspec/generator/doc/type/secretsmanager.rb +17 -0
  180. data/lib/awspec/generator/doc/type/security_group.rb +16 -0
  181. data/lib/awspec/generator/doc/type/ses_identity.rb +22 -0
  182. data/lib/awspec/generator/doc/type/ses_send_quota.rb +17 -0
  183. data/lib/awspec/generator/doc/type/sns_topic.rb +18 -0
  184. data/lib/awspec/generator/doc/type/sqs.rb +17 -0
  185. data/lib/awspec/generator/doc/type/ssm_parameter.rb +17 -0
  186. data/lib/awspec/generator/doc/type/subnet.rb +18 -0
  187. data/lib/awspec/generator/doc/type/vpc.rb +19 -0
  188. data/lib/awspec/generator/doc/type/vpn_connection.rb +19 -0
  189. data/lib/awspec/generator/doc/type/vpn_gateway.rb +19 -0
  190. data/lib/awspec/generator/doc/type/waf_web_acl.rb +17 -0
  191. data/lib/awspec/generator/doc/type/wafregional_web_acl.rb +17 -0
  192. data/lib/awspec/generator/spec/acm.rb +43 -0
  193. data/lib/awspec/generator/spec/alb.rb +38 -0
  194. data/lib/awspec/generator/spec/alb_listener.rb +110 -0
  195. data/lib/awspec/generator/spec/autoscaling_group.rb +56 -0
  196. data/lib/awspec/generator/spec/cloudwatch_alarm.rb +43 -0
  197. data/lib/awspec/generator/spec/cloudwatch_event.rb +27 -0
  198. data/lib/awspec/generator/spec/cloudwatch_logs.rb +68 -0
  199. data/lib/awspec/generator/spec/codebuild.rb +23 -0
  200. data/lib/awspec/generator/spec/directconnect.rb +33 -0
  201. data/lib/awspec/generator/spec/ebs.rb +55 -0
  202. data/lib/awspec/generator/spec/ec2.rb +82 -0
  203. data/lib/awspec/generator/spec/efs.rb +28 -0
  204. data/lib/awspec/generator/spec/eip.rb +30 -0
  205. data/lib/awspec/generator/spec/elasticsearch.rb +41 -0
  206. data/lib/awspec/generator/spec/elb.rb +59 -0
  207. data/lib/awspec/generator/spec/iam_group.rb +39 -0
  208. data/lib/awspec/generator/spec/iam_policy.rb +56 -0
  209. data/lib/awspec/generator/spec/iam_role.rb +39 -0
  210. data/lib/awspec/generator/spec/iam_user.rb +39 -0
  211. data/lib/awspec/generator/spec/internet_gateway.rb +35 -0
  212. data/lib/awspec/generator/spec/kms.rb +34 -0
  213. data/lib/awspec/generator/spec/lambda.rb +29 -0
  214. data/lib/awspec/generator/spec/nat_gateway.rb +39 -0
  215. data/lib/awspec/generator/spec/network_acl.rb +96 -0
  216. data/lib/awspec/generator/spec/network_interface.rb +80 -0
  217. data/lib/awspec/generator/spec/nlb.rb +38 -0
  218. data/lib/awspec/generator/spec/nlb_listener.rb +110 -0
  219. data/lib/awspec/generator/spec/rds.rb +62 -0
  220. data/lib/awspec/generator/spec/rds_db_cluster_parameter_group.rb +23 -0
  221. data/lib/awspec/generator/spec/rds_db_parameter_group.rb +23 -0
  222. data/lib/awspec/generator/spec/redshift.rb +65 -0
  223. data/lib/awspec/generator/spec/redshift_cluster_parameter_group.rb +23 -0
  224. data/lib/awspec/generator/spec/route53_hosted_zone.rb +72 -0
  225. data/lib/awspec/generator/spec/route_table.rb +128 -0
  226. data/lib/awspec/generator/spec/s3_bucket.rb +124 -0
  227. data/lib/awspec/generator/spec/security_group.rb +95 -0
  228. data/lib/awspec/generator/spec/subnet.rb +47 -0
  229. data/lib/awspec/generator/spec/vpc.rb +65 -0
  230. data/lib/awspec/generator/template.rb +145 -0
  231. data/lib/awspec/helper.rb +8 -0
  232. data/lib/awspec/helper/client_wrap.rb +49 -0
  233. data/lib/awspec/helper/color.rb +5 -0
  234. data/lib/awspec/helper/finder.rb +168 -0
  235. data/lib/awspec/helper/finder/account_attributes.rb +61 -0
  236. data/lib/awspec/helper/finder/acm.rb +40 -0
  237. data/lib/awspec/helper/finder/alb.rb +68 -0
  238. data/lib/awspec/helper/finder/ami.rb +22 -0
  239. data/lib/awspec/helper/finder/apigateway.rb +35 -0
  240. data/lib/awspec/helper/finder/autoscaling.rb +60 -0
  241. data/lib/awspec/helper/finder/batch.rb +20 -0
  242. data/lib/awspec/helper/finder/cloudformation.rb +12 -0
  243. data/lib/awspec/helper/finder/cloudfront.rb +21 -0
  244. data/lib/awspec/helper/finder/cloudtrail.rb +29 -0
  245. data/lib/awspec/helper/finder/cloudwatch.rb +33 -0
  246. data/lib/awspec/helper/finder/cloudwatch_event.rb +15 -0
  247. data/lib/awspec/helper/finder/cloudwatch_logs.rb +93 -0
  248. data/lib/awspec/helper/finder/codebuild.rb +24 -0
  249. data/lib/awspec/helper/finder/codedeploy.rb +15 -0
  250. data/lib/awspec/helper/finder/directconnect.rb +19 -0
  251. data/lib/awspec/helper/finder/dynamodb.rb +10 -0
  252. data/lib/awspec/helper/finder/ebs.rb +43 -0
  253. data/lib/awspec/helper/finder/ec2.rb +203 -0
  254. data/lib/awspec/helper/finder/ecr.rb +10 -0
  255. data/lib/awspec/helper/finder/ecs.rb +45 -0
  256. data/lib/awspec/helper/finder/efs.rb +63 -0
  257. data/lib/awspec/helper/finder/eks.rb +10 -0
  258. data/lib/awspec/helper/finder/elasticache.rb +21 -0
  259. data/lib/awspec/helper/finder/elasticsearch.rb +19 -0
  260. data/lib/awspec/helper/finder/elastictranscoder.rb +21 -0
  261. data/lib/awspec/helper/finder/elb.rb +37 -0
  262. data/lib/awspec/helper/finder/emr.rb +9 -0
  263. data/lib/awspec/helper/finder/firehose.rb +13 -0
  264. data/lib/awspec/helper/finder/iam.rb +118 -0
  265. data/lib/awspec/helper/finder/kinesis.rb +14 -0
  266. data/lib/awspec/helper/finder/kms.rb +38 -0
  267. data/lib/awspec/helper/finder/lambda.rb +35 -0
  268. data/lib/awspec/helper/finder/mq.rb +11 -0
  269. data/lib/awspec/helper/finder/nlb.rb +68 -0
  270. data/lib/awspec/helper/finder/rds.rb +59 -0
  271. data/lib/awspec/helper/finder/redshift.rb +37 -0
  272. data/lib/awspec/helper/finder/route53.rb +41 -0
  273. data/lib/awspec/helper/finder/s3.rb +80 -0
  274. data/lib/awspec/helper/finder/secretsmanager.rb +11 -0
  275. data/lib/awspec/helper/finder/security_group.rb +35 -0
  276. data/lib/awspec/helper/finder/ses.rb +13 -0
  277. data/lib/awspec/helper/finder/sns_topic.rb +82 -0
  278. data/lib/awspec/helper/finder/sqs.rb +17 -0
  279. data/lib/awspec/helper/finder/ssm_parameter.rb +32 -0
  280. data/lib/awspec/helper/finder/subnet.rb +29 -0
  281. data/lib/awspec/helper/finder/vpc.rb +115 -0
  282. data/lib/awspec/helper/finder/waf.rb +53 -0
  283. data/lib/awspec/helper/finder/wafregional.rb +53 -0
  284. data/lib/awspec/helper/type.rb +72 -0
  285. data/lib/awspec/matcher.rb +85 -0
  286. data/lib/awspec/matcher/be_allowed.rb +25 -0
  287. data/lib/awspec/matcher/be_allowed_action.rb +19 -0
  288. data/lib/awspec/matcher/be_attached_to.rb +19 -0
  289. data/lib/awspec/matcher/be_connected_to_vpc.rb +13 -0
  290. data/lib/awspec/matcher/be_denied.rb +25 -0
  291. data/lib/awspec/matcher/be_opened.rb +17 -0
  292. data/lib/awspec/matcher/be_opened_only.rb +17 -0
  293. data/lib/awspec/matcher/belong_to_alb.rb +8 -0
  294. data/lib/awspec/matcher/belong_to_cache_subnet_group.rb +5 -0
  295. data/lib/awspec/matcher/belong_to_cluster_subnet_group.rb +5 -0
  296. data/lib/awspec/matcher/belong_to_db_subnet_group.rb +5 -0
  297. data/lib/awspec/matcher/belong_to_domain.rb +5 -0
  298. data/lib/awspec/matcher/belong_to_iam_group.rb +8 -0
  299. data/lib/awspec/matcher/belong_to_metric.rb +13 -0
  300. data/lib/awspec/matcher/belong_to_nlb.rb +8 -0
  301. data/lib/awspec/matcher/belong_to_replication_group.rb +6 -0
  302. data/lib/awspec/matcher/belong_to_subnet.rb +31 -0
  303. data/lib/awspec/matcher/belong_to_vpc.rb +8 -0
  304. data/lib/awspec/matcher/have_attribute_definition.rb +9 -0
  305. data/lib/awspec/matcher/have_cluster_parameter_group.rb +9 -0
  306. data/lib/awspec/matcher/have_custom_response_error_code.rb +21 -0
  307. data/lib/awspec/matcher/have_db_parameter_group.rb +9 -0
  308. data/lib/awspec/matcher/have_env_var.rb +9 -0
  309. data/lib/awspec/matcher/have_env_var_value.rb +18 -0
  310. data/lib/awspec/matcher/have_env_vars.rb +5 -0
  311. data/lib/awspec/matcher/have_inline_policy.rb +9 -0
  312. data/lib/awspec/matcher/have_key_policy.rb +9 -0
  313. data/lib/awspec/matcher/have_key_schema.rb +9 -0
  314. data/lib/awspec/matcher/have_network_interface.rb +15 -0
  315. data/lib/awspec/matcher/have_option_group.rb +9 -0
  316. data/lib/awspec/matcher/have_origin.rb +21 -0
  317. data/lib/awspec/matcher/have_private_ip_address.rb +9 -0
  318. data/lib/awspec/matcher/have_record_set.rb +41 -0
  319. data/lib/awspec/matcher/have_route.rb +34 -0
  320. data/lib/awspec/matcher/have_rule.rb +36 -0
  321. data/lib/awspec/matcher/have_subscription_attributes.rb +16 -0
  322. data/lib/awspec/matcher/have_subscription_filter.rb +9 -0
  323. data/lib/awspec/matcher/have_tag.rb +13 -0
  324. data/lib/awspec/matcher/have_vpc_peering_connection.rb +13 -0
  325. data/lib/awspec/matcher/include_subscribed.rb +5 -0
  326. data/lib/awspec/resource_reader.rb +58 -0
  327. data/lib/awspec/setup.rb +84 -0
  328. data/lib/awspec/shared_context.rb +37 -0
  329. data/lib/awspec/stub.rb +7 -0
  330. data/lib/awspec/stub/account.rb +147 -0
  331. data/lib/awspec/stub/acm.rb +34 -0
  332. data/lib/awspec/stub/alb.rb +261 -0
  333. data/lib/awspec/stub/alb_listener.rb +307 -0
  334. data/lib/awspec/stub/alb_target_group.rb +325 -0
  335. data/lib/awspec/stub/ami.rb +58 -0
  336. data/lib/awspec/stub/apigateway.rb +114 -0
  337. data/lib/awspec/stub/autoscaling_group.rb +241 -0
  338. data/lib/awspec/stub/batch_compute_environment.rb +40 -0
  339. data/lib/awspec/stub/batch_job_definition.rb +28 -0
  340. data/lib/awspec/stub/batch_job_queue.rb +22 -0
  341. data/lib/awspec/stub/cloudformation_stack.rb +49 -0
  342. data/lib/awspec/stub/cloudfront_distribution.rb +230 -0
  343. data/lib/awspec/stub/cloudtrail.rb +35 -0
  344. data/lib/awspec/stub/cloudwatch_alarm.rb +40 -0
  345. data/lib/awspec/stub/cloudwatch_event.rb +15 -0
  346. data/lib/awspec/stub/cloudwatch_logs.rb +41 -0
  347. data/lib/awspec/stub/codebuild.rb +10 -0
  348. data/lib/awspec/stub/codedeploy.rb +12 -0
  349. data/lib/awspec/stub/codedeploy_deployment_group.rb +39 -0
  350. data/lib/awspec/stub/customer_gateway.rb +16 -0
  351. data/lib/awspec/stub/directconnect_virtual_interface.rb +25 -0
  352. data/lib/awspec/stub/duplicated_resource_type.rb +26 -0
  353. data/lib/awspec/stub/dynamodb_table.rb +34 -0
  354. data/lib/awspec/stub/ebs.rb +67 -0
  355. data/lib/awspec/stub/ec2.rb +235 -0
  356. data/lib/awspec/stub/ec2_has_multi_security_groups.rb +21 -0
  357. data/lib/awspec/stub/ecr_repository.rb +13 -0
  358. data/lib/awspec/stub/ecs.rb +199 -0
  359. data/lib/awspec/stub/ecs_cluster.rb +99 -0
  360. data/lib/awspec/stub/ecs_container_instance.rb +78 -0
  361. data/lib/awspec/stub/ecs_service.rb +51 -0
  362. data/lib/awspec/stub/ecs_task_definition.rb +58 -0
  363. data/lib/awspec/stub/efs.rb +43 -0
  364. data/lib/awspec/stub/eip.rb +13 -0
  365. data/lib/awspec/stub/eks.rb +28 -0
  366. data/lib/awspec/stub/elasticache.rb +91 -0
  367. data/lib/awspec/stub/elasticache_cache_parameter_group.rb +28 -0
  368. data/lib/awspec/stub/elasticsearch.rb +52 -0
  369. data/lib/awspec/stub/elastictranscoder_pipeline.rb +63 -0
  370. data/lib/awspec/stub/elb.rb +166 -0
  371. data/lib/awspec/stub/emr.rb +65 -0
  372. data/lib/awspec/stub/firehose.rb +24 -0
  373. data/lib/awspec/stub/iam_group.rb +90 -0
  374. data/lib/awspec/stub/iam_policy.rb +70 -0
  375. data/lib/awspec/stub/iam_role.rb +60 -0
  376. data/lib/awspec/stub/iam_user.rb +71 -0
  377. data/lib/awspec/stub/internet_gateway.rb +36 -0
  378. data/lib/awspec/stub/kinesis.rb +37 -0
  379. data/lib/awspec/stub/kms.rb +75 -0
  380. data/lib/awspec/stub/lambda.rb +47 -0
  381. data/lib/awspec/stub/launch_configuration.rb +56 -0
  382. data/lib/awspec/stub/launch_template.rb +16 -0
  383. data/lib/awspec/stub/mq.rb +111 -0
  384. data/lib/awspec/stub/nat_gateway.rb +41 -0
  385. data/lib/awspec/stub/network_acl.rb +97 -0
  386. data/lib/awspec/stub/network_interface.rb +144 -0
  387. data/lib/awspec/stub/nlb.rb +119 -0
  388. data/lib/awspec/stub/nlb_listener.rb +131 -0
  389. data/lib/awspec/stub/nlb_target_group.rb +187 -0
  390. data/lib/awspec/stub/rds.rb +106 -0
  391. data/lib/awspec/stub/rds_db_cluster_parameter_group.rb +20 -0
  392. data/lib/awspec/stub/rds_db_parameter_group.rb +20 -0
  393. data/lib/awspec/stub/redshift.rb +67 -0
  394. data/lib/awspec/stub/redshift_cluster_parameter_group.rb +20 -0
  395. data/lib/awspec/stub/route53_hosted_zone.rb +169 -0
  396. data/lib/awspec/stub/route_table.rb +207 -0
  397. data/lib/awspec/stub/s3_bucket.rb +135 -0
  398. data/lib/awspec/stub/secretsmanager.rb +36 -0
  399. data/lib/awspec/stub/security_group.rb +159 -0
  400. data/lib/awspec/stub/ses_identity.rb +41 -0
  401. data/lib/awspec/stub/sns_topic.rb +29 -0
  402. data/lib/awspec/stub/sqs.rb +30 -0
  403. data/lib/awspec/stub/ssm_parameter.rb +16 -0
  404. data/lib/awspec/stub/subnet.rb +33 -0
  405. data/lib/awspec/stub/vpc.rb +114 -0
  406. data/lib/awspec/stub/vpn_connection.rb +20 -0
  407. data/lib/awspec/stub/vpn_gateway.rb +15 -0
  408. data/lib/awspec/stub/waf_web_acl.rb +62 -0
  409. data/lib/awspec/stub/wafregional_web_acl.rb +62 -0
  410. data/lib/awspec/toolbox.rb +18 -0
  411. data/lib/awspec/type/account.rb +39 -0
  412. data/lib/awspec/type/account_attribute.rb +28 -0
  413. data/lib/awspec/type/account_attribute_base.rb +4 -0
  414. data/lib/awspec/type/acm.rb +41 -0
  415. data/lib/awspec/type/alb.rb +54 -0
  416. data/lib/awspec/type/alb_listener.rb +43 -0
  417. data/lib/awspec/type/alb_target_group.rb +22 -0
  418. data/lib/awspec/type/ami.rb +25 -0
  419. data/lib/awspec/type/apigateway.rb +65 -0
  420. data/lib/awspec/type/autoscaling_group.rb +54 -0
  421. data/lib/awspec/type/base.rb +63 -0
  422. data/lib/awspec/type/batch_compute_environment.rb +32 -0
  423. data/lib/awspec/type/batch_job_definition.rb +16 -0
  424. data/lib/awspec/type/batch_job_queue.rb +31 -0
  425. data/lib/awspec/type/cloudformation_stack.rb +11 -0
  426. data/lib/awspec/type/cloudfront_distribution.rb +60 -0
  427. data/lib/awspec/type/cloudtrail.rb +35 -0
  428. data/lib/awspec/type/cloudwatch_alarm.rb +23 -0
  429. data/lib/awspec/type/cloudwatch_event.rb +19 -0
  430. data/lib/awspec/type/cloudwatch_logs.rb +37 -0
  431. data/lib/awspec/type/codebuild.rb +11 -0
  432. data/lib/awspec/type/codedeploy.rb +11 -0
  433. data/lib/awspec/type/codedeploy_deployment_group.rb +33 -0
  434. data/lib/awspec/type/customer_gateway.rb +40 -0
  435. data/lib/awspec/type/directconnect_virtual_interface.rb +27 -0
  436. data/lib/awspec/type/dynamodb_table.rb +40 -0
  437. data/lib/awspec/type/ebs.rb +37 -0
  438. data/lib/awspec/type/ec2.rb +154 -0
  439. data/lib/awspec/type/ec2_account_attributes.rb +7 -0
  440. data/lib/awspec/type/ecr_repository.rb +18 -0
  441. data/lib/awspec/type/ecs_cluster.rb +46 -0
  442. data/lib/awspec/type/ecs_container_instance.rb +30 -0
  443. data/lib/awspec/type/ecs_service.rb +29 -0
  444. data/lib/awspec/type/ecs_task_definition.rb +24 -0
  445. data/lib/awspec/type/efs.rb +22 -0
  446. data/lib/awspec/type/eip.rb +16 -0
  447. data/lib/awspec/type/eks.rb +24 -0
  448. data/lib/awspec/type/elasticache.rb +68 -0
  449. data/lib/awspec/type/elasticache_cache_parameter_group.rb +42 -0
  450. data/lib/awspec/type/elasticsearch.rb +23 -0
  451. data/lib/awspec/type/elastictranscoder_pipeline.rb +21 -0
  452. data/lib/awspec/type/elb.rb +94 -0
  453. data/lib/awspec/type/emr.rb +40 -0
  454. data/lib/awspec/type/firehose.rb +30 -0
  455. data/lib/awspec/type/iam_group.rb +48 -0
  456. data/lib/awspec/type/iam_policy.rb +60 -0
  457. data/lib/awspec/type/iam_role.rb +38 -0
  458. data/lib/awspec/type/iam_user.rb +38 -0
  459. data/lib/awspec/type/internet_gateway.rb +20 -0
  460. data/lib/awspec/type/kinesis.rb +73 -0
  461. data/lib/awspec/type/kms.rb +21 -0
  462. data/lib/awspec/type/lambda.rb +23 -0
  463. data/lib/awspec/type/lambda_account_settings.rb +7 -0
  464. data/lib/awspec/type/launch_configuration.rb +28 -0
  465. data/lib/awspec/type/launch_template.rb +34 -0
  466. data/lib/awspec/type/mq.rb +57 -0
  467. data/lib/awspec/type/nat_gateway.rb +29 -0
  468. data/lib/awspec/type/network_acl.rb +117 -0
  469. data/lib/awspec/type/network_interface.rb +56 -0
  470. data/lib/awspec/type/nlb.rb +35 -0
  471. data/lib/awspec/type/nlb_listener.rb +43 -0
  472. data/lib/awspec/type/nlb_target_group.rb +22 -0
  473. data/lib/awspec/type/rds.rb +109 -0
  474. data/lib/awspec/type/rds_account_attributes.rb +7 -0
  475. data/lib/awspec/type/rds_db_cluster_parameter_group.rb +21 -0
  476. data/lib/awspec/type/rds_db_parameter_group.rb +21 -0
  477. data/lib/awspec/type/redshift.rb +88 -0
  478. data/lib/awspec/type/redshift_cluster_parameter_group.rb +20 -0
  479. data/lib/awspec/type/resource_base.rb +24 -0
  480. data/lib/awspec/type/route53_hosted_zone.rb +65 -0
  481. data/lib/awspec/type/route_table.rb +84 -0
  482. data/lib/awspec/type/s3_bucket.rb +139 -0
  483. data/lib/awspec/type/secretsmanager.rb +14 -0
  484. data/lib/awspec/type/security_group.rb +148 -0
  485. data/lib/awspec/type/ses_identity.rb +70 -0
  486. data/lib/awspec/type/ses_send_quota.rb +7 -0
  487. data/lib/awspec/type/sns_topic.rb +50 -0
  488. data/lib/awspec/type/sqs.rb +37 -0
  489. data/lib/awspec/type/ssm_parameter.rb +26 -0
  490. data/lib/awspec/type/subnet.rb +39 -0
  491. data/lib/awspec/type/vpc.rb +66 -0
  492. data/lib/awspec/type/vpn_connection.rb +40 -0
  493. data/lib/awspec/type/vpn_gateway.rb +40 -0
  494. data/lib/awspec/type/waf_web_acl.rb +24 -0
  495. data/lib/awspec/type/wafregional_web_acl.rb +24 -0
  496. data/lib/awspec/version.rb +3 -0
  497. metadata +744 -0
@@ -0,0 +1,61 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module AccountAttributes
4
+ def find_ec2_account_attributes
5
+ attributes = {}
6
+ ec2_client.describe_account_attributes.account_attributes.each do |attr|
7
+ values = attr[:attribute_values].map do |v|
8
+ v[:attribute_value]
9
+ end
10
+ if attr[:attribute_name] == 'supported-platforms'
11
+ # supported-platforms
12
+ attributes[attr[:attribute_name].tr('-', '_').to_sym] = values
13
+ else
14
+ value = values.first
15
+ if value =~ /\A\d+\z/
16
+ attributes[attr[:attribute_name].tr('-', '_').to_sym] = value.to_i
17
+ else
18
+ attributes[attr[:attribute_name].tr('-', '_').to_sym] = value
19
+ end
20
+ end
21
+ end
22
+ attributes.to_struct
23
+ end
24
+
25
+ def find_rds_account_attributes
26
+ attributes = {}
27
+ rds_client.describe_account_attributes.account_quotas.each do |attr|
28
+ values = {
29
+ used: attr[:used],
30
+ max: attr[:max]
31
+ }
32
+ attributes[attr[:account_quota_name].to_sym] = values.to_struct
33
+ end
34
+ attributes.to_struct
35
+ end
36
+
37
+ def find_lambda_account_settings
38
+ attributes = {}
39
+ settings = lambda_client.get_account_settings
40
+ settings.account_limit.members.each do |key|
41
+ attributes[key] = { limit: settings.account_limit[key] }
42
+ end
43
+ settings.account_usage.members.each do |key|
44
+ if attributes.include?(key)
45
+ attributes[key][:usage] = settings.account_usage[key]
46
+ else
47
+ attributes[key] = { usage: settings.account_usage[key] }
48
+ end
49
+ end
50
+ attributes.to_struct
51
+ end
52
+
53
+ def find_ses_send_quota
54
+ ses_client.get_send_quota
55
+ rescue
56
+ # Aws::Errors::NoSuchEndpointError
57
+ nil
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,40 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module Acm
4
+ def find_certificate(id)
5
+ selected = []
6
+ loop do
7
+ req = {}
8
+ res = acm_client.list_certificates(req)
9
+ selected += res.certificate_summary_list.select do |c|
10
+ c.certificate_arn == id || c.domain_name == id
11
+ end
12
+ break if res.next_token.nil?
13
+ req[:next_token] = res.next_token
14
+ end
15
+
16
+ cert = selected.single_resource(id)
17
+ acm_client.describe_certificate({ certificate_arn: cert.certificate_arn }).certificate
18
+ end
19
+
20
+ def select_all_certificates
21
+ certs = []
22
+ loop do
23
+ req = {}
24
+ res = acm_client.list_certificates(req)
25
+ res.certificate_summary_list.each do |c|
26
+ certs << c.certificate_arn
27
+ end
28
+ break if res.next_token.nil?
29
+ req[:next_token] = res.next_token
30
+ end
31
+
32
+ certificates = []
33
+ certs.each do |cert|
34
+ certificates << acm_client.describe_certificate({ certificate_arn: cert }).certificate
35
+ end
36
+ certificates
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,68 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module Alb
4
+ def find_alb(id)
5
+ res = elbv2_client.describe_load_balancers({ names: [id] })
6
+ res.load_balancers.select do |lb|
7
+ lb.type == 'application'
8
+ end.single_resource(id)
9
+ rescue Aws::ElasticLoadBalancingV2::Errors::LoadBalancerNotFound
10
+ return nil
11
+ end
12
+
13
+ def select_alb_by_vpc_id(vpc_id)
14
+ res = elbv2_client.describe_load_balancers
15
+ res.load_balancers.select do |lb|
16
+ lb.vpc_id == vpc_id && lb.type == 'application'
17
+ end
18
+ end
19
+
20
+ def find_alb_listener(arn)
21
+ res = elbv2_client.describe_listeners({ listener_arns: [arn] })
22
+ res.listeners.single_resource(arn)
23
+ rescue StandardError
24
+ return nil
25
+ end
26
+
27
+ def select_alb_listener_by_alb_arn(arn)
28
+ selected = []
29
+ next_marker = nil
30
+ loop do
31
+ res = elbv2_client.describe_listeners({ marker: next_marker, load_balancer_arn: arn })
32
+ selected += res.listeners unless res.nil?
33
+ (res.nil? && next_marker = res.next_marker) || break
34
+ end
35
+ selected
36
+ end
37
+
38
+ def find_alb_target_group(id)
39
+ res = elbv2_client.describe_target_groups({ names: [id] })
40
+ res.target_groups.select do |tg|
41
+ %w(HTTP HTTPS).include?(tg.protocol)
42
+ end.single_resource(id)
43
+ rescue StandardError
44
+ return nil
45
+ end
46
+
47
+ def select_rule_by_alb_listener_id(id)
48
+ selected = []
49
+ next_marker = nil
50
+ loop do
51
+ res = elbv2_client.describe_rules(marker: next_marker, listener_arn: id)
52
+ selected += res.rules unless res.nil?
53
+ (res.nil? && next_marker = res.next_marker) || break
54
+ end
55
+ selected
56
+ end
57
+
58
+ def select_all_alb_tags(id)
59
+ res = elbv2_client.describe_tags({ resource_arns: [id] })
60
+ res.tag_descriptions.select do |resource|
61
+ resource.resource_arn == id
62
+ end.first.tags
63
+ rescue StandardError
64
+ return nil
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,22 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module Ami
4
+ def find_ami(image_id)
5
+ res = ec2_client.describe_images({
6
+ filters: [{ name: 'image-id', values: [image_id] }]
7
+ })
8
+ resource = res.images.single_resource(image_id)
9
+ return resource if resource
10
+ res = ec2_client.describe_images({
11
+ filters: [{ name: 'name', values: [image_id] }]
12
+ })
13
+ resource = res.images.single_resource(image_id)
14
+ return resource if resource
15
+ res = ec2_client.describe_images({
16
+ filters: [{ name: 'tag:Name', values: [image_id] }]
17
+ })
18
+ res.images.single_resource(image_id)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,35 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module Apigateway
4
+ def find_apigateway_by_id(id)
5
+ apis = []
6
+ apigateway_client.get_rest_apis(limit: 500).each do |response|
7
+ apis += response.items
8
+ end
9
+ apis.each do |api|
10
+ return api if api.id == id
11
+ end
12
+ nil
13
+ end
14
+
15
+ def find_apigateway_by_name(name)
16
+ apis = []
17
+ apigateway_client.get_rest_apis(limit: 500).each do |response|
18
+ apis += response.items
19
+ end
20
+ apis.each do |api|
21
+ return api if api.name == name
22
+ end
23
+ nil
24
+ end
25
+
26
+ def find_api_resources_by_id(api_id)
27
+ all_resources = []
28
+ apigateway_client.get_resources(rest_api_id: api_id, limit: 500, embed: ['methods']).each do |response|
29
+ all_resources += response.items
30
+ end
31
+ all_resources != [] ? all_resources : nil
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,60 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module Autoscaling
4
+ def find_autoscaling_group(id)
5
+ res = autoscaling_client.describe_auto_scaling_groups({
6
+ auto_scaling_group_names: [id]
7
+ })
8
+ res.auto_scaling_groups.single_resource(id)
9
+ end
10
+
11
+ def find_launch_configuration(id)
12
+ res = autoscaling_client.describe_launch_configurations({
13
+ launch_configuration_names: [id]
14
+ })
15
+ res.launch_configurations.single_resource(id)
16
+ end
17
+
18
+ def select_alb_target_group_by_autoscaling_group_name(name)
19
+ res = autoscaling_client.describe_load_balancer_target_groups({
20
+ auto_scaling_group_name: name
21
+ })
22
+ res.load_balancer_target_groups
23
+ end
24
+
25
+ def select_lb_target_group_by_autoscaling_group_name(name)
26
+ res = autoscaling_client.describe_load_balancer_target_groups({
27
+ auto_scaling_group_name: name
28
+ })
29
+ res.load_balancer_target_groups
30
+ end
31
+
32
+ def find_block_device_mapping(id, device_id)
33
+ ret = find_launch_configuration(id).block_device_mappings.select do |device|
34
+ next true if device.device_name == device_id
35
+ next true if device.virtual_name == device_id
36
+ end
37
+ ret.single_resource(device_id)
38
+ end
39
+
40
+ def select_autoscaling_group_by_vpc_id(vpc_id)
41
+ subnets = []
42
+ select_subnet_by_vpc_id(vpc_id).each { |subnet| subnets << subnet.subnet_id }
43
+ req = {}
44
+ selected = []
45
+ loop do
46
+ res = autoscaling_client.describe_auto_scaling_groups(req)
47
+ res.auto_scaling_groups.select do |auto_scaling_group|
48
+ vpc_zone_identifiers = auto_scaling_group.vpc_zone_identifier.split(',')
49
+ selected.push(auto_scaling_group) if vpc_zone_identifiers.any? do |vpc_zone_identifier|
50
+ subnets.include?(vpc_zone_identifier)
51
+ end
52
+ end
53
+ break if res.next_token.nil?
54
+ req[:next_token] = res.next_token
55
+ end
56
+ selected
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,20 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module Batch
4
+ def find_batch_compute_environment(name)
5
+ res = batch_client.describe_compute_environments(compute_environments: [name], max_results: 1)
6
+ res.compute_environments[0] if res.compute_environments
7
+ end
8
+
9
+ def find_batch_job_definition(name)
10
+ res = batch_client.describe_job_definitions(job_definitions: [name], max_results: 1)
11
+ res.job_definitions[0] if res.job_definitions
12
+ end
13
+
14
+ def find_batch_job_queue(name)
15
+ res = batch_client.describe_job_queues(job_queues: [name], max_results: 1)
16
+ res.job_queues[0] if res.job_queues
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,12 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module Cloudformation
4
+ def find_cloudformation_stack(id)
5
+ res = cloudformation_client.describe_stacks({
6
+ stack_name: id
7
+ })
8
+ res.stacks.single_resource(id)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,21 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module Cloudfront
4
+ def find_cloudfront_distribution(id)
5
+ selected = []
6
+ res = cloudfront_client.list_distributions
7
+ loop do
8
+ selected += res.distribution_list.items.select do |item|
9
+ item.id == id || item.domain_name == id
10
+ end
11
+ break unless res.distribution_list.is_truncated
12
+ res = cloudfront_client.list_distributions({
13
+ marker: res.distribution_list.next_marker
14
+ })
15
+ end
16
+
17
+ selected.single_resource(id)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,29 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module Cloudtrail
4
+ def select_all_trails
5
+ cloudtrail_client.describe_trails.trail_list
6
+ end
7
+
8
+ def find_trail(id)
9
+ ret = cloudtrail_client.describe_trails.trail_list.find do |trail|
10
+ trail.name == id
11
+ end
12
+ end
13
+
14
+ def get_trail_status(id)
15
+ cloudtrail_client.get_trail_status(name: id)
16
+ end
17
+
18
+ def get_trail_tags(arn)
19
+ cloudtrail_client.list_tags(
20
+ resource_id_list: [arn]
21
+ )[:resource_tag_list].first[:tags_list]
22
+ end
23
+
24
+ def is_logging?(id)
25
+ ret = get_trail_status(id).is_logging
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,33 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module Cloudwatch
4
+ def find_cloudwatch_alarm(id)
5
+ res = cloudwatch_client.describe_alarms({
6
+ alarm_names: [id]
7
+ })
8
+ return res.metric_alarms.first if res.metric_alarms.count == 1
9
+
10
+ res = cloudwatch_client.describe_alarms
11
+ alarms = res.metric_alarms.select do |alarm|
12
+ alarm.alarm_arn == id
13
+ end
14
+ alarms.single_resource(id)
15
+ end
16
+
17
+ def select_all_cloudwatch_alarms
18
+ selected = []
19
+ res = cloudwatch_client.describe_alarms
20
+
21
+ loop do
22
+ selected += res.metric_alarms
23
+ break if res.next_token.nil?
24
+ res = cloudwatch_client.describe_alarms({
25
+ next_token: res.next_token
26
+ })
27
+ end
28
+
29
+ selected
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,15 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module CloudwatchEvent
4
+ def find_cloudwatch_event(id)
5
+ cloudwatch_event_client.list_rules.rules.find do |rule|
6
+ rule.name == id || rule.arn == id
7
+ end
8
+ end
9
+
10
+ def select_all_cloudwatch_events
11
+ cloudwatch_event_client.list_rules.rules
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,93 @@
1
+ module Awspec::Helper
2
+ module Finder
3
+ module CloudwatchLogs
4
+ def find_cloudwatch_logs_group(id)
5
+ cloudwatch_logs_client.describe_log_groups({
6
+ log_group_name_prefix: id
7
+ }).log_groups.find do |log_group|
8
+ log_group.log_group_name == id
9
+ end
10
+ end
11
+
12
+ def last_cloudwatch_logs_stream_by_log_group_name(id)
13
+ cloudwatch_logs_client.describe_log_streams({ log_group_name: id }).log_streams.last
14
+ end
15
+
16
+ def find_cloudwatch_logs_stream_by_log_group_name(id, stream_name)
17
+ req = {
18
+ log_group_name: id,
19
+ log_stream_name_prefix: stream_name
20
+ }
21
+ ret = nil
22
+ loop do
23
+ res = cloudwatch_logs_client.describe_log_streams(req)
24
+ res.log_streams.find do |log_stream|
25
+ if log_stream[:log_stream_name] == stream_name
26
+ ret = log_stream[:log_stream_name]
27
+ break
28
+ end
29
+ end
30
+ break if ret.present?
31
+ break if res.next_token.nil?
32
+ req[:next_token] = res.next_token
33
+ end
34
+ ret
35
+ end
36
+
37
+ def find_cloudwatch_logs_metric_fileter_by_log_group_name(id, filter_name)
38
+ cloudwatch_logs_client.describe_metric_filters({
39
+ log_group_name: id,
40
+ filter_name_prefix: filter_name
41
+ }).metric_filters.find do |filter|
42
+ filter.filter_name == filter_name
43
+ end
44
+ end
45
+
46
+ def find_cloudwatch_logs_subscription_fileter_by_log_group_name(id, filter_name)
47
+ cloudwatch_logs_client.describe_subscription_filters({
48
+ log_group_name: id,
49
+ filter_name_prefix: filter_name
50
+ }).subscription_filters.find do |filter|
51
+ filter.filter_name == filter_name
52
+ end
53
+ end
54
+
55
+ def select_all_cloudwatch_logs_log_groups
56
+ req = {}
57
+ log_groups = []
58
+ loop do
59
+ res = cloudwatch_logs_client.describe_log_groups(req)
60
+ log_groups.push(*res.log_groups)
61
+ break if res.next_token.nil?
62
+ req[:next_token] = res.next_token
63
+ end
64
+ log_groups
65
+ end
66
+
67
+ def find_tags_by_log_group_name(id)
68
+ cloudwatch_logs_client.list_tags_log_group(log_group_name: id)[:tags]
69
+ end
70
+
71
+ filter_types = %w(metric subscription)
72
+ filter_types.each do |type|
73
+ define_method 'select_all_cloudwatch_logs_' + type + '_filter' do |*args|
74
+ req = { log_group_name: args.first }
75
+ method_name = 'describe_' + type + '_filters'
76
+ resources = []
77
+ loop do
78
+ res = cloudwatch_logs_client.send(method_name, req)
79
+ case type
80
+ when 'metric' then
81
+ resources.push(*res.metric_filters)
82
+ when 'subscription' then
83
+ resources.push(*res.subscription_filters)
84
+ end
85
+ break if res.next_token.nil?
86
+ req[:next_token] = res.next_token
87
+ end
88
+ resources
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end