phrase 4.27.0 → 4.29.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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +6 -3
  4. data/docs/JobTemplateCreateParameters.md +3 -1
  5. data/docs/JobTemplateUpdateParameters.md +3 -1
  6. data/docs/KeyCreateParameters.md +1 -1
  7. data/docs/KeyUpdateParameters.md +1 -1
  8. data/docs/MachineTranslationSettingsUpdateParameters.md +1 -1
  9. data/docs/MemberUpdateParameters.md +2 -2
  10. data/docs/MembersApi.md +71 -1
  11. data/docs/OrganizationJobTemplateCreateParameters.md +3 -1
  12. data/docs/OrganizationJobTemplateUpdateParameters.md +3 -1
  13. data/docs/ProjectCreateParameters.md +2 -2
  14. data/docs/ProjectDetails.md +2 -0
  15. data/docs/ProjectMember.md +27 -0
  16. data/docs/ProjectUpdateParameters.md +2 -2
  17. data/docs/ProjectsApi.md +1 -1
  18. data/docs/ScreenshotUpdateParameters.md +1 -1
  19. data/docs/SpacesApi.md +3 -1
  20. data/docs/SupportedLanguagesApi.md +62 -0
  21. data/lib/phrase/api/members_api.rb +80 -2
  22. data/lib/phrase/api/projects_api.rb +2 -2
  23. data/lib/phrase/api/spaces_api.rb +3 -0
  24. data/lib/phrase/api/supported_languages_api.rb +67 -0
  25. data/lib/phrase/models/job_template_create_parameters.rb +14 -4
  26. data/lib/phrase/models/job_template_update_parameters.rb +14 -4
  27. data/lib/phrase/models/machine_translation_settings_update_parameters.rb +1 -1
  28. data/lib/phrase/models/member_update_parameters.rb +2 -2
  29. data/lib/phrase/models/organization_job_template_create_parameters.rb +14 -4
  30. data/lib/phrase/models/organization_job_template_update_parameters.rb +14 -4
  31. data/lib/phrase/models/project_create_parameters.rb +13 -1
  32. data/lib/phrase/models/project_details.rb +44 -1
  33. data/lib/phrase/models/project_member.rb +241 -0
  34. data/lib/phrase/models/project_update_parameters.rb +13 -1
  35. data/lib/phrase/version.rb +1 -1
  36. data/lib/phrase.rb +2 -0
  37. data/spec/api/members_api_spec.rb +18 -1
  38. data/spec/api/projects_api_spec.rb +1 -1
  39. data/spec/api/spaces_api_spec.rb +1 -0
  40. data/spec/api/supported_languages_api_spec.rb +34 -0
  41. data/spec/models/job_template_create_parameters_spec.rb +6 -0
  42. data/spec/models/job_template_update_parameters_spec.rb +6 -0
  43. data/spec/models/organization_job_template_create_parameters_spec.rb +6 -0
  44. data/spec/models/organization_job_template_update_parameters_spec.rb +6 -0
  45. data/spec/models/project_create_parameters_spec.rb +4 -0
  46. data/spec/models/project_details_spec.rb +10 -0
  47. data/spec/models/project_member_spec.rb +59 -0
  48. data/spec/models/project_update_parameters_spec.rb +4 -0
  49. metadata +10 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b9d9e28741eb8f8bbe8e1665cf606df481812ed7d6a46373d6bd53b56e3f2900
4
- data.tar.gz: b54de0daa747506e05f1bb22ff187140cb03c1d897e0289c326b62e7fb882c56
3
+ metadata.gz: 1357e5ef12102b342d5e7b95a38345d883618fc2e74f63f3e091c1a7d7a09a5b
4
+ data.tar.gz: 3ecdd44e410a3b1bd6c26df0c29430e7c9d78e09173e212c884d3dab5f911407
5
5
  SHA512:
6
- metadata.gz: 939db696e111f5c0a02c237b46cf55a6418413693afc17a2bdeeff6d9fe98c5bd88476c6fa9c316d24472932fc0f535ec6d7c6265c7c135538c7e571b2df70d6
7
- data.tar.gz: d33c4748b40ae24fb0162c9f57ad801daca3e1ff26a1da4af11cefe755d93af40fd3bdee36dd75e7dee3fdee2351f6365d753c35d2c96204689e917d06f1c625
6
+ metadata.gz: '09290e886bcedcebdcad1b1647bacb04b16ba73a7b2aa716fb2b2d36555f5cbb431fcbd91568cd468ce00585095366d2d661e776260983099ff61f87608a0bf7'
7
+ data.tar.gz: 93c4f33ea2fe9e50f20f35d7cb821b0b851d3989067ace5ddeb4c644b630a564a416ffbd82afc63ec523a859aa79f3f7be2702c9ac5ed5adae9604c6570d35dc
data/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.29.0](https://github.com/phrase/strings-openapi/compare/ruby-v4.28.0...ruby-v4.29.0) (2026-09-23)
4
+
5
+
6
+ ### Features
7
+
8
+ * **API:** Add /languages documentation ([#1279](https://github.com/phrase/strings-openapi/issues/1279)) ([e273b56](https://github.com/phrase/strings-openapi/commit/e273b5697172726ae7256450648f56489cd36b8f))
9
+ * **API:** add owner_id parameter to job template create and update endpoints #STRINGS-3477 ([#1287](https://github.com/phrase/strings-openapi/issues/1287)) ([8dd71f9](https://github.com/phrase/strings-openapi/commit/8dd71f958b69d4a59d8c646f9b69d8154312dce6))
10
+ * **API:** add X-Rate-Limit-Reason header to 429 responses STRINGS-3504 ([#1288](https://github.com/phrase/strings-openapi/issues/1288)) ([a109a3d](https://github.com/phrase/strings-openapi/commit/a109a3d2a3cf464b327fc2fc594742433291d578))
11
+ * **API:** document GET /projects/{project_id}/members list endpoint STRINGS-3471 ([#1276](https://github.com/phrase/strings-openapi/issues/1276)) ([fbf8448](https://github.com/phrase/strings-openapi/commit/fbf844851b3fa67604c55fe8b16166006a89b74f))
12
+
13
+ ## [4.28.0](https://github.com/phrase/strings-openapi/compare/ruby-v4.27.0...ruby-v4.28.0) (2026-09-17)
14
+
15
+
16
+ ### Features
17
+
18
+ * **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))
19
+ * **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))
20
+
3
21
  ## [4.27.0](https://github.com/phrase/strings-openapi/compare/ruby-v4.26.0...ruby-v4.27.0) (2026-09-11)
4
22
 
5
23
 
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.29.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.29.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.29.0.gem` to install the development dependencies)
63
63
 
64
64
  ## Getting Started
65
65
 
@@ -297,6 +297,7 @@ Class | Method | HTTP request | Description
297
297
  *Phrase::MembersApi* | [**member_show**](docs/MembersApi.md#member_show) | **GET** /accounts/{account_id}/members/{id} | Get single member
298
298
  *Phrase::MembersApi* | [**member_update**](docs/MembersApi.md#member_update) | **PATCH** /accounts/{account_id}/members/{id} | Update a member
299
299
  *Phrase::MembersApi* | [**member_update_settings**](docs/MembersApi.md#member_update_settings) | **PATCH** /projects/{project_id}/members/{id} | Update a member's project settings
300
+ *Phrase::MembersApi* | [**members_by_project**](docs/MembersApi.md#members_by_project) | **GET** /projects/{project_id}/members | List project members
300
301
  *Phrase::MembersApi* | [**members_list**](docs/MembersApi.md#members_list) | **GET** /accounts/{account_id}/members | List members
301
302
  *Phrase::NotificationGroupsApi* | [**notification_groups_list**](docs/NotificationGroupsApi.md#notification_groups_list) | **GET** /notification_groups | List notification groups
302
303
  *Phrase::NotificationGroupsApi* | [**notification_groups_mark_all_as_read**](docs/NotificationGroupsApi.md#notification_groups_mark_all_as_read) | **PATCH** /notification_groups/mark_all_as_read | Mark all notification groups as read
@@ -374,6 +375,7 @@ Class | Method | HTTP request | Description
374
375
  *Phrase::StyleGuidesApi* | [**styleguide_show**](docs/StyleGuidesApi.md#styleguide_show) | **GET** /projects/{project_id}/styleguides/{id} | Get a single style guide
375
376
  *Phrase::StyleGuidesApi* | [**styleguide_update**](docs/StyleGuidesApi.md#styleguide_update) | **PATCH** /projects/{project_id}/styleguides/{id} | Update a style guide
376
377
  *Phrase::StyleGuidesApi* | [**styleguides_list**](docs/StyleGuidesApi.md#styleguides_list) | **GET** /projects/{project_id}/styleguides | List style guides
378
+ *Phrase::SupportedLanguagesApi* | [**languages_list**](docs/SupportedLanguagesApi.md#languages_list) | **GET** /languages | List supported languages
377
379
  *Phrase::TagsApi* | [**tag_create**](docs/TagsApi.md#tag_create) | **POST** /projects/{project_id}/tags | Create a tag
378
380
  *Phrase::TagsApi* | [**tag_delete**](docs/TagsApi.md#tag_delete) | **DELETE** /projects/{project_id}/tags/{name} | Delete a tag
379
381
  *Phrase::TagsApi* | [**tag_show**](docs/TagsApi.md#tag_show) | **GET** /projects/{project_id}/tags/{name} | Get a single tag
@@ -586,6 +588,7 @@ Class | Method | HTTP request | Description
586
588
  - [Phrase::ProjectCreateParameters](docs/ProjectCreateParameters.md)
587
589
  - [Phrase::ProjectDetails](docs/ProjectDetails.md)
588
590
  - [Phrase::ProjectLocales](docs/ProjectLocales.md)
591
+ - [Phrase::ProjectMember](docs/ProjectMember.md)
589
592
  - [Phrase::ProjectReport](docs/ProjectReport.md)
590
593
  - [Phrase::ProjectShort](docs/ProjectShort.md)
591
594
  - [Phrase::ProjectUpdateParameters](docs/ProjectUpdateParameters.md)
@@ -9,6 +9,7 @@ Name | Type | Description | Notes
9
9
  **briefing** | **String** | Briefing for the translators | [optional]
10
10
  **autotranslate** | **Boolean** | Automatically translate the job using machine translation. | [optional]
11
11
  **source_locale_id** | **String** | The API id of the source language. This locale will be set as source locale for the job template. If not provided, the project default locale will be used. | [optional]
12
+ **owner_id** | **String** | Code of the account member to set as the job template owner. The referenced user must also be a member of the project; passing the code of an account member who is not a project member returns a 404. When omitted or blank, no owner is pre-set; the user who creates a job from this template is assigned as owner at job-creation time. | [optional]
12
13
 
13
14
  ## Code Sample
14
15
 
@@ -19,7 +20,8 @@ instance = Phrase::JobTemplateCreateParameters.new(branch: my-feature-branch,
19
20
  name: template,
20
21
  briefing: text,
21
22
  autotranslate: true,
22
- source_locale_id: abcd1234cdef1234abcd1234cdef1234)
23
+ source_locale_id: abcd1234cdef1234abcd1234cdef1234,
24
+ owner_id: null)
23
25
  ```
24
26
 
25
27
 
@@ -9,6 +9,7 @@ Name | Type | Description | Notes
9
9
  **briefing** | **String** | Briefing for the translators | [optional]
10
10
  **autotranslate** | **Boolean** | Automatically translate the job using machine translation. | [optional]
11
11
  **source_locale_id** | **String** | The API id of the source language. This locale will be set as source locale for the job template. If not provided, the project default locale will be used. | [optional]
12
+ **owner_id** | **String** | Code of the account member to set as the job template owner. The referenced user must also be a member of the project; passing the code of an account member who is not a project member returns a 404. Pass an empty string to clear a previously set owner; when blank, jobs created from this template will default to assigning the job creator as owner. | [optional]
12
13
 
13
14
  ## Code Sample
14
15
 
@@ -19,7 +20,8 @@ instance = Phrase::JobTemplateUpdateParameters.new(branch: my-feature-branch,
19
20
  name: template,
20
21
  briefing: text,
21
22
  autotranslate: true,
22
- source_locale_id: abcd1234cdef1234abcd1234cdef1234)
23
+ source_locale_id: abcd1234cdef1234abcd1234cdef1234,
24
+ owner_id: null)
23
25
  ```
24
26
 
25
27
 
@@ -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@1b75f094,
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@39f9b4fc,
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
@@ -8,6 +8,7 @@ Method | HTTP request | Description
8
8
  [**member_show**](MembersApi.md#member_show) | **GET** /accounts/{account_id}/members/{id} | Get single member
9
9
  [**member_update**](MembersApi.md#member_update) | **PATCH** /accounts/{account_id}/members/{id} | Update a member
10
10
  [**member_update_settings**](MembersApi.md#member_update_settings) | **PATCH** /projects/{project_id}/members/{id} | Update a member's project settings
11
+ [**members_by_project**](MembersApi.md#members_by_project) | **GET** /projects/{project_id}/members | List project members
11
12
  [**members_list**](MembersApi.md#members_list) | **GET** /accounts/{account_id}/members | List members
12
13
 
13
14
 
@@ -143,7 +144,7 @@ Response<([**Member**](Member.md))>
143
144
 
144
145
  Update a member
145
146
 
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`.
147
+ 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
148
 
148
149
  ### Example
149
150
 
@@ -267,6 +268,75 @@ Response<([**MemberProjectDetail**](MemberProjectDetail.md))>
267
268
  - **Accept**: application/json
268
269
 
269
270
 
271
+ ## members_by_project
272
+
273
+ > Array&lt;ProjectMember&gt; members_by_project(project_id, opts)
274
+
275
+ List project members
276
+
277
+ Get all members active in the project. Access token scope must include `read`.
278
+
279
+ ### Example
280
+
281
+ ```ruby
282
+ # load the gem
283
+ require 'phrase'
284
+ # setup authorization
285
+ Phrase.configure do |config|
286
+ # Configure HTTP basic authorization: Basic
287
+ config.username = 'YOUR USERNAME'
288
+ config.password = 'YOUR PASSWORD'
289
+
290
+ # Configure API key authorization: Token
291
+ config.api_key['Authorization'] = 'YOUR API KEY'
292
+ config.api_key_prefix['Authorization'] = 'token'
293
+ end
294
+
295
+ api_instance = Phrase::MembersApi.new
296
+ project_id = 'project_id_example' # String | Project ID
297
+ opts = {
298
+ x_phrase_app_otp: 'x_phrase_app_otp_example', # String | Two-Factor-Authentication token (optional)
299
+ q: 'jane*', # String | Specify a query to search for members by name or email (including wildcards).
300
+ job_id: 'abcd1234cdef1234abcd1234cdef1234', # String | Filter members to those assigned to the job identified by this id.
301
+ page: 1, # Integer | Page number
302
+ per_page: 25 # Integer | Limit on the number of objects to be returned, between 1 and 100. 25 by default
303
+ }
304
+
305
+ begin
306
+ #List project members
307
+ result = api_instance.members_by_project(project_id, opts)
308
+ pp result
309
+ rescue Phrase::ApiError => e
310
+ puts "Exception when calling MembersApi->members_by_project: #{e}"
311
+ end
312
+ ```
313
+
314
+ ### Parameters
315
+
316
+
317
+ Name | Type | Description | Notes
318
+ ------------- | ------------- | ------------- | -------------
319
+ **project_id** | **String**| Project ID |
320
+ **x_phrase_app_otp** | **String**| Two-Factor-Authentication token (optional) | [optional]
321
+ **q** | **String**| Specify a query to search for members by name or email (including wildcards). | [optional]
322
+ **job_id** | **String**| Filter members to those assigned to the job identified by this id. | [optional]
323
+ **page** | **Integer**| Page number | [optional]
324
+ **per_page** | **Integer**| Limit on the number of objects to be returned, between 1 and 100. 25 by default | [optional]
325
+
326
+ ### Return type
327
+
328
+ Response<([**Array&lt;ProjectMember&gt;**](ProjectMember.md))>
329
+
330
+ ### Authorization
331
+
332
+ [Basic](../README.md#Basic), [Token](../README.md#Token)
333
+
334
+ ### HTTP request headers
335
+
336
+ - **Content-Type**: Not defined
337
+ - **Accept**: application/json
338
+
339
+
270
340
  ## members_list
271
341
 
272
342
  > Array&lt;Member&gt; members_list(account_id, opts)
@@ -7,6 +7,7 @@ Name | Type | Description | Notes
7
7
  **name** | **String** | Job template name |
8
8
  **briefing** | **String** | Briefing for the translators | [optional]
9
9
  **autotranslate** | **Boolean** | Automatically translate the job using machine translation. | [optional]
10
+ **owner_id** | **String** | Code of the account member to set as the job template owner. When omitted or blank, no owner is pre-set; the user who creates a job from this template is assigned as its owner at job-creation time. | [optional]
10
11
 
11
12
  ## Code Sample
12
13
 
@@ -15,7 +16,8 @@ require 'Phrase'
15
16
 
16
17
  instance = Phrase::OrganizationJobTemplateCreateParameters.new(name: template,
17
18
  briefing: text,
18
- autotranslate: true)
19
+ autotranslate: true,
20
+ owner_id: null)
19
21
  ```
20
22
 
21
23
 
@@ -7,6 +7,7 @@ Name | Type | Description | Notes
7
7
  **name** | **String** | Job template name |
8
8
  **briefing** | **String** | Briefing for the translators | [optional]
9
9
  **autotranslate** | **Boolean** | Automatically translate the job using machine translation. | [optional]
10
+ **owner_id** | **String** | Code of the account member to set as the job template owner. Pass an empty string to clear a previously set owner; when blank, the owner is set to null and jobs created from this template will default to assigning the job creator as owner. | [optional]
10
11
 
11
12
  ## Code Sample
12
13
 
@@ -15,7 +16,8 @@ require 'Phrase'
15
16
 
16
17
  instance = Phrase::OrganizationJobTemplateUpdateParameters.new(name: template,
17
18
  briefing: text,
18
- autotranslate: true)
19
+ autotranslate: true,
20
+ owner_id: null)
19
21
  ```
20
22
 
21
23
 
@@ -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@e25817f,
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)
@@ -0,0 +1,27 @@
1
+ # Phrase::ProjectMember
2
+
3
+ ## Properties
4
+
5
+ Name | Type | Description | Notes
6
+ ------------ | ------------- | ------------- | -------------
7
+ **id** | **String** | | [optional]
8
+ **username** | **String** | | [optional]
9
+ **name** | **String** | | [optional]
10
+ **position** | **String** | | [optional]
11
+ **created_at** | **Time** | | [optional]
12
+ **updated_at** | **Time** | | [optional]
13
+
14
+ ## Code Sample
15
+
16
+ ```ruby
17
+ require 'Phrase'
18
+
19
+ instance = Phrase::ProjectMember.new(id: null,
20
+ username: null,
21
+ name: null,
22
+ position: null,
23
+ created_at: null,
24
+ updated_at: null)
25
+ ```
26
+
27
+
@@ -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@169729d9,
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@6eec5a54)
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
 
@@ -0,0 +1,62 @@
1
+ # Phrase::SupportedLanguagesApi
2
+
3
+ All URIs are relative to *https://api.phrase.com/v2*
4
+
5
+ Method | HTTP request | Description
6
+ ------------- | ------------- | -------------
7
+ [**languages_list**](SupportedLanguagesApi.md#languages_list) | **GET** /languages | List supported languages
8
+
9
+
10
+
11
+ ## languages_list
12
+
13
+ > Hash&lt;String, String&gt; languages_list
14
+
15
+ List supported languages
16
+
17
+ Returns all languages/locale codes that Phrase Strings recognizes, mapped to their human-readable display name. This endpoint does not require authentication.
18
+
19
+ ### Example
20
+
21
+ ```ruby
22
+ # load the gem
23
+ require 'phrase'
24
+ # setup authorization
25
+ Phrase.configure do |config|
26
+ # Configure HTTP basic authorization: Basic
27
+ config.username = 'YOUR USERNAME'
28
+ config.password = 'YOUR PASSWORD'
29
+
30
+ # Configure API key authorization: Token
31
+ config.api_key['Authorization'] = 'YOUR API KEY'
32
+ config.api_key_prefix['Authorization'] = 'token'
33
+ end
34
+
35
+ api_instance = Phrase::SupportedLanguagesApi.new
36
+
37
+ begin
38
+ #List supported languages
39
+ result = api_instance.languages_list
40
+ pp result
41
+ rescue Phrase::ApiError => e
42
+ puts "Exception when calling SupportedLanguagesApi->languages_list: #{e}"
43
+ end
44
+ ```
45
+
46
+ ### Parameters
47
+
48
+ This endpoint does not need any parameter.
49
+
50
+ ### Return type
51
+
52
+ Response<(**Hash&lt;String, String&gt;**)>
53
+
54
+ ### Authorization
55
+
56
+ [Basic](../README.md#Basic), [Token](../README.md#Token)
57
+
58
+ ### HTTP request headers
59
+
60
+ - **Content-Type**: Not defined
61
+ - **Accept**: application/json
62
+
@@ -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]
@@ -311,6 +311,84 @@ module Phrase
311
311
  return response, status_code, headers
312
312
  end
313
313
 
314
+ # List project members
315
+ # Get all members active in the project. Access token scope must include `read`.
316
+ # @param project_id [String] Project ID
317
+ # @param [Hash] opts the optional parameters
318
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
319
+ # @option opts [String] :q Specify a query to search for members by name or email (including wildcards).
320
+ # @option opts [String] :job_id Filter members to those assigned to the job identified by this id.
321
+ # @option opts [Integer] :page Page number
322
+ # @option opts [Integer] :per_page Limit on the number of objects to be returned, between 1 and 100. 25 by default
323
+ # @return [Array<ProjectMember>]
324
+ def members_by_project(project_id, opts = {})
325
+ data, _status_code, _headers = members_by_project_with_http_info(project_id, opts)
326
+ data
327
+ end
328
+
329
+ # List project members
330
+ # Get all members active in the project. Access token scope must include &#x60;read&#x60;.
331
+ # @param project_id [String] Project ID
332
+ # @param [Hash] opts the optional parameters
333
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
334
+ # @option opts [String] :q Specify a query to search for members by name or email (including wildcards).
335
+ # @option opts [String] :job_id Filter members to those assigned to the job identified by this id.
336
+ # @option opts [Integer] :page Page number
337
+ # @option opts [Integer] :per_page Limit on the number of objects to be returned, between 1 and 100. 25 by default
338
+ # @return [Array<(Response<(Array<ProjectMember>)>, Integer, Hash)>] Response<(Array<ProjectMember>)> data, response status code and response headers
339
+ def members_by_project_with_http_info(project_id, opts = {})
340
+ if @api_client.config.debugging
341
+ @api_client.config.logger.debug 'Calling API: MembersApi.members_by_project ...'
342
+ end
343
+ # verify the required parameter 'project_id' is set
344
+ if @api_client.config.client_side_validation && project_id.nil?
345
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling MembersApi.members_by_project"
346
+ end
347
+ # resource path
348
+ local_var_path = '/projects/{project_id}/members'.sub('{' + 'project_id' + '}', CGI.escape(project_id.to_s))
349
+
350
+ # query parameters
351
+ query_params = opts[:query_params] || {}
352
+ query_params[:'q'] = opts[:'q'] if !opts[:'q'].nil?
353
+ query_params[:'job_id'] = opts[:'job_id'] if !opts[:'job_id'].nil?
354
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
355
+ query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
356
+
357
+ # header parameters
358
+ header_params = opts[:header_params] || {}
359
+ # HTTP header 'Accept' (if needed)
360
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
361
+ header_params[:'X-PhraseApp-OTP'] = opts[:'x_phrase_app_otp'] if !opts[:'x_phrase_app_otp'].nil?
362
+
363
+ # form parameters
364
+ form_params = opts[:form_params] || {}
365
+
366
+ # http body (model)
367
+ post_body = opts[:body]
368
+
369
+ # return_type
370
+ return_type = opts[:return_type] || 'Array<ProjectMember>'
371
+
372
+ # auth_names
373
+ auth_names = opts[:auth_names] || ['Basic', 'Token']
374
+
375
+ new_options = opts.merge(
376
+ :header_params => header_params,
377
+ :query_params => query_params,
378
+ :form_params => form_params,
379
+ :body => post_body,
380
+ :auth_names => auth_names,
381
+ :return_type => return_type
382
+ )
383
+
384
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
385
+ if @api_client.config.debugging
386
+ @api_client.config.logger.debug "API called: MembersApi#members_by_project\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
387
+ end
388
+ response = ::Phrase::Response.new(data, headers)
389
+ return response, status_code, headers
390
+ end
391
+
314
392
  # List members
315
393
  # Get all users active in the account. It also lists resources like projects and locales the member has access to. In case nothing is shown the default access from the role is used. Access token scope must include `team.manage`.
316
394
  # @param account_id [String] Account ID
@@ -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] || {}