phrase 1.0.7 → 2.0.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 (111) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +26 -9
  3. data/docs/BranchName.md +17 -0
  4. data/docs/CurrentUser.md +31 -0
  5. data/docs/Invitation.md +9 -1
  6. data/docs/InvitationCreateParameters.md +4 -0
  7. data/docs/InvitationUpdateParameters.md +4 -0
  8. data/docs/InvitationUpdateSettingsParameters.md +19 -0
  9. data/docs/InvitationsApi.md +66 -0
  10. data/docs/Job.md +5 -3
  11. data/docs/JobDetails.md +4 -2
  12. data/docs/JobLocale.md +7 -1
  13. data/docs/KeysApi.md +5 -5
  14. data/docs/LocalesApi.md +7 -4
  15. data/docs/Member.md +7 -1
  16. data/docs/MemberProjectDetail.md +35 -0
  17. data/docs/MemberProjectDetailProjectRoles.md +19 -0
  18. data/docs/MemberSpaces.md +25 -0
  19. data/docs/MemberUpdateParameters.md +4 -0
  20. data/docs/MemberUpdateSettingsParameters.md +19 -0
  21. data/docs/MembersApi.md +66 -0
  22. data/docs/ProjectUpdateParameters.md +43 -9
  23. data/docs/ScreenshotCreateParameters.md +3 -1
  24. data/docs/ScreenshotMarkerCreateParameters.md +3 -1
  25. data/docs/ScreenshotMarkerUpdateParameters.md +3 -1
  26. data/docs/ScreenshotMarkersApi.md +9 -3
  27. data/docs/ScreenshotUpdateParameters.md +3 -1
  28. data/docs/ScreenshotsApi.md +8 -2
  29. data/docs/TranslationsApi.md +25 -25
  30. data/docs/UsersApi.md +2 -2
  31. data/docs/Variable.md +23 -0
  32. data/docs/VariableCreateParameters.md +19 -0
  33. data/docs/VariableUpdateParameters.md +19 -0
  34. data/docs/VariablesApi.md +331 -0
  35. data/docs/Webhook.md +2 -0
  36. data/docs/WebhookCreateParameters.md +3 -1
  37. data/docs/WebhookUpdateParameters.md +3 -1
  38. data/lib/phrase.rb +11 -0
  39. data/lib/phrase/api/invitations_api.rb +80 -0
  40. data/lib/phrase/api/keys_api.rb +6 -6
  41. data/lib/phrase/api/locales_api.rb +8 -3
  42. data/lib/phrase/api/members_api.rb +80 -0
  43. data/lib/phrase/api/screenshot_markers_api.rb +9 -0
  44. data/lib/phrase/api/screenshots_api.rb +9 -0
  45. data/lib/phrase/api/translations_api.rb +35 -35
  46. data/lib/phrase/api/users_api.rb +3 -3
  47. data/lib/phrase/api/variables_api.rb +378 -0
  48. data/lib/phrase/api_client.rb +2 -0
  49. data/lib/phrase/models/branch_name.rb +194 -0
  50. data/lib/phrase/models/current_user.rb +257 -0
  51. data/lib/phrase/models/invitation.rb +48 -4
  52. data/lib/phrase/models/invitation_create_parameters.rb +25 -1
  53. data/lib/phrase/models/invitation_update_parameters.rb +25 -1
  54. data/lib/phrase/models/invitation_update_settings_parameters.rb +207 -0
  55. data/lib/phrase/models/job.rb +22 -13
  56. data/lib/phrase/models/job_details.rb +19 -10
  57. data/lib/phrase/models/job_locale.rb +31 -4
  58. data/lib/phrase/models/member.rb +35 -4
  59. data/lib/phrase/models/member_project_detail.rb +285 -0
  60. data/lib/phrase/models/member_project_detail_project_roles.rb +203 -0
  61. data/lib/phrase/models/member_spaces.rb +230 -0
  62. data/lib/phrase/models/member_update_parameters.rb +25 -1
  63. data/lib/phrase/models/member_update_settings_parameters.rb +207 -0
  64. data/lib/phrase/models/project_update_parameters.rb +183 -13
  65. data/lib/phrase/models/screenshot_create_parameters.rb +11 -1
  66. data/lib/phrase/models/screenshot_marker_create_parameters.rb +11 -1
  67. data/lib/phrase/models/screenshot_marker_update_parameters.rb +11 -1
  68. data/lib/phrase/models/screenshot_update_parameters.rb +11 -1
  69. data/lib/phrase/models/variable.rb +221 -0
  70. data/lib/phrase/models/variable_create_parameters.rb +205 -0
  71. data/lib/phrase/models/variable_update_parameters.rb +205 -0
  72. data/lib/phrase/models/webhook.rb +10 -1
  73. data/lib/phrase/models/webhook_create_parameters.rb +14 -4
  74. data/lib/phrase/models/webhook_update_parameters.rb +14 -4
  75. data/lib/phrase/version.rb +1 -1
  76. data/spec/api/invitations_api_spec.rb +15 -0
  77. data/spec/api/keys_api_spec.rb +2 -2
  78. data/spec/api/locales_api_spec.rb +2 -1
  79. data/spec/api/members_api_spec.rb +15 -0
  80. data/spec/api/screenshot_markers_api_spec.rb +3 -0
  81. data/spec/api/screenshots_api_spec.rb +3 -0
  82. data/spec/api/translations_api_spec.rb +10 -10
  83. data/spec/api/users_api_spec.rb +1 -1
  84. data/spec/api/variables_api_spec.rb +95 -0
  85. data/spec/models/branch_name_spec.rb +29 -0
  86. data/spec/models/current_user_spec.rb +71 -0
  87. data/spec/models/invitation_create_parameters_spec.rb +12 -0
  88. data/spec/models/invitation_spec.rb +24 -0
  89. data/spec/models/invitation_update_parameters_spec.rb +12 -0
  90. data/spec/models/invitation_update_settings_parameters_spec.rb +35 -0
  91. data/spec/models/job_details_spec.rb +9 -3
  92. data/spec/models/job_locale_spec.rb +18 -0
  93. data/spec/models/job_spec.rb +9 -3
  94. data/spec/models/member_project_detail_project_roles_spec.rb +35 -0
  95. data/spec/models/member_project_detail_spec.rb +83 -0
  96. data/spec/models/member_spaces_spec.rb +53 -0
  97. data/spec/models/member_spec.rb +18 -0
  98. data/spec/models/member_update_parameters_spec.rb +12 -0
  99. data/spec/models/member_update_settings_parameters_spec.rb +35 -0
  100. data/spec/models/project_update_parameters_spec.rb +103 -1
  101. data/spec/models/screenshot_create_parameters_spec.rb +6 -0
  102. data/spec/models/screenshot_marker_create_parameters_spec.rb +6 -0
  103. data/spec/models/screenshot_marker_update_parameters_spec.rb +6 -0
  104. data/spec/models/screenshot_update_parameters_spec.rb +6 -0
  105. data/spec/models/variable_create_parameters_spec.rb +35 -0
  106. data/spec/models/variable_spec.rb +47 -0
  107. data/spec/models/variable_update_parameters_spec.rb +35 -0
  108. data/spec/models/webhook_create_parameters_spec.rb +6 -0
  109. data/spec/models/webhook_spec.rb +6 -0
  110. data/spec/models/webhook_update_parameters_spec.rb +6 -0
  111. metadata +206 -162
@@ -131,6 +131,8 @@ module Phrase
131
131
  when ::File, ::Tempfile, ::Array, nil
132
132
  # let typhoeus handle File, Tempfile, Array and nil parameters
133
133
  data[key] = value
134
+ when ::Hash
135
+ data[key] = build_request_body(header_params, value, body)
134
136
  else
135
137
  data[key] = value.to_s
136
138
  end
@@ -0,0 +1,194 @@
1
+ require 'date'
2
+
3
+ module Phrase
4
+ class BranchName
5
+ attr_accessor :name
6
+
7
+ # Attribute mapping from ruby-style variable name to JSON key.
8
+ def self.attribute_map
9
+ {
10
+ :'name' => :'name'
11
+ }
12
+ end
13
+
14
+ # Attribute type mapping.
15
+ def self.openapi_types
16
+ {
17
+ :'name' => :'String'
18
+ }
19
+ end
20
+
21
+ # List of attributes with nullable: true
22
+ def self.openapi_nullable
23
+ Set.new([
24
+ ])
25
+ end
26
+
27
+ # Initializes the object
28
+ # @param [Hash] attributes Model attributes in the form of hash
29
+ def initialize(attributes = {})
30
+ if (!attributes.is_a?(Hash))
31
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Phrase::BranchName` initialize method"
32
+ end
33
+
34
+ # check to see if the attribute exists and convert string to symbol for hash key
35
+ attributes = attributes.each_with_object({}) { |(k, v), h|
36
+ if (!self.class.attribute_map.key?(k.to_sym))
37
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Phrase::BranchName`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
38
+ end
39
+ h[k.to_sym] = v
40
+ }
41
+
42
+ if attributes.key?(:'name')
43
+ self.name = attributes[:'name']
44
+ end
45
+ end
46
+
47
+ # Show invalid properties with the reasons. Usually used together with valid?
48
+ # @return Array for valid properties with the reasons
49
+ def list_invalid_properties
50
+ invalid_properties = Array.new
51
+ invalid_properties
52
+ end
53
+
54
+ # Check to see if the all the properties in the model are valid
55
+ # @return true if the model is valid
56
+ def valid?
57
+ true
58
+ end
59
+
60
+ # Checks equality by comparing each attribute.
61
+ # @param [Object] Object to be compared
62
+ def ==(o)
63
+ return true if self.equal?(o)
64
+ self.class == o.class &&
65
+ name == o.name
66
+ end
67
+
68
+ # @see the `==` method
69
+ # @param [Object] Object to be compared
70
+ def eql?(o)
71
+ self == o
72
+ end
73
+
74
+ # Calculates hash code according to all attributes.
75
+ # @return [Integer] Hash code
76
+ def hash
77
+ [name].hash
78
+ end
79
+
80
+ # Builds the object from hash
81
+ # @param [Hash] attributes Model attributes in the form of hash
82
+ # @return [Object] Returns the model itself
83
+ def self.build_from_hash(attributes)
84
+ new.build_from_hash(attributes)
85
+ end
86
+
87
+ # Builds the object from hash
88
+ # @param [Hash] attributes Model attributes in the form of hash
89
+ # @return [Object] Returns the model itself
90
+ def build_from_hash(attributes)
91
+ return nil unless attributes.is_a?(Hash)
92
+ self.class.openapi_types.each_pair do |key, type|
93
+ if type =~ /\AArray<(.*)>/i
94
+ # check to ensure the input is an array given that the attribute
95
+ # is documented as an array but the input is not
96
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
97
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
98
+ end
99
+ elsif !attributes[self.class.attribute_map[key]].nil?
100
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
101
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
102
+ end
103
+
104
+ self
105
+ end
106
+
107
+ # Deserializes the data based on type
108
+ # @param string type Data type
109
+ # @param string value Value to be deserialized
110
+ # @return [Object] Deserialized data
111
+ def _deserialize(type, value)
112
+ case type.to_sym
113
+ when :DateTime
114
+ DateTime.parse(value)
115
+ when :Date
116
+ Date.parse(value)
117
+ when :String
118
+ value.to_s
119
+ when :Integer
120
+ value.to_i
121
+ when :Float
122
+ value.to_f
123
+ when :Boolean
124
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
125
+ true
126
+ else
127
+ false
128
+ end
129
+ when :Object
130
+ # generic object (usually a Hash), return directly
131
+ value
132
+ when /\AArray<(?<inner_type>.+)>\z/
133
+ inner_type = Regexp.last_match[:inner_type]
134
+ value.map { |v| _deserialize(inner_type, v) }
135
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
136
+ k_type = Regexp.last_match[:k_type]
137
+ v_type = Regexp.last_match[:v_type]
138
+ {}.tap do |hash|
139
+ value.each do |k, v|
140
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
141
+ end
142
+ end
143
+ else # model
144
+ Phrase.const_get(type).build_from_hash(value)
145
+ end
146
+ end
147
+
148
+ # Returns the string representation of the object
149
+ # @return [String] String presentation of the object
150
+ def to_s
151
+ to_hash.to_s
152
+ end
153
+
154
+ # to_body is an alias to to_hash (backward compatibility)
155
+ # @return [Hash] Returns the object in the form of hash
156
+ def to_body
157
+ to_hash
158
+ end
159
+
160
+ # Returns the object in the form of hash
161
+ # @return [Hash] Returns the object in the form of hash
162
+ def to_hash
163
+ hash = {}
164
+ self.class.attribute_map.each_pair do |attr, param|
165
+ value = self.send(attr)
166
+ if value.nil?
167
+ is_nullable = self.class.openapi_nullable.include?(attr)
168
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
169
+ end
170
+
171
+ hash[param] = _to_hash(value)
172
+ end
173
+ hash
174
+ end
175
+
176
+ # Outputs non-array value in the form of hash
177
+ # For object, use to_hash. Otherwise, just return the value
178
+ # @param [Object] value Any valid value
179
+ # @return [Hash] Returns the value in the form of hash
180
+ def _to_hash(value)
181
+ if value.is_a?(Array)
182
+ value.compact.map { |v| _to_hash(v) }
183
+ elsif value.is_a?(Hash)
184
+ {}.tap do |hash|
185
+ value.each { |k, v| hash[k] = _to_hash(v) }
186
+ end
187
+ elsif value.respond_to? :to_hash
188
+ value.to_hash
189
+ else
190
+ value
191
+ end
192
+ end
193
+ end
194
+ end
@@ -0,0 +1,257 @@
1
+ require 'date'
2
+
3
+ module Phrase
4
+ class CurrentUser
5
+ attr_accessor :id
6
+
7
+ attr_accessor :username
8
+
9
+ attr_accessor :name
10
+
11
+ attr_accessor :email
12
+
13
+ attr_accessor :position
14
+
15
+ attr_accessor :language
16
+
17
+ attr_accessor :created_at
18
+
19
+ attr_accessor :updated_at
20
+
21
+ # Attribute mapping from ruby-style variable name to JSON key.
22
+ def self.attribute_map
23
+ {
24
+ :'id' => :'id',
25
+ :'username' => :'username',
26
+ :'name' => :'name',
27
+ :'email' => :'email',
28
+ :'position' => :'position',
29
+ :'language' => :'language',
30
+ :'created_at' => :'created_at',
31
+ :'updated_at' => :'updated_at'
32
+ }
33
+ end
34
+
35
+ # Attribute type mapping.
36
+ def self.openapi_types
37
+ {
38
+ :'id' => :'String',
39
+ :'username' => :'String',
40
+ :'name' => :'String',
41
+ :'email' => :'String',
42
+ :'position' => :'String',
43
+ :'language' => :'String',
44
+ :'created_at' => :'DateTime',
45
+ :'updated_at' => :'DateTime'
46
+ }
47
+ end
48
+
49
+ # List of attributes with nullable: true
50
+ def self.openapi_nullable
51
+ Set.new([
52
+ ])
53
+ end
54
+
55
+ # Initializes the object
56
+ # @param [Hash] attributes Model attributes in the form of hash
57
+ def initialize(attributes = {})
58
+ if (!attributes.is_a?(Hash))
59
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Phrase::CurrentUser` initialize method"
60
+ end
61
+
62
+ # check to see if the attribute exists and convert string to symbol for hash key
63
+ attributes = attributes.each_with_object({}) { |(k, v), h|
64
+ if (!self.class.attribute_map.key?(k.to_sym))
65
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Phrase::CurrentUser`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
66
+ end
67
+ h[k.to_sym] = v
68
+ }
69
+
70
+ if attributes.key?(:'id')
71
+ self.id = attributes[:'id']
72
+ end
73
+
74
+ if attributes.key?(:'username')
75
+ self.username = attributes[:'username']
76
+ end
77
+
78
+ if attributes.key?(:'name')
79
+ self.name = attributes[:'name']
80
+ end
81
+
82
+ if attributes.key?(:'email')
83
+ self.email = attributes[:'email']
84
+ end
85
+
86
+ if attributes.key?(:'position')
87
+ self.position = attributes[:'position']
88
+ end
89
+
90
+ if attributes.key?(:'language')
91
+ self.language = attributes[:'language']
92
+ end
93
+
94
+ if attributes.key?(:'created_at')
95
+ self.created_at = attributes[:'created_at']
96
+ end
97
+
98
+ if attributes.key?(:'updated_at')
99
+ self.updated_at = attributes[:'updated_at']
100
+ end
101
+ end
102
+
103
+ # Show invalid properties with the reasons. Usually used together with valid?
104
+ # @return Array for valid properties with the reasons
105
+ def list_invalid_properties
106
+ invalid_properties = Array.new
107
+ invalid_properties
108
+ end
109
+
110
+ # Check to see if the all the properties in the model are valid
111
+ # @return true if the model is valid
112
+ def valid?
113
+ true
114
+ end
115
+
116
+ # Checks equality by comparing each attribute.
117
+ # @param [Object] Object to be compared
118
+ def ==(o)
119
+ return true if self.equal?(o)
120
+ self.class == o.class &&
121
+ id == o.id &&
122
+ username == o.username &&
123
+ name == o.name &&
124
+ email == o.email &&
125
+ position == o.position &&
126
+ language == o.language &&
127
+ created_at == o.created_at &&
128
+ updated_at == o.updated_at
129
+ end
130
+
131
+ # @see the `==` method
132
+ # @param [Object] Object to be compared
133
+ def eql?(o)
134
+ self == o
135
+ end
136
+
137
+ # Calculates hash code according to all attributes.
138
+ # @return [Integer] Hash code
139
+ def hash
140
+ [id, username, name, email, position, language, created_at, updated_at].hash
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 self.build_from_hash(attributes)
147
+ new.build_from_hash(attributes)
148
+ end
149
+
150
+ # Builds the object from hash
151
+ # @param [Hash] attributes Model attributes in the form of hash
152
+ # @return [Object] Returns the model itself
153
+ def build_from_hash(attributes)
154
+ return nil unless attributes.is_a?(Hash)
155
+ self.class.openapi_types.each_pair do |key, type|
156
+ if type =~ /\AArray<(.*)>/i
157
+ # check to ensure the input is an array given that the attribute
158
+ # is documented as an array but the input is not
159
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
160
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
161
+ end
162
+ elsif !attributes[self.class.attribute_map[key]].nil?
163
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
164
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
165
+ end
166
+
167
+ self
168
+ end
169
+
170
+ # Deserializes the data based on type
171
+ # @param string type Data type
172
+ # @param string value Value to be deserialized
173
+ # @return [Object] Deserialized data
174
+ def _deserialize(type, value)
175
+ case type.to_sym
176
+ when :DateTime
177
+ DateTime.parse(value)
178
+ when :Date
179
+ Date.parse(value)
180
+ when :String
181
+ value.to_s
182
+ when :Integer
183
+ value.to_i
184
+ when :Float
185
+ value.to_f
186
+ when :Boolean
187
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
188
+ true
189
+ else
190
+ false
191
+ end
192
+ when :Object
193
+ # generic object (usually a Hash), return directly
194
+ value
195
+ when /\AArray<(?<inner_type>.+)>\z/
196
+ inner_type = Regexp.last_match[:inner_type]
197
+ value.map { |v| _deserialize(inner_type, v) }
198
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
199
+ k_type = Regexp.last_match[:k_type]
200
+ v_type = Regexp.last_match[:v_type]
201
+ {}.tap do |hash|
202
+ value.each do |k, v|
203
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
204
+ end
205
+ end
206
+ else # model
207
+ Phrase.const_get(type).build_from_hash(value)
208
+ end
209
+ end
210
+
211
+ # Returns the string representation of the object
212
+ # @return [String] String presentation of the object
213
+ def to_s
214
+ to_hash.to_s
215
+ end
216
+
217
+ # to_body is an alias to to_hash (backward compatibility)
218
+ # @return [Hash] Returns the object in the form of hash
219
+ def to_body
220
+ to_hash
221
+ end
222
+
223
+ # Returns the object in the form of hash
224
+ # @return [Hash] Returns the object in the form of hash
225
+ def to_hash
226
+ hash = {}
227
+ self.class.attribute_map.each_pair do |attr, param|
228
+ value = self.send(attr)
229
+ if value.nil?
230
+ is_nullable = self.class.openapi_nullable.include?(attr)
231
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
232
+ end
233
+
234
+ hash[param] = _to_hash(value)
235
+ end
236
+ hash
237
+ end
238
+
239
+ # Outputs non-array value in the form of hash
240
+ # For object, use to_hash. Otherwise, just return the value
241
+ # @param [Object] value Any valid value
242
+ # @return [Hash] Returns the value in the form of hash
243
+ def _to_hash(value)
244
+ if value.is_a?(Array)
245
+ value.compact.map { |v| _to_hash(v) }
246
+ elsif value.is_a?(Hash)
247
+ {}.tap do |hash|
248
+ value.each { |k, v| hash[k] = _to_hash(v) }
249
+ end
250
+ elsif value.respond_to? :to_hash
251
+ value.to_hash
252
+ else
253
+ value
254
+ end
255
+ end
256
+ end
257
+ end