daytona_toolbox_api_client 0.138.0 → 0.140.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 50f0de49aac56d440ee6b4e8d85b4c79e33c81a7548cf1f4a3aceefd67fd7990
4
- data.tar.gz: 0ebf343eeeaac2243609fd2fda8409fd870c3e275f5717b8c9300ad83b7ae6bd
3
+ metadata.gz: '029ee493dbe0695f2a22a890da54f554f505d7732f9134dcfb31abeb84df92e5'
4
+ data.tar.gz: 1256ac02cf395b8bc6f91be4d80f11f184487cce2799d3693474ec82e7acfb55
5
5
  SHA512:
6
- metadata.gz: eb4f380520846b5ce6dd18a8aa98cf520f78481bc6795e2549bb737255740b4c9ddd25d0bf8041cbc597a963b4b05f58635bf1c7c1a2b2280482795f630880a7
7
- data.tar.gz: 0c7c9622e1787073f59865d1162b176df3db7be145fe8ef15e2edf092834fd414631a5f1e9931109d581dc2637bfeed05c0fe68ec1bddb2ac8073ccb76cb9eee
6
+ metadata.gz: e320935b9f5b7539afb6e3443fe553026a12fd24146428f2e2c8428914d2759c16fa00316d3e22efcfde67488e8428115ba0541fc9cc176bf74c8bceaf7fb689
7
+ data.tar.gz: e13e5387479596bd6d9d5aaccd567c139129ad359743e4f68ecc97c609b5db2a9186618d3f0a6a51d98d6f4bc7837002a5f23ee3ee64854bad010f2a854ae8fd
@@ -48,6 +48,7 @@ lib/daytona_toolbox_api_client/models/keyboard_press_request.rb
48
48
  lib/daytona_toolbox_api_client/models/keyboard_type_request.rb
49
49
  lib/daytona_toolbox_api_client/models/list_branch_response.rb
50
50
  lib/daytona_toolbox_api_client/models/list_contexts_response.rb
51
+ lib/daytona_toolbox_api_client/models/list_recordings_response.rb
51
52
  lib/daytona_toolbox_api_client/models/lsp_completion_params.rb
52
53
  lib/daytona_toolbox_api_client/models/lsp_document_request.rb
53
54
  lib/daytona_toolbox_api_client/models/lsp_location.rb
@@ -75,6 +76,7 @@ lib/daytona_toolbox_api_client/models/pty_create_response.rb
75
76
  lib/daytona_toolbox_api_client/models/pty_list_response.rb
76
77
  lib/daytona_toolbox_api_client/models/pty_resize_request.rb
77
78
  lib/daytona_toolbox_api_client/models/pty_session_info.rb
79
+ lib/daytona_toolbox_api_client/models/recording.rb
78
80
  lib/daytona_toolbox_api_client/models/replace_request.rb
79
81
  lib/daytona_toolbox_api_client/models/replace_result.rb
80
82
  lib/daytona_toolbox_api_client/models/screenshot_response.rb
@@ -84,7 +86,9 @@ lib/daytona_toolbox_api_client/models/session.rb
84
86
  lib/daytona_toolbox_api_client/models/session_execute_request.rb
85
87
  lib/daytona_toolbox_api_client/models/session_execute_response.rb
86
88
  lib/daytona_toolbox_api_client/models/session_send_input_request.rb
89
+ lib/daytona_toolbox_api_client/models/start_recording_request.rb
87
90
  lib/daytona_toolbox_api_client/models/status.rb
91
+ lib/daytona_toolbox_api_client/models/stop_recording_request.rb
88
92
  lib/daytona_toolbox_api_client/models/user_home_dir_response.rb
89
93
  lib/daytona_toolbox_api_client/models/window_info.rb
90
94
  lib/daytona_toolbox_api_client/models/windows_response.rb
@@ -87,6 +87,132 @@ module DaytonaToolboxApiClient
87
87
  return data, status_code, headers
88
88
  end
89
89
 
90
+ # Delete a recording
91
+ # Delete a recording file by ID
92
+ # @param id [String] Recording ID
93
+ # @param [Hash] opts the optional parameters
94
+ # @return [nil]
95
+ def delete_recording(id, opts = {})
96
+ delete_recording_with_http_info(id, opts)
97
+ nil
98
+ end
99
+
100
+ # Delete a recording
101
+ # Delete a recording file by ID
102
+ # @param id [String] Recording ID
103
+ # @param [Hash] opts the optional parameters
104
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
105
+ def delete_recording_with_http_info(id, opts = {})
106
+ if @api_client.config.debugging
107
+ @api_client.config.logger.debug 'Calling API: ComputerUseApi.delete_recording ...'
108
+ end
109
+ # verify the required parameter 'id' is set
110
+ if @api_client.config.client_side_validation && id.nil?
111
+ fail ArgumentError, "Missing the required parameter 'id' when calling ComputerUseApi.delete_recording"
112
+ end
113
+ # resource path
114
+ local_var_path = '/computeruse/recordings/{id}'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
115
+
116
+ # query parameters
117
+ query_params = opts[:query_params] || {}
118
+
119
+ # header parameters
120
+ header_params = opts[:header_params] || {}
121
+ # HTTP header 'Accept' (if needed)
122
+ header_params['Accept'] = @api_client.select_header_accept(['*/*']) unless header_params['Accept']
123
+
124
+ # form parameters
125
+ form_params = opts[:form_params] || {}
126
+
127
+ # http body (model)
128
+ post_body = opts[:debug_body]
129
+
130
+ # return_type
131
+ return_type = opts[:debug_return_type]
132
+
133
+ # auth_names
134
+ auth_names = opts[:debug_auth_names] || []
135
+
136
+ new_options = opts.merge(
137
+ :operation => :"ComputerUseApi.delete_recording",
138
+ :header_params => header_params,
139
+ :query_params => query_params,
140
+ :form_params => form_params,
141
+ :body => post_body,
142
+ :auth_names => auth_names,
143
+ :return_type => return_type
144
+ )
145
+
146
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
147
+ if @api_client.config.debugging
148
+ @api_client.config.logger.debug "API called: ComputerUseApi#delete_recording\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
149
+ end
150
+ return data, status_code, headers
151
+ end
152
+
153
+ # Download a recording
154
+ # Download a recording by providing its ID
155
+ # @param id [String] Recording ID
156
+ # @param [Hash] opts the optional parameters
157
+ # @return [File]
158
+ def download_recording(id, opts = {})
159
+ data, _status_code, _headers = download_recording_with_http_info(id, opts)
160
+ data
161
+ end
162
+
163
+ # Download a recording
164
+ # Download a recording by providing its ID
165
+ # @param id [String] Recording ID
166
+ # @param [Hash] opts the optional parameters
167
+ # @return [Array<(File, Integer, Hash)>] File data, response status code and response headers
168
+ def download_recording_with_http_info(id, opts = {})
169
+ if @api_client.config.debugging
170
+ @api_client.config.logger.debug 'Calling API: ComputerUseApi.download_recording ...'
171
+ end
172
+ # verify the required parameter 'id' is set
173
+ if @api_client.config.client_side_validation && id.nil?
174
+ fail ArgumentError, "Missing the required parameter 'id' when calling ComputerUseApi.download_recording"
175
+ end
176
+ # resource path
177
+ local_var_path = '/computeruse/recordings/{id}/download'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
178
+
179
+ # query parameters
180
+ query_params = opts[:query_params] || {}
181
+
182
+ # header parameters
183
+ header_params = opts[:header_params] || {}
184
+ # HTTP header 'Accept' (if needed)
185
+ header_params['Accept'] = @api_client.select_header_accept(['application/octet-stream']) unless header_params['Accept']
186
+
187
+ # form parameters
188
+ form_params = opts[:form_params] || {}
189
+
190
+ # http body (model)
191
+ post_body = opts[:debug_body]
192
+
193
+ # return_type
194
+ return_type = opts[:debug_return_type] || 'File'
195
+
196
+ # auth_names
197
+ auth_names = opts[:debug_auth_names] || []
198
+
199
+ new_options = opts.merge(
200
+ :operation => :"ComputerUseApi.download_recording",
201
+ :header_params => header_params,
202
+ :query_params => query_params,
203
+ :form_params => form_params,
204
+ :body => post_body,
205
+ :auth_names => auth_names,
206
+ :return_type => return_type
207
+ )
208
+
209
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
210
+ if @api_client.config.debugging
211
+ @api_client.config.logger.debug "API called: ComputerUseApi#download_recording\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
212
+ end
213
+ return data, status_code, headers
214
+ end
215
+
90
216
  # Drag mouse
91
217
  # Drag the mouse from start to end coordinates
92
218
  # @param request [MouseDragRequest] Mouse drag request
@@ -572,6 +698,69 @@ module DaytonaToolboxApiClient
572
698
  return data, status_code, headers
573
699
  end
574
700
 
701
+ # Get recording details
702
+ # Get details of a specific recording by ID
703
+ # @param id [String] Recording ID
704
+ # @param [Hash] opts the optional parameters
705
+ # @return [Recording]
706
+ def get_recording(id, opts = {})
707
+ data, _status_code, _headers = get_recording_with_http_info(id, opts)
708
+ data
709
+ end
710
+
711
+ # Get recording details
712
+ # Get details of a specific recording by ID
713
+ # @param id [String] Recording ID
714
+ # @param [Hash] opts the optional parameters
715
+ # @return [Array<(Recording, Integer, Hash)>] Recording data, response status code and response headers
716
+ def get_recording_with_http_info(id, opts = {})
717
+ if @api_client.config.debugging
718
+ @api_client.config.logger.debug 'Calling API: ComputerUseApi.get_recording ...'
719
+ end
720
+ # verify the required parameter 'id' is set
721
+ if @api_client.config.client_side_validation && id.nil?
722
+ fail ArgumentError, "Missing the required parameter 'id' when calling ComputerUseApi.get_recording"
723
+ end
724
+ # resource path
725
+ local_var_path = '/computeruse/recordings/{id}'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
726
+
727
+ # query parameters
728
+ query_params = opts[:query_params] || {}
729
+
730
+ # header parameters
731
+ header_params = opts[:header_params] || {}
732
+ # HTTP header 'Accept' (if needed)
733
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
734
+
735
+ # form parameters
736
+ form_params = opts[:form_params] || {}
737
+
738
+ # http body (model)
739
+ post_body = opts[:debug_body]
740
+
741
+ # return_type
742
+ return_type = opts[:debug_return_type] || 'Recording'
743
+
744
+ # auth_names
745
+ auth_names = opts[:debug_auth_names] || []
746
+
747
+ new_options = opts.merge(
748
+ :operation => :"ComputerUseApi.get_recording",
749
+ :header_params => header_params,
750
+ :query_params => query_params,
751
+ :form_params => form_params,
752
+ :body => post_body,
753
+ :auth_names => auth_names,
754
+ :return_type => return_type
755
+ )
756
+
757
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
758
+ if @api_client.config.debugging
759
+ @api_client.config.logger.debug "API called: ComputerUseApi#get_recording\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
760
+ end
761
+ return data, status_code, headers
762
+ end
763
+
575
764
  # Get windows information
576
765
  # Get information about all open windows
577
766
  # @param [Hash] opts the optional parameters
@@ -629,6 +818,63 @@ module DaytonaToolboxApiClient
629
818
  return data, status_code, headers
630
819
  end
631
820
 
821
+ # List all recordings
822
+ # Get a list of all recordings (active and completed)
823
+ # @param [Hash] opts the optional parameters
824
+ # @return [ListRecordingsResponse]
825
+ def list_recordings(opts = {})
826
+ data, _status_code, _headers = list_recordings_with_http_info(opts)
827
+ data
828
+ end
829
+
830
+ # List all recordings
831
+ # Get a list of all recordings (active and completed)
832
+ # @param [Hash] opts the optional parameters
833
+ # @return [Array<(ListRecordingsResponse, Integer, Hash)>] ListRecordingsResponse data, response status code and response headers
834
+ def list_recordings_with_http_info(opts = {})
835
+ if @api_client.config.debugging
836
+ @api_client.config.logger.debug 'Calling API: ComputerUseApi.list_recordings ...'
837
+ end
838
+ # resource path
839
+ local_var_path = '/computeruse/recordings'
840
+
841
+ # query parameters
842
+ query_params = opts[:query_params] || {}
843
+
844
+ # header parameters
845
+ header_params = opts[:header_params] || {}
846
+ # HTTP header 'Accept' (if needed)
847
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
848
+
849
+ # form parameters
850
+ form_params = opts[:form_params] || {}
851
+
852
+ # http body (model)
853
+ post_body = opts[:debug_body]
854
+
855
+ # return_type
856
+ return_type = opts[:debug_return_type] || 'ListRecordingsResponse'
857
+
858
+ # auth_names
859
+ auth_names = opts[:debug_auth_names] || []
860
+
861
+ new_options = opts.merge(
862
+ :operation => :"ComputerUseApi.list_recordings",
863
+ :header_params => header_params,
864
+ :query_params => query_params,
865
+ :form_params => form_params,
866
+ :body => post_body,
867
+ :auth_names => auth_names,
868
+ :return_type => return_type
869
+ )
870
+
871
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
872
+ if @api_client.config.debugging
873
+ @api_client.config.logger.debug "API called: ComputerUseApi#list_recordings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
874
+ end
875
+ return data, status_code, headers
876
+ end
877
+
632
878
  # Move mouse cursor
633
879
  # Move the mouse cursor to the specified coordinates
634
880
  # @param request [MouseMoveRequest] Mouse move request
@@ -1021,6 +1267,70 @@ module DaytonaToolboxApiClient
1021
1267
  return data, status_code, headers
1022
1268
  end
1023
1269
 
1270
+ # Start a new recording
1271
+ # Start a new screen recording session
1272
+ # @param [Hash] opts the optional parameters
1273
+ # @option opts [StartRecordingRequest] :request Recording options
1274
+ # @return [Recording]
1275
+ def start_recording(opts = {})
1276
+ data, _status_code, _headers = start_recording_with_http_info(opts)
1277
+ data
1278
+ end
1279
+
1280
+ # Start a new recording
1281
+ # Start a new screen recording session
1282
+ # @param [Hash] opts the optional parameters
1283
+ # @option opts [StartRecordingRequest] :request Recording options
1284
+ # @return [Array<(Recording, Integer, Hash)>] Recording data, response status code and response headers
1285
+ def start_recording_with_http_info(opts = {})
1286
+ if @api_client.config.debugging
1287
+ @api_client.config.logger.debug 'Calling API: ComputerUseApi.start_recording ...'
1288
+ end
1289
+ # resource path
1290
+ local_var_path = '/computeruse/recordings/start'
1291
+
1292
+ # query parameters
1293
+ query_params = opts[:query_params] || {}
1294
+
1295
+ # header parameters
1296
+ header_params = opts[:header_params] || {}
1297
+ # HTTP header 'Accept' (if needed)
1298
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1299
+ # HTTP header 'Content-Type'
1300
+ content_type = @api_client.select_header_content_type(['application/json'])
1301
+ if !content_type.nil?
1302
+ header_params['Content-Type'] = content_type
1303
+ end
1304
+
1305
+ # form parameters
1306
+ form_params = opts[:form_params] || {}
1307
+
1308
+ # http body (model)
1309
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'request'])
1310
+
1311
+ # return_type
1312
+ return_type = opts[:debug_return_type] || 'Recording'
1313
+
1314
+ # auth_names
1315
+ auth_names = opts[:debug_auth_names] || []
1316
+
1317
+ new_options = opts.merge(
1318
+ :operation => :"ComputerUseApi.start_recording",
1319
+ :header_params => header_params,
1320
+ :query_params => query_params,
1321
+ :form_params => form_params,
1322
+ :body => post_body,
1323
+ :auth_names => auth_names,
1324
+ :return_type => return_type
1325
+ )
1326
+
1327
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1328
+ if @api_client.config.debugging
1329
+ @api_client.config.logger.debug "API called: ComputerUseApi#start_recording\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1330
+ end
1331
+ return data, status_code, headers
1332
+ end
1333
+
1024
1334
  # Stop computer use processes
1025
1335
  # Stop all computer use processes and return their status
1026
1336
  # @param [Hash] opts the optional parameters
@@ -1078,6 +1388,74 @@ module DaytonaToolboxApiClient
1078
1388
  return data, status_code, headers
1079
1389
  end
1080
1390
 
1391
+ # Stop a recording
1392
+ # Stop an active screen recording session
1393
+ # @param request [StopRecordingRequest] Recording ID to stop
1394
+ # @param [Hash] opts the optional parameters
1395
+ # @return [Recording]
1396
+ def stop_recording(request, opts = {})
1397
+ data, _status_code, _headers = stop_recording_with_http_info(request, opts)
1398
+ data
1399
+ end
1400
+
1401
+ # Stop a recording
1402
+ # Stop an active screen recording session
1403
+ # @param request [StopRecordingRequest] Recording ID to stop
1404
+ # @param [Hash] opts the optional parameters
1405
+ # @return [Array<(Recording, Integer, Hash)>] Recording data, response status code and response headers
1406
+ def stop_recording_with_http_info(request, opts = {})
1407
+ if @api_client.config.debugging
1408
+ @api_client.config.logger.debug 'Calling API: ComputerUseApi.stop_recording ...'
1409
+ end
1410
+ # verify the required parameter 'request' is set
1411
+ if @api_client.config.client_side_validation && request.nil?
1412
+ fail ArgumentError, "Missing the required parameter 'request' when calling ComputerUseApi.stop_recording"
1413
+ end
1414
+ # resource path
1415
+ local_var_path = '/computeruse/recordings/stop'
1416
+
1417
+ # query parameters
1418
+ query_params = opts[:query_params] || {}
1419
+
1420
+ # header parameters
1421
+ header_params = opts[:header_params] || {}
1422
+ # HTTP header 'Accept' (if needed)
1423
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1424
+ # HTTP header 'Content-Type'
1425
+ content_type = @api_client.select_header_content_type(['application/json'])
1426
+ if !content_type.nil?
1427
+ header_params['Content-Type'] = content_type
1428
+ end
1429
+
1430
+ # form parameters
1431
+ form_params = opts[:form_params] || {}
1432
+
1433
+ # http body (model)
1434
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(request)
1435
+
1436
+ # return_type
1437
+ return_type = opts[:debug_return_type] || 'Recording'
1438
+
1439
+ # auth_names
1440
+ auth_names = opts[:debug_auth_names] || []
1441
+
1442
+ new_options = opts.merge(
1443
+ :operation => :"ComputerUseApi.stop_recording",
1444
+ :header_params => header_params,
1445
+ :query_params => query_params,
1446
+ :form_params => form_params,
1447
+ :body => post_body,
1448
+ :auth_names => auth_names,
1449
+ :return_type => return_type
1450
+ )
1451
+
1452
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1453
+ if @api_client.config.debugging
1454
+ @api_client.config.logger.debug "API called: ComputerUseApi#stop_recording\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1455
+ end
1456
+ return data, status_code, headers
1457
+ end
1458
+
1081
1459
  # Take a compressed region screenshot
1082
1460
  # Take a compressed screenshot of a specific region of the screen
1083
1461
  # @param x [Integer] X coordinate of the region
@@ -0,0 +1,237 @@
1
+ =begin
2
+ #Daytona Toolbox API
3
+
4
+ #Daytona Toolbox API
5
+
6
+ The version of the OpenAPI document: v0.0.0-dev
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.12.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module DaytonaToolboxApiClient
17
+ class ListRecordingsResponse
18
+ attr_accessor :recordings
19
+
20
+ # Attribute mapping from ruby-style variable name to JSON key.
21
+ def self.attribute_map
22
+ {
23
+ :'recordings' => :'recordings'
24
+ }
25
+ end
26
+
27
+ # Returns attribute mapping this model knows about
28
+ def self.acceptable_attribute_map
29
+ attribute_map
30
+ end
31
+
32
+ # Returns all the JSON keys this model knows about
33
+ def self.acceptable_attributes
34
+ acceptable_attribute_map.values
35
+ end
36
+
37
+ # Attribute type mapping.
38
+ def self.openapi_types
39
+ {
40
+ :'recordings' => :'Array<Recording>'
41
+ }
42
+ end
43
+
44
+ # List of attributes with nullable: true
45
+ def self.openapi_nullable
46
+ Set.new([
47
+ ])
48
+ end
49
+
50
+ # Initializes the object
51
+ # @param [Hash] attributes Model attributes in the form of hash
52
+ def initialize(attributes = {})
53
+ if (!attributes.is_a?(Hash))
54
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DaytonaToolboxApiClient::ListRecordingsResponse` initialize method"
55
+ end
56
+
57
+ # check to see if the attribute exists and convert string to symbol for hash key
58
+ acceptable_attribute_map = self.class.acceptable_attribute_map
59
+ attributes = attributes.each_with_object({}) { |(k, v), h|
60
+ if (!acceptable_attribute_map.key?(k.to_sym))
61
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DaytonaToolboxApiClient::ListRecordingsResponse`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
62
+ end
63
+ h[k.to_sym] = v
64
+ }
65
+
66
+ if attributes.key?(:'recordings')
67
+ if (value = attributes[:'recordings']).is_a?(Array)
68
+ self.recordings = value
69
+ end
70
+ else
71
+ self.recordings = nil
72
+ end
73
+ end
74
+
75
+ # Show invalid properties with the reasons. Usually used together with valid?
76
+ # @return Array for valid properties with the reasons
77
+ def list_invalid_properties
78
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
79
+ invalid_properties = Array.new
80
+ if @recordings.nil?
81
+ invalid_properties.push('invalid value for "recordings", recordings cannot be nil.')
82
+ end
83
+
84
+ invalid_properties
85
+ end
86
+
87
+ # Check to see if the all the properties in the model are valid
88
+ # @return true if the model is valid
89
+ def valid?
90
+ warn '[DEPRECATED] the `valid?` method is obsolete'
91
+ return false if @recordings.nil?
92
+ true
93
+ end
94
+
95
+ # Custom attribute writer method with validation
96
+ # @param [Object] recordings Value to be assigned
97
+ def recordings=(recordings)
98
+ if recordings.nil?
99
+ fail ArgumentError, 'recordings cannot be nil'
100
+ end
101
+
102
+ @recordings = recordings
103
+ end
104
+
105
+ # Checks equality by comparing each attribute.
106
+ # @param [Object] Object to be compared
107
+ def ==(o)
108
+ return true if self.equal?(o)
109
+ self.class == o.class &&
110
+ recordings == o.recordings
111
+ end
112
+
113
+ # @see the `==` method
114
+ # @param [Object] Object to be compared
115
+ def eql?(o)
116
+ self == o
117
+ end
118
+
119
+ # Calculates hash code according to all attributes.
120
+ # @return [Integer] Hash code
121
+ def hash
122
+ [recordings].hash
123
+ end
124
+
125
+ # Builds the object from hash
126
+ # @param [Hash] attributes Model attributes in the form of hash
127
+ # @return [Object] Returns the model itself
128
+ def self.build_from_hash(attributes)
129
+ return nil unless attributes.is_a?(Hash)
130
+ attributes = attributes.transform_keys(&:to_sym)
131
+ transformed_hash = {}
132
+ openapi_types.each_pair do |key, type|
133
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
134
+ transformed_hash["#{key}"] = nil
135
+ elsif type =~ /\AArray<(.*)>/i
136
+ # check to ensure the input is an array given that the attribute
137
+ # is documented as an array but the input is not
138
+ if attributes[attribute_map[key]].is_a?(Array)
139
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
140
+ end
141
+ elsif !attributes[attribute_map[key]].nil?
142
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
143
+ end
144
+ end
145
+ new(transformed_hash)
146
+ end
147
+
148
+ # Deserializes the data based on type
149
+ # @param string type Data type
150
+ # @param string value Value to be deserialized
151
+ # @return [Object] Deserialized data
152
+ def self._deserialize(type, value)
153
+ case type.to_sym
154
+ when :Time
155
+ Time.parse(value)
156
+ when :Date
157
+ Date.parse(value)
158
+ when :String
159
+ value.to_s
160
+ when :Integer
161
+ value.to_i
162
+ when :Float
163
+ value.to_f
164
+ when :Boolean
165
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
166
+ true
167
+ else
168
+ false
169
+ end
170
+ when :Object
171
+ # generic object (usually a Hash), return directly
172
+ value
173
+ when /\AArray<(?<inner_type>.+)>\z/
174
+ inner_type = Regexp.last_match[:inner_type]
175
+ value.map { |v| _deserialize(inner_type, v) }
176
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
177
+ k_type = Regexp.last_match[:k_type]
178
+ v_type = Regexp.last_match[:v_type]
179
+ {}.tap do |hash|
180
+ value.each do |k, v|
181
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
182
+ end
183
+ end
184
+ else # model
185
+ # models (e.g. Pet) or oneOf
186
+ klass = DaytonaToolboxApiClient.const_get(type)
187
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
188
+ end
189
+ end
190
+
191
+ # Returns the string representation of the object
192
+ # @return [String] String presentation of the object
193
+ def to_s
194
+ to_hash.to_s
195
+ end
196
+
197
+ # to_body is an alias to to_hash (backward compatibility)
198
+ # @return [Hash] Returns the object in the form of hash
199
+ def to_body
200
+ to_hash
201
+ end
202
+
203
+ # Returns the object in the form of hash
204
+ # @return [Hash] Returns the object in the form of hash
205
+ def to_hash
206
+ hash = {}
207
+ self.class.attribute_map.each_pair do |attr, param|
208
+ value = self.send(attr)
209
+ if value.nil?
210
+ is_nullable = self.class.openapi_nullable.include?(attr)
211
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
212
+ end
213
+
214
+ hash[param] = _to_hash(value)
215
+ end
216
+ hash
217
+ end
218
+
219
+ # Outputs non-array value in the form of hash
220
+ # For object, use to_hash. Otherwise, just return the value
221
+ # @param [Object] value Any valid value
222
+ # @return [Hash] Returns the value in the form of hash
223
+ def _to_hash(value)
224
+ if value.is_a?(Array)
225
+ value.compact.map { |v| _to_hash(v) }
226
+ elsif value.is_a?(Hash)
227
+ {}.tap do |hash|
228
+ value.each { |k, v| hash[k] = _to_hash(v) }
229
+ end
230
+ elsif value.respond_to? :to_hash
231
+ value.to_hash
232
+ else
233
+ value
234
+ end
235
+ end
236
+ end
237
+ end