Class: CyberSourceMergedSpec::DeviceInformation13

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/cyber_source_merged_spec/models/device_information13.rb

Overview

DeviceInformation13 Model.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseModel

#check_for_conflict, #process_additional_properties, #process_array, #process_basic_value, #process_hash, #to_hash, #to_json

Constructor Details

#initialize(cookies_accepted: SKIP, ip_address: SKIP, host_name: SKIP, fingerprint_session_id: SKIP, use_raw_fingerprint_session_id: SKIP, http_browser_email: SKIP, user_agent: SKIP, raw_data: SKIP, http_accept_browser_value: SKIP, http_accept_content: SKIP, http_browser_language: SKIP, http_browser_java_enabled: SKIP, http_browser_java_script_enabled: SKIP, http_browser_color_depth: SKIP, http_browser_screen_height: SKIP, http_browser_screen_width: SKIP, http_browser_time_difference: SKIP, user_agent_browser_value: SKIP, additional_properties: nil) ⇒ DeviceInformation13

Returns a new instance of DeviceInformation13.



190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 190

def initialize(cookies_accepted: SKIP, ip_address: SKIP, host_name: SKIP,
               fingerprint_session_id: SKIP,
               use_raw_fingerprint_session_id: SKIP,
               http_browser_email: SKIP, user_agent: SKIP, raw_data: SKIP,
               http_accept_browser_value: SKIP, http_accept_content: SKIP,
               http_browser_language: SKIP, http_browser_java_enabled: SKIP,
               http_browser_java_script_enabled: SKIP,
               http_browser_color_depth: SKIP,
               http_browser_screen_height: SKIP,
               http_browser_screen_width: SKIP,
               http_browser_time_difference: SKIP,
               user_agent_browser_value: SKIP, additional_properties: nil)
  # Add additional model properties to the instance
  additional_properties = {} if additional_properties.nil?

  @cookies_accepted = cookies_accepted unless cookies_accepted == SKIP
  @ip_address = ip_address unless ip_address == SKIP
  @host_name = host_name unless host_name == SKIP
  @fingerprint_session_id = fingerprint_session_id unless fingerprint_session_id == SKIP
  unless use_raw_fingerprint_session_id == SKIP
    @use_raw_fingerprint_session_id =
      use_raw_fingerprint_session_id
  end
  @http_browser_email = http_browser_email unless http_browser_email == SKIP
  @user_agent = user_agent unless user_agent == SKIP
  @raw_data = raw_data unless raw_data == SKIP
  unless http_accept_browser_value == SKIP
    @http_accept_browser_value =
      http_accept_browser_value
  end
  @http_accept_content = http_accept_content unless http_accept_content == SKIP
  @http_browser_language = http_browser_language unless http_browser_language == SKIP
  unless http_browser_java_enabled == SKIP
    @http_browser_java_enabled =
      http_browser_java_enabled
  end
  unless http_browser_java_script_enabled == SKIP
    @http_browser_java_script_enabled =
      http_browser_java_script_enabled
  end
  @http_browser_color_depth = http_browser_color_depth unless http_browser_color_depth == SKIP
  unless http_browser_screen_height == SKIP
    @http_browser_screen_height =
      http_browser_screen_height
  end
  unless http_browser_screen_width == SKIP
    @http_browser_screen_width =
      http_browser_screen_width
  end
  unless http_browser_time_difference == SKIP
    @http_browser_time_difference =
      http_browser_time_difference
  end
  @user_agent_browser_value = user_agent_browser_value unless user_agent_browser_value == SKIP
  @additional_properties = additional_properties
end

Instance Attribute Details

#cookies_acceptedString

Whether the customer’s browser accepts cookies. This field can contain one of the following values:

  • yes: The customer’s browser accepts cookies.
  • no: The customer’s browser does not accept cookies.

Returns:

  • (String)


17
18
19
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 17

def cookies_accepted
  @cookies_accepted
end

#fingerprint_session_idString

Field that contains the session ID that you send to Decision Manager to obtain the device fingerprint information. The string can contain uppercase and lowercase letters, digits, hyphen (-), and underscore (_). However, do not use the same uppercase and lowercase letters to indicate different session IDs. The session ID must be unique for each merchant ID. You can use any string that you are already generating, such as an order number or web session ID. The session ID must be unique for each page load, regardless of an individual’s web session ID. If a user navigates to a profiled page and is assigned a web session, navigates away from the profiled page, then navigates back to the profiled page, the generated session ID should be different and unique. You may use a web session ID, but it is preferable to use an application GUID (Globally Unique Identifier). This measure ensures that a unique ID is generated every time the page is loaded, even if it is the same user reloading the page.

Returns:

  • (String)


52
53
54
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 52

def fingerprint_session_id
  @fingerprint_session_id
end

#host_nameString

DNS resolved hostname from ipAddress.

Returns:

  • (String)


28
29
30
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 28

def host_name
  @host_name
end

#http_accept_browser_valueString

Value of the Accept header sent by the customer’s web browser. Note If the customer’s browser provides a value, you must include it in your request.

Returns:

  • (String)


84
85
86
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 84

def http_accept_browser_value
  @http_accept_browser_value
end

#http_accept_contentString

The exact content of the HTTP accept header.

Returns:

  • (String)


88
89
90
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 88

def http_accept_content
  @http_accept_content
end

#http_browser_color_depthString

Value represents the bit depth of the color palette for displaying images, in bits per pixel. Example : 24, refer https://en.wikipedia.org/wiki/Color_depth for more details

Returns:

  • (String)


115
116
117
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 115

def http_browser_color_depth
  @http_browser_color_depth
end

#http_browser_emailString

Email address set in the customer’s browser, which may differ from customer email.

Returns:

  • (String)


66
67
68
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 66

def http_browser_email
  @http_browser_email
end

#http_browser_java_enabledTrueClass | FalseClass

A Boolean value that represents the ability of the cardholder browser to execute Java. Value is returned from the navigator.javaEnabled property. Possible Values:True/False

Returns:

  • (TrueClass | FalseClass)


101
102
103
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 101

def http_browser_java_enabled
  @http_browser_java_enabled
end

#http_browser_java_script_enabledTrueClass | FalseClass

A Boolean value that represents the ability of the cardholder browser to execute JavaScript. Possible Values:True/False. Note: Merchants should be able to know the values from fingerprint details of cardholder's browser.

Returns:

  • (TrueClass | FalseClass)


108
109
110
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 108

def http_browser_java_script_enabled
  @http_browser_java_script_enabled
end

#http_browser_languageString

Value represents the browser language as defined in IETF BCP47. Example:en-US, refer https://en.wikipedia.org/wiki/IETF_language_tag for more details.

Returns:

  • (String)


94
95
96
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 94

def http_browser_language
  @http_browser_language
end

#http_browser_screen_heightString

Total height of the Cardholder's scree in pixels, example: 864.

Returns:

  • (String)


119
120
121
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 119

def http_browser_screen_height
  @http_browser_screen_height
end

#http_browser_screen_widthString

Total width of the cardholder's screen in pixels. Example: 1536.

Returns:

  • (String)


123
124
125
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 123

def http_browser_screen_width
  @http_browser_screen_width
end

#http_browser_time_differenceString

Time difference between UTC time and the cardholder browser local time, in minutes, Example:300

Returns:

  • (String)


128
129
130
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 128

def http_browser_time_difference
  @http_browser_time_difference
end

#ip_addressString

IP address of the customer.

Used by

Authorization, Capture, and Credit Optional field.

Returns:

  • (String)


24
25
26
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 24

def ip_address
  @ip_address
end

#raw_dataArray[RawDatum]

Customer’s browser as identified from the HTTP header data. For example, Mozilla is the value that identifies the Netscape browser.

Returns:



78
79
80
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 78

def raw_data
  @raw_data
end

#use_raw_fingerprint_session_idTrueClass | FalseClass

Boolean that indicates whether request contains the device fingerprint information. Values:

  • true: Use raw fingerprintSessionId when looking up device details.
  • false (default): Use merchant id + fingerprintSessionId as the session id for Device detail collection.

Returns:

  • (TrueClass | FalseClass)


61
62
63
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 61

def use_raw_fingerprint_session_id
  @use_raw_fingerprint_session_id
end

#user_agentString

Customer’s browser as identified from the HTTP header data. For example, Mozilla is the value that identifies the Netscape browser.

Returns:

  • (String)


72
73
74
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 72

def user_agent
  @user_agent
end

#user_agent_browser_valueString

Value of the User-Agent header sent by the customer’s web browser. Note If the customer’s browser provides a value, you must include it in your request.

Returns:

  • (String)


134
135
136
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 134

def user_agent_browser_value
  @user_agent_browser_value
end

Class Method Details

.from_element(root) ⇒ Object



323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 323

def self.from_element(root)
  cookies_accepted = XmlUtilities.from_element(root, 'cookiesAccepted',
                                               String)
  ip_address = XmlUtilities.from_element(root, 'ipAddress', String)
  host_name = XmlUtilities.from_element(root, 'hostName', String)
  fingerprint_session_id = XmlUtilities.from_element(root,
                                                     'fingerprintSessionId',
                                                     String)
  use_raw_fingerprint_session_id = XmlUtilities.from_element(
    root, 'useRawFingerprintSessionId', TrueClass
  )
  http_browser_email = XmlUtilities.from_element(root, 'httpBrowserEmail',
                                                 String)
  user_agent = XmlUtilities.from_element(root, 'userAgent', String)
  raw_data = XmlUtilities.from_element_to_array(root, 'RawDatum', RawDatum)
  http_accept_browser_value = XmlUtilities.from_element(
    root, 'httpAcceptBrowserValue', String
  )
  http_accept_content = XmlUtilities.from_element(root, 'httpAcceptContent',
                                                  String)
  http_browser_language = XmlUtilities.from_element(root,
                                                    'httpBrowserLanguage',
                                                    String)
  http_browser_java_enabled = XmlUtilities.from_element(
    root, 'httpBrowserJavaEnabled', TrueClass
  )
  http_browser_java_script_enabled = XmlUtilities.from_element(
    root, 'httpBrowserJavaScriptEnabled', TrueClass
  )
  http_browser_color_depth = XmlUtilities.from_element(
    root, 'httpBrowserColorDepth', String
  )
  http_browser_screen_height = XmlUtilities.from_element(
    root, 'httpBrowserScreenHeight', String
  )
  http_browser_screen_width = XmlUtilities.from_element(
    root, 'httpBrowserScreenWidth', String
  )
  http_browser_time_difference = XmlUtilities.from_element(
    root, 'httpBrowserTimeDifference', String
  )
  user_agent_browser_value = XmlUtilities.from_element(
    root, 'userAgentBrowserValue', String
  )

  new(cookies_accepted: cookies_accepted,
      ip_address: ip_address,
      host_name: host_name,
      fingerprint_session_id: fingerprint_session_id,
      use_raw_fingerprint_session_id: use_raw_fingerprint_session_id,
      http_browser_email: http_browser_email,
      user_agent: user_agent,
      raw_data: raw_data,
      http_accept_browser_value: http_accept_browser_value,
      http_accept_content: http_accept_content,
      http_browser_language: http_browser_language,
      http_browser_java_enabled: http_browser_java_enabled,
      http_browser_java_script_enabled: http_browser_java_script_enabled,
      http_browser_color_depth: http_browser_color_depth,
      http_browser_screen_height: http_browser_screen_height,
      http_browser_screen_width: http_browser_screen_width,
      http_browser_time_difference: http_browser_time_difference,
      user_agent_browser_value: user_agent_browser_value,
      additional_properties: additional_properties)
end

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.



248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 248

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.
  cookies_accepted =
    hash.key?('cookiesAccepted') ? hash['cookiesAccepted'] : SKIP
  ip_address = hash.key?('ipAddress') ? hash['ipAddress'] : SKIP
  host_name = hash.key?('hostName') ? hash['hostName'] : SKIP
  fingerprint_session_id =
    hash.key?('fingerprintSessionId') ? hash['fingerprintSessionId'] : SKIP
  use_raw_fingerprint_session_id =
    hash.key?('useRawFingerprintSessionId') ? hash['useRawFingerprintSessionId'] : SKIP
  http_browser_email =
    hash.key?('httpBrowserEmail') ? hash['httpBrowserEmail'] : SKIP
  user_agent = hash.key?('userAgent') ? hash['userAgent'] : SKIP
  # Parameter is an array, so we need to iterate through it
  raw_data = nil
  unless hash['rawData'].nil?
    raw_data = []
    hash['rawData'].each do |structure|
      raw_data << (RawDatum.from_hash(structure) if structure)
    end
  end

  raw_data = SKIP unless hash.key?('rawData')
  http_accept_browser_value =
    hash.key?('httpAcceptBrowserValue') ? hash['httpAcceptBrowserValue'] : SKIP
  http_accept_content =
    hash.key?('httpAcceptContent') ? hash['httpAcceptContent'] : SKIP
  http_browser_language =
    hash.key?('httpBrowserLanguage') ? hash['httpBrowserLanguage'] : SKIP
  http_browser_java_enabled =
    hash.key?('httpBrowserJavaEnabled') ? hash['httpBrowserJavaEnabled'] : SKIP
  http_browser_java_script_enabled =
    hash.key?('httpBrowserJavaScriptEnabled') ? hash['httpBrowserJavaScriptEnabled'] : SKIP
  http_browser_color_depth =
    hash.key?('httpBrowserColorDepth') ? hash['httpBrowserColorDepth'] : SKIP
  http_browser_screen_height =
    hash.key?('httpBrowserScreenHeight') ? hash['httpBrowserScreenHeight'] : SKIP
  http_browser_screen_width =
    hash.key?('httpBrowserScreenWidth') ? hash['httpBrowserScreenWidth'] : SKIP
  http_browser_time_difference =
    hash.key?('httpBrowserTimeDifference') ? hash['httpBrowserTimeDifference'] : SKIP
  user_agent_browser_value =
    hash.key?('userAgentBrowserValue') ? hash['userAgentBrowserValue'] : SKIP

  # Create a new hash for additional properties, removing known properties.
  new_hash = hash.reject { |k, _| names.value?(k) }

  additional_properties = APIHelper.get_additional_properties(
    new_hash, proc { |value| value }
  )

  # Create object from extracted values.
  DeviceInformation13.new(cookies_accepted: cookies_accepted,
                          ip_address: ip_address,
                          host_name: host_name,
                          fingerprint_session_id: fingerprint_session_id,
                          use_raw_fingerprint_session_id: use_raw_fingerprint_session_id,
                          http_browser_email: http_browser_email,
                          user_agent: user_agent,
                          raw_data: raw_data,
                          http_accept_browser_value: http_accept_browser_value,
                          http_accept_content: http_accept_content,
                          http_browser_language: http_browser_language,
                          http_browser_java_enabled: http_browser_java_enabled,
                          http_browser_java_script_enabled: http_browser_java_script_enabled,
                          http_browser_color_depth: http_browser_color_depth,
                          http_browser_screen_height: http_browser_screen_height,
                          http_browser_screen_width: http_browser_screen_width,
                          http_browser_time_difference: http_browser_time_difference,
                          user_agent_browser_value: user_agent_browser_value,
                          additional_properties: additional_properties)
end

.namesObject

A mapping from model property names to API property names.



137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 137

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['cookies_accepted'] = 'cookiesAccepted'
  @_hash['ip_address'] = 'ipAddress'
  @_hash['host_name'] = 'hostName'
  @_hash['fingerprint_session_id'] = 'fingerprintSessionId'
  @_hash['use_raw_fingerprint_session_id'] = 'useRawFingerprintSessionId'
  @_hash['http_browser_email'] = 'httpBrowserEmail'
  @_hash['user_agent'] = 'userAgent'
  @_hash['raw_data'] = 'rawData'
  @_hash['http_accept_browser_value'] = 'httpAcceptBrowserValue'
  @_hash['http_accept_content'] = 'httpAcceptContent'
  @_hash['http_browser_language'] = 'httpBrowserLanguage'
  @_hash['http_browser_java_enabled'] = 'httpBrowserJavaEnabled'
  @_hash['http_browser_java_script_enabled'] =
    'httpBrowserJavaScriptEnabled'
  @_hash['http_browser_color_depth'] = 'httpBrowserColorDepth'
  @_hash['http_browser_screen_height'] = 'httpBrowserScreenHeight'
  @_hash['http_browser_screen_width'] = 'httpBrowserScreenWidth'
  @_hash['http_browser_time_difference'] = 'httpBrowserTimeDifference'
  @_hash['user_agent_browser_value'] = 'userAgentBrowserValue'
  @_hash
end

.nullablesObject

An array for nullable fields



186
187
188
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 186

def self.nullables
  []
end

.optionalsObject

An array for optional fields



162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 162

def self.optionals
  %w[
    cookies_accepted
    ip_address
    host_name
    fingerprint_session_id
    use_raw_fingerprint_session_id
    http_browser_email
    user_agent
    raw_data
    http_accept_browser_value
    http_accept_content
    http_browser_language
    http_browser_java_enabled
    http_browser_java_script_enabled
    http_browser_color_depth
    http_browser_screen_height
    http_browser_screen_width
    http_browser_time_difference
    user_agent_browser_value
  ]
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 448

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} cookies_accepted: #{@cookies_accepted.inspect}, ip_address:"\
  " #{@ip_address.inspect}, host_name: #{@host_name.inspect}, fingerprint_session_id:"\
  " #{@fingerprint_session_id.inspect}, use_raw_fingerprint_session_id:"\
  " #{@use_raw_fingerprint_session_id.inspect}, http_browser_email:"\
  " #{@http_browser_email.inspect}, user_agent: #{@user_agent.inspect}, raw_data:"\
  " #{@raw_data.inspect}, http_accept_browser_value: #{@http_accept_browser_value.inspect},"\
  " http_accept_content: #{@http_accept_content.inspect}, http_browser_language:"\
  " #{@http_browser_language.inspect}, http_browser_java_enabled:"\
  " #{@http_browser_java_enabled.inspect}, http_browser_java_script_enabled:"\
  " #{@http_browser_java_script_enabled.inspect}, http_browser_color_depth:"\
  " #{@http_browser_color_depth.inspect}, http_browser_screen_height:"\
  " #{@http_browser_screen_height.inspect}, http_browser_screen_width:"\
  " #{@http_browser_screen_width.inspect}, http_browser_time_difference:"\
  " #{@http_browser_time_difference.inspect}, user_agent_browser_value:"\
  " #{@user_agent_browser_value.inspect}, additional_properties: #{@additional_properties}>"
end

#to_sObject

Provides a human-readable string representation of the object.



431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 431

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} cookies_accepted: #{@cookies_accepted}, ip_address: #{@ip_address},"\
  " host_name: #{@host_name}, fingerprint_session_id: #{@fingerprint_session_id},"\
  " use_raw_fingerprint_session_id: #{@use_raw_fingerprint_session_id}, http_browser_email:"\
  " #{@http_browser_email}, user_agent: #{@user_agent}, raw_data: #{@raw_data},"\
  " http_accept_browser_value: #{@http_accept_browser_value}, http_accept_content:"\
  " #{@http_accept_content}, http_browser_language: #{@http_browser_language},"\
  " http_browser_java_enabled: #{@http_browser_java_enabled},"\
  " http_browser_java_script_enabled: #{@http_browser_java_script_enabled},"\
  " http_browser_color_depth: #{@http_browser_color_depth}, http_browser_screen_height:"\
  " #{@http_browser_screen_height}, http_browser_screen_width: #{@http_browser_screen_width},"\
  " http_browser_time_difference: #{@http_browser_time_difference}, user_agent_browser_value:"\
  " #{@user_agent_browser_value}, additional_properties: #{@additional_properties}>"
end

#to_xml_element(doc, root_name) ⇒ Object



389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
# File 'lib/cyber_source_merged_spec/models/device_information13.rb', line 389

def to_xml_element(doc, root_name)
  root = doc.create_element(root_name)

  XmlUtilities.add_as_subelement(doc, root, 'cookiesAccepted',
                                 cookies_accepted)
  XmlUtilities.add_as_subelement(doc, root, 'ipAddress', ip_address)
  XmlUtilities.add_as_subelement(doc, root, 'hostName', host_name)
  XmlUtilities.add_as_subelement(doc, root, 'fingerprintSessionId',
                                 fingerprint_session_id)
  XmlUtilities.add_as_subelement(doc, root, 'useRawFingerprintSessionId',
                                 use_raw_fingerprint_session_id)
  XmlUtilities.add_as_subelement(doc, root, 'httpBrowserEmail',
                                 http_browser_email)
  XmlUtilities.add_as_subelement(doc, root, 'userAgent', user_agent)
  XmlUtilities.add_array_as_subelement(doc, root, 'RawDatum', raw_data)
  XmlUtilities.add_as_subelement(doc, root, 'httpAcceptBrowserValue',
                                 http_accept_browser_value)
  XmlUtilities.add_as_subelement(doc, root, 'httpAcceptContent',
                                 http_accept_content)
  XmlUtilities.add_as_subelement(doc, root, 'httpBrowserLanguage',
                                 http_browser_language)
  XmlUtilities.add_as_subelement(doc, root, 'httpBrowserJavaEnabled',
                                 http_browser_java_enabled)
  XmlUtilities.add_as_subelement(doc, root, 'httpBrowserJavaScriptEnabled',
                                 http_browser_java_script_enabled)
  XmlUtilities.add_as_subelement(doc, root, 'httpBrowserColorDepth',
                                 http_browser_color_depth)
  XmlUtilities.add_as_subelement(doc, root, 'httpBrowserScreenHeight',
                                 http_browser_screen_height)
  XmlUtilities.add_as_subelement(doc, root, 'httpBrowserScreenWidth',
                                 http_browser_screen_width)
  XmlUtilities.add_as_subelement(doc, root, 'httpBrowserTimeDifference',
                                 http_browser_time_difference)
  XmlUtilities.add_as_subelement(doc, root, 'userAgentBrowserValue',
                                 user_agent_browser_value)
  XmlUtilities.add_as_subelement(doc, root, 'additional_properties',
                                 additional_properties)

  root
end