docusign_esign 3.5.0 → 3.6.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/docusign_esign-2.6.0.gem +0 -0
  4. data/docusign_esign-2.7.0.rc1.gem +0 -0
  5. data/docusign_esign-3.5.0.gem +0 -0
  6. data/lib/docusign_esign.rb +10 -0
  7. data/lib/docusign_esign/api/accounts_api.rb +556 -4
  8. data/lib/docusign_esign/api/envelopes_api.rb +56 -2
  9. data/lib/docusign_esign/models/account_settings_information.rb +20 -1
  10. data/lib/docusign_esign/models/account_signature.rb +497 -0
  11. data/lib/docusign_esign/models/account_signature_definition.rb +338 -0
  12. data/lib/docusign_esign/models/account_signatures_information.rb +187 -0
  13. data/lib/docusign_esign/models/correct_view_request.rb +14 -4
  14. data/lib/docusign_esign/models/in_person_signer.rb +11 -1
  15. data/lib/docusign_esign/models/notary_certificate.rb +869 -0
  16. data/lib/docusign_esign/models/notary_recipient.rb +1097 -0
  17. data/lib/docusign_esign/models/notary_seal.rb +983 -0
  18. data/lib/docusign_esign/models/recipients.rb +13 -1
  19. data/lib/docusign_esign/models/signature_group.rb +205 -0
  20. data/lib/docusign_esign/models/signature_group_def.rb +195 -0
  21. data/lib/docusign_esign/models/signature_user.rb +215 -0
  22. data/lib/docusign_esign/models/signature_user_def.rb +205 -0
  23. data/lib/docusign_esign/models/signer.rb +11 -1
  24. data/lib/docusign_esign/models/tabs.rb +25 -1
  25. data/lib/docusign_esign/models/template_recipients.rb +13 -1
  26. data/lib/docusign_esign/models/template_tabs.rb +25 -1
  27. data/lib/docusign_esign/models/user_account_management_granular_information.rb +20 -1
  28. data/lib/docusign_esign/models/witness.rb +11 -1
  29. data/lib/docusign_esign/version.rb +1 -1
  30. data/tests/Gemfile.lock +1 -1
  31. metadata +17 -4
@@ -20,11 +20,15 @@ module DocuSign_eSign
20
20
  # Specifies whether the window is displayed with or without dressing.
21
21
  attr_accessor :suppress_navigation
22
22
 
23
+ #
24
+ attr_accessor :view_url
25
+
23
26
  # Attribute mapping from ruby-style variable name to JSON key.
24
27
  def self.attribute_map
25
28
  {
26
29
  :'return_url' => :'returnUrl',
27
- :'suppress_navigation' => :'suppressNavigation'
30
+ :'suppress_navigation' => :'suppressNavigation',
31
+ :'view_url' => :'viewUrl'
28
32
  }
29
33
  end
30
34
 
@@ -32,7 +36,8 @@ module DocuSign_eSign
32
36
  def self.swagger_types
33
37
  {
34
38
  :'return_url' => :'String',
35
- :'suppress_navigation' => :'String'
39
+ :'suppress_navigation' => :'String',
40
+ :'view_url' => :'String'
36
41
  }
37
42
  end
38
43
 
@@ -51,6 +56,10 @@ module DocuSign_eSign
51
56
  if attributes.has_key?(:'suppressNavigation')
52
57
  self.suppress_navigation = attributes[:'suppressNavigation']
53
58
  end
59
+
60
+ if attributes.has_key?(:'viewUrl')
61
+ self.view_url = attributes[:'viewUrl']
62
+ end
54
63
  end
55
64
 
56
65
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -72,7 +81,8 @@ module DocuSign_eSign
72
81
  return true if self.equal?(o)
73
82
  self.class == o.class &&
74
83
  return_url == o.return_url &&
75
- suppress_navigation == o.suppress_navigation
84
+ suppress_navigation == o.suppress_navigation &&
85
+ view_url == o.view_url
76
86
  end
77
87
 
78
88
  # @see the `==` method
@@ -84,7 +94,7 @@ module DocuSign_eSign
84
94
  # Calculates hash code according to all attributes.
85
95
  # @return [Fixnum] Hash code
86
96
  def hash
87
- [return_url, suppress_navigation].hash
97
+ [return_url, suppress_navigation, view_url].hash
88
98
  end
89
99
 
90
100
  # Builds the object from hash
@@ -129,6 +129,9 @@ module DocuSign_eSign
129
129
 
130
130
  attr_accessor :notary_host
131
131
 
132
+ #
133
+ attr_accessor :notary_id
134
+
132
135
  # Specifies a note that is unique to this recipient. This note is sent to the recipient via the signing email. The note displays in the signing UI near the upper left corner of the document on the signing screen. Maximum Length: 1000 characters.
133
136
  attr_accessor :note
134
137
 
@@ -303,6 +306,7 @@ module DocuSign_eSign
303
306
  :'name' => :'name',
304
307
  :'name_metadata' => :'nameMetadata',
305
308
  :'notary_host' => :'notaryHost',
309
+ :'notary_id' => :'notaryId',
306
310
  :'note' => :'note',
307
311
  :'note_metadata' => :'noteMetadata',
308
312
  :'offline_attributes' => :'offlineAttributes',
@@ -400,6 +404,7 @@ module DocuSign_eSign
400
404
  :'name' => :'String',
401
405
  :'name_metadata' => :'PropertyMetadata',
402
406
  :'notary_host' => :'NotaryHost',
407
+ :'notary_id' => :'String',
403
408
  :'note' => :'String',
404
409
  :'note_metadata' => :'PropertyMetadata',
405
410
  :'offline_attributes' => :'OfflineAttributes',
@@ -637,6 +642,10 @@ module DocuSign_eSign
637
642
  self.notary_host = attributes[:'notaryHost']
638
643
  end
639
644
 
645
+ if attributes.has_key?(:'notaryId')
646
+ self.notary_id = attributes[:'notaryId']
647
+ end
648
+
640
649
  if attributes.has_key?(:'note')
641
650
  self.note = attributes[:'note']
642
651
  end
@@ -901,6 +910,7 @@ module DocuSign_eSign
901
910
  name == o.name &&
902
911
  name_metadata == o.name_metadata &&
903
912
  notary_host == o.notary_host &&
913
+ notary_id == o.notary_id &&
904
914
  note == o.note &&
905
915
  note_metadata == o.note_metadata &&
906
916
  offline_attributes == o.offline_attributes &&
@@ -960,7 +970,7 @@ module DocuSign_eSign
960
970
  # Calculates hash code according to all attributes.
961
971
  # @return [Fixnum] Hash code
962
972
  def hash
963
- [access_code, access_code_metadata, add_access_code_to_email, allow_system_override_for_locked_recipient, auto_navigation, can_sign_offline, client_user_id, completed_count, creation_reason, custom_fields, declined_date_time, declined_reason, default_recipient, delivered_date_time, delivery_method, delivery_method_metadata, designator_id, designator_id_guid, document_visibility, email, email_metadata, email_notification, embedded_recipient_start_url, error_details, excluded_documents, fax_number, fax_number_metadata, host_email, host_email_metadata, host_name, host_name_metadata, id_check_configuration_name, id_check_configuration_name_metadata, id_check_information_input, identity_verification, inherit_email_notification_configuration, in_person_signing_type, in_person_signing_type_metadata, locked_recipient_phone_auth_editable, locked_recipient_sms_editable, name, name_metadata, notary_host, note, note_metadata, offline_attributes, phone_authentication, recipient_attachments, recipient_authentication_status, recipient_feature_metadata, recipient_id, recipient_id_guid, recipient_signature_providers, recipient_supplies_tabs, recipient_type, recipient_type_metadata, require_id_lookup, require_id_lookup_metadata, require_signer_certificate, require_sign_on_paper, require_upload_signature, role_name, routing_order, routing_order_metadata, sent_date_time, signature_info, signed_date_time, signer_email, signer_email_metadata, signer_first_name, signer_first_name_metadata, signer_last_name, signer_last_name_metadata, signer_name, signer_name_metadata, sign_in_each_location, sign_in_each_location_metadata, signing_group_id, signing_group_id_metadata, signing_group_name, signing_group_users, sms_authentication, social_authentications, status, status_code, suppress_emails, tabs, template_locked, template_required, total_tab_count, user_id].hash
973
+ [access_code, access_code_metadata, add_access_code_to_email, allow_system_override_for_locked_recipient, auto_navigation, can_sign_offline, client_user_id, completed_count, creation_reason, custom_fields, declined_date_time, declined_reason, default_recipient, delivered_date_time, delivery_method, delivery_method_metadata, designator_id, designator_id_guid, document_visibility, email, email_metadata, email_notification, embedded_recipient_start_url, error_details, excluded_documents, fax_number, fax_number_metadata, host_email, host_email_metadata, host_name, host_name_metadata, id_check_configuration_name, id_check_configuration_name_metadata, id_check_information_input, identity_verification, inherit_email_notification_configuration, in_person_signing_type, in_person_signing_type_metadata, locked_recipient_phone_auth_editable, locked_recipient_sms_editable, name, name_metadata, notary_host, notary_id, note, note_metadata, offline_attributes, phone_authentication, recipient_attachments, recipient_authentication_status, recipient_feature_metadata, recipient_id, recipient_id_guid, recipient_signature_providers, recipient_supplies_tabs, recipient_type, recipient_type_metadata, require_id_lookup, require_id_lookup_metadata, require_signer_certificate, require_sign_on_paper, require_upload_signature, role_name, routing_order, routing_order_metadata, sent_date_time, signature_info, signed_date_time, signer_email, signer_email_metadata, signer_first_name, signer_first_name_metadata, signer_last_name, signer_last_name_metadata, signer_name, signer_name_metadata, sign_in_each_location, sign_in_each_location_metadata, signing_group_id, signing_group_id_metadata, signing_group_name, signing_group_users, sms_authentication, social_authentications, status, status_code, suppress_emails, tabs, template_locked, template_required, total_tab_count, user_id].hash
964
974
  end
965
975
 
966
976
  # Builds the object from hash
@@ -0,0 +1,869 @@
1
+ =begin
2
+ #DocuSign REST API
3
+
4
+ #The DocuSign REST API provides you with a powerful, convenient, and simple Web services API for interacting with DocuSign.
5
+
6
+ OpenAPI spec version: v2.1
7
+ Contact: devcenter@docusign.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.13-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module DocuSign_eSign
16
+ class NotaryCertificate
17
+ #
18
+ attr_accessor :anchor_allow_white_space_in_characters
19
+
20
+ attr_accessor :anchor_allow_white_space_in_characters_metadata
21
+
22
+ # When set to **true**, the anchor string does not consider case when matching strings in the document. The default value is **true**.
23
+ attr_accessor :anchor_case_sensitive
24
+
25
+ attr_accessor :anchor_case_sensitive_metadata
26
+
27
+ # Specifies the alignment of anchor tabs with anchor strings. Possible values are **left** or **right**. The default value is **left**.
28
+ attr_accessor :anchor_horizontal_alignment
29
+
30
+ attr_accessor :anchor_horizontal_alignment_metadata
31
+
32
+ # When set to **true**, this tab is ignored if anchorString is not found in the document.
33
+ attr_accessor :anchor_ignore_if_not_present
34
+
35
+ attr_accessor :anchor_ignore_if_not_present_metadata
36
+
37
+ # When set to **true**, the anchor string in this tab matches whole words only (strings embedded in other strings are ignored.) The default value is **true**.
38
+ attr_accessor :anchor_match_whole_word
39
+
40
+ attr_accessor :anchor_match_whole_word_metadata
41
+
42
+ # Anchor text information for a radio button.
43
+ attr_accessor :anchor_string
44
+
45
+ attr_accessor :anchor_string_metadata
46
+
47
+ #
48
+ attr_accessor :anchor_tab_processor_version
49
+
50
+ attr_accessor :anchor_tab_processor_version_metadata
51
+
52
+ # Specifies units of the X and Y offset. Units could be pixels, millimeters, centimeters, or inches.
53
+ attr_accessor :anchor_units
54
+
55
+ attr_accessor :anchor_units_metadata
56
+
57
+ # Specifies the X axis location of the tab, in anchorUnits, relative to the anchorString.
58
+ attr_accessor :anchor_x_offset
59
+
60
+ attr_accessor :anchor_x_offset_metadata
61
+
62
+ # Specifies the Y axis location of the tab, in anchorUnits, relative to the anchorString.
63
+ attr_accessor :anchor_y_offset
64
+
65
+ attr_accessor :anchor_y_offset_metadata
66
+
67
+ # For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.
68
+ attr_accessor :conditional_parent_label
69
+
70
+ attr_accessor :conditional_parent_label_metadata
71
+
72
+ # For conditional fields, this is the value of the parent tab that controls the tab's visibility. If the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \"on\" as the value to show that the parent tab is active.
73
+ attr_accessor :conditional_parent_value
74
+
75
+ attr_accessor :conditional_parent_value_metadata
76
+
77
+ # The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.
78
+ attr_accessor :custom_tab_id
79
+
80
+ attr_accessor :custom_tab_id_metadata
81
+
82
+ # Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.
83
+ attr_accessor :document_id
84
+
85
+ attr_accessor :document_id_metadata
86
+
87
+ attr_accessor :error_details
88
+
89
+ #
90
+ attr_accessor :form_order
91
+
92
+ attr_accessor :form_order_metadata
93
+
94
+ #
95
+ attr_accessor :form_page_label
96
+
97
+ attr_accessor :form_page_label_metadata
98
+
99
+ #
100
+ attr_accessor :form_page_number
101
+
102
+ attr_accessor :form_page_number_metadata
103
+
104
+ # Height of the tab in pixels.
105
+ attr_accessor :height
106
+
107
+ attr_accessor :height_metadata
108
+
109
+ # When set to **true**, the signer cannot change the data of the custom tab.
110
+ attr_accessor :locked
111
+
112
+ attr_accessor :locked_metadata
113
+
114
+ attr_accessor :merge_field
115
+
116
+ #
117
+ attr_accessor :merge_field_xml
118
+
119
+ # Specifies the page number on which the tab is located.
120
+ attr_accessor :page_number
121
+
122
+ attr_accessor :page_number_metadata
123
+
124
+ # Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.
125
+ attr_accessor :recipient_id
126
+
127
+ #
128
+ attr_accessor :recipient_id_guid
129
+
130
+ attr_accessor :recipient_id_guid_metadata
131
+
132
+ attr_accessor :recipient_id_metadata
133
+
134
+ # When set to **true**, the signer is required to fill out this tab
135
+ attr_accessor :required
136
+
137
+ attr_accessor :required_metadata
138
+
139
+ attr_accessor :smart_contract_information
140
+
141
+ # Indicates the envelope status. Valid values are: * sent - The envelope is sent to the recipients. * created - The envelope is saved as a draft and can be modified and sent later.
142
+ attr_accessor :status
143
+
144
+ attr_accessor :status_metadata
145
+
146
+ #
147
+ attr_accessor :tab_group_labels
148
+
149
+ attr_accessor :tab_group_labels_metadata
150
+
151
+ # The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].
152
+ attr_accessor :tab_id
153
+
154
+ attr_accessor :tab_id_metadata
155
+
156
+ attr_accessor :tab_label_metadata
157
+
158
+ #
159
+ attr_accessor :tab_order
160
+
161
+ attr_accessor :tab_order_metadata
162
+
163
+ #
164
+ attr_accessor :tab_type
165
+
166
+ attr_accessor :tab_type_metadata
167
+
168
+ # When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
169
+ attr_accessor :template_locked
170
+
171
+ attr_accessor :template_locked_metadata
172
+
173
+ # When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
174
+ attr_accessor :template_required
175
+
176
+ attr_accessor :template_required_metadata
177
+
178
+ #
179
+ attr_accessor :tooltip
180
+
181
+ attr_accessor :tool_tip_metadata
182
+
183
+ # Width of the tab in pixels.
184
+ attr_accessor :width
185
+
186
+ attr_accessor :width_metadata
187
+
188
+ # This indicates the horizontal offset of the object on the page. DocuSign uses 72 DPI when determining position.
189
+ attr_accessor :x_position
190
+
191
+ attr_accessor :x_position_metadata
192
+
193
+ # This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.
194
+ attr_accessor :y_position
195
+
196
+ attr_accessor :y_position_metadata
197
+
198
+ # Attribute mapping from ruby-style variable name to JSON key.
199
+ def self.attribute_map
200
+ {
201
+ :'anchor_allow_white_space_in_characters' => :'anchorAllowWhiteSpaceInCharacters',
202
+ :'anchor_allow_white_space_in_characters_metadata' => :'anchorAllowWhiteSpaceInCharactersMetadata',
203
+ :'anchor_case_sensitive' => :'anchorCaseSensitive',
204
+ :'anchor_case_sensitive_metadata' => :'anchorCaseSensitiveMetadata',
205
+ :'anchor_horizontal_alignment' => :'anchorHorizontalAlignment',
206
+ :'anchor_horizontal_alignment_metadata' => :'anchorHorizontalAlignmentMetadata',
207
+ :'anchor_ignore_if_not_present' => :'anchorIgnoreIfNotPresent',
208
+ :'anchor_ignore_if_not_present_metadata' => :'anchorIgnoreIfNotPresentMetadata',
209
+ :'anchor_match_whole_word' => :'anchorMatchWholeWord',
210
+ :'anchor_match_whole_word_metadata' => :'anchorMatchWholeWordMetadata',
211
+ :'anchor_string' => :'anchorString',
212
+ :'anchor_string_metadata' => :'anchorStringMetadata',
213
+ :'anchor_tab_processor_version' => :'anchorTabProcessorVersion',
214
+ :'anchor_tab_processor_version_metadata' => :'anchorTabProcessorVersionMetadata',
215
+ :'anchor_units' => :'anchorUnits',
216
+ :'anchor_units_metadata' => :'anchorUnitsMetadata',
217
+ :'anchor_x_offset' => :'anchorXOffset',
218
+ :'anchor_x_offset_metadata' => :'anchorXOffsetMetadata',
219
+ :'anchor_y_offset' => :'anchorYOffset',
220
+ :'anchor_y_offset_metadata' => :'anchorYOffsetMetadata',
221
+ :'conditional_parent_label' => :'conditionalParentLabel',
222
+ :'conditional_parent_label_metadata' => :'conditionalParentLabelMetadata',
223
+ :'conditional_parent_value' => :'conditionalParentValue',
224
+ :'conditional_parent_value_metadata' => :'conditionalParentValueMetadata',
225
+ :'custom_tab_id' => :'customTabId',
226
+ :'custom_tab_id_metadata' => :'customTabIdMetadata',
227
+ :'document_id' => :'documentId',
228
+ :'document_id_metadata' => :'documentIdMetadata',
229
+ :'error_details' => :'errorDetails',
230
+ :'form_order' => :'formOrder',
231
+ :'form_order_metadata' => :'formOrderMetadata',
232
+ :'form_page_label' => :'formPageLabel',
233
+ :'form_page_label_metadata' => :'formPageLabelMetadata',
234
+ :'form_page_number' => :'formPageNumber',
235
+ :'form_page_number_metadata' => :'formPageNumberMetadata',
236
+ :'height' => :'height',
237
+ :'height_metadata' => :'heightMetadata',
238
+ :'locked' => :'locked',
239
+ :'locked_metadata' => :'lockedMetadata',
240
+ :'merge_field' => :'mergeField',
241
+ :'merge_field_xml' => :'mergeFieldXml',
242
+ :'page_number' => :'pageNumber',
243
+ :'page_number_metadata' => :'pageNumberMetadata',
244
+ :'recipient_id' => :'recipientId',
245
+ :'recipient_id_guid' => :'recipientIdGuid',
246
+ :'recipient_id_guid_metadata' => :'recipientIdGuidMetadata',
247
+ :'recipient_id_metadata' => :'recipientIdMetadata',
248
+ :'required' => :'required',
249
+ :'required_metadata' => :'requiredMetadata',
250
+ :'smart_contract_information' => :'smartContractInformation',
251
+ :'status' => :'status',
252
+ :'status_metadata' => :'statusMetadata',
253
+ :'tab_group_labels' => :'tabGroupLabels',
254
+ :'tab_group_labels_metadata' => :'tabGroupLabelsMetadata',
255
+ :'tab_id' => :'tabId',
256
+ :'tab_id_metadata' => :'tabIdMetadata',
257
+ :'tab_label_metadata' => :'tabLabelMetadata',
258
+ :'tab_order' => :'tabOrder',
259
+ :'tab_order_metadata' => :'tabOrderMetadata',
260
+ :'tab_type' => :'tabType',
261
+ :'tab_type_metadata' => :'tabTypeMetadata',
262
+ :'template_locked' => :'templateLocked',
263
+ :'template_locked_metadata' => :'templateLockedMetadata',
264
+ :'template_required' => :'templateRequired',
265
+ :'template_required_metadata' => :'templateRequiredMetadata',
266
+ :'tooltip' => :'tooltip',
267
+ :'tool_tip_metadata' => :'toolTipMetadata',
268
+ :'width' => :'width',
269
+ :'width_metadata' => :'widthMetadata',
270
+ :'x_position' => :'xPosition',
271
+ :'x_position_metadata' => :'xPositionMetadata',
272
+ :'y_position' => :'yPosition',
273
+ :'y_position_metadata' => :'yPositionMetadata'
274
+ }
275
+ end
276
+
277
+ # Attribute type mapping.
278
+ def self.swagger_types
279
+ {
280
+ :'anchor_allow_white_space_in_characters' => :'String',
281
+ :'anchor_allow_white_space_in_characters_metadata' => :'PropertyMetadata',
282
+ :'anchor_case_sensitive' => :'String',
283
+ :'anchor_case_sensitive_metadata' => :'PropertyMetadata',
284
+ :'anchor_horizontal_alignment' => :'String',
285
+ :'anchor_horizontal_alignment_metadata' => :'PropertyMetadata',
286
+ :'anchor_ignore_if_not_present' => :'String',
287
+ :'anchor_ignore_if_not_present_metadata' => :'PropertyMetadata',
288
+ :'anchor_match_whole_word' => :'String',
289
+ :'anchor_match_whole_word_metadata' => :'PropertyMetadata',
290
+ :'anchor_string' => :'String',
291
+ :'anchor_string_metadata' => :'PropertyMetadata',
292
+ :'anchor_tab_processor_version' => :'String',
293
+ :'anchor_tab_processor_version_metadata' => :'PropertyMetadata',
294
+ :'anchor_units' => :'String',
295
+ :'anchor_units_metadata' => :'PropertyMetadata',
296
+ :'anchor_x_offset' => :'String',
297
+ :'anchor_x_offset_metadata' => :'PropertyMetadata',
298
+ :'anchor_y_offset' => :'String',
299
+ :'anchor_y_offset_metadata' => :'PropertyMetadata',
300
+ :'conditional_parent_label' => :'String',
301
+ :'conditional_parent_label_metadata' => :'PropertyMetadata',
302
+ :'conditional_parent_value' => :'String',
303
+ :'conditional_parent_value_metadata' => :'PropertyMetadata',
304
+ :'custom_tab_id' => :'String',
305
+ :'custom_tab_id_metadata' => :'PropertyMetadata',
306
+ :'document_id' => :'String',
307
+ :'document_id_metadata' => :'PropertyMetadata',
308
+ :'error_details' => :'ErrorDetails',
309
+ :'form_order' => :'String',
310
+ :'form_order_metadata' => :'PropertyMetadata',
311
+ :'form_page_label' => :'String',
312
+ :'form_page_label_metadata' => :'PropertyMetadata',
313
+ :'form_page_number' => :'String',
314
+ :'form_page_number_metadata' => :'PropertyMetadata',
315
+ :'height' => :'String',
316
+ :'height_metadata' => :'PropertyMetadata',
317
+ :'locked' => :'String',
318
+ :'locked_metadata' => :'PropertyMetadata',
319
+ :'merge_field' => :'MergeField',
320
+ :'merge_field_xml' => :'String',
321
+ :'page_number' => :'String',
322
+ :'page_number_metadata' => :'PropertyMetadata',
323
+ :'recipient_id' => :'String',
324
+ :'recipient_id_guid' => :'String',
325
+ :'recipient_id_guid_metadata' => :'PropertyMetadata',
326
+ :'recipient_id_metadata' => :'PropertyMetadata',
327
+ :'required' => :'String',
328
+ :'required_metadata' => :'PropertyMetadata',
329
+ :'smart_contract_information' => :'SmartContractInformation',
330
+ :'status' => :'String',
331
+ :'status_metadata' => :'PropertyMetadata',
332
+ :'tab_group_labels' => :'Array<String>',
333
+ :'tab_group_labels_metadata' => :'PropertyMetadata',
334
+ :'tab_id' => :'String',
335
+ :'tab_id_metadata' => :'PropertyMetadata',
336
+ :'tab_label_metadata' => :'PropertyMetadata',
337
+ :'tab_order' => :'String',
338
+ :'tab_order_metadata' => :'PropertyMetadata',
339
+ :'tab_type' => :'String',
340
+ :'tab_type_metadata' => :'PropertyMetadata',
341
+ :'template_locked' => :'String',
342
+ :'template_locked_metadata' => :'PropertyMetadata',
343
+ :'template_required' => :'String',
344
+ :'template_required_metadata' => :'PropertyMetadata',
345
+ :'tooltip' => :'String',
346
+ :'tool_tip_metadata' => :'PropertyMetadata',
347
+ :'width' => :'String',
348
+ :'width_metadata' => :'PropertyMetadata',
349
+ :'x_position' => :'String',
350
+ :'x_position_metadata' => :'PropertyMetadata',
351
+ :'y_position' => :'String',
352
+ :'y_position_metadata' => :'PropertyMetadata'
353
+ }
354
+ end
355
+
356
+ # Initializes the object
357
+ # @param [Hash] attributes Model attributes in the form of hash
358
+ def initialize(attributes = {})
359
+ return unless attributes.is_a?(Hash)
360
+
361
+ # convert string to symbol for hash key
362
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
363
+
364
+ if attributes.has_key?(:'anchorAllowWhiteSpaceInCharacters')
365
+ self.anchor_allow_white_space_in_characters = attributes[:'anchorAllowWhiteSpaceInCharacters']
366
+ end
367
+
368
+ if attributes.has_key?(:'anchorAllowWhiteSpaceInCharactersMetadata')
369
+ self.anchor_allow_white_space_in_characters_metadata = attributes[:'anchorAllowWhiteSpaceInCharactersMetadata']
370
+ end
371
+
372
+ if attributes.has_key?(:'anchorCaseSensitive')
373
+ self.anchor_case_sensitive = attributes[:'anchorCaseSensitive']
374
+ end
375
+
376
+ if attributes.has_key?(:'anchorCaseSensitiveMetadata')
377
+ self.anchor_case_sensitive_metadata = attributes[:'anchorCaseSensitiveMetadata']
378
+ end
379
+
380
+ if attributes.has_key?(:'anchorHorizontalAlignment')
381
+ self.anchor_horizontal_alignment = attributes[:'anchorHorizontalAlignment']
382
+ end
383
+
384
+ if attributes.has_key?(:'anchorHorizontalAlignmentMetadata')
385
+ self.anchor_horizontal_alignment_metadata = attributes[:'anchorHorizontalAlignmentMetadata']
386
+ end
387
+
388
+ if attributes.has_key?(:'anchorIgnoreIfNotPresent')
389
+ self.anchor_ignore_if_not_present = attributes[:'anchorIgnoreIfNotPresent']
390
+ end
391
+
392
+ if attributes.has_key?(:'anchorIgnoreIfNotPresentMetadata')
393
+ self.anchor_ignore_if_not_present_metadata = attributes[:'anchorIgnoreIfNotPresentMetadata']
394
+ end
395
+
396
+ if attributes.has_key?(:'anchorMatchWholeWord')
397
+ self.anchor_match_whole_word = attributes[:'anchorMatchWholeWord']
398
+ end
399
+
400
+ if attributes.has_key?(:'anchorMatchWholeWordMetadata')
401
+ self.anchor_match_whole_word_metadata = attributes[:'anchorMatchWholeWordMetadata']
402
+ end
403
+
404
+ if attributes.has_key?(:'anchorString')
405
+ self.anchor_string = attributes[:'anchorString']
406
+ end
407
+
408
+ if attributes.has_key?(:'anchorStringMetadata')
409
+ self.anchor_string_metadata = attributes[:'anchorStringMetadata']
410
+ end
411
+
412
+ if attributes.has_key?(:'anchorTabProcessorVersion')
413
+ self.anchor_tab_processor_version = attributes[:'anchorTabProcessorVersion']
414
+ end
415
+
416
+ if attributes.has_key?(:'anchorTabProcessorVersionMetadata')
417
+ self.anchor_tab_processor_version_metadata = attributes[:'anchorTabProcessorVersionMetadata']
418
+ end
419
+
420
+ if attributes.has_key?(:'anchorUnits')
421
+ self.anchor_units = attributes[:'anchorUnits']
422
+ end
423
+
424
+ if attributes.has_key?(:'anchorUnitsMetadata')
425
+ self.anchor_units_metadata = attributes[:'anchorUnitsMetadata']
426
+ end
427
+
428
+ if attributes.has_key?(:'anchorXOffset')
429
+ self.anchor_x_offset = attributes[:'anchorXOffset']
430
+ end
431
+
432
+ if attributes.has_key?(:'anchorXOffsetMetadata')
433
+ self.anchor_x_offset_metadata = attributes[:'anchorXOffsetMetadata']
434
+ end
435
+
436
+ if attributes.has_key?(:'anchorYOffset')
437
+ self.anchor_y_offset = attributes[:'anchorYOffset']
438
+ end
439
+
440
+ if attributes.has_key?(:'anchorYOffsetMetadata')
441
+ self.anchor_y_offset_metadata = attributes[:'anchorYOffsetMetadata']
442
+ end
443
+
444
+ if attributes.has_key?(:'conditionalParentLabel')
445
+ self.conditional_parent_label = attributes[:'conditionalParentLabel']
446
+ end
447
+
448
+ if attributes.has_key?(:'conditionalParentLabelMetadata')
449
+ self.conditional_parent_label_metadata = attributes[:'conditionalParentLabelMetadata']
450
+ end
451
+
452
+ if attributes.has_key?(:'conditionalParentValue')
453
+ self.conditional_parent_value = attributes[:'conditionalParentValue']
454
+ end
455
+
456
+ if attributes.has_key?(:'conditionalParentValueMetadata')
457
+ self.conditional_parent_value_metadata = attributes[:'conditionalParentValueMetadata']
458
+ end
459
+
460
+ if attributes.has_key?(:'customTabId')
461
+ self.custom_tab_id = attributes[:'customTabId']
462
+ end
463
+
464
+ if attributes.has_key?(:'customTabIdMetadata')
465
+ self.custom_tab_id_metadata = attributes[:'customTabIdMetadata']
466
+ end
467
+
468
+ if attributes.has_key?(:'documentId')
469
+ self.document_id = attributes[:'documentId']
470
+ end
471
+
472
+ if attributes.has_key?(:'documentIdMetadata')
473
+ self.document_id_metadata = attributes[:'documentIdMetadata']
474
+ end
475
+
476
+ if attributes.has_key?(:'errorDetails')
477
+ self.error_details = attributes[:'errorDetails']
478
+ end
479
+
480
+ if attributes.has_key?(:'formOrder')
481
+ self.form_order = attributes[:'formOrder']
482
+ end
483
+
484
+ if attributes.has_key?(:'formOrderMetadata')
485
+ self.form_order_metadata = attributes[:'formOrderMetadata']
486
+ end
487
+
488
+ if attributes.has_key?(:'formPageLabel')
489
+ self.form_page_label = attributes[:'formPageLabel']
490
+ end
491
+
492
+ if attributes.has_key?(:'formPageLabelMetadata')
493
+ self.form_page_label_metadata = attributes[:'formPageLabelMetadata']
494
+ end
495
+
496
+ if attributes.has_key?(:'formPageNumber')
497
+ self.form_page_number = attributes[:'formPageNumber']
498
+ end
499
+
500
+ if attributes.has_key?(:'formPageNumberMetadata')
501
+ self.form_page_number_metadata = attributes[:'formPageNumberMetadata']
502
+ end
503
+
504
+ if attributes.has_key?(:'height')
505
+ self.height = attributes[:'height']
506
+ end
507
+
508
+ if attributes.has_key?(:'heightMetadata')
509
+ self.height_metadata = attributes[:'heightMetadata']
510
+ end
511
+
512
+ if attributes.has_key?(:'locked')
513
+ self.locked = attributes[:'locked']
514
+ end
515
+
516
+ if attributes.has_key?(:'lockedMetadata')
517
+ self.locked_metadata = attributes[:'lockedMetadata']
518
+ end
519
+
520
+ if attributes.has_key?(:'mergeField')
521
+ self.merge_field = attributes[:'mergeField']
522
+ end
523
+
524
+ if attributes.has_key?(:'mergeFieldXml')
525
+ self.merge_field_xml = attributes[:'mergeFieldXml']
526
+ end
527
+
528
+ if attributes.has_key?(:'pageNumber')
529
+ self.page_number = attributes[:'pageNumber']
530
+ end
531
+
532
+ if attributes.has_key?(:'pageNumberMetadata')
533
+ self.page_number_metadata = attributes[:'pageNumberMetadata']
534
+ end
535
+
536
+ if attributes.has_key?(:'recipientId')
537
+ self.recipient_id = attributes[:'recipientId']
538
+ end
539
+
540
+ if attributes.has_key?(:'recipientIdGuid')
541
+ self.recipient_id_guid = attributes[:'recipientIdGuid']
542
+ end
543
+
544
+ if attributes.has_key?(:'recipientIdGuidMetadata')
545
+ self.recipient_id_guid_metadata = attributes[:'recipientIdGuidMetadata']
546
+ end
547
+
548
+ if attributes.has_key?(:'recipientIdMetadata')
549
+ self.recipient_id_metadata = attributes[:'recipientIdMetadata']
550
+ end
551
+
552
+ if attributes.has_key?(:'required')
553
+ self.required = attributes[:'required']
554
+ end
555
+
556
+ if attributes.has_key?(:'requiredMetadata')
557
+ self.required_metadata = attributes[:'requiredMetadata']
558
+ end
559
+
560
+ if attributes.has_key?(:'smartContractInformation')
561
+ self.smart_contract_information = attributes[:'smartContractInformation']
562
+ end
563
+
564
+ if attributes.has_key?(:'status')
565
+ self.status = attributes[:'status']
566
+ end
567
+
568
+ if attributes.has_key?(:'statusMetadata')
569
+ self.status_metadata = attributes[:'statusMetadata']
570
+ end
571
+
572
+ if attributes.has_key?(:'tabGroupLabels')
573
+ if (value = attributes[:'tabGroupLabels']).is_a?(Array)
574
+ self.tab_group_labels = value
575
+ end
576
+ end
577
+
578
+ if attributes.has_key?(:'tabGroupLabelsMetadata')
579
+ self.tab_group_labels_metadata = attributes[:'tabGroupLabelsMetadata']
580
+ end
581
+
582
+ if attributes.has_key?(:'tabId')
583
+ self.tab_id = attributes[:'tabId']
584
+ end
585
+
586
+ if attributes.has_key?(:'tabIdMetadata')
587
+ self.tab_id_metadata = attributes[:'tabIdMetadata']
588
+ end
589
+
590
+ if attributes.has_key?(:'tabLabelMetadata')
591
+ self.tab_label_metadata = attributes[:'tabLabelMetadata']
592
+ end
593
+
594
+ if attributes.has_key?(:'tabOrder')
595
+ self.tab_order = attributes[:'tabOrder']
596
+ end
597
+
598
+ if attributes.has_key?(:'tabOrderMetadata')
599
+ self.tab_order_metadata = attributes[:'tabOrderMetadata']
600
+ end
601
+
602
+ if attributes.has_key?(:'tabType')
603
+ self.tab_type = attributes[:'tabType']
604
+ end
605
+
606
+ if attributes.has_key?(:'tabTypeMetadata')
607
+ self.tab_type_metadata = attributes[:'tabTypeMetadata']
608
+ end
609
+
610
+ if attributes.has_key?(:'templateLocked')
611
+ self.template_locked = attributes[:'templateLocked']
612
+ end
613
+
614
+ if attributes.has_key?(:'templateLockedMetadata')
615
+ self.template_locked_metadata = attributes[:'templateLockedMetadata']
616
+ end
617
+
618
+ if attributes.has_key?(:'templateRequired')
619
+ self.template_required = attributes[:'templateRequired']
620
+ end
621
+
622
+ if attributes.has_key?(:'templateRequiredMetadata')
623
+ self.template_required_metadata = attributes[:'templateRequiredMetadata']
624
+ end
625
+
626
+ if attributes.has_key?(:'tooltip')
627
+ self.tooltip = attributes[:'tooltip']
628
+ end
629
+
630
+ if attributes.has_key?(:'toolTipMetadata')
631
+ self.tool_tip_metadata = attributes[:'toolTipMetadata']
632
+ end
633
+
634
+ if attributes.has_key?(:'width')
635
+ self.width = attributes[:'width']
636
+ end
637
+
638
+ if attributes.has_key?(:'widthMetadata')
639
+ self.width_metadata = attributes[:'widthMetadata']
640
+ end
641
+
642
+ if attributes.has_key?(:'xPosition')
643
+ self.x_position = attributes[:'xPosition']
644
+ end
645
+
646
+ if attributes.has_key?(:'xPositionMetadata')
647
+ self.x_position_metadata = attributes[:'xPositionMetadata']
648
+ end
649
+
650
+ if attributes.has_key?(:'yPosition')
651
+ self.y_position = attributes[:'yPosition']
652
+ end
653
+
654
+ if attributes.has_key?(:'yPositionMetadata')
655
+ self.y_position_metadata = attributes[:'yPositionMetadata']
656
+ end
657
+ end
658
+
659
+ # Show invalid properties with the reasons. Usually used together with valid?
660
+ # @return Array for valid properties with the reasons
661
+ def list_invalid_properties
662
+ invalid_properties = Array.new
663
+ invalid_properties
664
+ end
665
+
666
+ # Check to see if the all the properties in the model are valid
667
+ # @return true if the model is valid
668
+ def valid?
669
+ true
670
+ end
671
+
672
+ # Checks equality by comparing each attribute.
673
+ # @param [Object] Object to be compared
674
+ def ==(o)
675
+ return true if self.equal?(o)
676
+ self.class == o.class &&
677
+ anchor_allow_white_space_in_characters == o.anchor_allow_white_space_in_characters &&
678
+ anchor_allow_white_space_in_characters_metadata == o.anchor_allow_white_space_in_characters_metadata &&
679
+ anchor_case_sensitive == o.anchor_case_sensitive &&
680
+ anchor_case_sensitive_metadata == o.anchor_case_sensitive_metadata &&
681
+ anchor_horizontal_alignment == o.anchor_horizontal_alignment &&
682
+ anchor_horizontal_alignment_metadata == o.anchor_horizontal_alignment_metadata &&
683
+ anchor_ignore_if_not_present == o.anchor_ignore_if_not_present &&
684
+ anchor_ignore_if_not_present_metadata == o.anchor_ignore_if_not_present_metadata &&
685
+ anchor_match_whole_word == o.anchor_match_whole_word &&
686
+ anchor_match_whole_word_metadata == o.anchor_match_whole_word_metadata &&
687
+ anchor_string == o.anchor_string &&
688
+ anchor_string_metadata == o.anchor_string_metadata &&
689
+ anchor_tab_processor_version == o.anchor_tab_processor_version &&
690
+ anchor_tab_processor_version_metadata == o.anchor_tab_processor_version_metadata &&
691
+ anchor_units == o.anchor_units &&
692
+ anchor_units_metadata == o.anchor_units_metadata &&
693
+ anchor_x_offset == o.anchor_x_offset &&
694
+ anchor_x_offset_metadata == o.anchor_x_offset_metadata &&
695
+ anchor_y_offset == o.anchor_y_offset &&
696
+ anchor_y_offset_metadata == o.anchor_y_offset_metadata &&
697
+ conditional_parent_label == o.conditional_parent_label &&
698
+ conditional_parent_label_metadata == o.conditional_parent_label_metadata &&
699
+ conditional_parent_value == o.conditional_parent_value &&
700
+ conditional_parent_value_metadata == o.conditional_parent_value_metadata &&
701
+ custom_tab_id == o.custom_tab_id &&
702
+ custom_tab_id_metadata == o.custom_tab_id_metadata &&
703
+ document_id == o.document_id &&
704
+ document_id_metadata == o.document_id_metadata &&
705
+ error_details == o.error_details &&
706
+ form_order == o.form_order &&
707
+ form_order_metadata == o.form_order_metadata &&
708
+ form_page_label == o.form_page_label &&
709
+ form_page_label_metadata == o.form_page_label_metadata &&
710
+ form_page_number == o.form_page_number &&
711
+ form_page_number_metadata == o.form_page_number_metadata &&
712
+ height == o.height &&
713
+ height_metadata == o.height_metadata &&
714
+ locked == o.locked &&
715
+ locked_metadata == o.locked_metadata &&
716
+ merge_field == o.merge_field &&
717
+ merge_field_xml == o.merge_field_xml &&
718
+ page_number == o.page_number &&
719
+ page_number_metadata == o.page_number_metadata &&
720
+ recipient_id == o.recipient_id &&
721
+ recipient_id_guid == o.recipient_id_guid &&
722
+ recipient_id_guid_metadata == o.recipient_id_guid_metadata &&
723
+ recipient_id_metadata == o.recipient_id_metadata &&
724
+ required == o.required &&
725
+ required_metadata == o.required_metadata &&
726
+ smart_contract_information == o.smart_contract_information &&
727
+ status == o.status &&
728
+ status_metadata == o.status_metadata &&
729
+ tab_group_labels == o.tab_group_labels &&
730
+ tab_group_labels_metadata == o.tab_group_labels_metadata &&
731
+ tab_id == o.tab_id &&
732
+ tab_id_metadata == o.tab_id_metadata &&
733
+ tab_label_metadata == o.tab_label_metadata &&
734
+ tab_order == o.tab_order &&
735
+ tab_order_metadata == o.tab_order_metadata &&
736
+ tab_type == o.tab_type &&
737
+ tab_type_metadata == o.tab_type_metadata &&
738
+ template_locked == o.template_locked &&
739
+ template_locked_metadata == o.template_locked_metadata &&
740
+ template_required == o.template_required &&
741
+ template_required_metadata == o.template_required_metadata &&
742
+ tooltip == o.tooltip &&
743
+ tool_tip_metadata == o.tool_tip_metadata &&
744
+ width == o.width &&
745
+ width_metadata == o.width_metadata &&
746
+ x_position == o.x_position &&
747
+ x_position_metadata == o.x_position_metadata &&
748
+ y_position == o.y_position &&
749
+ y_position_metadata == o.y_position_metadata
750
+ end
751
+
752
+ # @see the `==` method
753
+ # @param [Object] Object to be compared
754
+ def eql?(o)
755
+ self == o
756
+ end
757
+
758
+ # Calculates hash code according to all attributes.
759
+ # @return [Fixnum] Hash code
760
+ def hash
761
+ [anchor_allow_white_space_in_characters, anchor_allow_white_space_in_characters_metadata, anchor_case_sensitive, anchor_case_sensitive_metadata, anchor_horizontal_alignment, anchor_horizontal_alignment_metadata, anchor_ignore_if_not_present, anchor_ignore_if_not_present_metadata, anchor_match_whole_word, anchor_match_whole_word_metadata, anchor_string, anchor_string_metadata, anchor_tab_processor_version, anchor_tab_processor_version_metadata, anchor_units, anchor_units_metadata, anchor_x_offset, anchor_x_offset_metadata, anchor_y_offset, anchor_y_offset_metadata, conditional_parent_label, conditional_parent_label_metadata, conditional_parent_value, conditional_parent_value_metadata, custom_tab_id, custom_tab_id_metadata, document_id, document_id_metadata, error_details, form_order, form_order_metadata, form_page_label, form_page_label_metadata, form_page_number, form_page_number_metadata, height, height_metadata, locked, locked_metadata, merge_field, merge_field_xml, page_number, page_number_metadata, recipient_id, recipient_id_guid, recipient_id_guid_metadata, recipient_id_metadata, required, required_metadata, smart_contract_information, status, status_metadata, tab_group_labels, tab_group_labels_metadata, tab_id, tab_id_metadata, tab_label_metadata, tab_order, tab_order_metadata, tab_type, tab_type_metadata, template_locked, template_locked_metadata, template_required, template_required_metadata, tooltip, tool_tip_metadata, width, width_metadata, x_position, x_position_metadata, y_position, y_position_metadata].hash
762
+ end
763
+
764
+ # Builds the object from hash
765
+ # @param [Hash] attributes Model attributes in the form of hash
766
+ # @return [Object] Returns the model itself
767
+ def build_from_hash(attributes)
768
+ return nil unless attributes.is_a?(Hash)
769
+ self.class.swagger_types.each_pair do |key, type|
770
+ if type =~ /\AArray<(.*)>/i
771
+ # check to ensure the input is an array given that the attribute
772
+ # is documented as an array but the input is not
773
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
774
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
775
+ end
776
+ elsif !attributes[self.class.attribute_map[key]].nil?
777
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
778
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
779
+ end
780
+
781
+ self
782
+ end
783
+
784
+ # Deserializes the data based on type
785
+ # @param string type Data type
786
+ # @param string value Value to be deserialized
787
+ # @return [Object] Deserialized data
788
+ def _deserialize(type, value)
789
+ case type.to_sym
790
+ when :DateTime
791
+ DateTime.parse(value)
792
+ when :Date
793
+ Date.parse(value)
794
+ when :String
795
+ value.to_s
796
+ when :Integer
797
+ value.to_i
798
+ when :Float
799
+ value.to_f
800
+ when :BOOLEAN
801
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
802
+ true
803
+ else
804
+ false
805
+ end
806
+ when :Object
807
+ # generic object (usually a Hash), return directly
808
+ value
809
+ when /\AArray<(?<inner_type>.+)>\z/
810
+ inner_type = Regexp.last_match[:inner_type]
811
+ value.map { |v| _deserialize(inner_type, v) }
812
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
813
+ k_type = Regexp.last_match[:k_type]
814
+ v_type = Regexp.last_match[:v_type]
815
+ {}.tap do |hash|
816
+ value.each do |k, v|
817
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
818
+ end
819
+ end
820
+ else # model
821
+ temp_model = DocuSign_eSign.const_get(type).new
822
+ temp_model.build_from_hash(value)
823
+ end
824
+ end
825
+
826
+ # Returns the string representation of the object
827
+ # @return [String] String presentation of the object
828
+ def to_s
829
+ to_hash.to_s
830
+ end
831
+
832
+ # to_body is an alias to to_hash (backward compatibility)
833
+ # @return [Hash] Returns the object in the form of hash
834
+ def to_body
835
+ to_hash
836
+ end
837
+
838
+ # Returns the object in the form of hash
839
+ # @return [Hash] Returns the object in the form of hash
840
+ def to_hash
841
+ hash = {}
842
+ self.class.attribute_map.each_pair do |attr, param|
843
+ value = self.send(attr)
844
+ next if value.nil?
845
+ hash[param] = _to_hash(value)
846
+ end
847
+ hash
848
+ end
849
+
850
+ # Outputs non-array value in the form of hash
851
+ # For object, use to_hash. Otherwise, just return the value
852
+ # @param [Object] value Any valid value
853
+ # @return [Hash] Returns the value in the form of hash
854
+ def _to_hash(value)
855
+ if value.is_a?(Array)
856
+ value.compact.map { |v| _to_hash(v) }
857
+ elsif value.is_a?(Hash)
858
+ {}.tap do |hash|
859
+ value.each { |k, v| hash[k] = _to_hash(v) }
860
+ end
861
+ elsif value.respond_to? :to_hash
862
+ value.to_hash
863
+ else
864
+ value
865
+ end
866
+ end
867
+
868
+ end
869
+ end