noresponse 2.0.18 → 2.0.19

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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/lib/no_response/models/operations/createwebhookendpoint_response.rb +34 -0
  3. data/lib/no_response/models/operations/createwebhookendpoint_response.rbi +20 -0
  4. data/lib/no_response/models/operations/deletewebhookendpoint_request.rb +29 -0
  5. data/lib/no_response/models/operations/deletewebhookendpoint_request.rbi +14 -0
  6. data/lib/no_response/models/operations/deletewebhookendpoint_response.rb +28 -0
  7. data/lib/no_response/models/operations/deletewebhookendpoint_response.rbi +14 -0
  8. data/lib/no_response/models/operations/listwebhookendpoints_response.rb +32 -0
  9. data/lib/no_response/models/operations/listwebhookendpoints_response.rbi +20 -0
  10. data/lib/no_response/models/operations/rotatewebhooksigningkey_request.rb +33 -0
  11. data/lib/no_response/models/operations/rotatewebhooksigningkey_request.rbi +20 -0
  12. data/lib/no_response/models/operations/rotatewebhooksigningkey_response.rb +32 -0
  13. data/lib/no_response/models/operations/rotatewebhooksigningkey_response.rbi +20 -0
  14. data/lib/no_response/models/operations/sendwebhooktestevent_request.rb +33 -0
  15. data/lib/no_response/models/operations/sendwebhooktestevent_request.rbi +20 -0
  16. data/lib/no_response/models/operations/sendwebhooktestevent_response.rb +32 -0
  17. data/lib/no_response/models/operations/sendwebhooktestevent_response.rbi +20 -0
  18. data/lib/no_response/models/operations.rb +8 -0
  19. data/lib/no_response/models/shared/assessmentquery.rb +1 -1
  20. data/lib/no_response/models/shared/assessmentrequest.rb +1 -1
  21. data/lib/no_response/models/shared/badrequesterrorcode.rb +1 -0
  22. data/lib/no_response/models/shared/conflicterrorcode.rb +2 -0
  23. data/lib/no_response/models/shared/responsemode.rb +4 -1
  24. data/lib/no_response/models/shared/signingkey.rb +49 -0
  25. data/lib/no_response/models/shared/signingkey.rbi +26 -0
  26. data/lib/no_response/models/shared/signingsecret.rb +49 -0
  27. data/lib/no_response/models/shared/signingsecret.rbi +26 -0
  28. data/lib/no_response/models/shared/webhookendpoint.rb +100 -0
  29. data/lib/no_response/models/shared/webhookendpoint.rbi +50 -0
  30. data/lib/no_response/models/shared/webhookendpointcreated.rb +41 -0
  31. data/lib/no_response/models/shared/webhookendpointcreated.rbi +20 -0
  32. data/lib/no_response/models/shared/webhookendpointlist.rb +32 -0
  33. data/lib/no_response/models/shared/webhookendpointlist.rbi +14 -0
  34. data/lib/no_response/models/shared/webhookendpointrequest.rb +42 -0
  35. data/lib/no_response/models/shared/webhookendpointrequest.rbi +20 -0
  36. data/lib/no_response/models/shared/webhookendpointstate.rb +20 -0
  37. data/lib/no_response/models/shared/webhookendpointstate.rbi +9 -0
  38. data/lib/no_response/models/shared/webhookkeyrotation.rb +65 -0
  39. data/lib/no_response/models/shared/webhookkeyrotation.rbi +32 -0
  40. data/lib/no_response/models/shared/webhookkeyrotationrequest.rb +23 -0
  41. data/lib/no_response/models/shared/webhookkeyrotationrequest.rbi +9 -0
  42. data/lib/no_response/models/shared/webhooktest.rb +86 -0
  43. data/lib/no_response/models/shared/webhooktest.rbi +38 -0
  44. data/lib/no_response/models/shared/webhooktestrequest.rb +39 -0
  45. data/lib/no_response/models/shared/webhooktestrequest.rbi +14 -0
  46. data/lib/no_response/models/shared/webhooktestrequestevent.rb +19 -0
  47. data/lib/no_response/models/shared/webhooktestrequestevent.rbi +9 -0
  48. data/lib/no_response/models/shared.rb +12 -0
  49. data/lib/no_response/noresponseclient.rb +2 -1
  50. data/lib/no_response/sdkconfiguration.rb +2 -2
  51. data/lib/no_response/webhookendpoints.rb +1444 -0
  52. data/lib/noresponse.rb +1 -0
  53. metadata +42 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d12b22a25042bbac27f9dd3f5378d961f4d16dd7ed687e34ca0fced5c77f8a14
4
- data.tar.gz: ebfe7ead85cc207aba3126f8bda6ef73c5dbb1a4759d164046cf82a8c3362232
3
+ metadata.gz: b943969974c1baa6424c9a385a9197719df01f57f2b901df3737e601ccd85bd8
4
+ data.tar.gz: 5c6e129ac29f9ab0a2bdd3a6ec3bd19b2e25c67973f60ead05f30a1c15e2a463
5
5
  SHA512:
6
- metadata.gz: abe25bc8316302a81d67538be64b0e665c7374840d38b551e1bb570c24f73638ecf5055b84d6efec201dc8ae663dcf4671fbe2ecd35d41dde8bee562ee566b27
7
- data.tar.gz: d59dfe3f0300c31fd31ee8f9e69867fb13a1ef26543a997ec3102cc1d883d345f58a36db18c508fd98d5afa8a6d115ad716931e05b477995a43feef14a8f6fe5
6
+ metadata.gz: 9271c0b0010bd1c14933def2ba875a5f9f033ddfca6daa77f6699157d6ca881668f5a79ed2798780eedea552837d717ea8d8f7b87b246f62d7e57e4992e9a5ea
7
+ data.tar.gz: dbc5b7a75472be7c169fbdca7d3b17fbcbfbbc8e926a3b25800e61c757e8d0d5a245c62dc7c71528ba0f164f15adbd9d1041a8b829ba6d524a06eb6f91966b33
@@ -0,0 +1,34 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Operations
7
+
8
+ class CreateWebhookEndpointResponse
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ field :headers, Crystalline::Hash.new(Symbol, Crystalline::Array.new(::String))
13
+
14
+ field :result, Models::Shared::WebhookEndpointCreated, {}
15
+
16
+ sig {
17
+ params(headers: T::Hash[Symbol, T::Array[::String]], result: Models::Shared::WebhookEndpointCreated).void
18
+ }
19
+ def initialize(headers:, result:)
20
+ @headers = headers
21
+ @result = result
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 @headers == other.headers
28
+ return false unless @result == other.result
29
+ true
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,20 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Operations::CreateWebhookEndpointResponse
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Operations::CreateWebhookEndpointResponse
9
+ def headers
10
+ end
11
+
12
+ def headers=(str_)
13
+ end
14
+
15
+ def result
16
+ end
17
+
18
+ def result=(str_)
19
+ end
20
+ end
@@ -0,0 +1,29 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Operations
7
+
8
+ class DeleteWebhookEndpointRequest
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ # The endpoint's whe_ id. An id that is unknown, malformed or another tenant's answers 404.
13
+ field :endpoint_id, ::String, {'path_param': {'field_name': "endpoint_id", 'style': "simple", 'explode': false}}
14
+
15
+ sig { params(endpoint_id: ::String).void }
16
+ def initialize(endpoint_id:)
17
+ @endpoint_id = endpoint_id
18
+ end
19
+
20
+ sig { params(other: T.untyped).returns(T::Boolean) }
21
+ def ==(other)
22
+ return false unless other.is_a?(self.class)
23
+ return false unless @endpoint_id == other.endpoint_id
24
+ true
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,14 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Operations::DeleteWebhookEndpointRequest
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Operations::DeleteWebhookEndpointRequest
9
+ def endpoint_id
10
+ end
11
+
12
+ def endpoint_id=(str_)
13
+ end
14
+ end
@@ -0,0 +1,28 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Operations
7
+
8
+ class DeleteWebhookEndpointResponse
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ field :headers, Crystalline::Hash.new(Symbol, Crystalline::Array.new(::String))
13
+
14
+ sig { params(headers: T::Hash[Symbol, T::Array[::String]]).void }
15
+ def initialize(headers:)
16
+ @headers = headers
17
+ end
18
+
19
+ sig { params(other: T.untyped).returns(T::Boolean) }
20
+ def ==(other)
21
+ return false unless other.is_a?(self.class)
22
+ return false unless @headers == other.headers
23
+ true
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,14 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Operations::DeleteWebhookEndpointResponse
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Operations::DeleteWebhookEndpointResponse
9
+ def headers
10
+ end
11
+
12
+ def headers=(str_)
13
+ end
14
+ end
@@ -0,0 +1,32 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Operations
7
+
8
+ class ListWebhookEndpointsResponse
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ field :headers, Crystalline::Hash.new(Symbol, Crystalline::Array.new(::String))
13
+
14
+ field :result, Models::Shared::WebhookEndpointList, {}
15
+
16
+ sig { params(headers: T::Hash[Symbol, T::Array[::String]], result: Models::Shared::WebhookEndpointList).void }
17
+ def initialize(headers:, result:)
18
+ @headers = headers
19
+ @result = result
20
+ end
21
+
22
+ sig { params(other: T.untyped).returns(T::Boolean) }
23
+ def ==(other)
24
+ return false unless other.is_a?(self.class)
25
+ return false unless @headers == other.headers
26
+ return false unless @result == other.result
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,20 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Operations::ListWebhookEndpointsResponse
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Operations::ListWebhookEndpointsResponse
9
+ def headers
10
+ end
11
+
12
+ def headers=(str_)
13
+ end
14
+
15
+ def result
16
+ end
17
+
18
+ def result=(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 Operations
7
+
8
+ class RotateWebhookSigningKeyRequest
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ # The endpoint's whe_ id. An id that is unknown, malformed or another tenant's answers 404.
13
+ field :endpoint_id, ::String, {'path_param': {'field_name': "endpoint_id", 'style': "simple", 'explode': false}}
14
+
15
+ field :body, Models::Shared::WebhookKeyRotationRequest, {'request': {'media_type': "application/json"}}
16
+
17
+ sig { params(endpoint_id: ::String, body: Models::Shared::WebhookKeyRotationRequest).void }
18
+ def initialize(endpoint_id:, body:)
19
+ @endpoint_id = endpoint_id
20
+ @body = body
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a?(self.class)
26
+ return false unless @endpoint_id == other.endpoint_id
27
+ return false unless @body == other.body
28
+ true
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,20 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Operations::RotateWebhookSigningKeyRequest
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Operations::RotateWebhookSigningKeyRequest
9
+ def endpoint_id
10
+ end
11
+
12
+ def endpoint_id=(str_)
13
+ end
14
+
15
+ def body
16
+ end
17
+
18
+ def body=(str_)
19
+ end
20
+ end
@@ -0,0 +1,32 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Operations
7
+
8
+ class RotateWebhookSigningKeyResponse
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ field :headers, Crystalline::Hash.new(Symbol, Crystalline::Array.new(::String))
13
+
14
+ field :result, Models::Shared::WebhookKeyRotation, {}
15
+
16
+ sig { params(headers: T::Hash[Symbol, T::Array[::String]], result: Models::Shared::WebhookKeyRotation).void }
17
+ def initialize(headers:, result:)
18
+ @headers = headers
19
+ @result = result
20
+ end
21
+
22
+ sig { params(other: T.untyped).returns(T::Boolean) }
23
+ def ==(other)
24
+ return false unless other.is_a?(self.class)
25
+ return false unless @headers == other.headers
26
+ return false unless @result == other.result
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,20 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Operations::RotateWebhookSigningKeyResponse
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Operations::RotateWebhookSigningKeyResponse
9
+ def headers
10
+ end
11
+
12
+ def headers=(str_)
13
+ end
14
+
15
+ def result
16
+ end
17
+
18
+ def result=(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 Operations
7
+
8
+ class SendWebhookTestEventRequest
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ # The endpoint's whe_ id. An id that is unknown, malformed or another tenant's answers 404.
13
+ field :endpoint_id, ::String, {'path_param': {'field_name': "endpoint_id", 'style': "simple", 'explode': false}}
14
+
15
+ field :body, Models::Shared::WebhookTestRequest, {'request': {'media_type': "application/json"}}
16
+
17
+ sig { params(endpoint_id: ::String, body: Models::Shared::WebhookTestRequest).void }
18
+ def initialize(endpoint_id:, body:)
19
+ @endpoint_id = endpoint_id
20
+ @body = body
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a?(self.class)
26
+ return false unless @endpoint_id == other.endpoint_id
27
+ return false unless @body == other.body
28
+ true
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,20 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Operations::SendWebhookTestEventRequest
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Operations::SendWebhookTestEventRequest
9
+ def endpoint_id
10
+ end
11
+
12
+ def endpoint_id=(str_)
13
+ end
14
+
15
+ def body
16
+ end
17
+
18
+ def body=(str_)
19
+ end
20
+ end
@@ -0,0 +1,32 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Operations
7
+
8
+ class SendWebhookTestEventResponse
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ field :headers, Crystalline::Hash.new(Symbol, Crystalline::Array.new(::String))
13
+
14
+ field :result, Models::Shared::WebhookTest, {}
15
+
16
+ sig { params(headers: T::Hash[Symbol, T::Array[::String]], result: Models::Shared::WebhookTest).void }
17
+ def initialize(headers:, result:)
18
+ @headers = headers
19
+ @result = result
20
+ end
21
+
22
+ sig { params(other: T.untyped).returns(T::Boolean) }
23
+ def ==(other)
24
+ return false unless other.is_a?(self.class)
25
+ return false unless @headers == other.headers
26
+ return false unless @result == other.result
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,20 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Operations::SendWebhookTestEventResponse
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Operations::SendWebhookTestEventResponse
9
+ def headers
10
+ end
11
+
12
+ def headers=(str_)
13
+ end
14
+
15
+ def result
16
+ end
17
+
18
+ def result=(str_)
19
+ end
20
+ end
@@ -7,17 +7,25 @@ module NoResponse
7
7
  autoload :CreateAssessmentRequest, "no_response/models/operations/createassessment_request.rb"
8
8
  autoload :CreateAssessmentResponse, "no_response/models/operations/createassessment_response.rb"
9
9
  autoload :CreateIntegrationResponse, "no_response/models/operations/createintegration_response.rb"
10
+ autoload :CreateWebhookEndpointResponse, "no_response/models/operations/createwebhookendpoint_response.rb"
10
11
  autoload :DeleteIntegrationRequest, "no_response/models/operations/deleteintegration_request.rb"
11
12
  autoload :DeleteIntegrationResponse, "no_response/models/operations/deleteintegration_response.rb"
13
+ autoload :DeleteWebhookEndpointRequest, "no_response/models/operations/deletewebhookendpoint_request.rb"
14
+ autoload :DeleteWebhookEndpointResponse, "no_response/models/operations/deletewebhookendpoint_response.rb"
12
15
  autoload :GetAssessmentRequest, "no_response/models/operations/getassessment_request.rb"
13
16
  autoload :GetAssessmentResponse, "no_response/models/operations/getassessment_response.rb"
14
17
  autoload :ListIntegrationsResponse, "no_response/models/operations/listintegrations_response.rb"
18
+ autoload :ListWebhookEndpointsResponse, "no_response/models/operations/listwebhookendpoints_response.rb"
15
19
  autoload :QueryAccountAssessmentsResponse, "no_response/models/operations/queryaccountassessments_response.rb"
16
20
  autoload :RecordAssessmentOutcomeRequest, "no_response/models/operations/recordassessmentoutcome_request.rb"
17
21
  autoload :RecordAssessmentOutcomeResponse, "no_response/models/operations/recordassessmentoutcome_response.rb"
18
22
  autoload :RotateApiKeyResponse, "no_response/models/operations/rotateapikey_response.rb"
19
23
  autoload :RotateIntegrationSecretRequest, "no_response/models/operations/rotateintegrationsecret_request.rb"
20
24
  autoload :RotateIntegrationSecretResponse, "no_response/models/operations/rotateintegrationsecret_response.rb"
25
+ autoload :RotateWebhookSigningKeyRequest, "no_response/models/operations/rotatewebhooksigningkey_request.rb"
26
+ autoload :RotateWebhookSigningKeyResponse, "no_response/models/operations/rotatewebhooksigningkey_response.rb"
27
+ autoload :SendWebhookTestEventRequest, "no_response/models/operations/sendwebhooktestevent_request.rb"
28
+ autoload :SendWebhookTestEventResponse, "no_response/models/operations/sendwebhooktestevent_response.rb"
21
29
  end
22
30
  end
23
31
  end
@@ -28,7 +28,7 @@ module NoResponse
28
28
  {
29
29
  'format_json': {
30
30
  'letter_case': ::NoResponse::Utils.field_name("response_mode"),
31
- 'decoder': ::NoResponse::Utils.enum_from_string(Models::Shared::ResponseMode, true)
31
+ 'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::ResponseMode, true)
32
32
  }
33
33
  }
34
34
  )
@@ -46,7 +46,7 @@ module NoResponse
46
46
  {
47
47
  'format_json': {
48
48
  'letter_case': ::NoResponse::Utils.field_name("response_mode"),
49
- 'decoder': ::NoResponse::Utils.enum_from_string(Models::Shared::ResponseMode, true)
49
+ 'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::ResponseMode, true)
50
50
  }
51
51
  }
52
52
  )
@@ -11,6 +11,7 @@ module NoResponse
11
11
  INVALID_REQUEST = new("invalid_request")
12
12
  INVALID_IDEMPOTENCY_KEY = new("invalid_idempotency_key")
13
13
  INVALID_CURSOR = new("invalid_cursor")
14
+ WEBHOOK_URL_REFUSED = new("webhook_url_refused")
14
15
  end
15
16
 
16
17
  open!
@@ -10,6 +10,8 @@ module NoResponse
10
10
  enums do
11
11
  IDEMPOTENCY_KEY_REUSED = new("idempotency_key_reused")
12
12
  KEY_ROTATION_IN_PROGRESS = new("key_rotation_in_progress")
13
+ WEBHOOK_ENDPOINT_LIMIT_REACHED = new("webhook_endpoint_limit_reached")
14
+ WEBHOOK_ENDPOINT_UNVERIFIED = new("webhook_endpoint_unverified")
13
15
  TOO_MANY_INTEGRATIONS = new("too_many_integrations")
14
16
  end
15
17
 
@@ -5,11 +5,14 @@ module NoResponse
5
5
  module Models
6
6
  module Shared
7
7
  # ResponseMode - standard returns the consolidated risk response; detailed adds merged provider-neutral facts when the key has detailed scope. There is no raw mode.
8
- class ResponseMode < T::Enum
8
+ class ResponseMode
9
+ include ::Crystalline::Enum
9
10
  enums do
10
11
  STANDARD = new("standard")
11
12
  DETAILED = new("detailed")
12
13
  end
14
+
15
+ open!
13
16
  end
14
17
  end
15
18
  end
@@ -0,0 +1,49 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+ # One signing key, by id. The secret is not included.
8
+ class SigningKey
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ # The signing key id, sent as NR-Webhook-Key-Id on every delivery it signs.
13
+ field(
14
+ :key_id,
15
+ ::String,
16
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("key_id"), required: true}}
17
+ )
18
+
19
+ field(
20
+ :created_at,
21
+ ::String,
22
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("created_at"), required: true}}
23
+ )
24
+ # Present on a key a rotation replaced: it stops verifying at this instant, 7 days after the rotation. Absent on the key that signs.
25
+ field(
26
+ :expires_at,
27
+ Crystalline::Nilable.new(::String),
28
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("expires_at")}}
29
+ )
30
+
31
+ sig { params(key_id: ::String, created_at: ::String, expires_at: T.nilable(::String)).void }
32
+ def initialize(key_id:, created_at:, expires_at: nil)
33
+ @key_id = key_id
34
+ @created_at = created_at
35
+ @expires_at = expires_at
36
+ end
37
+
38
+ sig { params(other: T.untyped).returns(T::Boolean) }
39
+ def ==(other)
40
+ return false unless other.is_a?(self.class)
41
+ return false unless @key_id == other.key_id
42
+ return false unless @created_at == other.created_at
43
+ return false unless @expires_at == other.expires_at
44
+ true
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,26 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::SigningKey
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::SigningKey
9
+ def key_id
10
+ end
11
+
12
+ def key_id=(str_)
13
+ end
14
+
15
+ def created_at
16
+ end
17
+
18
+ def created_at=(str_)
19
+ end
20
+
21
+ def expires_at
22
+ end
23
+
24
+ def expires_at=(str_)
25
+ end
26
+ end
@@ -0,0 +1,49 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+ # A newly issued signing key with its secret, shown only in this answer. A receiver verifies NR-Webhook-Signature with the secret's UTF-8 bytes as the HMAC-SHA256 key.
8
+ class SigningSecret
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ # The signing key id, sent as NR-Webhook-Key-Id on every delivery it signs.
13
+ field(
14
+ :key_id,
15
+ ::String,
16
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("key_id"), required: true}}
17
+ )
18
+ # The signing secret: 32 random bytes as 43 characters of unpadded base64url. It is not stored in readable form or returned again.
19
+ field(
20
+ :secret,
21
+ ::String,
22
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("secret"), required: true}}
23
+ )
24
+
25
+ field(
26
+ :created_at,
27
+ ::String,
28
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("created_at"), required: true}}
29
+ )
30
+
31
+ sig { params(key_id: ::String, secret: ::String, created_at: ::String).void }
32
+ def initialize(key_id:, secret:, created_at:)
33
+ @key_id = key_id
34
+ @secret = secret
35
+ @created_at = created_at
36
+ end
37
+
38
+ sig { params(other: T.untyped).returns(T::Boolean) }
39
+ def ==(other)
40
+ return false unless other.is_a?(self.class)
41
+ return false unless @key_id == other.key_id
42
+ return false unless @secret == other.secret
43
+ return false unless @created_at == other.created_at
44
+ true
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,26 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::SigningSecret
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::SigningSecret
9
+ def key_id
10
+ end
11
+
12
+ def key_id=(str_)
13
+ end
14
+
15
+ def secret
16
+ end
17
+
18
+ def secret=(str_)
19
+ end
20
+
21
+ def created_at
22
+ end
23
+
24
+ def created_at=(str_)
25
+ end
26
+ end