daytona_toolbox_api_client 0.175.0 → 0.176.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: 3e72185682a375f1181618ad9994a3a6df1bc7f5ad07cd2ab0b57b6895f9aeac
4
- data.tar.gz: 5265767b809309cdcee185cdf795d9f57f1acd19129d4fb9218aec7f45d3b452
3
+ metadata.gz: c6bedb614559284c93ae923ee6b82dcce0927e210f0d7f1a2ed125c0d3b1b16d
4
+ data.tar.gz: 1c4cfb6902964027fc9b8d9d141797f2e99bbbe918684f26f23b963a597d3611
5
5
  SHA512:
6
- metadata.gz: 19cfdc4e34902282966cf48b01316451e640980b1d99944300e7020fce47a509429bfce837a57d179a80bf8f431ed3394cc783c29536b8311d5d00efdcda166c
7
- data.tar.gz: ca78134227631ed9dcba9c905986e14cc942a33fce68a899f80b8f1cbf80787ac8c52f4ebba9d95b80465149730d3ada55b38373b132dbf61229cf2e3bac5c23
6
+ metadata.gz: 81ccd32f45a38aa331c1434cdb127c55a787ffaaff59a21525cbd050d1ae701ab5741dad6ddd152ac4ee5f8c3e9a3514be65741d3be05e97b95a3aaf55e33169
7
+ data.tar.gz: 26f515402b3dbfd3f2ffcb8638700f9eadcb8444d8c913777ef081e30d8bcdc90edaec0d8d267c526a56b5eea1c52104d4cf079c1c8a1b408beb56243ca21a92
@@ -17,6 +17,12 @@ lib/daytona_toolbox_api_client/api_client.rb
17
17
  lib/daytona_toolbox_api_client/api_error.rb
18
18
  lib/daytona_toolbox_api_client/api_model_base.rb
19
19
  lib/daytona_toolbox_api_client/configuration.rb
20
+ lib/daytona_toolbox_api_client/models/accessibility_bounds.rb
21
+ lib/daytona_toolbox_api_client/models/accessibility_invoke_request.rb
22
+ lib/daytona_toolbox_api_client/models/accessibility_node_request.rb
23
+ lib/daytona_toolbox_api_client/models/accessibility_nodes_response.rb
24
+ lib/daytona_toolbox_api_client/models/accessibility_set_value_request.rb
25
+ lib/daytona_toolbox_api_client/models/accessibility_tree_response.rb
20
26
  lib/daytona_toolbox_api_client/models/chart.rb
21
27
  lib/daytona_toolbox_api_client/models/chart_element.rb
22
28
  lib/daytona_toolbox_api_client/models/code_run_artifacts.rb
@@ -26,6 +32,7 @@ lib/daytona_toolbox_api_client/models/command.rb
26
32
  lib/daytona_toolbox_api_client/models/completion_context.rb
27
33
  lib/daytona_toolbox_api_client/models/completion_item.rb
28
34
  lib/daytona_toolbox_api_client/models/completion_list.rb
35
+ lib/daytona_toolbox_api_client/models/computer_use_accessibility_node.rb
29
36
  lib/daytona_toolbox_api_client/models/computer_use_start_response.rb
30
37
  lib/daytona_toolbox_api_client/models/computer_use_status_response.rb
31
38
  lib/daytona_toolbox_api_client/models/computer_use_stop_response.rb
@@ -38,6 +45,7 @@ lib/daytona_toolbox_api_client/models/execute_response.rb
38
45
  lib/daytona_toolbox_api_client/models/file_info.rb
39
46
  lib/daytona_toolbox_api_client/models/file_status.rb
40
47
  lib/daytona_toolbox_api_client/models/files_download_request.rb
48
+ lib/daytona_toolbox_api_client/models/find_accessibility_nodes_request.rb
41
49
  lib/daytona_toolbox_api_client/models/git_add_request.rb
42
50
  lib/daytona_toolbox_api_client/models/git_branch_request.rb
43
51
  lib/daytona_toolbox_api_client/models/git_checkout_request.rb
@@ -281,6 +281,208 @@ module DaytonaToolboxApiClient
281
281
  return data, status_code, headers
282
282
  end
283
283
 
284
+ # Find accessibility nodes
285
+ # Search the AT-SPI tree for nodes matching a role/name/state filter and return a flat list.
286
+ # @param request [FindAccessibilityNodesRequest] Find request
287
+ # @param [Hash] opts the optional parameters
288
+ # @return [AccessibilityNodesResponse]
289
+ def find_accessibility_nodes(request, opts = {})
290
+ data, _status_code, _headers = find_accessibility_nodes_with_http_info(request, opts)
291
+ data
292
+ end
293
+
294
+ # Find accessibility nodes
295
+ # Search the AT-SPI tree for nodes matching a role/name/state filter and return a flat list.
296
+ # @param request [FindAccessibilityNodesRequest] Find request
297
+ # @param [Hash] opts the optional parameters
298
+ # @return [Array<(AccessibilityNodesResponse, Integer, Hash)>] AccessibilityNodesResponse data, response status code and response headers
299
+ def find_accessibility_nodes_with_http_info(request, opts = {})
300
+ if @api_client.config.debugging
301
+ @api_client.config.logger.debug 'Calling API: ComputerUseApi.find_accessibility_nodes ...'
302
+ end
303
+ # verify the required parameter 'request' is set
304
+ if @api_client.config.client_side_validation && request.nil?
305
+ fail ArgumentError, "Missing the required parameter 'request' when calling ComputerUseApi.find_accessibility_nodes"
306
+ end
307
+ # resource path
308
+ local_var_path = '/computeruse/a11y/find'
309
+
310
+ # query parameters
311
+ query_params = opts[:query_params] || {}
312
+
313
+ # header parameters
314
+ header_params = opts[:header_params] || {}
315
+ # HTTP header 'Accept' (if needed)
316
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
317
+ # HTTP header 'Content-Type'
318
+ content_type = @api_client.select_header_content_type(['application/json'])
319
+ if !content_type.nil?
320
+ header_params['Content-Type'] = content_type
321
+ end
322
+
323
+ # form parameters
324
+ form_params = opts[:form_params] || {}
325
+
326
+ # http body (model)
327
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(request)
328
+
329
+ # return_type
330
+ return_type = opts[:debug_return_type] || 'AccessibilityNodesResponse'
331
+
332
+ # auth_names
333
+ auth_names = opts[:debug_auth_names] || []
334
+
335
+ new_options = opts.merge(
336
+ :operation => :"ComputerUseApi.find_accessibility_nodes",
337
+ :header_params => header_params,
338
+ :query_params => query_params,
339
+ :form_params => form_params,
340
+ :body => post_body,
341
+ :auth_names => auth_names,
342
+ :return_type => return_type
343
+ )
344
+
345
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
346
+ if @api_client.config.debugging
347
+ @api_client.config.logger.debug "API called: ComputerUseApi#find_accessibility_nodes\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
348
+ end
349
+ return data, status_code, headers
350
+ end
351
+
352
+ # Focus an accessibility node
353
+ # Move keyboard focus to the AT-SPI node identified by id (bus-name:object-path).
354
+ # @param request [AccessibilityNodeRequest] Node focus request
355
+ # @param [Hash] opts the optional parameters
356
+ # @return [Object]
357
+ def focus_accessibility_node(request, opts = {})
358
+ data, _status_code, _headers = focus_accessibility_node_with_http_info(request, opts)
359
+ data
360
+ end
361
+
362
+ # Focus an accessibility node
363
+ # Move keyboard focus to the AT-SPI node identified by id (bus-name:object-path).
364
+ # @param request [AccessibilityNodeRequest] Node focus request
365
+ # @param [Hash] opts the optional parameters
366
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
367
+ def focus_accessibility_node_with_http_info(request, opts = {})
368
+ if @api_client.config.debugging
369
+ @api_client.config.logger.debug 'Calling API: ComputerUseApi.focus_accessibility_node ...'
370
+ end
371
+ # verify the required parameter 'request' is set
372
+ if @api_client.config.client_side_validation && request.nil?
373
+ fail ArgumentError, "Missing the required parameter 'request' when calling ComputerUseApi.focus_accessibility_node"
374
+ end
375
+ # resource path
376
+ local_var_path = '/computeruse/a11y/node/focus'
377
+
378
+ # query parameters
379
+ query_params = opts[:query_params] || {}
380
+
381
+ # header parameters
382
+ header_params = opts[:header_params] || {}
383
+ # HTTP header 'Accept' (if needed)
384
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
385
+ # HTTP header 'Content-Type'
386
+ content_type = @api_client.select_header_content_type(['application/json'])
387
+ if !content_type.nil?
388
+ header_params['Content-Type'] = content_type
389
+ end
390
+
391
+ # form parameters
392
+ form_params = opts[:form_params] || {}
393
+
394
+ # http body (model)
395
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(request)
396
+
397
+ # return_type
398
+ return_type = opts[:debug_return_type] || 'Object'
399
+
400
+ # auth_names
401
+ auth_names = opts[:debug_auth_names] || []
402
+
403
+ new_options = opts.merge(
404
+ :operation => :"ComputerUseApi.focus_accessibility_node",
405
+ :header_params => header_params,
406
+ :query_params => query_params,
407
+ :form_params => form_params,
408
+ :body => post_body,
409
+ :auth_names => auth_names,
410
+ :return_type => return_type
411
+ )
412
+
413
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
414
+ if @api_client.config.debugging
415
+ @api_client.config.logger.debug "API called: ComputerUseApi#focus_accessibility_node\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
416
+ end
417
+ return data, status_code, headers
418
+ end
419
+
420
+ # Get accessibility tree
421
+ # Fetch the AT-SPI accessibility tree for the focused application, a specific PID, or all registered applications.
422
+ # @param [Hash] opts the optional parameters
423
+ # @option opts [String] :scope Scope: focused | pid | all (default: focused)
424
+ # @option opts [Integer] :pid Process ID when scope&#x3D;pid
425
+ # @option opts [Integer] :max_depth Max tree depth (-1 unbounded, 0 root only; default -1)
426
+ # @return [AccessibilityTreeResponse]
427
+ def get_accessibility_tree(opts = {})
428
+ data, _status_code, _headers = get_accessibility_tree_with_http_info(opts)
429
+ data
430
+ end
431
+
432
+ # Get accessibility tree
433
+ # Fetch the AT-SPI accessibility tree for the focused application, a specific PID, or all registered applications.
434
+ # @param [Hash] opts the optional parameters
435
+ # @option opts [String] :scope Scope: focused | pid | all (default: focused)
436
+ # @option opts [Integer] :pid Process ID when scope&#x3D;pid
437
+ # @option opts [Integer] :max_depth Max tree depth (-1 unbounded, 0 root only; default -1)
438
+ # @return [Array<(AccessibilityTreeResponse, Integer, Hash)>] AccessibilityTreeResponse data, response status code and response headers
439
+ def get_accessibility_tree_with_http_info(opts = {})
440
+ if @api_client.config.debugging
441
+ @api_client.config.logger.debug 'Calling API: ComputerUseApi.get_accessibility_tree ...'
442
+ end
443
+ # resource path
444
+ local_var_path = '/computeruse/a11y/tree'
445
+
446
+ # query parameters
447
+ query_params = opts[:query_params] || {}
448
+ query_params[:'scope'] = opts[:'scope'] if !opts[:'scope'].nil?
449
+ query_params[:'pid'] = opts[:'pid'] if !opts[:'pid'].nil?
450
+ query_params[:'maxDepth'] = opts[:'max_depth'] if !opts[:'max_depth'].nil?
451
+
452
+ # header parameters
453
+ header_params = opts[:header_params] || {}
454
+ # HTTP header 'Accept' (if needed)
455
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
456
+
457
+ # form parameters
458
+ form_params = opts[:form_params] || {}
459
+
460
+ # http body (model)
461
+ post_body = opts[:debug_body]
462
+
463
+ # return_type
464
+ return_type = opts[:debug_return_type] || 'AccessibilityTreeResponse'
465
+
466
+ # auth_names
467
+ auth_names = opts[:debug_auth_names] || []
468
+
469
+ new_options = opts.merge(
470
+ :operation => :"ComputerUseApi.get_accessibility_tree",
471
+ :header_params => header_params,
472
+ :query_params => query_params,
473
+ :form_params => form_params,
474
+ :body => post_body,
475
+ :auth_names => auth_names,
476
+ :return_type => return_type
477
+ )
478
+
479
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
480
+ if @api_client.config.debugging
481
+ @api_client.config.logger.debug "API called: ComputerUseApi#get_accessibility_tree\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
482
+ end
483
+ return data, status_code, headers
484
+ end
485
+
284
486
  # Get computer use process status
285
487
  # Get the status of all computer use processes
286
488
  # @param [Hash] opts the optional parameters
@@ -818,6 +1020,74 @@ module DaytonaToolboxApiClient
818
1020
  return data, status_code, headers
819
1021
  end
820
1022
 
1023
+ # Invoke an action on an accessibility node
1024
+ # Call an AT-SPI Action on the node. Leave action empty to invoke the node's primary (first) action.
1025
+ # @param request [AccessibilityInvokeRequest] Invoke request
1026
+ # @param [Hash] opts the optional parameters
1027
+ # @return [Object]
1028
+ def invoke_accessibility_node(request, opts = {})
1029
+ data, _status_code, _headers = invoke_accessibility_node_with_http_info(request, opts)
1030
+ data
1031
+ end
1032
+
1033
+ # Invoke an action on an accessibility node
1034
+ # Call an AT-SPI Action on the node. Leave action empty to invoke the node&#39;s primary (first) action.
1035
+ # @param request [AccessibilityInvokeRequest] Invoke request
1036
+ # @param [Hash] opts the optional parameters
1037
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
1038
+ def invoke_accessibility_node_with_http_info(request, opts = {})
1039
+ if @api_client.config.debugging
1040
+ @api_client.config.logger.debug 'Calling API: ComputerUseApi.invoke_accessibility_node ...'
1041
+ end
1042
+ # verify the required parameter 'request' is set
1043
+ if @api_client.config.client_side_validation && request.nil?
1044
+ fail ArgumentError, "Missing the required parameter 'request' when calling ComputerUseApi.invoke_accessibility_node"
1045
+ end
1046
+ # resource path
1047
+ local_var_path = '/computeruse/a11y/node/invoke'
1048
+
1049
+ # query parameters
1050
+ query_params = opts[:query_params] || {}
1051
+
1052
+ # header parameters
1053
+ header_params = opts[:header_params] || {}
1054
+ # HTTP header 'Accept' (if needed)
1055
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1056
+ # HTTP header 'Content-Type'
1057
+ content_type = @api_client.select_header_content_type(['application/json'])
1058
+ if !content_type.nil?
1059
+ header_params['Content-Type'] = content_type
1060
+ end
1061
+
1062
+ # form parameters
1063
+ form_params = opts[:form_params] || {}
1064
+
1065
+ # http body (model)
1066
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(request)
1067
+
1068
+ # return_type
1069
+ return_type = opts[:debug_return_type] || 'Object'
1070
+
1071
+ # auth_names
1072
+ auth_names = opts[:debug_auth_names] || []
1073
+
1074
+ new_options = opts.merge(
1075
+ :operation => :"ComputerUseApi.invoke_accessibility_node",
1076
+ :header_params => header_params,
1077
+ :query_params => query_params,
1078
+ :form_params => form_params,
1079
+ :body => post_body,
1080
+ :auth_names => auth_names,
1081
+ :return_type => return_type
1082
+ )
1083
+
1084
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1085
+ if @api_client.config.debugging
1086
+ @api_client.config.logger.debug "API called: ComputerUseApi#invoke_accessibility_node\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1087
+ end
1088
+ return data, status_code, headers
1089
+ end
1090
+
821
1091
  # List all recordings
822
1092
  # Get a list of all recordings (active and completed)
823
1093
  # @param [Hash] opts the optional parameters
@@ -1210,6 +1480,74 @@ module DaytonaToolboxApiClient
1210
1480
  return data, status_code, headers
1211
1481
  end
1212
1482
 
1483
+ # Set the value of an accessibility node
1484
+ # Write the given value to the node via EditableText.SetTextContents or, for numeric controls, Value.CurrentValue.
1485
+ # @param request [AccessibilitySetValueRequest] Set value request
1486
+ # @param [Hash] opts the optional parameters
1487
+ # @return [Object]
1488
+ def set_accessibility_node_value(request, opts = {})
1489
+ data, _status_code, _headers = set_accessibility_node_value_with_http_info(request, opts)
1490
+ data
1491
+ end
1492
+
1493
+ # Set the value of an accessibility node
1494
+ # Write the given value to the node via EditableText.SetTextContents or, for numeric controls, Value.CurrentValue.
1495
+ # @param request [AccessibilitySetValueRequest] Set value request
1496
+ # @param [Hash] opts the optional parameters
1497
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
1498
+ def set_accessibility_node_value_with_http_info(request, opts = {})
1499
+ if @api_client.config.debugging
1500
+ @api_client.config.logger.debug 'Calling API: ComputerUseApi.set_accessibility_node_value ...'
1501
+ end
1502
+ # verify the required parameter 'request' is set
1503
+ if @api_client.config.client_side_validation && request.nil?
1504
+ fail ArgumentError, "Missing the required parameter 'request' when calling ComputerUseApi.set_accessibility_node_value"
1505
+ end
1506
+ # resource path
1507
+ local_var_path = '/computeruse/a11y/node/value'
1508
+
1509
+ # query parameters
1510
+ query_params = opts[:query_params] || {}
1511
+
1512
+ # header parameters
1513
+ header_params = opts[:header_params] || {}
1514
+ # HTTP header 'Accept' (if needed)
1515
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1516
+ # HTTP header 'Content-Type'
1517
+ content_type = @api_client.select_header_content_type(['application/json'])
1518
+ if !content_type.nil?
1519
+ header_params['Content-Type'] = content_type
1520
+ end
1521
+
1522
+ # form parameters
1523
+ form_params = opts[:form_params] || {}
1524
+
1525
+ # http body (model)
1526
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(request)
1527
+
1528
+ # return_type
1529
+ return_type = opts[:debug_return_type] || 'Object'
1530
+
1531
+ # auth_names
1532
+ auth_names = opts[:debug_auth_names] || []
1533
+
1534
+ new_options = opts.merge(
1535
+ :operation => :"ComputerUseApi.set_accessibility_node_value",
1536
+ :header_params => header_params,
1537
+ :query_params => query_params,
1538
+ :form_params => form_params,
1539
+ :body => post_body,
1540
+ :auth_names => auth_names,
1541
+ :return_type => return_type
1542
+ )
1543
+
1544
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1545
+ if @api_client.config.debugging
1546
+ @api_client.config.logger.debug "API called: ComputerUseApi#set_accessibility_node_value\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1547
+ end
1548
+ return data, status_code, headers
1549
+ end
1550
+
1213
1551
  # Start computer use processes
1214
1552
  # Start all computer use processes and return their status
1215
1553
  # @param [Hash] opts the optional parameters
@@ -0,0 +1,174 @@
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.21.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module DaytonaToolboxApiClient
17
+ class AccessibilityBounds < ApiModelBase
18
+ attr_accessor :height
19
+
20
+ attr_accessor :width
21
+
22
+ attr_accessor :x
23
+
24
+ attr_accessor :y
25
+
26
+ # Attribute mapping from ruby-style variable name to JSON key.
27
+ def self.attribute_map
28
+ {
29
+ :'height' => :'height',
30
+ :'width' => :'width',
31
+ :'x' => :'x',
32
+ :'y' => :'y'
33
+ }
34
+ end
35
+
36
+ # Returns attribute mapping this model knows about
37
+ def self.acceptable_attribute_map
38
+ attribute_map
39
+ end
40
+
41
+ # Returns all the JSON keys this model knows about
42
+ def self.acceptable_attributes
43
+ acceptable_attribute_map.values
44
+ end
45
+
46
+ # Attribute type mapping.
47
+ def self.openapi_types
48
+ {
49
+ :'height' => :'Integer',
50
+ :'width' => :'Integer',
51
+ :'x' => :'Integer',
52
+ :'y' => :'Integer'
53
+ }
54
+ end
55
+
56
+ # List of attributes with nullable: true
57
+ def self.openapi_nullable
58
+ Set.new([
59
+ ])
60
+ end
61
+
62
+ # Initializes the object
63
+ # @param [Hash] attributes Model attributes in the form of hash
64
+ def initialize(attributes = {})
65
+ if (!attributes.is_a?(Hash))
66
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DaytonaToolboxApiClient::AccessibilityBounds` initialize method"
67
+ end
68
+
69
+ # check to see if the attribute exists and convert string to symbol for hash key
70
+ acceptable_attribute_map = self.class.acceptable_attribute_map
71
+ attributes = attributes.each_with_object({}) { |(k, v), h|
72
+ if (!acceptable_attribute_map.key?(k.to_sym))
73
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DaytonaToolboxApiClient::AccessibilityBounds`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
74
+ end
75
+ h[k.to_sym] = v
76
+ }
77
+
78
+ if attributes.key?(:'height')
79
+ self.height = attributes[:'height']
80
+ end
81
+
82
+ if attributes.key?(:'width')
83
+ self.width = attributes[:'width']
84
+ end
85
+
86
+ if attributes.key?(:'x')
87
+ self.x = attributes[:'x']
88
+ end
89
+
90
+ if attributes.key?(:'y')
91
+ self.y = attributes[:'y']
92
+ end
93
+ end
94
+
95
+ # Show invalid properties with the reasons. Usually used together with valid?
96
+ # @return Array for valid properties with the reasons
97
+ def list_invalid_properties
98
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
99
+ invalid_properties = Array.new
100
+ invalid_properties
101
+ end
102
+
103
+ # Check to see if the all the properties in the model are valid
104
+ # @return true if the model is valid
105
+ def valid?
106
+ warn '[DEPRECATED] the `valid?` method is obsolete'
107
+ true
108
+ end
109
+
110
+ # Checks equality by comparing each attribute.
111
+ # @param [Object] Object to be compared
112
+ def ==(o)
113
+ return true if self.equal?(o)
114
+ self.class == o.class &&
115
+ height == o.height &&
116
+ width == o.width &&
117
+ x == o.x &&
118
+ y == o.y
119
+ end
120
+
121
+ # @see the `==` method
122
+ # @param [Object] Object to be compared
123
+ def eql?(o)
124
+ self == o
125
+ end
126
+
127
+ # Calculates hash code according to all attributes.
128
+ # @return [Integer] Hash code
129
+ def hash
130
+ [height, width, x, y].hash
131
+ end
132
+
133
+ # Builds the object from hash
134
+ # @param [Hash] attributes Model attributes in the form of hash
135
+ # @return [Object] Returns the model itself
136
+ def self.build_from_hash(attributes)
137
+ return nil unless attributes.is_a?(Hash)
138
+ attributes = attributes.transform_keys(&:to_sym)
139
+ transformed_hash = {}
140
+ openapi_types.each_pair do |key, type|
141
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
142
+ transformed_hash["#{key}"] = nil
143
+ elsif type =~ /\AArray<(.*)>/i
144
+ # check to ensure the input is an array given that the attribute
145
+ # is documented as an array but the input is not
146
+ if attributes[attribute_map[key]].is_a?(Array)
147
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
148
+ end
149
+ elsif !attributes[attribute_map[key]].nil?
150
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
151
+ end
152
+ end
153
+ new(transformed_hash)
154
+ end
155
+
156
+ # Returns the object in the form of hash
157
+ # @return [Hash] Returns the object in the form of hash
158
+ def to_hash
159
+ hash = {}
160
+ self.class.attribute_map.each_pair do |attr, param|
161
+ value = self.send(attr)
162
+ if value.nil?
163
+ is_nullable = self.class.openapi_nullable.include?(attr)
164
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
165
+ end
166
+
167
+ hash[param] = _to_hash(value)
168
+ end
169
+ hash
170
+ end
171
+
172
+ end
173
+
174
+ end