noresponse 2.1.7 → 2.1.9

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 (29) hide show
  1. checksums.yaml +4 -4
  2. data/lib/no_response/models/operations/listwebhookdeliveries_request.rb +45 -0
  3. data/lib/no_response/models/operations/listwebhookdeliveries_request.rbi +26 -0
  4. data/lib/no_response/models/operations/listwebhookdeliveries_response.rb +44 -0
  5. data/lib/no_response/models/operations/listwebhookdeliveries_response.rbi +20 -0
  6. data/lib/no_response/models/operations/replaywebhookdelivery_request.rb +37 -0
  7. data/lib/no_response/models/operations/replaywebhookdelivery_request.rbi +26 -0
  8. data/lib/no_response/models/operations/replaywebhookdelivery_response.rb +32 -0
  9. data/lib/no_response/models/operations/replaywebhookdelivery_response.rbi +20 -0
  10. data/lib/no_response/models/operations.rb +4 -0
  11. data/lib/no_response/models/shared/eventtype.rb +18 -0
  12. data/lib/no_response/models/shared/eventtype.rbi +9 -0
  13. data/lib/no_response/models/shared/failure.rb +24 -0
  14. data/lib/no_response/models/shared/failure.rbi +9 -0
  15. data/lib/no_response/models/shared/webhookdeliveryattempt.rb +137 -0
  16. data/lib/no_response/models/shared/webhookdeliveryattempt.rbi +62 -0
  17. data/lib/no_response/models/shared/webhookdeliveryattemptstatus.rb +19 -0
  18. data/lib/no_response/models/shared/webhookdeliveryattemptstatus.rbi +9 -0
  19. data/lib/no_response/models/shared/webhookdeliverylist.rb +56 -0
  20. data/lib/no_response/models/shared/webhookdeliverylist.rbi +26 -0
  21. data/lib/no_response/models/shared/webhookreplay.rb +55 -0
  22. data/lib/no_response/models/shared/webhookreplay.rbi +26 -0
  23. data/lib/no_response/models/shared/webhookreplayrequest.rb +23 -0
  24. data/lib/no_response/models/shared/webhookreplayrequest.rbi +9 -0
  25. data/lib/no_response/models/shared.rb +7 -0
  26. data/lib/no_response/sdkconfiguration.rb +2 -2
  27. data/lib/no_response/wait.rb +25 -6
  28. data/lib/no_response/webhookendpoints.rb +605 -0
  29. metadata +23 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c3b774acc4c65d4c0cdbf521440b8244b8dbbe7a3ba1bbdf353ea3ebedc1c3e9
4
- data.tar.gz: ee7627e2a9ad3cd53e6298144633a1752700579ac3367fe1b771d215d179f488
3
+ metadata.gz: 7295cfba1804dbd242c6e281b99ab6ade40e297c7377e0686a81a1e916bc460c
4
+ data.tar.gz: 18c1ffd8eb31d511e3d91cb36358eeaeaf0b801cbf55e714a1ad7ee66cac2768
5
5
  SHA512:
6
- metadata.gz: 352b23c23f11d7988c49c34bd649fe53372cfd11b90cd208c4635c2dc818d029b6d148d556164ae3e3e59b94743d006b6559a5cba798d4ebea921ccb6730d987
7
- data.tar.gz: 545f42a0eed95f2fe04dea28b62891b7eb5fc8045441b20d2c3119925e3bcd81ca32d8a4f0ee63645d2f84420f8bf2d8863ee88ef705e7915b93c1d6f0a84087
6
+ metadata.gz: 24ae1d8d916a9113c3e94bb4e77fa61c2ce7c878a6c08ba631df4a75bb3575c9a4769ce44bf74020e223b5fc15e0b4d8721d41b450720234195a3c9ff47d50b5
7
+ data.tar.gz: 87bc61f9f9e3abdb7bfa757a60654ced341dd1a09ffdb5311f5a16f9489cead2823961a535f26691571f3446fff582c6293d25730fbb96b14b0278303cedb4d0
@@ -0,0 +1,45 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Operations
7
+
8
+ class ListWebhookDeliveriesRequest
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
+ # next_cursor from the previous page, unchanged.
15
+ field(
16
+ :cursor,
17
+ Crystalline::Nilable.new(::String),
18
+ {'query_param': {'field_name': "cursor", 'style': "form", 'explode': true}}
19
+ )
20
+ # Attempts per page.
21
+ field(
22
+ :limit,
23
+ Crystalline::Nilable.new(::Integer),
24
+ {'query_param': {'field_name': "limit", 'style': "form", 'explode': true}}
25
+ )
26
+
27
+ sig { params(endpoint_id: ::String, cursor: T.nilable(::String), limit: T.nilable(::Integer)).void }
28
+ def initialize(endpoint_id:, cursor: nil, limit: 20)
29
+ @endpoint_id = endpoint_id
30
+ @cursor = cursor
31
+ @limit = limit
32
+ end
33
+
34
+ sig { params(other: T.untyped).returns(T::Boolean) }
35
+ def ==(other)
36
+ return false unless other.is_a?(self.class)
37
+ return false unless @endpoint_id == other.endpoint_id
38
+ return false unless @cursor == other.cursor
39
+ return false unless @limit == other.limit
40
+ true
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,26 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Operations::ListWebhookDeliveriesRequest
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Operations::ListWebhookDeliveriesRequest
9
+ def endpoint_id
10
+ end
11
+
12
+ def endpoint_id=(str_)
13
+ end
14
+
15
+ def cursor
16
+ end
17
+
18
+ def cursor=(str_)
19
+ end
20
+
21
+ def limit
22
+ end
23
+
24
+ def limit=(str_)
25
+ end
26
+ end
@@ -0,0 +1,44 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Operations
7
+
8
+ class ListWebhookDeliveriesResponse
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+ sig { returns(T.proc.returns(T.nilable(ListWebhookDeliveriesResponse))) }
12
+ attr_accessor :next_page
13
+
14
+ field :headers, Crystalline::Hash.new(Symbol, Crystalline::Array.new(::String))
15
+
16
+ field :result, Models::Shared::WebhookDeliveryList, {}
17
+
18
+ sig { params(headers: T::Hash[Symbol, T::Array[::String]], result: Models::Shared::WebhookDeliveryList).void }
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
+
32
+ def each
33
+ page = self
34
+ loop do
35
+ yield page
36
+ next_page = page.next_page.call if page.next_page
37
+ break if next_page.nil?
38
+ page = T.must(next_page)
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,20 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Operations::ListWebhookDeliveriesResponse
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Operations::ListWebhookDeliveriesResponse
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,37 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Operations
7
+
8
+ class ReplayWebhookDeliveryRequest
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
+ # The evt_ id of a delivery the endpoint's log holds, as GET /v1/webhooks/{endpoint_id}/deliveries lists it. An id that is malformed, not sent to this endpoint, past the log's retention or another tenant's answers 404.
15
+ field :event_id, ::String, {'path_param': {'field_name': "event_id", 'style': "simple", 'explode': false}}
16
+
17
+ field :body, Models::Shared::WebhookReplayRequest, {'request': {'media_type': "application/json"}}
18
+
19
+ sig { params(endpoint_id: ::String, event_id: ::String, body: Models::Shared::WebhookReplayRequest).void }
20
+ def initialize(endpoint_id:, event_id:, body:)
21
+ @endpoint_id = endpoint_id
22
+ @event_id = event_id
23
+ @body = body
24
+ end
25
+
26
+ sig { params(other: T.untyped).returns(T::Boolean) }
27
+ def ==(other)
28
+ return false unless other.is_a?(self.class)
29
+ return false unless @endpoint_id == other.endpoint_id
30
+ return false unless @event_id == other.event_id
31
+ return false unless @body == other.body
32
+ true
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,26 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Operations::ReplayWebhookDeliveryRequest
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Operations::ReplayWebhookDeliveryRequest
9
+ def endpoint_id
10
+ end
11
+
12
+ def endpoint_id=(str_)
13
+ end
14
+
15
+ def event_id
16
+ end
17
+
18
+ def event_id=(str_)
19
+ end
20
+
21
+ def body
22
+ end
23
+
24
+ def body=(str_)
25
+ end
26
+ 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 ReplayWebhookDeliveryResponse
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::WebhookReplay, {}
15
+
16
+ sig { params(headers: T::Hash[Symbol, T::Array[::String]], result: Models::Shared::WebhookReplay).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::ReplayWebhookDeliveryResponse
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Operations::ReplayWebhookDeliveryResponse
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
@@ -19,10 +19,14 @@ module NoResponse
19
19
  autoload :ListAccountAssessmentsRequest, "no_response/models/operations/listaccountassessments_request.rb"
20
20
  autoload :ListAccountAssessmentsResponse, "no_response/models/operations/listaccountassessments_response.rb"
21
21
  autoload :ListIntegrationsResponse, "no_response/models/operations/listintegrations_response.rb"
22
+ autoload :ListWebhookDeliveriesRequest, "no_response/models/operations/listwebhookdeliveries_request.rb"
23
+ autoload :ListWebhookDeliveriesResponse, "no_response/models/operations/listwebhookdeliveries_response.rb"
22
24
  autoload :ListWebhookEndpointsResponse, "no_response/models/operations/listwebhookendpoints_response.rb"
23
25
  autoload :QueryAccountAssessmentsResponse, "no_response/models/operations/queryaccountassessments_response.rb"
24
26
  autoload :RecordAssessmentOutcomeRequest, "no_response/models/operations/recordassessmentoutcome_request.rb"
25
27
  autoload :RecordAssessmentOutcomeResponse, "no_response/models/operations/recordassessmentoutcome_response.rb"
28
+ autoload :ReplayWebhookDeliveryRequest, "no_response/models/operations/replaywebhookdelivery_request.rb"
29
+ autoload :ReplayWebhookDeliveryResponse, "no_response/models/operations/replaywebhookdelivery_response.rb"
26
30
  autoload :RotateApiKeyResponse, "no_response/models/operations/rotateapikey_response.rb"
27
31
  autoload :RotateIntegrationSecretRequest, "no_response/models/operations/rotateintegrationsecret_request.rb"
28
32
  autoload :RotateIntegrationSecretResponse, "no_response/models/operations/rotateintegrationsecret_response.rb"
@@ -0,0 +1,18 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+
8
+ class EventType
9
+ include ::Crystalline::Enum
10
+ enums do
11
+ ASSESSMENT_UPDATED = new("assessment.updated")
12
+ end
13
+
14
+ open!
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::EventType
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::EventType
9
+ end
@@ -0,0 +1,24 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+ # Failure - Why the attempt failed: the URL is no longer valid, the host did not resolve, it resolved to an address that is not public, no answer within 5 seconds, the connection failed, a 3xx (redirects are not followed) or another non-2xx status. Absent for a delivered attempt.
8
+ class Failure
9
+ include ::Crystalline::Enum
10
+ enums do
11
+ INVALID_URL = new("invalid_url")
12
+ RESOLVE_FAILED = new("resolve_failed")
13
+ ADDRESS_REFUSED = new("address_refused")
14
+ TIMEOUT = new("timeout")
15
+ CONNECTION_FAILED = new("connection_failed")
16
+ REDIRECT = new("redirect")
17
+ NON_2XX = new("non_2xx")
18
+ end
19
+
20
+ open!
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::Failure
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::Failure
9
+ end
@@ -0,0 +1,137 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+
8
+ class WebhookDeliveryAttempt
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ # The event id the receiver saw as NR-Webhook-Id and as the body's id. Replay it with POST /v1/webhooks/{endpoint_id}/deliveries/{event_id}/replay.
13
+ field(
14
+ :event_id,
15
+ ::String,
16
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("event_id"), required: true}}
17
+ )
18
+
19
+ field(
20
+ :event_type,
21
+ Models::Shared::EventType,
22
+ {
23
+ 'format_json': {
24
+ 'letter_case': ::NoResponse::Utils.field_name("event_type"),
25
+ required: true,
26
+ 'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::EventType, false)
27
+ }
28
+ }
29
+ )
30
+ # Which attempt of this delivery this was: 1 for the first send, up to 9 with retries. A replay counts its own attempts from 1.
31
+ field(
32
+ :attempt,
33
+ ::Integer,
34
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("attempt"), required: true}}
35
+ )
36
+ # true for an attempt of a replay you asked for.
37
+ field(
38
+ :replay,
39
+ Crystalline::Boolean.new,
40
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("replay"), required: true}}
41
+ )
42
+ # delivered when the endpoint answered 2xx; failed otherwise, with failure naming why.
43
+ field(
44
+ :status,
45
+ Models::Shared::WebhookDeliveryAttemptStatus,
46
+ {
47
+ 'format_json': {
48
+ 'letter_case': ::NoResponse::Utils.field_name("status"),
49
+ required: true,
50
+ 'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::WebhookDeliveryAttemptStatus, false)
51
+ }
52
+ }
53
+ )
54
+ # Milliseconds from sending the request to the answer or the failure.
55
+ field(
56
+ :latency_ms,
57
+ ::Integer,
58
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("latency_ms"), required: true}}
59
+ )
60
+ # When the request was sent. Its NR-Webhook-Timestamp is this time in Unix seconds.
61
+ field(
62
+ :attempted_at,
63
+ ::String,
64
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("attempted_at"), required: true}}
65
+ )
66
+ # The HTTP status the endpoint answered. Absent when no response was read.
67
+ field(
68
+ :response_code,
69
+ Crystalline::Nilable.new(::Integer),
70
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("response_code")}}
71
+ )
72
+ # Why the attempt failed: the URL is no longer valid, the host did not resolve, it resolved to an address that is not public, no answer within 5 seconds, the connection failed, a 3xx (redirects are not followed) or another non-2xx status. Absent for a delivered attempt.
73
+ field(
74
+ :failure,
75
+ Crystalline::Nilable.new(Models::Shared::Failure),
76
+ {
77
+ 'format_json': {
78
+ 'letter_case': ::NoResponse::Utils.field_name("failure"),
79
+ 'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::Failure, true)
80
+ }
81
+ }
82
+ )
83
+
84
+ sig {
85
+ params(
86
+ event_id: ::String,
87
+ event_type: Models::Shared::EventType,
88
+ attempt: ::Integer,
89
+ replay: T::Boolean,
90
+ status: Models::Shared::WebhookDeliveryAttemptStatus,
91
+ latency_ms: ::Integer,
92
+ attempted_at: ::String,
93
+ response_code: T.nilable(::Integer),
94
+ failure: T.nilable(Models::Shared::Failure)
95
+ )
96
+ .void
97
+ }
98
+ def initialize(
99
+ event_id:,
100
+ event_type:,
101
+ attempt:,
102
+ replay:,
103
+ status:,
104
+ latency_ms:,
105
+ attempted_at:,
106
+ response_code: nil,
107
+ failure: nil
108
+ )
109
+ @event_id = event_id
110
+ @event_type = event_type
111
+ @attempt = attempt
112
+ @replay = replay
113
+ @status = status
114
+ @latency_ms = latency_ms
115
+ @attempted_at = attempted_at
116
+ @response_code = response_code
117
+ @failure = failure
118
+ end
119
+
120
+ sig { params(other: T.untyped).returns(T::Boolean) }
121
+ def ==(other)
122
+ return false unless other.is_a?(self.class)
123
+ return false unless @event_id == other.event_id
124
+ return false unless @event_type == other.event_type
125
+ return false unless @attempt == other.attempt
126
+ return false unless @replay == other.replay
127
+ return false unless @status == other.status
128
+ return false unless @latency_ms == other.latency_ms
129
+ return false unless @attempted_at == other.attempted_at
130
+ return false unless @response_code == other.response_code
131
+ return false unless @failure == other.failure
132
+ true
133
+ end
134
+ end
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,62 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::WebhookDeliveryAttempt
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::WebhookDeliveryAttempt
9
+ def event_id
10
+ end
11
+
12
+ def event_id=(str_)
13
+ end
14
+
15
+ def event_type
16
+ end
17
+
18
+ def event_type=(str_)
19
+ end
20
+
21
+ def attempt
22
+ end
23
+
24
+ def attempt=(str_)
25
+ end
26
+
27
+ def replay
28
+ end
29
+
30
+ def replay=(str_)
31
+ end
32
+
33
+ def status
34
+ end
35
+
36
+ def status=(str_)
37
+ end
38
+
39
+ def latency_ms
40
+ end
41
+
42
+ def latency_ms=(str_)
43
+ end
44
+
45
+ def attempted_at
46
+ end
47
+
48
+ def attempted_at=(str_)
49
+ end
50
+
51
+ def response_code
52
+ end
53
+
54
+ def response_code=(str_)
55
+ end
56
+
57
+ def failure
58
+ end
59
+
60
+ def failure=(str_)
61
+ end
62
+ end
@@ -0,0 +1,19 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+ # WebhookDeliveryAttemptStatus - delivered when the endpoint answered 2xx; failed otherwise, with failure naming why.
8
+ class WebhookDeliveryAttemptStatus
9
+ include ::Crystalline::Enum
10
+ enums do
11
+ DELIVERED = new("delivered")
12
+ FAILED = new("failed")
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::WebhookDeliveryAttemptStatus
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::WebhookDeliveryAttemptStatus
9
+ end
@@ -0,0 +1,56 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+ # The 200 answer of GET /v1/webhooks/{endpoint_id}/deliveries: one page of the endpoint's delivery attempts, newest first. Each item is one POST to the endpoint. Attempts are kept for 30 days, or the tenant's retention_days when that is shorter, and are deleted with the assessment they carried. next_cursor is present only when another page exists.
8
+ class WebhookDeliveryList
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ # Opaque id of the endpoint registration.
13
+ field(
14
+ :endpoint_id,
15
+ ::String,
16
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("endpoint_id"), required: true}}
17
+ )
18
+
19
+ field(
20
+ :items,
21
+ Crystalline::Array.new(Models::Shared::WebhookDeliveryAttempt),
22
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("items"), required: true}}
23
+ )
24
+ # Opaque cursor for the next page, MAC'd by the server and bound to the tenant and endpoint it was issued for. Pass it back unchanged as cursor; a tampered, foreign or expired cursor answers 400 invalid_cursor.
25
+ field(
26
+ :next_cursor,
27
+ Crystalline::Nilable.new(::String),
28
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("next_cursor")}}
29
+ )
30
+
31
+ sig {
32
+ params(
33
+ endpoint_id: ::String,
34
+ items: T::Array[Models::Shared::WebhookDeliveryAttempt],
35
+ next_cursor: T.nilable(::String)
36
+ )
37
+ .void
38
+ }
39
+ def initialize(endpoint_id:, items:, next_cursor: nil)
40
+ @endpoint_id = endpoint_id
41
+ @items = items
42
+ @next_cursor = next_cursor
43
+ end
44
+
45
+ sig { params(other: T.untyped).returns(T::Boolean) }
46
+ def ==(other)
47
+ return false unless other.is_a?(self.class)
48
+ return false unless @endpoint_id == other.endpoint_id
49
+ return false unless @items == other.items
50
+ return false unless @next_cursor == other.next_cursor
51
+ true
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,26 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::WebhookDeliveryList
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::WebhookDeliveryList
9
+ def endpoint_id
10
+ end
11
+
12
+ def endpoint_id=(str_)
13
+ end
14
+
15
+ def items
16
+ end
17
+
18
+ def items=(str_)
19
+ end
20
+
21
+ def next_cursor
22
+ end
23
+
24
+ def next_cursor=(str_)
25
+ end
26
+ end