phrase 2.8.3 → 2.9.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.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +31 -12
  4. data/docs/BitbucketSyncApi.md +2 -2
  5. data/docs/BranchesApi.md +3 -3
  6. data/docs/GitHubSyncApi.md +2 -2
  7. data/docs/GitLabSyncApi.md +2 -2
  8. data/docs/JobCommentsApi.md +6 -6
  9. data/docs/JobLocale.md +3 -1
  10. data/docs/JobLocaleUpdateParameters.md +5 -1
  11. data/docs/JobLocalesCreateParameters.md +6 -2
  12. data/docs/JobTemplateDetails.md +35 -0
  13. data/docs/JobTemplateDetails1.md +21 -0
  14. data/docs/JobTemplateLocaleUpdateParameters.md +6 -2
  15. data/docs/{JobTemplateLocale.md → JobTemplateLocales.md} +6 -4
  16. data/docs/JobTemplateLocalesApi.md +8 -8
  17. data/docs/JobTemplateLocalesCreateParameters.md +5 -1
  18. data/docs/JobTemplatesApi.md +41 -41
  19. data/docs/KeysSearchParameters.md +1 -1
  20. data/docs/LocaleTeamPreview.md +21 -0
  21. data/docs/{JobTemplateUserPreview.md → LocaleUserPreview.md} +2 -2
  22. data/docs/LocalesApi.md +8 -4
  23. data/docs/NotificationGroupDetail.md +1 -1
  24. data/docs/NotificationGroupsApi.md +4 -4
  25. data/docs/NotificationsApi.md +4 -4
  26. data/docs/OrganizationJobTemplate.md +25 -0
  27. data/docs/OrganizationJobTemplateCreateParameters.md +19 -0
  28. data/docs/OrganizationJobTemplateDetails.md +31 -0
  29. data/docs/OrganizationJobTemplateLocaleUpdateParameters.md +27 -0
  30. data/docs/OrganizationJobTemplateLocalesApi.md +341 -0
  31. data/docs/OrganizationJobTemplateLocalesCreateParameters.md +27 -0
  32. data/docs/OrganizationJobTemplateUpdateParameters.md +19 -0
  33. data/docs/OrganizationJobTemplatesApi.md +331 -0
  34. data/docs/Project.md +2 -0
  35. data/docs/ProjectCreateParameters.md +5 -1
  36. data/docs/ProjectDetails.md +2 -0
  37. data/docs/ProjectUpdateParameters.md +5 -1
  38. data/docs/SearchApi.md +1 -1
  39. data/docs/TranslationsApi.md +23 -19
  40. data/docs/TranslationsExcludeParameters.md +1 -1
  41. data/docs/TranslationsIncludeParameters.md +1 -1
  42. data/docs/TranslationsReviewParameters.md +1 -1
  43. data/docs/TranslationsSearchParameters.md +1 -1
  44. data/docs/TranslationsUnverifyParameters.md +1 -1
  45. data/docs/TranslationsVerifyParameters.md +1 -1
  46. data/docs/UploadsApi.md +3 -3
  47. data/lib/phrase/api/bitbucket_sync_api.rb +4 -4
  48. data/lib/phrase/api/branches_api.rb +6 -6
  49. data/lib/phrase/api/git_hub_sync_api.rb +4 -4
  50. data/lib/phrase/api/git_lab_sync_api.rb +4 -4
  51. data/lib/phrase/api/job_comments_api.rb +9 -9
  52. data/lib/phrase/api/job_template_locales_api.rb +12 -12
  53. data/lib/phrase/api/job_templates_api.rb +72 -72
  54. data/lib/phrase/api/locales_api.rb +10 -4
  55. data/lib/phrase/api/notification_groups_api.rb +6 -6
  56. data/lib/phrase/api/notifications_api.rb +6 -6
  57. data/lib/phrase/api/organization_job_template_locales_api.rb +408 -0
  58. data/lib/phrase/api/organization_job_templates_api.rb +378 -0
  59. data/lib/phrase/api/search_api.rb +2 -2
  60. data/lib/phrase/api/translations_api.rb +20 -14
  61. data/lib/phrase/api/uploads_api.rb +2 -2
  62. data/lib/phrase/models/job_locale.rb +13 -2
  63. data/lib/phrase/models/job_locale_update_parameters.rb +28 -4
  64. data/lib/phrase/models/job_locales_create_parameters.rb +33 -4
  65. data/lib/phrase/models/job_template_details.rb +285 -0
  66. data/lib/phrase/models/job_template_details1.rb +214 -0
  67. data/lib/phrase/models/job_template_locale_update_parameters.rb +28 -9
  68. data/lib/phrase/models/{job_template_locale.rb → job_template_locales.rb} +18 -7
  69. data/lib/phrase/models/job_template_locales_create_parameters.rb +28 -4
  70. data/lib/phrase/models/keys_search_parameters.rb +1 -1
  71. data/lib/phrase/models/locale_team_preview.rb +212 -0
  72. data/lib/phrase/models/{job_template_user_preview.rb → locale_user_preview.rb} +3 -3
  73. data/lib/phrase/models/notification_group_detail.rb +1 -1
  74. data/lib/phrase/models/organization_job_template.rb +230 -0
  75. data/lib/phrase/models/organization_job_template_create_parameters.rb +210 -0
  76. data/lib/phrase/models/organization_job_template_details.rb +267 -0
  77. data/lib/phrase/models/organization_job_template_locale_update_parameters.rb +253 -0
  78. data/lib/phrase/models/organization_job_template_locales_create_parameters.rb +263 -0
  79. data/lib/phrase/models/organization_job_template_update_parameters.rb +210 -0
  80. data/lib/phrase/models/project.rb +10 -1
  81. data/lib/phrase/models/project_create_parameters.rb +22 -2
  82. data/lib/phrase/models/project_details.rb +10 -1
  83. data/lib/phrase/models/project_update_parameters.rb +22 -2
  84. data/lib/phrase/models/translations_exclude_parameters.rb +1 -1
  85. data/lib/phrase/models/translations_include_parameters.rb +1 -1
  86. data/lib/phrase/models/translations_review_parameters.rb +1 -1
  87. data/lib/phrase/models/translations_search_parameters.rb +1 -1
  88. data/lib/phrase/models/translations_unverify_parameters.rb +1 -1
  89. data/lib/phrase/models/translations_verify_parameters.rb +1 -1
  90. data/lib/phrase/version.rb +1 -1
  91. data/lib/phrase.rb +13 -2
  92. data/spec/api/bitbucket_sync_api_spec.rb +2 -2
  93. data/spec/api/branches_api_spec.rb +3 -3
  94. data/spec/api/git_hub_sync_api_spec.rb +2 -2
  95. data/spec/api/git_lab_sync_api_spec.rb +2 -2
  96. data/spec/api/job_comments_api_spec.rb +3 -3
  97. data/spec/api/job_template_locales_api_spec.rb +4 -4
  98. data/spec/api/job_templates_api_spec.rb +17 -17
  99. data/spec/api/locales_api_spec.rb +4 -2
  100. data/spec/api/notification_groups_api_spec.rb +2 -2
  101. data/spec/api/notifications_api_spec.rb +2 -2
  102. data/spec/api/organization_job_template_locales_api_spec.rb +100 -0
  103. data/spec/api/organization_job_templates_api_spec.rb +95 -0
  104. data/spec/api/search_api_spec.rb +1 -1
  105. data/spec/api/translations_api_spec.rb +9 -7
  106. data/spec/api/uploads_api_spec.rb +1 -1
  107. data/spec/models/job_locale_spec.rb +6 -0
  108. data/spec/models/job_locale_update_parameters_spec.rb +12 -0
  109. data/spec/models/job_locales_create_parameters_spec.rb +12 -0
  110. data/spec/models/job_template_details1_spec.rb +41 -0
  111. data/spec/models/job_template_details_spec.rb +83 -0
  112. data/spec/models/job_template_locale_update_parameters_spec.rb +12 -0
  113. data/spec/models/job_template_locales_create_parameters_spec.rb +12 -0
  114. data/spec/models/{job_template_locale_spec.rb → job_template_locales_spec.rb} +12 -6
  115. data/spec/models/locale_team_preview_spec.rb +41 -0
  116. data/spec/models/{job_template_user_preview_spec.rb → locale_user_preview_spec.rb} +6 -6
  117. data/spec/models/organization_job_template_create_parameters_spec.rb +35 -0
  118. data/spec/models/organization_job_template_details_spec.rb +71 -0
  119. data/spec/models/organization_job_template_locale_update_parameters_spec.rb +59 -0
  120. data/spec/models/organization_job_template_locales_create_parameters_spec.rb +59 -0
  121. data/spec/models/organization_job_template_spec.rb +53 -0
  122. data/spec/models/organization_job_template_update_parameters_spec.rb +35 -0
  123. data/spec/models/project_create_parameters_spec.rb +12 -0
  124. data/spec/models/project_details_spec.rb +6 -0
  125. data/spec/models/project_spec.rb +6 -0
  126. data/spec/models/project_update_parameters_spec.rb +12 -0
  127. metadata +269 -225
@@ -14,13 +14,21 @@ module Phrase
14
14
  # Array of reviewer ids to be assigned to the job locale as reviewers
15
15
  attr_accessor :reviewer_ids
16
16
 
17
+ # Array of team ids to be assigned to the job locale as translators
18
+ attr_accessor :translator_team_ids
19
+
20
+ # Array of team ids to be assigned to the job locale as reviewers
21
+ attr_accessor :reviewer_team_ids
22
+
17
23
  # Attribute mapping from ruby-style variable name to JSON key.
18
24
  def self.attribute_map
19
25
  {
20
26
  :'branch' => :'branch',
21
27
  :'locale_id' => :'locale_id',
22
28
  :'user_ids' => :'user_ids',
23
- :'reviewer_ids' => :'reviewer_ids'
29
+ :'reviewer_ids' => :'reviewer_ids',
30
+ :'translator_team_ids' => :'translator_team_ids',
31
+ :'reviewer_team_ids' => :'reviewer_team_ids'
24
32
  }
25
33
  end
26
34
 
@@ -30,7 +38,9 @@ module Phrase
30
38
  :'branch' => :'String',
31
39
  :'locale_id' => :'String',
32
40
  :'user_ids' => :'Array<String>',
33
- :'reviewer_ids' => :'Array<String>'
41
+ :'reviewer_ids' => :'Array<String>',
42
+ :'translator_team_ids' => :'Array<String>',
43
+ :'reviewer_team_ids' => :'Array<String>'
34
44
  }
35
45
  end
36
46
 
@@ -74,6 +84,18 @@ module Phrase
74
84
  self.reviewer_ids = value
75
85
  end
76
86
  end
87
+
88
+ if attributes.key?(:'translator_team_ids')
89
+ if (value = attributes[:'translator_team_ids']).is_a?(Array)
90
+ self.translator_team_ids = value
91
+ end
92
+ end
93
+
94
+ if attributes.key?(:'reviewer_team_ids')
95
+ if (value = attributes[:'reviewer_team_ids']).is_a?(Array)
96
+ self.reviewer_team_ids = value
97
+ end
98
+ end
77
99
  end
78
100
 
79
101
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -97,7 +119,9 @@ module Phrase
97
119
  branch == o.branch &&
98
120
  locale_id == o.locale_id &&
99
121
  user_ids == o.user_ids &&
100
- reviewer_ids == o.reviewer_ids
122
+ reviewer_ids == o.reviewer_ids &&
123
+ translator_team_ids == o.translator_team_ids &&
124
+ reviewer_team_ids == o.reviewer_team_ids
101
125
  end
102
126
 
103
127
  # @see the `==` method
@@ -109,7 +133,7 @@ module Phrase
109
133
  # Calculates hash code according to all attributes.
110
134
  # @return [Integer] Hash code
111
135
  def hash
112
- [branch, locale_id, user_ids, reviewer_ids].hash
136
+ [branch, locale_id, user_ids, reviewer_ids, translator_team_ids, reviewer_team_ids].hash
113
137
  end
114
138
 
115
139
  # Builds the object from hash
@@ -14,13 +14,21 @@ module Phrase
14
14
  # Array of reviewer ids to be assigned to the job locale as reviewers
15
15
  attr_accessor :reviewer_ids
16
16
 
17
+ # Array of team ids to be assigned to the job locale as translators
18
+ attr_accessor :translator_team_ids
19
+
20
+ # Array of team ids to be assigned to the job locale as reviewers
21
+ attr_accessor :reviewer_team_ids
22
+
17
23
  # Attribute mapping from ruby-style variable name to JSON key.
18
24
  def self.attribute_map
19
25
  {
20
26
  :'branch' => :'branch',
21
27
  :'locale_id' => :'locale_id',
22
28
  :'user_ids' => :'user_ids',
23
- :'reviewer_ids' => :'reviewer_ids'
29
+ :'reviewer_ids' => :'reviewer_ids',
30
+ :'translator_team_ids' => :'translator_team_ids',
31
+ :'reviewer_team_ids' => :'reviewer_team_ids'
24
32
  }
25
33
  end
26
34
 
@@ -30,7 +38,9 @@ module Phrase
30
38
  :'branch' => :'String',
31
39
  :'locale_id' => :'String',
32
40
  :'user_ids' => :'Array<String>',
33
- :'reviewer_ids' => :'Array<String>'
41
+ :'reviewer_ids' => :'Array<String>',
42
+ :'translator_team_ids' => :'Array<String>',
43
+ :'reviewer_team_ids' => :'Array<String>'
34
44
  }
35
45
  end
36
46
 
@@ -74,18 +84,35 @@ module Phrase
74
84
  self.reviewer_ids = value
75
85
  end
76
86
  end
87
+
88
+ if attributes.key?(:'translator_team_ids')
89
+ if (value = attributes[:'translator_team_ids']).is_a?(Array)
90
+ self.translator_team_ids = value
91
+ end
92
+ end
93
+
94
+ if attributes.key?(:'reviewer_team_ids')
95
+ if (value = attributes[:'reviewer_team_ids']).is_a?(Array)
96
+ self.reviewer_team_ids = value
97
+ end
98
+ end
77
99
  end
78
100
 
79
101
  # Show invalid properties with the reasons. Usually used together with valid?
80
102
  # @return Array for valid properties with the reasons
81
103
  def list_invalid_properties
82
104
  invalid_properties = Array.new
105
+ if @locale_id.nil?
106
+ invalid_properties.push('invalid value for "locale_id", locale_id cannot be nil.')
107
+ end
108
+
83
109
  invalid_properties
84
110
  end
85
111
 
86
112
  # Check to see if the all the properties in the model are valid
87
113
  # @return true if the model is valid
88
114
  def valid?
115
+ return false if @locale_id.nil?
89
116
  true
90
117
  end
91
118
 
@@ -97,7 +124,9 @@ module Phrase
97
124
  branch == o.branch &&
98
125
  locale_id == o.locale_id &&
99
126
  user_ids == o.user_ids &&
100
- reviewer_ids == o.reviewer_ids
127
+ reviewer_ids == o.reviewer_ids &&
128
+ translator_team_ids == o.translator_team_ids &&
129
+ reviewer_team_ids == o.reviewer_team_ids
101
130
  end
102
131
 
103
132
  # @see the `==` method
@@ -109,7 +138,7 @@ module Phrase
109
138
  # Calculates hash code according to all attributes.
110
139
  # @return [Integer] Hash code
111
140
  def hash
112
- [branch, locale_id, user_ids, reviewer_ids].hash
141
+ [branch, locale_id, user_ids, reviewer_ids, translator_team_ids, reviewer_team_ids].hash
113
142
  end
114
143
 
115
144
  # Builds the object from hash
@@ -0,0 +1,285 @@
1
+ require 'date'
2
+
3
+ module Phrase
4
+ class JobTemplateDetails
5
+ attr_accessor :id
6
+
7
+ attr_accessor :name
8
+
9
+ attr_accessor :briefing
10
+
11
+ attr_accessor :project
12
+
13
+ attr_accessor :branch
14
+
15
+ attr_accessor :created_at
16
+
17
+ attr_accessor :updated_at
18
+
19
+ attr_accessor :owner
20
+
21
+ attr_accessor :creator
22
+
23
+ attr_accessor :locales
24
+
25
+ # Attribute mapping from ruby-style variable name to JSON key.
26
+ def self.attribute_map
27
+ {
28
+ :'id' => :'id',
29
+ :'name' => :'name',
30
+ :'briefing' => :'briefing',
31
+ :'project' => :'project',
32
+ :'branch' => :'branch',
33
+ :'created_at' => :'created_at',
34
+ :'updated_at' => :'updated_at',
35
+ :'owner' => :'owner',
36
+ :'creator' => :'creator',
37
+ :'locales' => :'locales'
38
+ }
39
+ end
40
+
41
+ # Attribute type mapping.
42
+ def self.openapi_types
43
+ {
44
+ :'id' => :'String',
45
+ :'name' => :'String',
46
+ :'briefing' => :'String',
47
+ :'project' => :'ProjectShort',
48
+ :'branch' => :'Branch',
49
+ :'created_at' => :'DateTime',
50
+ :'updated_at' => :'DateTime',
51
+ :'owner' => :'UserPreview',
52
+ :'creator' => :'UserPreview',
53
+ :'locales' => :'Array<LocalePreview>'
54
+ }
55
+ end
56
+
57
+ # List of attributes with nullable: true
58
+ def self.openapi_nullable
59
+ Set.new([
60
+ ])
61
+ end
62
+
63
+ # List of class defined in allOf (OpenAPI v3)
64
+ def self.openapi_all_of
65
+ [
66
+ :'JobTemplate',
67
+ :'JobTemplateDetails1'
68
+ ]
69
+ end
70
+
71
+ # Initializes the object
72
+ # @param [Hash] attributes Model attributes in the form of hash
73
+ def initialize(attributes = {})
74
+ if (!attributes.is_a?(Hash))
75
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Phrase::JobTemplateDetails` initialize method"
76
+ end
77
+
78
+ # check to see if the attribute exists and convert string to symbol for hash key
79
+ attributes = attributes.each_with_object({}) { |(k, v), h|
80
+ if (!self.class.attribute_map.key?(k.to_sym))
81
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Phrase::JobTemplateDetails`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
82
+ end
83
+ h[k.to_sym] = v
84
+ }
85
+
86
+ if attributes.key?(:'id')
87
+ self.id = attributes[:'id']
88
+ end
89
+
90
+ if attributes.key?(:'name')
91
+ self.name = attributes[:'name']
92
+ end
93
+
94
+ if attributes.key?(:'briefing')
95
+ self.briefing = attributes[:'briefing']
96
+ end
97
+
98
+ if attributes.key?(:'project')
99
+ self.project = attributes[:'project']
100
+ end
101
+
102
+ if attributes.key?(:'branch')
103
+ self.branch = attributes[:'branch']
104
+ end
105
+
106
+ if attributes.key?(:'created_at')
107
+ self.created_at = attributes[:'created_at']
108
+ end
109
+
110
+ if attributes.key?(:'updated_at')
111
+ self.updated_at = attributes[:'updated_at']
112
+ end
113
+
114
+ if attributes.key?(:'owner')
115
+ self.owner = attributes[:'owner']
116
+ end
117
+
118
+ if attributes.key?(:'creator')
119
+ self.creator = attributes[:'creator']
120
+ end
121
+
122
+ if attributes.key?(:'locales')
123
+ if (value = attributes[:'locales']).is_a?(Array)
124
+ self.locales = value
125
+ end
126
+ end
127
+ end
128
+
129
+ # Show invalid properties with the reasons. Usually used together with valid?
130
+ # @return Array for valid properties with the reasons
131
+ def list_invalid_properties
132
+ invalid_properties = Array.new
133
+ invalid_properties
134
+ end
135
+
136
+ # Check to see if the all the properties in the model are valid
137
+ # @return true if the model is valid
138
+ def valid?
139
+ true
140
+ end
141
+
142
+ # Checks equality by comparing each attribute.
143
+ # @param [Object] Object to be compared
144
+ def ==(o)
145
+ return true if self.equal?(o)
146
+ self.class == o.class &&
147
+ id == o.id &&
148
+ name == o.name &&
149
+ briefing == o.briefing &&
150
+ project == o.project &&
151
+ branch == o.branch &&
152
+ created_at == o.created_at &&
153
+ updated_at == o.updated_at &&
154
+ owner == o.owner &&
155
+ creator == o.creator &&
156
+ locales == o.locales
157
+ end
158
+
159
+ # @see the `==` method
160
+ # @param [Object] Object to be compared
161
+ def eql?(o)
162
+ self == o
163
+ end
164
+
165
+ # Calculates hash code according to all attributes.
166
+ # @return [Integer] Hash code
167
+ def hash
168
+ [id, name, briefing, project, branch, created_at, updated_at, owner, creator, locales].hash
169
+ end
170
+
171
+ # Builds the object from hash
172
+ # @param [Hash] attributes Model attributes in the form of hash
173
+ # @return [Object] Returns the model itself
174
+ def self.build_from_hash(attributes)
175
+ new.build_from_hash(attributes)
176
+ end
177
+
178
+ # Builds the object from hash
179
+ # @param [Hash] attributes Model attributes in the form of hash
180
+ # @return [Object] Returns the model itself
181
+ def build_from_hash(attributes)
182
+ return nil unless attributes.is_a?(Hash)
183
+ self.class.openapi_types.each_pair do |key, type|
184
+ if type =~ /\AArray<(.*)>/i
185
+ # check to ensure the input is an array given that the attribute
186
+ # is documented as an array but the input is not
187
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
188
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
189
+ end
190
+ elsif !attributes[self.class.attribute_map[key]].nil?
191
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
192
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
193
+ end
194
+
195
+ self
196
+ end
197
+
198
+ # Deserializes the data based on type
199
+ # @param string type Data type
200
+ # @param string value Value to be deserialized
201
+ # @return [Object] Deserialized data
202
+ def _deserialize(type, value)
203
+ case type.to_sym
204
+ when :DateTime
205
+ DateTime.parse(value)
206
+ when :Date
207
+ Date.parse(value)
208
+ when :String
209
+ value.to_s
210
+ when :Integer
211
+ value.to_i
212
+ when :Float
213
+ value.to_f
214
+ when :Boolean
215
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
216
+ true
217
+ else
218
+ false
219
+ end
220
+ when :Object
221
+ # generic object (usually a Hash), return directly
222
+ value
223
+ when /\AArray<(?<inner_type>.+)>\z/
224
+ inner_type = Regexp.last_match[:inner_type]
225
+ value.map { |v| _deserialize(inner_type, v) }
226
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
227
+ k_type = Regexp.last_match[:k_type]
228
+ v_type = Regexp.last_match[:v_type]
229
+ {}.tap do |hash|
230
+ value.each do |k, v|
231
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
232
+ end
233
+ end
234
+ else # model
235
+ Phrase.const_get(type).build_from_hash(value)
236
+ end
237
+ end
238
+
239
+ # Returns the string representation of the object
240
+ # @return [String] String presentation of the object
241
+ def to_s
242
+ to_hash.to_s
243
+ end
244
+
245
+ # to_body is an alias to to_hash (backward compatibility)
246
+ # @return [Hash] Returns the object in the form of hash
247
+ def to_body
248
+ to_hash
249
+ end
250
+
251
+ # Returns the object in the form of hash
252
+ # @return [Hash] Returns the object in the form of hash
253
+ def to_hash
254
+ hash = {}
255
+ self.class.attribute_map.each_pair do |attr, param|
256
+ value = self.send(attr)
257
+ if value.nil?
258
+ is_nullable = self.class.openapi_nullable.include?(attr)
259
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
260
+ end
261
+
262
+ hash[param] = _to_hash(value)
263
+ end
264
+ hash
265
+ end
266
+
267
+ # Outputs non-array value in the form of hash
268
+ # For object, use to_hash. Otherwise, just return the value
269
+ # @param [Object] value Any valid value
270
+ # @return [Hash] Returns the value in the form of hash
271
+ def _to_hash(value)
272
+ if value.is_a?(Array)
273
+ value.compact.map { |v| _to_hash(v) }
274
+ elsif value.is_a?(Hash)
275
+ {}.tap do |hash|
276
+ value.each { |k, v| hash[k] = _to_hash(v) }
277
+ end
278
+ elsif value.respond_to? :to_hash
279
+ value.to_hash
280
+ else
281
+ value
282
+ end
283
+ end
284
+ end
285
+ end
@@ -0,0 +1,214 @@
1
+ require 'date'
2
+
3
+ module Phrase
4
+ class JobTemplateDetails1
5
+ attr_accessor :owner
6
+
7
+ attr_accessor :creator
8
+
9
+ attr_accessor :locales
10
+
11
+ # Attribute mapping from ruby-style variable name to JSON key.
12
+ def self.attribute_map
13
+ {
14
+ :'owner' => :'owner',
15
+ :'creator' => :'creator',
16
+ :'locales' => :'locales'
17
+ }
18
+ end
19
+
20
+ # Attribute type mapping.
21
+ def self.openapi_types
22
+ {
23
+ :'owner' => :'UserPreview',
24
+ :'creator' => :'UserPreview',
25
+ :'locales' => :'Array<LocalePreview>'
26
+ }
27
+ end
28
+
29
+ # List of attributes with nullable: true
30
+ def self.openapi_nullable
31
+ Set.new([
32
+ ])
33
+ end
34
+
35
+ # Initializes the object
36
+ # @param [Hash] attributes Model attributes in the form of hash
37
+ def initialize(attributes = {})
38
+ if (!attributes.is_a?(Hash))
39
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Phrase::JobTemplateDetails1` initialize method"
40
+ end
41
+
42
+ # check to see if the attribute exists and convert string to symbol for hash key
43
+ attributes = attributes.each_with_object({}) { |(k, v), h|
44
+ if (!self.class.attribute_map.key?(k.to_sym))
45
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Phrase::JobTemplateDetails1`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
46
+ end
47
+ h[k.to_sym] = v
48
+ }
49
+
50
+ if attributes.key?(:'owner')
51
+ self.owner = attributes[:'owner']
52
+ end
53
+
54
+ if attributes.key?(:'creator')
55
+ self.creator = attributes[:'creator']
56
+ end
57
+
58
+ if attributes.key?(:'locales')
59
+ if (value = attributes[:'locales']).is_a?(Array)
60
+ self.locales = value
61
+ end
62
+ end
63
+ end
64
+
65
+ # Show invalid properties with the reasons. Usually used together with valid?
66
+ # @return Array for valid properties with the reasons
67
+ def list_invalid_properties
68
+ invalid_properties = Array.new
69
+ invalid_properties
70
+ end
71
+
72
+ # Check to see if the all the properties in the model are valid
73
+ # @return true if the model is valid
74
+ def valid?
75
+ true
76
+ end
77
+
78
+ # Checks equality by comparing each attribute.
79
+ # @param [Object] Object to be compared
80
+ def ==(o)
81
+ return true if self.equal?(o)
82
+ self.class == o.class &&
83
+ owner == o.owner &&
84
+ creator == o.creator &&
85
+ locales == o.locales
86
+ end
87
+
88
+ # @see the `==` method
89
+ # @param [Object] Object to be compared
90
+ def eql?(o)
91
+ self == o
92
+ end
93
+
94
+ # Calculates hash code according to all attributes.
95
+ # @return [Integer] Hash code
96
+ def hash
97
+ [owner, creator, locales].hash
98
+ end
99
+
100
+ # Builds the object from hash
101
+ # @param [Hash] attributes Model attributes in the form of hash
102
+ # @return [Object] Returns the model itself
103
+ def self.build_from_hash(attributes)
104
+ new.build_from_hash(attributes)
105
+ end
106
+
107
+ # Builds the object from hash
108
+ # @param [Hash] attributes Model attributes in the form of hash
109
+ # @return [Object] Returns the model itself
110
+ def build_from_hash(attributes)
111
+ return nil unless attributes.is_a?(Hash)
112
+ self.class.openapi_types.each_pair do |key, type|
113
+ if type =~ /\AArray<(.*)>/i
114
+ # check to ensure the input is an array given that the attribute
115
+ # is documented as an array but the input is not
116
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
117
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
118
+ end
119
+ elsif !attributes[self.class.attribute_map[key]].nil?
120
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
121
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
122
+ end
123
+
124
+ self
125
+ end
126
+
127
+ # Deserializes the data based on type
128
+ # @param string type Data type
129
+ # @param string value Value to be deserialized
130
+ # @return [Object] Deserialized data
131
+ def _deserialize(type, value)
132
+ case type.to_sym
133
+ when :DateTime
134
+ DateTime.parse(value)
135
+ when :Date
136
+ Date.parse(value)
137
+ when :String
138
+ value.to_s
139
+ when :Integer
140
+ value.to_i
141
+ when :Float
142
+ value.to_f
143
+ when :Boolean
144
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
145
+ true
146
+ else
147
+ false
148
+ end
149
+ when :Object
150
+ # generic object (usually a Hash), return directly
151
+ value
152
+ when /\AArray<(?<inner_type>.+)>\z/
153
+ inner_type = Regexp.last_match[:inner_type]
154
+ value.map { |v| _deserialize(inner_type, v) }
155
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
156
+ k_type = Regexp.last_match[:k_type]
157
+ v_type = Regexp.last_match[:v_type]
158
+ {}.tap do |hash|
159
+ value.each do |k, v|
160
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
161
+ end
162
+ end
163
+ else # model
164
+ Phrase.const_get(type).build_from_hash(value)
165
+ end
166
+ end
167
+
168
+ # Returns the string representation of the object
169
+ # @return [String] String presentation of the object
170
+ def to_s
171
+ to_hash.to_s
172
+ end
173
+
174
+ # to_body is an alias to to_hash (backward compatibility)
175
+ # @return [Hash] Returns the object in the form of hash
176
+ def to_body
177
+ to_hash
178
+ end
179
+
180
+ # Returns the object in the form of hash
181
+ # @return [Hash] Returns the object in the form of hash
182
+ def to_hash
183
+ hash = {}
184
+ self.class.attribute_map.each_pair do |attr, param|
185
+ value = self.send(attr)
186
+ if value.nil?
187
+ is_nullable = self.class.openapi_nullable.include?(attr)
188
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
189
+ end
190
+
191
+ hash[param] = _to_hash(value)
192
+ end
193
+ hash
194
+ end
195
+
196
+ # Outputs non-array value in the form of hash
197
+ # For object, use to_hash. Otherwise, just return the value
198
+ # @param [Object] value Any valid value
199
+ # @return [Hash] Returns the value in the form of hash
200
+ def _to_hash(value)
201
+ if value.is_a?(Array)
202
+ value.compact.map { |v| _to_hash(v) }
203
+ elsif value.is_a?(Hash)
204
+ {}.tap do |hash|
205
+ value.each { |k, v| hash[k] = _to_hash(v) }
206
+ end
207
+ elsif value.respond_to? :to_hash
208
+ value.to_hash
209
+ else
210
+ value
211
+ end
212
+ end
213
+ end
214
+ end