knockapi 1.5.0 → 1.6.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 (34) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +1 -1
  4. data/lib/knockapi/internal/util.rb +8 -9
  5. data/lib/knockapi/models/objects/bulk_set_params.rb +46 -3
  6. data/lib/knockapi/models/schedule_list_params.rb +4 -4
  7. data/lib/knockapi/models/schedule_repeat_rule.rb +9 -9
  8. data/lib/knockapi/models/tenant_set_params.rb +1 -11
  9. data/lib/knockapi/models/user_list_subscriptions_params.rb +4 -4
  10. data/lib/knockapi/resources/objects/bulk.rb +1 -1
  11. data/lib/knockapi/resources/schedules.rb +1 -1
  12. data/lib/knockapi/resources/tenants.rb +1 -3
  13. data/lib/knockapi/resources/users.rb +1 -1
  14. data/lib/knockapi/version.rb +1 -1
  15. data/rbi/knockapi/internal/util.rbi +2 -0
  16. data/rbi/knockapi/models/objects/bulk_set_params.rbi +117 -3
  17. data/rbi/knockapi/models/schedule_list_params.rbi +33 -6
  18. data/rbi/knockapi/models/schedule_repeat_rule.rbi +11 -8
  19. data/rbi/knockapi/models/tenant_set_params.rbi +0 -21
  20. data/rbi/knockapi/models/user_list_subscriptions_params.rbi +33 -6
  21. data/rbi/knockapi/resources/objects/bulk.rbi +1 -1
  22. data/rbi/knockapi/resources/schedules.rbi +8 -2
  23. data/rbi/knockapi/resources/tenants.rbi +0 -9
  24. data/rbi/knockapi/resources/users.rbi +8 -2
  25. data/sig/knockapi/models/objects/bulk_set_params.rbs +36 -4
  26. data/sig/knockapi/models/schedule_list_params.rbs +7 -5
  27. data/sig/knockapi/models/schedule_repeat_rule.rbs +7 -5
  28. data/sig/knockapi/models/tenant_set_params.rbs +0 -5
  29. data/sig/knockapi/models/user_list_subscriptions_params.rbs +7 -5
  30. data/sig/knockapi/resources/objects/bulk.rbs +1 -1
  31. data/sig/knockapi/resources/schedules.rbs +1 -1
  32. data/sig/knockapi/resources/tenants.rbs +0 -1
  33. data/sig/knockapi/resources/users.rbs +1 -1
  34. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2d5f3a2c6174ea9d6f4a8203b2dc98ec7edfb5374cffd899a0b6b669257a7686
4
- data.tar.gz: 2b4c45abf3420222039f6caacf508a530c4c8cac4196e325c353f927f60e5b6c
3
+ metadata.gz: 88bed516b45f927d1fbb308a5772702f01c0730f771aa9beb5fd109cca94c737
4
+ data.tar.gz: 274df112dda80229e94e280b8a6254722b2a61a50137dbfbd6fd53c108e58077
5
5
  SHA512:
6
- metadata.gz: '0409be38f4fe4c66806657b1821f9bd66f4191a5c631cbbd6110c4ab60a7d3b3613c6fa8909656b85dfd99723f953172a4561d7a5addb8fdc61aa00882ea71a1'
7
- data.tar.gz: 8bb6ec2864fa22a0482c4600d911fbd4e7d38c6e4b58b0c6f7f71163781d588fb8d1bd674a0bbd4c6dd1e399ed43c5f930b73c407636b5b6fae443dd5e5fbd74
6
+ metadata.gz: 32ef82b2c71ec00d58d059d53603022eee35219d9eb27478f5616c4d29dd229d08e7f6c2ef4b868c1030cc48e80953ca3c16d9538f0fbafab2f14a0d8d4346df
7
+ data.tar.gz: 4050f90d2fe88af42d1fe64e760d41d0d43b8671050277eaf254fda2cd618b0c5c39f0a6150bd10d75cdf015d653cca4cd4ff28e1eada6e599aaa6e6911d469d
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.6.0 (2025-06-06)
4
+
5
+ Full Changelog: [v1.5.0...v1.6.0](https://github.com/knocklabs/knock-ruby/compare/v1.5.0...v1.6.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([53aa9c9](https://github.com/knocklabs/knock-ruby/commit/53aa9c9ebd4a8e7be2fd5bdf08a4b749f6b9d116))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * default content-type for text in multi-part formdata uploads should be text/plain ([de655f0](https://github.com/knocklabs/knock-ruby/commit/de655f0dd9194b4c30d7ad26e2da98f6cba51a0f))
15
+
3
16
  ## 1.5.0 (2025-06-04)
4
17
 
5
18
  Full Changelog: [v1.4.0...v1.5.0](https://github.com/knocklabs/knock-ruby/compare/v1.4.0...v1.5.0)
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "knockapi", "~> 1.5.0"
20
+ gem "knockapi", "~> 1.6.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -497,7 +497,7 @@ module Knockapi
497
497
  # @param closing [Array<Proc>]
498
498
  # @param content_type [String, nil]
499
499
  private def write_multipart_content(y, val:, closing:, content_type: nil)
500
- content_type ||= "application/octet-stream"
500
+ content_line = "Content-Type: %s\r\n\r\n"
501
501
 
502
502
  case val
503
503
  in Knockapi::FilePart
@@ -508,24 +508,21 @@ module Knockapi
508
508
  content_type: val.content_type
509
509
  )
510
510
  in Pathname
511
- y << "Content-Type: #{content_type}\r\n\r\n"
511
+ y << format(content_line, content_type || "application/octet-stream")
512
512
  io = val.open(binmode: true)
513
513
  closing << io.method(:close)
514
514
  IO.copy_stream(io, y)
515
515
  in IO
516
- y << "Content-Type: #{content_type}\r\n\r\n"
516
+ y << format(content_line, content_type || "application/octet-stream")
517
517
  IO.copy_stream(val, y)
518
518
  in StringIO
519
- y << "Content-Type: #{content_type}\r\n\r\n"
519
+ y << format(content_line, content_type || "application/octet-stream")
520
520
  y << val.string
521
- in String
522
- y << "Content-Type: #{content_type}\r\n\r\n"
523
- y << val.to_s
524
521
  in -> { primitive?(_1) }
525
- y << "Content-Type: text/plain\r\n\r\n"
522
+ y << format(content_line, content_type || "text/plain")
526
523
  y << val.to_s
527
524
  else
528
- y << "Content-Type: application/json\r\n\r\n"
525
+ y << format(content_line, content_type || "application/json")
529
526
  y << JSON.generate(val)
530
527
  end
531
528
  y << "\r\n"
@@ -563,6 +560,8 @@ module Knockapi
563
560
 
564
561
  # @api private
565
562
  #
563
+ # https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.1.md#special-considerations-for-multipart-content
564
+ #
566
565
  # @param body [Object]
567
566
  #
568
567
  # @return [Array(String, Enumerable<String>)]
@@ -11,13 +11,56 @@ module Knockapi
11
11
  # @!attribute objects
12
12
  # A list of objects.
13
13
  #
14
- # @return [Array<Knockapi::Models::InlineObjectRequest>]
15
- required :objects, -> { Knockapi::Internal::Type::ArrayOf[Knockapi::InlineObjectRequest] }
14
+ # @return [Array<Knockapi::Models::Objects::BulkSetParams::Object>]
15
+ required :objects, -> { Knockapi::Internal::Type::ArrayOf[Knockapi::Objects::BulkSetParams::Object] }
16
16
 
17
17
  # @!method initialize(objects:, request_options: {})
18
- # @param objects [Array<Knockapi::Models::InlineObjectRequest>] A list of objects.
18
+ # @param objects [Array<Knockapi::Models::Objects::BulkSetParams::Object>] A list of objects.
19
19
  #
20
20
  # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}]
21
+
22
+ class Object < Knockapi::Internal::Type::BaseModel
23
+ # @!attribute id
24
+ # Unique identifier for the object.
25
+ #
26
+ # @return [String]
27
+ required :id, String
28
+
29
+ # @!attribute channel_data
30
+ # A request to set channel data for a type of channel inline.
31
+ #
32
+ # @return [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil]
33
+ optional :channel_data,
34
+ -> {
35
+ Knockapi::Internal::Type::HashOf[union: Knockapi::Recipients::InlineChannelDataRequestItem]
36
+ },
37
+ nil?: true
38
+
39
+ # @!attribute created_at
40
+ # Timestamp when the resource was created.
41
+ #
42
+ # @return [Time, nil]
43
+ optional :created_at, Time, nil?: true
44
+
45
+ # @!attribute preferences
46
+ # Inline set preferences for a recipient, where the key is the preference set id.
47
+ #
48
+ # @return [Hash{Symbol=>Knockapi::Models::Recipients::PreferenceSetRequest}, nil]
49
+ optional :preferences,
50
+ -> { Knockapi::Internal::Type::HashOf[Knockapi::Recipients::PreferenceSetRequest] },
51
+ nil?: true
52
+
53
+ # @!method initialize(id:, channel_data: nil, created_at: nil, preferences: nil)
54
+ # A custom [Object](/concepts/objects) entity which belongs to a collection.
55
+ #
56
+ # @param id [String] Unique identifier for the object.
57
+ #
58
+ # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil] A request to set channel data for a type of channel inline.
59
+ #
60
+ # @param created_at [Time, nil] Timestamp when the resource was created.
61
+ #
62
+ # @param preferences [Hash{Symbol=>Knockapi::Models::Recipients::PreferenceSetRequest}, nil] Inline set preferences for a recipient, where the key is the preference set id.
63
+ end
21
64
  end
22
65
  end
23
66
  end
@@ -32,10 +32,10 @@ module Knockapi
32
32
  optional :page_size, Integer
33
33
 
34
34
  # @!attribute recipients
35
- # Filter by recipient IDs.
35
+ # Filter by recipient references.
36
36
  #
37
- # @return [Array<String>, nil]
38
- optional :recipients, Knockapi::Internal::Type::ArrayOf[String]
37
+ # @return [Array<String, Knockapi::Models::RecipientReference::ObjectReference>, nil]
38
+ optional :recipients, -> { Knockapi::Internal::Type::ArrayOf[union: Knockapi::RecipientReference] }
39
39
 
40
40
  # @!attribute tenant
41
41
  # Filter by tenant ID.
@@ -52,7 +52,7 @@ module Knockapi
52
52
  #
53
53
  # @param page_size [Integer] The number of items per page.
54
54
  #
55
- # @param recipients [Array<String>] Filter by recipient IDs.
55
+ # @param recipients [Array<String, Knockapi::Models::RecipientReference::ObjectReference>] Filter by recipient references.
56
56
  #
57
57
  # @param tenant [String] Filter by tenant ID.
58
58
  #
@@ -3,18 +3,18 @@
3
3
  module Knockapi
4
4
  module Models
5
5
  class ScheduleRepeatRule < Knockapi::Internal::Type::BaseModel
6
- # @!attribute _typename
7
- # The typename of the schema.
8
- #
9
- # @return [String]
10
- required :_typename, String, api_name: :__typename
11
-
12
6
  # @!attribute frequency
13
7
  # The frequency of the schedule.
14
8
  #
15
9
  # @return [Symbol, Knockapi::Models::ScheduleRepeatRule::Frequency]
16
10
  required :frequency, enum: -> { Knockapi::ScheduleRepeatRule::Frequency }
17
11
 
12
+ # @!attribute _typename
13
+ # The typename of the schema.
14
+ #
15
+ # @return [String, nil]
16
+ optional :_typename, String, api_name: :__typename
17
+
18
18
  # @!attribute day_of_month
19
19
  # The day of the month to repeat the schedule.
20
20
  #
@@ -47,13 +47,13 @@ module Knockapi
47
47
  # @return [Integer, nil]
48
48
  optional :minutes, Integer, nil?: true
49
49
 
50
- # @!method initialize(_typename:, frequency:, day_of_month: nil, days: nil, hours: nil, interval: nil, minutes: nil)
50
+ # @!method initialize(frequency:, _typename: nil, day_of_month: nil, days: nil, hours: nil, interval: nil, minutes: nil)
51
51
  # The repeat rule for the schedule.
52
52
  #
53
- # @param _typename [String] The typename of the schema.
54
- #
55
53
  # @param frequency [Symbol, Knockapi::Models::ScheduleRepeatRule::Frequency] The frequency of the schedule.
56
54
  #
55
+ # @param _typename [String] The typename of the schema.
56
+ #
57
57
  # @param day_of_month [Integer, nil] The day of the month to repeat the schedule.
58
58
  #
59
59
  # @param days [Array<Symbol, Knockapi::Models::ScheduleRepeatRule::Day>, nil] The days of the week to repeat the schedule.
@@ -17,25 +17,15 @@ module Knockapi
17
17
  },
18
18
  nil?: true
19
19
 
20
- # @!attribute preferences
21
- # Inline set preferences for a recipient, where the key is the preference set id.
22
- #
23
- # @return [Hash{Symbol=>Knockapi::Models::Recipients::PreferenceSetRequest}, nil]
24
- optional :preferences,
25
- -> { Knockapi::Internal::Type::HashOf[Knockapi::Recipients::PreferenceSetRequest] },
26
- nil?: true
27
-
28
20
  # @!attribute settings
29
21
  # The settings for the tenant. Includes branding and preference set.
30
22
  #
31
23
  # @return [Knockapi::Models::TenantSetParams::Settings, nil]
32
24
  optional :settings, -> { Knockapi::TenantSetParams::Settings }
33
25
 
34
- # @!method initialize(channel_data: nil, preferences: nil, settings: nil, request_options: {})
26
+ # @!method initialize(channel_data: nil, settings: nil, request_options: {})
35
27
  # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil] A request to set channel data for a type of channel inline.
36
28
  #
37
- # @param preferences [Hash{Symbol=>Knockapi::Models::Recipients::PreferenceSetRequest}, nil] Inline set preferences for a recipient, where the key is the preference set id.
38
- #
39
29
  # @param settings [Knockapi::Models::TenantSetParams::Settings] The settings for the tenant. Includes branding and preference set.
40
30
  #
41
31
  # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}]
@@ -27,10 +27,10 @@ module Knockapi
27
27
  -> { Knockapi::Internal::Type::ArrayOf[enum: Knockapi::UserListSubscriptionsParams::Include] }
28
28
 
29
29
  # @!attribute objects
30
- # Only returns subscriptions for the specified object GIDs.
30
+ # Only returns subscriptions for the specified object references.
31
31
  #
32
- # @return [Array<String>, nil]
33
- optional :objects, Knockapi::Internal::Type::ArrayOf[String]
32
+ # @return [Array<String, Knockapi::Models::RecipientReference::ObjectReference>, nil]
33
+ optional :objects, -> { Knockapi::Internal::Type::ArrayOf[union: Knockapi::RecipientReference] }
34
34
 
35
35
  # @!attribute page_size
36
36
  # The number of items per page.
@@ -45,7 +45,7 @@ module Knockapi
45
45
  #
46
46
  # @param include [Array<Symbol, Knockapi::Models::UserListSubscriptionsParams::Include>] Associated resources to include in the response.
47
47
  #
48
- # @param objects [Array<String>] Only returns subscriptions for the specified object GIDs.
48
+ # @param objects [Array<String, Knockapi::Models::RecipientReference::ObjectReference>] Only returns subscriptions for the specified object references.
49
49
  #
50
50
  # @param page_size [Integer] The number of items per page.
51
51
  #
@@ -62,7 +62,7 @@ module Knockapi
62
62
  #
63
63
  # @param collection [String] The collection this object belongs to.
64
64
  #
65
- # @param objects [Array<Knockapi::Models::InlineObjectRequest>] A list of objects.
65
+ # @param objects [Array<Knockapi::Models::Objects::BulkSetParams::Object>] A list of objects.
66
66
  #
67
67
  # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
68
68
  #
@@ -103,7 +103,7 @@ module Knockapi
103
103
  #
104
104
  # @param page_size [Integer] The number of items per page.
105
105
  #
106
- # @param recipients [Array<String>] Filter by recipient IDs.
106
+ # @param recipients [Array<String, Knockapi::Models::RecipientReference::ObjectReference>] Filter by recipient references.
107
107
  #
108
108
  # @param tenant [String] Filter by tenant ID.
109
109
  #
@@ -80,14 +80,12 @@ module Knockapi
80
80
  # Sets a tenant within an environment, performing an upsert operation. Any
81
81
  # existing properties will be merged with the incoming properties.
82
82
  #
83
- # @overload set(id, channel_data: nil, preferences: nil, settings: nil, request_options: {})
83
+ # @overload set(id, channel_data: nil, settings: nil, request_options: {})
84
84
  #
85
85
  # @param id [String] The unique identifier for the tenant.
86
86
  #
87
87
  # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil] A request to set channel data for a type of channel inline.
88
88
  #
89
- # @param preferences [Hash{Symbol=>Knockapi::Models::Recipients::PreferenceSetRequest}, nil] Inline set preferences for a recipient, where the key is the preference set id.
90
- #
91
89
  # @param settings [Knockapi::Models::TenantSetParams::Settings] The settings for the tenant. Includes branding and preference set.
92
90
  #
93
91
  # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
@@ -298,7 +298,7 @@ module Knockapi
298
298
  #
299
299
  # @param include [Array<Symbol, Knockapi::Models::UserListSubscriptionsParams::Include>] Associated resources to include in the response.
300
300
  #
301
- # @param objects [Array<String>] Only returns subscriptions for the specified object GIDs.
301
+ # @param objects [Array<String, Knockapi::Models::RecipientReference::ObjectReference>] Only returns subscriptions for the specified object references.
302
302
  #
303
303
  # @param page_size [Integer] The number of items per page.
304
304
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Knockapi
4
- VERSION = "1.5.0"
4
+ VERSION = "1.6.0"
5
5
  end
@@ -332,6 +332,8 @@ module Knockapi
332
332
  end
333
333
 
334
334
  # @api private
335
+ #
336
+ # https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.1.md#special-considerations-for-multipart-content
335
337
  sig do
336
338
  params(body: T.anything).returns([String, T::Enumerable[String]])
337
339
  end
@@ -13,12 +13,12 @@ module Knockapi
13
13
  end
14
14
 
15
15
  # A list of objects.
16
- sig { returns(T::Array[Knockapi::InlineObjectRequest]) }
16
+ sig { returns(T::Array[Knockapi::Objects::BulkSetParams::Object]) }
17
17
  attr_accessor :objects
18
18
 
19
19
  sig do
20
20
  params(
21
- objects: T::Array[Knockapi::InlineObjectRequest::OrHash],
21
+ objects: T::Array[Knockapi::Objects::BulkSetParams::Object::OrHash],
22
22
  request_options: Knockapi::RequestOptions::OrHash
23
23
  ).returns(T.attached_class)
24
24
  end
@@ -32,13 +32,127 @@ module Knockapi
32
32
  sig do
33
33
  override.returns(
34
34
  {
35
- objects: T::Array[Knockapi::InlineObjectRequest],
35
+ objects: T::Array[Knockapi::Objects::BulkSetParams::Object],
36
36
  request_options: Knockapi::RequestOptions
37
37
  }
38
38
  )
39
39
  end
40
40
  def to_hash
41
41
  end
42
+
43
+ class Object < Knockapi::Internal::Type::BaseModel
44
+ OrHash =
45
+ T.type_alias do
46
+ T.any(
47
+ Knockapi::Objects::BulkSetParams::Object,
48
+ Knockapi::Internal::AnyHash
49
+ )
50
+ end
51
+
52
+ # Unique identifier for the object.
53
+ sig { returns(String) }
54
+ attr_accessor :id
55
+
56
+ # A request to set channel data for a type of channel inline.
57
+ sig do
58
+ returns(
59
+ T.nilable(
60
+ T::Hash[
61
+ Symbol,
62
+ T.any(
63
+ Knockapi::Recipients::PushChannelData,
64
+ Knockapi::Recipients::OneSignalChannelData,
65
+ Knockapi::Recipients::SlackChannelData,
66
+ Knockapi::Recipients::MsTeamsChannelData,
67
+ Knockapi::Recipients::DiscordChannelData
68
+ )
69
+ ]
70
+ )
71
+ )
72
+ end
73
+ attr_accessor :channel_data
74
+
75
+ # Timestamp when the resource was created.
76
+ sig { returns(T.nilable(Time)) }
77
+ attr_accessor :created_at
78
+
79
+ # Inline set preferences for a recipient, where the key is the preference set id.
80
+ sig do
81
+ returns(
82
+ T.nilable(
83
+ T::Hash[Symbol, Knockapi::Recipients::PreferenceSetRequest]
84
+ )
85
+ )
86
+ end
87
+ attr_accessor :preferences
88
+
89
+ # A custom [Object](/concepts/objects) entity which belongs to a collection.
90
+ sig do
91
+ params(
92
+ id: String,
93
+ channel_data:
94
+ T.nilable(
95
+ T::Hash[
96
+ Symbol,
97
+ T.any(
98
+ Knockapi::Recipients::PushChannelData::OrHash,
99
+ Knockapi::Recipients::OneSignalChannelData::OrHash,
100
+ Knockapi::Recipients::SlackChannelData::OrHash,
101
+ Knockapi::Recipients::MsTeamsChannelData::OrHash,
102
+ Knockapi::Recipients::DiscordChannelData::OrHash
103
+ )
104
+ ]
105
+ ),
106
+ created_at: T.nilable(Time),
107
+ preferences:
108
+ T.nilable(
109
+ T::Hash[
110
+ Symbol,
111
+ Knockapi::Recipients::PreferenceSetRequest::OrHash
112
+ ]
113
+ )
114
+ ).returns(T.attached_class)
115
+ end
116
+ def self.new(
117
+ # Unique identifier for the object.
118
+ id:,
119
+ # A request to set channel data for a type of channel inline.
120
+ channel_data: nil,
121
+ # Timestamp when the resource was created.
122
+ created_at: nil,
123
+ # Inline set preferences for a recipient, where the key is the preference set id.
124
+ preferences: nil
125
+ )
126
+ end
127
+
128
+ sig do
129
+ override.returns(
130
+ {
131
+ id: String,
132
+ channel_data:
133
+ T.nilable(
134
+ T::Hash[
135
+ Symbol,
136
+ T.any(
137
+ Knockapi::Recipients::PushChannelData,
138
+ Knockapi::Recipients::OneSignalChannelData,
139
+ Knockapi::Recipients::SlackChannelData,
140
+ Knockapi::Recipients::MsTeamsChannelData,
141
+ Knockapi::Recipients::DiscordChannelData
142
+ )
143
+ ]
144
+ ),
145
+ created_at: T.nilable(Time),
146
+ preferences:
147
+ T.nilable(
148
+ T::Hash[Symbol, Knockapi::Recipients::PreferenceSetRequest]
149
+ )
150
+ }
151
+ )
152
+ end
153
+ def to_hash
154
+ end
155
+ end
42
156
  end
43
157
  end
44
158
  end
@@ -36,11 +36,29 @@ module Knockapi
36
36
  sig { params(page_size: Integer).void }
37
37
  attr_writer :page_size
38
38
 
39
- # Filter by recipient IDs.
40
- sig { returns(T.nilable(T::Array[String])) }
39
+ # Filter by recipient references.
40
+ sig do
41
+ returns(
42
+ T.nilable(
43
+ T::Array[
44
+ T.any(String, Knockapi::RecipientReference::ObjectReference)
45
+ ]
46
+ )
47
+ )
48
+ end
41
49
  attr_reader :recipients
42
50
 
43
- sig { params(recipients: T::Array[String]).void }
51
+ sig do
52
+ params(
53
+ recipients:
54
+ T::Array[
55
+ T.any(
56
+ String,
57
+ Knockapi::RecipientReference::ObjectReference::OrHash
58
+ )
59
+ ]
60
+ ).void
61
+ end
44
62
  attr_writer :recipients
45
63
 
46
64
  # Filter by tenant ID.
@@ -56,7 +74,13 @@ module Knockapi
56
74
  after: String,
57
75
  before: String,
58
76
  page_size: Integer,
59
- recipients: T::Array[String],
77
+ recipients:
78
+ T::Array[
79
+ T.any(
80
+ String,
81
+ Knockapi::RecipientReference::ObjectReference::OrHash
82
+ )
83
+ ],
60
84
  tenant: String,
61
85
  request_options: Knockapi::RequestOptions::OrHash
62
86
  ).returns(T.attached_class)
@@ -70,7 +94,7 @@ module Knockapi
70
94
  before: nil,
71
95
  # The number of items per page.
72
96
  page_size: nil,
73
- # Filter by recipient IDs.
97
+ # Filter by recipient references.
74
98
  recipients: nil,
75
99
  # Filter by tenant ID.
76
100
  tenant: nil,
@@ -85,7 +109,10 @@ module Knockapi
85
109
  after: String,
86
110
  before: String,
87
111
  page_size: Integer,
88
- recipients: T::Array[String],
112
+ recipients:
113
+ T::Array[
114
+ T.any(String, Knockapi::RecipientReference::ObjectReference)
115
+ ],
89
116
  tenant: String,
90
117
  request_options: Knockapi::RequestOptions
91
118
  }
@@ -8,14 +8,17 @@ module Knockapi
8
8
  T.any(Knockapi::ScheduleRepeatRule, Knockapi::Internal::AnyHash)
9
9
  end
10
10
 
11
- # The typename of the schema.
12
- sig { returns(String) }
13
- attr_accessor :_typename
14
-
15
11
  # The frequency of the schedule.
16
12
  sig { returns(Knockapi::ScheduleRepeatRule::Frequency::OrSymbol) }
17
13
  attr_accessor :frequency
18
14
 
15
+ # The typename of the schema.
16
+ sig { returns(T.nilable(String)) }
17
+ attr_reader :_typename
18
+
19
+ sig { params(_typename: String).void }
20
+ attr_writer :_typename
21
+
19
22
  # The day of the month to repeat the schedule.
20
23
  sig { returns(T.nilable(Integer)) }
21
24
  attr_accessor :day_of_month
@@ -46,8 +49,8 @@ module Knockapi
46
49
  # The repeat rule for the schedule.
47
50
  sig do
48
51
  params(
49
- _typename: String,
50
52
  frequency: Knockapi::ScheduleRepeatRule::Frequency::OrSymbol,
53
+ _typename: String,
51
54
  day_of_month: T.nilable(Integer),
52
55
  days:
53
56
  T.nilable(T::Array[Knockapi::ScheduleRepeatRule::Day::OrSymbol]),
@@ -57,10 +60,10 @@ module Knockapi
57
60
  ).returns(T.attached_class)
58
61
  end
59
62
  def self.new(
60
- # The typename of the schema.
61
- _typename:,
62
63
  # The frequency of the schedule.
63
64
  frequency:,
65
+ # The typename of the schema.
66
+ _typename: nil,
64
67
  # The day of the month to repeat the schedule.
65
68
  day_of_month: nil,
66
69
  # The days of the week to repeat the schedule.
@@ -77,8 +80,8 @@ module Knockapi
77
80
  sig do
78
81
  override.returns(
79
82
  {
80
- _typename: String,
81
83
  frequency: Knockapi::ScheduleRepeatRule::Frequency::OrSymbol,
84
+ _typename: String,
82
85
  day_of_month: T.nilable(Integer),
83
86
  days:
84
87
  T.nilable(T::Array[Knockapi::ScheduleRepeatRule::Day::OrSymbol]),
@@ -30,14 +30,6 @@ module Knockapi
30
30
  end
31
31
  attr_accessor :channel_data
32
32
 
33
- # Inline set preferences for a recipient, where the key is the preference set id.
34
- sig do
35
- returns(
36
- T.nilable(T::Hash[Symbol, Knockapi::Recipients::PreferenceSetRequest])
37
- )
38
- end
39
- attr_accessor :preferences
40
-
41
33
  # The settings for the tenant. Includes branding and preference set.
42
34
  sig { returns(T.nilable(Knockapi::TenantSetParams::Settings)) }
43
35
  attr_reader :settings
@@ -60,13 +52,6 @@ module Knockapi
60
52
  )
61
53
  ]
62
54
  ),
63
- preferences:
64
- T.nilable(
65
- T::Hash[
66
- Symbol,
67
- Knockapi::Recipients::PreferenceSetRequest::OrHash
68
- ]
69
- ),
70
55
  settings: Knockapi::TenantSetParams::Settings::OrHash,
71
56
  request_options: Knockapi::RequestOptions::OrHash
72
57
  ).returns(T.attached_class)
@@ -74,8 +59,6 @@ module Knockapi
74
59
  def self.new(
75
60
  # A request to set channel data for a type of channel inline.
76
61
  channel_data: nil,
77
- # Inline set preferences for a recipient, where the key is the preference set id.
78
- preferences: nil,
79
62
  # The settings for the tenant. Includes branding and preference set.
80
63
  settings: nil,
81
64
  request_options: {}
@@ -98,10 +81,6 @@ module Knockapi
98
81
  )
99
82
  ]
100
83
  ),
101
- preferences:
102
- T.nilable(
103
- T::Hash[Symbol, Knockapi::Recipients::PreferenceSetRequest]
104
- ),
105
84
  settings: Knockapi::TenantSetParams::Settings,
106
85
  request_options: Knockapi::RequestOptions
107
86
  }
@@ -46,11 +46,29 @@ module Knockapi
46
46
  end
47
47
  attr_writer :include
48
48
 
49
- # Only returns subscriptions for the specified object GIDs.
50
- sig { returns(T.nilable(T::Array[String])) }
49
+ # Only returns subscriptions for the specified object references.
50
+ sig do
51
+ returns(
52
+ T.nilable(
53
+ T::Array[
54
+ T.any(String, Knockapi::RecipientReference::ObjectReference)
55
+ ]
56
+ )
57
+ )
58
+ end
51
59
  attr_reader :objects
52
60
 
53
- sig { params(objects: T::Array[String]).void }
61
+ sig do
62
+ params(
63
+ objects:
64
+ T::Array[
65
+ T.any(
66
+ String,
67
+ Knockapi::RecipientReference::ObjectReference::OrHash
68
+ )
69
+ ]
70
+ ).void
71
+ end
54
72
  attr_writer :objects
55
73
 
56
74
  # The number of items per page.
@@ -66,7 +84,13 @@ module Knockapi
66
84
  before: String,
67
85
  include:
68
86
  T::Array[Knockapi::UserListSubscriptionsParams::Include::OrSymbol],
69
- objects: T::Array[String],
87
+ objects:
88
+ T::Array[
89
+ T.any(
90
+ String,
91
+ Knockapi::RecipientReference::ObjectReference::OrHash
92
+ )
93
+ ],
70
94
  page_size: Integer,
71
95
  request_options: Knockapi::RequestOptions::OrHash
72
96
  ).returns(T.attached_class)
@@ -78,7 +102,7 @@ module Knockapi
78
102
  before: nil,
79
103
  # Associated resources to include in the response.
80
104
  include: nil,
81
- # Only returns subscriptions for the specified object GIDs.
105
+ # Only returns subscriptions for the specified object references.
82
106
  objects: nil,
83
107
  # The number of items per page.
84
108
  page_size: nil,
@@ -95,7 +119,10 @@ module Knockapi
95
119
  T::Array[
96
120
  Knockapi::UserListSubscriptionsParams::Include::OrSymbol
97
121
  ],
98
- objects: T::Array[String],
122
+ objects:
123
+ T::Array[
124
+ T.any(String, Knockapi::RecipientReference::ObjectReference)
125
+ ],
99
126
  page_size: Integer,
100
127
  request_options: Knockapi::RequestOptions
101
128
  }
@@ -49,7 +49,7 @@ module Knockapi
49
49
  sig do
50
50
  params(
51
51
  collection: String,
52
- objects: T::Array[Knockapi::InlineObjectRequest::OrHash],
52
+ objects: T::Array[Knockapi::Objects::BulkSetParams::Object::OrHash],
53
53
  request_options: Knockapi::RequestOptions::OrHash
54
54
  ).returns(Knockapi::BulkOperation)
55
55
  end
@@ -118,7 +118,13 @@ module Knockapi
118
118
  after: String,
119
119
  before: String,
120
120
  page_size: Integer,
121
- recipients: T::Array[String],
121
+ recipients:
122
+ T::Array[
123
+ T.any(
124
+ String,
125
+ Knockapi::RecipientReference::ObjectReference::OrHash
126
+ )
127
+ ],
122
128
  tenant: String,
123
129
  request_options: Knockapi::RequestOptions::OrHash
124
130
  ).returns(Knockapi::Internal::EntriesCursor[Knockapi::Schedule])
@@ -132,7 +138,7 @@ module Knockapi
132
138
  before: nil,
133
139
  # The number of items per page.
134
140
  page_size: nil,
135
- # Filter by recipient IDs.
141
+ # Filter by recipient references.
136
142
  recipients: nil,
137
143
  # Filter by tenant ID.
138
144
  tenant: nil,
@@ -78,13 +78,6 @@ module Knockapi
78
78
  )
79
79
  ]
80
80
  ),
81
- preferences:
82
- T.nilable(
83
- T::Hash[
84
- Symbol,
85
- Knockapi::Recipients::PreferenceSetRequest::OrHash
86
- ]
87
- ),
88
81
  settings: Knockapi::TenantSetParams::Settings::OrHash,
89
82
  request_options: Knockapi::RequestOptions::OrHash
90
83
  ).returns(Knockapi::Tenant)
@@ -94,8 +87,6 @@ module Knockapi
94
87
  id,
95
88
  # A request to set channel data for a type of channel inline.
96
89
  channel_data: nil,
97
- # Inline set preferences for a recipient, where the key is the preference set id.
98
- preferences: nil,
99
90
  # The settings for the tenant. Includes branding and preference set.
100
91
  settings: nil,
101
92
  request_options: {}
@@ -283,7 +283,13 @@ module Knockapi
283
283
  before: String,
284
284
  include:
285
285
  T::Array[Knockapi::UserListSubscriptionsParams::Include::OrSymbol],
286
- objects: T::Array[String],
286
+ objects:
287
+ T::Array[
288
+ T.any(
289
+ String,
290
+ Knockapi::RecipientReference::ObjectReference::OrHash
291
+ )
292
+ ],
287
293
  page_size: Integer,
288
294
  request_options: Knockapi::RequestOptions::OrHash
289
295
  ).returns(
@@ -299,7 +305,7 @@ module Knockapi
299
305
  before: nil,
300
306
  # Associated resources to include in the response.
301
307
  include: nil,
302
- # Only returns subscriptions for the specified object GIDs.
308
+ # Only returns subscriptions for the specified object references.
303
309
  objects: nil,
304
310
  # The number of items per page.
305
311
  page_size: nil,
@@ -2,24 +2,56 @@ module Knockapi
2
2
  module Models
3
3
  module Objects
4
4
  type bulk_set_params =
5
- { objects: ::Array[Knockapi::InlineObjectRequest] }
5
+ { objects: ::Array[Knockapi::Objects::BulkSetParams::Object] }
6
6
  & Knockapi::Internal::Type::request_parameters
7
7
 
8
8
  class BulkSetParams < Knockapi::Internal::Type::BaseModel
9
9
  extend Knockapi::Internal::Type::RequestParameters::Converter
10
10
  include Knockapi::Internal::Type::RequestParameters
11
11
 
12
- attr_accessor objects: ::Array[Knockapi::InlineObjectRequest]
12
+ attr_accessor objects: ::Array[Knockapi::Objects::BulkSetParams::Object]
13
13
 
14
14
  def initialize: (
15
- objects: ::Array[Knockapi::InlineObjectRequest],
15
+ objects: ::Array[Knockapi::Objects::BulkSetParams::Object],
16
16
  ?request_options: Knockapi::request_opts
17
17
  ) -> void
18
18
 
19
19
  def to_hash: -> {
20
- objects: ::Array[Knockapi::InlineObjectRequest],
20
+ objects: ::Array[Knockapi::Objects::BulkSetParams::Object],
21
21
  request_options: Knockapi::RequestOptions
22
22
  }
23
+
24
+ type object =
25
+ {
26
+ id: String,
27
+ channel_data: Knockapi::Models::Recipients::inline_channel_data_request?,
28
+ created_at: Time?,
29
+ preferences: Knockapi::Models::Recipients::inline_preference_set_request?
30
+ }
31
+
32
+ class Object < Knockapi::Internal::Type::BaseModel
33
+ attr_accessor id: String
34
+
35
+ attr_accessor channel_data: Knockapi::Models::Recipients::inline_channel_data_request?
36
+
37
+ attr_accessor created_at: Time?
38
+
39
+ attr_accessor preferences: Knockapi::Models::Recipients::inline_preference_set_request?
40
+
41
+ def initialize: (
42
+ id: String,
43
+ ?channel_data: Knockapi::Models::Recipients::inline_channel_data_request?,
44
+ ?created_at: Time?,
45
+ ?preferences: Knockapi::Models::Recipients::inline_preference_set_request?
46
+ ) -> void
47
+
48
+ def to_hash: -> {
49
+ id: String,
50
+ channel_data: Knockapi::Models::Recipients::inline_channel_data_request?,
51
+ created_at: Time?,
52
+ preferences: Knockapi::Models::Recipients::inline_preference_set_request?
53
+ }
54
+ end
23
55
  end
24
56
  end
25
57
  end
@@ -6,7 +6,7 @@ module Knockapi
6
6
  after: String,
7
7
  before: String,
8
8
  page_size: Integer,
9
- recipients: ::Array[String],
9
+ recipients: ::Array[Knockapi::Models::recipient_reference],
10
10
  tenant: String
11
11
  }
12
12
  & Knockapi::Internal::Type::request_parameters
@@ -29,9 +29,11 @@ module Knockapi
29
29
 
30
30
  def page_size=: (Integer) -> Integer
31
31
 
32
- attr_reader recipients: ::Array[String]?
32
+ attr_reader recipients: ::Array[Knockapi::Models::recipient_reference]?
33
33
 
34
- def recipients=: (::Array[String]) -> ::Array[String]
34
+ def recipients=: (
35
+ ::Array[Knockapi::Models::recipient_reference]
36
+ ) -> ::Array[Knockapi::Models::recipient_reference]
35
37
 
36
38
  attr_reader tenant: String?
37
39
 
@@ -42,7 +44,7 @@ module Knockapi
42
44
  ?after: String,
43
45
  ?before: String,
44
46
  ?page_size: Integer,
45
- ?recipients: ::Array[String],
47
+ ?recipients: ::Array[Knockapi::Models::recipient_reference],
46
48
  ?tenant: String,
47
49
  ?request_options: Knockapi::request_opts
48
50
  ) -> void
@@ -52,7 +54,7 @@ module Knockapi
52
54
  after: String,
53
55
  before: String,
54
56
  page_size: Integer,
55
- recipients: ::Array[String],
57
+ recipients: ::Array[Knockapi::Models::recipient_reference],
56
58
  tenant: String,
57
59
  request_options: Knockapi::RequestOptions
58
60
  }
@@ -2,8 +2,8 @@ module Knockapi
2
2
  module Models
3
3
  type schedule_repeat_rule =
4
4
  {
5
- _typename: String,
6
5
  frequency: Knockapi::Models::ScheduleRepeatRule::frequency,
6
+ _typename: String,
7
7
  day_of_month: Integer?,
8
8
  days: ::Array[Knockapi::Models::ScheduleRepeatRule::day]?,
9
9
  hours: Integer?,
@@ -12,10 +12,12 @@ module Knockapi
12
12
  }
13
13
 
14
14
  class ScheduleRepeatRule < Knockapi::Internal::Type::BaseModel
15
- attr_accessor _typename: String
16
-
17
15
  attr_accessor frequency: Knockapi::Models::ScheduleRepeatRule::frequency
18
16
 
17
+ attr_reader _typename: String?
18
+
19
+ def _typename=: (String) -> String
20
+
19
21
  attr_accessor day_of_month: Integer?
20
22
 
21
23
  attr_accessor days: ::Array[Knockapi::Models::ScheduleRepeatRule::day]?
@@ -29,8 +31,8 @@ module Knockapi
29
31
  attr_accessor minutes: Integer?
30
32
 
31
33
  def initialize: (
32
- _typename: String,
33
34
  frequency: Knockapi::Models::ScheduleRepeatRule::frequency,
35
+ ?_typename: String,
34
36
  ?day_of_month: Integer?,
35
37
  ?days: ::Array[Knockapi::Models::ScheduleRepeatRule::day]?,
36
38
  ?hours: Integer?,
@@ -39,8 +41,8 @@ module Knockapi
39
41
  ) -> void
40
42
 
41
43
  def to_hash: -> {
42
- _typename: String,
43
44
  frequency: Knockapi::Models::ScheduleRepeatRule::frequency,
45
+ _typename: String,
44
46
  day_of_month: Integer?,
45
47
  days: ::Array[Knockapi::Models::ScheduleRepeatRule::day]?,
46
48
  hours: Integer?,
@@ -3,7 +3,6 @@ module Knockapi
3
3
  type tenant_set_params =
4
4
  {
5
5
  channel_data: Knockapi::Models::Recipients::inline_channel_data_request?,
6
- preferences: Knockapi::Models::Recipients::inline_preference_set_request?,
7
6
  settings: Knockapi::TenantSetParams::Settings
8
7
  }
9
8
  & Knockapi::Internal::Type::request_parameters
@@ -14,8 +13,6 @@ module Knockapi
14
13
 
15
14
  attr_accessor channel_data: Knockapi::Models::Recipients::inline_channel_data_request?
16
15
 
17
- attr_accessor preferences: Knockapi::Models::Recipients::inline_preference_set_request?
18
-
19
16
  attr_reader settings: Knockapi::TenantSetParams::Settings?
20
17
 
21
18
  def settings=: (
@@ -24,14 +21,12 @@ module Knockapi
24
21
 
25
22
  def initialize: (
26
23
  ?channel_data: Knockapi::Models::Recipients::inline_channel_data_request?,
27
- ?preferences: Knockapi::Models::Recipients::inline_preference_set_request?,
28
24
  ?settings: Knockapi::TenantSetParams::Settings,
29
25
  ?request_options: Knockapi::request_opts
30
26
  ) -> void
31
27
 
32
28
  def to_hash: -> {
33
29
  channel_data: Knockapi::Models::Recipients::inline_channel_data_request?,
34
- preferences: Knockapi::Models::Recipients::inline_preference_set_request?,
35
30
  settings: Knockapi::TenantSetParams::Settings,
36
31
  request_options: Knockapi::RequestOptions
37
32
  }
@@ -5,7 +5,7 @@ module Knockapi
5
5
  after: String,
6
6
  before: String,
7
7
  include: ::Array[Knockapi::Models::UserListSubscriptionsParams::include_],
8
- objects: ::Array[String],
8
+ objects: ::Array[Knockapi::Models::recipient_reference],
9
9
  page_size: Integer
10
10
  }
11
11
  & Knockapi::Internal::Type::request_parameters
@@ -28,9 +28,11 @@ module Knockapi
28
28
  ::Array[Knockapi::Models::UserListSubscriptionsParams::include_]
29
29
  ) -> ::Array[Knockapi::Models::UserListSubscriptionsParams::include_]
30
30
 
31
- attr_reader objects: ::Array[String]?
31
+ attr_reader objects: ::Array[Knockapi::Models::recipient_reference]?
32
32
 
33
- def objects=: (::Array[String]) -> ::Array[String]
33
+ def objects=: (
34
+ ::Array[Knockapi::Models::recipient_reference]
35
+ ) -> ::Array[Knockapi::Models::recipient_reference]
34
36
 
35
37
  attr_reader page_size: Integer?
36
38
 
@@ -40,7 +42,7 @@ module Knockapi
40
42
  ?after: String,
41
43
  ?before: String,
42
44
  ?include: ::Array[Knockapi::Models::UserListSubscriptionsParams::include_],
43
- ?objects: ::Array[String],
45
+ ?objects: ::Array[Knockapi::Models::recipient_reference],
44
46
  ?page_size: Integer,
45
47
  ?request_options: Knockapi::request_opts
46
48
  ) -> void
@@ -49,7 +51,7 @@ module Knockapi
49
51
  after: String,
50
52
  before: String,
51
53
  include: ::Array[Knockapi::Models::UserListSubscriptionsParams::include_],
52
- objects: ::Array[String],
54
+ objects: ::Array[Knockapi::Models::recipient_reference],
53
55
  page_size: Integer,
54
56
  request_options: Knockapi::RequestOptions
55
57
  }
@@ -16,7 +16,7 @@ module Knockapi
16
16
 
17
17
  def set: (
18
18
  String collection,
19
- objects: ::Array[Knockapi::InlineObjectRequest],
19
+ objects: ::Array[Knockapi::Objects::BulkSetParams::Object],
20
20
  ?request_options: Knockapi::request_opts
21
21
  ) -> Knockapi::BulkOperation
22
22
 
@@ -31,7 +31,7 @@ module Knockapi
31
31
  ?after: String,
32
32
  ?before: String,
33
33
  ?page_size: Integer,
34
- ?recipients: ::Array[String],
34
+ ?recipients: ::Array[Knockapi::Models::recipient_reference],
35
35
  ?tenant: String,
36
36
  ?request_options: Knockapi::request_opts
37
37
  ) -> Knockapi::Internal::EntriesCursor[Knockapi::Schedule]
@@ -25,7 +25,6 @@ module Knockapi
25
25
  def set: (
26
26
  String id,
27
27
  ?channel_data: Knockapi::Models::Recipients::inline_channel_data_request?,
28
- ?preferences: Knockapi::Models::Recipients::inline_preference_set_request?,
29
28
  ?settings: Knockapi::TenantSetParams::Settings,
30
29
  ?request_options: Knockapi::request_opts
31
30
  ) -> Knockapi::Tenant
@@ -91,7 +91,7 @@ module Knockapi
91
91
  ?after: String,
92
92
  ?before: String,
93
93
  ?include: ::Array[Knockapi::Models::UserListSubscriptionsParams::include_],
94
- ?objects: ::Array[String],
94
+ ?objects: ::Array[Knockapi::Models::recipient_reference],
95
95
  ?page_size: Integer,
96
96
  ?request_options: Knockapi::request_opts
97
97
  ) -> Knockapi::Internal::EntriesCursor[Knockapi::Recipients::Subscription]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knockapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Knock
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-06-04 00:00:00.000000000 Z
11
+ date: 2025-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: connection_pool