module Certman::Resource::SES

Constants

REGIONS
RULE_SET_NAME_BY_CERTMAN

Public Instance Methods

active_rule_set_exist?() click to toggle source
# File lib/certman/resource/ses.rb, line 17
def active_rule_set_exist?
  @current_active_rule_set_name = nil
  res = ses.describe_active_receipt_rule_set
  @current_active_rule_set_name = res.metadata.name if res.metadata
end
check_domain_identity_verified() click to toggle source
# File lib/certman/resource/ses.rb, line 23
def check_domain_identity_verified
  is_break = false
  100.times do
    res = ses.get_identity_verification_attributes(
      identities: [
        email_domain
      ]
    )
    if res.verification_attributes[email_domain].verification_status == 'Success'
      # success
      is_break = true
      break
    end
    break if @do_rollback
    sleep 5
  end
  raise 'Can not check verified' unless is_break
end
create_and_active_rule_set() click to toggle source
# File lib/certman/resource/ses.rb, line 46
def create_and_active_rule_set
  ses.create_receipt_rule_set(rule_set_name: rule_set_name)
  ses.set_active_receipt_rule_set(rule_set_name: rule_set_name)
end
create_domain_identity() click to toggle source
# File lib/certman/resource/ses.rb, line 12
def create_domain_identity
  res = ses.verify_domain_identity(domain: email_domain)
  @token = res.verification_token
end
create_rule() click to toggle source
# File lib/certman/resource/ses.rb, line 51
def create_rule
  ses.create_receipt_rule(
    rule: {
      recipients: ["admin@#{email_domain}"],
      actions: [
        {
          s3_action: {
            bucket_name: bucket_name
          }
        }
      ],
      enabled: true,
      name: rule_name,
      scan_enabled: true,
      tls_policy: 'Optional'
    },
    rule_set_name: rule_set_name
  )
end
delete_domain_identity() click to toggle source
# File lib/certman/resource/ses.rb, line 42
def delete_domain_identity
  ses.delete_identity(identity: email_domain)
end
delete_rule() click to toggle source
# File lib/certman/resource/ses.rb, line 83
def delete_rule
  ses.delete_receipt_rule(
    rule_name: rule_name,
    rule_set_name: rule_set_name
  )
end
delete_rule_set() click to toggle source
# File lib/certman/resource/ses.rb, line 76
def delete_rule_set
  res = ses.describe_active_receipt_rule_set
  return if res.rules && res.rules.length > 1
  ses.set_active_receipt_rule_set(rule_set_name: nil)
  ses.delete_receipt_rule_set(rule_set_name: rule_set_name)
end
region_by_hash() click to toggle source
# File lib/certman/resource/ses.rb, line 7
def region_by_hash
  key = Digest::SHA1.hexdigest(@domain).to_i(16) % REGIONS.length
  REGIONS[key]
end
rule_exist?() click to toggle source
# File lib/certman/resource/ses.rb, line 71
def rule_exist?
  res = ses.describe_active_receipt_rule_set
  res.rules && !res.rules.empty?
end
ses() click to toggle source
# File lib/certman/resource/ses.rb, line 90
def ses
  @ses ||= Aws::SES::Client.new
end