phrase 4.33.0 → 4.34.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: cb68f3e7de65794408fd8af7a561ef3b36a2e2220a6d3e1fb1b70ad12b10ddda
4
- data.tar.gz: 9c0223415b68d524ccc0583496b23351d6caaedb44f1cccd04e5088eff221ec4
3
+ metadata.gz: 20c479a028a5c32ac1919a3e60bb3b6856319b440ffeca3197e7ad36d269619f
4
+ data.tar.gz: ff3f4f16b7d48e49203d2ccf5109c9b1a491d5276a8ba60c96b4fe2a129a4242
5
5
  SHA512:
6
- metadata.gz: '08ba82de28c3449d6abd1db15b585667c0fffb054a230a351a8dcd5c8073617ab4c2d7315ca8bf2ed4a7acf8fb6e02ee736631bbb07806e1e1643371e875857c'
7
- data.tar.gz: 24c734ba8c05035c02b10128f73ced9d4c442df9ac09d5184097cf66076095a202f1c3d9eb8d797286c0960e9ad213cc7931344ff1424ac801e7c22463652623
6
+ metadata.gz: 0c318a2a14d1cdc5ca2d9eb47636585b0e7582a2bc3c2b7b044dd115e5392f58e3c4b2c5f9ae39903393b70c46ec2a8dbd6a18cba8ce01a70bf308027e2e1b0f
7
+ data.tar.gz: dbd8d3007e70708aee87fe3632c24b48cf5ec948c3e632bfb1a0be1aba06ed748c1cf1f16ef77ce24133336d996ecbcf24a23bcb421822219d3815358ead76d2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.34.0](https://github.com/phrase/strings-openapi/compare/ruby-v4.33.0...ruby-v4.34.0) (2026-11-05)
4
+
5
+
6
+ ### Features
7
+
8
+ * **API:** add linked_key field to key list responses #STRINGS-4425 ([#1361](https://github.com/phrase/strings-openapi/issues/1361)) ([e2cd0cd](https://github.com/phrase/strings-openapi/commit/e2cd0cdf327bed106f7c37f97324e77e997f0994))
9
+
3
10
  ## [4.33.0](https://github.com/phrase/strings-openapi/compare/ruby-v4.32.0...ruby-v4.33.0) (2026-11-04)
4
11
 
5
12
 
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.33.0
10
+ - Package version: 4.34.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.33.0.gem
59
+ gem install ./phrase-4.34.0.gem
60
60
  ```
61
61
 
62
- (for development, run `gem install --dev ./phrase-4.33.0.gem` to install the development dependencies)
62
+ (for development, run `gem install --dev ./phrase-4.34.0.gem` to install the development dependencies)
63
63
 
64
64
  ## Getting Started
65
65
 
@@ -649,6 +649,8 @@ Class | Method | HTTP request | Description
649
649
  - [Phrase::TranslationIncludeParameters](docs/TranslationIncludeParameters.md)
650
650
  - [Phrase::TranslationKey](docs/TranslationKey.md)
651
651
  - [Phrase::TranslationKeyDetails](docs/TranslationKeyDetails.md)
652
+ - [Phrase::TranslationKeyLinkedKey](docs/TranslationKeyLinkedKey.md)
653
+ - [Phrase::TranslationKeyLinkedKeyParent](docs/TranslationKeyLinkedKeyParent.md)
652
654
  - [Phrase::TranslationOrder](docs/TranslationOrder.md)
653
655
  - [Phrase::TranslationParent](docs/TranslationParent.md)
654
656
  - [Phrase::TranslationReviewParameters](docs/TranslationReviewParameters.md)
data/docs/KeysApi.md CHANGED
@@ -502,7 +502,8 @@ opts = {
502
502
  sort: 'updated_at', # String | Sort by field. Can be one of: name, created_at, updated_at.
503
503
  order: 'desc', # String | Order direction. Can be one of: asc, desc.
504
504
  q: 'mykey* translated:true', # String | Specify a query to do broad search for keys by name (including wildcards). The following qualifiers are also supported in the search term: - `ids:key_id,...` for queries on a comma-separated list of ids - `name:key_name` for text queries on exact key names - spaces, commas, and colons need to be escaped with double backslashes - `tags:tag_name` to filter for keys with certain tags - `translated:{true|false}` for translation status (also requires `locale_id` to be specified) - `updated_at:{>=|<=}2013-02-21T00:00:00Z` for date range queries - `unmentioned_in_upload:upload_id,...` to filter keys unmentioned within upload. When multiple upload IDs provided, matches only keys not mentioned in **all** uploads **Caution:** Query parameters with empty values will be treated as though they are not included in the request and will be ignored. Find more examples [here](/en/api/strings/usage-examples).
505
- locale_id: 'abcd1234abcd1234abcd1234abcd1234' # String | Locale used to determine the translation state of a key when filtering for untranslated or translated keys.
505
+ locale_id: 'abcd1234abcd1234abcd1234abcd1234', # String | Locale used to determine the translation state of a key when filtering for untranslated or translated keys.
506
+ include_linked_keys: true # Boolean | When set to `true`, each key object in the response includes a `linked_key` field describing whether the key is a parent or child in a key-link relationship, and the number of children (for parent keys) or the parent's id and name (for child keys). Keys with no active link return `linked_key: null`. Omit this parameter or set it to `false` to leave the `linked_key` field out of the response entirely.
506
507
  }
507
508
 
508
509
  begin
@@ -528,6 +529,7 @@ Name | Type | Description | Notes
528
529
  **order** | **String**| Order direction. Can be one of: asc, desc. | [optional]
529
530
  **q** | **String**| Specify a query to do broad search for keys by name (including wildcards). The following qualifiers are also supported in the search term: - &#x60;ids:key_id,...&#x60; for queries on a comma-separated list of ids - &#x60;name:key_name&#x60; for text queries on exact key names - spaces, commas, and colons need to be escaped with double backslashes - &#x60;tags:tag_name&#x60; to filter for keys with certain tags - &#x60;translated:{true|false}&#x60; for translation status (also requires &#x60;locale_id&#x60; to be specified) - &#x60;updated_at:{&gt;&#x3D;|&lt;&#x3D;}2013-02-21T00:00:00Z&#x60; for date range queries - &#x60;unmentioned_in_upload:upload_id,...&#x60; to filter keys unmentioned within upload. When multiple upload IDs provided, matches only keys not mentioned in **all** uploads **Caution:** Query parameters with empty values will be treated as though they are not included in the request and will be ignored. Find more examples [here](/en/api/strings/usage-examples). | [optional]
530
531
  **locale_id** | **String**| Locale used to determine the translation state of a key when filtering for untranslated or translated keys. | [optional]
532
+ **include_linked_keys** | **Boolean**| When set to &#x60;true&#x60;, each key object in the response includes a &#x60;linked_key&#x60; field describing whether the key is a parent or child in a key-link relationship, and the number of children (for parent keys) or the parent&#39;s id and name (for child keys). Keys with no active link return &#x60;linked_key: null&#x60;. Omit this parameter or set it to &#x60;false&#x60; to leave the &#x60;linked_key&#x60; field out of the response entirely. | [optional]
531
533
 
532
534
  ### Return type
533
535
 
@@ -573,7 +575,8 @@ keys_search_parameters = Phrase::KeysSearchParameters.new # KeysSearchParameters
573
575
  opts = {
574
576
  x_phrase_app_otp: 'x_phrase_app_otp_example', # String | Two-Factor-Authentication token (optional)
575
577
  page: 1, # Integer | Page number
576
- per_page: 25 # Integer | Limit on the number of objects to be returned, between 1 and 100. 25 by default
578
+ per_page: 25, # Integer | Limit on the number of objects to be returned, between 1 and 100. 25 by default
579
+ include_linked_keys: true # Boolean | When set to `true`, each key object in the response includes a `linked_key` field describing whether the key is a parent or child in a key-link relationship, and the number of children (for parent keys) or the parent's id and name (for child keys). Keys with no active link return `linked_key: null`. Omit this parameter or set it to `false` to leave the `linked_key` field out of the response entirely.
577
580
  }
578
581
 
579
582
  begin
@@ -595,6 +598,7 @@ Name | Type | Description | Notes
595
598
  **x_phrase_app_otp** | **String**| Two-Factor-Authentication token (optional) | [optional]
596
599
  **page** | **Integer**| Page number | [optional]
597
600
  **per_page** | **Integer**| Limit on the number of objects to be returned, between 1 and 100. 25 by default | [optional]
601
+ **include_linked_keys** | **Boolean**| When set to &#x60;true&#x60;, each key object in the response includes a &#x60;linked_key&#x60; field describing whether the key is a parent or child in a key-link relationship, and the number of children (for parent keys) or the parent&#39;s id and name (for child keys). Keys with no active link return &#x60;linked_key: null&#x60;. Omit this parameter or set it to &#x60;false&#x60; to leave the &#x60;linked_key&#x60; field out of the response entirely. | [optional]
598
602
 
599
603
  ### Return type
600
604
 
@@ -14,6 +14,7 @@ Name | Type | Description | Notes
14
14
  **data_type** | **String** | | [optional]
15
15
  **created_at** | **Time** | | [optional]
16
16
  **updated_at** | **Time** | | [optional]
17
+ **linked_key** | [**TranslationKeyLinkedKey**](TranslationKeyLinkedKey.md) | | [optional]
17
18
 
18
19
  ## Code Sample
19
20
 
@@ -29,7 +30,8 @@ instance = Phrase::TranslationKey.new(id: nil,
29
30
  tags: nil,
30
31
  data_type: nil,
31
32
  created_at: nil,
32
- updated_at: nil)
33
+ updated_at: nil,
34
+ linked_key: nil)
33
35
  ```
34
36
 
35
37
 
@@ -14,6 +14,7 @@ Name | Type | Description | Notes
14
14
  **data_type** | **String** | | [optional]
15
15
  **created_at** | **Time** | | [optional]
16
16
  **updated_at** | **Time** | | [optional]
17
+ **linked_key** | [**TranslationKeyLinkedKey**](TranslationKeyLinkedKey.md) | | [optional]
17
18
  **name_plural** | **String** | | [optional]
18
19
  **comments_count** | **Integer** | | [optional]
19
20
  **max_characters_allowed** | **Integer** | | [optional]
@@ -40,6 +41,7 @@ instance = Phrase::TranslationKeyDetails.new(id: nil,
40
41
  data_type: nil,
41
42
  created_at: nil,
42
43
  updated_at: nil,
44
+ linked_key: nil,
43
45
  name_plural: nil,
44
46
  comments_count: nil,
45
47
  max_characters_allowed: nil,
@@ -0,0 +1,21 @@
1
+ # Phrase::TranslationKeyLinkedKey
2
+
3
+ ## Properties
4
+
5
+ Name | Type | Description | Notes
6
+ ------------ | ------------- | ------------- | -------------
7
+ **role** | **String** | Whether this key is the parent or the child in the link relationship. | [optional]
8
+ **parent** | [**TranslationKeyLinkedKeyParent**](TranslationKeyLinkedKeyParent.md) | | [optional]
9
+ **children_count** | **Integer** | The number of linked child keys. Set for parent keys. | [optional]
10
+
11
+ ## Code Sample
12
+
13
+ ```ruby
14
+ require 'phrase'
15
+
16
+ instance = Phrase::TranslationKeyLinkedKey.new(role: nil,
17
+ parent: nil,
18
+ children_count: 3)
19
+ ```
20
+
21
+
@@ -0,0 +1,19 @@
1
+ # Phrase::TranslationKeyLinkedKeyParent
2
+
3
+ ## Properties
4
+
5
+ Name | Type | Description | Notes
6
+ ------------ | ------------- | ------------- | -------------
7
+ **id** | **String** | The parent key&#39;s public identifier (code). | [optional]
8
+ **name** | **String** | The parent key&#39;s name. | [optional]
9
+
10
+ ## Code Sample
11
+
12
+ ```ruby
13
+ require 'phrase'
14
+
15
+ instance = Phrase::TranslationKeyLinkedKeyParent.new(id: 'abc12345def67890abc12345def67890',
16
+ name: 'home.welcome.title')
17
+ ```
18
+
19
+
@@ -546,6 +546,7 @@ module Phrase
546
546
  # @option opts [String] :order Order direction. Can be one of: asc, desc.
547
547
  # @option opts [String] :q Specify a query to do broad search for keys by name (including wildcards). The following qualifiers are also supported in the search term: - &#x60;ids:key_id,...&#x60; for queries on a comma-separated list of ids - &#x60;name:key_name&#x60; for text queries on exact key names - spaces, commas, and colons need to be escaped with double backslashes - &#x60;tags:tag_name&#x60; to filter for keys with certain tags - &#x60;translated:{true|false}&#x60; for translation status (also requires &#x60;locale_id&#x60; to be specified) - &#x60;updated_at:{&gt;&#x3D;|&lt;&#x3D;}2013-02-21T00:00:00Z&#x60; for date range queries - &#x60;unmentioned_in_upload:upload_id,...&#x60; to filter keys unmentioned within upload. When multiple upload IDs provided, matches only keys not mentioned in **all** uploads **Caution:** Query parameters with empty values will be treated as though they are not included in the request and will be ignored. Find more examples [here](/en/api/strings/usage-examples).
548
548
  # @option opts [String] :locale_id Locale used to determine the translation state of a key when filtering for untranslated or translated keys.
549
+ # @option opts [Boolean] :include_linked_keys When set to &#x60;true&#x60;, each key object in the response includes a &#x60;linked_key&#x60; field describing whether the key is a parent or child in a key-link relationship, and the number of children (for parent keys) or the parent&#39;s id and name (for child keys). Keys with no active link return &#x60;linked_key: null&#x60;. Omit this parameter or set it to &#x60;false&#x60; to leave the &#x60;linked_key&#x60; field out of the response entirely.
549
550
  # @return [Array<TranslationKey>]
550
551
  def keys_list(project_id, opts = {})
551
552
  data, _status_code, _headers = keys_list_with_http_info(project_id, opts)
@@ -564,6 +565,7 @@ module Phrase
564
565
  # @option opts [String] :order Order direction. Can be one of: asc, desc.
565
566
  # @option opts [String] :q Specify a query to do broad search for keys by name (including wildcards). The following qualifiers are also supported in the search term: - &#x60;ids:key_id,...&#x60; for queries on a comma-separated list of ids - &#x60;name:key_name&#x60; for text queries on exact key names - spaces, commas, and colons need to be escaped with double backslashes - &#x60;tags:tag_name&#x60; to filter for keys with certain tags - &#x60;translated:{true|false}&#x60; for translation status (also requires &#x60;locale_id&#x60; to be specified) - &#x60;updated_at:{&gt;&#x3D;|&lt;&#x3D;}2013-02-21T00:00:00Z&#x60; for date range queries - &#x60;unmentioned_in_upload:upload_id,...&#x60; to filter keys unmentioned within upload. When multiple upload IDs provided, matches only keys not mentioned in **all** uploads **Caution:** Query parameters with empty values will be treated as though they are not included in the request and will be ignored. Find more examples [here](/en/api/strings/usage-examples).
566
567
  # @option opts [String] :locale_id Locale used to determine the translation state of a key when filtering for untranslated or translated keys.
568
+ # @option opts [Boolean] :include_linked_keys When set to &#x60;true&#x60;, each key object in the response includes a &#x60;linked_key&#x60; field describing whether the key is a parent or child in a key-link relationship, and the number of children (for parent keys) or the parent&#39;s id and name (for child keys). Keys with no active link return &#x60;linked_key: null&#x60;. Omit this parameter or set it to &#x60;false&#x60; to leave the &#x60;linked_key&#x60; field out of the response entirely.
567
569
  # @return [Array<(Response<(Array<TranslationKey>)>, Integer, Hash)>] Response<(Array<TranslationKey>)> data, response status code and response headers
568
570
  def keys_list_with_http_info(project_id, opts = {})
569
571
  if @api_client.config.debugging
@@ -585,6 +587,7 @@ module Phrase
585
587
  query_params[:'order'] = opts[:'order'] if !opts[:'order'].nil?
586
588
  query_params[:'q'] = opts[:'q'] if !opts[:'q'].nil?
587
589
  query_params[:'locale_id'] = opts[:'locale_id'] if !opts[:'locale_id'].nil?
590
+ query_params[:'include_linked_keys'] = opts[:'include_linked_keys'] if !opts[:'include_linked_keys'].nil?
588
591
 
589
592
  # header parameters
590
593
  header_params = opts[:header_params] || {}
@@ -629,6 +632,7 @@ module Phrase
629
632
  # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
630
633
  # @option opts [Integer] :page Page number
631
634
  # @option opts [Integer] :per_page Limit on the number of objects to be returned, between 1 and 100. 25 by default
635
+ # @option opts [Boolean] :include_linked_keys When set to &#x60;true&#x60;, each key object in the response includes a &#x60;linked_key&#x60; field describing whether the key is a parent or child in a key-link relationship, and the number of children (for parent keys) or the parent&#39;s id and name (for child keys). Keys with no active link return &#x60;linked_key: null&#x60;. Omit this parameter or set it to &#x60;false&#x60; to leave the &#x60;linked_key&#x60; field out of the response entirely.
632
636
  # @return [Array<TranslationKey>]
633
637
  def keys_search(project_id, keys_search_parameters, opts = {})
634
638
  data, _status_code, _headers = keys_search_with_http_info(project_id, keys_search_parameters, opts)
@@ -643,6 +647,7 @@ module Phrase
643
647
  # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
644
648
  # @option opts [Integer] :page Page number
645
649
  # @option opts [Integer] :per_page Limit on the number of objects to be returned, between 1 and 100. 25 by default
650
+ # @option opts [Boolean] :include_linked_keys When set to &#x60;true&#x60;, each key object in the response includes a &#x60;linked_key&#x60; field describing whether the key is a parent or child in a key-link relationship, and the number of children (for parent keys) or the parent&#39;s id and name (for child keys). Keys with no active link return &#x60;linked_key: null&#x60;. Omit this parameter or set it to &#x60;false&#x60; to leave the &#x60;linked_key&#x60; field out of the response entirely.
646
651
  # @return [Array<(Response<(Array<TranslationKey>)>, Integer, Hash)>] Response<(Array<TranslationKey>)> data, response status code and response headers
647
652
  def keys_search_with_http_info(project_id, keys_search_parameters, opts = {})
648
653
  if @api_client.config.debugging
@@ -663,6 +668,7 @@ module Phrase
663
668
  query_params = opts[:query_params] || {}
664
669
  query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
665
670
  query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
671
+ query_params[:'include_linked_keys'] = opts[:'include_linked_keys'] if !opts[:'include_linked_keys'].nil?
666
672
 
667
673
  # header parameters
668
674
  header_params = opts[:header_params] || {}
@@ -22,6 +22,8 @@ module Phrase
22
22
 
23
23
  attr_accessor :updated_at
24
24
 
25
+ attr_accessor :linked_key
26
+
25
27
  # Attribute mapping from ruby-style variable name to JSON key.
26
28
  def self.attribute_map
27
29
  {
@@ -34,7 +36,8 @@ module Phrase
34
36
  :'tags' => :'tags',
35
37
  :'data_type' => :'data_type',
36
38
  :'created_at' => :'created_at',
37
- :'updated_at' => :'updated_at'
39
+ :'updated_at' => :'updated_at',
40
+ :'linked_key' => :'linked_key'
38
41
  }
39
42
  end
40
43
 
@@ -50,13 +53,15 @@ module Phrase
50
53
  :'tags' => :'Array<String>',
51
54
  :'data_type' => :'String',
52
55
  :'created_at' => :'DateTime',
53
- :'updated_at' => :'DateTime'
56
+ :'updated_at' => :'DateTime',
57
+ :'linked_key' => :'TranslationKeyLinkedKey'
54
58
  }
55
59
  end
56
60
 
57
61
  # List of attributes with nullable: true
58
62
  def self.openapi_nullable
59
63
  Set.new([
64
+ :'linked_key'
60
65
  ])
61
66
  end
62
67
 
@@ -116,6 +121,10 @@ module Phrase
116
121
  if attributes.key?(:'updated_at')
117
122
  self.updated_at = attributes[:'updated_at']
118
123
  end
124
+
125
+ if attributes.key?(:'linked_key')
126
+ self.linked_key = attributes[:'linked_key']
127
+ end
119
128
  end
120
129
 
121
130
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -145,7 +154,8 @@ module Phrase
145
154
  tags == o.tags &&
146
155
  data_type == o.data_type &&
147
156
  created_at == o.created_at &&
148
- updated_at == o.updated_at
157
+ updated_at == o.updated_at &&
158
+ linked_key == o.linked_key
149
159
  end
150
160
 
151
161
  # @see the `==` method
@@ -157,7 +167,7 @@ module Phrase
157
167
  # Calculates hash code according to all attributes.
158
168
  # @return [Integer] Hash code
159
169
  def hash
160
- [id, name, description, name_hash, plural, use_ordinal_rules, tags, data_type, created_at, updated_at].hash
170
+ [id, name, description, name_hash, plural, use_ordinal_rules, tags, data_type, created_at, updated_at, linked_key].hash
161
171
  end
162
172
 
163
173
  # Builds the object from hash
@@ -22,6 +22,8 @@ module Phrase
22
22
 
23
23
  attr_accessor :updated_at
24
24
 
25
+ attr_accessor :linked_key
26
+
25
27
  attr_accessor :name_plural
26
28
 
27
29
  attr_accessor :comments_count
@@ -55,6 +57,7 @@ module Phrase
55
57
  :'data_type' => :'data_type',
56
58
  :'created_at' => :'created_at',
57
59
  :'updated_at' => :'updated_at',
60
+ :'linked_key' => :'linked_key',
58
61
  :'name_plural' => :'name_plural',
59
62
  :'comments_count' => :'comments_count',
60
63
  :'max_characters_allowed' => :'max_characters_allowed',
@@ -81,6 +84,7 @@ module Phrase
81
84
  :'data_type' => :'String',
82
85
  :'created_at' => :'DateTime',
83
86
  :'updated_at' => :'DateTime',
87
+ :'linked_key' => :'TranslationKeyLinkedKey',
84
88
  :'name_plural' => :'String',
85
89
  :'comments_count' => :'Integer',
86
90
  :'max_characters_allowed' => :'Integer',
@@ -97,6 +101,7 @@ module Phrase
97
101
  # List of attributes with nullable: true
98
102
  def self.openapi_nullable
99
103
  Set.new([
104
+ :'linked_key',
100
105
  ])
101
106
  end
102
107
 
@@ -164,6 +169,10 @@ module Phrase
164
169
  self.updated_at = attributes[:'updated_at']
165
170
  end
166
171
 
172
+ if attributes.key?(:'linked_key')
173
+ self.linked_key = attributes[:'linked_key']
174
+ end
175
+
167
176
  if attributes.key?(:'name_plural')
168
177
  self.name_plural = attributes[:'name_plural']
169
178
  end
@@ -235,6 +244,7 @@ module Phrase
235
244
  data_type == o.data_type &&
236
245
  created_at == o.created_at &&
237
246
  updated_at == o.updated_at &&
247
+ linked_key == o.linked_key &&
238
248
  name_plural == o.name_plural &&
239
249
  comments_count == o.comments_count &&
240
250
  max_characters_allowed == o.max_characters_allowed &&
@@ -256,7 +266,7 @@ module Phrase
256
266
  # Calculates hash code according to all attributes.
257
267
  # @return [Integer] Hash code
258
268
  def hash
259
- [id, name, description, name_hash, plural, use_ordinal_rules, tags, data_type, created_at, updated_at, name_plural, comments_count, max_characters_allowed, screenshot_url, unformatted, xml_space_preserve, original_file, format_value_type, creator, custom_metadata].hash
269
+ [id, name, description, name_hash, plural, use_ordinal_rules, tags, data_type, created_at, updated_at, linked_key, name_plural, comments_count, max_characters_allowed, screenshot_url, unformatted, xml_space_preserve, original_file, format_value_type, creator, custom_metadata].hash
260
270
  end
261
271
 
262
272
  # Builds the object from hash
@@ -0,0 +1,253 @@
1
+ require 'date'
2
+
3
+ module Phrase
4
+ # Describes a key's role in a parent–child link relationship.
5
+ class TranslationKeyLinkedKey
6
+ # Whether this key is the parent or the child in the link relationship.
7
+ attr_accessor :role
8
+
9
+ attr_accessor :parent
10
+
11
+ # The number of linked child keys. Set for parent keys.
12
+ attr_accessor :children_count
13
+
14
+ class EnumAttributeValidator
15
+ attr_reader :datatype
16
+ attr_reader :allowable_values
17
+
18
+ def initialize(datatype, allowable_values)
19
+ @allowable_values = allowable_values.map do |value|
20
+ case datatype.to_s
21
+ when /Integer/i
22
+ value.to_i
23
+ when /Float/i
24
+ value.to_f
25
+ else
26
+ value
27
+ end
28
+ end
29
+ end
30
+
31
+ def valid?(value)
32
+ !value || allowable_values.include?(value)
33
+ end
34
+ end
35
+
36
+ # Attribute mapping from ruby-style variable name to JSON key.
37
+ def self.attribute_map
38
+ {
39
+ :'role' => :'role',
40
+ :'parent' => :'parent',
41
+ :'children_count' => :'children_count'
42
+ }
43
+ end
44
+
45
+ # Attribute type mapping.
46
+ def self.openapi_types
47
+ {
48
+ :'role' => :'String',
49
+ :'parent' => :'TranslationKeyLinkedKeyParent',
50
+ :'children_count' => :'Integer'
51
+ }
52
+ end
53
+
54
+ # List of attributes with nullable: true
55
+ def self.openapi_nullable
56
+ Set.new([
57
+ :'parent',
58
+ :'children_count'
59
+ ])
60
+ end
61
+
62
+ # Initializes the object
63
+ # @param [Hash] attributes Model attributes in the form of hash
64
+ def initialize(attributes = {})
65
+ if (!attributes.is_a?(Hash))
66
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Phrase::TranslationKeyLinkedKey` initialize method"
67
+ end
68
+
69
+ # check to see if the attribute exists and convert string to symbol for hash key
70
+ attributes = attributes.each_with_object({}) { |(k, v), h|
71
+ if (!self.class.attribute_map.key?(k.to_sym))
72
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Phrase::TranslationKeyLinkedKey`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
73
+ end
74
+ h[k.to_sym] = v
75
+ }
76
+
77
+ if attributes.key?(:'role')
78
+ self.role = attributes[:'role']
79
+ end
80
+
81
+ if attributes.key?(:'parent')
82
+ self.parent = attributes[:'parent']
83
+ end
84
+
85
+ if attributes.key?(:'children_count')
86
+ self.children_count = attributes[:'children_count']
87
+ end
88
+ end
89
+
90
+ # Show invalid properties with the reasons. Usually used together with valid?
91
+ # @return Array for valid properties with the reasons
92
+ def list_invalid_properties
93
+ invalid_properties = Array.new
94
+ invalid_properties
95
+ end
96
+
97
+ # Check to see if the all the properties in the model are valid
98
+ # @return true if the model is valid
99
+ def valid?
100
+ role_validator = EnumAttributeValidator.new('String', ["parent", "child"])
101
+ return false unless role_validator.valid?(@role)
102
+ true
103
+ end
104
+
105
+ # Custom attribute writer method checking allowed values (enum).
106
+ # @param [Object] role Object to be assigned
107
+ def role=(role)
108
+ validator = EnumAttributeValidator.new('String', ["parent", "child"])
109
+ unless validator.valid?(role)
110
+ fail ArgumentError, "invalid value for \"role\", must be one of #{validator.allowable_values}."
111
+ end
112
+ @role = role
113
+ end
114
+
115
+ # Checks equality by comparing each attribute.
116
+ # @param [Object] Object to be compared
117
+ def ==(o)
118
+ return true if self.equal?(o)
119
+ self.class == o.class &&
120
+ role == o.role &&
121
+ parent == o.parent &&
122
+ children_count == o.children_count
123
+ end
124
+
125
+ # @see the `==` method
126
+ # @param [Object] Object to be compared
127
+ def eql?(o)
128
+ self == o
129
+ end
130
+
131
+ # Calculates hash code according to all attributes.
132
+ # @return [Integer] Hash code
133
+ def hash
134
+ [role, parent, children_count].hash
135
+ end
136
+
137
+ # Builds the object from hash
138
+ # @param [Hash] attributes Model attributes in the form of hash
139
+ # @return [Object] Returns the model itself
140
+ def self.build_from_hash(attributes)
141
+ new.build_from_hash(attributes)
142
+ end
143
+
144
+ # Builds the object from hash
145
+ # @param [Hash] attributes Model attributes in the form of hash
146
+ # @return [Object] Returns the model itself
147
+ def build_from_hash(attributes)
148
+ return nil unless attributes.is_a?(Hash)
149
+ self.class.openapi_types.each_pair do |key, type|
150
+ if type =~ /\AArray<(.*)>/i
151
+ # check to ensure the input is an array given that the attribute
152
+ # is documented as an array but the input is not
153
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
154
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
155
+ end
156
+ elsif !attributes[self.class.attribute_map[key]].nil?
157
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
158
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
159
+ end
160
+
161
+ self
162
+ end
163
+
164
+ # Deserializes the data based on type
165
+ # @param string type Data type
166
+ # @param string value Value to be deserialized
167
+ # @return [Object] Deserialized data
168
+ def _deserialize(type, value)
169
+ case type.to_sym
170
+ when :DateTime
171
+ DateTime.parse(value)
172
+ when :Date
173
+ Date.parse(value)
174
+ when :Time
175
+ Time.parse(value)
176
+ when :String
177
+ value.to_s
178
+ when :Integer
179
+ value.to_i
180
+ when :Float
181
+ value.to_f
182
+ when :Boolean
183
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
184
+ true
185
+ else
186
+ false
187
+ end
188
+ when :Object
189
+ # generic object (usually a Hash), return directly
190
+ value
191
+ when /\AArray<(?<inner_type>.+)>\z/
192
+ inner_type = Regexp.last_match[:inner_type]
193
+ value.map { |v| _deserialize(inner_type, v) }
194
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
195
+ k_type = Regexp.last_match[:k_type]
196
+ v_type = Regexp.last_match[:v_type]
197
+ {}.tap do |hash|
198
+ value.each do |k, v|
199
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
200
+ end
201
+ end
202
+ else # model
203
+ Phrase.const_get(type).build_from_hash(value)
204
+ end
205
+ end
206
+
207
+ # Returns the string representation of the object
208
+ # @return [String] String presentation of the object
209
+ def to_s
210
+ to_hash.to_s
211
+ end
212
+
213
+ # to_body is an alias to to_hash (backward compatibility)
214
+ # @return [Hash] Returns the object in the form of hash
215
+ def to_body
216
+ to_hash
217
+ end
218
+
219
+ # Returns the object in the form of hash
220
+ # @return [Hash] Returns the object in the form of hash
221
+ def to_hash
222
+ hash = {}
223
+ self.class.attribute_map.each_pair do |attr, param|
224
+ value = self.send(attr)
225
+ if value.nil?
226
+ is_nullable = self.class.openapi_nullable.include?(attr)
227
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
228
+ end
229
+
230
+ hash[param] = _to_hash(value)
231
+ end
232
+ hash
233
+ end
234
+
235
+ # Outputs non-array value in the form of hash
236
+ # For object, use to_hash. Otherwise, just return the value
237
+ # @param [Object] value Any valid value
238
+ # @return [Hash] Returns the value in the form of hash
239
+ def _to_hash(value)
240
+ if value.is_a?(Array)
241
+ value.compact.map { |v| _to_hash(v) }
242
+ elsif value.is_a?(Hash)
243
+ {}.tap do |hash|
244
+ value.each { |k, v| hash[k] = _to_hash(v) }
245
+ end
246
+ elsif value.respond_to? :to_hash
247
+ value.to_hash
248
+ else
249
+ value
250
+ end
251
+ end
252
+ end
253
+ end
@@ -0,0 +1,208 @@
1
+ require 'date'
2
+
3
+ module Phrase
4
+ # The parent key's public identifier and name. Set for child keys.
5
+ class TranslationKeyLinkedKeyParent
6
+ # The parent key's public identifier (code).
7
+ attr_accessor :id
8
+
9
+ # The parent key's name.
10
+ attr_accessor :name
11
+
12
+ # Attribute mapping from ruby-style variable name to JSON key.
13
+ def self.attribute_map
14
+ {
15
+ :'id' => :'id',
16
+ :'name' => :'name'
17
+ }
18
+ end
19
+
20
+ # Attribute type mapping.
21
+ def self.openapi_types
22
+ {
23
+ :'id' => :'String',
24
+ :'name' => :'String'
25
+ }
26
+ end
27
+
28
+ # List of attributes with nullable: true
29
+ def self.openapi_nullable
30
+ Set.new([
31
+ ])
32
+ end
33
+
34
+ # Initializes the object
35
+ # @param [Hash] attributes Model attributes in the form of hash
36
+ def initialize(attributes = {})
37
+ if (!attributes.is_a?(Hash))
38
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Phrase::TranslationKeyLinkedKeyParent` initialize method"
39
+ end
40
+
41
+ # check to see if the attribute exists and convert string to symbol for hash key
42
+ attributes = attributes.each_with_object({}) { |(k, v), h|
43
+ if (!self.class.attribute_map.key?(k.to_sym))
44
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Phrase::TranslationKeyLinkedKeyParent`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
45
+ end
46
+ h[k.to_sym] = v
47
+ }
48
+
49
+ if attributes.key?(:'id')
50
+ self.id = attributes[:'id']
51
+ end
52
+
53
+ if attributes.key?(:'name')
54
+ self.name = attributes[:'name']
55
+ end
56
+ end
57
+
58
+ # Show invalid properties with the reasons. Usually used together with valid?
59
+ # @return Array for valid properties with the reasons
60
+ def list_invalid_properties
61
+ invalid_properties = Array.new
62
+ invalid_properties
63
+ end
64
+
65
+ # Check to see if the all the properties in the model are valid
66
+ # @return true if the model is valid
67
+ def valid?
68
+ true
69
+ end
70
+
71
+ # Checks equality by comparing each attribute.
72
+ # @param [Object] Object to be compared
73
+ def ==(o)
74
+ return true if self.equal?(o)
75
+ self.class == o.class &&
76
+ id == o.id &&
77
+ name == o.name
78
+ end
79
+
80
+ # @see the `==` method
81
+ # @param [Object] Object to be compared
82
+ def eql?(o)
83
+ self == o
84
+ end
85
+
86
+ # Calculates hash code according to all attributes.
87
+ # @return [Integer] Hash code
88
+ def hash
89
+ [id, name].hash
90
+ end
91
+
92
+ # Builds the object from hash
93
+ # @param [Hash] attributes Model attributes in the form of hash
94
+ # @return [Object] Returns the model itself
95
+ def self.build_from_hash(attributes)
96
+ new.build_from_hash(attributes)
97
+ end
98
+
99
+ # Builds the object from hash
100
+ # @param [Hash] attributes Model attributes in the form of hash
101
+ # @return [Object] Returns the model itself
102
+ def build_from_hash(attributes)
103
+ return nil unless attributes.is_a?(Hash)
104
+ self.class.openapi_types.each_pair do |key, type|
105
+ if type =~ /\AArray<(.*)>/i
106
+ # check to ensure the input is an array given that the attribute
107
+ # is documented as an array but the input is not
108
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
109
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
110
+ end
111
+ elsif !attributes[self.class.attribute_map[key]].nil?
112
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
113
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
114
+ end
115
+
116
+ self
117
+ end
118
+
119
+ # Deserializes the data based on type
120
+ # @param string type Data type
121
+ # @param string value Value to be deserialized
122
+ # @return [Object] Deserialized data
123
+ def _deserialize(type, value)
124
+ case type.to_sym
125
+ when :DateTime
126
+ DateTime.parse(value)
127
+ when :Date
128
+ Date.parse(value)
129
+ when :Time
130
+ Time.parse(value)
131
+ when :String
132
+ value.to_s
133
+ when :Integer
134
+ value.to_i
135
+ when :Float
136
+ value.to_f
137
+ when :Boolean
138
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
139
+ true
140
+ else
141
+ false
142
+ end
143
+ when :Object
144
+ # generic object (usually a Hash), return directly
145
+ value
146
+ when /\AArray<(?<inner_type>.+)>\z/
147
+ inner_type = Regexp.last_match[:inner_type]
148
+ value.map { |v| _deserialize(inner_type, v) }
149
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
150
+ k_type = Regexp.last_match[:k_type]
151
+ v_type = Regexp.last_match[:v_type]
152
+ {}.tap do |hash|
153
+ value.each do |k, v|
154
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
155
+ end
156
+ end
157
+ else # model
158
+ Phrase.const_get(type).build_from_hash(value)
159
+ end
160
+ end
161
+
162
+ # Returns the string representation of the object
163
+ # @return [String] String presentation of the object
164
+ def to_s
165
+ to_hash.to_s
166
+ end
167
+
168
+ # to_body is an alias to to_hash (backward compatibility)
169
+ # @return [Hash] Returns the object in the form of hash
170
+ def to_body
171
+ to_hash
172
+ end
173
+
174
+ # Returns the object in the form of hash
175
+ # @return [Hash] Returns the object in the form of hash
176
+ def to_hash
177
+ hash = {}
178
+ self.class.attribute_map.each_pair do |attr, param|
179
+ value = self.send(attr)
180
+ if value.nil?
181
+ is_nullable = self.class.openapi_nullable.include?(attr)
182
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
183
+ end
184
+
185
+ hash[param] = _to_hash(value)
186
+ end
187
+ hash
188
+ end
189
+
190
+ # Outputs non-array value in the form of hash
191
+ # For object, use to_hash. Otherwise, just return the value
192
+ # @param [Object] value Any valid value
193
+ # @return [Hash] Returns the value in the form of hash
194
+ def _to_hash(value)
195
+ if value.is_a?(Array)
196
+ value.compact.map { |v| _to_hash(v) }
197
+ elsif value.is_a?(Hash)
198
+ {}.tap do |hash|
199
+ value.each { |k, v| hash[k] = _to_hash(v) }
200
+ end
201
+ elsif value.respond_to? :to_hash
202
+ value.to_hash
203
+ else
204
+ value
205
+ end
206
+ end
207
+ end
208
+ end
@@ -1,3 +1,3 @@
1
1
  module Phrase
2
- VERSION = '4.33.0'
2
+ VERSION = '4.34.0'
3
3
  end
data/lib/phrase.rb CHANGED
@@ -222,6 +222,8 @@ require 'phrase/models/translation_exclude_parameters'
222
222
  require 'phrase/models/translation_include_parameters'
223
223
  require 'phrase/models/translation_key'
224
224
  require 'phrase/models/translation_key_details'
225
+ require 'phrase/models/translation_key_linked_key'
226
+ require 'phrase/models/translation_key_linked_key_parent'
225
227
  require 'phrase/models/translation_order'
226
228
  require 'phrase/models/translation_parent'
227
229
  require 'phrase/models/translation_review_parameters'
@@ -136,6 +136,7 @@ describe 'KeysApi' do
136
136
  # @option opts [String] :order Order direction. Can be one of: asc, desc.
137
137
  # @option opts [String] :q Specify a query to do broad search for keys by name (including wildcards). The following qualifiers are also supported in the search term: - &#x60;ids:key_id,...&#x60; for queries on a comma-separated list of ids - &#x60;name:key_name&#x60; for text queries on exact key names - spaces, commas, and colons need to be escaped with double backslashes - &#x60;tags:tag_name&#x60; to filter for keys with certain tags - &#x60;translated:{true|false}&#x60; for translation status (also requires &#x60;locale_id&#x60; to be specified) - &#x60;updated_at:{&gt;&#x3D;|&lt;&#x3D;}2013-02-21T00:00:00Z&#x60; for date range queries - &#x60;unmentioned_in_upload:upload_id,...&#x60; to filter keys unmentioned within upload. When multiple upload IDs provided, matches only keys not mentioned in **all** uploads **Caution:** Query parameters with empty values will be treated as though they are not included in the request and will be ignored. Find more examples [here](/en/api/strings/usage-examples).
138
138
  # @option opts [String] :locale_id Locale used to determine the translation state of a key when filtering for untranslated or translated keys.
139
+ # @option opts [Boolean] :include_linked_keys When set to &#x60;true&#x60;, each key object in the response includes a &#x60;linked_key&#x60; field describing whether the key is a parent or child in a key-link relationship, and the number of children (for parent keys) or the parent&#39;s id and name (for child keys). Keys with no active link return &#x60;linked_key: null&#x60;. Omit this parameter or set it to &#x60;false&#x60; to leave the &#x60;linked_key&#x60; field out of the response entirely.
139
140
  # @return [Array<TranslationKey>]
140
141
  describe 'keys_list test' do
141
142
  it 'should work' do
@@ -152,6 +153,7 @@ describe 'KeysApi' do
152
153
  # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
153
154
  # @option opts [Integer] :page Page number
154
155
  # @option opts [Integer] :per_page Limit on the number of objects to be returned, between 1 and 100. 25 by default
156
+ # @option opts [Boolean] :include_linked_keys When set to &#x60;true&#x60;, each key object in the response includes a &#x60;linked_key&#x60; field describing whether the key is a parent or child in a key-link relationship, and the number of children (for parent keys) or the parent&#39;s id and name (for child keys). Keys with no active link return &#x60;linked_key: null&#x60;. Omit this parameter or set it to &#x60;false&#x60; to leave the &#x60;linked_key&#x60; field out of the response entirely.
155
157
  # @return [Array<TranslationKey>]
156
158
  describe 'keys_search test' do
157
159
  it 'should work' do
@@ -80,6 +80,12 @@ describe 'TranslationKeyDetails' do
80
80
  end
81
81
  end
82
82
 
83
+ describe 'test attribute "linked_key"' do
84
+ it 'should work' do
85
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
86
+ end
87
+ end
88
+
83
89
  describe 'test attribute "name_plural"' do
84
90
  it 'should work' do
85
91
  # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+ require 'json'
3
+ require 'date'
4
+
5
+ # Unit tests for Phrase::TranslationKeyLinkedKeyParent
6
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
7
+ # Please update as you see appropriate
8
+ describe 'TranslationKeyLinkedKeyParent' do
9
+ before do
10
+ # run before each test
11
+ @instance = Phrase::TranslationKeyLinkedKeyParent.new
12
+ end
13
+
14
+ after do
15
+ # run after each test
16
+ end
17
+
18
+ describe 'test an instance of TranslationKeyLinkedKeyParent' do
19
+ it 'should create an instance of TranslationKeyLinkedKeyParent' do
20
+ expect(@instance).to be_instance_of(Phrase::TranslationKeyLinkedKeyParent)
21
+ end
22
+ end
23
+ describe 'test attribute "id"' do
24
+ it 'should work' do
25
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
26
+ end
27
+ end
28
+
29
+ describe 'test attribute "name"' do
30
+ it 'should work' do
31
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
32
+ end
33
+ end
34
+
35
+ end
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+ require 'json'
3
+ require 'date'
4
+
5
+ # Unit tests for Phrase::TranslationKeyLinkedKey
6
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
7
+ # Please update as you see appropriate
8
+ describe 'TranslationKeyLinkedKey' do
9
+ before do
10
+ # run before each test
11
+ @instance = Phrase::TranslationKeyLinkedKey.new
12
+ end
13
+
14
+ after do
15
+ # run after each test
16
+ end
17
+
18
+ describe 'test an instance of TranslationKeyLinkedKey' do
19
+ it 'should create an instance of TranslationKeyLinkedKey' do
20
+ expect(@instance).to be_instance_of(Phrase::TranslationKeyLinkedKey)
21
+ end
22
+ end
23
+ describe 'test attribute "role"' do
24
+ it 'should work' do
25
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
26
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["parent", "child"])
27
+ # validator.allowable_values.each do |value|
28
+ # expect { @instance.role = value }.not_to raise_error
29
+ # end
30
+ end
31
+ end
32
+
33
+ describe 'test attribute "parent"' do
34
+ it 'should work' do
35
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
36
+ end
37
+ end
38
+
39
+ describe 'test attribute "children_count"' do
40
+ it 'should work' do
41
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
42
+ end
43
+ end
44
+
45
+ end
@@ -80,4 +80,10 @@ describe 'TranslationKey' do
80
80
  end
81
81
  end
82
82
 
83
+ describe 'test attribute "linked_key"' do
84
+ it 'should work' do
85
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
86
+ end
87
+ end
88
+
83
89
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phrase
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.33.0
4
+ version: 4.34.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Phrase
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-11-04 00:00:00.000000000 Z
11
+ date: 2026-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -347,6 +347,8 @@ files:
347
347
  - docs/TranslationIncludeParameters.md
348
348
  - docs/TranslationKey.md
349
349
  - docs/TranslationKeyDetails.md
350
+ - docs/TranslationKeyLinkedKey.md
351
+ - docs/TranslationKeyLinkedKeyParent.md
350
352
  - docs/TranslationOrder.md
351
353
  - docs/TranslationParent.md
352
354
  - docs/TranslationReviewParameters.md
@@ -666,6 +668,8 @@ files:
666
668
  - lib/phrase/models/translation_include_parameters.rb
667
669
  - lib/phrase/models/translation_key.rb
668
670
  - lib/phrase/models/translation_key_details.rb
671
+ - lib/phrase/models/translation_key_linked_key.rb
672
+ - lib/phrase/models/translation_key_linked_key_parent.rb
669
673
  - lib/phrase/models/translation_order.rb
670
674
  - lib/phrase/models/translation_parent.rb
671
675
  - lib/phrase/models/translation_review_parameters.rb
@@ -975,6 +979,8 @@ files:
975
979
  - spec/models/translation_exclude_parameters_spec.rb
976
980
  - spec/models/translation_include_parameters_spec.rb
977
981
  - spec/models/translation_key_details_spec.rb
982
+ - spec/models/translation_key_linked_key_parent_spec.rb
983
+ - spec/models/translation_key_linked_key_spec.rb
978
984
  - spec/models/translation_key_spec.rb
979
985
  - spec/models/translation_order_spec.rb
980
986
  - spec/models/translation_parent_spec.rb
@@ -1134,6 +1140,7 @@ test_files:
1134
1140
  - spec/models/job_template_preview_spec.rb
1135
1141
  - spec/models/teams_users_create_parameters_spec.rb
1136
1142
  - spec/models/translations_unreview_parameters_spec.rb
1143
+ - spec/models/translation_key_linked_key_spec.rb
1137
1144
  - spec/models/translations_include_parameters_spec.rb
1138
1145
  - spec/models/upload_spec.rb
1139
1146
  - spec/models/job_comment_create_parameters_spec.rb
@@ -1262,6 +1269,7 @@ test_files:
1262
1269
  - spec/models/automation_event_project_spec.rb
1263
1270
  - spec/models/invitation_create_parameters_spec.rb
1264
1271
  - spec/models/order_create_parameters_spec.rb
1272
+ - spec/models/translation_key_linked_key_parent_spec.rb
1265
1273
  - spec/models/locale_report_spec.rb
1266
1274
  - spec/models/tag_spec.rb
1267
1275
  - spec/models/branch_sync_parameters_spec.rb