Module: Heroic::SNS

Defined in:
lib/heroic/sns.rb,
lib/heroic/sns/message.rb,
lib/heroic/sns/version.rb,
lib/heroic/sns/endpoint.rb

Defined Under Namespace

Classes: Endpoint, Error, Message

Constant Summary collapse

MAXIMUM_ALLOWED_AGE =

reject messages older than one hour

3600
MAXIMUM_ALLOWED_CERTIFICATES =
50
CERTIFICATE_CACHE =
Heroic::LRUCache.new(MAXIMUM_ALLOWED_CERTIFICATES) do |cert_url|
  begin
    cert_data = URI.parse(cert_url).open
    OpenSSL::X509::Certificate.new(cert_data.read)
  rescue OpenSSL::X509::CertificateError => e
    raise SNS::Error.new("unable to parse signing certificate: #{e.message}; URL: #{cert_url}")
  rescue => e
    raise SNS::Error.new("unable to retrieve signing certificate: #{e.message}; URL: #{cert_url}")
  end
end
VALID_AWS_URL_PATTERN =
%r{\Ahttps://sns\.[a-z]{2}(?:-gov)?-(?:north|south|east|west|central){1,2}-\d+\.amazonaws\.com(?:\.cn)?/}
VERSION =
'1.2'
SUBSCRIPTION_ARN_HTTP_HEADER =
'HTTP_X_AMZ_SNS_SUBSCRIPTION_ARN'