Class: Cumulus::CloudFront::CacheBehaviorDiff

Inherits:
Cumulus::Common::Diff show all
Includes:
CacheBehaviorChange
Defined in:
lib/cloudfront/models/CacheBehaviorDiff.rb

Overview

Public: Represents a single difference between local configuration and AWS configuration of zones.

Constant Summary

Constants included from CacheBehaviorChange

Cumulus::CloudFront::CacheBehaviorChange::COMPRESS, Cumulus::CloudFront::CacheBehaviorChange::COOKIES, Cumulus::CloudFront::CacheBehaviorChange::COOKIES_WHITELIST, Cumulus::CloudFront::CacheBehaviorChange::DEFTTL, Cumulus::CloudFront::CacheBehaviorChange::HEADERS, Cumulus::CloudFront::CacheBehaviorChange::MAXTTL, Cumulus::CloudFront::CacheBehaviorChange::METHODS_ALLOWED, Cumulus::CloudFront::CacheBehaviorChange::METHODS_CACHED, Cumulus::CloudFront::CacheBehaviorChange::MINTTL, Cumulus::CloudFront::CacheBehaviorChange::PATH, Cumulus::CloudFront::CacheBehaviorChange::QUERY, Cumulus::CloudFront::CacheBehaviorChange::SIGNERS, Cumulus::CloudFront::CacheBehaviorChange::STREAMING, Cumulus::CloudFront::CacheBehaviorChange::TARGET, Cumulus::CloudFront::CacheBehaviorChange::VIEWER_PROTOCOL

Constants included from Cumulus::Common::DiffChange

Cumulus::Common::DiffChange::ADD, Cumulus::Common::DiffChange::MODIFIED, Cumulus::Common::DiffChange::UNMANAGED

Instance Attribute Summary collapse

Attributes inherited from Cumulus::Common::Diff

#aws, #changes, #info_only, #local, #type

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Cumulus::Common::DiffChange

next_change_id

Methods inherited from Cumulus::Common::Diff

#add_string, added, #initialize, #local_name, modified, #to_s, unmanaged, #unmanaged_string

Constructor Details

This class inherits a constructor from Cumulus::Common::Diff

Instance Attribute Details

#allowed_methodsObject

Returns the value of attribute allowed_methods.



37
38
39
# File 'lib/cloudfront/models/CacheBehaviorDiff.rb', line 37

def allowed_methods
  @allowed_methods
end

#cached_methodsObject

Returns the value of attribute cached_methods.



38
39
40
# File 'lib/cloudfront/models/CacheBehaviorDiff.rb', line 38

def cached_methods
  @cached_methods
end

#cookiesObject

Returns the value of attribute cookies.



34
35
36
# File 'lib/cloudfront/models/CacheBehaviorDiff.rb', line 34

def cookies
  @cookies
end

#headersObject

Returns the value of attribute headers.



35
36
37
# File 'lib/cloudfront/models/CacheBehaviorDiff.rb', line 35

def headers
  @headers
end

#signersObject

Returns the value of attribute signers.



36
37
38
# File 'lib/cloudfront/models/CacheBehaviorDiff.rb', line 36

def signers
  @signers
end

Class Method Details

.allowed_methods(added_allowed_methods, removed_allowed_methods, local) ⇒ Object

Public: Static method that produces a diff representing changes in CacheBehavior allowed methods

added_allowed_methods - the allowed methods that were added removed_allowed_methods - the allowed methods that were removed local - the local configuration for the zone

Returns the diff



86
87
88
89
90
# File 'lib/cloudfront/models/CacheBehaviorDiff.rb', line 86

def self.allowed_methods(added_allowed_methods, removed_allowed_methods, local)
  diff = CacheBehaviorDiff.new(METHODS_ALLOWED, nil, local)
  diff.allowed_methods = Common::ListChange.new(added_allowed_methods, removed_allowed_methods)
  diff
end

.cached_methods(added_cached_methods, removed_cached_methods, local) ⇒ Object

Public: Static method that produces a diff representing changes in CacheBehavior cached methods

added_cached_methods - the cached methods that were added removed_cached_methods - the cached methods that were removed local - the local configuration for the zone

Returns the diff



99
100
101
102
103
# File 'lib/cloudfront/models/CacheBehaviorDiff.rb', line 99

def self.cached_methods(added_cached_methods, removed_cached_methods, local)
  diff = CacheBehaviorDiff.new(METHODS_CACHED, nil, local)
  diff.cached_methods = Common::ListChange.new(added_cached_methods, removed_cached_methods)
  diff
end

.cookies_whitelist(added_cookies, removed_cookies, local) ⇒ Object

Public: Static method that produces a diff representing changes in CacheBehavior cookies whitelist

added_cookies - the cookies that were added removed_cookies - the cookies that were removed local - the local configuration for the zone

Returns the diff



47
48
49
50
51
# File 'lib/cloudfront/models/CacheBehaviorDiff.rb', line 47

def self.cookies_whitelist(added_cookies, removed_cookies, local)
  diff = CacheBehaviorDiff.new(COOKIES_WHITELIST, nil, local)
  diff.cookies = Common::ListChange.new(added_cookies, removed_cookies)
  diff
end

.headers(added_headers, removed_headers, local) ⇒ Object

Public: Static method that produces a diff representing changes in CacheBehavior headers

added_headers - the headers that were added removed_headers - the headers that were removed local - the local configuration for the zone

Returns the diff



60
61
62
63
64
# File 'lib/cloudfront/models/CacheBehaviorDiff.rb', line 60

def self.headers(added_headers, removed_headers, local)
  diff = CacheBehaviorDiff.new(HEADERS, nil, local)
  diff.headers = Common::ListChange.new(added_headers, removed_headers)
  diff
end

.signers(added_signers, removed_signers, local) ⇒ Object

Public: Static method that produces a diff representing changes in CacheBehavior trusted signers

added_signers - the trusted signers that were added removed_signers - the trusted signers that were removed local - the local configuration for the zone

Returns the diff



73
74
75
76
77
# File 'lib/cloudfront/models/CacheBehaviorDiff.rb', line 73

def self.signers(added_signers, removed_signers, local)
  diff = CacheBehaviorDiff.new(SIGNERS, nil, local)
  diff.signers = Common::ListChange.new(added_signers, removed_signers)
  diff
end

Instance Method Details

#asset_typeObject



200
201
202
# File 'lib/cloudfront/models/CacheBehaviorDiff.rb', line 200

def asset_type
  "Cache Behavior"
end

#aws_nameObject



204
205
206
# File 'lib/cloudfront/models/CacheBehaviorDiff.rb', line 204

def aws_name
  "#{@aws.target_origin_id}/#{@aws.path_pattern}"
end

#diff_stringObject



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
# File 'lib/cloudfront/models/CacheBehaviorDiff.rb', line 105

def diff_string
  case @type
  when PATH
    [
      "path:",
      Colors.aws_changes("\tAWS - #{@aws.path_pattern}"),
      Colors.local_changes("\tLocal - #{@local.path_pattern}"),
    ].join("\n")
  when TARGET
    [
      "target origin id:",
      Colors.aws_changes("\tAWS - #{@aws.target_origin_id}"),
      Colors.local_changes("\tLocal - #{@local.target_origin_id}"),
    ].join("\n")
  when QUERY
    [
      "forward query strings:",
      Colors.aws_changes("\tAWS - #{@aws.forwarded_values.query_string}"),
      Colors.local_changes("\tLocal - #{@local.forward_query_strings}"),
    ].join("\n")
  when COOKIES
    [
      "forwarded cookies:",
      Colors.aws_changes("\tAWS - #{@aws.forwarded_values.cookies.forward}"),
      Colors.local_changes("\tLocal - #{@local.forwarded_cookies}"),
    ].join("\n")
  when COOKIES_WHITELIST
    [
      "whitelisted forwarded cookies:",
      cookies.removed.map{ |removed| Colors.removed("\t#{removed}")},
      cookies.added.map{ |added| Colors.added("\t#{added}")},
    ].flatten.join("\n")
  when HEADERS
    [
      "forwarded headers:",
      headers.removed.map{ |removed| Colors.removed("\t#{removed}")},
      headers.added.map{ |added| Colors.added("\t#{added}")},
    ].flatten.join("\n")
  when SIGNERS
    [
      "trusted signers:",
      signers.removed.map{ |removed| Colors.removed("\t#{removed}")},
      signers.added.map{ |added| Colors.added("\t#{added}")},
    ].flatten.join("\n")
  when VIEWER_PROTOCOL
    [
      "viewer protocol policy:",
      Colors.aws_changes("\tAWS - #{@aws.viewer_protocol_policy}"),
      Colors.local_changes("\tLocal - #{@local.viewer_protocol_policy}"),
    ].join("\n")
  when MINTTL
    [
      "min ttl:",
      Colors.aws_changes("\tAWS - #{@aws.min_ttl}"),
      Colors.local_changes("\tLocal - #{@local.min_ttl}"),
    ].join("\n")
  when MAXTTL
    [
      "max ttl:",
      Colors.aws_changes("\tAWS - #{@aws.max_ttl}"),
      Colors.local_changes("\tLocal - #{@local.max_ttl}"),
    ].join("\n")
  when DEFTTL
    [
      "default ttl:",
      Colors.aws_changes("\tAWS - #{@aws.default_ttl}"),
      Colors.local_changes("\tLocal - #{@local.default_ttl}"),
    ].join("\n")
  when STREAMING
    [
      "smooth streaming:",
      Colors.aws_changes("\tAWS - #{@aws.smooth_streaming}"),
      Colors.local_changes("\tLocal - #{@local.smooth_streaming}"),
    ].join("\n")
  when METHODS_ALLOWED
    [
      "allowed methods:",
      allowed_methods.removed.map{ |removed| Colors.removed("\t#{removed}")},
      allowed_methods.added.map{ |added| Colors.added("\t#{added}")},
    ].flatten.join("\n")
  when METHODS_CACHED
    [
      "cached methods:",
      cached_methods.removed.map{ |removed| Colors.removed("\t#{removed}")},
      cached_methods.added.map{ |added| Colors.added("\t#{added}")},
    ].flatten.join("\n")
  when COMPRESS
    [
      "compress:",
      Colors.aws_changes("\tAWS - #{@aws.compress}"),
      Colors.local_changes("\tLocal - #{@local.compress}"),
    ].join("\n")
  end
end