1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/aws/parsers/cdn/streaming_distribution.rb

59 lines
2.1 KiB
Ruby

module Fog
module Parsers
module CDN
module AWS
class StreamingDistribution < Fog::Parsers::Base
def reset
@response = { 'StreamingDistributionConfig' => { 'CNAME' => [], 'Logging' => {}, 'TrustedSigners' => [] } }
end
def start_element(name, attrs = [])
super
case name
when 'CustomOrigin', 'S3Origin'
@origin = name
@response['StreamingDistributionConfig'][@origin] = {}
end
end
def end_element(name)
case name
when 'AwsAccountNumber'
@response['StreamingDistributionConfig']['TrustedSigners'] << @value
when 'Bucket', 'Prefix'
@response['StreamingDistributionConfig']['Logging'][name] = @value
when 'CNAME'
@response['StreamingDistributionConfig']['CNAME'] << @value
when 'DNSName', 'OriginAccessIdentity', 'OriginProtocolPolicy'
@response['StreamingDistributionConfig'][@origin][name] = @value
when 'DomainName', 'Id', 'Status'
@response[name] = @value
when 'CallerReference', 'Comment', 'DefaultRootObject', 'Origin', 'OriginAccessIdentity'
@response['StreamingDistributionConfig'][name] = @value
when 'Enabled'
if @value == 'true'
@response['StreamingDistributionConfig'][name] = true
else
@response['StreamingDistributionConfig'][name] = false
end
when 'HTTPPort', 'HTTPSPort'
@response['StreamingDistributionConfig'][@origin][name] = @value.to_i
when 'InProgressInvalidationBatches'
@response[name] = @value.to_i
when 'LastModifiedTime'
@response[name] = Time.parse(@value)
when 'Protocol'
@response['StreamingDistributionConfig']['RequireProtocols'] = @value
when 'Self'
@response['StreamingDistributionConfig']['TrustedSigners'] << 'Self'
end
end
end
end
end
end
end