phrase 4.25.0 → 4.26.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 (66) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/README.md +15 -4
  4. data/docs/AutomationEvent.md +33 -0
  5. data/docs/AutomationEventProject.md +19 -0
  6. data/docs/AutomationEventsApi.md +168 -0
  7. data/docs/AutomationsCreateParameters.md +1 -1
  8. data/docs/AutomationsCreateParameters1.md +1 -1
  9. data/docs/DocumentsApi.md +4 -4
  10. data/docs/ICUApi.md +1 -1
  11. data/docs/IcuSkeletonError.md +17 -0
  12. data/docs/IcuSkeletonParameters.md +11 -11
  13. data/docs/JobsApi.md +2 -2
  14. data/docs/KeyCreateParameters.md +1 -1
  15. data/docs/KeyFormatAnnotationsApi.md +74 -0
  16. data/docs/KeyFormatAnnotationsList200ResponseInner.md +19 -0
  17. data/docs/KeyLinksBatchDestroyParameters.md +6 -4
  18. data/docs/KeyLinksCreateParameters.md +2 -2
  19. data/docs/KeyUpdateParameters.md +1 -1
  20. data/docs/LinkedKeysApi.md +14 -13
  21. data/docs/PreTranslation.md +29 -0
  22. data/docs/PreTranslationCreateParameters.md +19 -0
  23. data/docs/PreTranslationsApi.md +210 -0
  24. data/docs/ProjectCreateParameters.md +1 -1
  25. data/docs/ProjectUpdateParameters.md +1 -1
  26. data/docs/ScreenshotUpdateParameters.md +1 -1
  27. data/docs/ScreenshotsApi.md +2 -2
  28. data/lib/phrase/api/automation_events_api.rb +215 -0
  29. data/lib/phrase/api/documents_api.rb +6 -6
  30. data/lib/phrase/api/icu_api.rb +2 -6
  31. data/lib/phrase/api/key_format_annotations_api.rb +85 -0
  32. data/lib/phrase/api/linked_keys_api.rb +19 -23
  33. data/lib/phrase/api/pre_translations_api.rb +240 -0
  34. data/lib/phrase/api/screenshots_api.rb +4 -4
  35. data/lib/phrase/models/automation_event.rb +325 -0
  36. data/lib/phrase/models/automation_event_project.rb +208 -0
  37. data/lib/phrase/models/automations_create_parameters.rb +1 -1
  38. data/lib/phrase/models/automations_create_parameters1.rb +1 -1
  39. data/lib/phrase/models/{key_links_index400_response.rb → icu_skeleton_error.rb} +11 -10
  40. data/lib/phrase/models/icu_skeleton_parameters.rb +6 -6
  41. data/lib/phrase/models/key_format_annotations_list200_response_inner.rb +207 -0
  42. data/lib/phrase/models/key_links_batch_destroy_parameters.rb +52 -6
  43. data/lib/phrase/models/key_links_create_parameters.rb +1 -1
  44. data/lib/phrase/models/pre_translation.rb +301 -0
  45. data/lib/phrase/models/pre_translation_create_parameters.rb +241 -0
  46. data/lib/phrase/response.rb +2 -2
  47. data/lib/phrase/version.rb +1 -1
  48. data/lib/phrase.rb +9 -1
  49. data/phrase.gemspec +1 -1
  50. data/spec/api/automation_events_api_spec.rb +67 -0
  51. data/spec/api/documents_api_spec.rb +3 -3
  52. data/spec/api/icu_api_spec.rb +1 -1
  53. data/spec/api/key_format_annotations_api_spec.rb +38 -0
  54. data/spec/api/linked_keys_api_spec.rb +7 -7
  55. data/spec/api/pre_translations_api_spec.rb +70 -0
  56. data/spec/api/screenshots_api_spec.rb +2 -2
  57. data/spec/models/automation_event_project_spec.rb +35 -0
  58. data/spec/models/automation_event_spec.rb +85 -0
  59. data/spec/models/{key_links_index400_response_spec.rb → icu_skeleton_error_spec.rb} +7 -7
  60. data/spec/models/key_format_annotations_list200_response_inner_spec.rb +35 -0
  61. data/spec/models/key_links_batch_destroy_parameters_spec.rb +10 -0
  62. data/spec/models/pre_translation_create_parameters_spec.rb +39 -0
  63. data/spec/models/pre_translation_spec.rb +73 -0
  64. data/spec/response_spec.rb +53 -0
  65. metadata +291 -257
  66. data/docs/KeyLinksIndex400Response.md +0 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e6cad43dbdeb14af43039a96509f173dcd8c3358bbaab868cb16cf04cb4fc05f
4
- data.tar.gz: 3721a11b575861aad15b88d6dd410dd826405f57178286542dc37149de357b73
3
+ metadata.gz: 950c760b4ff662d461dc3b5ee1c2490949e2754537a02c512108ee2802eb6e37
4
+ data.tar.gz: 151f613ba922d317f0f492c9a3993cfe98718a68eaa64fe1f43709e9d98c2af0
5
5
  SHA512:
6
- metadata.gz: 427e8f756767ed00efba125b3f5e168b51ec77b041e8aaa41d9af0a0a19a553a433941f5bc1988f2ab069c95170b8491fca8b4c5639c0590e94fe0eead400807
7
- data.tar.gz: 1e52d069831312b3b82526499e19f6297e9e231e9b3106e6eb301277d667788d88753632cc8b76972be9bb219a0f34370224a14b054c60cfd413eba6bf09f1f8
6
+ metadata.gz: 921fc81ad5bf358718d0fe2bd1367c55511636c6291ce39b1298516ebe3f17efaa7ad0bd4361bba43cfc03fdea31147bab33bb88011f8e7517b9d433cc768a3d
7
+ data.tar.gz: c4cd0d523a362016d9aec722f94946d75969acf5f112d3a139aa843230d8672c189f193ca618eca790e9721099830ab0430cdeeaf6ba0a138092ce0e68324ab9
data/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.26.0](https://github.com/phrase/strings-openapi/compare/ruby-v4.25.0...ruby-v4.26.0) (2026-08-03)
4
+
5
+
6
+ ### Features
7
+
8
+ * **API:** add automation events list endpoints #STRINGS-2826 ([#1227](https://github.com/phrase/strings-openapi/issues/1227)) ([c0ffc83](https://github.com/phrase/strings-openapi/commit/c0ffc839d71105d16b7633f8fea68ff08fbbb5fa))
9
+ * **API:** add key format annotations list endpoint #STRINGS-3028 ([#1222](https://github.com/phrase/strings-openapi/issues/1222)) ([c43cc32](https://github.com/phrase/strings-openapi/commit/c43cc32cd6eadad3d7e2a49e31ca8f070033cf73))
10
+ * **API:** add pre_translations resource to API ([#1224](https://github.com/phrase/strings-openapi/issues/1224)) ([d4ca2d0](https://github.com/phrase/strings-openapi/commit/d4ca2d0a1a47c10ac4b6f0bbe812b52d44974c5c))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **API:** extract cldr_version enum to fix TypeScript client build ([#1223](https://github.com/phrase/strings-openapi/issues/1223)) ([9a3aa7f](https://github.com/phrase/strings-openapi/commit/9a3aa7f8f1cb61676e554db5e72777a347805a53))
16
+ * **API:** improve delete /projects/{project_id}/keys/{id}/key_links documentation ([#1193](https://github.com/phrase/strings-openapi/issues/1193)) ([b0b2e3f](https://github.com/phrase/strings-openapi/commit/b0b2e3f03407fb59dff1fd6004cf77d7a0aab503))
17
+ * **API:** improve delete /projects/{project_id}/keys/{id}/key_links/{child_key_id} documentation ([#1194](https://github.com/phrase/strings-openapi/issues/1194)) ([c0055b4](https://github.com/phrase/strings-openapi/commit/c0055b46575dfdaec95ee6e13f59b68015493f8b))
18
+ * **API:** improve get /projects/{project_id}/keys/{id}/key_links documentation ([#1188](https://github.com/phrase/strings-openapi/issues/1188)) ([41ae4c9](https://github.com/phrase/strings-openapi/commit/41ae4c93f946012032f41c4f206f53c97121d264))
19
+ * **API:** improve post /icu/skeleton documentation ([#1187](https://github.com/phrase/strings-openapi/issues/1187)) ([1bbf2dc](https://github.com/phrase/strings-openapi/commit/1bbf2dcf6306742bc802ff12d9d6ae6962c4182e))
20
+ * **ruby:** pin link-header-parser to >=7.0 and fix its new keyword arg ([#1229](https://github.com/phrase/strings-openapi/issues/1229)) ([34b7d82](https://github.com/phrase/strings-openapi/commit/34b7d8292cd0ea56da3c2f51d1fc76705b7910cd))
21
+
3
22
  ## [4.25.0](https://github.com/phrase/strings-openapi/compare/ruby-v4.24.0...ruby-v4.25.0) (2026-06-25)
4
23
 
5
24
 
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.25.0
10
+ - Package version: 4.26.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.25.0.gem
59
+ gem install ./phrase-4.26.0.gem
60
60
  ```
61
61
 
62
- (for development, run `gem install --dev ./phrase-4.25.0.gem` to install the development dependencies)
62
+ (for development, run `gem install --dev ./phrase-4.26.0.gem` to install the development dependencies)
63
63
 
64
64
  ## Getting Started
65
65
 
@@ -137,6 +137,8 @@ Class | Method | HTTP request | Description
137
137
  *Phrase::AuthorizationsApi* | [**authorization_show**](docs/AuthorizationsApi.md#authorization_show) | **GET** /authorizations/{id} | Get a single authorization
138
138
  *Phrase::AuthorizationsApi* | [**authorization_update**](docs/AuthorizationsApi.md#authorization_update) | **PATCH** /authorizations/{id} | Update an authorization
139
139
  *Phrase::AuthorizationsApi* | [**authorizations_list**](docs/AuthorizationsApi.md#authorizations_list) | **GET** /authorizations | List authorizations
140
+ *Phrase::AutomationEventsApi* | [**account_automation_events_list**](docs/AutomationEventsApi.md#account_automation_events_list) | **GET** /accounts/{account_id}/automation_events | List automation events for an account
141
+ *Phrase::AutomationEventsApi* | [**automation_events_list**](docs/AutomationEventsApi.md#automation_events_list) | **GET** /accounts/{account_id}/automations/{automation_id}/events | List events for an automation
140
142
  *Phrase::AutomationsApi* | [**automation_activate**](docs/AutomationsApi.md#automation_activate) | **POST** /accounts/{account_id}/automations/{automation_id}/activate | Activate an automation
141
143
  *Phrase::AutomationsApi* | [**automation_create**](docs/AutomationsApi.md#automation_create) | **POST** /accounts/{account_id}/automations | Create an automation
142
144
  *Phrase::AutomationsApi* | [**automation_deactivate**](docs/AutomationsApi.md#automation_deactivate) | **POST** /accounts/{account_id}/automations/{automation_id}/deactivate | Deactivate an automation
@@ -258,6 +260,7 @@ Class | Method | HTTP request | Description
258
260
  *Phrase::JobsApi* | [**job_update**](docs/JobsApi.md#job_update) | **PATCH** /projects/{project_id}/jobs/{id} | Update a job
259
261
  *Phrase::JobsApi* | [**jobs_by_account**](docs/JobsApi.md#jobs_by_account) | **GET** /accounts/{account_id}/jobs | List account jobs
260
262
  *Phrase::JobsApi* | [**jobs_list**](docs/JobsApi.md#jobs_list) | **GET** /projects/{project_id}/jobs | List jobs
263
+ *Phrase::KeyFormatAnnotationsApi* | [**key_format_annotations_list**](docs/KeyFormatAnnotationsApi.md#key_format_annotations_list) | **GET** /projects/{project_id}/keys/{id}/format_annotations | List format annotations for a key
261
264
  *Phrase::KeysApi* | [**key_create**](docs/KeysApi.md#key_create) | **POST** /projects/{project_id}/keys | Create a key
262
265
  *Phrase::KeysApi* | [**key_delete**](docs/KeysApi.md#key_delete) | **DELETE** /projects/{project_id}/keys/{id} | Delete a key
263
266
  *Phrase::KeysApi* | [**key_show**](docs/KeysApi.md#key_show) | **GET** /projects/{project_id}/keys/{id} | Get a single key
@@ -310,6 +313,9 @@ Class | Method | HTTP request | Description
310
313
  *Phrase::OrganizationJobTemplatesApi* | [**organization_job_template_update**](docs/OrganizationJobTemplatesApi.md#organization_job_template_update) | **PATCH** /accounts/{account_id}/job_templates/{id} | Update an organization job template
311
314
  *Phrase::OrganizationJobTemplatesApi* | [**organization_job_templates_list**](docs/OrganizationJobTemplatesApi.md#organization_job_templates_list) | **GET** /accounts/{account_id}/job_templates | List organization job templates
312
315
  *Phrase::OrganizationJobTemplatesApi* | [**organization_job_templates_show**](docs/OrganizationJobTemplatesApi.md#organization_job_templates_show) | **GET** /accounts/{account_id}/job_templates/{id} | Get a single organization job template
316
+ *Phrase::PreTranslationsApi* | [**pre_translation_create**](docs/PreTranslationsApi.md#pre_translation_create) | **POST** /projects/{project_id}/pre_translations | Create a pre-translation job
317
+ *Phrase::PreTranslationsApi* | [**pre_translation_show**](docs/PreTranslationsApi.md#pre_translation_show) | **GET** /projects/{project_id}/pre_translations/{id} | Get a single pre-translation job
318
+ *Phrase::PreTranslationsApi* | [**pre_translations_list**](docs/PreTranslationsApi.md#pre_translations_list) | **GET** /projects/{project_id}/pre_translations | List pre-translation jobs
313
319
  *Phrase::ProjectsApi* | [**project_create**](docs/ProjectsApi.md#project_create) | **POST** /projects | Create a project
314
320
  *Phrase::ProjectsApi* | [**project_delete**](docs/ProjectsApi.md#project_delete) | **DELETE** /projects/{id} | Delete a project
315
321
  *Phrase::ProjectsApi* | [**project_show**](docs/ProjectsApi.md#project_show) | **GET** /projects/{id} | Get a single project
@@ -431,6 +437,8 @@ Class | Method | HTTP request | Description
431
437
  - [Phrase::AuthorizationUpdateParameters](docs/AuthorizationUpdateParameters.md)
432
438
  - [Phrase::AuthorizationWithToken](docs/AuthorizationWithToken.md)
433
439
  - [Phrase::Automation](docs/Automation.md)
440
+ - [Phrase::AutomationEvent](docs/AutomationEvent.md)
441
+ - [Phrase::AutomationEventProject](docs/AutomationEventProject.md)
434
442
  - [Phrase::AutomationsCreateParameters](docs/AutomationsCreateParameters.md)
435
443
  - [Phrase::AutomationsCreateParameters1](docs/AutomationsCreateParameters1.md)
436
444
  - [Phrase::BlacklistedKey](docs/BlacklistedKey.md)
@@ -482,6 +490,7 @@ Class | Method | HTTP request | Description
482
490
  - [Phrase::GlossaryTermUpdateParameters](docs/GlossaryTermUpdateParameters.md)
483
491
  - [Phrase::GlossaryUpdateParameters](docs/GlossaryUpdateParameters.md)
484
492
  - [Phrase::Icu](docs/Icu.md)
493
+ - [Phrase::IcuSkeletonError](docs/IcuSkeletonError.md)
485
494
  - [Phrase::IcuSkeletonParameters](docs/IcuSkeletonParameters.md)
486
495
  - [Phrase::Invitation](docs/Invitation.md)
487
496
  - [Phrase::InvitationCreateParameters](docs/InvitationCreateParameters.md)
@@ -518,10 +527,10 @@ Class | Method | HTTP request | Description
518
527
  - [Phrase::JobTemplateUpdateParameters](docs/JobTemplateUpdateParameters.md)
519
528
  - [Phrase::JobUpdateParameters](docs/JobUpdateParameters.md)
520
529
  - [Phrase::KeyCreateParameters](docs/KeyCreateParameters.md)
530
+ - [Phrase::KeyFormatAnnotationsList200ResponseInner](docs/KeyFormatAnnotationsList200ResponseInner.md)
521
531
  - [Phrase::KeyLink](docs/KeyLink.md)
522
532
  - [Phrase::KeyLinksBatchDestroyParameters](docs/KeyLinksBatchDestroyParameters.md)
523
533
  - [Phrase::KeyLinksCreateParameters](docs/KeyLinksCreateParameters.md)
524
- - [Phrase::KeyLinksIndex400Response](docs/KeyLinksIndex400Response.md)
525
534
  - [Phrase::KeyPreview](docs/KeyPreview.md)
526
535
  - [Phrase::KeyUpdateParameters](docs/KeyUpdateParameters.md)
527
536
  - [Phrase::KeysExcludeParameters](docs/KeysExcludeParameters.md)
@@ -560,6 +569,8 @@ Class | Method | HTTP request | Description
560
569
  - [Phrase::OrganizationJobTemplateLocaleUpdateParameters](docs/OrganizationJobTemplateLocaleUpdateParameters.md)
561
570
  - [Phrase::OrganizationJobTemplateLocalesCreateParameters](docs/OrganizationJobTemplateLocalesCreateParameters.md)
562
571
  - [Phrase::OrganizationJobTemplateUpdateParameters](docs/OrganizationJobTemplateUpdateParameters.md)
572
+ - [Phrase::PreTranslation](docs/PreTranslation.md)
573
+ - [Phrase::PreTranslationCreateParameters](docs/PreTranslationCreateParameters.md)
563
574
  - [Phrase::Project](docs/Project.md)
564
575
  - [Phrase::ProjectCreateParameters](docs/ProjectCreateParameters.md)
565
576
  - [Phrase::ProjectDetails](docs/ProjectDetails.md)
@@ -0,0 +1,33 @@
1
+ # Phrase::AutomationEvent
2
+
3
+ ## Properties
4
+
5
+ Name | Type | Description | Notes
6
+ ------------ | ------------- | ------------- | -------------
7
+ **id** | **String** | Unique identifier of the automation event. | [optional]
8
+ **automation_id** | **String** | Identifier of the automation that produced this event. | [optional]
9
+ **state** | **String** | Outcome of the automation run. | [optional]
10
+ **triggered_by** | **String** | What caused the automation to run. | [optional]
11
+ **created_at** | **Time** | Timestamp when the event was created. | [optional]
12
+ **jobs_created** | **Integer** | Number of jobs created during this automation run. | [optional]
13
+ **job_ids** | **Array<String>** | Identifiers of the jobs created during this automation run. | [optional]
14
+ **project** | [**AutomationEventProject**](AutomationEventProject.md) | | [optional]
15
+ **details** | **String** | Error message describing the failure when state is `failure`; null otherwise. | [optional]
16
+
17
+ ## Code Sample
18
+
19
+ ```ruby
20
+ require 'Phrase'
21
+
22
+ instance = Phrase::AutomationEvent.new(id: null,
23
+ automation_id: null,
24
+ state: null,
25
+ triggered_by: null,
26
+ created_at: null,
27
+ jobs_created: null,
28
+ job_ids: null,
29
+ project: null,
30
+ details: null)
31
+ ```
32
+
33
+
@@ -0,0 +1,19 @@
1
+ # Phrase::AutomationEventProject
2
+
3
+ ## Properties
4
+
5
+ Name | Type | Description | Notes
6
+ ------------ | ------------- | ------------- | -------------
7
+ **id** | **String** | Project identifier. | [optional]
8
+ **name** | **String** | Project name. | [optional]
9
+
10
+ ## Code Sample
11
+
12
+ ```ruby
13
+ require 'Phrase'
14
+
15
+ instance = Phrase::AutomationEventProject.new(id: null,
16
+ name: null)
17
+ ```
18
+
19
+
@@ -0,0 +1,168 @@
1
+ # Phrase::AutomationEventsApi
2
+
3
+ All URIs are relative to *https://api.phrase.com/v2*
4
+
5
+ Method | HTTP request | Description
6
+ ------------- | ------------- | -------------
7
+ [**account_automation_events_list**](AutomationEventsApi.md#account_automation_events_list) | **GET** /accounts/{account_id}/automation_events | List automation events for an account
8
+ [**automation_events_list**](AutomationEventsApi.md#automation_events_list) | **GET** /accounts/{account_id}/automations/{automation_id}/events | List events for an automation
9
+
10
+
11
+
12
+ ## account_automation_events_list
13
+
14
+ > Array<AutomationEvent> account_automation_events_list(account_id, opts)
15
+
16
+ List automation events for an account
17
+
18
+ Returns the run history across all automations in the account, newest-first. Use `automation_id` to narrow results to a single automation. Use `project_id` or `project_ids` to narrow by project. For feature availability, see [Jobs (Strings)](https://support.phrase.com/hc/en-us/articles/5784100517788-Jobs-Strings).
19
+
20
+ ### Example
21
+
22
+ ```ruby
23
+ # load the gem
24
+ require 'phrase'
25
+ # setup authorization
26
+ Phrase.configure do |config|
27
+ # Configure HTTP basic authorization: Basic
28
+ config.username = 'YOUR USERNAME'
29
+ config.password = 'YOUR PASSWORD'
30
+
31
+ # Configure API key authorization: Token
32
+ config.api_key['Authorization'] = 'YOUR API KEY'
33
+ config.api_key_prefix['Authorization'] = 'token'
34
+ end
35
+
36
+ api_instance = Phrase::AutomationEventsApi.new
37
+ account_id = 'account_id_example' # String | Account ID
38
+ opts = {
39
+ x_phrase_app_otp: 'x_phrase_app_otp_example', # String | Two-Factor-Authentication token (optional)
40
+ page: 1, # Integer | Page number
41
+ per_page: 25, # Integer | Limit on the number of objects to be returned, between 1 and 100. 25 by default
42
+ automation_id: 'automation_id_example', # String | Filter events to a single automation by its ID.
43
+ state: 'success', # String | Filter events by outcome state. Unrecognized values are ignored.
44
+ triggered_by: 'manual', # String | Filter events by what triggered the automation run. Unrecognized values are ignored.
45
+ project_id: 'project_id_example', # String | Filter events by project ID. Accepts a single ID or a comma-separated list of IDs.
46
+ project_ids: ['inner_example'], # Array<String> | Filter events by one or more project IDs.
47
+ created_after: '2023-01-01T00:00:00Z', # String | Return only events created after this ISO 8601 timestamp. Returns 400 if the value is not a valid date-time.
48
+ created_before: '2023-01-01T00:00:00Z' # String | Return only events created before this ISO 8601 timestamp. Returns 400 if the value is not a valid date-time.
49
+ }
50
+
51
+ begin
52
+ #List automation events for an account
53
+ result = api_instance.account_automation_events_list(account_id, opts)
54
+ pp result
55
+ rescue Phrase::ApiError => e
56
+ puts "Exception when calling AutomationEventsApi->account_automation_events_list: #{e}"
57
+ end
58
+ ```
59
+
60
+ ### Parameters
61
+
62
+
63
+ Name | Type | Description | Notes
64
+ ------------- | ------------- | ------------- | -------------
65
+ **account_id** | **String**| Account ID |
66
+ **x_phrase_app_otp** | **String**| Two-Factor-Authentication token (optional) | [optional]
67
+ **page** | **Integer**| Page number | [optional]
68
+ **per_page** | **Integer**| Limit on the number of objects to be returned, between 1 and 100. 25 by default | [optional]
69
+ **automation_id** | **String**| Filter events to a single automation by its ID. | [optional]
70
+ **state** | **String**| Filter events by outcome state. Unrecognized values are ignored. | [optional]
71
+ **triggered_by** | **String**| Filter events by what triggered the automation run. Unrecognized values are ignored. | [optional]
72
+ **project_id** | **String**| Filter events by project ID. Accepts a single ID or a comma-separated list of IDs. | [optional]
73
+ **project_ids** | [**Array&lt;String&gt;**](String.md)| Filter events by one or more project IDs. | [optional]
74
+ **created_after** | **String**| Return only events created after this ISO 8601 timestamp. Returns 400 if the value is not a valid date-time. | [optional]
75
+ **created_before** | **String**| Return only events created before this ISO 8601 timestamp. Returns 400 if the value is not a valid date-time. | [optional]
76
+
77
+ ### Return type
78
+
79
+ Response<([**Array&lt;AutomationEvent&gt;**](AutomationEvent.md))>
80
+
81
+ ### Authorization
82
+
83
+ [Basic](../README.md#Basic), [Token](../README.md#Token)
84
+
85
+ ### HTTP request headers
86
+
87
+ - **Content-Type**: Not defined
88
+ - **Accept**: application/json
89
+
90
+
91
+ ## automation_events_list
92
+
93
+ > Array&lt;AutomationEvent&gt; automation_events_list(account_id, id, opts)
94
+
95
+ List events for an automation
96
+
97
+ Returns the run history for a specific automation, newest-first. For feature availability, see [Jobs (Strings)](https://support.phrase.com/hc/en-us/articles/5784100517788-Jobs-Strings).
98
+
99
+ ### Example
100
+
101
+ ```ruby
102
+ # load the gem
103
+ require 'phrase'
104
+ # setup authorization
105
+ Phrase.configure do |config|
106
+ # Configure HTTP basic authorization: Basic
107
+ config.username = 'YOUR USERNAME'
108
+ config.password = 'YOUR PASSWORD'
109
+
110
+ # Configure API key authorization: Token
111
+ config.api_key['Authorization'] = 'YOUR API KEY'
112
+ config.api_key_prefix['Authorization'] = 'token'
113
+ end
114
+
115
+ api_instance = Phrase::AutomationEventsApi.new
116
+ account_id = 'account_id_example' # String | Account ID
117
+ id = 'id_example' # String | ID
118
+ opts = {
119
+ x_phrase_app_otp: 'x_phrase_app_otp_example', # String | Two-Factor-Authentication token (optional)
120
+ page: 1, # Integer | Page number
121
+ per_page: 25, # Integer | Limit on the number of objects to be returned, between 1 and 100. 25 by default
122
+ state: 'success', # String | Filter events by outcome state. Unrecognized values are ignored.
123
+ triggered_by: 'manual', # String | Filter events by what triggered the automation run. Unrecognized values are ignored.
124
+ project_id: 'project_id_example', # String | Filter events by project ID. Accepts a single ID or a comma-separated list of IDs.
125
+ project_ids: ['inner_example'], # Array<String> | Filter events by one or more project IDs.
126
+ created_after: '2023-01-01T00:00:00Z', # String | Return only events created after this ISO 8601 timestamp. Returns 400 if the value is not a valid date-time.
127
+ created_before: '2023-01-01T00:00:00Z' # String | Return only events created before this ISO 8601 timestamp. Returns 400 if the value is not a valid date-time.
128
+ }
129
+
130
+ begin
131
+ #List events for an automation
132
+ result = api_instance.automation_events_list(account_id, id, opts)
133
+ pp result
134
+ rescue Phrase::ApiError => e
135
+ puts "Exception when calling AutomationEventsApi->automation_events_list: #{e}"
136
+ end
137
+ ```
138
+
139
+ ### Parameters
140
+
141
+
142
+ Name | Type | Description | Notes
143
+ ------------- | ------------- | ------------- | -------------
144
+ **account_id** | **String**| Account ID |
145
+ **id** | **String**| ID |
146
+ **x_phrase_app_otp** | **String**| Two-Factor-Authentication token (optional) | [optional]
147
+ **page** | **Integer**| Page number | [optional]
148
+ **per_page** | **Integer**| Limit on the number of objects to be returned, between 1 and 100. 25 by default | [optional]
149
+ **state** | **String**| Filter events by outcome state. Unrecognized values are ignored. | [optional]
150
+ **triggered_by** | **String**| Filter events by what triggered the automation run. Unrecognized values are ignored. | [optional]
151
+ **project_id** | **String**| Filter events by project ID. Accepts a single ID or a comma-separated list of IDs. | [optional]
152
+ **project_ids** | [**Array&lt;String&gt;**](String.md)| Filter events by one or more project IDs. | [optional]
153
+ **created_after** | **String**| Return only events created after this ISO 8601 timestamp. Returns 400 if the value is not a valid date-time. | [optional]
154
+ **created_before** | **String**| Return only events created before this ISO 8601 timestamp. Returns 400 if the value is not a valid date-time. | [optional]
155
+
156
+ ### Return type
157
+
158
+ Response<([**Array&lt;AutomationEvent&gt;**](AutomationEvent.md))>
159
+
160
+ ### Authorization
161
+
162
+ [Basic](../README.md#Basic), [Token](../README.md#Token)
163
+
164
+ ### HTTP request headers
165
+
166
+ - **Content-Type**: Not defined
167
+ - **Accept**: application/json
168
+
@@ -6,7 +6,7 @@ Name | Type | Description | Notes
6
6
  ------------ | ------------- | ------------- | -------------
7
7
  **name** | **String** | name of the automation |
8
8
  **trigger** | **String** | |
9
- **project_ids** | **Array&lt;String&gt;** | List of project IDs to associate with the automation. Currently, only the first ID in the array is used. The array format leaves room for future support of multiple projects. |
9
+ **project_ids** | **Array&lt;String&gt;** | List of project IDs to associate with the automation. Providing more than one project ID requires the &#x60;advanced_job_automation&#x60; plan feature; accounts without this feature receive a 422 response with error field &#x60;project_ids&#x60;. |
10
10
  **job_template_id** | **String** | id of job template that the automation uses to create jobs from | [optional]
11
11
  **status_filters** | **Array&lt;String&gt;** | Translation states used when selecting keys for a job. States are derived from associated translations, not the keys themselves. When review workflow is enabled, &#x60;ready_for_review&#x60; is internally treated as &#x60;translated&#x60;. |
12
12
  **tags** | **Array&lt;String&gt;** | used to filter which keys are added to jobs | [optional]
@@ -6,7 +6,7 @@ Name | Type | Description | Notes
6
6
  ------------ | ------------- | ------------- | -------------
7
7
  **name** | **String** | name of the automation |
8
8
  **trigger** | **String** | |
9
- **project_ids** | **Array&lt;String&gt;** | List of project IDs to associate with the automation. Currently, only the first ID in the array is used. The array format leaves room for future support of multiple projects. |
9
+ **project_ids** | **Array&lt;String&gt;** | List of project IDs to associate with the automation. Providing more than one project ID requires the &#x60;advanced_job_automation&#x60; plan feature; accounts without this feature receive a 422 response with error field &#x60;project_ids&#x60;. |
10
10
  **job_template_id** | **String** | id of job template that the automation uses to create jobs from | [optional]
11
11
  **status_filters** | **Array&lt;String&gt;** | translation key statuses used to filter keys that are added to jobs |
12
12
  **tags** | **Array&lt;String&gt;** | used to filter which keys are added to jobs | [optional]
data/docs/DocumentsApi.md CHANGED
@@ -15,7 +15,7 @@ Method | HTTP request | Description
15
15
 
16
16
  Delete document
17
17
 
18
- Delete an existing document.
18
+ Permanently deletes a document and all of its associated translation segments from the project. Use this when you want to remove a document that is no longer needed; the deletion cannot be reversed and all associated segments will be lost.
19
19
 
20
20
  ### Example
21
21
 
@@ -77,7 +77,7 @@ Response<(nil (empty response body))>
77
77
 
78
78
  List documents
79
79
 
80
- List all documents the current user has access to.
80
+ Returns all documents in a project that the authenticated user has read access to. A Document is a source file — an HTML or DOCX file — that has been uploaded to Phrase Strings and whose content is segmented into translation keys for localization. Use this endpoint to enumerate documents before downloading, previewing, or triggering translation workflows for individual files. The q parameter performs a prefix match on the document name (case-insensitive). For example, passing q=invoice returns documents whose names begin with \"invoice\" but not documents containing \"invoice\" elsewhere in the name.
81
81
 
82
82
  ### Example
83
83
 
@@ -101,7 +101,7 @@ opts = {
101
101
  x_phrase_app_otp: 'x_phrase_app_otp_example', # String | Two-Factor-Authentication token (optional)
102
102
  page: 1, # Integer | Page number
103
103
  per_page: 25, # Integer | Limit on the number of objects to be returned, between 1 and 100. 25 by default
104
- q: 'invoice' # String | Search query. Filters documents by name (case-insensitive substring match).
104
+ q: 'invoice' # String | Filter documents by name prefix. Returns documents whose name starts with the given value (case-insensitive).
105
105
  }
106
106
 
107
107
  begin
@@ -122,7 +122,7 @@ Name | Type | Description | Notes
122
122
  **x_phrase_app_otp** | **String**| Two-Factor-Authentication token (optional) | [optional]
123
123
  **page** | **Integer**| Page number | [optional]
124
124
  **per_page** | **Integer**| Limit on the number of objects to be returned, between 1 and 100. 25 by default | [optional]
125
- **q** | **String**| Search query. Filters documents by name (case-insensitive substring match). | [optional]
125
+ **q** | **String**| Filter documents by name prefix. Returns documents whose name starts with the given value (case-insensitive). | [optional]
126
126
 
127
127
  ### Return type
128
128
 
data/docs/ICUApi.md CHANGED
@@ -14,7 +14,7 @@ Method | HTTP request | Description
14
14
 
15
15
  Build ICU skeletons
16
16
 
17
- Returns ICU skeletons for multiple locale codes based on a source content.
17
+ Generates ICU (International Components for Unicode) message format skeletons for a given source string across one or more locales. An ICU skeleton strips the literal text from a pluralized or select message while preserving its structural rules — argument names, plural categories, select cases, and ordinal forms — adjusted to the pluralization rules of each requested locale. Use this endpoint to normalize translation templates before importing them into locale files, or to validate that a source string carries the plural forms required by a target language. Either `content` or `id` must be provided — supplying both or neither returns 400. When `id` is used and the referenced translation does not exist, the endpoint returns 404. When the source string is not valid ICU message format syntax, the endpoint returns 422 with an `error` field describing the parse failure.
18
18
 
19
19
  ### Example
20
20
 
@@ -0,0 +1,17 @@
1
+ # Phrase::IcuSkeletonError
2
+
3
+ ## Properties
4
+
5
+ Name | Type | Description | Notes
6
+ ------------ | ------------- | ------------- | -------------
7
+ **error** | **String** | Human-readable description of the ICU message format parse failure. | [optional]
8
+
9
+ ## Code Sample
10
+
11
+ ```ruby
12
+ require 'Phrase'
13
+
14
+ instance = Phrase::IcuSkeletonError.new(error: Expected &quot;#&quot; but &quot;x&quot; found.)
15
+ ```
16
+
17
+
@@ -4,24 +4,24 @@
4
4
 
5
5
  Name | Type | Description | Notes
6
6
  ------------ | ------------- | ------------- | -------------
7
- **content** | **String** | Source content to derive skeletons from. Mutually exclusive with &#x60;id&#x60;; exactly one of the two must be provided. | [optional]
8
- **id** | **String** | Translation code to source content from. Mutually exclusive with &#x60;content&#x60;; exactly one of the two must be provided. | [optional]
9
- **locale_codes** | **Array&lt;String&gt;** | Locale codes | [optional]
10
- **keep_content** | **Boolean** | Keep the content and add missing plural forms for each locale | [optional]
11
- **zero_form_enabled** | **Boolean** | Indicates whether the zero form should be included or excluded in the returned skeletons | [optional]
12
- **cldr_version** | **String** | Strings supports two CLDR variants, when it comes to pluralization rules. \\ You can choose which one you want to use when constructing the skeletons. Possible values \\ are &#x60;legacy&#x60; and &#x60;cldr_41&#x60;. Default value is &#x60;legacy&#x60;. | [optional]
7
+ **content** | **String** | Source ICU message string to derive skeletons from. Mutually exclusive with &#x60;id&#x60;; exactly one of the two must be provided. | [optional]
8
+ **id** | **String** | Code of an existing translation to source content from. Mutually exclusive with &#x60;content&#x60;; exactly one of the two must be provided. Returns 404 when the translation does not exist. | [optional]
9
+ **locale_codes** | **Array&lt;String&gt;** | Locale codes for which to generate skeletons. The pluralization rules of each locale determine which plural forms appear in the output. | [optional]
10
+ **keep_content** | **Boolean** | When true, preserves the existing translation text in each plural form and adds any missing forms for the locale rather than stripping all literal content. | [optional]
11
+ **zero_form_enabled** | **Boolean** | When true, includes the zero plural form in the generated skeleton for locales that support it. | [optional]
12
+ **cldr_version** | **String** | Pluralization rule set to use when constructing skeletons. Pass &#x60;legacy&#x60; for pre-CLDR behaviour, or a CLDR version string such as &#x60;cldr48&#x60;. Defaults to the project&#39;s configured version when omitted. | [optional]
13
13
 
14
14
  ## Code Sample
15
15
 
16
16
  ```ruby
17
17
  require 'Phrase'
18
18
 
19
- instance = Phrase::IcuSkeletonParameters.new(content: {number, plural, one {One} other {%{n}}},
19
+ instance = Phrase::IcuSkeletonParameters.new(content: {count, plural, one {One item} other {# items}},
20
20
  id: abcd1234abcd1234abcd1234abcd1234,
21
- locale_codes: [&quot;en&quot;],
22
- keep_content: null,
23
- zero_form_enabled: null,
24
- cldr_version: cldr_41)
21
+ locale_codes: [&quot;en&quot;,&quot;de&quot;],
22
+ keep_content: false,
23
+ zero_form_enabled: false,
24
+ cldr_version: cldr48)
25
25
  ```
26
26
 
27
27
 
data/docs/JobsApi.md CHANGED
@@ -768,7 +768,7 @@ opts = {
768
768
  owned_by: 'abcd1234cdef1234abcd1234cdef1234', # String | filter by user owning job
769
769
  assigned_to: 'abcd1234cdef1234abcd1234cdef1234', # String | filter by user assigned to job
770
770
  state: 'completed', # String | filter by state of job; valid states are: `draft`, `in_progress`, `completed`
771
- updated_since: '2013-02-21T00:00:00.000Z' # String | filter by jobs updated since given date
771
+ updated_since: '2013-02-21T00:00:00Z' # String | filter by jobs updated since given date
772
772
  }
773
773
 
774
774
  begin
@@ -844,7 +844,7 @@ opts = {
844
844
  state: 'completed', # String | filter by state of job; valid states are: `draft`, `in_progress`, `completed`
845
845
  states: ['inner_example'], # Array<String> | Filter by multiple job states at once. Accepted values are the same as `state`. When supplied, `state` is ignored. Rejected with `400 Bad Request` if any value is unknown.
846
846
  key_id: 'abcd1234cdef1234abcd1234cdef1234', # String | Filter to jobs that include the translation key identified by this code (matches via the job's tags).
847
- updated_since: '2013-02-21T00:00:00.000Z' # String | filter by jobs updated since given date
847
+ updated_since: '2013-02-21T00:00:00Z' # String | filter by jobs updated since given date
848
848
  }
849
849
 
850
850
  begin
@@ -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@6d448772,
43
+ screenshot: [B@32a4284d,
44
44
  remove_screenshot: null,
45
45
  unformatted: null,
46
46
  default_translation_content: Default translation content,
@@ -0,0 +1,74 @@
1
+ # Phrase::KeyFormatAnnotationsApi
2
+
3
+ All URIs are relative to *https://api.phrase.com/v2*
4
+
5
+ Method | HTTP request | Description
6
+ ------------- | ------------- | -------------
7
+ [**key_format_annotations_list**](KeyFormatAnnotationsApi.md#key_format_annotations_list) | **GET** /projects/{project_id}/keys/{id}/format_annotations | List format annotations for a key
8
+
9
+
10
+
11
+ ## key_format_annotations_list
12
+
13
+ > Array&lt;KeyFormatAnnotationsList200ResponseInner&gt; key_format_annotations_list(project_id, id, opts)
14
+
15
+ List format annotations for a key
16
+
17
+ Returns the format annotations stored on a translation key. Format annotations capture file-format data recorded when the key was imported — for example, an ARB placeholder block or an XLIFF note. Results are limited to 1,000 entries.
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::KeyFormatAnnotationsApi.new
36
+ project_id = 'project_id_example' # String | Project ID
37
+ id = 'id_example' # String | ID
38
+ opts = {
39
+ x_phrase_app_otp: 'x_phrase_app_otp_example', # String | Two-Factor-Authentication token (optional)
40
+ branch: 'my-feature-branch' # String | Branch to use
41
+ }
42
+
43
+ begin
44
+ #List format annotations for a key
45
+ result = api_instance.key_format_annotations_list(project_id, id, opts)
46
+ pp result
47
+ rescue Phrase::ApiError => e
48
+ puts "Exception when calling KeyFormatAnnotationsApi->key_format_annotations_list: #{e}"
49
+ end
50
+ ```
51
+
52
+ ### Parameters
53
+
54
+
55
+ Name | Type | Description | Notes
56
+ ------------- | ------------- | ------------- | -------------
57
+ **project_id** | **String**| Project ID |
58
+ **id** | **String**| ID |
59
+ **x_phrase_app_otp** | **String**| Two-Factor-Authentication token (optional) | [optional]
60
+ **branch** | **String**| Branch to use | [optional]
61
+
62
+ ### Return type
63
+
64
+ Response<([**Array&lt;KeyFormatAnnotationsList200ResponseInner&gt;**](KeyFormatAnnotationsList200ResponseInner.md))>
65
+
66
+ ### Authorization
67
+
68
+ [Basic](../README.md#Basic), [Token](../README.md#Token)
69
+
70
+ ### HTTP request headers
71
+
72
+ - **Content-Type**: Not defined
73
+ - **Accept**: application/json
74
+
@@ -0,0 +1,19 @@
1
+ # Phrase::KeyFormatAnnotationsList200ResponseInner
2
+
3
+ ## Properties
4
+
5
+ Name | Type | Description | Notes
6
+ ------------ | ------------- | ------------- | -------------
7
+ **file_format** | **String** | The file format that produced this annotation. | [optional]
8
+ **original_representation** | **String** | The original file-format snippet captured when the key was imported. Returned as-is, may contain multi-line content. | [optional]
9
+
10
+ ## Code Sample
11
+
12
+ ```ruby
13
+ require 'Phrase'
14
+
15
+ instance = Phrase::KeyFormatAnnotationsList200ResponseInner.new(file_format: xliff_2,
16
+ original_representation: &lt;note category&#x3D;&quot;meaning&quot;&gt;header&lt;/note&gt;)
17
+ ```
18
+
19
+
@@ -4,16 +4,18 @@
4
4
 
5
5
  Name | Type | Description | Notes
6
6
  ------------ | ------------- | ------------- | -------------
7
- **child_key_ids** | **Array&lt;String&gt;** | The IDs of the child keys to unlink from the parent key. |
8
- **unlink_parent** | **Boolean** | Whether to unlink the parent key as well and unmark it as linked-key. | [optional] [default to false]
7
+ **child_key_ids** | **Array&lt;String&gt;** | Codes of the child keys to unlink. Required when unlink_parent is false or omitted. Ignored when unlink_parent is true. |
8
+ **unlink_parent** | **Boolean** | When true, dissolves the entire linked-key group by unlinking all children and removing the group. The child_key_ids field is ignored when this is set to true. | [optional] [default to false]
9
+ **strategy** | **String** | Controls what happens to child key translation content after unlinking. keep_content (default) copies the parent translation into each child; remove_content clears each child translation. | [optional] [default to &#39;keep_content&#39;]
9
10
 
10
11
  ## Code Sample
11
12
 
12
13
  ```ruby
13
14
  require 'Phrase'
14
15
 
15
- instance = Phrase::KeyLinksBatchDestroyParameters.new(child_key_ids: [&quot;child_key_id1&quot;,&quot;child_key_id2&quot;],
16
- unlink_parent: null)
16
+ instance = Phrase::KeyLinksBatchDestroyParameters.new(child_key_ids: [&quot;feature.subtitle&quot;,&quot;nav.home&quot;],
17
+ unlink_parent: null,
18
+ strategy: null)
17
19
  ```
18
20
 
19
21