noresponse 7.1.7 → 7.1.8

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 (37) hide show
  1. checksums.yaml +4 -4
  2. data/lib/no_response/models/shared/accountrisk.rb +1 -1
  3. data/lib/no_response/models/shared/accountriskreason.rb +45 -9
  4. data/lib/no_response/models/shared/accountriskreason.rbi +14 -2
  5. data/lib/no_response/models/shared/agreement.rb +20 -0
  6. data/lib/no_response/models/shared/agreement.rbi +9 -0
  7. data/lib/no_response/models/shared/assessmentdetail.rb +2 -2
  8. data/lib/no_response/models/shared/attributeagreement.rb +54 -0
  9. data/lib/no_response/models/shared/attributeagreement.rbi +26 -0
  10. data/lib/no_response/models/shared/direction.rb +20 -0
  11. data/lib/no_response/models/shared/direction.rbi +9 -0
  12. data/lib/no_response/models/shared/footprint.rb +64 -0
  13. data/lib/no_response/models/shared/footprint.rbi +32 -0
  14. data/lib/no_response/models/shared/footprintcoherence.rb +130 -0
  15. data/lib/no_response/models/shared/footprintcoherence.rbi +68 -0
  16. data/lib/no_response/models/shared/footprintfamily.rb +22 -0
  17. data/lib/no_response/models/shared/footprintfamily.rbi +9 -0
  18. data/lib/no_response/models/shared/footprinttimeline.rb +82 -0
  19. data/lib/no_response/models/shared/footprinttimeline.rbi +44 -0
  20. data/lib/no_response/models/shared/identifier.rb +19 -0
  21. data/lib/no_response/models/shared/identifier.rbi +9 -0
  22. data/lib/no_response/models/shared/impact.rb +21 -0
  23. data/lib/no_response/models/shared/impact.rbi +9 -0
  24. data/lib/no_response/models/shared/risk.rb +3 -3
  25. data/lib/no_response/models/shared/riskdetails.rb +11 -2
  26. data/lib/no_response/models/shared/riskdetails.rbi +6 -0
  27. data/lib/no_response/models/shared/riskdetailsevent.rb +101 -0
  28. data/lib/no_response/models/shared/riskdetailsevent.rbi +50 -0
  29. data/lib/no_response/models/shared/riskdetailseventkind.rb +20 -0
  30. data/lib/no_response/models/shared/riskdetailseventkind.rbi +9 -0
  31. data/lib/no_response/models/shared/riskreason.rb +45 -9
  32. data/lib/no_response/models/shared/riskreason.rbi +14 -2
  33. data/lib/no_response/models/shared/risksummary.rb +11 -2
  34. data/lib/no_response/models/shared/risksummary.rbi +6 -0
  35. data/lib/no_response/models/shared.rb +11 -0
  36. data/lib/no_response/sdkconfiguration.rb +2 -2
  37. metadata +24 -2
@@ -0,0 +1,82 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+ # One identifier's dated footprint across every source: the first and last year any event was seen, the years between them, the latest year a source dated activity (omitted when none did), how many distinct sites and which kinds of evidence saw it.
8
+ class FootprintTimeline
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ field(
13
+ :first_seen_year,
14
+ ::Integer,
15
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("first_seen_year"), required: true}}
16
+ )
17
+
18
+ field(
19
+ :last_seen_year,
20
+ ::Integer,
21
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("last_seen_year"), required: true}}
22
+ )
23
+
24
+ field(
25
+ :span_years,
26
+ ::Integer,
27
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("span_years"), required: true}}
28
+ )
29
+
30
+ field(
31
+ :sites,
32
+ ::Integer,
33
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("sites"), required: true}}
34
+ )
35
+
36
+ field(
37
+ :families,
38
+ Crystalline::Array.new(Models::Shared::FootprintFamily),
39
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("families"), required: true}}
40
+ )
41
+
42
+ field(
43
+ :last_active_year,
44
+ Crystalline::Nilable.new(::Integer),
45
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("last_active_year")}}
46
+ )
47
+
48
+ sig {
49
+ params(
50
+ first_seen_year: ::Integer,
51
+ last_seen_year: ::Integer,
52
+ span_years: ::Integer,
53
+ sites: ::Integer,
54
+ families: T::Array[Models::Shared::FootprintFamily],
55
+ last_active_year: T.nilable(::Integer)
56
+ )
57
+ .void
58
+ }
59
+ def initialize(first_seen_year:, last_seen_year:, span_years:, sites:, families:, last_active_year: nil)
60
+ @first_seen_year = first_seen_year
61
+ @last_seen_year = last_seen_year
62
+ @span_years = span_years
63
+ @sites = sites
64
+ @families = families
65
+ @last_active_year = last_active_year
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 @first_seen_year == other.first_seen_year
72
+ return false unless @last_seen_year == other.last_seen_year
73
+ return false unless @span_years == other.span_years
74
+ return false unless @sites == other.sites
75
+ return false unless @families == other.families
76
+ return false unless @last_active_year == other.last_active_year
77
+ true
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,44 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::FootprintTimeline
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::FootprintTimeline
9
+ def first_seen_year
10
+ end
11
+
12
+ def first_seen_year=(str_)
13
+ end
14
+
15
+ def last_seen_year
16
+ end
17
+
18
+ def last_seen_year=(str_)
19
+ end
20
+
21
+ def span_years
22
+ end
23
+
24
+ def span_years=(str_)
25
+ end
26
+
27
+ def sites
28
+ end
29
+
30
+ def sites=(str_)
31
+ end
32
+
33
+ def families
34
+ end
35
+
36
+ def families=(str_)
37
+ end
38
+
39
+ def last_active_year
40
+ end
41
+
42
+ def last_active_year=(str_)
43
+ end
44
+ end
@@ -0,0 +1,19 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+
8
+ class Identifier
9
+ include ::Crystalline::Enum
10
+ enums do
11
+ EMAIL = new("email")
12
+ USERNAME = new("username")
13
+ end
14
+
15
+ open!
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::Identifier
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::Identifier
9
+ end
@@ -0,0 +1,21 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+
8
+ class Impact
9
+ include ::Crystalline::Enum
10
+ enums do
11
+ NONE = new("none")
12
+ LOW = new("low")
13
+ MEDIUM = new("medium")
14
+ HIGH = new("high")
15
+ end
16
+
17
+ open!
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::Impact
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::Impact
9
+ end
@@ -4,7 +4,7 @@
4
4
  module NoResponse
5
5
  module Models
6
6
  module Shared
7
- # The one risk decision for this event. score is 0 (safe) to 100 (risky): the sum of the weights of the reasons that fired, clamped to 0 to 100, from hand-set versioned weights. Every answer with a recommendation carries it, and the top-level recommendation equals risk.recommendation. It names no source or provider.
7
+ # The one risk decision for this event. score is 0 (safe) to 100 (risky), set by the reasons that fired under a hand-set, versioned heuristic policy. Each reason carries its direction and impact band; the policy's weights are not published. Every answer with a recommendation carries it, and the top-level recommendation equals risk.recommendation. It names no source or provider.
8
8
  class Risk
9
9
  extend T::Sig
10
10
  include Crystalline::MetadataFields
@@ -50,13 +50,13 @@ module NoResponse
50
50
  }
51
51
  }
52
52
  )
53
- # Version of the hand-authored heuristic weights that produced the recommendation, for example 'risk-2026-10.7'. A workspace threshold override adds a +t<N> suffix, e.g. 'risk-2026-10.7+t3'.
53
+ # Version of the hand-authored heuristic policy that produced the recommendation, for example 'risk-2026-10.7'. A workspace threshold override adds a +t<N> suffix, e.g. 'risk-2026-10.7+t3'.
54
54
  field(
55
55
  :policy_version,
56
56
  ::String,
57
57
  {'format_json': {'letter_case': ::NoResponse::Utils.field_name("policy_version"), required: true}}
58
58
  )
59
- # Every reason that fired, highest weight first. The weights sum to score before clamping.
59
+ # Every reason that fired: risk-raising reasons first, then neutral, then risk-lowering, each strongest impact band first and then by code. The policy's numeric weights are kept private, so a reason carries only its direction and impact band.
60
60
  field(
61
61
  :reasons,
62
62
  Crystalline::Array.new(Models::Shared::RiskReason),
@@ -26,19 +26,27 @@ module NoResponse
26
26
  Crystalline::Nilable.new(Crystalline::Array.new(Models::Shared::RiskDetailsBreachName)),
27
27
  {'format_json': {'letter_case': ::NoResponse::Utils.field_name("breach_names")}}
28
28
  )
29
+ # The identity's dated footprint events, newest first, at most 100: the year and month, what happened (created, last_active, breached), the site, its category, the kind of evidence and the identifier it belongs to. No breach value: dates are coarsened to the month.
30
+ field(
31
+ :events,
32
+ Crystalline::Nilable.new(Crystalline::Array.new(Models::Shared::RiskDetailsEvent)),
33
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("events")}}
34
+ )
29
35
 
30
36
  sig {
31
37
  params(
32
38
  phone_names: T.nilable(T::Array[Models::Shared::RiskDetailsPhoneName]),
33
39
  breaches: T.nilable(T::Array[Models::Shared::Breach]),
34
- breach_names: T.nilable(T::Array[Models::Shared::RiskDetailsBreachName])
40
+ breach_names: T.nilable(T::Array[Models::Shared::RiskDetailsBreachName]),
41
+ events: T.nilable(T::Array[Models::Shared::RiskDetailsEvent])
35
42
  )
36
43
  .void
37
44
  }
38
- def initialize(phone_names: nil, breaches: nil, breach_names: nil)
45
+ def initialize(phone_names: nil, breaches: nil, breach_names: nil, events: nil)
39
46
  @phone_names = phone_names
40
47
  @breaches = breaches
41
48
  @breach_names = breach_names
49
+ @events = events
42
50
  end
43
51
 
44
52
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -47,6 +55,7 @@ module NoResponse
47
55
  return false unless @phone_names == other.phone_names
48
56
  return false unless @breaches == other.breaches
49
57
  return false unless @breach_names == other.breach_names
58
+ return false unless @events == other.events
50
59
  true
51
60
  end
52
61
  end
@@ -23,4 +23,10 @@ class NoResponse::Models::Shared::RiskDetails
23
23
 
24
24
  def breach_names=(str_)
25
25
  end
26
+
27
+ def events
28
+ end
29
+
30
+ def events=(str_)
31
+ end
26
32
  end
@@ -0,0 +1,101 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+
8
+ class RiskDetailsEvent
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ field :year, ::Integer, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("year"), required: true}}
13
+
14
+ field(
15
+ :kind,
16
+ Models::Shared::RiskDetailsEventKind,
17
+ {
18
+ 'format_json': {
19
+ 'letter_case': ::NoResponse::Utils.field_name("kind"),
20
+ required: true,
21
+ 'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::RiskDetailsEventKind, false)
22
+ }
23
+ }
24
+ )
25
+
26
+ field :site, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("site"), required: true}}
27
+
28
+ field(
29
+ :category,
30
+ ::String,
31
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("category"), required: true}}
32
+ )
33
+ # The source-neutral kind of evidence: account_presence (an account found on a site), auth_provider (the account at your auth provider), breach (breach and credential tables), breach_abuse (abuse and fraud communities' tables) and code_hosting (a code hosting profile).
34
+ field(
35
+ :family,
36
+ Models::Shared::FootprintFamily,
37
+ {
38
+ 'format_json': {
39
+ 'letter_case': ::NoResponse::Utils.field_name("family"),
40
+ required: true,
41
+ 'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::FootprintFamily, false)
42
+ }
43
+ }
44
+ )
45
+
46
+ field(
47
+ :identifier,
48
+ Models::Shared::Identifier,
49
+ {
50
+ 'format_json': {
51
+ 'letter_case': ::NoResponse::Utils.field_name("identifier"),
52
+ required: true,
53
+ 'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::Identifier, false)
54
+ }
55
+ }
56
+ )
57
+
58
+ field(
59
+ :month,
60
+ Crystalline::Nilable.new(::Integer),
61
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("month")}}
62
+ )
63
+
64
+ sig {
65
+ params(
66
+ year: ::Integer,
67
+ kind: Models::Shared::RiskDetailsEventKind,
68
+ site: ::String,
69
+ category: ::String,
70
+ family: Models::Shared::FootprintFamily,
71
+ identifier: Models::Shared::Identifier,
72
+ month: T.nilable(::Integer)
73
+ )
74
+ .void
75
+ }
76
+ def initialize(year:, kind:, site:, category:, family:, identifier:, month: nil)
77
+ @year = year
78
+ @kind = kind
79
+ @site = site
80
+ @category = category
81
+ @family = family
82
+ @identifier = identifier
83
+ @month = month
84
+ end
85
+
86
+ sig { params(other: T.untyped).returns(T::Boolean) }
87
+ def ==(other)
88
+ return false unless other.is_a?(self.class)
89
+ return false unless @year == other.year
90
+ return false unless @kind == other.kind
91
+ return false unless @site == other.site
92
+ return false unless @category == other.category
93
+ return false unless @family == other.family
94
+ return false unless @identifier == other.identifier
95
+ return false unless @month == other.month
96
+ true
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,50 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::RiskDetailsEvent
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::RiskDetailsEvent
9
+ def year
10
+ end
11
+
12
+ def year=(str_)
13
+ end
14
+
15
+ def kind
16
+ end
17
+
18
+ def kind=(str_)
19
+ end
20
+
21
+ def site
22
+ end
23
+
24
+ def site=(str_)
25
+ end
26
+
27
+ def category
28
+ end
29
+
30
+ def category=(str_)
31
+ end
32
+
33
+ def family
34
+ end
35
+
36
+ def family=(str_)
37
+ end
38
+
39
+ def identifier
40
+ end
41
+
42
+ def identifier=(str_)
43
+ end
44
+
45
+ def month
46
+ end
47
+
48
+ def month=(str_)
49
+ end
50
+ end
@@ -0,0 +1,20 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+
8
+ class RiskDetailsEventKind
9
+ include ::Crystalline::Enum
10
+ enums do
11
+ CREATED = new("created")
12
+ LAST_ACTIVE = new("last_active")
13
+ BREACHED = new("breached")
14
+ end
15
+
16
+ open!
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::RiskDetailsEventKind
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::RiskDetailsEventKind
9
+ end
@@ -4,7 +4,7 @@
4
4
  module NoResponse
5
5
  module Models
6
6
  module Shared
7
-
7
+ # One reason that fired. direction is whether it raises or lowers the score, or is neutral (informational, it moves nothing). impact is a coarse band of how much it moves the score: none for a neutral reason, otherwise low, medium or high.
8
8
  class RiskReason
9
9
  extend T::Sig
10
10
  include Crystalline::MetadataFields
@@ -23,9 +23,27 @@ module NoResponse
23
23
  )
24
24
 
25
25
  field(
26
- :weight,
27
- ::Integer,
28
- {'format_json': {'letter_case': ::NoResponse::Utils.field_name("weight"), required: true}}
26
+ :direction,
27
+ Models::Shared::Direction,
28
+ {
29
+ 'format_json': {
30
+ 'letter_case': ::NoResponse::Utils.field_name("direction"),
31
+ required: true,
32
+ 'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::Direction, false)
33
+ }
34
+ }
35
+ )
36
+
37
+ field(
38
+ :impact,
39
+ Models::Shared::Impact,
40
+ {
41
+ 'format_json': {
42
+ 'letter_case': ::NoResponse::Utils.field_name("impact"),
43
+ required: true,
44
+ 'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::Impact, false)
45
+ }
46
+ }
29
47
  )
30
48
  # The submitted identifier or client context field a reason concerns; absent when it concerns the whole assessment. Client context is a claimed hint, not a device fingerprint.
31
49
  field(
@@ -38,27 +56,45 @@ module NoResponse
38
56
  }
39
57
  }
40
58
  )
59
+ # Deprecated and always 0: the policy's weights are not published. It is sent so that SDK versions that require it keep reading reasons. Read direction and impact.
60
+ #
61
+ # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
62
+ field(
63
+ :weight,
64
+ Crystalline::Nilable.new(::Integer),
65
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("weight")}}
66
+ )
41
67
 
42
68
  sig {
43
69
  params(
44
70
  code: Models::Shared::ReasonCode,
45
- weight: ::Integer,
46
- identifier: T.nilable(Models::Shared::ReasonIdentifier)
71
+ direction: Models::Shared::Direction,
72
+ impact: Models::Shared::Impact,
73
+ identifier: T.nilable(Models::Shared::ReasonIdentifier),
74
+ weight: T.nilable(::Integer)
47
75
  )
48
76
  .void
49
77
  }
50
- def initialize(code:, weight:, identifier: nil)
78
+ def initialize(code:, direction:, impact:, identifier: nil, weight: 0)
51
79
  @code = code
52
- @weight = weight
80
+ @direction = direction
81
+ @impact = impact
53
82
  @identifier = identifier
83
+ unless weight&.zero?
84
+ raise ArgumentError, "Invalid value for weight"
85
+ end
86
+
87
+ @weight = 0
54
88
  end
55
89
 
56
90
  sig { params(other: T.untyped).returns(T::Boolean) }
57
91
  def ==(other)
58
92
  return false unless other.is_a?(self.class)
59
93
  return false unless @code == other.code
60
- return false unless @weight == other.weight
94
+ return false unless @direction == other.direction
95
+ return false unless @impact == other.impact
61
96
  return false unless @identifier == other.identifier
97
+ return false unless @weight == other.weight
62
98
  true
63
99
  end
64
100
  end
@@ -12,10 +12,16 @@ class NoResponse::Models::Shared::RiskReason
12
12
  def code=(str_)
13
13
  end
14
14
 
15
- def weight
15
+ def direction
16
16
  end
17
17
 
18
- def weight=(str_)
18
+ def direction=(str_)
19
+ end
20
+
21
+ def impact
22
+ end
23
+
24
+ def impact=(str_)
19
25
  end
20
26
 
21
27
  def identifier
@@ -23,4 +29,10 @@ class NoResponse::Models::Shared::RiskReason
23
29
 
24
30
  def identifier=(str_)
25
31
  end
32
+
33
+ def weight
34
+ end
35
+
36
+ def weight=(str_)
37
+ end
26
38
  end
@@ -38,6 +38,12 @@ module NoResponse
38
38
  Crystalline::Nilable.new(Models::Shared::Consistency),
39
39
  {'format_json': {'letter_case': ::NoResponse::Utils.field_name("consistency")}}
40
40
  )
41
+ # How long and how widely the signup's email and username have existed, and how far independent sources agree on the person behind them, in years and counts only. families are the kinds of evidence that found either identifier. Omitted when nothing found them: a footprint lookup that failed makes no claim, and absence is no_digital_footprint's to state.
42
+ field(
43
+ :footprint,
44
+ Crystalline::Nilable.new(Models::Shared::Footprint),
45
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("footprint")}}
46
+ )
41
47
 
42
48
  sig {
43
49
  params(
@@ -45,16 +51,18 @@ module NoResponse
45
51
  email: T.nilable(Models::Shared::RiskSummaryEmail),
46
52
  username: T.nilable(Models::Shared::RiskSummaryUsername),
47
53
  ip: T.nilable(Models::Shared::IpSummary),
48
- consistency: T.nilable(Models::Shared::Consistency)
54
+ consistency: T.nilable(Models::Shared::Consistency),
55
+ footprint: T.nilable(Models::Shared::Footprint)
49
56
  )
50
57
  .void
51
58
  }
52
- def initialize(phone: nil, email: nil, username: nil, ip: nil, consistency: nil)
59
+ def initialize(phone: nil, email: nil, username: nil, ip: nil, consistency: nil, footprint: nil)
53
60
  @phone = phone
54
61
  @email = email
55
62
  @username = username
56
63
  @ip = ip
57
64
  @consistency = consistency
65
+ @footprint = footprint
58
66
  end
59
67
 
60
68
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -65,6 +73,7 @@ module NoResponse
65
73
  return false unless @username == other.username
66
74
  return false unless @ip == other.ip
67
75
  return false unless @consistency == other.consistency
76
+ return false unless @footprint == other.footprint
68
77
  true
69
78
  end
70
79
  end
@@ -35,4 +35,10 @@ class NoResponse::Models::Shared::RiskSummary
35
35
 
36
36
  def consistency=(str_)
37
37
  end
38
+
39
+ def footprint
40
+ end
41
+
42
+ def footprint=(str_)
43
+ end
38
44
  end
@@ -16,6 +16,7 @@ module NoResponse
16
16
  autoload :AccountRiskChangedEvent, "no_response/models/shared/accountriskchangedevent.rb"
17
17
  autoload :AccountRiskReason, "no_response/models/shared/accountriskreason.rb"
18
18
  autoload :Admission, "no_response/models/shared/admission.rb"
19
+ autoload :Agreement, "no_response/models/shared/agreement.rb"
19
20
  autoload :Assessment, "no_response/models/shared/assessment.rb"
20
21
  autoload :AssessmentDeletion, "no_response/models/shared/assessmentdeletion.rb"
21
22
  autoload :AssessmentDeletionAccount, "no_response/models/shared/assessmentdeletionaccount.rb"
@@ -35,6 +36,7 @@ module NoResponse
35
36
  autoload :AssessmentUpdatedData, "no_response/models/shared/assessmentupdateddata.rb"
36
37
  autoload :AssessmentUpdatedEvent, "no_response/models/shared/assessmentupdatedevent.rb"
37
38
  autoload :AssuranceLevel, "no_response/models/shared/assurancelevel.rb"
39
+ autoload :AttributeAgreement, "no_response/models/shared/attributeagreement.rb"
38
40
  autoload :AuthContext, "no_response/models/shared/authcontext.rb"
39
41
  autoload :AuthContextMfa, "no_response/models/shared/authcontextmfa.rb"
40
42
  autoload :AuthenticationErrorCode, "no_response/models/shared/authenticationerrorcode.rb"
@@ -52,6 +54,7 @@ module NoResponse
52
54
  autoload :Country, "no_response/models/shared/country.rb"
53
55
  autoload :DefaultDepth, "no_response/models/shared/defaultdepth.rb"
54
56
  autoload :Depth, "no_response/models/shared/depth.rb"
57
+ autoload :Direction, "no_response/models/shared/direction.rb"
55
58
  autoload :EndpointVerification, "no_response/models/shared/endpointverification.rb"
56
59
  autoload :EndpointVerificationEvent, "no_response/models/shared/endpointverificationevent.rb"
57
60
  autoload :Enforcement, "no_response/models/shared/enforcement.rb"
@@ -66,9 +69,15 @@ module NoResponse
66
69
  autoload :Flow, "no_response/models/shared/flow.rb"
67
70
  autoload :FlowChange, "no_response/models/shared/flowchange.rb"
68
71
  autoload :FlowSettings, "no_response/models/shared/flowsettings.rb"
72
+ autoload :Footprint, "no_response/models/shared/footprint.rb"
73
+ autoload :FootprintCoherence, "no_response/models/shared/footprintcoherence.rb"
74
+ autoload :FootprintFamily, "no_response/models/shared/footprintfamily.rb"
75
+ autoload :FootprintTimeline, "no_response/models/shared/footprinttimeline.rb"
69
76
  autoload :Freshness, "no_response/models/shared/freshness.rb"
70
77
  autoload :HookPoint, "no_response/models/shared/hookpoint.rb"
78
+ autoload :Identifier, "no_response/models/shared/identifier.rb"
71
79
  autoload :IdentifierKind, "no_response/models/shared/identifierkind.rb"
80
+ autoload :Impact, "no_response/models/shared/impact.rb"
72
81
  autoload :IncompleteReason, "no_response/models/shared/incompletereason.rb"
73
82
  autoload :IncompleteSource, "no_response/models/shared/incompletesource.rb"
74
83
  autoload :Integration, "no_response/models/shared/integration.rb"
@@ -112,6 +121,8 @@ module NoResponse
112
121
  autoload :RiskCoverage, "no_response/models/shared/riskcoverage.rb"
113
122
  autoload :RiskDetails, "no_response/models/shared/riskdetails.rb"
114
123
  autoload :RiskDetailsBreachName, "no_response/models/shared/riskdetailsbreachname.rb"
124
+ autoload :RiskDetailsEvent, "no_response/models/shared/riskdetailsevent.rb"
125
+ autoload :RiskDetailsEventKind, "no_response/models/shared/riskdetailseventkind.rb"
115
126
  autoload :RiskDetailsPhoneName, "no_response/models/shared/riskdetailsphonename.rb"
116
127
  autoload :RiskReason, "no_response/models/shared/riskreason.rb"
117
128
  autoload :RiskSummary, "no_response/models/shared/risksummary.rb"