Method: Fog::CDN::AWS::Real#post_invalidation

Defined in:
lib/fog/aws/requests/cdn/post_invalidation.rb

#post_invalidation(distribution_id, paths, caller_reference = Time.now.to_i.to_s) ⇒ Object

List information about distributions in CloudFront

Parameters

  • distribution_id<~String> - Id of distribution for invalidations

  • paths<~Array> - Array of string paths to objects to invalidate

  • caller_reference<~String> - Used to prevent replay, defaults to Time.now.to_i.to_s

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘Id’<~String> - Id of invalidation

      • ‘Status’<~String> - Status of invalidation

      • ‘CreateTime’<~Integer> - Time of invalidation creation

      • ‘InvalidationBatch’<~Array>:

        • ‘Path’<~Array> - Array of strings of objects to invalidate

        • ‘CallerReference’<~String> - Used to prevent replay, defaults to Time.now.to_i.to_s

See Also

docs.amazonwebservices.com/AmazonCloudFront/latest/APIReference/CreateInvalidation.html


29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/fog/aws/requests/cdn/post_invalidation.rb', line 29

def post_invalidation(distribution_id, paths, caller_reference = Time.now.to_i.to_s)
  body = '<?xml version="1.0" encoding="UTF-8"?>'
  body << "<InvalidationBatch>"
  for path in [*paths]
    body << "<Path>" << path << "</Path>"
  end
  body << "<CallerReference>" << caller_reference << "</CallerReference>"
  body << "</InvalidationBatch>"
  request({
    :body       => body,
    :expects    => 201,
    :headers    => {'Content-Type' => 'text/xml'},
    :idempotent => true,
    :method     => 'POST',
    :parser     => Fog::Parsers::CDN::AWS::PostInvalidation.new,
    :path       => "/distribution/#{distribution_id}/invalidation"
  })
end