phrase 4.27.0 → 4.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b9d9e28741eb8f8bbe8e1665cf606df481812ed7d6a46373d6bd53b56e3f2900
4
- data.tar.gz: b54de0daa747506e05f1bb22ff187140cb03c1d897e0289c326b62e7fb882c56
3
+ metadata.gz: e1279517427a6dccac92b6801d8c6037c17ce70ca827fe5092e3180da61126e9
4
+ data.tar.gz: e53f99f7457a358d506b0c42a53e9658a0007ecd9e804fff947c12f97af37603
5
5
  SHA512:
6
- metadata.gz: 939db696e111f5c0a02c237b46cf55a6418413693afc17a2bdeeff6d9fe98c5bd88476c6fa9c316d24472932fc0f535ec6d7c6265c7c135538c7e571b2df70d6
7
- data.tar.gz: d33c4748b40ae24fb0162c9f57ad801daca3e1ff26a1da4af11cefe755d93af40fd3bdee36dd75e7dee3fdee2351f6365d753c35d2c96204689e917d06f1c625
6
+ metadata.gz: 131ffb500ebc76f2e5093e0e16c9532b213ddbf3ba646a56de2d667b80f8b79a8c60ff9729c920e51d8bc559bfb27225dc03a587d199c1f6778350d99bc6e599
7
+ data.tar.gz: c80625ca357986d28741426ddb7ef3ad97f253fed0e4a8b3f70585d91c3e70b93c38f55cce17ab661f6c48da56178429bd955c9948a08fece124967422fe1421
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.28.0](https://github.com/phrase/strings-openapi/compare/ruby-v4.27.0...ruby-v4.28.0) (2026-09-17)
4
+
5
+
6
+ ### Features
7
+
8
+ * **API:** add name filter query parameter to spaces list #STRINGS-3036 ([#1267](https://github.com/phrase/strings-openapi/issues/1267)) ([3b54f73](https://github.com/phrase/strings-openapi/commit/3b54f73252698dd93411cfaffff3a97ea114be92))
9
+ * **API:** document translation_keys_sort_collation on /projects endpoints ([#1270](https://github.com/phrase/strings-openapi/issues/1270)) ([0a22b46](https://github.com/phrase/strings-openapi/commit/0a22b467aa077a1743546bc53add0628c8c05927))
10
+
3
11
  ## [4.27.0](https://github.com/phrase/strings-openapi/compare/ruby-v4.26.0...ruby-v4.27.0) (2026-09-11)
4
12
 
5
13
 
data/README.md CHANGED
@@ -7,7 +7,7 @@ Phrase Strings is a translation management platform for software projects. You c
7
7
  ## This SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
8
8
 
9
9
  - API version: 2.0.0
10
- - Package version: 4.27.0
10
+ - Package version: 4.28.0
11
11
  - Build package: org.openapitools.codegen.languages.RubyClientCodegen
12
12
  For more information, please visit [https://developers.phrase.com/api/](https://developers.phrase.com/api/)
13
13
 
@@ -56,10 +56,10 @@ gem build phrase.gemspec
56
56
  Then install the gem locally:
57
57
 
58
58
  ```shell
59
- gem install ./phrase-4.27.0.gem
59
+ gem install ./phrase-4.28.0.gem
60
60
  ```
61
61
 
62
- (for development, run `gem install --dev ./phrase-4.27.0.gem` to install the development dependencies)
62
+ (for development, run `gem install --dev ./phrase-4.28.0.gem` to install the development dependencies)
63
63
 
64
64
  ## Getting Started
65
65
 
@@ -40,7 +40,7 @@ instance = Phrase::KeyCreateParameters.new(branch: my-feature-branch,
40
40
  data_type: number,
41
41
  tags: awesome-feature,needs-proofreading,
42
42
  max_characters_allowed: 140,
43
- screenshot: [B@5bfe65df,
43
+ screenshot: [B@4393cb22,
44
44
  remove_screenshot: null,
45
45
  unformatted: null,
46
46
  default_translation_content: Default translation content,
@@ -38,7 +38,7 @@ instance = Phrase::KeyUpdateParameters.new(branch: my-feature-branch,
38
38
  data_type: number,
39
39
  tags: awesome-feature,needs-proofreading,
40
40
  max_characters_allowed: 140,
41
- screenshot: [B@3b95678b,
41
+ screenshot: [B@3b1bf4bf,
42
42
  remove_screenshot: null,
43
43
  unformatted: null,
44
44
  xml_space_preserve: null,
@@ -4,7 +4,7 @@
4
4
 
5
5
  Name | Type | Description | Notes
6
6
  ------------ | ------------- | ------------- | -------------
7
- **default_service** | **String** | The machine translation engine to use as the account default. Supported values: language_ai_translate, aita_translate, microsoft_translate, google_translate, amazon_translate, intento_translate, gpt_translate. Pass null or an empty string to reset to the plan default. | [optional]
7
+ **default_service** | **String** | The machine translation engine to use as the account default. Supported values: language_ai_translate, aita_translate, microsoft_translate, google_translate, amazon_translate. Pass null or an empty string to reset to the plan default. | [optional]
8
8
 
9
9
  ## Code Sample
10
10
 
@@ -7,8 +7,8 @@ Name | Type | Description | Notes
7
7
  **strategy** | **String** | Update strategy, can be any of set, add, remove. If provided, it will set, add or remove given spaces, projects and locale ids from users access list. | [optional]
8
8
  **role** | **String** | Member role, can be any of of Admin, ProjectManager, Developer, Designer, Translator | [optional]
9
9
  **project_ids** | **String** | List of project ids the user has access to. | [optional]
10
- **locale_ids** | **String** | List of locale ids the user has access to. | [optional]
11
- **default_locale_codes** | **Array<String>** | List of default locales for the user. | [optional]
10
+ **locale_ids** | **String** | List of locale ids the user has access to. This is project-scoped and must be paired with `project_ids` (and `strategy`) to take effect; it does not grant account-wide language access. | [optional]
11
+ **default_locale_codes** | **Array<String>** | List of default locales for the user, applied across all of the user's projects. This is the account-level field corresponding to \"Language access\" in the translator profile UI. | [optional]
12
12
  **space_ids** | **Array<String>** | List of spaces the user is assigned to. | [optional]
13
13
  **permissions** | **Hash<String, String>** | Additional permissions depending on member role. Available permissions are `create_upload` and `review_translations` | [optional]
14
14
 
data/docs/MembersApi.md CHANGED
@@ -143,7 +143,7 @@ Response<([**Member**](Member.md))>
143
143
 
144
144
  Update a member
145
145
 
146
- Update user permissions in the account. Developers and translators need `project_ids` and `locale_ids` assigned to access them. Access token scope must include `team.manage`.
146
+ Update user permissions in the account. Developers and translators need `project_ids` and `locale_ids` assigned to access them. To grant account-wide language access instead of access scoped to specific projects, use `default_locale_codes`. Access token scope must include `team.manage`.
147
147
 
148
148
  ### Example
149
149
 
@@ -38,7 +38,7 @@ Name | Type | Description | Notes
38
38
  **smart_suggest_use_machine_translation** | **Boolean** | (Optional) Allow Smart Suggest to source suggestions from machine translation. Defaults to &#x60;true&#x60; when omitted. | [optional]
39
39
  **translation_keys_sort_collation** | **String** | (Optional) Collation used when sorting translation keys alphabetically. Defaults to &#x60;unicode_ci&#x60; when omitted. | [optional]
40
40
  **default_encoding** | **String** | (Optional) Sets the default encoding for Uploads. If you leave it empty, we will try to guess it automatically for you when you Upload a file. You can still override this value by setting the [&#x60;file_encoding&#x60;](/en/api/strings/uploads/upload-a-new-file) parameter for Uploads. | [optional]
41
- **cldr_version** | **String** | (Optional) CLDR plural-rule version used by the project. | [optional]
41
+ **cldr_version** | **String** | (Optional) CLDR plural-rule version used by the project. Pass &#x60;legacy&#x60; for pre-CLDR pluralization behaviour, or a CLDR version string such as &#x60;cldr48&#x60;. Also used as the default version for the ICU skeleton endpoint (&#x60;POST /icu/skeleton&#x60;) when its own &#x60;cldr_version&#x60; parameter is omitted. | [optional]
42
42
  **placeholder_styles** | **Array&lt;String&gt;** | (Optional) List of placeholder styles enabled for the project. | [optional]
43
43
 
44
44
  ## Code Sample
@@ -52,7 +52,7 @@ instance = Phrase::ProjectCreateParameters.new(name: My Android Project,
52
52
  shares_translation_memory: true,
53
53
  tm_ids: [&quot;abcd1234cdef1234abcd1234cdef1234&quot;],
54
54
  term_base_ids: [&quot;abcd1234cdef1234abcd1234cdef1234&quot;],
55
- project_image: [B@36dada39,
55
+ project_image: [B@104d07a8,
56
56
  remove_project_image: null,
57
57
  account_id: abcd1234,
58
58
  point_of_contact: abcd1234,
@@ -34,6 +34,7 @@ Name | Type | Description | Notes
34
34
  **autocomplete_job_enabled** | **Boolean** | | [optional]
35
35
  **default_encoding** | **String** | | [optional]
36
36
  **cldr_version** | **String** | | [optional]
37
+ **translation_keys_sort_collation** | **String** | | [optional]
37
38
  **job_locking_enabled** | **Boolean** | | [optional]
38
39
  **placeholder_styles** | **Array&lt;String&gt;** | | [optional]
39
40
  **branch** | [**Branch**](Branch.md) | | [optional]
@@ -73,6 +74,7 @@ instance = Phrase::ProjectDetails.new(id: null,
73
74
  autocomplete_job_enabled: false,
74
75
  default_encoding: UTF-8,
75
76
  cldr_version: legacy,
77
+ translation_keys_sort_collation: unicode_ci,
76
78
  job_locking_enabled: false,
77
79
  placeholder_styles: [&quot;rails_i18n&quot;,&quot;java_properties&quot;],
78
80
  branch: null)
@@ -38,7 +38,7 @@ Name | Type | Description | Notes
38
38
  **smart_suggest_use_glossary** | **Boolean** | (Optional) Allow Smart Suggest to source suggestions from the project glossary. | [optional]
39
39
  **smart_suggest_use_machine_translation** | **Boolean** | (Optional) Allow Smart Suggest to source suggestions from machine translation. | [optional]
40
40
  **translation_keys_sort_collation** | **String** | (Optional) Collation used when sorting translation keys alphabetically. | [optional]
41
- **cldr_version** | **String** | (Optional) CLDR plural-rule version used by the project. | [optional]
41
+ **cldr_version** | **String** | (Optional) CLDR plural-rule version used by the project. Pass &#x60;legacy&#x60; for pre-CLDR pluralization behaviour, or a CLDR version string such as &#x60;cldr48&#x60;. Also used as the default version for the ICU skeleton endpoint (&#x60;POST /icu/skeleton&#x60;) when its own &#x60;cldr_version&#x60; parameter is omitted. | [optional]
42
42
 
43
43
  ## Code Sample
44
44
 
@@ -53,7 +53,7 @@ instance = Phrase::ProjectUpdateParameters.new(account_id: abcd1234,
53
53
  shares_translation_memory: true,
54
54
  tm_ids: [&quot;abcd1234cdef1234abcd1234cdef1234&quot;],
55
55
  term_base_ids: [&quot;abcd1234cdef1234abcd1234cdef1234&quot;],
56
- project_image: [B@71fcff54,
56
+ project_image: [B@6fa53b0d,
57
57
  remove_project_image: false,
58
58
  workflow: review,
59
59
  machine_translation_enabled: true,
data/docs/ProjectsApi.md CHANGED
@@ -200,7 +200,7 @@ Response<([**ProjectDetails**](ProjectDetails.md))>
200
200
 
201
201
  Update a project
202
202
 
203
- Update an existing project.
203
+ Update an existing project, including its review workflow, pre-translation/autotranslate rules, and machine-translation configuration (see workflow, machine_translation_enabled, and the autotranslate_* fields below).
204
204
 
205
205
  ### Example
206
206
 
@@ -17,7 +17,7 @@ require 'Phrase'
17
17
  instance = Phrase::ScreenshotUpdateParameters.new(branch: my-feature-branch,
18
18
  name: A screenshot name,
19
19
  description: A screenshot description,
20
- filename: [B@1fffd548)
20
+ filename: [B@4b16145)
21
21
  ```
22
22
 
23
23
 
data/docs/SpacesApi.md CHANGED
@@ -297,7 +297,8 @@ account_id = 'account_id_example' # String | Account ID
297
297
  opts = {
298
298
  x_phrase_app_otp: 'x_phrase_app_otp_example', # String | Two-Factor-Authentication token (optional)
299
299
  page: 1, # Integer | Page number
300
- per_page: 25 # Integer | Limit on the number of objects to be returned, between 1 and 100. 25 by default
300
+ per_page: 25, # Integer | Limit on the number of objects to be returned, between 1 and 100. 25 by default
301
+ q: 'name:Engineering' # String | Filter results by name. Supports the prefix-match syntax `name:<value>`, which returns only spaces whose names begin with `<value>`. Other query formats are ignored; omitting `q` returns all accessible spaces.
301
302
  }
302
303
 
303
304
  begin
@@ -318,6 +319,7 @@ Name | Type | Description | Notes
318
319
  **x_phrase_app_otp** | **String**| Two-Factor-Authentication token (optional) | [optional]
319
320
  **page** | **Integer**| Page number | [optional]
320
321
  **per_page** | **Integer**| Limit on the number of objects to be returned, between 1 and 100. 25 by default | [optional]
322
+ **q** | **String**| Filter results by name. Supports the prefix-match syntax &#x60;name:&lt;value&gt;&#x60;, which returns only spaces whose names begin with &#x60;&lt;value&gt;&#x60;. Other query formats are ignored; omitting &#x60;q&#x60; returns all accessible spaces. | [optional]
321
323
 
322
324
  ### Return type
323
325
 
@@ -152,7 +152,7 @@ module Phrase
152
152
  end
153
153
 
154
154
  # Update a member
155
- # Update user permissions in the account. Developers and translators need `project_ids` and `locale_ids` assigned to access them. Access token scope must include `team.manage`.
155
+ # Update user permissions in the account. Developers and translators need `project_ids` and `locale_ids` assigned to access them. To grant account-wide language access instead of access scoped to specific projects, use `default_locale_codes`. Access token scope must include `team.manage`.
156
156
  # @param account_id [String] Account ID
157
157
  # @param id [String] ID
158
158
  # @param member_update_parameters [MemberUpdateParameters]
@@ -165,7 +165,7 @@ module Phrase
165
165
  end
166
166
 
167
167
  # Update a member
168
- # Update user permissions in the account. Developers and translators need &#x60;project_ids&#x60; and &#x60;locale_ids&#x60; assigned to access them. Access token scope must include &#x60;team.manage&#x60;.
168
+ # Update user permissions in the account. Developers and translators need &#x60;project_ids&#x60; and &#x60;locale_ids&#x60; assigned to access them. To grant account-wide language access instead of access scoped to specific projects, use &#x60;default_locale_codes&#x60;. Access token scope must include &#x60;team.manage&#x60;.
169
169
  # @param account_id [String] Account ID
170
170
  # @param id [String] ID
171
171
  # @param member_update_parameters [MemberUpdateParameters]
@@ -208,7 +208,7 @@ module Phrase
208
208
  end
209
209
 
210
210
  # Update a project
211
- # Update an existing project.
211
+ # Update an existing project, including its review workflow, pre-translation/autotranslate rules, and machine-translation configuration (see workflow, machine_translation_enabled, and the autotranslate_* fields below).
212
212
  # @param id [String] ID
213
213
  # @param project_update_parameters [ProjectUpdateParameters]
214
214
  # @param [Hash] opts the optional parameters
@@ -220,7 +220,7 @@ module Phrase
220
220
  end
221
221
 
222
222
  # Update a project
223
- # Update an existing project.
223
+ # Update an existing project, including its review workflow, pre-translation/autotranslate rules, and machine-translation configuration (see workflow, machine_translation_enabled, and the autotranslate_* fields below).
224
224
  # @param id [String] ID
225
225
  # @param project_update_parameters [ProjectUpdateParameters]
226
226
  # @param [Hash] opts the optional parameters
@@ -310,6 +310,7 @@ module Phrase
310
310
  # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
311
311
  # @option opts [Integer] :page Page number
312
312
  # @option opts [Integer] :per_page Limit on the number of objects to be returned, between 1 and 100. 25 by default
313
+ # @option opts [String] :q Filter results by name. Supports the prefix-match syntax &#x60;name:&lt;value&gt;&#x60;, which returns only spaces whose names begin with &#x60;&lt;value&gt;&#x60;. Other query formats are ignored; omitting &#x60;q&#x60; returns all accessible spaces.
313
314
  # @return [Array<Space>]
314
315
  def spaces_list(account_id, opts = {})
315
316
  data, _status_code, _headers = spaces_list_with_http_info(account_id, opts)
@@ -323,6 +324,7 @@ module Phrase
323
324
  # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
324
325
  # @option opts [Integer] :page Page number
325
326
  # @option opts [Integer] :per_page Limit on the number of objects to be returned, between 1 and 100. 25 by default
327
+ # @option opts [String] :q Filter results by name. Supports the prefix-match syntax &#x60;name:&lt;value&gt;&#x60;, which returns only spaces whose names begin with &#x60;&lt;value&gt;&#x60;. Other query formats are ignored; omitting &#x60;q&#x60; returns all accessible spaces.
326
328
  # @return [Array<(Response<(Array<Space>)>, Integer, Hash)>] Response<(Array<Space>)> data, response status code and response headers
327
329
  def spaces_list_with_http_info(account_id, opts = {})
328
330
  if @api_client.config.debugging
@@ -339,6 +341,7 @@ module Phrase
339
341
  query_params = opts[:query_params] || {}
340
342
  query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
341
343
  query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
344
+ query_params[:'q'] = opts[:'q'] if !opts[:'q'].nil?
342
345
 
343
346
  # header parameters
344
347
  header_params = opts[:header_params] || {}
@@ -2,7 +2,7 @@ require 'date'
2
2
 
3
3
  module Phrase
4
4
  class MachineTranslationSettingsUpdateParameters
5
- # The machine translation engine to use as the account default. Supported values: language_ai_translate, aita_translate, microsoft_translate, google_translate, amazon_translate, intento_translate, gpt_translate. Pass null or an empty string to reset to the plan default.
5
+ # The machine translation engine to use as the account default. Supported values: language_ai_translate, aita_translate, microsoft_translate, google_translate, amazon_translate. Pass null or an empty string to reset to the plan default.
6
6
  attr_accessor :default_service
7
7
 
8
8
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -11,10 +11,10 @@ module Phrase
11
11
  # List of project ids the user has access to.
12
12
  attr_accessor :project_ids
13
13
 
14
- # List of locale ids the user has access to.
14
+ # List of locale ids the user has access to. This is project-scoped and must be paired with `project_ids` (and `strategy`) to take effect; it does not grant account-wide language access.
15
15
  attr_accessor :locale_ids
16
16
 
17
- # List of default locales for the user.
17
+ # List of default locales for the user, applied across all of the user's projects. This is the account-level field corresponding to \"Language access\" in the translator profile UI.
18
18
  attr_accessor :default_locale_codes
19
19
 
20
20
  # List of spaces the user is assigned to.
@@ -104,7 +104,7 @@ module Phrase
104
104
  # (Optional) Sets the default encoding for Uploads. If you leave it empty, we will try to guess it automatically for you when you Upload a file. You can still override this value by setting the [`file_encoding`](/en/api/strings/uploads/upload-a-new-file) parameter for Uploads.
105
105
  attr_accessor :default_encoding
106
106
 
107
- # (Optional) CLDR plural-rule version used by the project.
107
+ # (Optional) CLDR plural-rule version used by the project. Pass `legacy` for pre-CLDR pluralization behaviour, or a CLDR version string such as `cldr48`. Also used as the default version for the ICU skeleton endpoint (`POST /icu/skeleton`) when its own `cldr_version` parameter is omitted.
108
108
  attr_accessor :cldr_version
109
109
 
110
110
  # (Optional) List of placeholder styles enabled for the project.
@@ -403,11 +403,23 @@ module Phrase
403
403
  # @return true if the model is valid
404
404
  def valid?
405
405
  return false if @name.nil?
406
+ translation_keys_sort_collation_validator = EnumAttributeValidator.new('String', ["general_ci", "unicode_ci"])
407
+ return false unless translation_keys_sort_collation_validator.valid?(@translation_keys_sort_collation)
406
408
  default_encoding_validator = EnumAttributeValidator.new('String', ["UTF-8", "UTF-16", "UTF-16BE", "UTF-16LE", "ISO-8859-1"])
407
409
  return false unless default_encoding_validator.valid?(@default_encoding)
408
410
  true
409
411
  end
410
412
 
413
+ # Custom attribute writer method checking allowed values (enum).
414
+ # @param [Object] translation_keys_sort_collation Object to be assigned
415
+ def translation_keys_sort_collation=(translation_keys_sort_collation)
416
+ validator = EnumAttributeValidator.new('String', ["general_ci", "unicode_ci"])
417
+ unless validator.valid?(translation_keys_sort_collation)
418
+ fail ArgumentError, "invalid value for \"translation_keys_sort_collation\", must be one of #{validator.allowable_values}."
419
+ end
420
+ @translation_keys_sort_collation = translation_keys_sort_collation
421
+ end
422
+
411
423
  # Custom attribute writer method checking allowed values (enum).
412
424
  # @param [Object] default_encoding Object to be assigned
413
425
  def default_encoding=(default_encoding)
@@ -62,12 +62,36 @@ module Phrase
62
62
 
63
63
  attr_accessor :cldr_version
64
64
 
65
+ attr_accessor :translation_keys_sort_collation
66
+
65
67
  attr_accessor :job_locking_enabled
66
68
 
67
69
  attr_accessor :placeholder_styles
68
70
 
69
71
  attr_accessor :branch
70
72
 
73
+ class EnumAttributeValidator
74
+ attr_reader :datatype
75
+ attr_reader :allowable_values
76
+
77
+ def initialize(datatype, allowable_values)
78
+ @allowable_values = allowable_values.map do |value|
79
+ case datatype.to_s
80
+ when /Integer/i
81
+ value.to_i
82
+ when /Float/i
83
+ value.to_f
84
+ else
85
+ value
86
+ end
87
+ end
88
+ end
89
+
90
+ def valid?(value)
91
+ !value || allowable_values.include?(value)
92
+ end
93
+ end
94
+
71
95
  # Attribute mapping from ruby-style variable name to JSON key.
72
96
  def self.attribute_map
73
97
  {
@@ -101,6 +125,7 @@ module Phrase
101
125
  :'autocomplete_job_enabled' => :'autocomplete_job_enabled',
102
126
  :'default_encoding' => :'default_encoding',
103
127
  :'cldr_version' => :'cldr_version',
128
+ :'translation_keys_sort_collation' => :'translation_keys_sort_collation',
104
129
  :'job_locking_enabled' => :'job_locking_enabled',
105
130
  :'placeholder_styles' => :'placeholder_styles',
106
131
  :'branch' => :'branch'
@@ -140,6 +165,7 @@ module Phrase
140
165
  :'autocomplete_job_enabled' => :'Boolean',
141
166
  :'default_encoding' => :'String',
142
167
  :'cldr_version' => :'String',
168
+ :'translation_keys_sort_collation' => :'String',
143
169
  :'job_locking_enabled' => :'Boolean',
144
170
  :'placeholder_styles' => :'Array<String>',
145
171
  :'branch' => :'Branch'
@@ -294,6 +320,10 @@ module Phrase
294
320
  self.cldr_version = attributes[:'cldr_version']
295
321
  end
296
322
 
323
+ if attributes.key?(:'translation_keys_sort_collation')
324
+ self.translation_keys_sort_collation = attributes[:'translation_keys_sort_collation']
325
+ end
326
+
297
327
  if attributes.key?(:'job_locking_enabled')
298
328
  self.job_locking_enabled = attributes[:'job_locking_enabled']
299
329
  end
@@ -319,9 +349,21 @@ module Phrase
319
349
  # Check to see if the all the properties in the model are valid
320
350
  # @return true if the model is valid
321
351
  def valid?
352
+ translation_keys_sort_collation_validator = EnumAttributeValidator.new('String', ["general_ci", "unicode_ci"])
353
+ return false unless translation_keys_sort_collation_validator.valid?(@translation_keys_sort_collation)
322
354
  true
323
355
  end
324
356
 
357
+ # Custom attribute writer method checking allowed values (enum).
358
+ # @param [Object] translation_keys_sort_collation Object to be assigned
359
+ def translation_keys_sort_collation=(translation_keys_sort_collation)
360
+ validator = EnumAttributeValidator.new('String', ["general_ci", "unicode_ci"])
361
+ unless validator.valid?(translation_keys_sort_collation)
362
+ fail ArgumentError, "invalid value for \"translation_keys_sort_collation\", must be one of #{validator.allowable_values}."
363
+ end
364
+ @translation_keys_sort_collation = translation_keys_sort_collation
365
+ end
366
+
325
367
  # Checks equality by comparing each attribute.
326
368
  # @param [Object] Object to be compared
327
369
  def ==(o)
@@ -357,6 +399,7 @@ module Phrase
357
399
  autocomplete_job_enabled == o.autocomplete_job_enabled &&
358
400
  default_encoding == o.default_encoding &&
359
401
  cldr_version == o.cldr_version &&
402
+ translation_keys_sort_collation == o.translation_keys_sort_collation &&
360
403
  job_locking_enabled == o.job_locking_enabled &&
361
404
  placeholder_styles == o.placeholder_styles &&
362
405
  branch == o.branch
@@ -371,7 +414,7 @@ module Phrase
371
414
  # Calculates hash code according to all attributes.
372
415
  # @return [Integer] Hash code
373
416
  def hash
374
- [id, name, slug, main_format, project_image_url, media, account, space, point_of_contact, created_at, updated_at, shares_translation_memory, machine_translation_enabled, zero_plural_form_enabled, enable_all_data_type_translation_keys_for_translators, enable_icu_message_format, enable_branching, protect_master_branch, autotranslate_enabled, autotranslate_check_new_translation_keys, autotranslate_check_new_uploads, autotranslate_check_new_locales, autotranslate_mark_as_unverified, autotranslate_use_machine_translation, autotranslate_use_translation_memory, autotranslate_overwrite_unverified_translations, fallback_for_unverified_translations, autocomplete_job_enabled, default_encoding, cldr_version, job_locking_enabled, placeholder_styles, branch].hash
417
+ [id, name, slug, main_format, project_image_url, media, account, space, point_of_contact, created_at, updated_at, shares_translation_memory, machine_translation_enabled, zero_plural_form_enabled, enable_all_data_type_translation_keys_for_translators, enable_icu_message_format, enable_branching, protect_master_branch, autotranslate_enabled, autotranslate_check_new_translation_keys, autotranslate_check_new_uploads, autotranslate_check_new_locales, autotranslate_mark_as_unverified, autotranslate_use_machine_translation, autotranslate_use_translation_memory, autotranslate_overwrite_unverified_translations, fallback_for_unverified_translations, autocomplete_job_enabled, default_encoding, cldr_version, translation_keys_sort_collation, job_locking_enabled, placeholder_styles, branch].hash
375
418
  end
376
419
 
377
420
  # Builds the object from hash
@@ -104,7 +104,7 @@ module Phrase
104
104
  # (Optional) Collation used when sorting translation keys alphabetically.
105
105
  attr_accessor :translation_keys_sort_collation
106
106
 
107
- # (Optional) CLDR plural-rule version used by the project.
107
+ # (Optional) CLDR plural-rule version used by the project. Pass `legacy` for pre-CLDR pluralization behaviour, or a CLDR version string such as `cldr48`. Also used as the default version for the ICU skeleton endpoint (`POST /icu/skeleton`) when its own `cldr_version` parameter is omitted.
108
108
  attr_accessor :cldr_version
109
109
 
110
110
  class EnumAttributeValidator
@@ -391,6 +391,8 @@ module Phrase
391
391
  def valid?
392
392
  default_encoding_validator = EnumAttributeValidator.new('String', ["UTF-8", "UTF-16", "UTF-16BE", "UTF-16LE", "ISO-8859-1"])
393
393
  return false unless default_encoding_validator.valid?(@default_encoding)
394
+ translation_keys_sort_collation_validator = EnumAttributeValidator.new('String', ["general_ci", "unicode_ci"])
395
+ return false unless translation_keys_sort_collation_validator.valid?(@translation_keys_sort_collation)
394
396
  true
395
397
  end
396
398
 
@@ -404,6 +406,16 @@ module Phrase
404
406
  @default_encoding = default_encoding
405
407
  end
406
408
 
409
+ # Custom attribute writer method checking allowed values (enum).
410
+ # @param [Object] translation_keys_sort_collation Object to be assigned
411
+ def translation_keys_sort_collation=(translation_keys_sort_collation)
412
+ validator = EnumAttributeValidator.new('String', ["general_ci", "unicode_ci"])
413
+ unless validator.valid?(translation_keys_sort_collation)
414
+ fail ArgumentError, "invalid value for \"translation_keys_sort_collation\", must be one of #{validator.allowable_values}."
415
+ end
416
+ @translation_keys_sort_collation = translation_keys_sort_collation
417
+ end
418
+
407
419
  # Checks equality by comparing each attribute.
408
420
  # @param [Object] Object to be compared
409
421
  def ==(o)
@@ -1,3 +1,3 @@
1
1
  module Phrase
2
- VERSION = '4.27.0'
2
+ VERSION = '4.28.0'
3
3
  end
@@ -50,7 +50,7 @@ describe 'MembersApi' do
50
50
 
51
51
  # unit tests for member_update
52
52
  # Update a member
53
- # Update user permissions in the account. Developers and translators need &#x60;project_ids&#x60; and &#x60;locale_ids&#x60; assigned to access them. Access token scope must include &#x60;team.manage&#x60;.
53
+ # Update user permissions in the account. Developers and translators need &#x60;project_ids&#x60; and &#x60;locale_ids&#x60; assigned to access them. To grant account-wide language access instead of access scoped to specific projects, use &#x60;default_locale_codes&#x60;. Access token scope must include &#x60;team.manage&#x60;.
54
54
  # @param account_id Account ID
55
55
  # @param id ID
56
56
  # @param member_update_parameters
@@ -61,7 +61,7 @@ describe 'ProjectsApi' do
61
61
 
62
62
  # unit tests for project_update
63
63
  # Update a project
64
- # Update an existing project.
64
+ # Update an existing project, including its review workflow, pre-translation/autotranslate rules, and machine-translation configuration (see workflow, machine_translation_enabled, and the autotranslate_* fields below).
65
65
  # @param id ID
66
66
  # @param project_update_parameters
67
67
  # @param [Hash] opts the optional parameters
@@ -85,6 +85,7 @@ describe 'SpacesApi' do
85
85
  # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
86
86
  # @option opts [Integer] :page Page number
87
87
  # @option opts [Integer] :per_page Limit on the number of objects to be returned, between 1 and 100. 25 by default
88
+ # @option opts [String] :q Filter results by name. Supports the prefix-match syntax &#x60;name:&lt;value&gt;&#x60;, which returns only spaces whose names begin with &#x60;&lt;value&gt;&#x60;. Other query formats are ignored; omitting &#x60;q&#x60; returns all accessible spaces.
88
89
  # @return [Array<Space>]
89
90
  describe 'spaces_list test' do
90
91
  it 'should work' do
@@ -215,6 +215,10 @@ describe 'ProjectCreateParameters' do
215
215
  describe 'test attribute "translation_keys_sort_collation"' do
216
216
  it 'should work' do
217
217
  # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
218
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["general_ci", "unicode_ci"])
219
+ # validator.allowable_values.each do |value|
220
+ # expect { @instance.translation_keys_sort_collation = value }.not_to raise_error
221
+ # end
218
222
  end
219
223
  end
220
224
 
@@ -200,6 +200,16 @@ describe 'ProjectDetails' do
200
200
  end
201
201
  end
202
202
 
203
+ describe 'test attribute "translation_keys_sort_collation"' do
204
+ it 'should work' do
205
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
206
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["general_ci", "unicode_ci"])
207
+ # validator.allowable_values.each do |value|
208
+ # expect { @instance.translation_keys_sort_collation = value }.not_to raise_error
209
+ # end
210
+ end
211
+ end
212
+
203
213
  describe 'test attribute "job_locking_enabled"' do
204
214
  it 'should work' do
205
215
  # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
@@ -225,6 +225,10 @@ describe 'ProjectUpdateParameters' do
225
225
  describe 'test attribute "translation_keys_sort_collation"' do
226
226
  it 'should work' do
227
227
  # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
228
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["general_ci", "unicode_ci"])
229
+ # validator.allowable_values.each do |value|
230
+ # expect { @instance.translation_keys_sort_collation = value }.not_to raise_error
231
+ # end
228
232
  end
229
233
  end
230
234
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phrase
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.27.0
4
+ version: 4.28.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Phrase
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-09-14 00:00:00.000000000 Z
11
+ date: 2026-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus