phrase 4.14.1 → 4.16.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: 45d6f1838ce11f059ebdd0b8edb97904465814670820db88ac973ed769e5ffe9
4
- data.tar.gz: 7e2e8e6b3984121cdb98b7cb2819fe9b82aa96fa2a5e550b31085f93851334dc
3
+ metadata.gz: e432e2a3c0ac7f4cca0314049e1906aa7912174d09139c6bbb8aa335edf45a66
4
+ data.tar.gz: 2a94bb0a932a12cd5a507538e7813e39e84f8b59a6b8129585c44b92adaef2ad
5
5
  SHA512:
6
- metadata.gz: 6701eee93a798aac96f015485b8b08c84801aa01b4a5179291106da017cb44b677806a8dbe203c9abb3b53474ba1c85d021692159bcb9d5a7d16893651ac8b68
7
- data.tar.gz: 6a64754c48c1deb723a68c2d8698c901def5fdbfe8cc56174d7fe8c2aa683eed897ae0edaa52fa2572ca0ee5d500e58e7bd8ca6daca1c3d191ae9e2a278afab1
6
+ metadata.gz: 0bddc49ef3bf05e764e2fe0c9a3945634e9af1fde4edae3b82c348ce3064894718f13eef5604a32183e7c814608928c00a2475f59c839d5191f035859f716668
7
+ data.tar.gz: 5c0f0ce78bebcd554a9b9720fda609301bc8d4f8f2158f9afff5ddcdcd3883524d006f0162b3c9c6bb3131c5b9eddfff9710debaf35e50afd2d5fa3f6e8f7cac
data/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.16.0](https://github.com/phrase/openapi/compare/ruby-v4.15.0...ruby-v4.16.0) (2026-01-09)
4
+
5
+
6
+ ### Features
7
+
8
+ * **API:** Add missing project flags to project details schema #SCD-141 ([#993](https://github.com/phrase/openapi/issues/993)) ([93fbdd7](https://github.com/phrase/openapi/commit/93fbdd76150ed94374ef888ac92c0c9b626de7c8))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **API:** drop invalid account locale params ([#992](https://github.com/phrase/openapi/issues/992)) ([87af83c](https://github.com/phrase/openapi/commit/87af83c94fd7e47340b5393847e93a31127abbe8))
14
+
15
+ ## [4.15.0](https://github.com/phrase/openapi/compare/ruby-v4.14.1...ruby-v4.15.0) (2025-12-11)
16
+
17
+
18
+ ### Features
19
+
20
+ * **API:** Add create comparison endpoint for branches [SCD-549] ([#966](https://github.com/phrase/openapi/issues/966)) ([4099e32](https://github.com/phrase/openapi/commit/4099e32d42744f9d73346077ef30b0f4bd5c849e))
21
+ * **API:** add manual triggering of automations #SCM-953 ([#968](https://github.com/phrase/openapi/issues/968)) ([ebe1c68](https://github.com/phrase/openapi/commit/ebe1c68e472d87ea6c6cd2f76bb421406c30a274))
22
+ * **API:** add use_locale_fallback option to download #SCD-620 ([#976](https://github.com/phrase/openapi/issues/976)) ([9266c68](https://github.com/phrase/openapi/commit/9266c680d8717bb736aed83625858f0b3419da54))
23
+
3
24
  ## [4.14.1](https://github.com/phrase/openapi/compare/ruby-v4.14.0...ruby-v4.14.1) (2025-11-10)
4
25
 
5
26
 
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.14.1
10
+ - Package version: 4.16.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.14.1.gem
59
+ gem install ./phrase-4.16.0.gem
60
60
  ```
61
61
 
62
- (for development, run `gem install --dev ./phrase-4.14.1.gem` to install the development dependencies)
62
+ (for development, run `gem install --dev ./phrase-4.16.0.gem` to install the development dependencies)
63
63
 
64
64
  ## Getting Started
65
65
 
@@ -142,6 +142,7 @@ Class | Method | HTTP request | Description
142
142
  *Phrase::AutomationsApi* | [**automation_deactivate**](docs/AutomationsApi.md#automation_deactivate) | **POST** /accounts/{account_id}/automations/{automation_id}/deactivate | Deactivate an automation
143
143
  *Phrase::AutomationsApi* | [**automation_delete**](docs/AutomationsApi.md#automation_delete) | **DELETE** /accounts/{account_id}/automations/{automation_id} | Destroy automation
144
144
  *Phrase::AutomationsApi* | [**automation_show**](docs/AutomationsApi.md#automation_show) | **GET** /accounts/{account_id}/automations/{automation_id} | Get a single automation
145
+ *Phrase::AutomationsApi* | [**automation_trigger**](docs/AutomationsApi.md#automation_trigger) | **POST** /accounts/{account_id}/automations/{automation_id}/trigger | Trigger an automation
145
146
  *Phrase::AutomationsApi* | [**automation_update**](docs/AutomationsApi.md#automation_update) | **PATCH** /accounts/{account_id}/automations/{automation_id} | Update an automation
146
147
  *Phrase::AutomationsApi* | [**automations_list**](docs/AutomationsApi.md#automations_list) | **GET** /accounts/{account_id}/automations | List automations
147
148
  *Phrase::BlacklistedKeysApi* | [**blacklisted_key_create**](docs/BlacklistedKeysApi.md#blacklisted_key_create) | **POST** /projects/{project_id}/blacklisted_keys | Create a blocked key
@@ -150,6 +151,7 @@ Class | Method | HTTP request | Description
150
151
  *Phrase::BlacklistedKeysApi* | [**blacklisted_key_update**](docs/BlacklistedKeysApi.md#blacklisted_key_update) | **PATCH** /projects/{project_id}/blacklisted_keys/{id} | Update a blocked key
151
152
  *Phrase::BlacklistedKeysApi* | [**blacklisted_keys_list**](docs/BlacklistedKeysApi.md#blacklisted_keys_list) | **GET** /projects/{project_id}/blacklisted_keys | List blocked keys
152
153
  *Phrase::BranchesApi* | [**branch_compare**](docs/BranchesApi.md#branch_compare) | **GET** /projects/{project_id}/branches/{name}/compare | Compare branches
154
+ *Phrase::BranchesApi* | [**branch_comparison_create**](docs/BranchesApi.md#branch_comparison_create) | **POST** /projects/{project_id}/branches/{name}/compare | Create comparison (async.)
153
155
  *Phrase::BranchesApi* | [**branch_create**](docs/BranchesApi.md#branch_create) | **POST** /projects/{project_id}/branches | Create a branch
154
156
  *Phrase::BranchesApi* | [**branch_delete**](docs/BranchesApi.md#branch_delete) | **DELETE** /projects/{project_id}/branches/{name} | Delete a branch
155
157
  *Phrase::BranchesApi* | [**branch_merge**](docs/BranchesApi.md#branch_merge) | **PATCH** /projects/{project_id}/branches/{name}/merge | Merge a branch
@@ -433,6 +435,7 @@ Class | Method | HTTP request | Description
433
435
  - [Phrase::BlacklistedKeyCreateParameters](docs/BlacklistedKeyCreateParameters.md)
434
436
  - [Phrase::BlacklistedKeyUpdateParameters](docs/BlacklistedKeyUpdateParameters.md)
435
437
  - [Phrase::Branch](docs/Branch.md)
438
+ - [Phrase::BranchCreateComparisonParameters](docs/BranchCreateComparisonParameters.md)
436
439
  - [Phrase::BranchCreateParameters](docs/BranchCreateParameters.md)
437
440
  - [Phrase::BranchMergeParameters](docs/BranchMergeParameters.md)
438
441
  - [Phrase::BranchName](docs/BranchName.md)
@@ -9,6 +9,7 @@ Method | HTTP request | Description
9
9
  [**automation_deactivate**](AutomationsApi.md#automation_deactivate) | **POST** /accounts/{account_id}/automations/{automation_id}/deactivate | Deactivate an automation
10
10
  [**automation_delete**](AutomationsApi.md#automation_delete) | **DELETE** /accounts/{account_id}/automations/{automation_id} | Destroy automation
11
11
  [**automation_show**](AutomationsApi.md#automation_show) | **GET** /accounts/{account_id}/automations/{automation_id} | Get a single automation
12
+ [**automation_trigger**](AutomationsApi.md#automation_trigger) | **POST** /accounts/{account_id}/automations/{automation_id}/trigger | Trigger an automation
12
13
  [**automation_update**](AutomationsApi.md#automation_update) | **PATCH** /accounts/{account_id}/automations/{automation_id} | Update an automation
13
14
  [**automations_list**](AutomationsApi.md#automations_list) | **GET** /accounts/{account_id}/automations | List automations
14
15
 
@@ -328,6 +329,68 @@ Response<([**Automation**](Automation.md))>
328
329
  - **Accept**: application/json
329
330
 
330
331
 
332
+ ## automation_trigger
333
+
334
+ > automation_trigger(account_id, id, opts)
335
+
336
+ Trigger an automation
337
+
338
+ Trigger an automation.
339
+
340
+ ### Example
341
+
342
+ ```ruby
343
+ # load the gem
344
+ require 'phrase'
345
+ # setup authorization
346
+ Phrase.configure do |config|
347
+ # Configure HTTP basic authorization: Basic
348
+ config.username = 'YOUR USERNAME'
349
+ config.password = 'YOUR PASSWORD'
350
+
351
+ # Configure API key authorization: Token
352
+ config.api_key['Authorization'] = 'YOUR API KEY'
353
+ config.api_key_prefix['Authorization'] = 'token'
354
+ end
355
+
356
+ api_instance = Phrase::AutomationsApi.new
357
+ account_id = 'account_id_example' # String | Account ID
358
+ id = 'id_example' # String | ID
359
+ opts = {
360
+ x_phrase_app_otp: 'x_phrase_app_otp_example' # String | Two-Factor-Authentication token (optional)
361
+ }
362
+
363
+ begin
364
+ #Trigger an automation
365
+ api_instance.automation_trigger(account_id, id, opts)
366
+ rescue Phrase::ApiError => e
367
+ puts "Exception when calling AutomationsApi->automation_trigger: #{e}"
368
+ end
369
+ ```
370
+
371
+ ### Parameters
372
+
373
+
374
+ Name | Type | Description | Notes
375
+ ------------- | ------------- | ------------- | -------------
376
+ **account_id** | **String**| Account ID |
377
+ **id** | **String**| ID |
378
+ **x_phrase_app_otp** | **String**| Two-Factor-Authentication token (optional) | [optional]
379
+
380
+ ### Return type
381
+
382
+ Response<(nil (empty response body))>
383
+
384
+ ### Authorization
385
+
386
+ [Basic](../README.md#Basic), [Token](../README.md#Token)
387
+
388
+ ### HTTP request headers
389
+
390
+ - **Content-Type**: Not defined
391
+ - **Accept**: Not defined
392
+
393
+
331
394
  ## automation_update
332
395
 
333
396
  > Automation automation_update(account_id, id, automations_create_parameters1, opts)
@@ -0,0 +1,17 @@
1
+ # Phrase::BranchCreateComparisonParameters
2
+
3
+ ## Properties
4
+
5
+ Name | Type | Description | Notes
6
+ ------------ | ------------- | ------------- | -------------
7
+ **direction** | **String** | direction of comparison, possible values are sync or merge (only for v2 branches) | [optional] [default to &#39;merge&#39;]
8
+
9
+ ## Code Sample
10
+
11
+ ```ruby
12
+ require 'Phrase'
13
+
14
+ instance = Phrase::BranchCreateComparisonParameters.new(direction: merge)
15
+ ```
16
+
17
+
data/docs/BranchesApi.md CHANGED
@@ -5,6 +5,7 @@ All URIs are relative to *https://api.phrase.com/v2*
5
5
  Method | HTTP request | Description
6
6
  ------------- | ------------- | -------------
7
7
  [**branch_compare**](BranchesApi.md#branch_compare) | **GET** /projects/{project_id}/branches/{name}/compare | Compare branches
8
+ [**branch_comparison_create**](BranchesApi.md#branch_comparison_create) | **POST** /projects/{project_id}/branches/{name}/compare | Create comparison (async.)
8
9
  [**branch_create**](BranchesApi.md#branch_create) | **POST** /projects/{project_id}/branches | Create a branch
9
10
  [**branch_delete**](BranchesApi.md#branch_delete) | **DELETE** /projects/{project_id}/branches/{name} | Delete a branch
10
11
  [**branch_merge**](BranchesApi.md#branch_merge) | **PATCH** /projects/{project_id}/branches/{name}/merge | Merge a branch
@@ -21,7 +22,7 @@ Method | HTTP request | Description
21
22
 
22
23
  Compare branches
23
24
 
24
- Compare branch with main branch. *Note: Comparing a branch may take several minutes depending on the project size.*
25
+ Compare branch with main branch. *Note: Comparing a branch may take several minutes depending on the project size. Consider using the `POST /compare` endpoint for creating comparison asynchronously.*
25
26
 
26
27
  ### Example
27
28
 
@@ -77,6 +78,70 @@ Response<(nil (empty response body))>
77
78
  - **Accept**: Not defined
78
79
 
79
80
 
81
+ ## branch_comparison_create
82
+
83
+ > branch_comparison_create(project_id, name, branch_create_comparison_parameters, opts)
84
+
85
+ Create comparison (async.)
86
+
87
+ Create a branch comparison asynchronously.
88
+
89
+ ### Example
90
+
91
+ ```ruby
92
+ # load the gem
93
+ require 'phrase'
94
+ # setup authorization
95
+ Phrase.configure do |config|
96
+ # Configure HTTP basic authorization: Basic
97
+ config.username = 'YOUR USERNAME'
98
+ config.password = 'YOUR PASSWORD'
99
+
100
+ # Configure API key authorization: Token
101
+ config.api_key['Authorization'] = 'YOUR API KEY'
102
+ config.api_key_prefix['Authorization'] = 'token'
103
+ end
104
+
105
+ api_instance = Phrase::BranchesApi.new
106
+ project_id = 'project_id_example' # String | Project ID
107
+ name = 'name_example' # String | name
108
+ branch_create_comparison_parameters = Phrase::BranchCreateComparisonParameters.new # BranchCreateComparisonParameters |
109
+ opts = {
110
+ x_phrase_app_otp: 'x_phrase_app_otp_example' # String | Two-Factor-Authentication token (optional)
111
+ }
112
+
113
+ begin
114
+ #Create comparison (async.)
115
+ api_instance.branch_comparison_create(project_id, name, branch_create_comparison_parameters, opts)
116
+ rescue Phrase::ApiError => e
117
+ puts "Exception when calling BranchesApi->branch_comparison_create: #{e}"
118
+ end
119
+ ```
120
+
121
+ ### Parameters
122
+
123
+
124
+ Name | Type | Description | Notes
125
+ ------------- | ------------- | ------------- | -------------
126
+ **project_id** | **String**| Project ID |
127
+ **name** | **String**| name |
128
+ **branch_create_comparison_parameters** | [**BranchCreateComparisonParameters**](BranchCreateComparisonParameters.md)| |
129
+ **x_phrase_app_otp** | **String**| Two-Factor-Authentication token (optional) | [optional]
130
+
131
+ ### Return type
132
+
133
+ Response<(nil (empty response body))>
134
+
135
+ ### Authorization
136
+
137
+ [Basic](../README.md#Basic), [Token](../README.md#Token)
138
+
139
+ ### HTTP request headers
140
+
141
+ - **Content-Type**: application/json
142
+ - **Accept**: Not defined
143
+
144
+
80
145
  ## branch_create
81
146
 
82
147
  > Branch branch_create(project_id, branch_create_parameters, opts)
@@ -335,7 +400,7 @@ Response<([**Branch**](Branch.md))>
335
400
 
336
401
  Sync a branch
337
402
 
338
- Sync an existing branch. *Note: Only available for branches created with new branching. New branching is currently in private beta*
403
+ Sync an existing branch. *Note: Only available for branches created with new branching.*
339
404
 
340
405
  ### Example
341
406
 
@@ -38,7 +38,7 @@ instance = Phrase::KeyCreateParameters.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@38171f9,
41
+ screenshot: [B@3c148f23,
42
42
  remove_screenshot: null,
43
43
  unformatted: null,
44
44
  default_translation_content: Default translation content,
@@ -36,7 +36,7 @@ instance = Phrase::KeyUpdateParameters.new(branch: my-feature-branch,
36
36
  data_type: number,
37
37
  tags: awesome-feature,needs-proofreading,
38
38
  max_characters_allowed: 140,
39
- screenshot: [B@3614cd03,
39
+ screenshot: [B@6fe8e276,
40
40
  remove_screenshot: null,
41
41
  unformatted: null,
42
42
  xml_space_preserve: null,
@@ -16,7 +16,8 @@ Name | Type | Description | Notes
16
16
  **include_unverified_translations** | **Boolean** | if set to false unverified translations are excluded | [optional]
17
17
  **use_last_reviewed_version** | **Boolean** | If set to true the last reviewed version of a translation is used. This is only available if the review workflow is enabled for the project. | [optional]
18
18
  **locale_ids** | **Array&lt;String&gt;** | Locale IDs or locale names | [optional]
19
- **fallback_locale_id** | **String** | If a key has no translation in the locale being downloaded the translation in the fallback locale will be used. Provide the ID of the locale that should be used as the fallback. Requires include_empty_translations to be set to &#x60;true&#x60;. | [optional]
19
+ **fallback_locale_id** | **String** | If a key has no translation in the locale being downloaded, the translation in the fallback locale will be used. Provide the ID of the locale that should be used as the fallback. Requires &#x60;include_empty_translations&#x60; to be set to &#x60;true&#x60;. Mutually exclusive with &#x60;use_locale_fallback&#x60;. | [optional]
20
+ **use_locale_fallback** | **Boolean** | If a key has no translation in the locale being downloaded, the translation in the fallback locale will be used. Fallback locale is defined in [locale&#39;s settings](/en/api/strings/locales/update-a-locale#body-fallback-locale-id). Requires &#x60;include_empty_translations&#x60; to be set to &#x60;true&#x60;. Mutually exclusive with &#x60;fallback_locale_id&#x60;. | [optional]
20
21
  **source_locale_id** | **String** | Provides the source language of a corresponding job as the source language of the generated locale file. This parameter will be ignored unless used in combination with a &#x60;tag&#x60; parameter indicating a specific job. | [optional]
21
22
  **custom_metadata_filters** | **Object** | Custom metadata filters. Provide the name of the metadata field and the value to filter by. Only keys with matching metadata will be included in the download. | [optional]
22
23
  **updated_since** | **String** | Only include translations and keys that have been updated since the given date. The date must be in ISO 8601 format (e.g., &#x60;2023-01-01T00:00:00Z&#x60;). | [optional]
@@ -39,6 +40,7 @@ instance = Phrase::LocaleDownloadCreateParameters.new(file_format: yml,
39
40
  use_last_reviewed_version: null,
40
41
  locale_ids: [&quot;de&quot;,&quot;en&quot;],
41
42
  fallback_locale_id: abcd1234abcd1234abcd1234abcd1234,
43
+ use_locale_fallback: false,
42
44
  source_locale_id: abcd1234abcd1234abcd1234abcd1234,
43
45
  custom_metadata_filters: null,
44
46
  updated_since: 2023-01-01T00:00:00Z)
@@ -4,7 +4,6 @@
4
4
 
5
5
  Name | Type | Description | Notes
6
6
  ------------ | ------------- | ------------- | -------------
7
- **id** | **String** | | [optional]
8
7
  **name** | **String** | | [optional]
9
8
  **code** | **String** | | [optional]
10
9
  **project** | [**ProjectShort**](ProjectShort.md) | | [optional]
@@ -14,8 +13,7 @@ Name | Type | Description | Notes
14
13
  ```ruby
15
14
  require 'Phrase'
16
15
 
17
- instance = Phrase::LocalePreview1.new(id: null,
18
- name: null,
16
+ instance = Phrase::LocalePreview1.new(name: null,
19
17
  code: null,
20
18
  project: null)
21
19
  ```
data/docs/LocalesApi.md CHANGED
@@ -41,9 +41,7 @@ end
41
41
  api_instance = Phrase::LocalesApi.new
42
42
  id = 'id_example' # String | ID
43
43
  opts = {
44
- x_phrase_app_otp: 'x_phrase_app_otp_example', # String | Two-Factor-Authentication token (optional)
45
- page: 1, # Integer | Page number
46
- per_page: 25 # Integer | Limit on the number of objects to be returned, between 1 and 100. 25 by default
44
+ x_phrase_app_otp: 'x_phrase_app_otp_example' # String | Two-Factor-Authentication token (optional)
47
45
  }
48
46
 
49
47
  begin
@@ -62,8 +60,6 @@ Name | Type | Description | Notes
62
60
  ------------- | ------------- | ------------- | -------------
63
61
  **id** | **String**| ID |
64
62
  **x_phrase_app_otp** | **String**| Two-Factor-Authentication token (optional) | [optional]
65
- **page** | **Integer**| Page number | [optional]
66
- **per_page** | **Integer**| Limit on the number of objects to be returned, between 1 and 100. 25 by default | [optional]
67
63
 
68
64
  ### Return type
69
65
 
@@ -251,7 +247,8 @@ opts = {
251
247
  skip_unverified_translations: true, # Boolean | Indicates whether the locale file should skip all unverified translations. This parameter is deprecated and should be replaced with `include_unverified_translations`.
252
248
  include_unverified_translations: true, # Boolean | if set to false unverified translations are excluded
253
249
  use_last_reviewed_version: true, # Boolean | If set to true the last reviewed version of a translation is used. This is only available if the review workflow is enabled for the project.
254
- fallback_locale_id: 'fallback_locale_id_example', # String | If a key has no translation in the locale being downloaded the translation in the fallback locale will be used. Provide the ID of the locale that should be used as the fallback. Requires include_empty_translations to be set to `true`.
250
+ fallback_locale_id: 'fallback_locale_id_example', # String | If a key has no translation in the locale being downloaded, the translation in the fallback locale will be used. Provide the ID of the locale that should be used as the fallback. Requires `include_empty_translations` to be set to `true`. Mutually exclusive with `use_locale_fallback`.
251
+ use_locale_fallback: true, # Boolean | If a key has no translation in the locale being downloaded, the translation in the fallback locale will be used. Fallback locale is defined in [locale's settings](/en/api/strings/locales/update-a-locale#body-fallback-locale-id). Requires `include_empty_translations` to be set to `true`. Mutually exclusive with `fallback_locale_id`.
255
252
  source_locale_id: 'source_locale_id_example', # String | Provides the source language of a corresponding job as the source language of the generated locale file. This parameter will be ignored unless used in combination with a `tag` parameter indicating a specific job.
256
253
  translation_key_prefix: 'prefix_', # String | Download all translation keys, and remove the specified prefix where possible. Warning: this may create duplicate key names if other keys share the same name after the prefix is removed.
257
254
  filter_by_prefix: true, # Boolean | Only download translation keys containing the specified prefix, and remove the prefix from the generated file.
@@ -293,7 +290,8 @@ Name | Type | Description | Notes
293
290
  **skip_unverified_translations** | **Boolean**| Indicates whether the locale file should skip all unverified translations. This parameter is deprecated and should be replaced with &#x60;include_unverified_translations&#x60;. | [optional]
294
291
  **include_unverified_translations** | **Boolean**| if set to false unverified translations are excluded | [optional]
295
292
  **use_last_reviewed_version** | **Boolean**| If set to true the last reviewed version of a translation is used. This is only available if the review workflow is enabled for the project. | [optional]
296
- **fallback_locale_id** | **String**| If a key has no translation in the locale being downloaded the translation in the fallback locale will be used. Provide the ID of the locale that should be used as the fallback. Requires include_empty_translations to be set to &#x60;true&#x60;. | [optional]
293
+ **fallback_locale_id** | **String**| If a key has no translation in the locale being downloaded, the translation in the fallback locale will be used. Provide the ID of the locale that should be used as the fallback. Requires &#x60;include_empty_translations&#x60; to be set to &#x60;true&#x60;. Mutually exclusive with &#x60;use_locale_fallback&#x60;. | [optional]
294
+ **use_locale_fallback** | **Boolean**| If a key has no translation in the locale being downloaded, the translation in the fallback locale will be used. Fallback locale is defined in [locale&#39;s settings](/en/api/strings/locales/update-a-locale#body-fallback-locale-id). Requires &#x60;include_empty_translations&#x60; to be set to &#x60;true&#x60;. Mutually exclusive with &#x60;fallback_locale_id&#x60;. | [optional]
297
295
  **source_locale_id** | **String**| Provides the source language of a corresponding job as the source language of the generated locale file. This parameter will be ignored unless used in combination with a &#x60;tag&#x60; parameter indicating a specific job. | [optional]
298
296
  **translation_key_prefix** | **String**| Download all translation keys, and remove the specified prefix where possible. Warning: this may create duplicate key names if other keys share the same name after the prefix is removed. | [optional]
299
297
  **filter_by_prefix** | **Boolean**| Only download translation keys containing the specified prefix, and remove the prefix from the generated file. | [optional]
@@ -37,7 +37,7 @@ instance = Phrase::ProjectCreateParameters.new(name: My Android Project,
37
37
  main_format: yml,
38
38
  media: Python,
39
39
  shares_translation_memory: true,
40
- project_image: [B@37d85eec,
40
+ project_image: [B@1d05cbae,
41
41
  remove_project_image: null,
42
42
  account_id: abcd1234,
43
43
  point_of_contact: abcd1234,
@@ -16,6 +16,20 @@ Name | Type | Description | Notes
16
16
  **created_at** | **Time** | | [optional]
17
17
  **updated_at** | **Time** | | [optional]
18
18
  **shares_translation_memory** | **Boolean** | | [optional]
19
+ **machine_translation_enabled** | **Boolean** | | [optional]
20
+ **zero_plural_form_enabled** | **Boolean** | | [optional]
21
+ **enable_all_data_type_translation_keys_for_translators** | **Boolean** | | [optional]
22
+ **enable_icu_message_format** | **Boolean** | | [optional]
23
+ **enable_branching** | **Boolean** | | [optional]
24
+ **protect_master_branch** | **Boolean** | | [optional]
25
+ **autotranslate_enabled** | **Boolean** | | [optional]
26
+ **autotranslate_check_new_translation_keys** | **Boolean** | | [optional]
27
+ **autotranslate_check_new_uploads** | **Boolean** | | [optional]
28
+ **autotranslate_check_new_locales** | **Boolean** | | [optional]
29
+ **autotranslate_mark_as_unverified** | **Boolean** | | [optional]
30
+ **autotranslate_use_machine_translation** | **Boolean** | | [optional]
31
+ **autotranslate_use_translation_memory** | **Boolean** | | [optional]
32
+ **default_encoding** | **String** | | [optional]
19
33
 
20
34
  ## Code Sample
21
35
 
@@ -33,7 +47,21 @@ instance = Phrase::ProjectDetails.new(id: null,
33
47
  point_of_contact: null,
34
48
  created_at: null,
35
49
  updated_at: null,
36
- shares_translation_memory: null)
50
+ shares_translation_memory: null,
51
+ machine_translation_enabled: true,
52
+ zero_plural_form_enabled: true,
53
+ enable_all_data_type_translation_keys_for_translators: false,
54
+ enable_icu_message_format: false,
55
+ enable_branching: false,
56
+ protect_master_branch: false,
57
+ autotranslate_enabled: false,
58
+ autotranslate_check_new_translation_keys: false,
59
+ autotranslate_check_new_uploads: false,
60
+ autotranslate_check_new_locales: false,
61
+ autotranslate_mark_as_unverified: false,
62
+ autotranslate_use_machine_translation: false,
63
+ autotranslate_use_translation_memory: true,
64
+ default_encoding: UTF-8)
37
65
  ```
38
66
 
39
67
 
@@ -39,7 +39,7 @@ instance = Phrase::ProjectUpdateParameters.new(account_id: abcd1234,
39
39
  main_format: yml,
40
40
  media: Python,
41
41
  shares_translation_memory: true,
42
- project_image: [B@14443c86,
42
+ project_image: [B@69075512,
43
43
  remove_project_image: false,
44
44
  workflow: review,
45
45
  machine_translation_enabled: true,
@@ -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@76db7ef0)
20
+ filename: [B@fff7dc9)
21
21
  ```
22
22
 
23
23
 
@@ -367,6 +367,76 @@ module Phrase
367
367
  return response, status_code, headers
368
368
  end
369
369
 
370
+ # Trigger an automation
371
+ # Trigger an automation.
372
+ # @param account_id [String] Account ID
373
+ # @param id [String] ID
374
+ # @param [Hash] opts the optional parameters
375
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
376
+ # @return [nil]
377
+ def automation_trigger(account_id, id, opts = {})
378
+ data, _status_code, _headers = automation_trigger_with_http_info(account_id, id, opts)
379
+ data
380
+ end
381
+
382
+ # Trigger an automation
383
+ # Trigger an automation.
384
+ # @param account_id [String] Account ID
385
+ # @param id [String] ID
386
+ # @param [Hash] opts the optional parameters
387
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
388
+ # @return [Array<(Response, Integer, Hash)>] Response<(nil, response status code and response headers
389
+ def automation_trigger_with_http_info(account_id, id, opts = {})
390
+ if @api_client.config.debugging
391
+ @api_client.config.logger.debug 'Calling API: AutomationsApi.automation_trigger ...'
392
+ end
393
+ # verify the required parameter 'account_id' is set
394
+ if @api_client.config.client_side_validation && account_id.nil?
395
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling AutomationsApi.automation_trigger"
396
+ end
397
+ # verify the required parameter 'id' is set
398
+ if @api_client.config.client_side_validation && id.nil?
399
+ fail ArgumentError, "Missing the required parameter 'id' when calling AutomationsApi.automation_trigger"
400
+ end
401
+ # resource path
402
+ local_var_path = '/accounts/{account_id}/automations/{automation_id}/trigger'.sub('{' + 'account_id' + '}', CGI.escape(account_id.to_s)).sub('{' + 'id' + '}', CGI.escape(id.to_s))
403
+
404
+ # query parameters
405
+ query_params = opts[:query_params] || {}
406
+
407
+ # header parameters
408
+ header_params = opts[:header_params] || {}
409
+ header_params[:'X-PhraseApp-OTP'] = opts[:'x_phrase_app_otp'] if !opts[:'x_phrase_app_otp'].nil?
410
+
411
+ # form parameters
412
+ form_params = opts[:form_params] || {}
413
+
414
+ # http body (model)
415
+ post_body = opts[:body]
416
+
417
+ # return_type
418
+ return_type = opts[:return_type]
419
+
420
+ # auth_names
421
+ auth_names = opts[:auth_names] || ['Basic', 'Token']
422
+
423
+ new_options = opts.merge(
424
+ :header_params => header_params,
425
+ :query_params => query_params,
426
+ :form_params => form_params,
427
+ :body => post_body,
428
+ :auth_names => auth_names,
429
+ :return_type => return_type
430
+ )
431
+
432
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
433
+ if @api_client.config.debugging
434
+ @api_client.config.logger.debug "API called: AutomationsApi#automation_trigger\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
435
+ end
436
+ response = ::Phrase::Response.new(data, headers)
437
+ return response, status_code, headers
438
+ end
439
+
370
440
  # Update an automation
371
441
  # Update an existing automation. For feature availability, see [Jobs (Strings)](https://support.phrase.com/hc/en-us/articles/5784100517788-Jobs-Strings).
372
442
  # @param account_id [String] Account ID
@@ -8,7 +8,7 @@ module Phrase
8
8
  @api_client = api_client
9
9
  end
10
10
  # Compare branches
11
- # Compare branch with main branch. *Note: Comparing a branch may take several minutes depending on the project size.*
11
+ # Compare branch with main branch. *Note: Comparing a branch may take several minutes depending on the project size. Consider using the `POST /compare` endpoint for creating comparison asynchronously.*
12
12
  # @param project_id [String] Project ID
13
13
  # @param name [String] name
14
14
  # @param [Hash] opts the optional parameters
@@ -20,7 +20,7 @@ module Phrase
20
20
  end
21
21
 
22
22
  # Compare branches
23
- # Compare branch with main branch. *Note: Comparing a branch may take several minutes depending on the project size.*
23
+ # Compare branch with main branch. *Note: Comparing a branch may take several minutes depending on the project size. Consider using the &#x60;POST /compare&#x60; endpoint for creating comparison asynchronously.*
24
24
  # @param project_id [String] Project ID
25
25
  # @param name [String] name
26
26
  # @param [Hash] opts the optional parameters
@@ -77,6 +77,84 @@ module Phrase
77
77
  return response, status_code, headers
78
78
  end
79
79
 
80
+ # Create comparison (async.)
81
+ # Create a branch comparison asynchronously.
82
+ # @param project_id [String] Project ID
83
+ # @param name [String] name
84
+ # @param branch_create_comparison_parameters [BranchCreateComparisonParameters]
85
+ # @param [Hash] opts the optional parameters
86
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
87
+ # @return [nil]
88
+ def branch_comparison_create(project_id, name, branch_create_comparison_parameters, opts = {})
89
+ data, _status_code, _headers = branch_comparison_create_with_http_info(project_id, name, branch_create_comparison_parameters, opts)
90
+ data
91
+ end
92
+
93
+ # Create comparison (async.)
94
+ # Create a branch comparison asynchronously.
95
+ # @param project_id [String] Project ID
96
+ # @param name [String] name
97
+ # @param branch_create_comparison_parameters [BranchCreateComparisonParameters]
98
+ # @param [Hash] opts the optional parameters
99
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
100
+ # @return [Array<(Response, Integer, Hash)>] Response<(nil, response status code and response headers
101
+ def branch_comparison_create_with_http_info(project_id, name, branch_create_comparison_parameters, opts = {})
102
+ if @api_client.config.debugging
103
+ @api_client.config.logger.debug 'Calling API: BranchesApi.branch_comparison_create ...'
104
+ end
105
+ # verify the required parameter 'project_id' is set
106
+ if @api_client.config.client_side_validation && project_id.nil?
107
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling BranchesApi.branch_comparison_create"
108
+ end
109
+ # verify the required parameter 'name' is set
110
+ if @api_client.config.client_side_validation && name.nil?
111
+ fail ArgumentError, "Missing the required parameter 'name' when calling BranchesApi.branch_comparison_create"
112
+ end
113
+ # verify the required parameter 'branch_create_comparison_parameters' is set
114
+ if @api_client.config.client_side_validation && branch_create_comparison_parameters.nil?
115
+ fail ArgumentError, "Missing the required parameter 'branch_create_comparison_parameters' when calling BranchesApi.branch_comparison_create"
116
+ end
117
+ # resource path
118
+ local_var_path = '/projects/{project_id}/branches/{name}/compare'.sub('{' + 'project_id' + '}', CGI.escape(project_id.to_s)).sub('{' + 'name' + '}', CGI.escape(name.to_s))
119
+
120
+ # query parameters
121
+ query_params = opts[:query_params] || {}
122
+
123
+ # header parameters
124
+ header_params = opts[:header_params] || {}
125
+ # HTTP header 'Content-Type'
126
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
127
+ header_params[:'X-PhraseApp-OTP'] = opts[:'x_phrase_app_otp'] if !opts[:'x_phrase_app_otp'].nil?
128
+
129
+ # form parameters
130
+ form_params = opts[:form_params] || {}
131
+
132
+ # http body (model)
133
+ post_body = opts[:body] || @api_client.object_to_http_body(branch_create_comparison_parameters)
134
+
135
+ # return_type
136
+ return_type = opts[:return_type]
137
+
138
+ # auth_names
139
+ auth_names = opts[:auth_names] || ['Basic', 'Token']
140
+
141
+ new_options = opts.merge(
142
+ :header_params => header_params,
143
+ :query_params => query_params,
144
+ :form_params => form_params,
145
+ :body => post_body,
146
+ :auth_names => auth_names,
147
+ :return_type => return_type
148
+ )
149
+
150
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
151
+ if @api_client.config.debugging
152
+ @api_client.config.logger.debug "API called: BranchesApi#branch_comparison_create\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
153
+ end
154
+ response = ::Phrase::Response.new(data, headers)
155
+ return response, status_code, headers
156
+ end
157
+
80
158
  # Create a branch
81
159
  # Create a new branch. *Note: Creating a new branch may take several minutes depending on the project size.*
82
160
  # @param project_id [String] Project ID
@@ -372,7 +450,7 @@ module Phrase
372
450
  end
373
451
 
374
452
  # Sync a branch
375
- # Sync an existing branch. *Note: Only available for branches created with new branching. New branching is currently in private beta*
453
+ # Sync an existing branch. *Note: Only available for branches created with new branching.*
376
454
  # @param project_id [String] Project ID
377
455
  # @param name [String] name
378
456
  # @param branch_sync_parameters [BranchSyncParameters]
@@ -385,7 +463,7 @@ module Phrase
385
463
  end
386
464
 
387
465
  # Sync a branch
388
- # Sync an existing branch. *Note: Only available for branches created with new branching. New branching is currently in private beta*
466
+ # Sync an existing branch. *Note: Only available for branches created with new branching.*
389
467
  # @param project_id [String] Project ID
390
468
  # @param name [String] name
391
469
  # @param branch_sync_parameters [BranchSyncParameters]