fog 0.6.0 → 0.7.0

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 (179) hide show
  1. data/Gemfile.lock +11 -6
  2. data/changelog.txt +49 -0
  3. data/fog.gemspec +5 -4
  4. data/lib/fog.rb +1 -1
  5. data/lib/fog/aws/cloud_formation.rb +124 -0
  6. data/lib/fog/aws/elb.rb +4 -1
  7. data/lib/fog/aws/iam.rb +6 -0
  8. data/lib/fog/aws/parsers/cloud_formation/basic.rb +12 -0
  9. data/lib/fog/aws/parsers/cloud_formation/create_stack.rb +19 -0
  10. data/lib/fog/aws/parsers/cloud_formation/describe_stack_events.rb +31 -0
  11. data/lib/fog/aws/parsers/cloud_formation/describe_stack_resources.rb +31 -0
  12. data/lib/fog/aws/parsers/cloud_formation/describe_stacks.rb +72 -0
  13. data/lib/fog/aws/parsers/cloud_formation/get_template.rb +19 -0
  14. data/lib/fog/aws/parsers/cloud_formation/validate_template.rb +52 -0
  15. data/lib/fog/aws/parsers/iam/login_profile.rb +27 -0
  16. data/lib/fog/aws/parsers/iam/upload_server_certificate.rb +26 -0
  17. data/lib/fog/aws/parsers/rds/authorize_db_security_group_ingress.rb +38 -0
  18. data/lib/fog/aws/parsers/rds/create_db_instance.rb +34 -0
  19. data/lib/fog/aws/parsers/rds/create_db_instance_read_replica.rb +34 -0
  20. data/lib/fog/aws/parsers/rds/create_db_parameter_group.rb +35 -0
  21. data/lib/fog/aws/parsers/rds/create_db_security_group.rb +38 -0
  22. data/lib/fog/aws/parsers/rds/create_db_snapshot.rb +35 -0
  23. data/lib/fog/aws/parsers/rds/db_parser.rb +123 -0
  24. data/lib/fog/aws/parsers/rds/delete_db_instance.rb +35 -0
  25. data/lib/fog/aws/parsers/rds/delete_db_parameter_group.rb +27 -0
  26. data/lib/fog/aws/parsers/rds/delete_db_security_group.rb +33 -0
  27. data/lib/fog/aws/parsers/rds/delete_db_snapshot.rb +34 -0
  28. data/lib/fog/aws/parsers/rds/describe_db_instances.rb +36 -0
  29. data/lib/fog/aws/parsers/rds/describe_db_parameter_groups.rb +38 -0
  30. data/lib/fog/aws/parsers/rds/describe_db_parameters.rb +44 -0
  31. data/lib/fog/aws/parsers/rds/describe_db_security_groups.rb +39 -0
  32. data/lib/fog/aws/parsers/rds/describe_db_snapshots.rb +39 -0
  33. data/lib/fog/aws/parsers/rds/modify_db_instance.rb +34 -0
  34. data/lib/fog/aws/parsers/rds/modify_db_parameter_group.rb +28 -0
  35. data/lib/fog/aws/parsers/rds/reboot_db_instance.rb +35 -0
  36. data/lib/fog/aws/parsers/rds/restore_db_instance_from_db_snapshot.rb +34 -0
  37. data/lib/fog/aws/parsers/rds/restore_db_instance_to_point_in_time.rb +35 -0
  38. data/lib/fog/aws/parsers/rds/revoke_db_security_group_ingress.rb +39 -0
  39. data/lib/fog/aws/parsers/rds/security_group_parser.rb +39 -0
  40. data/lib/fog/aws/parsers/rds/snapshot_parser.rb +40 -0
  41. data/lib/fog/aws/rds.rb +161 -0
  42. data/lib/fog/aws/rds/models/parameter.rb +21 -0
  43. data/lib/fog/aws/rds/models/parameter_group.rb +36 -0
  44. data/lib/fog/aws/rds/models/parameter_groups.rb +27 -0
  45. data/lib/fog/aws/rds/models/parameters.rb +37 -0
  46. data/lib/fog/aws/rds/models/security_group.rb +73 -0
  47. data/lib/fog/aws/rds/models/security_groups.rb +43 -0
  48. data/lib/fog/aws/rds/models/server.rb +105 -0
  49. data/lib/fog/aws/rds/models/servers.rb +27 -0
  50. data/lib/fog/aws/rds/models/snapshot.rb +49 -0
  51. data/lib/fog/aws/rds/models/snapshots.rb +45 -0
  52. data/lib/fog/aws/requests/cloud_formation/create_stack.rb +71 -0
  53. data/lib/fog/aws/requests/cloud_formation/delete_stack.rb +30 -0
  54. data/lib/fog/aws/requests/cloud_formation/describe_stack_events.rb +44 -0
  55. data/lib/fog/aws/requests/cloud_formation/describe_stack_resources.rb +43 -0
  56. data/lib/fog/aws/requests/cloud_formation/describe_stacks.rb +42 -0
  57. data/lib/fog/aws/requests/cloud_formation/get_template.rb +32 -0
  58. data/lib/fog/aws/requests/cloud_formation/validate_template.rb +34 -0
  59. data/lib/fog/aws/requests/elb/create_load_balancer.rb +4 -0
  60. data/lib/fog/aws/requests/iam/create_login_profile.rb +36 -0
  61. data/lib/fog/aws/requests/iam/delete_login_profile.rb +31 -0
  62. data/lib/fog/aws/requests/iam/delete_server_certificate.rb +32 -0
  63. data/lib/fog/aws/requests/iam/get_login_profile.rb +35 -0
  64. data/lib/fog/aws/requests/iam/update_login_profile.rb +33 -0
  65. data/lib/fog/aws/requests/iam/upload_server_certificate.rb +45 -0
  66. data/lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb +43 -0
  67. data/lib/fog/aws/requests/rds/create_db_instance.rb +56 -0
  68. data/lib/fog/aws/requests/rds/create_db_instance_read_replica.rb +42 -0
  69. data/lib/fog/aws/requests/rds/create_db_parameter_group.rb +41 -0
  70. data/lib/fog/aws/requests/rds/create_db_security_group.rb +37 -0
  71. data/lib/fog/aws/requests/rds/create_db_snapshot.rb +36 -0
  72. data/lib/fog/aws/requests/rds/delete_db_instance.rb +40 -0
  73. data/lib/fog/aws/requests/rds/delete_db_parameter_group.rb +36 -0
  74. data/lib/fog/aws/requests/rds/delete_db_security_group.rb +36 -0
  75. data/lib/fog/aws/requests/rds/delete_db_snapshot.rb +36 -0
  76. data/lib/fog/aws/requests/rds/describe_db_instances.rb +42 -0
  77. data/lib/fog/aws/requests/rds/describe_db_parameter_groups.rb +45 -0
  78. data/lib/fog/aws/requests/rds/describe_db_parameters.rb +46 -0
  79. data/lib/fog/aws/requests/rds/describe_db_security_groups.rb +39 -0
  80. data/lib/fog/aws/requests/rds/describe_db_snapshots.rb +42 -0
  81. data/lib/fog/aws/requests/rds/modify_db_instance.rb +54 -0
  82. data/lib/fog/aws/requests/rds/modify_db_parameter_group.rb +55 -0
  83. data/lib/fog/aws/requests/rds/reboot_db_instance.rb +34 -0
  84. data/lib/fog/aws/requests/rds/restore_db_instance_from_db_snapshot.rb +34 -0
  85. data/lib/fog/aws/requests/rds/restore_db_instance_to_point_in_time.rb +35 -0
  86. data/lib/fog/aws/requests/rds/revoke_db_security_group_ingress.rb +44 -0
  87. data/lib/fog/aws/simpledb.rb +21 -7
  88. data/lib/fog/bin.rb +2 -1
  89. data/lib/fog/bin/aws.rb +8 -0
  90. data/lib/fog/bin/virtual_box.rb +52 -0
  91. data/lib/fog/cdn/aws.rb +9 -8
  92. data/lib/fog/cdn/rackspace.rb +6 -6
  93. data/lib/fog/cdn/requests/rackspace/post_container.rb +30 -0
  94. data/lib/fog/cdn/requests/rackspace/put_container.rb +1 -1
  95. data/lib/fog/compute.rb +6 -3
  96. data/lib/fog/compute/aws.rb +11 -7
  97. data/lib/fog/compute/bluebox.rb +5 -6
  98. data/lib/fog/compute/brightbox.rb +3 -0
  99. data/lib/fog/compute/go_grid.rb +5 -6
  100. data/lib/fog/compute/linode.rb +5 -6
  101. data/lib/fog/compute/models/aws/flavors.rb +19 -18
  102. data/lib/fog/compute/models/aws/server.rb +23 -0
  103. data/lib/fog/compute/models/aws/tag.rb +1 -1
  104. data/lib/fog/compute/models/brightbox/server.rb +7 -1
  105. data/lib/fog/compute/models/virtual_box/medium.rb +87 -0
  106. data/lib/fog/compute/models/virtual_box/medium_format.rb +34 -0
  107. data/lib/fog/compute/models/virtual_box/mediums.rb +32 -0
  108. data/lib/fog/compute/models/virtual_box/nat_engine.rb +65 -0
  109. data/lib/fog/compute/models/virtual_box/nat_redirect.rb +91 -0
  110. data/lib/fog/compute/models/virtual_box/nat_redirects.rb +41 -0
  111. data/lib/fog/compute/models/virtual_box/network_adapter.rb +82 -0
  112. data/lib/fog/compute/models/virtual_box/network_adapters.rb +42 -0
  113. data/lib/fog/compute/models/virtual_box/server.rb +241 -0
  114. data/lib/fog/compute/models/virtual_box/servers.rb +41 -0
  115. data/lib/fog/compute/models/virtual_box/storage_controller.rb +83 -0
  116. data/lib/fog/compute/models/virtual_box/storage_controllers.rb +38 -0
  117. data/lib/fog/compute/models/voxel/servers.rb +7 -6
  118. data/lib/fog/compute/new_servers.rb +5 -6
  119. data/lib/fog/compute/parsers/aws/monitor_unmonitor_instances.rb +35 -0
  120. data/lib/fog/compute/rackspace.rb +7 -7
  121. data/lib/fog/compute/requests/aws/delete_tags.rb +12 -9
  122. data/lib/fog/compute/requests/aws/monitor_instances.rb +52 -0
  123. data/lib/fog/compute/requests/aws/revoke_security_group_ingress.rb +24 -8
  124. data/lib/fog/compute/requests/aws/unmonitor_instances.rb +53 -0
  125. data/lib/fog/compute/requests/brightbox/activate_console_server.rb +20 -0
  126. data/lib/fog/compute/requests/brightbox/add_listeners_load_balancer.rb +20 -0
  127. data/lib/fog/compute/requests/brightbox/remove_listeners_load_balancer.rb +20 -0
  128. data/lib/fog/compute/slicehost.rb +5 -6
  129. data/lib/fog/compute/virtual_box.rb +48 -0
  130. data/lib/fog/compute/voxel.rb +30 -27
  131. data/lib/fog/core.rb +1 -0
  132. data/lib/fog/core/attributes.rb +3 -1
  133. data/lib/fog/core/collection.rb +2 -2
  134. data/lib/fog/core/credentials.rb +13 -3
  135. data/lib/fog/core/scp.rb +0 -4
  136. data/lib/fog/core/service.rb +0 -8
  137. data/lib/fog/core/ssh.rb +0 -4
  138. data/lib/fog/dns.rb +3 -3
  139. data/lib/fog/dns/aws.rb +8 -8
  140. data/lib/fog/dns/bluebox.rb +5 -7
  141. data/lib/fog/dns/dnsimple.rb +7 -7
  142. data/lib/fog/dns/linode.rb +5 -6
  143. data/lib/fog/dns/models/dnsimple/record.rb +11 -1
  144. data/lib/fog/dns/models/dnsimple/records.rb +7 -7
  145. data/lib/fog/dns/models/dnsimple/zones.rb +2 -1
  146. data/lib/fog/dns/requests/dnsimple/get_record.rb +34 -0
  147. data/lib/fog/dns/slicehost.rb +5 -6
  148. data/lib/fog/dns/zerigo.rb +5 -7
  149. data/lib/fog/providers.rb +2 -1
  150. data/lib/fog/providers/aws.rb +10 -8
  151. data/lib/fog/providers/virtual_box.rb +11 -0
  152. data/lib/fog/storage.rb +21 -0
  153. data/lib/fog/storage/aws.rb +16 -32
  154. data/lib/fog/storage/google.rb +6 -27
  155. data/lib/fog/storage/local.rb +7 -7
  156. data/lib/fog/storage/models/rackspace/directory.rb +1 -1
  157. data/lib/fog/storage/models/rackspace/file.rb +1 -0
  158. data/lib/fog/storage/rackspace.rb +5 -27
  159. data/lib/fog/storage/requests/aws/put_object.rb +2 -2
  160. data/lib/fog/storage/requests/aws/upload_part.rb +1 -1
  161. data/lib/fog/storage/requests/google/put_object.rb +2 -2
  162. data/lib/fog/storage/requests/rackspace/put_object.rb +1 -1
  163. data/tests/aws/requests/cloud_formation/stack_tests.rb +130 -0
  164. data/tests/aws/requests/iam/login_profile_tests.rb +64 -0
  165. data/tests/aws/requests/rds/helper.rb +169 -0
  166. data/tests/aws/requests/rds/instance_tests.rb +129 -0
  167. data/tests/aws/requests/rds/model_tests.rb +98 -0
  168. data/tests/aws/requests/rds/parameter_group_tests.rb +68 -0
  169. data/tests/aws/requests/rds/parameter_request_tests.rb +35 -0
  170. data/tests/compute/models/aws/server_monitor_tests.rb +47 -0
  171. data/tests/compute/models/server_tests.rb +7 -23
  172. data/tests/compute/parsers/aws/monitor_unmonitor_instances_tests.rb +49 -0
  173. data/tests/compute/requests/aws/security_group_tests.rb +69 -52
  174. data/tests/compute/requests/aws/tag_tests.rb +5 -5
  175. data/tests/compute/requests/brightbox/helper.rb +7 -6
  176. data/tests/compute/requests/brightbox/server_tests.rb +5 -0
  177. data/tests/compute/requests/voxel/server_tests.rb +2 -3
  178. data/tests/storage/requests/aws/bucket_tests.rb +10 -0
  179. metadata +148 -12
@@ -0,0 +1,42 @@
1
+ module Fog
2
+ module AWS
3
+ class CloudFormation
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/cloud_formation/describe_stacks'
7
+
8
+ # Describe stacks
9
+ #
10
+ # ==== Parameters
11
+ # * options<~Hash>:
12
+ # * 'StackName'<~String>: name of the stack to describe
13
+ #
14
+ # ==== Returns
15
+ # * response<~Excon::Response>:
16
+ # * body<~Hash>:
17
+ # * 'Stacks'<~Array> - Matching stacks
18
+ # * stack<~Hash>:
19
+ # * 'StackName'<~String> -
20
+ # * 'StackId'<~String> -
21
+ # * 'CreationTime'<~String> -
22
+ # * 'StackStatus'<~String> -
23
+ # * 'DisableRollback'<~String> -
24
+ # * 'Outputs'<~Array> -
25
+ # * output<~Hash>:
26
+ # * 'OutputKey'<~String> -
27
+ # * 'OutputValue'<~String> -
28
+ #
29
+ # ==== See Also
30
+ # http://docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_DescribeStacks.html
31
+ #
32
+ def describe_stacks(options = {})
33
+ request({
34
+ 'Action' => 'DescribeStacks',
35
+ :parser => Fog::Parsers::AWS::CloudFormation::DescribeStacks.new
36
+ }.merge!(options))
37
+ end
38
+
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,32 @@
1
+ module Fog
2
+ module AWS
3
+ class CloudFormation
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/cloud_formation/get_template'
7
+
8
+ # Describe stacks
9
+ #
10
+ # ==== Parameters
11
+ # * stack_name<~String> - stack name to get template from
12
+ #
13
+ # ==== Returns
14
+ # * response<~Excon::Response>:
15
+ # * body<~Hash>:
16
+ # * 'TemplateBody'<~String> - structure containing the template body (json)
17
+ #
18
+ # ==== See Also
19
+ # http://docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_GetTemplate.html
20
+ #
21
+ def get_template(stack_name)
22
+ request(
23
+ 'Action' => 'GetTemplate',
24
+ 'StackName' => stack_name,
25
+ :parser => Fog::Parsers::AWS::CloudFormation::GetTemplate.new
26
+ )
27
+ end
28
+
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,34 @@
1
+ module Fog
2
+ module AWS
3
+ class CloudFormation
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/cloud_formation/validate_template'
7
+
8
+ # Describe stacks
9
+ #
10
+ # ==== Parameters
11
+ # * options<~Hash>:
12
+ # * 'TemplateBody'<~String> - template structure
13
+ # * 'TemplateURL'<~String> - template url
14
+ #
15
+ # ==== Returns
16
+ # * response<~Excon::Response>:
17
+ # * body<~Hash>:
18
+ # * 'Description'<~String> - description found within the template
19
+ # * 'Parameters'<~String> - list of template parameter structures
20
+ #
21
+ # ==== See Also
22
+ # http://docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_ValidateTemplate.html
23
+ #
24
+ def validate_template(options = {})
25
+ request({
26
+ 'Action' => 'ValidateTemplate',
27
+ :parser => Fog::Parsers::AWS::CloudFormation::ValidateTemplate.new
28
+ }.merge!(options))
29
+ end
30
+
31
+ end
32
+ end
33
+ end
34
+ end
@@ -14,6 +14,7 @@ module Fog
14
14
  # * 'Protocol'<~String> - Protocol to use. Either HTTP or TCP.
15
15
  # * 'LoadBalancerPort'<~Integer> - The port that the ELB will listen to for outside traffic
16
16
  # * 'InstancePort'<~Integer> - The port on the instance that the ELB will forward traffic to
17
+ # * 'SSLCertificateId'<~String> - ARN of the server certificate
17
18
  # ==== Returns
18
19
  # * response<~Excon::Response>:
19
20
  # * body<~Hash>:
@@ -27,15 +28,18 @@ module Fog
27
28
  listener_protocol = []
28
29
  listener_lb_port = []
29
30
  listener_instance_port = []
31
+ listener_ssl_certificate_id = []
30
32
  listeners.each do |listener|
31
33
  listener_protocol.push(listener['Protocol'])
32
34
  listener_lb_port.push(listener['LoadBalancerPort'])
33
35
  listener_instance_port.push(listener['InstancePort'])
36
+ listener_ssl_certificate_id.push(listener['SSLCertificateId'])
34
37
  end
35
38
 
36
39
  params.merge!(AWS.indexed_param('Listeners.member.%d.Protocol', listener_protocol))
37
40
  params.merge!(AWS.indexed_param('Listeners.member.%d.LoadBalancerPort', listener_lb_port))
38
41
  params.merge!(AWS.indexed_param('Listeners.member.%d.InstancePort', listener_instance_port))
42
+ params.merge!(AWS.indexed_param('Listeners.member.%d.SSLCertificateId', listener_ssl_certificate_id))
39
43
 
40
44
  request({
41
45
  'Action' => 'CreateLoadBalancer',
@@ -0,0 +1,36 @@
1
+ module Fog
2
+ module AWS
3
+ class IAM
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/iam/login_profile'
7
+
8
+ # Creates a login profile for a user
9
+ #
10
+ # http://docs.amazonwebservices.com/IAM/latest/APIReference/API_CreateLoginProfile.html
11
+ # ==== Parameters
12
+ # * user_name<~String> - Name of user to create a login profile for
13
+ # * password<~String> - The new password for this user
14
+ #
15
+ # ==== Returns
16
+ # * response<~Excon::Response>:
17
+ # * body<~Hash>:
18
+ # * 'LoginProfile'<~Hash>
19
+ # * UserName<~String>
20
+ # * CreateDate
21
+ # * 'RequestId'<~String> - Id of the request
22
+ #
23
+ #
24
+ def create_login_profile(user_name, password)
25
+ request({
26
+ 'Action' => 'CreateLoginProfile',
27
+ 'UserName' => user_name,
28
+ 'Password' => password,
29
+ :parser => Fog::Parsers::AWS::IAM::LoginProfile.new
30
+ })
31
+ end
32
+
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,31 @@
1
+ module Fog
2
+ module AWS
3
+ class IAM
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/iam/basic'
7
+
8
+ # Deletes a user's login profile
9
+ #
10
+ # http://docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteLoginProfile.html
11
+ # ==== Parameters
12
+ # * user_name<~String> - Name of user whose login profile you want to delete
13
+ #
14
+ # ==== Returns
15
+ # * response<~Excon::Response>:
16
+ # * body<~Hash>:
17
+ # * 'RequestId'<~String> - Id of the request
18
+ #
19
+ #
20
+ def delete_login_profile(user_name)
21
+ request({
22
+ 'Action' => 'DeleteLoginProfile',
23
+ 'UserName' => user_name,
24
+ :parser => Fog::Parsers::AWS::IAM::Basic.new
25
+ })
26
+ end
27
+
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,32 @@
1
+ module Fog
2
+ module AWS
3
+ class IAM
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/iam/basic'
7
+
8
+ # Deletes the specified server certificate.
9
+ #
10
+ # ==== Parameters
11
+ # * server_certificate_name<~String>: The name of the server certificate you want to delete.
12
+ #
13
+ # ==== Returns
14
+ # * response<~Excon::Response>:
15
+ # * body<~Hash>:
16
+ # * 'RequestId'<~String> - Id of the request
17
+ #
18
+ # ==== See Also
19
+ # http://docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteServerCertificate.html
20
+ #
21
+ def delete_server_certificate(server_certificate_name)
22
+ request({
23
+ 'Action' => 'DeleteServerCertificate',
24
+ 'ServerCertificateName' => server_certificate_name,
25
+ :parser => Fog::Parsers::AWS::IAM::Basic.new
26
+ })
27
+ end
28
+
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,35 @@
1
+ module Fog
2
+ module AWS
3
+ class IAM
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/iam/login_profile'
7
+
8
+ # Retrieves the login profile for a user
9
+ #
10
+ # http://docs.amazonwebservices.com/IAM/latest/APIReference/API_CreateLoginProfile.html
11
+ # ==== Parameters
12
+ # * user_name<~String> - Name of user to retrieve the login profile for
13
+ # * password<~String> - The new password for this user
14
+ #
15
+ # ==== Returns
16
+ # * response<~Excon::Response>:
17
+ # * body<~Hash>:
18
+ # * 'LoginProfile'<~Hash>
19
+ # * UserName<~String>
20
+ # * CreateDate
21
+ # * 'RequestId'<~String> - Id of the request
22
+ #
23
+ #
24
+ def get_login_profile(user_name)
25
+ request({
26
+ 'Action' => 'GetLoginProfile',
27
+ 'UserName' => user_name,
28
+ :parser => Fog::Parsers::AWS::IAM::LoginProfile.new
29
+ })
30
+ end
31
+
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,33 @@
1
+ module Fog
2
+ module AWS
3
+ class IAM
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/iam/basic'
7
+
8
+ # Updates a login profile for a user
9
+ #
10
+ # http://docs.amazonwebservices.com/IAM/latest/APIReference/API_UpdateLoginProfile.html
11
+ # ==== Parameters
12
+ # * user_name<~String> - Name of user to change the login profile for
13
+ # * password<~String> - The new password for this user
14
+ #
15
+ # ==== Returns
16
+ # * response<~Excon::Response>:
17
+ # * body<~Hash>:
18
+ # * 'RequestId'<~String> - Id of the request
19
+ #
20
+ #
21
+ def update_login_profile(user_name, password)
22
+ request({
23
+ 'Action' => 'UpdateLoginProfile',
24
+ 'UserName' => user_name,
25
+ 'Password' => password,
26
+ :parser => Fog::Parsers::AWS::IAM::Basic.new
27
+ })
28
+ end
29
+
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,45 @@
1
+ module Fog
2
+ module AWS
3
+ class IAM
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/iam/upload_server_certificate'
7
+
8
+ # Uploads a server certificate entity for the AWS Account.
9
+ # Includes a public key certificate, a private key, and an optional certificate chain, which should all be PEM-encoded.
10
+ #
11
+ # ==== Parameters
12
+ # * certificate<~Hash>: The contents of the public key certificate in PEM-encoded format.
13
+ # * private_key<~Hash>: The contents of the private key in PEM-encoded format.
14
+ # * name<~Hash>: The name for the server certificate. Do not include the path in this value.
15
+ # * options<~Hash>:
16
+ # * 'CertificateChain'<~String> - The contents of the certificate chain. Typically a concatenation of the PEM-encoded public key certificates of the chain.
17
+ # * 'Path'<~String> - The path for the server certificate.
18
+ #
19
+ # ==== Returns
20
+ # * response<~Excon::Response>:
21
+ # * body<~Hash>:
22
+ # * 'UploadServerCertificateResult'<~Hash>:
23
+ # * 'CertificateId'<~String> -
24
+ # * 'UserName'<~String> -
25
+ # * 'CertificateBody'<~String> -
26
+ # * 'Status'<~String> -
27
+ # * 'RequestId'<~String> - Id of the request
28
+ #
29
+ # ==== See Also
30
+ # http://docs.amazonwebservices.com/IAM/latest/APIReference/index.html?API_UploadServerCertificate.html
31
+ #
32
+ def upload_server_certificate(certificate, private_key, name, options = {})
33
+ request({
34
+ 'Action' => 'UploadServerCertificate',
35
+ 'CertificateBody' => certificate,
36
+ 'PrivateKey' => private_key,
37
+ 'ServerCertificateName' => name,
38
+ :parser => Fog::Parsers::AWS::IAM::UploadServerCertificate.new
39
+ }.merge!(options))
40
+ end
41
+
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,43 @@
1
+ module Fog
2
+ module AWS
3
+ class RDS
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/rds/authorize_db_security_group_ingress'
7
+
8
+ # authorizes a db security group ingress
9
+ # http://docs.amazonwebservices.com/AmazonRDS/latest/APIReference/index.html?API_AuthorizeDBSecurityGroupIngress.html
10
+ # ==== Parameters
11
+ # * CIDRIP <~String> - The IP range to authorize
12
+ # * DBSecurityGroupName <~String> - The name for the DB Security Group.
13
+ # * EC2SecurityGroupName <~String> - Name of the EC2 Security Group to authorize.
14
+ # * EC2SecurityGroupOwnerId <~String> - AWS Account Number of the owner of the security group specified in the EC2SecurityGroupName parameter. The AWS Access Key ID is not an acceptable value.
15
+ # ==== Returns
16
+ # * response<~Excon::Response>:
17
+ # * body<~Hash>:
18
+ def authorize_db_security_group_ingress(name, opts={})
19
+ unless opts.key?('CIDRIP') || (opts.key?('EC2SecurityGroupName') && opts.key?('EC2SecurityGroupOwnerId'))
20
+ raise ArgumentError, 'Must specify CIDRIP, or both EC2SecurityGroupName and EC2SecurityGroupOwnerId'
21
+ end
22
+
23
+ request({
24
+ 'Action' => 'AuthorizeDBSecurityGroupIngress',
25
+ :parser => Fog::Parsers::AWS::RDS::AuthorizeDBSecurityGroupIngress.new,
26
+ 'DBSecurityGroupName' => name
27
+ }.merge(opts))
28
+
29
+ end
30
+
31
+ end
32
+
33
+ class Mock
34
+
35
+ def authorize_db_security_group_ingress(name, opts = {})
36
+ Fog::Mock.not_implemented
37
+ end
38
+
39
+ end
40
+ end
41
+ end
42
+ end
43
+
@@ -0,0 +1,56 @@
1
+ module Fog
2
+ module AWS
3
+ class RDS
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/rds/create_db_instance'
7
+
8
+ # create a db instance
9
+ # http://docs.amazonwebservices.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html
10
+ # ==== Parameters
11
+ # * DBInstanceIdentifier <~String> - name of the db instance to modify
12
+ #
13
+ # * AllocatedStorage <~Integer> Storage space, in GB
14
+ # * AutoMinorVersionUpgrade <~Boolean> Indicates that minor version upgrades will be applied automatically to the DB Instance during the maintenance window
15
+ # * AvailabilityZone <~String> The availability zone to create the instance in
16
+ # * BackupRetentionPeriod <~Integer> 0-8 The number of days to retain automated backups.
17
+ # * DBInstanceClass <~String> The new compute and memory capacity of the DB Instance
18
+ # * DBName <~String> The name of the database to create when the DB Instance is created
19
+ # * DBParameterGroupName <~String> The name of the DB Parameter Group to apply to this DB Instance
20
+ # * DBSecurityGroups <~Array> A list of DB Security Groups to authorize on this DB Instance
21
+ # * Engine <~String> The name of the database engine to be used for this instance.
22
+ # * EngineVersion <~String> The version number of the database engine to use.
23
+ # * MasterUsername <~String> The db master user
24
+ # * MasterUserPassword <~String> The new password for the DB Instance master user
25
+ # * MultiAZ <~Boolean> Specifies if the DB Instance is a Multi-AZ deployment
26
+ # * Port <~Integer> The port number on which the database accepts connections.
27
+ # * PreferredBackupWindow <~String> The daily time range during which automated backups are created if automated backups are enabled
28
+ # * PreferredMaintenanceWindow <~String> The weekly time range (in UTC) during which system maintenance can occur, which may result in an outage
29
+ # ==== Returns
30
+ # * response<~Excon::Response>:
31
+ # * body<~Hash>:
32
+ def create_db_instance(db_name, options={})
33
+
34
+ if security_groups = options.delete('DBSecurityGroups')
35
+ options.merge!(AWS.indexed_param('DBSecurityGroups.member.%d', [*security_groups]))
36
+ end
37
+
38
+ request({
39
+ 'Action' => 'CreateDBInstance',
40
+ 'DBInstanceIdentifier' => db_name,
41
+ :parser => Fog::Parsers::AWS::RDS::CreateDBInstance.new,
42
+ }.merge(options))
43
+ end
44
+
45
+ end
46
+
47
+ class Mock
48
+
49
+ def create_db_instance(db_name, options={})
50
+ Fog::Mock.not_implemented
51
+ end
52
+
53
+ end
54
+ end
55
+ end
56
+ end