merge_ticketing_client 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +24 -6
  3. data/docs/Account.md +3 -1
  4. data/docs/AccountIntegration.md +1 -1
  5. data/docs/Attachment.md +5 -3
  6. data/docs/AttachmentRequest.md +7 -3
  7. data/docs/Collection.md +34 -0
  8. data/docs/CollectionTypeEnum.md +15 -0
  9. data/docs/CollectionsApi.md +193 -0
  10. data/docs/Comment.md +6 -4
  11. data/docs/CommentRequest.md +8 -4
  12. data/docs/ConditionSchema.md +30 -0
  13. data/docs/ConditionTypeEnum.md +15 -0
  14. data/docs/Contact.md +3 -1
  15. data/docs/DataPassthroughRequest.md +1 -1
  16. data/docs/EndUserDetailsRequest.md +2 -2
  17. data/docs/Issue.md +9 -7
  18. data/docs/LinkToken.md +1 -1
  19. data/docs/LinkedAccountCondition.md +28 -0
  20. data/docs/LinkedAccountConditionRequest.md +22 -0
  21. data/docs/LinkedAccountSelectiveSyncConfiguration.md +18 -0
  22. data/docs/LinkedAccountSelectiveSyncConfigurationListRequest.md +18 -0
  23. data/docs/LinkedAccountSelectiveSyncConfigurationRequest.md +18 -0
  24. data/docs/OperatorSchema.md +20 -0
  25. data/docs/PaginatedCollectionList.md +22 -0
  26. data/docs/PaginatedConditionSchemaList.md +22 -0
  27. data/docs/PatchedTicketRequest.md +15 -7
  28. data/docs/Project.md +3 -1
  29. data/docs/ProjectsApi.md +10 -8
  30. data/docs/SelectiveSyncApi.md +233 -0
  31. data/docs/SelectiveSyncConfigurationsUsageEnum.md +15 -0
  32. data/docs/SyncStatus.md +5 -3
  33. data/docs/Tag.md +3 -1
  34. data/docs/Team.md +3 -1
  35. data/docs/Ticket.md +13 -7
  36. data/docs/TicketRequest.md +15 -7
  37. data/docs/TicketsApi.md +53 -13
  38. data/docs/User.md +3 -1
  39. data/docs/UsersApi.md +2 -0
  40. data/lib/merge_ticketing_client/api/collections_api.rb +234 -0
  41. data/lib/merge_ticketing_client/api/linked_accounts_api.rb +1 -1
  42. data/lib/merge_ticketing_client/api/projects_api.rb +14 -11
  43. data/lib/merge_ticketing_client/api/selective_sync_api.rb +225 -0
  44. data/lib/merge_ticketing_client/api/tickets_api.rb +94 -19
  45. data/lib/merge_ticketing_client/api/users_api.rb +3 -0
  46. data/lib/merge_ticketing_client/models/account.rb +16 -4
  47. data/lib/merge_ticketing_client/models/account_details_and_actions_status_enum.rb +1 -1
  48. data/lib/merge_ticketing_client/models/account_integration.rb +1 -1
  49. data/lib/merge_ticketing_client/models/attachment.rb +18 -4
  50. data/lib/merge_ticketing_client/models/attachment_request.rb +31 -5
  51. data/lib/merge_ticketing_client/models/categories_enum.rb +1 -1
  52. data/lib/merge_ticketing_client/models/category_enum.rb +1 -1
  53. data/lib/merge_ticketing_client/models/collection.rb +308 -0
  54. data/lib/merge_ticketing_client/models/collection_type_enum.rb +45 -0
  55. data/lib/merge_ticketing_client/models/comment.rb +19 -4
  56. data/lib/merge_ticketing_client/models/comment_request.rb +32 -5
  57. data/lib/merge_ticketing_client/models/condition_schema.rb +297 -0
  58. data/lib/merge_ticketing_client/models/condition_type_enum.rb +50 -0
  59. data/lib/merge_ticketing_client/models/contact.rb +16 -4
  60. data/lib/merge_ticketing_client/models/data_passthrough_request.rb +1 -0
  61. data/lib/merge_ticketing_client/models/encoding_enum.rb +1 -1
  62. data/lib/merge_ticketing_client/models/end_user_details_request.rb +2 -2
  63. data/lib/merge_ticketing_client/models/issue.rb +15 -4
  64. data/lib/merge_ticketing_client/models/link_token.rb +0 -5
  65. data/lib/merge_ticketing_client/models/linked_account_condition.rb +282 -0
  66. data/lib/merge_ticketing_client/models/linked_account_condition_request.rb +269 -0
  67. data/lib/merge_ticketing_client/models/linked_account_selective_sync_configuration.rb +221 -0
  68. data/lib/merge_ticketing_client/models/linked_account_selective_sync_configuration_list_request.rb +226 -0
  69. data/lib/merge_ticketing_client/models/linked_account_selective_sync_configuration_request.rb +226 -0
  70. data/lib/merge_ticketing_client/models/method_enum.rb +1 -1
  71. data/lib/merge_ticketing_client/models/operator_schema.rb +229 -0
  72. data/lib/merge_ticketing_client/models/paginated_collection_list.rb +240 -0
  73. data/lib/merge_ticketing_client/models/paginated_condition_schema_list.rb +240 -0
  74. data/lib/merge_ticketing_client/models/patched_ticket_request.rb +57 -7
  75. data/lib/merge_ticketing_client/models/priority_enum.rb +1 -1
  76. data/lib/merge_ticketing_client/models/project.rb +16 -4
  77. data/lib/merge_ticketing_client/models/request_format_enum.rb +1 -1
  78. data/lib/merge_ticketing_client/models/response_type_enum.rb +1 -1
  79. data/lib/merge_ticketing_client/models/selective_sync_configurations_usage_enum.rb +45 -0
  80. data/lib/merge_ticketing_client/models/sync_status.rb +13 -4
  81. data/lib/merge_ticketing_client/models/sync_status_status_enum.rb +1 -1
  82. data/lib/merge_ticketing_client/models/tag.rb +16 -4
  83. data/lib/merge_ticketing_client/models/team.rb +16 -4
  84. data/lib/merge_ticketing_client/models/ticket.rb +45 -7
  85. data/lib/merge_ticketing_client/models/ticket_request.rb +57 -7
  86. data/lib/merge_ticketing_client/models/ticket_status_enum.rb +1 -1
  87. data/lib/merge_ticketing_client/models/user.rb +16 -4
  88. data/lib/merge_ticketing_client/version.rb +1 -1
  89. data/lib/merge_ticketing_client.rb +15 -0
  90. data/spec/api/collections_api_spec.rb +76 -0
  91. data/spec/api/projects_api_spec.rb +3 -2
  92. data/spec/api/selective_sync_api_spec.rb +72 -0
  93. data/spec/api/tickets_api_spec.rb +24 -4
  94. data/spec/api/users_api_spec.rb +1 -0
  95. data/spec/models/account_spec.rb +6 -0
  96. data/spec/models/attachment_request_spec.rb +12 -0
  97. data/spec/models/attachment_spec.rb +6 -0
  98. data/spec/models/collection_spec.rb +82 -0
  99. data/spec/models/collection_type_enum_spec.rb +28 -0
  100. data/spec/models/comment_request_spec.rb +12 -0
  101. data/spec/models/comment_spec.rb +6 -0
  102. data/spec/models/condition_schema_spec.rb +70 -0
  103. data/spec/models/condition_type_enum_spec.rb +28 -0
  104. data/spec/models/contact_spec.rb +6 -0
  105. data/spec/models/issue_spec.rb +6 -0
  106. data/spec/models/linked_account_condition_request_spec.rb +46 -0
  107. data/spec/models/linked_account_condition_spec.rb +64 -0
  108. data/spec/models/linked_account_selective_sync_configuration_list_request_spec.rb +34 -0
  109. data/spec/models/linked_account_selective_sync_configuration_request_spec.rb +34 -0
  110. data/spec/models/linked_account_selective_sync_configuration_spec.rb +34 -0
  111. data/spec/models/operator_schema_spec.rb +40 -0
  112. data/spec/models/paginated_collection_list_spec.rb +46 -0
  113. data/spec/models/paginated_condition_schema_list_spec.rb +46 -0
  114. data/spec/models/patched_ticket_request_spec.rb +24 -0
  115. data/spec/models/project_spec.rb +6 -0
  116. data/spec/models/selective_sync_configurations_usage_enum_spec.rb +28 -0
  117. data/spec/models/sync_status_spec.rb +6 -0
  118. data/spec/models/tag_spec.rb +6 -0
  119. data/spec/models/team_spec.rb +6 -0
  120. data/spec/models/ticket_request_spec.rb +24 -0
  121. data/spec/models/ticket_spec.rb +18 -0
  122. data/spec/models/user_spec.rb +6 -0
  123. metadata +132 -72
@@ -32,6 +32,8 @@ module MergeTicketingClient
32
32
  # Indicates whether or not this object has been deleted by third party webhooks.
33
33
  attr_accessor :remote_was_deleted
34
34
 
35
+ attr_accessor :field_mappings
36
+
35
37
  # Attribute mapping from ruby-style variable name to JSON key.
36
38
  def self.attribute_map
37
39
  {
@@ -40,7 +42,8 @@ module MergeTicketingClient
40
42
  :'name' => :'name',
41
43
  :'domains' => :'domains',
42
44
  :'remote_data' => :'remote_data',
43
- :'remote_was_deleted' => :'remote_was_deleted'
45
+ :'remote_was_deleted' => :'remote_was_deleted',
46
+ :'field_mappings' => :'field_mappings'
44
47
  }
45
48
  end
46
49
 
@@ -57,7 +60,8 @@ module MergeTicketingClient
57
60
  :'name' => :'String',
58
61
  :'domains' => :'Array<String>',
59
62
  :'remote_data' => :'Array<RemoteData>',
60
- :'remote_was_deleted' => :'Boolean'
63
+ :'remote_was_deleted' => :'Boolean',
64
+ :'field_mappings' => :'Hash<String, Object>'
61
65
  }
62
66
  end
63
67
 
@@ -68,6 +72,7 @@ module MergeTicketingClient
68
72
  :'name',
69
73
  :'domains',
70
74
  :'remote_data',
75
+ :'field_mappings'
71
76
  ])
72
77
  end
73
78
 
@@ -113,6 +118,12 @@ module MergeTicketingClient
113
118
  if attributes.key?(:'remote_was_deleted')
114
119
  self.remote_was_deleted = attributes[:'remote_was_deleted']
115
120
  end
121
+
122
+ if attributes.key?(:'field_mappings')
123
+ if (value = attributes[:'field_mappings']).is_a?(Hash)
124
+ self.field_mappings = value
125
+ end
126
+ end
116
127
  end
117
128
 
118
129
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -138,7 +149,8 @@ module MergeTicketingClient
138
149
  name == o.name &&
139
150
  domains == o.domains &&
140
151
  remote_data == o.remote_data &&
141
- remote_was_deleted == o.remote_was_deleted
152
+ remote_was_deleted == o.remote_was_deleted &&
153
+ field_mappings == o.field_mappings
142
154
  end
143
155
 
144
156
  # @see the `==` method
@@ -150,7 +162,7 @@ module MergeTicketingClient
150
162
  # Calculates hash code according to all attributes.
151
163
  # @return [Integer] Hash code
152
164
  def hash
153
- [id, remote_id, name, domains, remote_data, remote_was_deleted].hash
165
+ [id, remote_id, name, domains, remote_data, remote_was_deleted, field_mappings].hash
154
166
  end
155
167
 
156
168
  # Builds the object from hash
@@ -39,7 +39,7 @@ module MergeTicketingClient
39
39
  end
40
40
 
41
41
  def self.build_from_hash(value)
42
- IssueStatusEnum.new.build_from_hash(value)
42
+ AccountDetailsAndActionsStatusEnum.new.build_from_hash(value)
43
43
  end
44
44
  end
45
45
 
@@ -18,7 +18,7 @@ module MergeTicketingClient
18
18
  # Company name.
19
19
  attr_accessor :name
20
20
 
21
- # Category or categories this integration belongs to. Multiple categories should be comma separated.<br/><br>Example: For [ats, hris], enter <i>ats,hris</i>
21
+ # Category or categories this integration belongs to. Multiple categories should be comma separated, i.e. [ats, hris].
22
22
  attr_accessor :categories
23
23
 
24
24
  # Company logo in rectangular shape. <b>Upload an image with a clear background.</b>
@@ -24,6 +24,7 @@ module MergeTicketingClient
24
24
  # The attachment's name.
25
25
  attr_accessor :file_name
26
26
 
27
+ # The ticket associated with the attachment.
27
28
  attr_accessor :ticket
28
29
 
29
30
  # The attachment's url.
@@ -32,6 +33,7 @@ module MergeTicketingClient
32
33
  # The attachment's file format.
33
34
  attr_accessor :content_type
34
35
 
36
+ # The user who uploaded the attachment.
35
37
  attr_accessor :uploaded_by
36
38
 
37
39
  # When the third party's attachment was created.
@@ -41,6 +43,8 @@ module MergeTicketingClient
41
43
 
42
44
  attr_accessor :remote_was_deleted
43
45
 
46
+ attr_accessor :field_mappings
47
+
44
48
  # Attribute mapping from ruby-style variable name to JSON key.
45
49
  def self.attribute_map
46
50
  {
@@ -53,7 +57,8 @@ module MergeTicketingClient
53
57
  :'uploaded_by' => :'uploaded_by',
54
58
  :'remote_created_at' => :'remote_created_at',
55
59
  :'remote_data' => :'remote_data',
56
- :'remote_was_deleted' => :'remote_was_deleted'
60
+ :'remote_was_deleted' => :'remote_was_deleted',
61
+ :'field_mappings' => :'field_mappings'
57
62
  }
58
63
  end
59
64
 
@@ -74,7 +79,8 @@ module MergeTicketingClient
74
79
  :'uploaded_by' => :'String',
75
80
  :'remote_created_at' => :'Time',
76
81
  :'remote_data' => :'Array<RemoteData>',
77
- :'remote_was_deleted' => :'Boolean'
82
+ :'remote_was_deleted' => :'Boolean',
83
+ :'field_mappings' => :'Hash<String, Object>'
78
84
  }
79
85
  end
80
86
 
@@ -89,6 +95,7 @@ module MergeTicketingClient
89
95
  :'uploaded_by',
90
96
  :'remote_created_at',
91
97
  :'remote_data',
98
+ :'field_mappings'
92
99
  ])
93
100
  end
94
101
 
@@ -148,6 +155,12 @@ module MergeTicketingClient
148
155
  if attributes.key?(:'remote_was_deleted')
149
156
  self.remote_was_deleted = attributes[:'remote_was_deleted']
150
157
  end
158
+
159
+ if attributes.key?(:'field_mappings')
160
+ if (value = attributes[:'field_mappings']).is_a?(Hash)
161
+ self.field_mappings = value
162
+ end
163
+ end
151
164
  end
152
165
 
153
166
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -177,7 +190,8 @@ module MergeTicketingClient
177
190
  uploaded_by == o.uploaded_by &&
178
191
  remote_created_at == o.remote_created_at &&
179
192
  remote_data == o.remote_data &&
180
- remote_was_deleted == o.remote_was_deleted
193
+ remote_was_deleted == o.remote_was_deleted &&
194
+ field_mappings == o.field_mappings
181
195
  end
182
196
 
183
197
  # @see the `==` method
@@ -189,7 +203,7 @@ module MergeTicketingClient
189
203
  # Calculates hash code according to all attributes.
190
204
  # @return [Integer] Hash code
191
205
  def hash
192
- [id, remote_id, file_name, ticket, file_url, content_type, uploaded_by, remote_created_at, remote_data, remote_was_deleted].hash
206
+ [id, remote_id, file_name, ticket, file_url, content_type, uploaded_by, remote_created_at, remote_data, remote_was_deleted, field_mappings].hash
193
207
  end
194
208
 
195
209
  # Builds the object from hash
@@ -22,6 +22,7 @@ module MergeTicketingClient
22
22
  # The attachment's name.
23
23
  attr_accessor :file_name
24
24
 
25
+ # The ticket associated with the attachment.
25
26
  attr_accessor :ticket
26
27
 
27
28
  # The attachment's url.
@@ -30,11 +31,16 @@ module MergeTicketingClient
30
31
  # The attachment's file format.
31
32
  attr_accessor :content_type
32
33
 
34
+ # The user who uploaded the attachment.
33
35
  attr_accessor :uploaded_by
34
36
 
35
37
  # When the third party's attachment was created.
36
38
  attr_accessor :remote_created_at
37
39
 
40
+ attr_accessor :integration_params
41
+
42
+ attr_accessor :linked_account_params
43
+
38
44
  # Attribute mapping from ruby-style variable name to JSON key.
39
45
  def self.attribute_map
40
46
  {
@@ -44,7 +50,9 @@ module MergeTicketingClient
44
50
  :'file_url' => :'file_url',
45
51
  :'content_type' => :'content_type',
46
52
  :'uploaded_by' => :'uploaded_by',
47
- :'remote_created_at' => :'remote_created_at'
53
+ :'remote_created_at' => :'remote_created_at',
54
+ :'integration_params' => :'integration_params',
55
+ :'linked_account_params' => :'linked_account_params'
48
56
  }
49
57
  end
50
58
 
@@ -62,7 +70,9 @@ module MergeTicketingClient
62
70
  :'file_url' => :'String',
63
71
  :'content_type' => :'String',
64
72
  :'uploaded_by' => :'String',
65
- :'remote_created_at' => :'Time'
73
+ :'remote_created_at' => :'Time',
74
+ :'integration_params' => :'Hash<String, Object>',
75
+ :'linked_account_params' => :'Hash<String, Object>'
66
76
  }
67
77
  end
68
78
 
@@ -75,7 +85,9 @@ module MergeTicketingClient
75
85
  :'file_url',
76
86
  :'content_type',
77
87
  :'uploaded_by',
78
- :'remote_created_at'
88
+ :'remote_created_at',
89
+ :'integration_params',
90
+ :'linked_account_params'
79
91
  ])
80
92
  end
81
93
 
@@ -121,6 +133,18 @@ module MergeTicketingClient
121
133
  if attributes.key?(:'remote_created_at')
122
134
  self.remote_created_at = attributes[:'remote_created_at']
123
135
  end
136
+
137
+ if attributes.key?(:'integration_params')
138
+ if (value = attributes[:'integration_params']).is_a?(Hash)
139
+ self.integration_params = value
140
+ end
141
+ end
142
+
143
+ if attributes.key?(:'linked_account_params')
144
+ if (value = attributes[:'linked_account_params']).is_a?(Hash)
145
+ self.linked_account_params = value
146
+ end
147
+ end
124
148
  end
125
149
 
126
150
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -147,7 +171,9 @@ module MergeTicketingClient
147
171
  file_url == o.file_url &&
148
172
  content_type == o.content_type &&
149
173
  uploaded_by == o.uploaded_by &&
150
- remote_created_at == o.remote_created_at
174
+ remote_created_at == o.remote_created_at &&
175
+ integration_params == o.integration_params &&
176
+ linked_account_params == o.linked_account_params
151
177
  end
152
178
 
153
179
  # @see the `==` method
@@ -159,7 +185,7 @@ module MergeTicketingClient
159
185
  # Calculates hash code according to all attributes.
160
186
  # @return [Integer] Hash code
161
187
  def hash
162
- [remote_id, file_name, ticket, file_url, content_type, uploaded_by, remote_created_at].hash
188
+ [remote_id, file_name, ticket, file_url, content_type, uploaded_by, remote_created_at, integration_params, linked_account_params].hash
163
189
  end
164
190
 
165
191
  # Builds the object from hash
@@ -41,7 +41,7 @@ module MergeTicketingClient
41
41
  end
42
42
 
43
43
  def self.build_from_hash(value)
44
- IssueStatusEnum.new.build_from_hash(value)
44
+ CategoriesEnum.new.build_from_hash(value)
45
45
  end
46
46
  end
47
47
 
@@ -41,7 +41,7 @@ module MergeTicketingClient
41
41
  end
42
42
 
43
43
  def self.build_from_hash(value)
44
- IssueStatusEnum.new.build_from_hash(value)
44
+ CategoryEnum.new.build_from_hash(value)
45
45
  end
46
46
  end
47
47
 
@@ -0,0 +1,308 @@
1
+ =begin
2
+ #Merge Ticketing API
3
+
4
+ #The unified API for building rich integrations with multiple Ticketing platforms.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: hello@merge.dev
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.1.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module MergeTicketingClient
17
+ # # The Collection Object ### Description The `Collection` object is used to represent collections of tickets. Collections may include other collections as sub collections. ### Usage Example TODO
18
+ class Collection
19
+ attr_accessor :id
20
+
21
+ # The third-party API ID of the matching object.
22
+ attr_accessor :remote_id
23
+
24
+ # The collection's name.
25
+ attr_accessor :name
26
+
27
+ # The collection's description.
28
+ attr_accessor :description
29
+
30
+ # The collection's type.
31
+ attr_accessor :collection_type
32
+
33
+ # The parent collection for this collection.
34
+ attr_accessor :parent_collection
35
+
36
+ attr_accessor :remote_data
37
+
38
+ # Indicates whether or not this object has been deleted by third party webhooks.
39
+ attr_accessor :remote_was_deleted
40
+
41
+ attr_accessor :field_mappings
42
+
43
+ # Attribute mapping from ruby-style variable name to JSON key.
44
+ def self.attribute_map
45
+ {
46
+ :'id' => :'id',
47
+ :'remote_id' => :'remote_id',
48
+ :'name' => :'name',
49
+ :'description' => :'description',
50
+ :'collection_type' => :'collection_type',
51
+ :'parent_collection' => :'parent_collection',
52
+ :'remote_data' => :'remote_data',
53
+ :'remote_was_deleted' => :'remote_was_deleted',
54
+ :'field_mappings' => :'field_mappings'
55
+ }
56
+ end
57
+
58
+ # Returns all the JSON keys this model knows about
59
+ def self.acceptable_attributes
60
+ attribute_map.values
61
+ end
62
+
63
+ # Attribute type mapping.
64
+ def self.openapi_types
65
+ {
66
+ :'id' => :'String',
67
+ :'remote_id' => :'String',
68
+ :'name' => :'String',
69
+ :'description' => :'String',
70
+ :'collection_type' => :'CollectionTypeEnum',
71
+ :'parent_collection' => :'String',
72
+ :'remote_data' => :'Array<RemoteData>',
73
+ :'remote_was_deleted' => :'Boolean',
74
+ :'field_mappings' => :'Hash<String, Object>'
75
+ }
76
+ end
77
+
78
+ # List of attributes with nullable: true
79
+ def self.openapi_nullable
80
+ Set.new([
81
+ :'remote_id',
82
+ :'name',
83
+ :'description',
84
+ :'collection_type',
85
+ :'parent_collection',
86
+ :'remote_data',
87
+ :'field_mappings'
88
+ ])
89
+ end
90
+
91
+ # Initializes the object
92
+ # @param [Hash] attributes Model attributes in the form of hash
93
+ def initialize(attributes = {})
94
+ if (!attributes.is_a?(Hash))
95
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MergeTicketingClient::Collection` initialize method"
96
+ end
97
+
98
+ # check to see if the attribute exists and convert string to symbol for hash key
99
+ attributes = attributes.each_with_object({}) { |(k, v), h|
100
+ if (!self.class.attribute_map.key?(k.to_sym))
101
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MergeTicketingClient::Collection`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
102
+ end
103
+ h[k.to_sym] = v
104
+ }
105
+
106
+ if attributes.key?(:'id')
107
+ self.id = attributes[:'id']
108
+ end
109
+
110
+ if attributes.key?(:'remote_id')
111
+ self.remote_id = attributes[:'remote_id']
112
+ end
113
+
114
+ if attributes.key?(:'name')
115
+ self.name = attributes[:'name']
116
+ end
117
+
118
+ if attributes.key?(:'description')
119
+ self.description = attributes[:'description']
120
+ end
121
+
122
+ if attributes.key?(:'collection_type')
123
+ self.collection_type = attributes[:'collection_type']
124
+ end
125
+
126
+ if attributes.key?(:'parent_collection')
127
+ self.parent_collection = attributes[:'parent_collection']
128
+ end
129
+
130
+ if attributes.key?(:'remote_data')
131
+ if (value = attributes[:'remote_data']).is_a?(Array)
132
+ self.remote_data = value
133
+ end
134
+ end
135
+
136
+ if attributes.key?(:'remote_was_deleted')
137
+ self.remote_was_deleted = attributes[:'remote_was_deleted']
138
+ end
139
+
140
+ if attributes.key?(:'field_mappings')
141
+ if (value = attributes[:'field_mappings']).is_a?(Hash)
142
+ self.field_mappings = value
143
+ end
144
+ end
145
+ end
146
+
147
+ # Show invalid properties with the reasons. Usually used together with valid?
148
+ # @return Array for valid properties with the reasons
149
+ def list_invalid_properties
150
+ invalid_properties = Array.new
151
+ invalid_properties
152
+ end
153
+
154
+ # Check to see if the all the properties in the model are valid
155
+ # @return true if the model is valid
156
+ def valid?
157
+ true
158
+ end
159
+
160
+ # Checks equality by comparing each attribute.
161
+ # @param [Object] Object to be compared
162
+ def ==(o)
163
+ return true if self.equal?(o)
164
+ self.class == o.class &&
165
+ id == o.id &&
166
+ remote_id == o.remote_id &&
167
+ name == o.name &&
168
+ description == o.description &&
169
+ collection_type == o.collection_type &&
170
+ parent_collection == o.parent_collection &&
171
+ remote_data == o.remote_data &&
172
+ remote_was_deleted == o.remote_was_deleted &&
173
+ field_mappings == o.field_mappings
174
+ end
175
+
176
+ # @see the `==` method
177
+ # @param [Object] Object to be compared
178
+ def eql?(o)
179
+ self == o
180
+ end
181
+
182
+ # Calculates hash code according to all attributes.
183
+ # @return [Integer] Hash code
184
+ def hash
185
+ [id, remote_id, name, description, collection_type, parent_collection, remote_data, remote_was_deleted, field_mappings].hash
186
+ end
187
+
188
+ # Builds the object from hash
189
+ # @param [Hash] attributes Model attributes in the form of hash
190
+ # @return [Object] Returns the model itself
191
+ def self.build_from_hash(attributes)
192
+ new.build_from_hash(attributes)
193
+ end
194
+
195
+ # Builds the object from hash
196
+ # @param [Hash] attributes Model attributes in the form of hash
197
+ # @return [Object] Returns the model itself
198
+ def build_from_hash(attributes)
199
+ return nil unless attributes.is_a?(Hash)
200
+ self.class.openapi_types.each_pair do |key, type|
201
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
202
+ self.send("#{key}=", nil)
203
+ elsif type =~ /\AArray<(.*)>/i
204
+ # check to ensure the input is an array given that the attribute
205
+ # is documented as an array but the input is not
206
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
207
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
208
+ end
209
+ elsif !attributes[self.class.attribute_map[key]].nil?
210
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
211
+ end
212
+ end
213
+
214
+ self
215
+ end
216
+
217
+ # Deserializes the data based on type
218
+ # @param string type Data type
219
+ # @param string value Value to be deserialized
220
+ # @return [Object] Deserialized data
221
+ def _deserialize(type, value)
222
+ case type.to_sym
223
+ when :Time
224
+ Time.parse(value)
225
+ when :Date
226
+ Date.parse(value)
227
+ when :String
228
+ value
229
+ when :Integer
230
+ value.to_i
231
+ when :Float
232
+ value.to_f
233
+ when :Boolean
234
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
235
+ true
236
+ else
237
+ false
238
+ end
239
+ when :Object
240
+ # generic object (usually a Hash), return directly
241
+ value
242
+ when /\AArray<(?<inner_type>.+)>\z/
243
+ inner_type = Regexp.last_match[:inner_type]
244
+ value.map { |v| _deserialize(inner_type, v) }
245
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
246
+ k_type = Regexp.last_match[:k_type]
247
+ v_type = Regexp.last_match[:v_type]
248
+ {}.tap do |hash|
249
+ value.each do |k, v|
250
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
251
+ end
252
+ end
253
+ else # model
254
+ # models (e.g. Pet) or oneOf
255
+ klass = MergeTicketingClient.const_get(type)
256
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
257
+ end
258
+ end
259
+
260
+ # Returns the string representation of the object
261
+ # @return [String] String presentation of the object
262
+ def to_s
263
+ to_hash.to_s
264
+ end
265
+
266
+ # to_body is an alias to to_hash (backward compatibility)
267
+ # @return [Hash] Returns the object in the form of hash
268
+ def to_body
269
+ to_hash
270
+ end
271
+
272
+ # Returns the object in the form of hash
273
+ # @return [Hash] Returns the object in the form of hash
274
+ def to_hash
275
+ hash = {}
276
+ self.class.attribute_map.each_pair do |attr, param|
277
+ value = self.send(attr)
278
+ if value.nil?
279
+ is_nullable = self.class.openapi_nullable.include?(attr)
280
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
281
+ end
282
+
283
+ hash[param] = _to_hash(value)
284
+ end
285
+ hash
286
+ end
287
+
288
+ # Outputs non-array value in the form of hash
289
+ # For object, use to_hash. Otherwise, just return the value
290
+ # @param [Object] value Any valid value
291
+ # @return [Hash] Returns the value in the form of hash
292
+ def _to_hash(value)
293
+ if value.is_a?(Array)
294
+ value.compact.map { |v| _to_hash(v) }
295
+ elsif value.is_a?(Hash)
296
+ {}.tap do |hash|
297
+ value.each { |k, v| hash[k] = _to_hash(v) }
298
+ end
299
+ elsif value.respond_to? :to_hash
300
+ value.to_hash
301
+ else
302
+ value
303
+ end
304
+ end
305
+
306
+ end
307
+
308
+ end
@@ -0,0 +1,45 @@
1
+ =begin
2
+ #Merge Ticketing API
3
+
4
+ #The unified API for building rich integrations with multiple Ticketing platforms.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: hello@merge.dev
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.1.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module MergeTicketingClient
17
+ class CollectionTypeEnum
18
+ LIST = "LIST".freeze
19
+ PROJECT = "PROJECT".freeze
20
+
21
+ MERGE_NONSTANDARD_VALUE = "MERGE_NONSTANDARD_VALUE".freeze
22
+
23
+ attr_accessor :value
24
+ attr_accessor :raw_value
25
+
26
+ # Builds the enum from string
27
+ # @param [String] The enum value in the form of the string
28
+ # @return [String] The enum value
29
+ def build_from_hash(value)
30
+ @raw_value = value
31
+ if ["LIST", "PROJECT", ].include? value
32
+ @value = value
33
+ else
34
+ @value = MERGE_NONSTANDARD_VALUE
35
+ end
36
+
37
+ self
38
+ end
39
+
40
+ def self.build_from_hash(value)
41
+ CollectionTypeEnum.new.build_from_hash(value)
42
+ end
43
+ end
44
+
45
+ end