zaws 0.0.5 → 0.1.1

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 (282) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/.travis.yml +9 -18
  4. data/Gemfile +0 -0
  5. data/Gemfile.lock +26 -35
  6. data/Gemfile.lock.linux +69 -0
  7. data/Gemfile.lock.mac +81 -0
  8. data/Gemfile.lock.windows +77 -0
  9. data/LICENSE +0 -0
  10. data/README.md +11 -0
  11. data/Rakefile +1 -7
  12. data/archive/cloud_trail/cloud_trail.feature +124 -0
  13. data/bin/win_zaws.bat +2 -0
  14. data/lib/zaws.rb +54 -41
  15. data/lib/zaws/command/ai.rb +34 -0
  16. data/lib/zaws/command/bucket.rb +35 -0
  17. data/lib/zaws/command/cloud_trail.rb +43 -0
  18. data/lib/zaws/command/compute.rb +152 -87
  19. data/lib/zaws/command/config.rb +42 -0
  20. data/lib/zaws/command/elasticip.rb +19 -9
  21. data/lib/zaws/command/hosted_zone.rb +31 -18
  22. data/lib/zaws/command/iam.rb +37 -0
  23. data/lib/zaws/command/load_balancer.rb +54 -51
  24. data/lib/zaws/command/nessus.rb +41 -0
  25. data/lib/zaws/command/newrelic.rb +30 -0
  26. data/lib/zaws/command/route_table.rb +135 -122
  27. data/lib/zaws/command/security_group.rb +95 -82
  28. data/lib/zaws/command/subnet.rb +58 -46
  29. data/lib/zaws/command/sumo.rb +34 -0
  30. data/lib/zaws/command/vpc.rb +53 -0
  31. data/lib/zaws/external/awscli/awscli.rb +65 -0
  32. data/lib/zaws/external/awscli/commands.rb +10 -0
  33. data/lib/zaws/external/awscli/commands/aws.rb +40 -0
  34. data/lib/zaws/external/awscli/commands/ec2.rb +74 -0
  35. data/lib/zaws/external/awscli/commands/ec2/allocate_address.rb +42 -0
  36. data/lib/zaws/external/awscli/commands/ec2/assign_private_ip_addresses.rb +49 -0
  37. data/lib/zaws/external/awscli/commands/ec2/associate_address.rb +48 -0
  38. data/lib/zaws/external/awscli/commands/ec2/associate_route_table.rb +48 -0
  39. data/lib/zaws/external/awscli/commands/ec2/authorize_security_group_ingress.rb +70 -0
  40. data/lib/zaws/external/awscli/commands/ec2/create_route.rb +60 -0
  41. data/lib/zaws/external/awscli/commands/ec2/create_route_table.rb +40 -0
  42. data/lib/zaws/external/awscli/commands/ec2/create_security_group.rb +58 -0
  43. data/lib/zaws/external/awscli/commands/ec2/create_subnet.rb +62 -0
  44. data/lib/zaws/external/awscli/commands/ec2/create_tags.rb +53 -0
  45. data/lib/zaws/external/awscli/commands/ec2/create_vpc.rb +21 -0
  46. data/lib/zaws/external/awscli/commands/ec2/delete_route.rb +54 -0
  47. data/lib/zaws/external/awscli/commands/ec2/delete_route_table.rb +46 -0
  48. data/lib/zaws/external/awscli/commands/ec2/delete_security_group.rb +46 -0
  49. data/lib/zaws/external/awscli/commands/ec2/delete_subnet.rb +46 -0
  50. data/lib/zaws/external/awscli/commands/ec2/describe_addresses.rb +41 -0
  51. data/lib/zaws/external/awscli/commands/ec2/describe_images.rb +58 -0
  52. data/lib/zaws/external/awscli/commands/ec2/describe_instances.rb +56 -0
  53. data/lib/zaws/external/awscli/commands/ec2/describe_route_tables.rb +44 -0
  54. data/lib/zaws/external/awscli/commands/ec2/describe_security_groups.rb +50 -0
  55. data/lib/zaws/external/awscli/commands/ec2/describe_subnets.rb +48 -0
  56. data/lib/zaws/external/awscli/commands/ec2/describe_vpc_peering_connections.rb +23 -0
  57. data/lib/zaws/external/awscli/commands/ec2/describe_vpcs.rb +26 -0
  58. data/lib/zaws/external/awscli/commands/ec2/disable_vgw_route_propagation.rb +48 -0
  59. data/lib/zaws/external/awscli/commands/ec2/disassociate-address.rb +42 -0
  60. data/lib/zaws/external/awscli/commands/ec2/disassociate_route_table.rb +41 -0
  61. data/lib/zaws/external/awscli/commands/ec2/enable_vgw_route_propagation.rb +48 -0
  62. data/lib/zaws/external/awscli/commands/ec2/filter.rb +115 -0
  63. data/lib/zaws/external/awscli/commands/ec2/modify_instance_attribute.rb +62 -0
  64. data/lib/zaws/external/awscli/commands/ec2/network_interfaces.rb +63 -0
  65. data/lib/zaws/external/awscli/commands/ec2/release_address.rb +42 -0
  66. data/lib/zaws/external/awscli/commands/ec2/revoke_security_group_ingress.rb +70 -0
  67. data/lib/zaws/external/awscli/commands/ec2/run_instances.rb +21 -0
  68. data/lib/zaws/external/awscli/commands/ec2/stop_instances.rb +21 -0
  69. data/lib/zaws/external/awscli/commands/ec2/terminate_instances.rb +40 -0
  70. data/lib/zaws/external/awscli/commands/ec2/unassign_private_ip_addresses.rb +49 -0
  71. data/lib/zaws/external/awscli/commands/elb.rb +19 -0
  72. data/lib/zaws/external/awscli/commands/elb/create_load_balancer.rb +64 -0
  73. data/lib/zaws/external/awscli/commands/elb/create_load_balancer_listeners.rb +47 -0
  74. data/lib/zaws/external/awscli/commands/elb/delete_load_balancer.rb +40 -0
  75. data/lib/zaws/external/awscli/commands/elb/delete_load_balancer_listeners.rb +49 -0
  76. data/lib/zaws/external/awscli/commands/elb/deregister_instances_with_load_balancer.rb +49 -0
  77. data/lib/zaws/external/awscli/commands/elb/describe_load_balancers.rb +30 -0
  78. data/lib/zaws/external/awscli/commands/elb/register_instances_with_load_balancer.rb +49 -0
  79. data/lib/zaws/external/awscli/commands/iam.rb +31 -0
  80. data/lib/zaws/external/awscli/commands/iam/GetPolicy.rb +21 -0
  81. data/lib/zaws/external/awscli/commands/iam/GetPolicyVersion.rb +21 -0
  82. data/lib/zaws/external/awscli/commands/iam/GetRolePolicy.rb +21 -0
  83. data/lib/zaws/external/awscli/commands/route53.rb +19 -0
  84. data/lib/zaws/external/awscli/commands/route53/list_hosted_zones.rb +30 -0
  85. data/lib/zaws/external/awscli/commands/route53/list_resource_record_sets.rb +41 -0
  86. data/lib/zaws/external/awscli/commands/s3/ls.rb +34 -0
  87. data/lib/zaws/external/awscli/commands/s3/mb.rb +41 -0
  88. data/lib/zaws/external/awscli/commands/s3/sync.rb +48 -0
  89. data/lib/zaws/external/awscli/credentials.rb +22 -0
  90. data/lib/zaws/external/awscli/data.rb +10 -0
  91. data/lib/zaws/external/awscli/data/ec2.rb +33 -0
  92. data/lib/zaws/external/awscli/data/ec2/instance.rb +162 -0
  93. data/lib/zaws/external/awscli/data/ec2/security_group.rb +51 -0
  94. data/lib/zaws/external/awscli/data/ec2/subnet.rb +59 -0
  95. data/lib/zaws/external/awscli/data/ec2/vpc.rb +85 -0
  96. data/lib/zaws/external/awscli/data/iam.rb +34 -0
  97. data/lib/zaws/external/awscli/data/iam/policy.rb +42 -0
  98. data/lib/zaws/external/awscli/data/iam/policy_document.rb +52 -0
  99. data/lib/zaws/external/awscli/data/iam/policy_version.rb +42 -0
  100. data/lib/zaws/external/awscli/data/iam/role_policy.rb +52 -0
  101. data/lib/zaws/external/awscli/generators/result/ec2/addresses.rb +70 -0
  102. data/lib/zaws/external/awscli/generators/result/ec2/allocation_id.rb +39 -0
  103. data/lib/zaws/external/awscli/generators/result/ec2/association_id.rb +29 -0
  104. data/lib/zaws/external/awscli/generators/result/ec2/images.rb +46 -0
  105. data/lib/zaws/external/awscli/generators/result/ec2/instances.rb +57 -0
  106. data/lib/zaws/external/awscli/generators/result/ec2/ip_permissions.rb +70 -0
  107. data/lib/zaws/external/awscli/generators/result/ec2/network_interfaces.rb +53 -0
  108. data/lib/zaws/external/awscli/generators/result/ec2/private_ip_addresses.rb +41 -0
  109. data/lib/zaws/external/awscli/generators/result/ec2/route_tables.rb +80 -0
  110. data/lib/zaws/external/awscli/generators/result/ec2/routes.rb +58 -0
  111. data/lib/zaws/external/awscli/generators/result/ec2/security_groups.rb +73 -0
  112. data/lib/zaws/external/awscli/generators/result/ec2/subnets.rb +88 -0
  113. data/lib/zaws/external/awscli/generators/result/ec2/tags.rb +34 -0
  114. data/lib/zaws/external/awscli/generators/result/ec2/virtual_gateway.rb +32 -0
  115. data/lib/zaws/external/awscli/generators/result/elb/listeners.rb +65 -0
  116. data/lib/zaws/external/awscli/generators/result/elb/load_balancers.rb +61 -0
  117. data/lib/zaws/external/awscli/generators/result/route53/hosted_zones.rb +52 -0
  118. data/lib/zaws/external/awscli/regions.rb +13 -0
  119. data/lib/zaws/external/nessusapi/data/agents.rb +36 -0
  120. data/lib/zaws/external/nessusapi/data/scanners.rb +35 -0
  121. data/lib/zaws/external/nessusapi/nessusapi.rb +57 -0
  122. data/lib/zaws/external/nessusapi/reources.rb +10 -0
  123. data/lib/zaws/external/nessusapi/resources/agents.rb +18 -0
  124. data/lib/zaws/external/nessusapi/resources/agents/list.rb +20 -0
  125. data/lib/zaws/external/nessusapi/resources/scanners.rb +18 -0
  126. data/lib/zaws/external/nessusapi/resources/scanners/list.rb +20 -0
  127. data/lib/zaws/external/newrelicapi/data/servers.rb +36 -0
  128. data/lib/zaws/external/newrelicapi/newrelic_client.rb +64 -0
  129. data/lib/zaws/external/newrelicapi/newrelic_creds.rb +60 -0
  130. data/lib/zaws/external/newrelicapi/newrelicapi.rb +46 -0
  131. data/lib/zaws/external/newrelicapi/resources/servers.rb +18 -0
  132. data/lib/zaws/external/newrelicapi/resources/servers/list.rb +20 -0
  133. data/lib/zaws/external/sumoapi/data/collectors.rb +35 -0
  134. data/lib/zaws/external/sumoapi/data/sources.rb +35 -0
  135. data/lib/zaws/external/sumoapi/resources/collectors.rb +18 -0
  136. data/lib/zaws/external/sumoapi/resources/collectors/list.rb +20 -0
  137. data/lib/zaws/external/sumoapi/resources/sources.rb +18 -0
  138. data/lib/zaws/external/sumoapi/resources/sources/list.rb +20 -0
  139. data/lib/zaws/external/sumoapi/sumo_client.rb +63 -0
  140. data/lib/zaws/external/sumoapi/sumo_creds.rb +67 -0
  141. data/lib/zaws/external/sumoapi/sumoapi.rb +56 -0
  142. data/lib/zaws/helper/data_lattice.rb +22 -0
  143. data/lib/zaws/helper/filestore.rb +48 -0
  144. data/lib/zaws/helper/filter.rb +15 -0
  145. data/lib/zaws/helper/inifile.rb +632 -0
  146. data/lib/zaws/helper/nessus_client.rb +143 -0
  147. data/lib/zaws/helper/nessus_creds.rb +67 -0
  148. data/lib/zaws/helper/option.rb +14 -15
  149. data/lib/zaws/helper/output.rb +81 -29
  150. data/lib/zaws/helper/process_hash.rb +47 -0
  151. data/lib/zaws/helper/shell.rb +0 -0
  152. data/lib/zaws/helper/verbose.rb +15 -0
  153. data/lib/zaws/helper/zfile.rb +8 -8
  154. data/lib/zaws/services/ai.rb +35 -0
  155. data/lib/zaws/services/ai/query.rb +135 -0
  156. data/lib/zaws/services/aws.rb +41 -0
  157. data/lib/zaws/services/chef.rb +0 -0
  158. data/lib/zaws/services/cloud_trail.rb +76 -0
  159. data/lib/zaws/services/config.rb +31 -0
  160. data/lib/zaws/services/ec2.rb +47 -0
  161. data/lib/zaws/services/ec2/compute.rb +352 -0
  162. data/lib/zaws/services/ec2/elasticip.rb +82 -0
  163. data/lib/zaws/services/ec2/route_table.rb +210 -0
  164. data/lib/zaws/services/ec2/security_group.rb +186 -0
  165. data/lib/zaws/services/ec2/subnet.rb +111 -0
  166. data/lib/zaws/services/ec2/vpc.rb +69 -0
  167. data/lib/zaws/{elb.rb → services/elb.rb} +3 -2
  168. data/lib/zaws/services/elb/load_balancer.rb +160 -0
  169. data/lib/zaws/services/iam.rb +25 -0
  170. data/lib/zaws/services/iam/policy.rb +25 -0
  171. data/lib/zaws/services/iam/role.rb +23 -0
  172. data/lib/zaws/services/nessus.rb +24 -0
  173. data/lib/zaws/services/nessus/agents.rb +19 -0
  174. data/lib/zaws/services/nessus/scanners.rb +19 -0
  175. data/lib/zaws/services/newrelic.rb +21 -0
  176. data/lib/zaws/services/newrelic/servers.rb +19 -0
  177. data/lib/zaws/{route53.rb → services/route53.rb} +1 -1
  178. data/lib/zaws/services/route53/hosted_zone.rb +36 -0
  179. data/lib/zaws/services/s3.rb +15 -0
  180. data/lib/zaws/services/s3/bucket.rb +42 -0
  181. data/lib/zaws/services/sumo.rb +21 -0
  182. data/lib/zaws/services/sumo/collectors.rb +19 -0
  183. data/lib/zaws/services/vmware.rb +0 -0
  184. data/lib/zaws/version.rb +1 -1
  185. data/shove_all.sh +6 -0
  186. data/shove_all_mac.sh +6 -0
  187. data/shove_all_windows.sh +6 -0
  188. data/spec/spec_helper.rb +0 -0
  189. data/spec/zaws/command/ec2/compute/assoc_security_group_spec.rb +135 -0
  190. data/spec/zaws/command/ec2/compute/compute_spec.rb +321 -0
  191. data/spec/zaws/command/ec2/compute/images_spec.rb +69 -0
  192. data/spec/zaws/command/ec2/compute/management_spec.rb +364 -0
  193. data/spec/zaws/command/ec2/compute/network_spec.rb +93 -0
  194. data/spec/zaws/command/ec2/compute/node_spec.rb +70 -0
  195. data/spec/zaws/command/ec2/compute/secondary_ip_spec.rb +212 -0
  196. data/spec/zaws/command/ec2/compute/storage_spec.rb +63 -0
  197. data/spec/zaws/command/ec2/elasticip_spec.rb +271 -0
  198. data/spec/zaws/command/ec2/route_table_spec.rb +844 -0
  199. data/spec/zaws/command/ec2/security_group_spec.rb +710 -0
  200. data/spec/zaws/command/ec2/subnet_spec.rb +273 -0
  201. data/spec/zaws/command/ec2/vpc_spec.rb +180 -0
  202. data/spec/zaws/command/elb/load_balancer_spec.rb +633 -0
  203. data/spec/zaws/command/iam/policy_spec.rb +101 -0
  204. data/spec/zaws/command/iam/role_policy_spec.rb +35 -0
  205. data/spec/zaws/command/route53/hosted_zone_spec.rb +100 -0
  206. data/spec/zaws/command/s3/bucket_spec.rb +70 -0
  207. data/spec/zaws/external/awscli/data/ec2/instance_spec.rb +90 -0
  208. data/spec/zaws/external/awscli/data/iam/policy_document_spec.rb +56 -0
  209. data/spec/zaws/external/awscli/data/iam/role_policy_spec.rb +54 -0
  210. data/spec/zaws/external/awscli/get_aws_version_spec.rb +18 -0
  211. data/spec/zaws/helper/option_spec.rb +54 -0
  212. data/spec/zaws/helper/output_spec.rb +144 -0
  213. data/spec/zaws/helper/process_hash_spec.rb +48 -0
  214. data/spec/zaws/helper/shell_spec.rb +56 -0
  215. data/spec/zaws/nessus/scanners.json +0 -0
  216. data/spec/zaws/version_spec.rb +18 -0
  217. data/zaws.gemspec +1 -3
  218. metadata +260 -189
  219. data/feature/compute/assoc_security_group.feature +0 -55
  220. data/feature/compute/compute.feature +0 -138
  221. data/feature/compute/secondary_ip.feature +0 -107
  222. data/feature/compute/view.feature +0 -23
  223. data/feature/compute/view_images.feature +0 -24
  224. data/feature/elasticip/elasticip.feature +0 -138
  225. data/feature/elasticip/view.feature +0 -18
  226. data/feature/hosted_zone/view.feature +0 -17
  227. data/feature/hosted_zone/view_record.feature +0 -29
  228. data/feature/load_balancer/instance_registration.feature +0 -120
  229. data/feature/load_balancer/listener.feature +0 -86
  230. data/feature/load_balancer/load_balancer.feature +0 -101
  231. data/feature/load_balancer/view.feature +0 -18
  232. data/feature/route_table/assoc_subnet.feature +0 -128
  233. data/feature/route_table/route_propagation.feature +0 -93
  234. data/feature/route_table/route_table.feature +0 -91
  235. data/feature/route_table/route_to_gateway.feature +0 -69
  236. data/feature/route_table/route_to_instance.feature +0 -115
  237. data/feature/route_table/view.feature +0 -25
  238. data/feature/security_group/ingress_cidr.feature +0 -144
  239. data/feature/security_group/ingress_group.feature +0 -184
  240. data/feature/security_group/security_group.feature +0 -107
  241. data/feature/security_group/view.feature +0 -23
  242. data/feature/subnet/subnet.feature +0 -94
  243. data/feature/subnet/view.feature +0 -24
  244. data/feature/support/env.rb +0 -14
  245. data/feature/version.feature +0 -6
  246. data/lib/zaws/aws.rb +0 -26
  247. data/lib/zaws/ec2.rb +0 -40
  248. data/lib/zaws/ec2/compute.rb +0 -247
  249. data/lib/zaws/ec2/elasticip.rb +0 -79
  250. data/lib/zaws/ec2/route_table.rb +0 -207
  251. data/lib/zaws/ec2/security_group.rb +0 -154
  252. data/lib/zaws/ec2/subnet.rb +0 -109
  253. data/lib/zaws/elb/load_balancer.rb +0 -157
  254. data/lib/zaws/route53/hosted_zone.rb +0 -36
  255. data/spec/zaws/ec2/compute/add_volume_spec.rb +0 -39
  256. data/spec/zaws/ec2/compute/block_device_mapping_spec.rb +0 -31
  257. data/spec/zaws/ec2/compute/instance_id_by_external_id_spec.rb +0 -23
  258. data/spec/zaws/ec2/compute/instance_ping_spec.rb +0 -34
  259. data/spec/zaws/ec2/compute/instance_running_spec.rb +0 -47
  260. data/spec/zaws/ec2/compute/network_interface_json_spec.rb +0 -57
  261. data/spec/zaws/ec2/compute/nosdcheck_spec.rb +0 -17
  262. data/spec/zaws/ec2/compute/tag_instance_spec.rb +0 -21
  263. data/spec/zaws/ec2/security_group/id_by_name_spec.rb +0 -32
  264. data/spec/zaws/ec2/subnet/available_spec.rb +0 -22
  265. data/spec/zaws/ec2/subnet/declare_spec.rb +0 -31
  266. data/spec/zaws/ec2/subnet/exists_spec.rb +0 -33
  267. data/spec/zaws/ec2/subnet/id_array_by_cidrblock_array_spec.rb +0 -48
  268. data/spec/zaws/ec2/subnet/id_by_cidrblock_spec.rb +0 -35
  269. data/spec/zaws/ec2/subnet/id_by_ip_spec.rb +0 -42
  270. data/spec/zaws/ec2/subnet/view_spec.rb +0 -34
  271. data/spec/zaws/elb/load_balancer/calculated_listener_spec.rb +0 -18
  272. data/spec/zaws/helper/option/absent_spec.rb +0 -14
  273. data/spec/zaws/helper/option/exclusive_spec.rb +0 -14
  274. data/spec/zaws/helper/option/exists_spec.rb +0 -18
  275. data/spec/zaws/helper/option/minimum_spec.rb +0 -14
  276. data/spec/zaws/helper/output/binary_nagios_check_spec.rb +0 -19
  277. data/spec/zaws/helper/output/colorize_spec.rb +0 -30
  278. data/spec/zaws/helper/output/opt_exclusive_spec.rb +0 -14
  279. data/spec/zaws/helper/output/opt_minimum_spec.rb +0 -15
  280. data/spec/zaws/helper/output/opt_required_spec.rb +0 -12
  281. data/spec/zaws/helper/shell/cli_spec.rb +0 -33
  282. data/spec/zaws/helper/shell/if_then_spec.rb +0 -24
@@ -0,0 +1,73 @@
1
+ module ZAWS
2
+ class External
3
+ class AWSCLI
4
+ class Generators
5
+ class Result
6
+ class EC2
7
+ class SecurityGroups
8
+ def initialize
9
+ @sgroups= {}
10
+ @sgroups["SecurityGroups"]= []
11
+ self
12
+ end
13
+
14
+ def group_name(security_group_number, name)
15
+ resize_security_groups_array(security_group_number)
16
+ @sgroups["SecurityGroups"][security_group_number]["GroupName"]=name
17
+ self
18
+ end
19
+
20
+ def group_id(security_group_number, id)
21
+ resize_security_groups_array(security_group_number)
22
+ @sgroups["SecurityGroups"][security_group_number]["GroupId"]=id
23
+ self
24
+ end
25
+
26
+ def vpc_id(security_group_number, id)
27
+ resize_security_groups_array(security_group_number)
28
+ @sgroups["SecurityGroups"][security_group_number]["VpcId"]=id
29
+ self
30
+ end
31
+
32
+ def owner_id(security_group_number, id)
33
+ resize_security_groups_array(security_group_number)
34
+ @sgroups["SecurityGroups"][security_group_number]["OwnerId"]=id
35
+ self
36
+ end
37
+
38
+ def description(security_group_number, description)
39
+ resize_security_groups_array(security_group_number)
40
+ @sgroups["SecurityGroups"][security_group_number]["Description"]=description
41
+ self
42
+ end
43
+
44
+ def resize_security_groups_array(index)
45
+ while index > @sgroups["SecurityGroups"].length-1
46
+ @sgroups["SecurityGroups"].push({})
47
+ end
48
+
49
+ end
50
+
51
+ def ip_permissions(security_group_number, perms)
52
+ resize_security_groups_array(security_group_number)
53
+ @sgroups["SecurityGroups"][security_group_number]["IpPermissions"] ||=[]
54
+ @sgroups["SecurityGroups"][security_group_number]["IpPermissions"].concat(perms.get_ip_permissions_array)
55
+ self
56
+ end
57
+
58
+ def get_json
59
+ @sgroups.to_json
60
+ end
61
+
62
+ def get_security_groups_array
63
+ @sgroups["SecurityGroups"]
64
+ end
65
+
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
73
+
@@ -0,0 +1,88 @@
1
+ module ZAWS
2
+ class External
3
+ class AWSCLI
4
+ class Generators
5
+ class Result
6
+ class EC2
7
+ class Subnets
8
+ def initialize
9
+ @subnets= {}
10
+ @subnets["Subnets"]= []
11
+ self
12
+ end
13
+
14
+ def vpc_id(subnet_number, vpc_id)
15
+ resize_subnets_array(subnet_number)
16
+ @subnets["Subnets"][subnet_number]["VpcId"]=vpc_id
17
+ self
18
+ end
19
+
20
+ def cidr_block(subnet_number, cidr)
21
+ resize_subnets_array(subnet_number)
22
+ @subnets["Subnets"][subnet_number]["CidrBlock"]=cidr
23
+ self
24
+ end
25
+
26
+ def map_public_ip_on_launch(subnet_number, cidr)
27
+ resize_subnets_array(subnet_number)
28
+ @subnets["Subnets"][subnet_number]["MapPublicIpOnLaunch"]=cidr
29
+ self
30
+ end
31
+
32
+ def default_for_az(subnet_number, default)
33
+ resize_subnets_array(subnet_number)
34
+ @subnets["Subnets"][subnet_number]["DefaultForAz"]=default
35
+ self
36
+ end
37
+
38
+ def state(subnet_number, state)
39
+ resize_subnets_array(subnet_number)
40
+ @subnets["Subnets"][subnet_number]["State"]=state
41
+ self
42
+ end
43
+
44
+ def available_ip_address_count(subnet_number, count)
45
+ resize_subnets_array(subnet_number)
46
+ @subnets["Subnets"][subnet_number]["AvailableIpAddressCount"]=count
47
+ self
48
+ end
49
+
50
+ def route_table_association_id(subnet_number, id)
51
+ resize_subnets_array(subnet_number)
52
+ @subnets["Subnets"][subnet_number]["RouteTableAssociationId"]=id
53
+ self
54
+ end
55
+
56
+ def subnet_id(subnet_number, id)
57
+ resize_subnets_array(subnet_number)
58
+ @subnets["Subnets"][subnet_number]["SubnetId"]=id
59
+ self
60
+ end
61
+
62
+ def resize_subnets_array(index)
63
+ while index > @subnets["Subnets"].length-1
64
+ @subnets["Subnets"].push({})
65
+ end
66
+ end
67
+
68
+ def add(subnets)
69
+ @subnets["Subnets"].concat(subnets.get_subnets_array)
70
+ self
71
+ end
72
+
73
+ def get_json
74
+ @subnets.to_json
75
+ end
76
+
77
+ def get_subnets_array
78
+ @subnets["Subnets"]
79
+ end
80
+
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+
@@ -0,0 +1,34 @@
1
+ module ZAWS
2
+ class External
3
+ class AWSCLI
4
+ class Generators
5
+ class Result
6
+ class EC2
7
+ class Tags
8
+ def initialize
9
+ @tags= {}
10
+ @tags["Tags"]= []
11
+ self
12
+ end
13
+
14
+ def add(key, value)
15
+ @tags["Tags"] << { "Value"=>value,"Key"=>key }
16
+ self
17
+ end
18
+
19
+ def get_json
20
+ @tags.to_json
21
+ end
22
+
23
+ def get_tags_array
24
+ @tags["Tags"]
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+
@@ -0,0 +1,32 @@
1
+ module ZAWS
2
+ class External
3
+ class AWSCLI
4
+ class Generators
5
+ class Result
6
+ class EC2
7
+ class VirtualGateway
8
+ def initialize
9
+ @addresses= {}
10
+ self
11
+ end
12
+
13
+ def gateway_id(id)
14
+ @addresses["GatewayId"]=id
15
+ self
16
+ end
17
+
18
+ def get_json
19
+ @addresses.to_json
20
+ end
21
+
22
+ def get_hash
23
+ @addresses
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+
@@ -0,0 +1,65 @@
1
+ module ZAWS
2
+ class External
3
+ class AWSCLI
4
+ class Generators
5
+ class Result
6
+ class ELB
7
+ class Listeners
8
+ def initialize
9
+ @listeners= {}
10
+ @listeners["ListenerDescriptions"]= []
11
+ self
12
+ end
13
+
14
+ def instance_port(listener_number, port)
15
+ resize_listeners_array(listener_number)
16
+ @listeners["ListenerDescriptions"][listener_number]["Listener"]["InstancePort"]=port
17
+ self
18
+ end
19
+
20
+ def load_balancer_port(listener_number, port)
21
+ resize_listeners_array(listener_number)
22
+ @listeners["ListenerDescriptions"][listener_number]["Listener"]["LoadBalancerPort"]=port
23
+ self
24
+ end
25
+
26
+ def protocol(listener_number, proto)
27
+ resize_listeners_array(listener_number)
28
+ @listeners["ListenerDescriptions"][listener_number]["Listener"]["Protocol"]=proto
29
+ self
30
+ end
31
+
32
+ def instance_protocol(listener_number, proto)
33
+ resize_listeners_array(listener_number)
34
+ @listeners["ListenerDescriptions"][listener_number]["Listener"]["InstanceProtocol"]=proto
35
+ self
36
+ end
37
+
38
+ def resize_listeners_array(index)
39
+ while index > @listeners["ListenerDescriptions"].length-1
40
+ @listeners["ListenerDescriptions"].push({})
41
+ end
42
+ @listeners["ListenerDescriptions"][index]["Listener"] ||= {}
43
+ @listeners["ListenerDescriptions"][index]["PolicyNames"] ||= []
44
+ end
45
+
46
+ def add(listeners)
47
+ @listeners["ListenerDescriptions"].concat(listeners.get_listeners_array)
48
+ self
49
+ end
50
+
51
+ def get_json
52
+ @listeners.to_json
53
+ end
54
+
55
+ def get_listeners_array
56
+ @listeners["ListenerDescriptions"]
57
+ end
58
+
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,61 @@
1
+ module ZAWS
2
+ class External
3
+ class AWSCLI
4
+ class Generators
5
+ class Result
6
+ class ELB
7
+ class LoadBalancers
8
+ def initialize
9
+ @load_balancers= {}
10
+ @load_balancers["LoadBalancerDescriptions"]= []
11
+ self
12
+ end
13
+
14
+ def name(load_balancer_number, name)
15
+ resize_load_balancers_array(load_balancer_number)
16
+ @load_balancers["LoadBalancerDescriptions"][load_balancer_number]["LoadBalancerName"]=name
17
+ self
18
+ end
19
+
20
+ def instances(load_balancer_number, instances)
21
+ resize_load_balancers_array(load_balancer_number)
22
+ @load_balancers["LoadBalancerDescriptions"][load_balancer_number]["Instances"].concat(instances.get_instances_array)
23
+ self
24
+ end
25
+
26
+ def listeners(load_balancer_number, listeners)
27
+ resize_load_balancers_array(load_balancer_number)
28
+ @load_balancers["LoadBalancerDescriptions"][load_balancer_number]["ListenerDescriptions"].concat(listeners.get_listeners_array)
29
+ self
30
+ end
31
+
32
+ def resize_load_balancers_array(index)
33
+ while index > @load_balancers["LoadBalancerDescriptions"].length-1
34
+ @load_balancers["LoadBalancerDescriptions"].push({})
35
+ end
36
+ @load_balancers["LoadBalancerDescriptions"][index]["Instances"] ||= []
37
+ @load_balancers["LoadBalancerDescriptions"][index]["ListenerDescriptions"] ||=[]
38
+ end
39
+
40
+ def add(load_balancers)
41
+ @load_balancers["LoadBalancerDescriptions"].concat(load_balancers.get_load_balancers_array)
42
+ self
43
+ end
44
+
45
+ def get_json
46
+ @load_balancers.to_json
47
+ end
48
+
49
+ def get_load_balancers_array
50
+ @load_balancers["LoadBalancerDescriptions"]
51
+ end
52
+
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+
61
+
@@ -0,0 +1,52 @@
1
+ module ZAWS
2
+ class External
3
+ class AWSCLI
4
+ class Generators
5
+ class Result
6
+ class Route53
7
+ class HostedZones
8
+ def initialize
9
+ @hostedZones= {}
10
+ @hostedZones["HostedZones"]= []
11
+ self
12
+ end
13
+
14
+ def id(hosted_zone_number, id)
15
+ resize_hostedZones_array(hosted_zone_number)
16
+ @hostedZones["HostedZones"][hosted_zone_number]["Id"]=id
17
+ self
18
+ end
19
+
20
+ def name(hosted_zone_number, name)
21
+ resize_hostedZones_array(hosted_zone_number)
22
+ @hostedZones["HostedZones"][hosted_zone_number]["Name"]=name
23
+ self
24
+ end
25
+
26
+ def resize_hostedZones_array(index)
27
+ while index > @hostedZones["HostedZones"].length-1
28
+ @hostedZones["HostedZones"].push({})
29
+ end
30
+ end
31
+
32
+ def add(hostedZones)
33
+ @hostedZones["HostedZones"].concat(hostedZones.get_hostedZones_array)
34
+ self
35
+ end
36
+
37
+ def get_json
38
+ @hostedZones.to_json
39
+ end
40
+
41
+ def get_hostedZones_array
42
+ @hostedZones["HostedZones"]
43
+ end
44
+
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+
@@ -0,0 +1,13 @@
1
+ module ZAWS
2
+ class AWSCLI
3
+
4
+ def main_regions
5
+ return %w(us-east-1 us-west-2 us-west-1 ap-southeast-1)
6
+ end
7
+
8
+ def extended_Regions
9
+ return %w(us-east-1 eu-central-1 ap-southeast-1 ap-northeast-1 ap-southeast-2 ap-northeast-2 sa-east-1)
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,36 @@
1
+ module ZAWS
2
+ class Nessusapi
3
+ class Data
4
+ class Agents
5
+
6
+ def initialize(shellout, nessusapi)
7
+ @shellout=shellout
8
+ @nessusapi=nessusapi
9
+ @instance_hash=nil
10
+ end
11
+
12
+ def validJSON
13
+ return (@instance_hash.nil?)
14
+ end
15
+
16
+ def load(data, verbose)
17
+ @instance_raw_data = data
18
+ verbose.puts(@instance_raw_data) if verbose
19
+ @instance_hash=data
20
+ end
21
+
22
+ def view(scanner,verbose)
23
+ details = @nessusapi.filestore.retrieve("scanners_#{scanner}_agents")
24
+ if details.nil?
25
+ load(@nessusapi.resource_agents.list.execute(scanner,verbose),verbose)
26
+ @nessusapi.filestore.store("scanners_#{scanner}_agents",@instance_hash,Time.now + @nessusapi.filestore.timeout)
27
+ else
28
+ load(details,verbose)
29
+ end
30
+ return @instance_raw_data
31
+ end
32
+
33
+ end
34
+ end
35
+ end
36
+ end