fog 0.3.17 → 0.3.18
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +5 -5
- data/README.rdoc +16 -7
- data/fog.gemspec +102 -27
- data/lib/fog.rb +3 -2
- data/lib/fog/aws/cdn.rb +2 -1
- data/lib/fog/aws/compute.rb +3 -2
- data/lib/fog/aws/iam.rb +8 -0
- data/lib/fog/aws/models/compute/flavors.rb +2 -1
- data/lib/fog/aws/models/compute/server.rb +3 -0
- data/lib/fog/aws/models/compute/volume.rb +9 -8
- data/lib/fog/aws/models/storage/file.rb +24 -14
- data/lib/fog/aws/models/storage/files.rb +4 -14
- data/lib/fog/aws/parsers/cdn/distribution.rb +16 -1
- data/lib/fog/aws/parsers/cdn/get_distribution_list.rb +13 -0
- data/lib/fog/aws/parsers/compute/describe_volumes.rb +2 -0
- data/lib/fog/aws/parsers/iam/create_group.rb +2 -2
- data/lib/fog/aws/parsers/iam/create_user.rb +26 -0
- data/lib/fog/aws/parsers/iam/list_group_policies.rb +28 -0
- data/lib/fog/aws/parsers/iam/list_groups.rb +1 -1
- data/lib/fog/aws/parsers/storage/complete_multipart_upload.rb +24 -0
- data/lib/fog/aws/parsers/storage/initiate_multipart_upload.rb +24 -0
- data/lib/fog/aws/parsers/storage/list_multipart_uploads.rb +56 -0
- data/lib/fog/aws/parsers/storage/list_parts.rb +40 -0
- data/lib/fog/aws/requests/cdn/get_distribution.rb +11 -1
- data/lib/fog/aws/requests/cdn/get_distribution_list.rb +9 -1
- data/lib/fog/aws/requests/cdn/post_distribution.rb +16 -5
- data/lib/fog/aws/requests/cdn/put_distribution_config.rb +102 -0
- data/lib/fog/aws/requests/compute/describe_volumes.rb +1 -0
- data/lib/fog/aws/requests/compute/run_instances.rb +1 -1
- data/lib/fog/aws/requests/iam/add_user_to_group.rb +42 -0
- data/lib/fog/aws/requests/iam/create_group.rb +7 -3
- data/lib/fog/aws/requests/iam/create_user.rb +47 -0
- data/lib/fog/aws/requests/iam/delete_group.rb +5 -1
- data/lib/fog/aws/requests/iam/delete_group_policy.rb +42 -0
- data/lib/fog/aws/requests/iam/delete_user.rb +40 -0
- data/lib/fog/aws/requests/iam/list_group_policies.rb +47 -0
- data/lib/fog/aws/requests/iam/list_groups.rb +9 -4
- data/lib/fog/aws/requests/iam/put_group_policy.rb +44 -0
- data/lib/fog/aws/requests/iam/remove_user_from_group.rb +42 -0
- data/lib/fog/aws/requests/simpledb/put_attributes.rb +2 -2
- data/lib/fog/aws/requests/storage/abort_multipart_upload.rb +38 -0
- data/lib/fog/aws/requests/storage/complete_multipart_upload.rb +60 -0
- data/lib/fog/aws/requests/storage/get_service.rb +1 -1
- data/lib/fog/aws/requests/storage/initiate_multipart_upload.rb +55 -0
- data/lib/fog/aws/requests/storage/list_multipart_uploads.rb +68 -0
- data/lib/fog/aws/requests/storage/list_parts.rb +67 -0
- data/lib/fog/aws/requests/storage/put_object.rb +12 -5
- data/lib/fog/aws/requests/storage/upload_part.rb +51 -0
- data/lib/fog/aws/storage.rb +12 -6
- data/lib/fog/brightbox.rb +7 -0
- data/lib/fog/brightbox/bin.rb +23 -0
- data/lib/fog/brightbox/compute.rb +134 -0
- data/lib/fog/brightbox/models/compute/account.rb +51 -0
- data/lib/fog/brightbox/models/compute/cloud_ip.rb +43 -0
- data/lib/fog/brightbox/models/compute/cloud_ips.rb +34 -0
- data/lib/fog/brightbox/models/compute/flavor.rb +33 -0
- data/lib/fog/brightbox/models/compute/flavors.rb +28 -0
- data/lib/fog/brightbox/models/compute/image.rb +52 -0
- data/lib/fog/brightbox/models/compute/images.rb +28 -0
- data/lib/fog/brightbox/models/compute/server.rb +94 -0
- data/lib/fog/brightbox/models/compute/servers.rb +29 -0
- data/lib/fog/brightbox/models/compute/user.rb +39 -0
- data/lib/fog/brightbox/models/compute/users.rb +29 -0
- data/lib/fog/brightbox/models/compute/zone.rb +21 -0
- data/lib/fog/brightbox/models/compute/zones.rb +29 -0
- data/lib/fog/brightbox/requests/compute/create_api_client.rb +27 -0
- data/lib/fog/brightbox/requests/compute/create_cloud_ip.rb +27 -0
- data/lib/fog/brightbox/requests/compute/create_image.rb +27 -0
- data/lib/fog/brightbox/requests/compute/create_server.rb +27 -0
- data/lib/fog/brightbox/requests/compute/destroy_api_client.rb +28 -0
- data/lib/fog/brightbox/requests/compute/destroy_cloud_ip.rb +28 -0
- data/lib/fog/brightbox/requests/compute/destroy_image.rb +28 -0
- data/lib/fog/brightbox/requests/compute/destroy_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_account.rb +27 -0
- data/lib/fog/brightbox/requests/compute/get_api_client.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_cloud_ip.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_image.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_interface.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_server_type.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_user.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_zone.rb +28 -0
- data/lib/fog/brightbox/requests/compute/list_api_clients.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_cloud_ips.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_images.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_server_types.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_servers.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_users.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_zones.rb +27 -0
- data/lib/fog/brightbox/requests/compute/map_cloud_ip.rb +28 -0
- data/lib/fog/brightbox/requests/compute/reset_ftp_password_account.rb +27 -0
- data/lib/fog/brightbox/requests/compute/resize_server.rb +27 -0
- data/lib/fog/brightbox/requests/compute/shutdown_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/snapshot_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/start_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/stop_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/unmap_cloud_ip.rb +28 -0
- data/lib/fog/brightbox/requests/compute/update_account.rb +28 -0
- data/lib/fog/brightbox/requests/compute/update_api_client.rb +29 -0
- data/lib/fog/brightbox/requests/compute/update_image.rb +29 -0
- data/lib/fog/brightbox/requests/compute/update_server.rb +29 -0
- data/lib/fog/brightbox/requests/compute/update_user.rb +29 -0
- data/lib/fog/core/attributes.rb +3 -3
- data/lib/fog/core/bin.rb +2 -0
- data/lib/fog/core/compute.rb +5 -2
- data/lib/fog/core/credentials.rb +2 -0
- data/lib/fog/core/service.rb +24 -12
- data/lib/fog/google/models/storage/file.rb +23 -14
- data/lib/fog/google/models/storage/files.rb +4 -14
- data/lib/fog/google/requests/storage/get_bucket.rb +0 -1
- data/lib/fog/google/requests/storage/put_object.rb +9 -2
- data/lib/fog/rackspace/models/storage/file.rb +3 -3
- data/lib/fog/rackspace/models/storage/files.rb +5 -13
- data/spec/aws/models/compute/server_spec.rb +0 -3
- data/spec/aws/requests/simpledb/get_attributes_spec.rb +11 -0
- data/spec/core/attributes_spec.rb +52 -0
- data/spec/vcloud/bin_spec.rb +1 -1
- data/spec/vcloud/vcloud_spec.rb +1 -1
- data/tests/aws/models/compute/flavors_tests.rb +5 -0
- data/tests/aws/models/compute/server_tests.rb +6 -0
- data/tests/aws/models/compute/servers_tests.rb +6 -0
- data/tests/aws/requests/storage/bucket_tests.rb +1 -1
- data/tests/aws/requests/storage/multipart_upload_tests.rb +135 -0
- data/tests/bluebox/models/compute/flavors_tests.rb +5 -0
- data/tests/bluebox/models/compute/server_tests.rb +5 -0
- data/tests/bluebox/models/compute/servers_tests.rb +6 -0
- data/tests/brightbox/helper.rb +0 -0
- data/tests/brightbox/models/compute/flavors_tests.rb +5 -0
- data/tests/brightbox/models/compute/server_tests.rb +6 -0
- data/tests/brightbox/models/compute/servers_tests.rb +6 -0
- data/tests/google/requests/storage/bucket_tests.rb +78 -0
- data/tests/google/requests/storage/object_tests.rb +81 -0
- data/tests/helper.rb +19 -4
- data/tests/helpers/collection_tests.rb +51 -0
- data/tests/helpers/compute/flavors_tests.rb +34 -0
- data/tests/helpers/compute/server_tests.rb +19 -0
- data/tests/helpers/compute/servers_tests.rb +11 -0
- data/tests/helpers/model_tests.rb +28 -0
- data/tests/helpers/storage/directories_tests.rb +4 -36
- data/tests/helpers/storage/directory_tests.rb +8 -22
- data/tests/helpers/storage/file_tests.rb +8 -25
- data/tests/helpers/storage/files_tests.rb +5 -39
- data/tests/local/models/storage/directories_tests.rb +1 -1
- data/tests/local/models/storage/directory_tests.rb +1 -1
- data/tests/local/models/storage/file_tests.rb +1 -1
- data/tests/local/models/storage/files_tests.rb +1 -1
- data/tests/rackspace/models/compute/flavors_tests.rb +5 -0
- data/tests/rackspace/models/compute/server_tests.rb +6 -0
- data/tests/rackspace/models/compute/servers_tests.rb +6 -0
- data/tests/rackspace/models/storage/directories_tests.rb +1 -1
- data/tests/rackspace/models/storage/directory_tests.rb +1 -1
- data/tests/rackspace/models/storage/file_tests.rb +1 -1
- data/tests/rackspace/models/storage/files_tests.rb +1 -1
- data/tests/slicehost/models/compute/flavors_tests.rb +5 -0
- data/tests/slicehost/models/compute/server_tests.rb +6 -0
- data/tests/slicehost/models/compute/servers_tests.rb +6 -0
- metadata +108 -31
- data/spec/aws/models/compute/flavors_spec.rb +0 -14
- data/spec/aws/models/compute/servers_spec.rb +0 -21
- data/spec/bluebox/models/compute/flavors_spec.rb +0 -17
- data/spec/bluebox/models/compute/server_spec.rb +0 -29
- data/spec/bluebox/models/compute/servers_spec.rb +0 -31
- data/spec/google/requests/storage/copy_object_spec.rb +0 -61
- data/spec/google/requests/storage/delete_bucket_spec.rb +0 -35
- data/spec/google/requests/storage/delete_object_spec.rb +0 -38
- data/spec/google/requests/storage/get_bucket_spec.rb +0 -110
- data/spec/google/requests/storage/get_object_spec.rb +0 -58
- data/spec/google/requests/storage/get_service_spec.rb +0 -32
- data/spec/google/requests/storage/head_object_spec.rb +0 -26
- data/spec/google/requests/storage/put_bucket_spec.rb +0 -21
- data/spec/google/requests/storage/put_object_spec.rb +0 -43
- data/spec/rackspace/models/compute/flavors_spec.rb +0 -18
- data/spec/rackspace/models/compute/server_spec.rb +0 -55
- data/spec/rackspace/models/compute/servers_spec.rb +0 -22
- data/spec/shared_examples/flavors_examples.rb +0 -16
- data/spec/shared_examples/server_examples.rb +0 -43
- data/spec/shared_examples/servers_examples.rb +0 -37
- data/spec/slicehost/models/compute/flavors_spec.rb +0 -18
- data/spec/slicehost/models/compute/server_spec.rb +0 -55
- data/spec/slicehost/models/compute/servers_spec.rb +0 -26
@@ -21,9 +21,17 @@ module Fog
|
|
21
21
|
# * 'MaxItems'<~Integer> - Maximum number of keys specified for query
|
22
22
|
# * 'NextMarker'<~String> - Marker to specify for next page (id of last result of current page)
|
23
23
|
# * 'DistributionSummary'<~Array>:
|
24
|
+
# * 'S3Origin'<~Hash>:
|
25
|
+
# * 'DNSName'<~String> - origin to associate with distribution, ie 'mybucket.s3.amazonaws.com'
|
26
|
+
# * 'OriginAccessIdentity'<~String> - Optional: Used when serving private content
|
27
|
+
# or
|
28
|
+
# * 'CustomOrigin'<~Hash>:
|
29
|
+
# * 'DNSName'<~String> - origin to associate with distribution, ie 'www.example.com'
|
30
|
+
# * 'HTTPPort'<~Integer> - HTTP port of origin, in [80, 443] or (1024...65535)
|
31
|
+
# * 'HTTPSPort'<~Integer> - HTTPS port of origin, in [80, 443] or (1024...65535)
|
32
|
+
# * 'OriginProtocolPolicy'<~String> - Policy on using http vs https, in ['http-only', 'match-viewer']
|
24
33
|
# * 'Comment'<~String> - comment associated with distribution
|
25
34
|
# * 'CNAME'<~Array> - array of associated cnames
|
26
|
-
# * 'DomainName'<~String> - Domain name of distribution
|
27
35
|
# * 'Enabled'<~Boolean> - whether or not distribution is enabled
|
28
36
|
# * 'Id'<~String> - Id of distribution
|
29
37
|
# * 'LastModifiedTime'<~String> - Timestamp of last modification of distribution
|
@@ -8,8 +8,18 @@ module Fog
|
|
8
8
|
# create a new distribution in CloudFront
|
9
9
|
#
|
10
10
|
# ==== Parameters
|
11
|
-
# *
|
12
|
-
#
|
11
|
+
# * options<~Hash> - config for distribution. Defaults to {}.
|
12
|
+
# REQUIRED:
|
13
|
+
# * 'S3Origin'<~Hash>:
|
14
|
+
# * 'DNSName'<~String> - origin to associate with distribution, ie 'mybucket.s3.amazonaws.com'
|
15
|
+
# * 'OriginAccessIdentity'<~String> - Optional: Used when serving private content
|
16
|
+
# or
|
17
|
+
# * 'CustomOrigin'<~Hash>:
|
18
|
+
# * 'DNSName'<~String> - origin to associate with distribution, ie 'www.example.com'
|
19
|
+
# * 'HTTPPort'<~Integer> - HTTP port of origin, in [80, 443] or (1024...65535)
|
20
|
+
# * 'HTTPSPort'<~Integer> - HTTPS port of origin, in [80, 443] or (1024...65535)
|
21
|
+
# * 'OriginProtocolPolicy'<~String> - Policy on using http vs https, in ['http-only', 'match-viewer']
|
22
|
+
# OPTIONAL:
|
13
23
|
# * 'CallerReference'<~String> - Used to prevent replay, defaults to Time.now.to_i.to_s
|
14
24
|
# * 'Comment'<~String> - Optional comment about distribution
|
15
25
|
# * 'CNAME'<~Array> - Optional array of strings to set as CNAMEs
|
@@ -43,7 +53,8 @@ module Fog
|
|
43
53
|
# ==== See Also
|
44
54
|
# http://docs.amazonwebservices.com/AmazonCloudFront/latest/APIReference/CreateDistribution.html
|
45
55
|
|
46
|
-
def post_distribution(
|
56
|
+
def post_distribution(options = {})
|
57
|
+
options['CallerReference'] = Time.now.to_i.to_s
|
47
58
|
data = '<?xml version="1.0" encoding="UTF-8"?>'
|
48
59
|
data << "<DistributionConfig xmlns=\"http://cloudfront.amazonaws.com/doc/#{@version}/\">"
|
49
60
|
for key, value in options
|
@@ -78,11 +89,11 @@ module Fog
|
|
78
89
|
|
79
90
|
class Mock # :nodoc:all
|
80
91
|
|
81
|
-
def post_distribution(
|
92
|
+
def post_distribution(options = {})
|
82
93
|
Fog::Mock.not_implemented
|
83
94
|
end
|
84
95
|
|
85
96
|
end
|
86
97
|
end
|
87
98
|
end
|
88
|
-
end
|
99
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class CDN
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/aws/parsers/cdn/distribution'
|
7
|
+
|
8
|
+
# update a distribution in CloudFront
|
9
|
+
#
|
10
|
+
# ==== Parameters
|
11
|
+
# * distribution_id<~String> - Id of distribution to update config for
|
12
|
+
# * options<~Hash> - config for distribution. Defaults to {}.
|
13
|
+
# REQUIRED:
|
14
|
+
# * 'S3Origin'<~Hash>:
|
15
|
+
# * 'DNSName'<~String> - origin to associate with distribution, ie 'mybucket.s3.amazonaws.com'
|
16
|
+
# * 'OriginAccessIdentity'<~String> - Optional: Used when serving private content
|
17
|
+
# or
|
18
|
+
# * 'CustomOrigin'<~Hash>:
|
19
|
+
# * 'DNSName'<~String> - origin to associate with distribution, ie 'www.example.com'
|
20
|
+
# * 'HTTPPort'<~Integer> - HTTP port of origin, in [80, 443] or (1024...65535)
|
21
|
+
# * 'HTTPSPort'<~Integer> - HTTPS port of origin, in [80, 443] or (1024...65535)
|
22
|
+
# * 'OriginProtocolPolicy'<~String> - Policy on using http vs https, in ['http-only', 'match-viewer']
|
23
|
+
# OPTIONAL:
|
24
|
+
# * 'CallerReference'<~String> - Used to prevent replay, defaults to Time.now.to_i.to_s
|
25
|
+
# * 'Comment'<~String> - Optional comment about distribution
|
26
|
+
# * 'CNAME'<~Array> - Optional array of strings to set as CNAMEs
|
27
|
+
# * 'DefaultRootObject'<~String> - Optional default object to return for '/'
|
28
|
+
# * 'Enabled'<~Boolean> - Whether or not distribution should accept requests, defaults to true
|
29
|
+
# * 'Logging'<~Hash>: Optional logging config
|
30
|
+
# * 'Bucket'<~String> - Bucket to store logs in, ie 'mylogs.s3.amazonaws.com'
|
31
|
+
# * 'Prefix'<~String> - Optional prefix for log filenames, ie 'myprefix/'
|
32
|
+
# * 'OriginAccessIdentity'<~String> - Used for serving private content, in format 'origin-access-identity/cloudfront/ID'
|
33
|
+
# * 'RequiredProtocols'<~String> - Optional, set to 'https' to force https connections
|
34
|
+
# * 'TrustedSigners'<~Array> - Optional grant of rights to up to 5 aws accounts to generate signed URLs for private content, elements are either 'Self' for your own account or an AWS Account Number
|
35
|
+
#
|
36
|
+
# ==== Returns
|
37
|
+
# * response<~Excon::Response>:
|
38
|
+
# * body<~Hash>:
|
39
|
+
# * 'DomainName'<~String>: Domain name of distribution
|
40
|
+
# * 'Id'<~String> - Id of distribution
|
41
|
+
# * 'LastModifiedTime'<~String> - Timestamp of last modification of distribution
|
42
|
+
# * 'Status'<~String> - Status of distribution
|
43
|
+
# * 'DistributionConfig'<~Array>:
|
44
|
+
# * 'CallerReference'<~String> - Used to prevent replay, defaults to Time.now.to_i.to_s
|
45
|
+
# * 'CNAME'<~Array> - array of associated cnames
|
46
|
+
# * 'Comment'<~String> - comment associated with distribution
|
47
|
+
# * 'Enabled'<~Boolean> - whether or not distribution is enabled
|
48
|
+
# * 'Logging'<~Hash>:
|
49
|
+
# * 'Bucket'<~String> - bucket logs are stored in
|
50
|
+
# * 'Prefix'<~String> - prefix logs are stored with
|
51
|
+
# * 'Origin'<~String> - s3 origin bucket
|
52
|
+
# * 'TrustedSigners'<~Array> - trusted signers
|
53
|
+
#
|
54
|
+
# ==== See Also
|
55
|
+
# http://docs.amazonwebservices.com/AmazonCloudFront/latest/APIReference/CreateDistribution.html
|
56
|
+
|
57
|
+
def put_distribution_config(distribution_id, etag, options = {})
|
58
|
+
data = '<?xml version="1.0" encoding="UTF-8"?>'
|
59
|
+
data << "<DistributionConfig xmlns=\"http://cloudfront.amazonaws.com/doc/#{@version}/\">"
|
60
|
+
for key, value in options
|
61
|
+
case value
|
62
|
+
when Array
|
63
|
+
for item in value
|
64
|
+
data << "<#{key}>#{item}</#{key}>"
|
65
|
+
end
|
66
|
+
when Hash
|
67
|
+
data << "<#{key}>"
|
68
|
+
for inner_key, inner_value in value
|
69
|
+
data << "<#{inner_key}>#{inner_value}</#{inner_key}>"
|
70
|
+
end
|
71
|
+
data << "</#{key}>"
|
72
|
+
else
|
73
|
+
data << "<#{key}>#{value}</#{key}>"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
data << "</DistributionConfig>"
|
77
|
+
request({
|
78
|
+
:body => data,
|
79
|
+
:expects => 200,
|
80
|
+
:headers => {
|
81
|
+
'Content-Type' => 'text/xml',
|
82
|
+
'If-Match' => etag
|
83
|
+
},
|
84
|
+
:idempotent => true,
|
85
|
+
:method => 'PUT',
|
86
|
+
:parser => Fog::Parsers::AWS::CDN::Distribution.new,
|
87
|
+
:path => "/distribution/#{distribution_id}/config"
|
88
|
+
})
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
class Mock # :nodoc:all
|
94
|
+
|
95
|
+
def put_distribution_config(distribution_id, etag, options = {})
|
96
|
+
Fog::Mock.not_implemented
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
@@ -22,6 +22,7 @@ module Fog
|
|
22
22
|
# * 'volumeId'<~String> - Reference to volume
|
23
23
|
# * 'attachmentSet'<~Array>:
|
24
24
|
# * 'attachmentTime'<~Time> - Timestamp for attachment
|
25
|
+
# * 'deleteOnTermination'<~Boolean> - Whether or not to delete volume on instance termination
|
25
26
|
# * 'device'<~String> - How value is exposed to instance
|
26
27
|
# * 'instanceId'<~String> - Reference to attached instance
|
27
28
|
# * 'status'<~String> - Attachment state
|
@@ -28,7 +28,7 @@ module Fog
|
|
28
28
|
# * 'Ebs.DeleteOnTermination'<~String> - specifies whether or not to delete the volume on instance termination
|
29
29
|
# * 'ClientToken'<~String> - unique case-sensitive token for ensuring idempotency
|
30
30
|
# * 'SecurityGroup'<~Array> or <~String> - Name of security group(s) for instances (you must omit this parameter if using Virtual Private Clouds)
|
31
|
-
# * 'InstanceInitiatedShutdownBehaviour'<~String> - specifies whether volumes are stopped or terminated when instance is shutdown
|
31
|
+
# * 'InstanceInitiatedShutdownBehaviour'<~String> - specifies whether volumes are stopped or terminated when instance is shutdown, in [stop, terminate]
|
32
32
|
# * 'InstanceType'<~String> - Type of instance to boot. Valid options
|
33
33
|
# in ['m1.small', 'm1.large', 'm1.xlarge', 'c1.medium', 'c1.xlarge', 'm2.2xlarge', 'm2.4xlarge']
|
34
34
|
# default is 'm1.small'
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class IAM
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/aws/parsers/iam/basic'
|
7
|
+
|
8
|
+
# Add a user to a group
|
9
|
+
#
|
10
|
+
# ==== Parameters
|
11
|
+
# * group_name<~String>: name of the group
|
12
|
+
# * user_name<~String>: name of user to add
|
13
|
+
#
|
14
|
+
# ==== Returns
|
15
|
+
# * response<~Excon::Response>:
|
16
|
+
# * body<~Hash>:
|
17
|
+
# * 'RequestId'<~String> - Id of the request
|
18
|
+
#
|
19
|
+
# ==== See Also
|
20
|
+
# http://docs.amazonwebservices.com/IAM/latest/APIReference/API_AddUserToGroup.html
|
21
|
+
#
|
22
|
+
def add_user_to_group(group_name, user_name)
|
23
|
+
request(
|
24
|
+
'Action' => 'AddUserToGroup',
|
25
|
+
'GroupName' => group_name,
|
26
|
+
'UserName' => user_name,
|
27
|
+
:parser => Fog::Parsers::AWS::IAM::Basic.new
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
class Mock
|
34
|
+
|
35
|
+
def add_user_to_group(group_name, user_name)
|
36
|
+
Fog::Mock.not_implemented
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -8,8 +8,8 @@ module Fog
|
|
8
8
|
# Create a new group
|
9
9
|
#
|
10
10
|
# ==== Parameters
|
11
|
-
# *
|
12
|
-
# *
|
11
|
+
# * group_name<~String>: name of the group to create (do not include path)
|
12
|
+
# * path<~String>: optional path to group, defaults to '/'
|
13
13
|
#
|
14
14
|
# ==== Returns
|
15
15
|
# * response<~Excon::Response>:
|
@@ -20,12 +20,16 @@ module Fog
|
|
20
20
|
# * GroupName<~String> -
|
21
21
|
# * Path<~String> -
|
22
22
|
# * 'RequestId'<~String> - Id of the request
|
23
|
+
#
|
24
|
+
# ==== See Also
|
25
|
+
# http://docs.amazonwebservices.com/IAM/latest/APIReference/API_CreateGroup.html
|
26
|
+
#
|
23
27
|
def create_group(group_name, path = '/')
|
24
28
|
request(
|
25
29
|
'Action' => 'CreateGroup',
|
26
30
|
'GroupName' => group_name,
|
27
31
|
'Path' => path,
|
28
|
-
:parser => Fog::Parsers::AWS::IAM::
|
32
|
+
:parser => Fog::Parsers::AWS::IAM::CreateGroup.new
|
29
33
|
)
|
30
34
|
end
|
31
35
|
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class IAM
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/aws/parsers/iam/create_user'
|
7
|
+
|
8
|
+
# Create a new user
|
9
|
+
#
|
10
|
+
# ==== Parameters
|
11
|
+
# * user_name<~String>: name of the user to create (do not include path)
|
12
|
+
# * path<~String>: optional path to group, defaults to '/'
|
13
|
+
#
|
14
|
+
# ==== Returns
|
15
|
+
# * response<~Excon::Response>:
|
16
|
+
# * body<~Hash>:
|
17
|
+
# * 'User'<~Hash>:
|
18
|
+
# * Arn<~String> -
|
19
|
+
# * GroupId<~String> -
|
20
|
+
# * GroupName<~String> -
|
21
|
+
# * Path<~String> -
|
22
|
+
# * 'RequestId'<~String> - Id of the request
|
23
|
+
#
|
24
|
+
# ==== See Also
|
25
|
+
# http://docs.amazonwebservices.com/IAM/latest/APIReference/API_CreateUser.html
|
26
|
+
#
|
27
|
+
def create_user(user_name, path = '/')
|
28
|
+
request(
|
29
|
+
'Action' => 'CreateUser',
|
30
|
+
'UserName' => user_name,
|
31
|
+
'Path' => path,
|
32
|
+
:parser => Fog::Parsers::AWS::IAM::CreateUser.new
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
class Mock
|
39
|
+
|
40
|
+
def create_user(user_name, path = '/')
|
41
|
+
Fog::Mock.not_implemented
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -8,12 +8,16 @@ module Fog
|
|
8
8
|
# Delete a group
|
9
9
|
#
|
10
10
|
# ==== Parameters
|
11
|
-
# *
|
11
|
+
# * group_name<~String>: name of the group to delete
|
12
12
|
#
|
13
13
|
# ==== Returns
|
14
14
|
# * response<~Excon::Response>:
|
15
15
|
# * body<~Hash>:
|
16
16
|
# * 'RequestId'<~String> - Id of the request
|
17
|
+
#
|
18
|
+
# ==== See Also
|
19
|
+
# http://docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteGroup.html
|
20
|
+
#
|
17
21
|
def delete_group(group_name)
|
18
22
|
request(
|
19
23
|
'Action' => 'DeleteGroup',
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class IAM
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/aws/parsers/iam/basic'
|
7
|
+
|
8
|
+
# Remove a policy from a group
|
9
|
+
#
|
10
|
+
# ==== Parameters
|
11
|
+
# * group_name<~String>: name of the group
|
12
|
+
# * policy_name<~String>: name of policy document
|
13
|
+
#
|
14
|
+
# ==== Returns
|
15
|
+
# * response<~Excon::Response>:
|
16
|
+
# * body<~Hash>:
|
17
|
+
# * 'RequestId'<~String> - Id of the request def put_group_policy(group_name, path = '/')
|
18
|
+
#
|
19
|
+
# ==== See Also
|
20
|
+
# http://docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteGroupPolicy.html
|
21
|
+
#
|
22
|
+
def delete_group_policy(group_name, policy_name)
|
23
|
+
request(
|
24
|
+
'Action' => 'DeleteGroupPolicy',
|
25
|
+
'GroupName' => group_name,
|
26
|
+
'PolicyName' => policy_name,
|
27
|
+
:parser => Fog::Parsers::AWS::IAM::Basic.new
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
class Mock
|
34
|
+
|
35
|
+
def delete_group_policy(group_name, policy_name)
|
36
|
+
Fog::Mock.not_implemented
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class IAM
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/aws/parsers/iam/basic'
|
7
|
+
|
8
|
+
# Delete a user
|
9
|
+
#
|
10
|
+
# ==== Parameters
|
11
|
+
# * user_name<~String>: name of the user 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_DeleteUser.html
|
20
|
+
#
|
21
|
+
def delete_user(user_name)
|
22
|
+
request(
|
23
|
+
'Action' => 'DeleteUser',
|
24
|
+
'UserName' => user_name,
|
25
|
+
:parser => Fog::Parsers::AWS::IAM::Basic.new
|
26
|
+
)
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
class Mock
|
32
|
+
|
33
|
+
def delete_user(user_name)
|
34
|
+
Fog::Mock.not_implemented
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class IAM
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/aws/parsers/iam/list_group_policies'
|
7
|
+
|
8
|
+
# List policies for a group
|
9
|
+
#
|
10
|
+
# ==== Parameters
|
11
|
+
# * group_name<~String> - Name of group to list policies for
|
12
|
+
# * options<~Hash>: Optional
|
13
|
+
# * 'Marker'<~String>: used to paginate subsequent requests
|
14
|
+
# * 'MaxItems'<~Integer>: limit results to this number per page
|
15
|
+
# * 'PathPrefix'<~String>: prefix for filtering results
|
16
|
+
#
|
17
|
+
# ==== Returns
|
18
|
+
# * response<~Excon::Response>:
|
19
|
+
# * body<~Hash>:
|
20
|
+
# * 'PolicyNames'<~Array> - Matching policy names
|
21
|
+
# * 'IsTruncated<~Boolean> - Whether or not results were truncated
|
22
|
+
# * 'Marker'<~String> - appears when IsTruncated is true as the next marker to use
|
23
|
+
# * 'RequestId'<~String> - Id of the request
|
24
|
+
#
|
25
|
+
# ==== See Also
|
26
|
+
# http://docs.amazonwebservices.com/IAM/latest/APIReference/API_ListGroupPolicies.html
|
27
|
+
#
|
28
|
+
def list_group_policies(group_name, options = {})
|
29
|
+
request({
|
30
|
+
'Action' => 'ListGroupPolicies',
|
31
|
+
'GroupName' => group_name,
|
32
|
+
:parser => Fog::Parsers::AWS::IAM::ListGroupPolicies.new
|
33
|
+
}.merge!(options))
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
class Mock
|
39
|
+
|
40
|
+
def list_group_policies(group_name, options = {})
|
41
|
+
Fog::Mock.not_implemented
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|