aws-sdk 1.5.1 → 1.5.2
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.
- data/lib/aws/api_config/EC2-2012-04-01.yml +3739 -0
- data/lib/aws/api_config/IAM-2010-05-08.yml +307 -0
- data/lib/aws/api_config/STS-2011-06-15.yml +4 -0
- data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +70 -0
- data/lib/aws/core.rb +1 -1
- data/lib/aws/ec2/client.rb +111 -7
- data/lib/aws/ec2/network_interface.rb +55 -0
- data/lib/aws/ec2/volume.rb +1 -0
- data/lib/aws/iam/client.rb +400 -4
- data/lib/aws/simple_email_service.rb +55 -12
- data/lib/aws/simple_email_service/client.rb +88 -3
- data/lib/aws/simple_email_service/email_address_collection.rb +6 -0
- data/lib/aws/simple_email_service/identity.rb +91 -0
- data/lib/aws/simple_email_service/identity_collection.rb +81 -0
- data/lib/aws/sts.rb +6 -2
- data/lib/aws/sts/client.rb +17 -14
- metadata +6 -3
@@ -54,25 +54,60 @@ module AWS
|
|
54
54
|
#
|
55
55
|
# This has only been tested with Rails 2.3 and Rails 3.0.
|
56
56
|
#
|
57
|
-
# = Email Addresses
|
58
57
|
#
|
58
|
+
# = Identities
|
59
|
+
#
|
60
|
+
# Before you can send emails, you need to verify one or more identities.
|
61
|
+
# Identities are email addresses or domain names that you have control over.
|
59
62
|
# Until you have {requested production access}[http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/InitialSetup.Customer.html]
|
60
|
-
# you will only be able to send emails to and from verified email addresses
|
61
|
-
#
|
63
|
+
# you will only be able to send emails to and from verified email addresses
|
64
|
+
# and domains.
|
62
65
|
#
|
63
|
-
#
|
66
|
+
# == Verifying Email Addresses
|
64
67
|
#
|
65
|
-
#
|
66
|
-
#
|
68
|
+
# You can verify an email address for sending/receiving emails using
|
69
|
+
# the identities collection.
|
67
70
|
#
|
68
|
-
#
|
71
|
+
# identity = ses.identities.verify('email@yourdomain.com')
|
72
|
+
# identity.verified? #=> false
|
69
73
|
#
|
70
|
-
#
|
71
|
-
#
|
72
|
-
#
|
74
|
+
# You will be sent an email address with a link. Follow the link to
|
75
|
+
# verify the email address.
|
76
|
+
#
|
77
|
+
# == Verifying Domains
|
78
|
+
#
|
79
|
+
# You can also verify an entire domain for sending and receiving emails.
|
80
|
+
#
|
81
|
+
# identity = ses.identities.verify('yourdomain.com')
|
82
|
+
# identity.verification_token
|
83
|
+
# #=> "216D+lZbhUL0zOoAkC83/0TAl5lJSzLmzsOjtXM7AeM="
|
84
|
+
#
|
85
|
+
# You will be expected to update the DNS records for your domain with
|
86
|
+
# the given verification token. See the service documentation for
|
87
|
+
# more details.
|
88
|
+
#
|
89
|
+
# == Listing Identities
|
90
|
+
#
|
91
|
+
# You can enumerate all identies:
|
73
92
|
#
|
74
|
-
#
|
75
|
-
#
|
93
|
+
# ses.identites.map(&:identity)
|
94
|
+
# #=> ['email@foo.com', 'somedomain.com']
|
95
|
+
#
|
96
|
+
# You can filter the types of identities enumerated:
|
97
|
+
#
|
98
|
+
# domains = ses.identities.domains.map(&:identity)
|
99
|
+
# email_addresses = ses.identities.email_addresses.map(&:identity)
|
100
|
+
#
|
101
|
+
# You can get the verfication status and token from identities as well.
|
102
|
+
#
|
103
|
+
# # for an email address
|
104
|
+
# identity = ses.identities['youremail@yourdomain.com']
|
105
|
+
# identity.verified? #=> true/false
|
106
|
+
#
|
107
|
+
# # for a domain
|
108
|
+
# identity = ses.identities['yourdomain.com']
|
109
|
+
# identity.verified? #=> true/false
|
110
|
+
# identity.verification_token #=> '...'
|
76
111
|
#
|
77
112
|
# = Sending Email
|
78
113
|
#
|
@@ -139,18 +174,26 @@ module AWS
|
|
139
174
|
autoload :Client, 'client'
|
140
175
|
autoload :Errors, 'errors'
|
141
176
|
autoload :EmailAddressCollection, 'email_address_collection'
|
177
|
+
autoload :Identity, 'identity'
|
178
|
+
autoload :IdentityCollection, 'identity_collection'
|
142
179
|
autoload :Quotas, 'quotas'
|
143
180
|
autoload :Request, 'request'
|
144
181
|
end
|
145
182
|
|
146
183
|
include Core::ServiceInterface
|
147
184
|
|
185
|
+
# @note This method is deprecated. Use {#identities} instead.
|
148
186
|
# @return [EmailAddressCollection] Returns a collection that represents
|
149
187
|
# all of the verified email addresses for your account.
|
150
188
|
def email_addresses
|
151
189
|
EmailAddressCollection.new(:config => config)
|
152
190
|
end
|
153
191
|
|
192
|
+
# @return [IdentityCollection]
|
193
|
+
def identities
|
194
|
+
IdentityCollection.new(:config => config)
|
195
|
+
end
|
196
|
+
|
154
197
|
# Sends an email.
|
155
198
|
#
|
156
199
|
# ses.send_email(
|
@@ -28,6 +28,22 @@ module AWS
|
|
28
28
|
|
29
29
|
## client methods ##
|
30
30
|
|
31
|
+
# Calls the DeleteIdentity API operation.
|
32
|
+
# @method delete_identity(options = {})
|
33
|
+
#
|
34
|
+
# === Options:
|
35
|
+
#
|
36
|
+
# * +:identity+ - *required* - (String) The name of the identity to be
|
37
|
+
# removed from the list of verified identities.
|
38
|
+
#
|
39
|
+
# === Response Structure:
|
40
|
+
#
|
41
|
+
# This method returns no response data.
|
42
|
+
#
|
43
|
+
# @return [Core::Response]
|
44
|
+
#
|
45
|
+
define_client_method :delete_identity, 'DeleteIdentity'
|
46
|
+
|
31
47
|
# Calls the DeleteVerifiedEmailAddress API operation.
|
32
48
|
# @method delete_verified_email_address(options = {})
|
33
49
|
#
|
@@ -44,6 +60,23 @@ module AWS
|
|
44
60
|
#
|
45
61
|
define_client_method :delete_verified_email_address, 'DeleteVerifiedEmailAddress'
|
46
62
|
|
63
|
+
# Calls the GetIdentityVerificationAttributes API operation.
|
64
|
+
# @method get_identity_verification_attributes(options = {})
|
65
|
+
#
|
66
|
+
# === Options:
|
67
|
+
#
|
68
|
+
# * +:identities+ - *required* - (Array<String>)
|
69
|
+
#
|
70
|
+
# === Response Structure:
|
71
|
+
#
|
72
|
+
# * +:verification_attributes+ - (Hash<String,Hash>)
|
73
|
+
# * +:verification_status+ - (String)
|
74
|
+
# * +:verification_token+ - (String)
|
75
|
+
#
|
76
|
+
# @return [Core::Response]
|
77
|
+
#
|
78
|
+
define_client_method :get_identity_verification_attributes, 'GetIdentityVerificationAttributes'
|
79
|
+
|
47
80
|
# Calls the GetSendQuota API operation.
|
48
81
|
# @method get_send_quota(options = {})
|
49
82
|
#
|
@@ -81,6 +114,26 @@ module AWS
|
|
81
114
|
#
|
82
115
|
define_client_method :get_send_statistics, 'GetSendStatistics'
|
83
116
|
|
117
|
+
# Calls the ListIdentities API operation.
|
118
|
+
# @method list_identities(options = {})
|
119
|
+
#
|
120
|
+
# === Options:
|
121
|
+
#
|
122
|
+
# * +:identity_type+ - (String) The type of the identities listed.
|
123
|
+
# Possible values are: "EmailAddress", "Domain" or null.
|
124
|
+
# * +:next_token+ - (String) The token used for retrieving the next set
|
125
|
+
# of items.
|
126
|
+
# * +:max_items+ - (Integer) The maximum number of items returned.
|
127
|
+
#
|
128
|
+
# === Response Structure:
|
129
|
+
#
|
130
|
+
# * +:identities+ - (Array<String>)
|
131
|
+
# * +:next_token+ - (String)
|
132
|
+
#
|
133
|
+
# @return [Core::Response]
|
134
|
+
#
|
135
|
+
define_client_method :list_identities, 'ListIdentities'
|
136
|
+
|
84
137
|
# Calls the ListVerifiedEmailAddresses API operation.
|
85
138
|
# @method list_verified_email_addresses(options = {})
|
86
139
|
#
|
@@ -101,7 +154,7 @@ module AWS
|
|
101
154
|
#
|
102
155
|
# === Options:
|
103
156
|
#
|
104
|
-
# * +:source+ - *required* - (String) The
|
157
|
+
# * +:source+ - *required* - (String) The identity's email address.
|
105
158
|
# * +:destination+ - *required* - (Hash) The destination for this email,
|
106
159
|
# composed of To:, CC:, and BCC: fields.
|
107
160
|
# * +:to_addresses+ - (Array<String>) The To: field(s) of the message.
|
@@ -150,7 +203,7 @@ module AWS
|
|
150
203
|
#
|
151
204
|
# === Options:
|
152
205
|
#
|
153
|
-
# * +:source+ - (String) The
|
206
|
+
# * +:source+ - (String) The identity's email address. If you specify the
|
154
207
|
# Source parameter, then bounce notifications and complaints will be
|
155
208
|
# sent to this email address. This takes precedence over any
|
156
209
|
# Return-Path header that you might include in the raw text of the
|
@@ -168,7 +221,7 @@ module AWS
|
|
168
221
|
# client must ensure that the message format complies with Internet
|
169
222
|
# email standards regarding email header fields, MIME types, MIME
|
170
223
|
# encoding, and base64 encoding (if necessary). For more information,
|
171
|
-
# go to
|
224
|
+
# go to theAmazon SES Developer Guide.
|
172
225
|
#
|
173
226
|
# === Response Structure:
|
174
227
|
#
|
@@ -178,6 +231,22 @@ module AWS
|
|
178
231
|
#
|
179
232
|
define_client_method :send_raw_email, 'SendRawEmail'
|
180
233
|
|
234
|
+
# Calls the VerifyDomainIdentity API operation.
|
235
|
+
# @method verify_domain_identity(options = {})
|
236
|
+
#
|
237
|
+
# === Options:
|
238
|
+
#
|
239
|
+
# * +:domain+ - *required* - (String) The name of the domain to be
|
240
|
+
# verified.
|
241
|
+
#
|
242
|
+
# === Response Structure:
|
243
|
+
#
|
244
|
+
# * +:verification_token+ - (String)
|
245
|
+
#
|
246
|
+
# @return [Core::Response]
|
247
|
+
#
|
248
|
+
define_client_method :verify_domain_identity, 'VerifyDomainIdentity'
|
249
|
+
|
181
250
|
# Calls the VerifyEmailAddress API operation.
|
182
251
|
# @method verify_email_address(options = {})
|
183
252
|
#
|
@@ -194,6 +263,22 @@ module AWS
|
|
194
263
|
#
|
195
264
|
define_client_method :verify_email_address, 'VerifyEmailAddress'
|
196
265
|
|
266
|
+
# Calls the VerifyEmailIdentity API operation.
|
267
|
+
# @method verify_email_identity(options = {})
|
268
|
+
#
|
269
|
+
# === Options:
|
270
|
+
#
|
271
|
+
# * +:email_address+ - *required* - (String) The email address to be
|
272
|
+
# verified.
|
273
|
+
#
|
274
|
+
# === Response Structure:
|
275
|
+
#
|
276
|
+
# This method returns no response data.
|
277
|
+
#
|
278
|
+
# @return [Core::Response]
|
279
|
+
#
|
280
|
+
define_client_method :verify_email_identity, 'VerifyEmailIdentity'
|
281
|
+
|
197
282
|
## end client methods ##
|
198
283
|
|
199
284
|
end
|
@@ -15,6 +15,8 @@ module AWS
|
|
15
15
|
class SimpleEmailService
|
16
16
|
|
17
17
|
# Helps you manage your verified SimpleEmailService email addresses.
|
18
|
+
# @note This class is deprecated. Please use
|
19
|
+
# {SimpleEmailService#identities} instead.
|
18
20
|
class EmailAddressCollection
|
19
21
|
|
20
22
|
include Core::Model
|
@@ -26,6 +28,7 @@ module AWS
|
|
26
28
|
#
|
27
29
|
# @param [String] email_address The email address to verify.
|
28
30
|
# @return [nil]
|
31
|
+
# @note This method is deprecated.
|
29
32
|
def verify email_address
|
30
33
|
client.verify_email_address(:email_address => email_address)
|
31
34
|
nil
|
@@ -36,11 +39,13 @@ module AWS
|
|
36
39
|
# of verified email addresses. Useful for cleanup as there is a 100
|
37
40
|
# email address limit.
|
38
41
|
# @return [nil]
|
42
|
+
# @note This method is deprecated.
|
39
43
|
def delete email_address
|
40
44
|
client.delete_verified_email_address(:email_address => email_address)
|
41
45
|
nil
|
42
46
|
end
|
43
47
|
|
48
|
+
# @note This method is deprecated.
|
44
49
|
def include?
|
45
50
|
# this is so jruby can detect that verified? is an alias
|
46
51
|
super
|
@@ -50,6 +55,7 @@ module AWS
|
|
50
55
|
# Yields each verified email address as a string.
|
51
56
|
# @return [nil]
|
52
57
|
# yielded.
|
58
|
+
# @note This method is deprecated.
|
53
59
|
def each &block
|
54
60
|
response = client.list_verified_email_addresses({})
|
55
61
|
response.verified_email_addresses.each do |email_address|
|
@@ -0,0 +1,91 @@
|
|
1
|
+
# Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
5
|
+
# the License is located at
|
6
|
+
#
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
8
|
+
#
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
12
|
+
# language governing permissions and limitations under the License.
|
13
|
+
|
14
|
+
module AWS
|
15
|
+
class SimpleEmailService
|
16
|
+
|
17
|
+
# @attr_reader [String] verification_status
|
18
|
+
#
|
19
|
+
# @attr_reader [String,nil] verification_token
|
20
|
+
#
|
21
|
+
class Identity < Core::Resource
|
22
|
+
|
23
|
+
# @private
|
24
|
+
def initialize email_address_or_domain, options = {}
|
25
|
+
@identity = email_address_or_domain
|
26
|
+
super
|
27
|
+
end
|
28
|
+
|
29
|
+
# @return [String] Returns the email address or domain name for
|
30
|
+
# this identity.
|
31
|
+
attr_reader :identity
|
32
|
+
|
33
|
+
attribute :verification_status
|
34
|
+
|
35
|
+
attribute :verification_token, :static => true
|
36
|
+
|
37
|
+
populates_from(:get_identity_verification_attributes) do |resp|
|
38
|
+
resp.data[:verification_attributes][identity]
|
39
|
+
end
|
40
|
+
|
41
|
+
# @return [Boolean] Returns +true+ if this {Identity} represents an
|
42
|
+
# email address.
|
43
|
+
def email_address?
|
44
|
+
identity =~ /@/ ? true : false
|
45
|
+
end
|
46
|
+
|
47
|
+
# @return [Boolean] Returns +true+ if this {Identity} represents a
|
48
|
+
# domain.
|
49
|
+
def domain?
|
50
|
+
!email_address?
|
51
|
+
end
|
52
|
+
|
53
|
+
# @return [Boolean] Returns +true+ if this email address/domain has
|
54
|
+
# been verified.
|
55
|
+
def verified?
|
56
|
+
verification_status == 'Success'
|
57
|
+
end
|
58
|
+
|
59
|
+
# @return [Boolean] Returns +true+ if verification for this email
|
60
|
+
# address/domain is still pending.
|
61
|
+
def pending?
|
62
|
+
verification_status == 'Pending'
|
63
|
+
end
|
64
|
+
|
65
|
+
# Deletes the current identity.
|
66
|
+
# @return [nil]
|
67
|
+
def delete
|
68
|
+
client.delete_identity(:identity => identity)
|
69
|
+
nil
|
70
|
+
end
|
71
|
+
|
72
|
+
# @return [Boolean] Returns true if the identity exists.
|
73
|
+
def exists?
|
74
|
+
!!get_resource[:verification_attributes][identity]
|
75
|
+
end
|
76
|
+
|
77
|
+
protected
|
78
|
+
|
79
|
+
def resource_identifiers
|
80
|
+
[[:identity, identity]]
|
81
|
+
end
|
82
|
+
|
83
|
+
def get_resource attr = nil
|
84
|
+
client_opts = {}
|
85
|
+
client_opts[:identities] = [identity]
|
86
|
+
client.get_identity_verification_attributes(client_opts)
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
5
|
+
# the License is located at
|
6
|
+
#
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
8
|
+
#
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
12
|
+
# language governing permissions and limitations under the License.
|
13
|
+
|
14
|
+
module AWS
|
15
|
+
class SimpleEmailService
|
16
|
+
class IdentityCollection
|
17
|
+
|
18
|
+
include Core::Collection::Limitable
|
19
|
+
|
20
|
+
# @private
|
21
|
+
def initialize options = {}
|
22
|
+
@type = options[:type]
|
23
|
+
super
|
24
|
+
end
|
25
|
+
|
26
|
+
# Request verification for an email address or a domain.
|
27
|
+
# @param [String] email_or_domain
|
28
|
+
# @return [Identity] Returns an {Iidentity} object. Identities for
|
29
|
+
# domains will have a #verification_token.
|
30
|
+
def verify email_or_domain
|
31
|
+
|
32
|
+
resp = email_or_domain =~ /@/ ?
|
33
|
+
client.verify_email_identity(:email_address => email_or_domain) :
|
34
|
+
client.verify_domain_identity(:domain => email_or_domain)
|
35
|
+
|
36
|
+
Identity.new(email_or_domain,
|
37
|
+
:verification_token => resp.data[:verification_token],
|
38
|
+
:config => config)
|
39
|
+
|
40
|
+
end
|
41
|
+
alias_method :create, :verify
|
42
|
+
|
43
|
+
# @param [String] email_or_domain
|
44
|
+
# @return [Identity] Returns an {Identity} with the given
|
45
|
+
# email address or domain name.
|
46
|
+
def [] email_or_domain
|
47
|
+
Identity.new(email_or_domain, :config => config)
|
48
|
+
end
|
49
|
+
|
50
|
+
# @return [IdentityCollection] Returns a collection that only
|
51
|
+
# enumerates email addresses.
|
52
|
+
def email_addresses
|
53
|
+
self.class.new(:type => 'EmailAddress', :config => config)
|
54
|
+
end
|
55
|
+
|
56
|
+
# @return [IdentityCollection] Returns a collection that only
|
57
|
+
# enumerates domains.
|
58
|
+
def domains
|
59
|
+
self.class.new(:type => 'Domain', :config => config)
|
60
|
+
end
|
61
|
+
|
62
|
+
protected
|
63
|
+
|
64
|
+
def _each_item next_token, limit, options = {}, &block
|
65
|
+
|
66
|
+
options[:max_items] = limit if limit
|
67
|
+
options[:next_token] = next_token if next_token
|
68
|
+
options[:identity_type] = @type if @type
|
69
|
+
|
70
|
+
resp = client.list_identities(options)
|
71
|
+
resp.data[:identities].each do |identity|
|
72
|
+
yield(self[identity])
|
73
|
+
end
|
74
|
+
|
75
|
+
resp.data[:next_token]
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|