noresponse 10.0.12 → 10.0.13

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/lib/no_response/events.rb +1 -1
  3. data/lib/no_response/models/shared/access.rb +20 -0
  4. data/lib/no_response/models/shared/{profile.rbi → access.rbi} +2 -2
  5. data/lib/no_response/models/shared/attendee.rb +13 -3
  6. data/lib/no_response/models/shared/attendee.rbi +6 -0
  7. data/lib/no_response/models/shared/attendeereport.rb +25 -7
  8. data/lib/no_response/models/shared/attendeereport.rbi +12 -0
  9. data/lib/no_response/models/shared/findingband.rb +22 -0
  10. data/lib/no_response/models/shared/{attendee_coverage.rbi → findingband.rbi} +2 -2
  11. data/lib/no_response/models/shared/findingcategory.rb +27 -0
  12. data/lib/no_response/models/shared/{screening_platform.rbi → findingcategory.rbi} +2 -2
  13. data/lib/no_response/models/shared/handle.rb +1 -0
  14. data/lib/no_response/models/shared/handleplatform.rb +2 -1
  15. data/lib/no_response/models/shared/mediatype.rb +19 -0
  16. data/lib/no_response/models/shared/{finding.rbi → mediatype.rbi} +2 -2
  17. data/lib/no_response/models/shared/profilematchstate.rb +20 -0
  18. data/lib/no_response/models/shared/profilematchstate.rbi +9 -0
  19. data/lib/no_response/models/shared/screening.rb +23 -3
  20. data/lib/no_response/models/shared/screening.rbi +12 -0
  21. data/lib/no_response/models/shared/screeningcoverage.rb +82 -0
  22. data/lib/no_response/models/shared/screeningcoverage.rbi +44 -0
  23. data/lib/no_response/models/shared/screeningfinding.rb +152 -0
  24. data/lib/no_response/models/shared/screeningfinding.rbi +74 -0
  25. data/lib/no_response/models/shared/screeningmatch.rb +50 -0
  26. data/lib/no_response/models/shared/screeningmatch.rbi +20 -0
  27. data/lib/no_response/models/shared/screeningmatchevidence.rb +57 -0
  28. data/lib/no_response/models/shared/screeningmatchevidence.rbi +26 -0
  29. data/lib/no_response/models/shared/screeningmatchevidencekind.rb +25 -0
  30. data/lib/no_response/models/shared/screeningmatchevidencekind.rbi +9 -0
  31. data/lib/no_response/models/shared/screeningmedia.rb +141 -0
  32. data/lib/no_response/models/shared/screeningmedia.rbi +74 -0
  33. data/lib/no_response/models/shared/screeningplatformcoverage.rb +80 -0
  34. data/lib/no_response/models/shared/screeningplatformcoverage.rbi +32 -0
  35. data/lib/no_response/models/shared/screeningplatformcoveragestatus.rb +22 -0
  36. data/lib/no_response/models/shared/screeningplatformcoveragestatus.rbi +9 -0
  37. data/lib/no_response/models/shared/screeningpost.rb +111 -0
  38. data/lib/no_response/models/shared/screeningpost.rbi +62 -0
  39. data/lib/no_response/models/shared/screeningprofile.rb +193 -0
  40. data/lib/no_response/models/shared/screeningprofile.rbi +104 -0
  41. data/lib/no_response/models/shared/screeningrequest.rb +2 -5
  42. data/lib/no_response/models/shared/screeningspend.rb +41 -0
  43. data/lib/no_response/models/shared/screeningspend.rbi +20 -0
  44. data/lib/no_response/models/shared/screeningspendline.rb +57 -0
  45. data/lib/no_response/models/shared/screeningspendline.rbi +26 -0
  46. data/lib/no_response/models/shared/screeningspendlinerole.rb +20 -0
  47. data/lib/no_response/models/shared/screeningspendlinerole.rbi +9 -0
  48. data/lib/no_response/models/shared/screeningstatus.rb +1 -1
  49. data/lib/no_response/models/shared.rb +18 -5
  50. data/lib/no_response/sdkconfiguration.rb +2 -2
  51. metadata +38 -12
  52. data/lib/no_response/models/shared/attendee_coverage.rb +0 -23
  53. data/lib/no_response/models/shared/finding.rb +0 -23
  54. data/lib/no_response/models/shared/profile.rb +0 -23
  55. data/lib/no_response/models/shared/screening_platform.rb +0 -27
  56. data/lib/no_response/models/shared/screeningrequest_platform.rb +0 -24
  57. data/lib/no_response/models/shared/screeningrequest_platform.rbi +0 -9
@@ -0,0 +1,80 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+ # What a screening read on one platform.
8
+ class ScreeningPlatformCoverage
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ # A platform a screening can cover. synthetic is the deterministic connector's own platform, for exercising the product end to end with no network.
13
+ field(
14
+ :platform,
15
+ Models::Shared::HandlePlatform,
16
+ {
17
+ 'format_json': {
18
+ 'letter_case': ::NoResponse::Utils.field_name("platform"),
19
+ required: true,
20
+ 'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::HandlePlatform, false)
21
+ }
22
+ }
23
+ )
24
+ # covered read at least one profile; none_found looked and found no account; inaccessible found accounts that are private or locked; failed could not finish looking; unavailable has no resolver or collector enabled.
25
+ field(
26
+ :status,
27
+ Models::Shared::ScreeningPlatformCoverageStatus,
28
+ {
29
+ 'format_json': {
30
+ 'letter_case': ::NoResponse::Utils.field_name("status"),
31
+ required: true,
32
+ 'decoder': ::NoResponse::Utils.open_enum_from_string(
33
+ Models::Shared::ScreeningPlatformCoverageStatus,
34
+ false
35
+ )
36
+ }
37
+ }
38
+ )
39
+
40
+ field(
41
+ :accounts_found,
42
+ ::Integer,
43
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("accounts_found"), required: true}}
44
+ )
45
+
46
+ field(
47
+ :items_read,
48
+ ::Integer,
49
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("items_read"), required: true}}
50
+ )
51
+
52
+ sig {
53
+ params(
54
+ platform: Models::Shared::HandlePlatform,
55
+ status: Models::Shared::ScreeningPlatformCoverageStatus,
56
+ accounts_found: ::Integer,
57
+ items_read: ::Integer
58
+ )
59
+ .void
60
+ }
61
+ def initialize(platform:, status:, accounts_found:, items_read:)
62
+ @platform = platform
63
+ @status = status
64
+ @accounts_found = accounts_found
65
+ @items_read = items_read
66
+ end
67
+
68
+ sig { params(other: T.untyped).returns(T::Boolean) }
69
+ def ==(other)
70
+ return false unless other.is_a?(self.class)
71
+ return false unless @platform == other.platform
72
+ return false unless @status == other.status
73
+ return false unless @accounts_found == other.accounts_found
74
+ return false unless @items_read == other.items_read
75
+ true
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,32 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::ScreeningPlatformCoverage
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::ScreeningPlatformCoverage
9
+ def platform
10
+ end
11
+
12
+ def platform=(str_)
13
+ end
14
+
15
+ def status
16
+ end
17
+
18
+ def status=(str_)
19
+ end
20
+
21
+ def accounts_found
22
+ end
23
+
24
+ def accounts_found=(str_)
25
+ end
26
+
27
+ def items_read
28
+ end
29
+
30
+ def items_read=(str_)
31
+ end
32
+ end
@@ -0,0 +1,22 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+ # ScreeningPlatformCoverageStatus - covered read at least one profile; none_found looked and found no account; inaccessible found accounts that are private or locked; failed could not finish looking; unavailable has no resolver or collector enabled.
8
+ class ScreeningPlatformCoverageStatus
9
+ include ::Crystalline::Enum
10
+ enums do
11
+ COVERED = new("covered")
12
+ NONE_FOUND = new("none_found")
13
+ INACCESSIBLE = new("inaccessible")
14
+ FAILED = new("failed")
15
+ UNAVAILABLE = new("unavailable")
16
+ end
17
+
18
+ open!
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::ScreeningPlatformCoverageStatus
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::ScreeningPlatformCoverageStatus
9
+ end
@@ -0,0 +1,111 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+ # One post a collector read, with its permalink and time.
8
+ class ScreeningPost
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ field :id, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("id"), required: true}}
13
+
14
+ field :text, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("text"), required: true}}
15
+
16
+ field(
17
+ :profile_id,
18
+ ::String,
19
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("profile_id"), required: true}}
20
+ )
21
+
22
+ field(
23
+ :permalink,
24
+ ::String,
25
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("permalink"), required: true}}
26
+ )
27
+
28
+ field(
29
+ :posted_at,
30
+ ::String,
31
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("posted_at"), required: true}}
32
+ )
33
+
34
+ field :kind, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("kind"), required: true}}
35
+
36
+ field(
37
+ :reply_to,
38
+ Crystalline::Nilable.new(::String),
39
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("reply_to")}}
40
+ )
41
+ # SHA-256 of the screenshot taken of a flagged item.
42
+ field(
43
+ :screenshot_sha256,
44
+ Crystalline::Nilable.new(::String),
45
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("screenshot_sha256")}}
46
+ )
47
+ # When the screenshot was taken.
48
+ field(
49
+ :captured_at,
50
+ Crystalline::Nilable.new(::String),
51
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("captured_at")}}
52
+ )
53
+
54
+ sig {
55
+ params(
56
+ id: ::String,
57
+ text: ::String,
58
+ profile_id: ::String,
59
+ permalink: ::String,
60
+ posted_at: ::String,
61
+ kind: ::String,
62
+ reply_to: T.nilable(::String),
63
+ screenshot_sha256: T.nilable(::String),
64
+ captured_at: T.nilable(::String)
65
+ )
66
+ .void
67
+ }
68
+ def initialize(
69
+ id:,
70
+ text:,
71
+ profile_id:,
72
+ permalink:,
73
+ posted_at:,
74
+ kind: "post",
75
+ reply_to: nil,
76
+ screenshot_sha256: nil,
77
+ captured_at: nil
78
+ )
79
+ @id = id
80
+ @text = text
81
+ @profile_id = profile_id
82
+ @permalink = permalink
83
+ @posted_at = posted_at
84
+ unless kind == "post"
85
+ raise ArgumentError, "Invalid value for kind"
86
+ end
87
+
88
+ @kind = "post"
89
+ @reply_to = reply_to
90
+ @screenshot_sha256 = screenshot_sha256
91
+ @captured_at = captured_at
92
+ end
93
+
94
+ sig { params(other: T.untyped).returns(T::Boolean) }
95
+ def ==(other)
96
+ return false unless other.is_a?(self.class)
97
+ return false unless @id == other.id
98
+ return false unless @text == other.text
99
+ return false unless @profile_id == other.profile_id
100
+ return false unless @permalink == other.permalink
101
+ return false unless @posted_at == other.posted_at
102
+ return false unless @kind == other.kind
103
+ return false unless @reply_to == other.reply_to
104
+ return false unless @screenshot_sha256 == other.screenshot_sha256
105
+ return false unless @captured_at == other.captured_at
106
+ true
107
+ end
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,62 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::ScreeningPost
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::ScreeningPost
9
+ def id
10
+ end
11
+
12
+ def id=(str_)
13
+ end
14
+
15
+ def text
16
+ end
17
+
18
+ def text=(str_)
19
+ end
20
+
21
+ def profile_id
22
+ end
23
+
24
+ def profile_id=(str_)
25
+ end
26
+
27
+ def permalink
28
+ end
29
+
30
+ def permalink=(str_)
31
+ end
32
+
33
+ def posted_at
34
+ end
35
+
36
+ def posted_at=(str_)
37
+ end
38
+
39
+ def kind
40
+ end
41
+
42
+ def kind=(str_)
43
+ end
44
+
45
+ def reply_to
46
+ end
47
+
48
+ def reply_to=(str_)
49
+ end
50
+
51
+ def screenshot_sha256
52
+ end
53
+
54
+ def screenshot_sha256=(str_)
55
+ end
56
+
57
+ def captured_at
58
+ end
59
+
60
+ def captured_at=(str_)
61
+ end
62
+ end
@@ -0,0 +1,193 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+ # An account the screening matched to the attendee, how it was matched, and how much of it was read.
8
+ class ScreeningProfile
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ field :id, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("id"), required: true}}
13
+ # A platform a screening can cover. synthetic is the deterministic connector's own platform, for exercising the product end to end with no network.
14
+ field(
15
+ :platform,
16
+ Models::Shared::HandlePlatform,
17
+ {
18
+ 'format_json': {
19
+ 'letter_case': ::NoResponse::Utils.field_name("platform"),
20
+ required: true,
21
+ 'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::HandlePlatform, false)
22
+ }
23
+ }
24
+ )
25
+
26
+ field(
27
+ :handle,
28
+ ::String,
29
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("handle"), required: true}}
30
+ )
31
+
32
+ field :url, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("url"), required: true}}
33
+ # public profiles were read; a private or locked one exists but could not be read.
34
+ field(
35
+ :access,
36
+ Models::Shared::Access,
37
+ {
38
+ 'format_json': {
39
+ 'letter_case': ::NoResponse::Utils.field_name("access"),
40
+ required: true,
41
+ 'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::Access, false)
42
+ }
43
+ }
44
+ )
45
+ # How a profile was matched to the attendee: the state its evidence earns, and the evidence.
46
+ field(
47
+ :match,
48
+ Models::Shared::ScreeningMatch,
49
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("match"), required: true}}
50
+ )
51
+ # The resolver, collector or analyser that produced a record, by its catalogue name.
52
+ field(
53
+ :collector,
54
+ ::String,
55
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("collector"), required: true}}
56
+ )
57
+
58
+ field(
59
+ :items_read,
60
+ ::Integer,
61
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("items_read"), required: true}}
62
+ )
63
+
64
+ field(
65
+ :collected_at,
66
+ ::String,
67
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("collected_at"), required: true}}
68
+ )
69
+
70
+ field(
71
+ :display_name,
72
+ Crystalline::Nilable.new(::String),
73
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("display_name")}}
74
+ )
75
+
76
+ field(
77
+ :bio,
78
+ Crystalline::Nilable.new(::String),
79
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("bio")}}
80
+ )
81
+
82
+ field(
83
+ :avatar_url,
84
+ Crystalline::Nilable.new(::String),
85
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("avatar_url")}}
86
+ )
87
+
88
+ field(
89
+ :followers,
90
+ Crystalline::Nilable.new(::Integer),
91
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("followers")}}
92
+ )
93
+
94
+ field(
95
+ :account_created_at,
96
+ Crystalline::Nilable.new(::String),
97
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("account_created_at")}}
98
+ )
99
+ # The oldest item read.
100
+ field(
101
+ :period_from,
102
+ Crystalline::Nilable.new(::String),
103
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("period_from")}}
104
+ )
105
+ # The newest item read.
106
+ field(
107
+ :period_to,
108
+ Crystalline::Nilable.new(::String),
109
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("period_to")}}
110
+ )
111
+
112
+ sig {
113
+ params(
114
+ id: ::String,
115
+ platform: Models::Shared::HandlePlatform,
116
+ handle: ::String,
117
+ url: ::String,
118
+ access: Models::Shared::Access,
119
+ match: Models::Shared::ScreeningMatch,
120
+ collector: ::String,
121
+ items_read: ::Integer,
122
+ collected_at: ::String,
123
+ display_name: T.nilable(::String),
124
+ bio: T.nilable(::String),
125
+ avatar_url: T.nilable(::String),
126
+ followers: T.nilable(::Integer),
127
+ account_created_at: T.nilable(::String),
128
+ period_from: T.nilable(::String),
129
+ period_to: T.nilable(::String)
130
+ )
131
+ .void
132
+ }
133
+ def initialize(
134
+ id:,
135
+ platform:,
136
+ handle:,
137
+ url:,
138
+ access:,
139
+ match:,
140
+ collector:,
141
+ items_read:,
142
+ collected_at:,
143
+ display_name: nil,
144
+ bio: nil,
145
+ avatar_url: nil,
146
+ followers: nil,
147
+ account_created_at: nil,
148
+ period_from: nil,
149
+ period_to: nil
150
+ )
151
+ @id = id
152
+ @platform = platform
153
+ @handle = handle
154
+ @url = url
155
+ @access = access
156
+ @match = match
157
+ @collector = collector
158
+ @items_read = items_read
159
+ @collected_at = collected_at
160
+ @display_name = display_name
161
+ @bio = bio
162
+ @avatar_url = avatar_url
163
+ @followers = followers
164
+ @account_created_at = account_created_at
165
+ @period_from = period_from
166
+ @period_to = period_to
167
+ end
168
+
169
+ sig { params(other: T.untyped).returns(T::Boolean) }
170
+ def ==(other)
171
+ return false unless other.is_a?(self.class)
172
+ return false unless @id == other.id
173
+ return false unless @platform == other.platform
174
+ return false unless @handle == other.handle
175
+ return false unless @url == other.url
176
+ return false unless @access == other.access
177
+ return false unless @match == other.match
178
+ return false unless @collector == other.collector
179
+ return false unless @items_read == other.items_read
180
+ return false unless @collected_at == other.collected_at
181
+ return false unless @display_name == other.display_name
182
+ return false unless @bio == other.bio
183
+ return false unless @avatar_url == other.avatar_url
184
+ return false unless @followers == other.followers
185
+ return false unless @account_created_at == other.account_created_at
186
+ return false unless @period_from == other.period_from
187
+ return false unless @period_to == other.period_to
188
+ true
189
+ end
190
+ end
191
+ end
192
+ end
193
+ end
@@ -0,0 +1,104 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::ScreeningProfile
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::ScreeningProfile
9
+ def id
10
+ end
11
+
12
+ def id=(str_)
13
+ end
14
+
15
+ def platform
16
+ end
17
+
18
+ def platform=(str_)
19
+ end
20
+
21
+ def handle
22
+ end
23
+
24
+ def handle=(str_)
25
+ end
26
+
27
+ def url
28
+ end
29
+
30
+ def url=(str_)
31
+ end
32
+
33
+ def access
34
+ end
35
+
36
+ def access=(str_)
37
+ end
38
+
39
+ def match
40
+ end
41
+
42
+ def match=(str_)
43
+ end
44
+
45
+ def collector
46
+ end
47
+
48
+ def collector=(str_)
49
+ end
50
+
51
+ def items_read
52
+ end
53
+
54
+ def items_read=(str_)
55
+ end
56
+
57
+ def collected_at
58
+ end
59
+
60
+ def collected_at=(str_)
61
+ end
62
+
63
+ def display_name
64
+ end
65
+
66
+ def display_name=(str_)
67
+ end
68
+
69
+ def bio
70
+ end
71
+
72
+ def bio=(str_)
73
+ end
74
+
75
+ def avatar_url
76
+ end
77
+
78
+ def avatar_url=(str_)
79
+ end
80
+
81
+ def followers
82
+ end
83
+
84
+ def followers=(str_)
85
+ end
86
+
87
+ def account_created_at
88
+ end
89
+
90
+ def account_created_at=(str_)
91
+ end
92
+
93
+ def period_from
94
+ end
95
+
96
+ def period_from=(str_)
97
+ end
98
+
99
+ def period_to
100
+ end
101
+
102
+ def period_to=(str_)
103
+ end
104
+ end
@@ -23,14 +23,11 @@ module NoResponse
23
23
 
24
24
  field(
25
25
  :platforms,
26
- Crystalline::Array.new(Models::Shared::ScreeningRequestPlatform),
26
+ Crystalline::Array.new(Models::Shared::HandlePlatform),
27
27
  {'format_json': {'letter_case': ::NoResponse::Utils.field_name("platforms"), required: true}}
28
28
  )
29
29
 
30
- sig {
31
- params(depth: Models::Shared::ScreeningDepth, platforms: T::Array[Models::Shared::ScreeningRequestPlatform])
32
- .void
33
- }
30
+ sig { params(depth: Models::Shared::ScreeningDepth, platforms: T::Array[Models::Shared::HandlePlatform]).void }
34
31
  def initialize(depth:, platforms:)
35
32
  @depth = depth
36
33
  @platforms = platforms
@@ -0,0 +1,41 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+ # What screening cost, in US cents, in total and per implementation.
8
+ class ScreeningSpend
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ # The total, in US cents.
13
+ field(
14
+ :total_minor,
15
+ ::Integer,
16
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("total_minor"), required: true}}
17
+ )
18
+
19
+ field(
20
+ :by_implementation,
21
+ Crystalline::Array.new(Models::Shared::ScreeningSpendLine),
22
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("by_implementation"), required: true}}
23
+ )
24
+
25
+ sig { params(total_minor: ::Integer, by_implementation: T::Array[Models::Shared::ScreeningSpendLine]).void }
26
+ def initialize(total_minor:, by_implementation:)
27
+ @total_minor = total_minor
28
+ @by_implementation = by_implementation
29
+ end
30
+
31
+ sig { params(other: T.untyped).returns(T::Boolean) }
32
+ def ==(other)
33
+ return false unless other.is_a?(self.class)
34
+ return false unless @total_minor == other.total_minor
35
+ return false unless @by_implementation == other.by_implementation
36
+ true
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,20 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::ScreeningSpend
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::ScreeningSpend
9
+ def total_minor
10
+ end
11
+
12
+ def total_minor=(str_)
13
+ end
14
+
15
+ def by_implementation
16
+ end
17
+
18
+ def by_implementation=(str_)
19
+ end
20
+ end