phrase 1.0.13 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +48 -9
  3. data/docs/Account.md +3 -1
  4. data/docs/AccountDetails.md +5 -1
  5. data/docs/AccountDetails1.md +3 -1
  6. data/docs/AccountSearchResult.md +29 -0
  7. data/docs/Branch.md +5 -1
  8. data/docs/Comment.md +3 -1
  9. data/docs/CurrentUser.md +31 -0
  10. data/docs/JobCreateParameters.md +2 -0
  11. data/docs/JobDetails.md +2 -0
  12. data/docs/JobDetails1.md +2 -0
  13. data/docs/JobLocale.md +5 -1
  14. data/docs/JobTemplate.md +29 -0
  15. data/docs/JobTemplateCreateParameters.md +21 -0
  16. data/docs/JobTemplateLocale.md +23 -0
  17. data/docs/JobTemplateLocaleUpdateParameters.md +23 -0
  18. data/docs/JobTemplateLocalesApi.md +347 -0
  19. data/docs/JobTemplateLocalesCreateParameters.md +23 -0
  20. data/docs/JobTemplatePreview.md +19 -0
  21. data/docs/JobTemplateUpdateParameters.md +21 -0
  22. data/docs/JobTemplateUserPreview.md +23 -0
  23. data/docs/JobTemplatesApi.md +337 -0
  24. data/docs/KeysApi.md +137 -9
  25. data/docs/KeysExcludeParameters.md +23 -0
  26. data/docs/KeysIncludeParameters.md +23 -0
  27. data/docs/KeysSearchParameters.md +1 -1
  28. data/docs/KeysTagParameters.md +1 -1
  29. data/docs/KeysUntagParameters.md +1 -1
  30. data/docs/LocalePreview1.md +23 -0
  31. data/docs/LocalesApi.md +73 -6
  32. data/docs/MemberSpaces.md +2 -2
  33. data/docs/MemberUpdateParameters.md +4 -2
  34. data/docs/Notification.md +41 -0
  35. data/docs/NotificationGroup.md +23 -0
  36. data/docs/NotificationGroupDetail.md +27 -0
  37. data/docs/NotificationGroupsApi.md +194 -0
  38. data/docs/NotificationsApi.md +194 -0
  39. data/docs/OrderCreateParameters.md +2 -0
  40. data/docs/Project.md +2 -0
  41. data/docs/ProjectCreateParameters.md +35 -1
  42. data/docs/ProjectDetails.md +2 -0
  43. data/docs/ProjectsApi.md +7 -1
  44. data/docs/ScreenshotCreateParameters.md +3 -1
  45. data/docs/ScreenshotMarkerCreateParameters.md +3 -1
  46. data/docs/ScreenshotMarkerUpdateParameters.md +3 -1
  47. data/docs/ScreenshotMarkersApi.md +9 -3
  48. data/docs/ScreenshotUpdateParameters.md +3 -1
  49. data/docs/ScreenshotsApi.md +8 -2
  50. data/docs/SearchApi.md +72 -0
  51. data/docs/SearchInAccountParameters.md +23 -0
  52. data/docs/Space1.md +25 -0
  53. data/docs/Subscription.md +19 -0
  54. data/docs/TranslationOrder.md +2 -0
  55. data/docs/TranslationsApi.md +25 -25
  56. data/docs/User.md +0 -2
  57. data/docs/UsersApi.md +2 -2
  58. data/lib/phrase.rb +24 -0
  59. data/lib/phrase/api/job_template_locales_api.rb +417 -0
  60. data/lib/phrase/api/job_templates_api.rb +387 -0
  61. data/lib/phrase/api/keys_api.rb +158 -10
  62. data/lib/phrase/api/locales_api.rb +76 -5
  63. data/lib/phrase/api/notification_groups_api.rb +202 -0
  64. data/lib/phrase/api/notifications_api.rb +202 -0
  65. data/lib/phrase/api/projects_api.rb +9 -0
  66. data/lib/phrase/api/screenshot_markers_api.rb +9 -0
  67. data/lib/phrase/api/screenshots_api.rb +9 -0
  68. data/lib/phrase/api/search_api.rb +84 -0
  69. data/lib/phrase/api/translations_api.rb +35 -35
  70. data/lib/phrase/api/users_api.rb +3 -3
  71. data/lib/phrase/models/account.rb +13 -4
  72. data/lib/phrase/models/account_details.rb +22 -4
  73. data/lib/phrase/models/account_details1.rb +10 -1
  74. data/lib/phrase/models/account_search_result.rb +250 -0
  75. data/lib/phrase/models/branch.rb +19 -1
  76. data/lib/phrase/models/comment.rb +15 -4
  77. data/lib/phrase/models/current_user.rb +257 -0
  78. data/lib/phrase/models/job_create_parameters.rb +11 -1
  79. data/lib/phrase/models/job_details.rb +10 -1
  80. data/lib/phrase/models/job_details1.rb +10 -1
  81. data/lib/phrase/models/job_locale.rb +22 -4
  82. data/lib/phrase/models/job_template.rb +248 -0
  83. data/lib/phrase/models/job_template_create_parameters.rb +220 -0
  84. data/lib/phrase/models/job_template_locale.rb +223 -0
  85. data/lib/phrase/models/job_template_locale_update_parameters.rb +234 -0
  86. data/lib/phrase/models/job_template_locales_create_parameters.rb +234 -0
  87. data/lib/phrase/models/job_template_preview.rb +203 -0
  88. data/lib/phrase/models/job_template_update_parameters.rb +220 -0
  89. data/lib/phrase/models/job_template_user_preview.rb +221 -0
  90. data/lib/phrase/models/keys_exclude_parameters.rb +225 -0
  91. data/lib/phrase/models/keys_include_parameters.rb +225 -0
  92. data/lib/phrase/models/keys_search_parameters.rb +1 -1
  93. data/lib/phrase/models/keys_tag_parameters.rb +1 -1
  94. data/lib/phrase/models/keys_untag_parameters.rb +1 -1
  95. data/lib/phrase/models/locale_preview1.rb +221 -0
  96. data/lib/phrase/models/member_spaces.rb +2 -2
  97. data/lib/phrase/models/member_update_parameters.rb +12 -2
  98. data/lib/phrase/models/notification.rb +302 -0
  99. data/lib/phrase/models/notification_group.rb +221 -0
  100. data/lib/phrase/models/notification_group_detail.rb +239 -0
  101. data/lib/phrase/models/order_create_parameters.rb +11 -1
  102. data/lib/phrase/models/project.rb +10 -1
  103. data/lib/phrase/models/project_create_parameters.rb +174 -4
  104. data/lib/phrase/models/project_details.rb +10 -1
  105. data/lib/phrase/models/screenshot_create_parameters.rb +11 -1
  106. data/lib/phrase/models/screenshot_marker_create_parameters.rb +11 -1
  107. data/lib/phrase/models/screenshot_marker_update_parameters.rb +11 -1
  108. data/lib/phrase/models/screenshot_update_parameters.rb +11 -1
  109. data/lib/phrase/models/search_in_account_parameters.rb +225 -0
  110. data/lib/phrase/models/space1.rb +230 -0
  111. data/lib/phrase/models/subscription.rb +203 -0
  112. data/lib/phrase/models/translation_order.rb +10 -1
  113. data/lib/phrase/models/user.rb +1 -10
  114. data/lib/phrase/version.rb +1 -1
  115. data/spec/api/job_template_locales_api_spec.rb +103 -0
  116. data/spec/api/job_templates_api_spec.rb +98 -0
  117. data/spec/api/keys_api_spec.rb +32 -4
  118. data/spec/api/locales_api_spec.rb +17 -2
  119. data/spec/api/notification_groups_api_spec.rb +62 -0
  120. data/spec/api/notifications_api_spec.rb +62 -0
  121. data/spec/api/projects_api_spec.rb +3 -0
  122. data/spec/api/screenshot_markers_api_spec.rb +3 -0
  123. data/spec/api/screenshots_api_spec.rb +3 -0
  124. data/spec/api/search_api_spec.rb +37 -0
  125. data/spec/api/translations_api_spec.rb +10 -10
  126. data/spec/api/users_api_spec.rb +1 -1
  127. data/spec/models/account_details1_spec.rb +6 -0
  128. data/spec/models/account_details_spec.rb +12 -0
  129. data/spec/models/account_search_result_spec.rb +65 -0
  130. data/spec/models/account_spec.rb +6 -0
  131. data/spec/models/branch_spec.rb +12 -0
  132. data/spec/models/comment_spec.rb +6 -0
  133. data/spec/models/current_user_spec.rb +71 -0
  134. data/spec/models/job_create_parameters_spec.rb +6 -0
  135. data/spec/models/job_details1_spec.rb +6 -0
  136. data/spec/models/job_details_spec.rb +6 -0
  137. data/spec/models/job_locale_spec.rb +12 -0
  138. data/spec/models/job_template_create_parameters_spec.rb +41 -0
  139. data/spec/models/job_template_locale_spec.rb +47 -0
  140. data/spec/models/job_template_locale_update_parameters_spec.rb +47 -0
  141. data/spec/models/job_template_locales_create_parameters_spec.rb +47 -0
  142. data/spec/models/job_template_preview_spec.rb +35 -0
  143. data/spec/models/job_template_spec.rb +65 -0
  144. data/spec/models/job_template_update_parameters_spec.rb +41 -0
  145. data/spec/models/job_template_user_preview_spec.rb +47 -0
  146. data/spec/models/keys_exclude_parameters_spec.rb +47 -0
  147. data/spec/models/keys_include_parameters_spec.rb +47 -0
  148. data/spec/models/locale_preview1_spec.rb +47 -0
  149. data/spec/models/member_update_parameters_spec.rb +6 -0
  150. data/spec/models/notification_group_detail_spec.rb +59 -0
  151. data/spec/models/notification_group_spec.rb +47 -0
  152. data/spec/models/notification_spec.rb +101 -0
  153. data/spec/models/order_create_parameters_spec.rb +6 -0
  154. data/spec/models/project_create_parameters_spec.rb +102 -0
  155. data/spec/models/project_details_spec.rb +6 -0
  156. data/spec/models/project_spec.rb +6 -0
  157. data/spec/models/screenshot_create_parameters_spec.rb +6 -0
  158. data/spec/models/screenshot_marker_create_parameters_spec.rb +6 -0
  159. data/spec/models/screenshot_marker_update_parameters_spec.rb +6 -0
  160. data/spec/models/screenshot_update_parameters_spec.rb +6 -0
  161. data/spec/models/search_in_account_parameters_spec.rb +47 -0
  162. data/spec/models/space1_spec.rb +53 -0
  163. data/spec/models/subscription_spec.rb +35 -0
  164. data/spec/models/translation_order_spec.rb +6 -0
  165. data/spec/models/user_spec.rb +0 -6
  166. metadata +263 -167
@@ -11,7 +11,7 @@ module Phrase
11
11
  # Show details for current User.
12
12
  # @param [Hash] opts the optional parameters
13
13
  # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
14
- # @return [User]
14
+ # @return [CurrentUser]
15
15
  def show_user(opts = {})
16
16
  data, _status_code, _headers = show_user_with_http_info(opts)
17
17
  data
@@ -21,7 +21,7 @@ module Phrase
21
21
  # Show details for current User.
22
22
  # @param [Hash] opts the optional parameters
23
23
  # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
24
- # @return [Array<(Response<(User)>, Integer, Hash)>] Response<(User)> data, response status code and response headers
24
+ # @return [Array<(Response<(CurrentUser)>, Integer, Hash)>] Response<(CurrentUser)> data, response status code and response headers
25
25
  def show_user_with_http_info(opts = {})
26
26
  if @api_client.config.debugging
27
27
  @api_client.config.logger.debug 'Calling API: UsersApi.show_user ...'
@@ -45,7 +45,7 @@ module Phrase
45
45
  post_body = opts[:body]
46
46
 
47
47
  # return_type
48
- return_type = opts[:return_type] || 'User'
48
+ return_type = opts[:return_type] || 'CurrentUser'
49
49
 
50
50
  # auth_names
51
51
  auth_names = opts[:auth_names] || ['Basic', 'Token']
@@ -14,6 +14,8 @@ module Phrase
14
14
 
15
15
  attr_accessor :updated_at
16
16
 
17
+ attr_accessor :company_logo_url
18
+
17
19
  # Attribute mapping from ruby-style variable name to JSON key.
18
20
  def self.attribute_map
19
21
  {
@@ -22,7 +24,8 @@ module Phrase
22
24
  :'slug' => :'slug',
23
25
  :'company' => :'company',
24
26
  :'created_at' => :'created_at',
25
- :'updated_at' => :'updated_at'
27
+ :'updated_at' => :'updated_at',
28
+ :'company_logo_url' => :'company_logo_url'
26
29
  }
27
30
  end
28
31
 
@@ -34,7 +37,8 @@ module Phrase
34
37
  :'slug' => :'String',
35
38
  :'company' => :'String',
36
39
  :'created_at' => :'DateTime',
37
- :'updated_at' => :'DateTime'
40
+ :'updated_at' => :'DateTime',
41
+ :'company_logo_url' => :'String'
38
42
  }
39
43
  end
40
44
 
@@ -82,6 +86,10 @@ module Phrase
82
86
  if attributes.key?(:'updated_at')
83
87
  self.updated_at = attributes[:'updated_at']
84
88
  end
89
+
90
+ if attributes.key?(:'company_logo_url')
91
+ self.company_logo_url = attributes[:'company_logo_url']
92
+ end
85
93
  end
86
94
 
87
95
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -107,7 +115,8 @@ module Phrase
107
115
  slug == o.slug &&
108
116
  company == o.company &&
109
117
  created_at == o.created_at &&
110
- updated_at == o.updated_at
118
+ updated_at == o.updated_at &&
119
+ company_logo_url == o.company_logo_url
111
120
  end
112
121
 
113
122
  # @see the `==` method
@@ -119,7 +128,7 @@ module Phrase
119
128
  # Calculates hash code according to all attributes.
120
129
  # @return [Integer] Hash code
121
130
  def hash
122
- [id, name, slug, company, created_at, updated_at].hash
131
+ [id, name, slug, company, created_at, updated_at, company_logo_url].hash
123
132
  end
124
133
 
125
134
  # Builds the object from hash
@@ -14,6 +14,10 @@ module Phrase
14
14
 
15
15
  attr_accessor :updated_at
16
16
 
17
+ attr_accessor :company_logo_url
18
+
19
+ attr_accessor :subscription
20
+
17
21
  # Attribute mapping from ruby-style variable name to JSON key.
18
22
  def self.attribute_map
19
23
  {
@@ -22,7 +26,9 @@ module Phrase
22
26
  :'slug' => :'slug',
23
27
  :'company' => :'company',
24
28
  :'created_at' => :'created_at',
25
- :'updated_at' => :'updated_at'
29
+ :'updated_at' => :'updated_at',
30
+ :'company_logo_url' => :'company_logo_url',
31
+ :'subscription' => :'subscription'
26
32
  }
27
33
  end
28
34
 
@@ -34,7 +40,9 @@ module Phrase
34
40
  :'slug' => :'String',
35
41
  :'company' => :'String',
36
42
  :'created_at' => :'DateTime',
37
- :'updated_at' => :'DateTime'
43
+ :'updated_at' => :'DateTime',
44
+ :'company_logo_url' => :'String',
45
+ :'subscription' => :'Subscription'
38
46
  }
39
47
  end
40
48
 
@@ -90,6 +98,14 @@ module Phrase
90
98
  if attributes.key?(:'updated_at')
91
99
  self.updated_at = attributes[:'updated_at']
92
100
  end
101
+
102
+ if attributes.key?(:'company_logo_url')
103
+ self.company_logo_url = attributes[:'company_logo_url']
104
+ end
105
+
106
+ if attributes.key?(:'subscription')
107
+ self.subscription = attributes[:'subscription']
108
+ end
93
109
  end
94
110
 
95
111
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -115,7 +131,9 @@ module Phrase
115
131
  slug == o.slug &&
116
132
  company == o.company &&
117
133
  created_at == o.created_at &&
118
- updated_at == o.updated_at
134
+ updated_at == o.updated_at &&
135
+ company_logo_url == o.company_logo_url &&
136
+ subscription == o.subscription
119
137
  end
120
138
 
121
139
  # @see the `==` method
@@ -127,7 +145,7 @@ module Phrase
127
145
  # Calculates hash code according to all attributes.
128
146
  # @return [Integer] Hash code
129
147
  def hash
130
- [id, name, slug, company, created_at, updated_at].hash
148
+ [id, name, slug, company, created_at, updated_at, company_logo_url, subscription].hash
131
149
  end
132
150
 
133
151
  # Builds the object from hash
@@ -2,11 +2,14 @@ require 'date'
2
2
 
3
3
  module Phrase
4
4
  class AccountDetails1
5
+ attr_accessor :subscription
6
+
5
7
  attr_accessor :slug
6
8
 
7
9
  # Attribute mapping from ruby-style variable name to JSON key.
8
10
  def self.attribute_map
9
11
  {
12
+ :'subscription' => :'subscription',
10
13
  :'slug' => :'slug'
11
14
  }
12
15
  end
@@ -14,6 +17,7 @@ module Phrase
14
17
  # Attribute type mapping.
15
18
  def self.openapi_types
16
19
  {
20
+ :'subscription' => :'Subscription',
17
21
  :'slug' => :'String'
18
22
  }
19
23
  end
@@ -39,6 +43,10 @@ module Phrase
39
43
  h[k.to_sym] = v
40
44
  }
41
45
 
46
+ if attributes.key?(:'subscription')
47
+ self.subscription = attributes[:'subscription']
48
+ end
49
+
42
50
  if attributes.key?(:'slug')
43
51
  self.slug = attributes[:'slug']
44
52
  end
@@ -62,6 +70,7 @@ module Phrase
62
70
  def ==(o)
63
71
  return true if self.equal?(o)
64
72
  self.class == o.class &&
73
+ subscription == o.subscription &&
65
74
  slug == o.slug
66
75
  end
67
76
 
@@ -74,7 +83,7 @@ module Phrase
74
83
  # Calculates hash code according to all attributes.
75
84
  # @return [Integer] Hash code
76
85
  def hash
77
- [slug].hash
86
+ [subscription, slug].hash
78
87
  end
79
88
 
80
89
  # Builds the object from hash
@@ -0,0 +1,250 @@
1
+ require 'date'
2
+
3
+ module Phrase
4
+ class AccountSearchResult
5
+ attr_accessor :query
6
+
7
+ attr_accessor :excerpt
8
+
9
+ attr_accessor :key
10
+
11
+ attr_accessor :locale
12
+
13
+ attr_accessor :project
14
+
15
+ attr_accessor :translation
16
+
17
+ attr_accessor :other_translations
18
+
19
+ # Attribute mapping from ruby-style variable name to JSON key.
20
+ def self.attribute_map
21
+ {
22
+ :'query' => :'query',
23
+ :'excerpt' => :'excerpt',
24
+ :'key' => :'key',
25
+ :'locale' => :'locale',
26
+ :'project' => :'project',
27
+ :'translation' => :'translation',
28
+ :'other_translations' => :'other_translations'
29
+ }
30
+ end
31
+
32
+ # Attribute type mapping.
33
+ def self.openapi_types
34
+ {
35
+ :'query' => :'String',
36
+ :'excerpt' => :'String',
37
+ :'key' => :'KeyPreview',
38
+ :'locale' => :'LocalePreview',
39
+ :'project' => :'Project',
40
+ :'translation' => :'Translation',
41
+ :'other_translations' => :'Array<Translation>'
42
+ }
43
+ end
44
+
45
+ # List of attributes with nullable: true
46
+ def self.openapi_nullable
47
+ Set.new([
48
+ ])
49
+ end
50
+
51
+ # Initializes the object
52
+ # @param [Hash] attributes Model attributes in the form of hash
53
+ def initialize(attributes = {})
54
+ if (!attributes.is_a?(Hash))
55
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Phrase::AccountSearchResult` initialize method"
56
+ end
57
+
58
+ # check to see if the attribute exists and convert string to symbol for hash key
59
+ attributes = attributes.each_with_object({}) { |(k, v), h|
60
+ if (!self.class.attribute_map.key?(k.to_sym))
61
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Phrase::AccountSearchResult`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
62
+ end
63
+ h[k.to_sym] = v
64
+ }
65
+
66
+ if attributes.key?(:'query')
67
+ self.query = attributes[:'query']
68
+ end
69
+
70
+ if attributes.key?(:'excerpt')
71
+ self.excerpt = attributes[:'excerpt']
72
+ end
73
+
74
+ if attributes.key?(:'key')
75
+ self.key = attributes[:'key']
76
+ end
77
+
78
+ if attributes.key?(:'locale')
79
+ self.locale = attributes[:'locale']
80
+ end
81
+
82
+ if attributes.key?(:'project')
83
+ self.project = attributes[:'project']
84
+ end
85
+
86
+ if attributes.key?(:'translation')
87
+ self.translation = attributes[:'translation']
88
+ end
89
+
90
+ if attributes.key?(:'other_translations')
91
+ if (value = attributes[:'other_translations']).is_a?(Array)
92
+ self.other_translations = value
93
+ end
94
+ end
95
+ end
96
+
97
+ # Show invalid properties with the reasons. Usually used together with valid?
98
+ # @return Array for valid properties with the reasons
99
+ def list_invalid_properties
100
+ invalid_properties = Array.new
101
+ invalid_properties
102
+ end
103
+
104
+ # Check to see if the all the properties in the model are valid
105
+ # @return true if the model is valid
106
+ def valid?
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
+ query == o.query &&
116
+ excerpt == o.excerpt &&
117
+ key == o.key &&
118
+ locale == o.locale &&
119
+ project == o.project &&
120
+ translation == o.translation &&
121
+ other_translations == o.other_translations
122
+ end
123
+
124
+ # @see the `==` method
125
+ # @param [Object] Object to be compared
126
+ def eql?(o)
127
+ self == o
128
+ end
129
+
130
+ # Calculates hash code according to all attributes.
131
+ # @return [Integer] Hash code
132
+ def hash
133
+ [query, excerpt, key, locale, project, translation, other_translations].hash
134
+ end
135
+
136
+ # Builds the object from hash
137
+ # @param [Hash] attributes Model attributes in the form of hash
138
+ # @return [Object] Returns the model itself
139
+ def self.build_from_hash(attributes)
140
+ new.build_from_hash(attributes)
141
+ end
142
+
143
+ # Builds the object from hash
144
+ # @param [Hash] attributes Model attributes in the form of hash
145
+ # @return [Object] Returns the model itself
146
+ def build_from_hash(attributes)
147
+ return nil unless attributes.is_a?(Hash)
148
+ self.class.openapi_types.each_pair do |key, type|
149
+ if type =~ /\AArray<(.*)>/i
150
+ # check to ensure the input is an array given that the attribute
151
+ # is documented as an array but the input is not
152
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
153
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
154
+ end
155
+ elsif !attributes[self.class.attribute_map[key]].nil?
156
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
157
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
158
+ end
159
+
160
+ self
161
+ end
162
+
163
+ # Deserializes the data based on type
164
+ # @param string type Data type
165
+ # @param string value Value to be deserialized
166
+ # @return [Object] Deserialized data
167
+ def _deserialize(type, value)
168
+ case type.to_sym
169
+ when :DateTime
170
+ DateTime.parse(value)
171
+ when :Date
172
+ Date.parse(value)
173
+ when :String
174
+ value.to_s
175
+ when :Integer
176
+ value.to_i
177
+ when :Float
178
+ value.to_f
179
+ when :Boolean
180
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
181
+ true
182
+ else
183
+ false
184
+ end
185
+ when :Object
186
+ # generic object (usually a Hash), return directly
187
+ value
188
+ when /\AArray<(?<inner_type>.+)>\z/
189
+ inner_type = Regexp.last_match[:inner_type]
190
+ value.map { |v| _deserialize(inner_type, v) }
191
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
192
+ k_type = Regexp.last_match[:k_type]
193
+ v_type = Regexp.last_match[:v_type]
194
+ {}.tap do |hash|
195
+ value.each do |k, v|
196
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
197
+ end
198
+ end
199
+ else # model
200
+ Phrase.const_get(type).build_from_hash(value)
201
+ end
202
+ end
203
+
204
+ # Returns the string representation of the object
205
+ # @return [String] String presentation of the object
206
+ def to_s
207
+ to_hash.to_s
208
+ end
209
+
210
+ # to_body is an alias to to_hash (backward compatibility)
211
+ # @return [Hash] Returns the object in the form of hash
212
+ def to_body
213
+ to_hash
214
+ end
215
+
216
+ # Returns the object in the form of hash
217
+ # @return [Hash] Returns the object in the form of hash
218
+ def to_hash
219
+ hash = {}
220
+ self.class.attribute_map.each_pair do |attr, param|
221
+ value = self.send(attr)
222
+ if value.nil?
223
+ is_nullable = self.class.openapi_nullable.include?(attr)
224
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
225
+ end
226
+
227
+ hash[param] = _to_hash(value)
228
+ end
229
+ hash
230
+ end
231
+
232
+ # Outputs non-array value in the form of hash
233
+ # For object, use to_hash. Otherwise, just return the value
234
+ # @param [Object] value Any valid value
235
+ # @return [Hash] Returns the value in the form of hash
236
+ def _to_hash(value)
237
+ if value.is_a?(Array)
238
+ value.compact.map { |v| _to_hash(v) }
239
+ elsif value.is_a?(Hash)
240
+ {}.tap do |hash|
241
+ value.each { |k, v| hash[k] = _to_hash(v) }
242
+ end
243
+ elsif value.respond_to? :to_hash
244
+ value.to_hash
245
+ else
246
+ value
247
+ end
248
+ end
249
+ end
250
+ end