Class: Aws::Ses

Inherits:
AwsBase show all
Includes:
AwsBaseInterface
Defined in:
lib/ses/ses.rb

Constant Summary collapse

API_VERSION =
"2010-12-01"
DEFAULT_HOST =
"email.us-east-1.amazonaws.com"
DEFAULT_PATH =
'/'
DEFAULT_PROTOCOL =
'https'
DEFAULT_PORT =
443
@@bench =
AwsBenchmarkingBlock.new
@@api =

Current API version (sometimes we have to check it outside the GEM).

ENV['SES_API_VERSION'] || API_VERSION

Constants included from AwsBaseInterface

AwsBaseInterface::DEFAULT_SIGNATURE_VERSION

Constants inherited from AwsBase

AwsBase::AMAZON_PROBLEMS

Instance Attribute Summary

Attributes included from AwsBaseInterface

#aws_access_key_id, #cache, #last_errors, #last_request, #last_request_id, #last_response, #logger, #params, #signature_version

Class Method Summary collapse

Instance Method Summary collapse

Methods included from AwsBaseInterface

#cache_hits?, caching, caching=, #caching?, #close_conn, #close_connection, #connection, #escape_params, #generate_request, #generate_request2, #get_conn, #hash_params, #init, #multi_thread, #on_exception, #request_cache_or_info, #request_info2, #request_info3, #request_info_impl, #request_info_xml_simple, #request_info_xml_simple3, #signed_service_params, #symbolize, #update_cache

Methods inherited from AwsBase

amazon_problems, amazon_problems=

Constructor Details

#initialize(aws_access_key_id = nil, aws_secret_access_key = nil, params = {}) ⇒ Ses

Returns a new instance of Ses.



42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/ses/ses.rb', line 42

def initialize(aws_access_key_id=nil, aws_secret_access_key=nil, params={})
  init({:name => 'SES',
        :default_host => ENV['SES_URL'] ? URI.parse(ENV['SES_URL']).host : DEFAULT_HOST,
        :default_port => ENV['SES_URL'] ? URI.parse(ENV['SES_URL']).port : DEFAULT_PORT,
        :default_service => ENV['SES_URL'] ? URI.parse(ENV['SES_URL']).path : DEFAULT_PATH,
        :default_protocol => ENV['SES_URL'] ? URI.parse(ENV['SES_URL']).scheme : DEFAULT_PROTOCOL,
        :api_version => API_VERSION,
        :signature_version=>'3'},
       aws_access_key_id || ENV['AWS_ACCESS_KEY_ID'],
       aws_secret_access_key|| ENV['AWS_SECRET_ACCESS_KEY'],
       params)
end

Class Method Details

.apiObject



37
38
39
# File 'lib/ses/ses.rb', line 37

def self.api
  @@api
end

.benchObject



22
23
24
# File 'lib/ses/ses.rb', line 22

def self.bench
  @@bench
end

.bench_ec2Object



30
31
32
# File 'lib/ses/ses.rb', line 30

def self.bench_ec2
  @@bench.service
end

.bench_xmlObject



26
27
28
# File 'lib/ses/ses.rb', line 26

def self.bench_xml
  @@bench.xml
end

.connection_nameObject



16
17
18
# File 'lib/ses/ses.rb', line 16

def self.connection_name
  :ses_connection
end

Instance Method Details

#do_request(action, params, options = {}) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/ses/ses.rb', line 55

def do_request(action, params, options={})
  link = generate_request(action, params)
  puts "request=" + link[:request].inspect
  resp = request_info_xml_simple3(self, link,
                                  :group_tags =>{"LoadBalancersDescriptions"=>"LoadBalancersDescription",
                                                 "DBParameterGroups" =>"DBParameterGroup",
                                                 "DBSecurityGroups" =>"DBSecurityGroup",
                                                 "EC2SecurityGroups" =>"EC2SecurityGroup",
                                                 "IPRanges" =>"IPRange"},
                                  :force_array =>["DBInstances",
                                                  "DBParameterGroups",
                                                  "DBSecurityGroups",
                                                  "EC2SecurityGroups",
                                                  "IPRanges"],
                                  :pull_out_array =>options[:pull_out_array],
                                  :pull_out_single=>options[:pull_out_single],
                                  :wrapper =>options[:wrapper])
end

#get_send_quota(options = {}) ⇒ Object

options:

:marker => value received from previous response if IsTruncated = true
:max_items => number of items you want returned
:path_previx => for filtering results, default is /


84
85
86
87
88
89
90
91
92
# File 'lib/ses/ses.rb', line 84

def get_send_quota(options={})
  @logger.info("get_send_quota")

  resp = do_request("GetSendQuota", options)


rescue Exception
  on_exception
end

#upload_server_certificate(name, public_key, private_key, options = {}) ⇒ Object

name: name of certificate public_key: public key certificate in PEM-encoded format private_key: private key in PEM-encoded format options:

:path => specify a path you want it stored in
:certificate_chain => contents of certificate chain


101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/ses/ses.rb', line 101

def upload_server_certificate(name, public_key, private_key, options={})
  params = {}
  params['ServerCertificateName'] = name
  params['PrivateKey'] = private_key
  params['CertificateBody'] = public_key

  params['CertificateChain'] = options[:certificate_chain] if options[:certificate_chain]
  params['Path'] = options[:path] if options[:path]

  p params

  resp = do_request("UploadServerCertificate", params, :pull_out_array=>[:list_server_certificates_result, :server_certificate_metadata_list])


rescue Exception
  on_exception
end