noresponse 8.1.3 → 8.2.1
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 +4 -4
- data/lib/no_response/accounts.rb +2069 -1
- data/lib/no_response/assessments.rb +893 -3
- data/lib/no_response/models/operations/associatecredential_request.rb +33 -0
- data/lib/no_response/models/operations/associatecredential_request.rbi +20 -0
- data/lib/no_response/models/operations/associatecredential_response.rb +34 -0
- data/lib/no_response/models/operations/associatecredential_response.rbi +20 -0
- data/lib/no_response/models/operations/bindprovisionalaccount_request.rb +37 -0
- data/lib/no_response/models/operations/bindprovisionalaccount_request.rbi +20 -0
- data/lib/no_response/models/operations/bindprovisionalaccount_response.rb +32 -0
- data/lib/no_response/models/operations/bindprovisionalaccount_response.rbi +20 -0
- data/lib/no_response/models/operations/exportaccount_request.rb +37 -0
- data/lib/no_response/models/operations/exportaccount_request.rbi +20 -0
- data/lib/no_response/models/operations/exportaccount_response.rb +32 -0
- data/lib/no_response/models/operations/exportaccount_response.rbi +20 -0
- data/lib/no_response/models/operations/getaccountdecision_request.rb +37 -0
- data/lib/no_response/models/operations/getaccountdecision_request.rbi +20 -0
- data/lib/no_response/models/operations/getaccountdecision_response.rb +34 -0
- data/lib/no_response/models/operations/getaccountdecision_response.rbi +20 -0
- data/lib/no_response/models/operations/getassessmentversion_request.rb +48 -0
- data/lib/no_response/models/operations/getassessmentversion_request.rbi +26 -0
- data/lib/no_response/models/operations/getassessmentversion_response.rb +32 -0
- data/lib/no_response/models/operations/getassessmentversion_response.rbi +20 -0
- data/lib/no_response/models/operations/listaccountcredentials_request.rb +45 -0
- data/lib/no_response/models/operations/listaccountcredentials_request.rbi +26 -0
- data/lib/no_response/models/operations/listaccountcredentials_response.rb +32 -0
- data/lib/no_response/models/operations/listaccountcredentials_response.rbi +20 -0
- data/lib/no_response/models/operations/listaccountoutcomes_request.rb +45 -0
- data/lib/no_response/models/operations/listaccountoutcomes_request.rbi +26 -0
- data/lib/no_response/models/operations/listaccountoutcomes_response.rb +32 -0
- data/lib/no_response/models/operations/listaccountoutcomes_response.rbi +20 -0
- data/lib/no_response/models/operations/listrequestdiagnostics_request.rb +84 -0
- data/lib/no_response/models/operations/listrequestdiagnostics_request.rbi +50 -0
- data/lib/no_response/models/operations/listrequestdiagnostics_response.rb +34 -0
- data/lib/no_response/models/operations/listrequestdiagnostics_response.rbi +20 -0
- data/lib/no_response/models/operations/recordaccountoutcome_request.rb +48 -0
- data/lib/no_response/models/operations/recordaccountoutcome_request.rbi +26 -0
- data/lib/no_response/models/operations/recordaccountoutcome_response.rb +32 -0
- data/lib/no_response/models/operations/recordaccountoutcome_response.rbi +20 -0
- data/lib/no_response/models/operations/retireaccountcredential_request.rb +37 -0
- data/lib/no_response/models/operations/retireaccountcredential_request.rbi +20 -0
- data/lib/no_response/models/operations/retireaccountcredential_response.rb +34 -0
- data/lib/no_response/models/operations/retireaccountcredential_response.rbi +20 -0
- data/lib/no_response/models/operations/searchassessments_response.rb +32 -0
- data/lib/no_response/models/operations/searchassessments_response.rbi +20 -0
- data/lib/no_response/models/operations.rb +21 -0
- data/lib/no_response/models/shared/accountbinding.rb +83 -0
- data/lib/no_response/models/shared/accountbinding.rbi +44 -0
- data/lib/no_response/models/shared/accountbindingactor.rb +40 -0
- data/lib/no_response/models/shared/accountbindingactor.rbi +20 -0
- data/lib/no_response/models/shared/accountbindingrequest.rb +33 -0
- data/lib/no_response/models/shared/accountbindingrequest.rbi +14 -0
- data/lib/no_response/models/shared/accountdecisionsnapshot.rb +94 -0
- data/lib/no_response/models/shared/accountdecisionsnapshot.rbi +44 -0
- data/lib/no_response/models/shared/accountexport.rb +178 -0
- data/lib/no_response/models/shared/accountexport.rbi +92 -0
- data/lib/no_response/models/shared/accountoutcome.rb +152 -0
- data/lib/no_response/models/shared/accountoutcome.rbi +80 -0
- data/lib/no_response/models/shared/accountoutcomeactor.rb +40 -0
- data/lib/no_response/models/shared/accountoutcomeactor.rbi +20 -0
- data/lib/no_response/models/shared/accountoutcomepage.rb +65 -0
- data/lib/no_response/models/shared/accountoutcomepage.rbi +32 -0
- data/lib/no_response/models/shared/accountoutcomerequest.rb +71 -0
- data/lib/no_response/models/shared/accountoutcomerequest.rbi +32 -0
- data/lib/no_response/models/shared/assessmentdetail.rb +10 -0
- data/lib/no_response/models/shared/assessmentdetail.rbi +6 -0
- data/lib/no_response/models/shared/assessmentrevision.rb +101 -0
- data/lib/no_response/models/shared/assessmentrevision.rbi +44 -0
- data/lib/no_response/models/shared/assessmentsearchpage.rb +68 -0
- data/lib/no_response/models/shared/assessmentsearchpage.rbi +32 -0
- data/lib/no_response/models/shared/assessmentsearchrequest.rb +146 -0
- data/lib/no_response/models/shared/assessmentsearchrequest.rbi +68 -0
- data/lib/no_response/models/shared/conflicterrorcode.rb +3 -0
- data/lib/no_response/models/shared/credentialassociation.rb +78 -0
- data/lib/no_response/models/shared/credentialassociation.rbi +44 -0
- data/lib/no_response/models/shared/credentialassociationactor.rb +40 -0
- data/lib/no_response/models/shared/credentialassociationactor.rbi +20 -0
- data/lib/no_response/models/shared/credentialassociationretiredby.rb +40 -0
- data/lib/no_response/models/shared/credentialassociationretiredby.rbi +20 -0
- data/lib/no_response/models/shared/credentialpage.rb +56 -0
- data/lib/no_response/models/shared/credentialpage.rbi +26 -0
- data/lib/no_response/models/shared/credentialrequest.rb +32 -0
- data/lib/no_response/models/shared/credentialrequest.rbi +14 -0
- data/lib/no_response/models/shared/decision.rb +18 -0
- data/lib/no_response/models/shared/decision.rbi +9 -0
- data/lib/no_response/models/shared/decisionreceipt.rb +112 -0
- data/lib/no_response/models/shared/decisionreceipt.rbi +50 -0
- data/lib/no_response/models/shared/exclusion.rb +23 -0
- data/lib/no_response/models/shared/exclusion.rbi +9 -0
- data/lib/no_response/models/shared/exportassessmentoutcome.rb +85 -0
- data/lib/no_response/models/shared/exportassessmentoutcome.rbi +44 -0
- data/lib/no_response/models/shared/reasoncode.rb +1 -0
- data/lib/no_response/models/shared/requestdiagnostic.rb +145 -0
- data/lib/no_response/models/shared/requestdiagnostic.rbi +80 -0
- data/lib/no_response/models/shared/requestdiagnosticpage.rb +40 -0
- data/lib/no_response/models/shared/requestdiagnosticpage.rbi +20 -0
- data/lib/no_response/models/shared/sentidentifiers.rb +74 -0
- data/lib/no_response/models/shared/sentidentifiers.rbi +38 -0
- data/lib/no_response/models/shared.rb +24 -0
- data/lib/no_response/noresponseclient.rb +12 -1
- data/lib/no_response/requests.rb +320 -0
- data/lib/no_response/sdkconfiguration.rb +2 -2
- data/lib/noresponse.rb +1 -0
- metadata +92 -1
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
module NoResponse
|
|
5
5
|
module Models
|
|
6
6
|
module Operations
|
|
7
|
+
autoload :AssociateCredentialRequest, "no_response/models/operations/associatecredential_request.rb"
|
|
8
|
+
autoload :AssociateCredentialResponse, "no_response/models/operations/associatecredential_response.rb"
|
|
9
|
+
autoload :BindProvisionalAccountRequest, "no_response/models/operations/bindprovisionalaccount_request.rb"
|
|
10
|
+
autoload :BindProvisionalAccountResponse, "no_response/models/operations/bindprovisionalaccount_response.rb"
|
|
7
11
|
autoload :CreateAssessmentRequest, "no_response/models/operations/createassessment_request.rb"
|
|
8
12
|
autoload :CreateAssessmentResponse, "no_response/models/operations/createassessment_response.rb"
|
|
9
13
|
autoload :CreateIntegrationResponse, "no_response/models/operations/createintegration_response.rb"
|
|
@@ -22,14 +26,24 @@ module NoResponse
|
|
|
22
26
|
autoload :DeleteListEntryResponse, "no_response/models/operations/deletelistentry_response.rb"
|
|
23
27
|
autoload :DeleteWebhookEndpointRequest, "no_response/models/operations/deletewebhookendpoint_request.rb"
|
|
24
28
|
autoload :DeleteWebhookEndpointResponse, "no_response/models/operations/deletewebhookendpoint_response.rb"
|
|
29
|
+
autoload :ExportAccountRequest, "no_response/models/operations/exportaccount_request.rb"
|
|
30
|
+
autoload :ExportAccountResponse, "no_response/models/operations/exportaccount_response.rb"
|
|
31
|
+
autoload :GetAccountDecisionRequest, "no_response/models/operations/getaccountdecision_request.rb"
|
|
32
|
+
autoload :GetAccountDecisionResponse, "no_response/models/operations/getaccountdecision_response.rb"
|
|
25
33
|
autoload :GetAccountRequest, "no_response/models/operations/getaccount_request.rb"
|
|
26
34
|
autoload :GetAccountResponse, "no_response/models/operations/getaccount_response.rb"
|
|
35
|
+
autoload :GetAssessmentVersionRequest, "no_response/models/operations/getassessmentversion_request.rb"
|
|
36
|
+
autoload :GetAssessmentVersionResponse, "no_response/models/operations/getassessmentversion_response.rb"
|
|
27
37
|
autoload :GetAssessmentRequest, "no_response/models/operations/getassessment_request.rb"
|
|
28
38
|
autoload :GetAssessmentResponse, "no_response/models/operations/getassessment_response.rb"
|
|
29
39
|
autoload :GetSettingsRequest, "no_response/models/operations/getsettings_request.rb"
|
|
30
40
|
autoload :GetSettingsResponse, "no_response/models/operations/getsettings_response.rb"
|
|
31
41
|
autoload :ListAccountAssessmentsRequest, "no_response/models/operations/listaccountassessments_request.rb"
|
|
32
42
|
autoload :ListAccountAssessmentsResponse, "no_response/models/operations/listaccountassessments_response.rb"
|
|
43
|
+
autoload :ListAccountCredentialsRequest, "no_response/models/operations/listaccountcredentials_request.rb"
|
|
44
|
+
autoload :ListAccountCredentialsResponse, "no_response/models/operations/listaccountcredentials_response.rb"
|
|
45
|
+
autoload :ListAccountOutcomesRequest, "no_response/models/operations/listaccountoutcomes_request.rb"
|
|
46
|
+
autoload :ListAccountOutcomesResponse, "no_response/models/operations/listaccountoutcomes_response.rb"
|
|
33
47
|
autoload :ListAccountsRequest, "no_response/models/operations/listaccounts_request.rb"
|
|
34
48
|
autoload :ListAccountsResponse, "no_response/models/operations/listaccounts_response.rb"
|
|
35
49
|
autoload :ListIntegrationsResponse, "no_response/models/operations/listintegrations_response.rb"
|
|
@@ -37,10 +51,14 @@ module NoResponse
|
|
|
37
51
|
autoload :ListKeysResponse, "no_response/models/operations/listkeys_response.rb"
|
|
38
52
|
autoload :ListListEntriesRequest, "no_response/models/operations/listlistentries_request.rb"
|
|
39
53
|
autoload :ListListEntriesResponse, "no_response/models/operations/listlistentries_response.rb"
|
|
54
|
+
autoload :ListRequestDiagnosticsRequest, "no_response/models/operations/listrequestdiagnostics_request.rb"
|
|
55
|
+
autoload :ListRequestDiagnosticsResponse, "no_response/models/operations/listrequestdiagnostics_response.rb"
|
|
40
56
|
autoload :ListWebhookDeliveriesRequest, "no_response/models/operations/listwebhookdeliveries_request.rb"
|
|
41
57
|
autoload :ListWebhookDeliveriesResponse, "no_response/models/operations/listwebhookdeliveries_response.rb"
|
|
42
58
|
autoload :ListWebhookEndpointsResponse, "no_response/models/operations/listwebhookendpoints_response.rb"
|
|
43
59
|
autoload :QueryAccountAssessmentsResponse, "no_response/models/operations/queryaccountassessments_response.rb"
|
|
60
|
+
autoload :RecordAccountOutcomeRequest, "no_response/models/operations/recordaccountoutcome_request.rb"
|
|
61
|
+
autoload :RecordAccountOutcomeResponse, "no_response/models/operations/recordaccountoutcome_response.rb"
|
|
44
62
|
autoload :RecordAssessmentOutcomeRequest, "no_response/models/operations/recordassessmentoutcome_request.rb"
|
|
45
63
|
autoload :RecordAssessmentOutcomeResponse, "no_response/models/operations/recordassessmentoutcome_response.rb"
|
|
46
64
|
autoload :RecordEnforcementRequest, "no_response/models/operations/recordenforcement_request.rb"
|
|
@@ -49,6 +67,8 @@ module NoResponse
|
|
|
49
67
|
autoload :RecordKeyUsageResponse, "no_response/models/operations/recordkeyusage_response.rb"
|
|
50
68
|
autoload :ReplayWebhookDeliveryRequest, "no_response/models/operations/replaywebhookdelivery_request.rb"
|
|
51
69
|
autoload :ReplayWebhookDeliveryResponse, "no_response/models/operations/replaywebhookdelivery_response.rb"
|
|
70
|
+
autoload :RetireAccountCredentialRequest, "no_response/models/operations/retireaccountcredential_request.rb"
|
|
71
|
+
autoload :RetireAccountCredentialResponse, "no_response/models/operations/retireaccountcredential_response.rb"
|
|
52
72
|
autoload :RevokeKeyRequest, "no_response/models/operations/revokekey_request.rb"
|
|
53
73
|
autoload :RevokeKeyResponse, "no_response/models/operations/revokekey_response.rb"
|
|
54
74
|
autoload :RotateApiKeyResponse, "no_response/models/operations/rotateapikey_response.rb"
|
|
@@ -56,6 +76,7 @@ module NoResponse
|
|
|
56
76
|
autoload :RotateIntegrationSecretResponse, "no_response/models/operations/rotateintegrationsecret_response.rb"
|
|
57
77
|
autoload :RotateWebhookSigningKeyRequest, "no_response/models/operations/rotatewebhooksigningkey_request.rb"
|
|
58
78
|
autoload :RotateWebhookSigningKeyResponse, "no_response/models/operations/rotatewebhooksigningkey_response.rb"
|
|
79
|
+
autoload :SearchAssessmentsResponse, "no_response/models/operations/searchassessments_response.rb"
|
|
59
80
|
autoload :SendWebhookTestEventRequest, "no_response/models/operations/sendwebhooktestevent_request.rb"
|
|
60
81
|
autoload :SendWebhookTestEventResponse, "no_response/models/operations/sendwebhooktestevent_response.rb"
|
|
61
82
|
autoload :UpdateSettingsRequest, "no_response/models/operations/updatesettings_request.rb"
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# Binding appends an assessment revision and preserves earlier versions. Continuations use the same assessment. Erasing either the provisional or canonical name erases the canonical account, including the bound assessment.
|
|
8
|
+
class AccountBinding
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# Opaque, server-assigned assessment id: 'asm_' and a 26-character Crockford base32 ULID. Unique within the workspace; another workspace's assessment id answers 404.
|
|
13
|
+
field(
|
|
14
|
+
:assessment_id,
|
|
15
|
+
::String,
|
|
16
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("assessment_id"), required: true}}
|
|
17
|
+
)
|
|
18
|
+
# Your own opaque identifier for the account being checked, scoped to your workspace. Use an id you mint, with no direct identifier (email, phone, name or national id) in it. '|' is accepted so an Auth0 user id such as 'auth0|64abc' passes unchanged; '@', '+', '$' and whitespace are refused by the pattern, as is an exact-shape JWT; a hex digest such as a SHA-256 is allowed, because hashing an internal id is a common pseudonymous scheme. A value such as '07700900123' or 'jane.doe.gmail.com' cannot be told apart from an opaque id. It travels in bodies, and in a URL only as the path segment of GET /v1/accounts/{account_id} and its /assessments. An assessment requested by a provider hook at pre_registration, which has no account yet, carries the server-issued account_id pre: followed by its assessment_id.
|
|
19
|
+
field(
|
|
20
|
+
:provisional_account_id,
|
|
21
|
+
::String,
|
|
22
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("provisional_account_id"), required: true}}
|
|
23
|
+
)
|
|
24
|
+
# Your own opaque identifier for the account being checked, scoped to your workspace. Use an id you mint, with no direct identifier (email, phone, name or national id) in it. '|' is accepted so an Auth0 user id such as 'auth0|64abc' passes unchanged; '@', '+', '$' and whitespace are refused by the pattern, as is an exact-shape JWT; a hex digest such as a SHA-256 is allowed, because hashing an internal id is a common pseudonymous scheme. A value such as '07700900123' or 'jane.doe.gmail.com' cannot be told apart from an opaque id. It travels in bodies, and in a URL only as the path segment of GET /v1/accounts/{account_id} and its /assessments. An assessment requested by a provider hook at pre_registration, which has no account yet, carries the server-issued account_id pre: followed by its assessment_id.
|
|
25
|
+
field(
|
|
26
|
+
:account_id,
|
|
27
|
+
::String,
|
|
28
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("account_id"), required: true}}
|
|
29
|
+
)
|
|
30
|
+
# Monotonic revision of this assessment. 1 on the synchronous answer; each material change while the assessment is served (an async continuation settling a source, a change of recommendation, confidence or status) increments it. Expiry does not increment it: an expired assessment is gone, not revised, and the expiry webhook carries the last served version.
|
|
31
|
+
field(
|
|
32
|
+
:assessment_version,
|
|
33
|
+
::Integer,
|
|
34
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("assessment_version"), required: true}}
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
field(
|
|
38
|
+
:created_at,
|
|
39
|
+
::String,
|
|
40
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("created_at"), required: true}}
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
field(
|
|
44
|
+
:actor,
|
|
45
|
+
Models::Shared::AccountBindingActor,
|
|
46
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("actor"), required: true}}
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
sig {
|
|
50
|
+
params(
|
|
51
|
+
assessment_id: ::String,
|
|
52
|
+
provisional_account_id: ::String,
|
|
53
|
+
account_id: ::String,
|
|
54
|
+
assessment_version: ::Integer,
|
|
55
|
+
created_at: ::String,
|
|
56
|
+
actor: Models::Shared::AccountBindingActor
|
|
57
|
+
)
|
|
58
|
+
.void
|
|
59
|
+
}
|
|
60
|
+
def initialize(assessment_id:, provisional_account_id:, account_id:, assessment_version:, created_at:, actor:)
|
|
61
|
+
@assessment_id = assessment_id
|
|
62
|
+
@provisional_account_id = provisional_account_id
|
|
63
|
+
@account_id = account_id
|
|
64
|
+
@assessment_version = assessment_version
|
|
65
|
+
@created_at = created_at
|
|
66
|
+
@actor = actor
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
70
|
+
def ==(other)
|
|
71
|
+
return false unless other.is_a?(self.class)
|
|
72
|
+
return false unless @assessment_id == other.assessment_id
|
|
73
|
+
return false unless @provisional_account_id == other.provisional_account_id
|
|
74
|
+
return false unless @account_id == other.account_id
|
|
75
|
+
return false unless @assessment_version == other.assessment_version
|
|
76
|
+
return false unless @created_at == other.created_at
|
|
77
|
+
return false unless @actor == other.actor
|
|
78
|
+
true
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::AccountBinding
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::AccountBinding
|
|
9
|
+
def assessment_id
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def assessment_id=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def provisional_account_id
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def provisional_account_id=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def account_id
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def account_id=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def assessment_version
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def assessment_version=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def created_at
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def created_at=(str_)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def actor
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def actor=(str_)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
|
|
8
|
+
class AccountBindingActor
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
field(
|
|
13
|
+
:key_id,
|
|
14
|
+
::String,
|
|
15
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("key_id"), required: true}}
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
field :type, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("type"), required: true}}
|
|
19
|
+
|
|
20
|
+
sig { params(key_id: ::String, type: ::String).void }
|
|
21
|
+
def initialize(key_id:, type: "api_key")
|
|
22
|
+
@key_id = key_id
|
|
23
|
+
unless type == "api_key"
|
|
24
|
+
raise ArgumentError, "Invalid value for type"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
@type = "api_key"
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
31
|
+
def ==(other)
|
|
32
|
+
return false unless other.is_a?(self.class)
|
|
33
|
+
return false unless @key_id == other.key_id
|
|
34
|
+
return false unless @type == other.type
|
|
35
|
+
true
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::AccountBindingActor
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::AccountBindingActor
|
|
9
|
+
def key_id
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def key_id=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def type
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def type=(str_)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# One-time association to an opaque stable customer account. The assessment is its natural idempotency key. Repeating the same binding returns its first receipt; a conflicting target is refused. No arbitrary account merging.
|
|
8
|
+
class AccountBindingRequest
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# Your own opaque identifier for the account being checked, scoped to your workspace. Use an id you mint, with no direct identifier (email, phone, name or national id) in it. '|' is accepted so an Auth0 user id such as 'auth0|64abc' passes unchanged; '@', '+', '$' and whitespace are refused by the pattern, as is an exact-shape JWT; a hex digest such as a SHA-256 is allowed, because hashing an internal id is a common pseudonymous scheme. A value such as '07700900123' or 'jane.doe.gmail.com' cannot be told apart from an opaque id. It travels in bodies, and in a URL only as the path segment of GET /v1/accounts/{account_id} and its /assessments. An assessment requested by a provider hook at pre_registration, which has no account yet, carries the server-issued account_id pre: followed by its assessment_id.
|
|
13
|
+
field(
|
|
14
|
+
:account_id,
|
|
15
|
+
::String,
|
|
16
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("account_id"), required: true}}
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
sig { params(account_id: ::String).void }
|
|
20
|
+
def initialize(account_id:)
|
|
21
|
+
@account_id = account_id
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
25
|
+
def ==(other)
|
|
26
|
+
return false unless other.is_a?(self.class)
|
|
27
|
+
return false unless @account_id == other.account_id
|
|
28
|
+
true
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::AccountBindingRequest
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::AccountBindingRequest
|
|
9
|
+
def account_id
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def account_id=(str_)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# Retrieve the account decision at one recorded risk version. The answer uses the original assessment and account-specific risk inputs. Earlier versions that were not captured return 404. The assessment version, policy version and account calculation version identify the decision.
|
|
8
|
+
class AccountDecisionSnapshot
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# Body of the 200 answer to GET /v1/accounts/{account_id}: the one current risk of one of the calling workspace's accounts. It is the risk of the account's latest assessment that has a decision (status complete or partial), by created_at and then assessment_id, scored exactly as GET /v1/assessments/{assessment_id} scores that assessment, plus the account's own reason shared_api_key when a key issued to the account was used from many IP addresses or countries (POST /v1/key_usage/batches). Its assessments are the account's history (GET /v1/accounts/{account_id}/assessments).
|
|
13
|
+
field(
|
|
14
|
+
:account,
|
|
15
|
+
Models::Shared::Account,
|
|
16
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("account"), required: true}}
|
|
17
|
+
)
|
|
18
|
+
# Monotonic revision of this assessment. 1 on the synchronous answer; each material change while the assessment is served (an async continuation settling a source, a change of recommendation, confidence or status) increments it. Expiry does not increment it: an expired assessment is gone, not revised, and the expiry webhook carries the last served version.
|
|
19
|
+
field(
|
|
20
|
+
:assessment_version,
|
|
21
|
+
::Integer,
|
|
22
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("assessment_version"), required: true}}
|
|
23
|
+
)
|
|
24
|
+
# 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'.
|
|
25
|
+
field(
|
|
26
|
+
:policy_version,
|
|
27
|
+
::String,
|
|
28
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("policy_version"), required: true}}
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
field(
|
|
32
|
+
:changed_at,
|
|
33
|
+
::String,
|
|
34
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("changed_at"), required: true}}
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
field(
|
|
38
|
+
:overlay_version,
|
|
39
|
+
::Integer,
|
|
40
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("overlay_version"), required: true}}
|
|
41
|
+
)
|
|
42
|
+
# Opaque, server-assigned id of one recorded outcome: 'out_' and a 26-character Crockford base32 ULID. Unique within the workspace.
|
|
43
|
+
field(
|
|
44
|
+
:feedback_outcome_id,
|
|
45
|
+
Crystalline::Nilable.new(::String),
|
|
46
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("feedback_outcome_id")}}
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
sig {
|
|
50
|
+
params(
|
|
51
|
+
account: Models::Shared::Account,
|
|
52
|
+
assessment_version: ::Integer,
|
|
53
|
+
policy_version: ::String,
|
|
54
|
+
changed_at: ::String,
|
|
55
|
+
overlay_version: ::Integer,
|
|
56
|
+
feedback_outcome_id: T.nilable(::String)
|
|
57
|
+
)
|
|
58
|
+
.void
|
|
59
|
+
}
|
|
60
|
+
def initialize(
|
|
61
|
+
account:,
|
|
62
|
+
assessment_version:,
|
|
63
|
+
policy_version:,
|
|
64
|
+
changed_at:,
|
|
65
|
+
overlay_version: 1,
|
|
66
|
+
feedback_outcome_id: nil
|
|
67
|
+
)
|
|
68
|
+
@account = account
|
|
69
|
+
@assessment_version = assessment_version
|
|
70
|
+
@policy_version = policy_version
|
|
71
|
+
@changed_at = changed_at
|
|
72
|
+
unless overlay_version == 1
|
|
73
|
+
raise ArgumentError, "Invalid value for overlay_version"
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
@overlay_version = 1
|
|
77
|
+
@feedback_outcome_id = feedback_outcome_id
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
81
|
+
def ==(other)
|
|
82
|
+
return false unless other.is_a?(self.class)
|
|
83
|
+
return false unless @account == other.account
|
|
84
|
+
return false unless @assessment_version == other.assessment_version
|
|
85
|
+
return false unless @policy_version == other.policy_version
|
|
86
|
+
return false unless @changed_at == other.changed_at
|
|
87
|
+
return false unless @overlay_version == other.overlay_version
|
|
88
|
+
return false unless @feedback_outcome_id == other.feedback_outcome_id
|
|
89
|
+
true
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::AccountDecisionSnapshot
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::AccountDecisionSnapshot
|
|
9
|
+
def account
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def account=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def assessment_version
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def assessment_version=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def policy_version
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def policy_version=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def changed_at
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def changed_at=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def overlay_version
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def overlay_version=(str_)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def feedback_outcome_id
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def feedback_outcome_id=(str_)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# Retrieve one consistent snapshot of retained customer-accessible records, including assessment revisions, account decisions, feedback, key associations, enforcements and request diagnostics. Secrets, restricted source information, other customers' data and legacy free-text notes are excluded. The same standard/detailed permissions apply. An export exceeding 10000 records or 8 MiB returns export_too_large without a partial result. Historical decisions that were not captured are identified as an exclusion.
|
|
8
|
+
class AccountExport
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# Your own opaque identifier for the account being checked, scoped to your workspace. Use an id you mint, with no direct identifier (email, phone, name or national id) in it. '|' is accepted so an Auth0 user id such as 'auth0|64abc' passes unchanged; '@', '+', '$' and whitespace are refused by the pattern, as is an exact-shape JWT; a hex digest such as a SHA-256 is allowed, because hashing an internal id is a common pseudonymous scheme. A value such as '07700900123' or 'jane.doe.gmail.com' cannot be told apart from an opaque id. It travels in bodies, and in a URL only as the path segment of GET /v1/accounts/{account_id} and its /assessments. An assessment requested by a provider hook at pre_registration, which has no account yet, carries the server-issued account_id pre: followed by its assessment_id.
|
|
13
|
+
field(
|
|
14
|
+
:account_id,
|
|
15
|
+
::String,
|
|
16
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("account_id"), required: true}}
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
field(
|
|
20
|
+
:exported_at,
|
|
21
|
+
::String,
|
|
22
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("exported_at"), required: true}}
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
field(
|
|
26
|
+
:current_risk_version,
|
|
27
|
+
::Integer,
|
|
28
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("current_risk_version"), required: true}}
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
field(
|
|
32
|
+
:assessments,
|
|
33
|
+
Crystalline::Array.new(Models::Shared::AssessmentRevision),
|
|
34
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("assessments"), required: true}}
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
field(
|
|
38
|
+
:decisions,
|
|
39
|
+
Crystalline::Array.new(Models::Shared::AccountDecisionSnapshot),
|
|
40
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("decisions"), required: true}}
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
field(
|
|
44
|
+
:outcomes,
|
|
45
|
+
Crystalline::Array.new(Models::Shared::AccountOutcome),
|
|
46
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("outcomes"), required: true}}
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
field(
|
|
50
|
+
:assessment_outcomes,
|
|
51
|
+
Crystalline::Array.new(Models::Shared::ExportAssessmentOutcome),
|
|
52
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("assessment_outcomes"), required: true}}
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
field(
|
|
56
|
+
:credentials,
|
|
57
|
+
Crystalline::Array.new(Models::Shared::CredentialAssociation),
|
|
58
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("credentials"), required: true}}
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
field(
|
|
62
|
+
:bindings,
|
|
63
|
+
Crystalline::Array.new(Models::Shared::AccountBinding),
|
|
64
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("bindings"), required: true}}
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
field(
|
|
68
|
+
:enforcements,
|
|
69
|
+
Crystalline::Array.new(Models::Shared::Enforcement),
|
|
70
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("enforcements"), required: true}}
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
field(
|
|
74
|
+
:requests,
|
|
75
|
+
Crystalline::Array.new(Models::Shared::RequestDiagnostic),
|
|
76
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("requests"), required: true}}
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
field(
|
|
80
|
+
:exclusions,
|
|
81
|
+
Crystalline::Array.new(Models::Shared::Exclusion),
|
|
82
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("exclusions"), required: true}}
|
|
83
|
+
)
|
|
84
|
+
# Version of the body shape.
|
|
85
|
+
field(
|
|
86
|
+
:schema_version,
|
|
87
|
+
::String,
|
|
88
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("schema_version"), required: true}}
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
field(
|
|
92
|
+
:complete,
|
|
93
|
+
Crystalline::Boolean.new,
|
|
94
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("complete"), required: true}}
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
sig {
|
|
98
|
+
params(
|
|
99
|
+
account_id: ::String,
|
|
100
|
+
exported_at: ::String,
|
|
101
|
+
current_risk_version: ::Integer,
|
|
102
|
+
assessments: T::Array[Models::Shared::AssessmentRevision],
|
|
103
|
+
decisions: T::Array[Models::Shared::AccountDecisionSnapshot],
|
|
104
|
+
outcomes: T::Array[Models::Shared::AccountOutcome],
|
|
105
|
+
assessment_outcomes: T::Array[Models::Shared::ExportAssessmentOutcome],
|
|
106
|
+
credentials: T::Array[Models::Shared::CredentialAssociation],
|
|
107
|
+
bindings: T::Array[Models::Shared::AccountBinding],
|
|
108
|
+
enforcements: T::Array[Models::Shared::Enforcement],
|
|
109
|
+
requests: T::Array[Models::Shared::RequestDiagnostic],
|
|
110
|
+
exclusions: T::Array[Models::Shared::Exclusion],
|
|
111
|
+
schema_version: ::String,
|
|
112
|
+
complete: T::Boolean
|
|
113
|
+
)
|
|
114
|
+
.void
|
|
115
|
+
}
|
|
116
|
+
def initialize(
|
|
117
|
+
account_id:,
|
|
118
|
+
exported_at:,
|
|
119
|
+
current_risk_version:,
|
|
120
|
+
assessments:,
|
|
121
|
+
decisions:,
|
|
122
|
+
outcomes:,
|
|
123
|
+
assessment_outcomes:,
|
|
124
|
+
credentials:,
|
|
125
|
+
bindings:,
|
|
126
|
+
enforcements:,
|
|
127
|
+
requests:,
|
|
128
|
+
exclusions:,
|
|
129
|
+
schema_version: "1",
|
|
130
|
+
complete: true
|
|
131
|
+
)
|
|
132
|
+
@account_id = account_id
|
|
133
|
+
@exported_at = exported_at
|
|
134
|
+
@current_risk_version = current_risk_version
|
|
135
|
+
@assessments = assessments
|
|
136
|
+
@decisions = decisions
|
|
137
|
+
@outcomes = outcomes
|
|
138
|
+
@assessment_outcomes = assessment_outcomes
|
|
139
|
+
@credentials = credentials
|
|
140
|
+
@bindings = bindings
|
|
141
|
+
@enforcements = enforcements
|
|
142
|
+
@requests = requests
|
|
143
|
+
@exclusions = exclusions
|
|
144
|
+
unless schema_version == "1"
|
|
145
|
+
raise ArgumentError, "Invalid value for schema_version"
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
@schema_version = "1"
|
|
149
|
+
unless complete == true
|
|
150
|
+
raise ArgumentError, "Invalid value for complete"
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
@complete = true
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
157
|
+
def ==(other)
|
|
158
|
+
return false unless other.is_a?(self.class)
|
|
159
|
+
return false unless @account_id == other.account_id
|
|
160
|
+
return false unless @exported_at == other.exported_at
|
|
161
|
+
return false unless @current_risk_version == other.current_risk_version
|
|
162
|
+
return false unless @assessments == other.assessments
|
|
163
|
+
return false unless @decisions == other.decisions
|
|
164
|
+
return false unless @outcomes == other.outcomes
|
|
165
|
+
return false unless @assessment_outcomes == other.assessment_outcomes
|
|
166
|
+
return false unless @credentials == other.credentials
|
|
167
|
+
return false unless @bindings == other.bindings
|
|
168
|
+
return false unless @enforcements == other.enforcements
|
|
169
|
+
return false unless @requests == other.requests
|
|
170
|
+
return false unless @exclusions == other.exclusions
|
|
171
|
+
return false unless @schema_version == other.schema_version
|
|
172
|
+
return false unless @complete == other.complete
|
|
173
|
+
true
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
end
|
|
178
|
+
end
|