mirror of
https://github.com/fog/fog-aws.git
synced 2022-11-09 13:50:52 -05:00
42 lines
1.2 KiB
Ruby
42 lines
1.2 KiB
Ruby
|
require 'fog/core/model'
|
||
|
|
||
|
module Fog
|
||
|
module AWS
|
||
|
class RDS
|
||
|
class EventSubscription < Fog::Model
|
||
|
identity :id, :aliases => 'CustSubscriptionId'
|
||
|
|
||
|
attribute :event_categories, :aliases => 'EventCategories', :type => :array
|
||
|
attribute :source_type, :aliases => 'SourceType'
|
||
|
attribute :enabled, :aliases => 'Enabled'
|
||
|
attribute :status, :aliases => 'Status'
|
||
|
attribute :creation_time, :aliases => 'SubscriptionCreationTime'
|
||
|
attribute :sns_topic_arn, :aliases => 'SnsTopicArn'
|
||
|
|
||
|
def ready?
|
||
|
! ['deleting', 'creating'].include?(status)
|
||
|
end
|
||
|
|
||
|
def destroy
|
||
|
service.delete_event_subscription(id)
|
||
|
reload
|
||
|
end
|
||
|
|
||
|
def save
|
||
|
requires :id, :sns_topic_arn
|
||
|
|
||
|
data = service.create_event_subscription(
|
||
|
'EventCategories' => event_categories,
|
||
|
'SourceType' => source_type,
|
||
|
'Enabled' => enabled || true,
|
||
|
'SubscriptionName' => id,
|
||
|
'SnsTopicArn' => sns_topic_arn
|
||
|
).body["CreateEventSubscriptionResult"]["EventSubscription"]
|
||
|
merge_attributes(data)
|
||
|
self
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|