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,54 @@
1
+ module Awspec::Type
2
+ class Alb < ResourceBase
3
+ tags_allowed
4
+ def resource_via_client
5
+ @resource_via_client ||= find_alb(@display_name)
6
+ end
7
+
8
+ def id
9
+ @id ||= resource_via_client.load_balancer_name if resource_via_client
10
+ end
11
+
12
+ STATES = %w(
13
+ active provisioning failed
14
+ )
15
+
16
+ STATES.each do |state|
17
+ define_method state + '?' do
18
+ check_existence
19
+ resource_via_client.state.code == state
20
+ end
21
+ end
22
+
23
+ def has_security_group?(sg_id)
24
+ check_existence
25
+ sgs = resource_via_client.security_groups
26
+ ret = sgs.find do |sg|
27
+ sg == sg_id
28
+ end
29
+ return true if ret
30
+ sg2 = find_security_group(sg_id)
31
+ return true if sgs.include? sg2.group_id
32
+ false
33
+ end
34
+
35
+ def has_subnet?(subnet_id)
36
+ check_existence
37
+ azs = resource_via_client.availability_zones
38
+ ret = azs.find do |az|
39
+ az.subnet_id == subnet_id
40
+ end
41
+ return true if ret
42
+ subnet2 = find_subnet(subnet_id)
43
+ subnet2.subnet_id = subnet_id
44
+ end
45
+
46
+ def has_tag?(tag_key, tag_value)
47
+ alb_arn = resource_via_client.load_balancer_arn
48
+ tag_set = select_all_alb_tags(alb_arn)
49
+ tag_set.find do |tag|
50
+ tag.key == tag_key && tag.value == tag_value
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,43 @@
1
+ module Awspec::Type
2
+ class AlbListener < ResourceBase
3
+ def resource_via_client
4
+ @resource_via_client ||= find_alb_listener(@display_name)
5
+ end
6
+
7
+ def id
8
+ @id ||= resource_via_client.listener_arn if resource_via_client
9
+ end
10
+
11
+ def has_rule?(rule_id = nil, priority = nil, conditions = nil, actions = nil)
12
+ rules = select_rule_by_alb_listener_id(id)
13
+ ret = rules.select do |rule|
14
+ conditions = [conditions] if conditions.is_a?(Hash)
15
+ actions = [actions] if actions.is_a?(Hash)
16
+ next false if !rule_id.nil? && rule.rule_arn != rule_id
17
+ next false if !priority.nil? && rule.priority != priority
18
+ unless conditions.nil?
19
+ next false unless conditions.map do |condition|
20
+ rule_conds = rule.conditions.select { |rule_cond| rule_cond[:field] == condition[:field] }
21
+ next if rule_conds.empty?
22
+ next unless rule_conds.reject { |rule_cond| condition[:values] == rule_cond[:values] }.empty?
23
+ condition
24
+ end.compact.size == conditions.size
25
+ end
26
+ unless actions.nil?
27
+ actions = actions.map do |action|
28
+ if action.key?(:target_group_name)
29
+ target_group = find_alb_target_group(action[:target_group_name])
30
+ action[:target_group_arn] = target_group.target_group_arn
31
+ action.delete(:target_group_name)
32
+ end
33
+ action
34
+ end
35
+ next false if rule.actions.map(&:to_h).sort_by(&:to_s) != actions.sort_by(&:to_s)
36
+ end
37
+ true
38
+ end
39
+ ret.single_resource("rule_id = #{rule_id}, priority = #{priority}, \
40
+ conditions = #{conditions}, actions = #{actions}")
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,22 @@
1
+ module Awspec::Type
2
+ class AlbTargetGroup < ResourceBase
3
+ def resource_via_client
4
+ @resource_via_client ||= find_alb_target_group(@display_name)
5
+ end
6
+
7
+ def id
8
+ @id ||= resource_via_client.target_group_name if resource_via_client
9
+ end
10
+
11
+ def has_ec2?(id)
12
+ ec2 = find_ec2(id)
13
+ return nil unless ec2
14
+ descriptions = elbv2_client.describe_target_health(
15
+ target_group_arn: resource_via_client.target_group_arn
16
+ ).target_health_descriptions
17
+ descriptions.find do |description|
18
+ description.target.id == ec2.instance_id
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,25 @@
1
+ module Awspec::Type
2
+ class Ami < ResourceBase
3
+ aws_resource Aws::EC2::Image
4
+ tags_allowed
5
+
6
+ def resource_via_client
7
+ @resource_via_client ||= find_ami(@display_name)
8
+ end
9
+
10
+ def id
11
+ @id ||= resource_via_client.image_id if resource_via_client
12
+ end
13
+
14
+ STATES = %w(
15
+ pending available invalid deregistered
16
+ transient failed error
17
+ )
18
+
19
+ STATES.each do |state|
20
+ define_method state + '?' do
21
+ resource_via_client.state == state
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,65 @@
1
+ require 'addressable/uri'
2
+
3
+ module Awspec::Type
4
+ class Apigateway < ResourceBase
5
+ aws_resource Aws::APIGateway::Client
6
+
7
+ def resource_via_client
8
+ @resource_via_client ||= find_apigateway_by_id(@display_name)
9
+ return @resource_via_client if @resource_via_client
10
+ @resource_via_client = find_apigateway_by_name(@display_name)
11
+ end
12
+
13
+ def id
14
+ @id ||= resource_via_client.id if resource_via_client
15
+ end
16
+
17
+ def api_resources
18
+ @api_resources.nil? ? @api_resources = find_api_resources_by_id(@id) : @api_resources
19
+ end
20
+
21
+ def has_path?(path)
22
+ check_existence
23
+ self.api_resources.each do |resource|
24
+ return resource if resource.path == path
25
+ end
26
+ nil
27
+ end
28
+
29
+ def has_integration_path?(path)
30
+ check_existence
31
+ self.api_resources.each do |resource|
32
+ next if resource.resource_methods.nil?
33
+ resource.resource_methods.each do |_, method|
34
+ if method.method_integration.http_method == 'AWS'
35
+ aws_path = method.method_integration.uri.match(%r{(\/[^\?]+)\??.*$}).captures[0]
36
+ return resource if aws_path == path
37
+ end
38
+ uri = Addressable::URI.parse(method.method_integration.uri)
39
+ return resource if uri.path == path
40
+ end
41
+ end
42
+ nil
43
+ end
44
+
45
+ def has_method?(path, http_method)
46
+ check_existence
47
+ resource_to_check = has_path?(path)
48
+ return nil if resource_to_check.nil?
49
+ resource_to_check.resource_methods.each do |_, method|
50
+ return resource_to_check if method.http_method == http_method
51
+ end
52
+ nil
53
+ end
54
+
55
+ def has_integration_method?(integration_path, http_method)
56
+ check_existence
57
+ integration_resource_to_check = has_integration_path?(integration_path)
58
+ return nil if integration_resource_to_check.nil?
59
+ integration_resource_to_check.resource_methods.each do |_, method|
60
+ return integration_resource_to_check if method.method_integration.http_method == http_method
61
+ end
62
+ nil
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,54 @@
1
+ module Awspec::Type
2
+ class AutoscalingGroup < ResourceBase
3
+ aws_resource Aws::AutoScaling::AutoScalingGroup
4
+ tags_allowed
5
+
6
+ def resource_via_client
7
+ @resource_via_client ||= find_autoscaling_group(@display_name)
8
+ end
9
+
10
+ def id
11
+ @id ||= resource_via_client.auto_scaling_group_arn if resource_via_client
12
+ end
13
+
14
+ def has_elb?(name)
15
+ resource_via_client.load_balancer_names.one? do |lb_name|
16
+ lb_name == name
17
+ end
18
+ end
19
+
20
+ def has_ec2?(id)
21
+ ec2 = find_ec2(id)
22
+ return nil unless ec2
23
+ resource_via_client.instances.one? do |instance|
24
+ instance.instance_id == ec2.instance_id
25
+ end
26
+ end
27
+
28
+ def has_suspended_process?(id)
29
+ resource_via_client.suspended_processes.one? do |process|
30
+ process.process_name == id
31
+ end
32
+ end
33
+
34
+ def has_launch_configuration?(name)
35
+ @resource_via_client.launch_configuration_name == name
36
+ end
37
+
38
+ def has_alb_target_group?(id)
39
+ target_group = find_alb_target_group(id)
40
+ target_groups = select_alb_target_group_by_autoscaling_group_name(@resource_via_client.auto_scaling_group_name)
41
+ target_groups.one? do |tg|
42
+ tg.load_balancer_target_group_arn == target_group.target_group_arn
43
+ end
44
+ end
45
+
46
+ def has_nlb_target_group?(id)
47
+ target_group = find_nlb_target_group(id)
48
+ target_groups = select_lb_target_group_by_autoscaling_group_name(@resource_via_client.auto_scaling_group_name)
49
+ target_groups.one? do |tg|
50
+ tg.load_balancer_target_group_arn == target_group.target_group_arn
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,63 @@
1
+ require 'aws-sdk'
2
+ require 'awspec/resource_reader'
3
+ require 'awspec/helper/finder'
4
+ require 'awspec/error'
5
+
6
+ module Awspec::Type
7
+ class Base
8
+ include Awspec::Helper::Finder
9
+ include Awspec::BlackListForwardable
10
+ attr_accessor :account
11
+
12
+ def resource_via_client
13
+ raise 'this method must be override!'
14
+ end
15
+
16
+ def to_s
17
+ type = self.class.name.demodulize.underscore
18
+ "#{type} '#{@display_name}'"
19
+ end
20
+
21
+ def inspect
22
+ to_s
23
+ end
24
+
25
+ def respond_to_missing?(method, include_private = false)
26
+ resource_via_client.respond_to?(method) || super unless resource_via_client.nil?
27
+ end
28
+
29
+ def self.tags_allowed
30
+ define_method :has_tag? do |key, value|
31
+ begin
32
+ tags = resource_via_client.tags
33
+ rescue NoMethodError
34
+ tags = resource_via_client.tag_set
35
+ end
36
+ return false unless tags
37
+ tags.any? { |t| t['key'] == key && t['value'] == value }
38
+ end
39
+ end
40
+
41
+ def method_missing(name)
42
+ name_str = name.to_s if name.class == Symbol
43
+ describe = name_str.tr('-', '_').to_sym
44
+
45
+ if !resource_via_client.nil? && resource_via_client.members.include?(describe)
46
+ resource_via_client[describe]
47
+ elsif resource_via_client.nil?
48
+ raise Awspec::NoExistingResource.new(self.class, @display_name)
49
+ else
50
+ super unless self.respond_to?(:resource)
51
+ method_missing_via_black_list(name, delegate_to: resource)
52
+ end
53
+ end
54
+
55
+ undef :timeout
56
+
57
+ private
58
+
59
+ def check_existence
60
+ raise Awspec::NoExistingResource.new(self.class, @display_name) if resource_via_client.nil?
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,32 @@
1
+ module Awspec::Type
2
+ class BatchComputeEnvironment < ResourceBase
3
+ def initialize(compenv)
4
+ super
5
+ @display_name = compenv
6
+ end
7
+
8
+ def resource_via_client
9
+ @resource_via_client ||= find_batch_compute_environment(@display_name)
10
+ end
11
+
12
+ def id
13
+ @id ||= resource_via_client.compute_environment_name if resource_via_client
14
+ end
15
+
16
+ STATES = %w(ENABLED DISABLED)
17
+
18
+ STATES.each do |state|
19
+ define_method state.downcase + '?' do
20
+ resource_via_client.state == state
21
+ end
22
+ end
23
+
24
+ TYPES = %w(MANAGED UNMANAGED)
25
+
26
+ TYPES.each do |type|
27
+ define_method type.downcase + '?' do
28
+ resource_via_client.type == type
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,16 @@
1
+ module Awspec::Type
2
+ class BatchJobDefinition < ResourceBase
3
+ def initialize(jobdef)
4
+ super
5
+ @display_name = jobdef
6
+ end
7
+
8
+ def resource_via_client
9
+ @resource_via_client ||= find_batch_job_definition(@display_name)
10
+ end
11
+
12
+ def id
13
+ @id ||= resource_via_client.job_definition_name if resource_via_client
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,31 @@
1
+ module Awspec::Type
2
+ class BatchJobQueue < ResourceBase
3
+ def initialize(jobqueue)
4
+ super
5
+ @display_name = jobqueue
6
+ end
7
+
8
+ def resource_via_client
9
+ @resource_via_client ||= find_batch_job_queue(@display_name)
10
+ end
11
+
12
+ def id
13
+ @id ||= resource_via_client.job_queue_name if resource_via_client
14
+ end
15
+
16
+ STATES = %w(ENABLED DISABLED)
17
+
18
+ STATES.each do |state|
19
+ define_method state.downcase + '?' do
20
+ resource_via_client.state == state
21
+ end
22
+ end
23
+
24
+ def has_compute_environment_order?(arn, order)
25
+ resource_via_client.compute_environment_order.each do |res|
26
+ return true if res.compute_environment == arn && res.order == order
27
+ end
28
+ false
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,11 @@
1
+ module Awspec::Type
2
+ class CloudformationStack < ResourceBase
3
+ def resource_via_client
4
+ @resource_via_client ||= find_cloudformation_stack(@display_name)
5
+ end
6
+
7
+ def id
8
+ @id ||= resource_via_client.stack_name if resource_via_client
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,60 @@
1
+ module Awspec::Type
2
+ class CloudfrontDistribution < ResourceBase
3
+ def resource_via_client
4
+ @resource_via_client ||= find_cloudfront_distribution(@display_name)
5
+ end
6
+
7
+ def id
8
+ @id ||= resource_via_client.id if resource_via_client
9
+ end
10
+
11
+ STATUSES = %w(
12
+ InProgress Deployed
13
+ )
14
+
15
+ STATUSES.each do |status|
16
+ define_method status.underscore + '?' do
17
+ resource_via_client.status == status
18
+ end
19
+ end
20
+
21
+ def has_origin?(origin_id,
22
+ domain_name: nil,
23
+ origin_path: nil,
24
+ origin_access_identity: nil)
25
+ return false unless [origin_id, domain_name].any?
26
+ resource_via_client.origins.items.find do |origin|
27
+ next false if !origin_id.nil? && origin.id != origin_id
28
+ next false if !domain_name.nil? && origin.domain_name != domain_name
29
+ next false if !origin_path.nil? && origin.origin_path != origin_path
30
+ next false if !origin_access_identity.nil? && \
31
+ origin.s3_origin_config.origin_access_identity != origin_access_identity
32
+ true
33
+ end
34
+ end
35
+
36
+ def has_origin_domain_name?(domain_name)
37
+ has_origin?(nil, domain_name: domain_name)
38
+ end
39
+
40
+ def has_origin_domain_name_and_path?(domain_name_and_path)
41
+ domain_name = domain_name_and_path.gsub(%r(/.*\z), '')
42
+ origin_path = domain_name_and_path.gsub(%r(\A[^/]*), '')
43
+ has_origin?(nil, domain_name: domain_name, origin_path: origin_path)
44
+ end
45
+
46
+ def has_custom_response_error_code?(error_code,
47
+ response_page_path: nil,
48
+ response_code: nil,
49
+ error_caching_min_ttl: nil)
50
+ return false unless [error_code, domain_name].any?
51
+ resource_via_client.custom_error_responses.items.find do |error|
52
+ next false if !error_code.nil? && error.error_code != error_code
53
+ next false if !response_page_path.nil? && error.response_page_path != response_page_path
54
+ next false if !response_code.nil? && error.response_code != response_code.to_s
55
+ next false if !error_caching_min_ttl.nil? && error.error_caching_min_ttl != error_caching_min_ttl
56
+ true
57
+ end
58
+ end
59
+ end
60
+ end