openai 0.90.0 → 0.92.0
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/CHANGELOG.md +31 -0
- data/README.md +1 -1
- data/examples/realtime/README.md +8 -0
- data/examples/realtime/browser/README.md +167 -0
- data/examples/realtime/browser/index.html +19 -0
- data/examples/realtime/browser/page.js +21 -0
- data/examples/realtime/browser/peer.js +180 -0
- data/examples/realtime/browser/server.rb +281 -0
- data/examples/responses/websocket_workflows.rb +66 -6
- data/lib/openai/auth/workload_identity.rb +5 -1
- data/lib/openai/auth/workload_identity_auth.rb +2 -2
- data/lib/openai/auth/x509_token_exchange.rb +1 -1
- data/lib/openai/helpers/local_audio/process.rb +1 -1
- data/lib/openai/helpers/responses_websocket/connection.rb +2 -1
- data/lib/openai/helpers/responses_websocket/session.rb +551 -0
- data/lib/openai/helpers/responses_websocket.rb +1 -0
- data/lib/openai/helpers/sorbet.rb +1 -1
- data/lib/openai/helpers/websocket/async_websocket_transport.rb +6 -1
- data/lib/openai/internal/poller.rb +2 -2
- data/lib/openai/internal/transport/base_client.rb +1 -1
- data/lib/openai/internal/util.rb +1 -1
- data/lib/openai/models/beta/agents/session_update_params.rb +108 -1
- data/lib/openai/models/beta/beta_response.rb +9 -3
- data/lib/openai/models/beta/beta_response_compaction_compacting_event.rb +75 -0
- data/lib/openai/models/beta/beta_response_stream_event.rb +4 -1
- data/lib/openai/models/beta/beta_responses_client_event.rb +25 -4
- data/lib/openai/models/beta/beta_responses_server_event.rb +39 -1
- data/lib/openai/models/beta/beta_tool.rb +16 -0
- data/lib/openai/models/beta/response_compact_params.rb +9 -3
- data/lib/openai/models/beta/response_create_params.rb +21 -4
- data/lib/openai/models/beta/session_turn_error.rb +3 -0
- data/lib/openai/models/chat_model.rb +3 -1
- data/lib/openai/models/realtime/realtime_response_create_mcp_tool.rb +16 -0
- data/lib/openai/models/realtime/realtime_session_create_response.rb +16 -0
- data/lib/openai/models/realtime/realtime_tools_config_union.rb +16 -0
- data/lib/openai/models/responses/response_compact_params.rb +9 -3
- data/lib/openai/models/responses/response_compaction_compacting_event.rb +49 -0
- data/lib/openai/models/responses/response_create_params.rb +12 -1
- data/lib/openai/models/responses/response_stream_event.rb +4 -1
- data/lib/openai/models/responses/responses_client_event.rb +12 -1
- data/lib/openai/models/responses/responses_server_event.rb +36 -1
- data/lib/openai/models/responses/tool.rb +16 -0
- data/lib/openai/models/webhooks/deleted_webhook_endpoint.rb +38 -0
- data/lib/openai/models/webhooks/event_type_list_params.rb +16 -0
- data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +6 -8
- data/lib/openai/models/webhooks/webhook_create_params.rb +73 -0
- data/lib/openai/models/webhooks/webhook_delete_params.rb +22 -0
- data/lib/openai/models/webhooks/webhook_endpoint.rb +85 -0
- data/lib/openai/models/webhooks/webhook_endpoint_list.rb +55 -0
- data/lib/openai/models/webhooks/webhook_endpoint_test_result.rb +58 -0
- data/lib/openai/models/webhooks/webhook_endpoint_with_secret.rb +105 -0
- data/lib/openai/models/webhooks/webhook_event_type_list.rb +28 -0
- data/lib/openai/models/webhooks/webhook_list_params.rb +34 -0
- data/lib/openai/models/webhooks/webhook_retrieve_params.rb +22 -0
- data/lib/openai/models/webhooks/webhook_rotate_secret_params.rb +34 -0
- data/lib/openai/models/webhooks/webhook_test_params.rb +59 -0
- data/lib/openai/models/webhooks/webhook_update_params.rb +80 -0
- data/lib/openai/resources/beta/agents/sessions.rb +6 -2
- data/lib/openai/resources/beta/responses.rb +2 -2
- data/lib/openai/resources/responses.rb +2 -2
- data/lib/openai/resources/webhooks/event_types.rb +35 -0
- data/lib/openai/resources/webhooks.rb +195 -0
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +17 -0
- data/rbi/openai/helpers/responses_websocket/connection.rbi +5 -0
- data/rbi/openai/helpers/responses_websocket/session.rbi +206 -0
- data/rbi/openai/models/beta/agents/session_update_params.rbi +178 -0
- data/rbi/openai/models/beta/beta_response.rbi +6 -1
- data/rbi/openai/models/beta/beta_response_compaction_compacting_event.rbi +136 -0
- data/rbi/openai/models/beta/beta_response_stream_event.rbi +1 -0
- data/rbi/openai/models/beta/beta_responses_client_event.rbi +27 -4
- data/rbi/openai/models/beta/beta_responses_server_event.rbi +77 -0
- data/rbi/openai/models/beta/beta_tool.rbi +12 -0
- data/rbi/openai/models/beta/response_compact_params.rbi +6 -1
- data/rbi/openai/models/beta/response_create_params.rbi +21 -1
- data/rbi/openai/models/beta/session_turn_error.rbi +6 -0
- data/rbi/openai/models/chat_model.rbi +3 -1
- data/rbi/openai/models/realtime/realtime_response_create_mcp_tool.rbi +12 -0
- data/rbi/openai/models/realtime/realtime_session_create_response.rbi +12 -0
- data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +12 -0
- data/rbi/openai/models/responses/response_compact_params.rbi +6 -1
- data/rbi/openai/models/responses/response_compaction_compacting_event.rbi +78 -0
- data/rbi/openai/models/responses/response_create_params.rbi +15 -0
- data/rbi/openai/models/responses/response_stream_event.rbi +1 -0
- data/rbi/openai/models/responses/responses_client_event.rbi +15 -0
- data/rbi/openai/models/responses/responses_server_event.rbi +71 -0
- data/rbi/openai/models/responses/tool.rbi +12 -0
- data/rbi/openai/models/webhooks/deleted_webhook_endpoint.rbi +67 -0
- data/rbi/openai/models/webhooks/event_type_list_params.rbi +37 -0
- data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +6 -8
- data/rbi/openai/models/webhooks/webhook_create_params.rbi +139 -0
- data/rbi/openai/models/webhooks/webhook_delete_params.rbi +53 -0
- data/rbi/openai/models/webhooks/webhook_endpoint.rbi +126 -0
- data/rbi/openai/models/webhooks/webhook_endpoint_list.rbi +91 -0
- data/rbi/openai/models/webhooks/webhook_endpoint_test_result.rbi +87 -0
- data/rbi/openai/models/webhooks/webhook_endpoint_with_secret.rbi +138 -0
- data/rbi/openai/models/webhooks/webhook_event_type_list.rbi +58 -0
- data/rbi/openai/models/webhooks/webhook_list_params.rbi +67 -0
- data/rbi/openai/models/webhooks/webhook_retrieve_params.rbi +53 -0
- data/rbi/openai/models/webhooks/webhook_rotate_secret_params.rbi +71 -0
- data/rbi/openai/models/webhooks/webhook_test_params.rbi +124 -0
- data/rbi/openai/models/webhooks/webhook_update_params.rbi +156 -0
- data/rbi/openai/resources/beta/agents/sessions.rbi +5 -1
- data/rbi/openai/resources/webhooks/event_types.rbi +24 -0
- data/rbi/openai/resources/webhooks.rbi +126 -0
- data/responses-websocket.md +117 -10
- data/sig/openai/helpers/responses_websocket/connection.rbs +5 -0
- data/sig/openai/helpers/responses_websocket/session.rbs +123 -0
- data/sig/openai/models/beta/agents/session_update_params.rbs +99 -0
- data/sig/openai/models/beta/beta_response.rbs +6 -2
- data/sig/openai/models/beta/beta_response_compaction_compacting_event.rbs +58 -0
- data/sig/openai/models/beta/beta_response_stream_event.rbs +1 -0
- data/sig/openai/models/beta/beta_responses_client_event.rbs +13 -2
- data/sig/openai/models/beta/beta_responses_server_event.rbs +35 -0
- data/sig/openai/models/beta/response_compact_params.rbs +6 -2
- data/sig/openai/models/beta/response_create_params.rbs +13 -2
- data/sig/openai/models/beta/session_turn_error.rbs +4 -0
- data/sig/openai/models/chat_model.rbs +6 -2
- data/sig/openai/models/responses/response_compact_params.rbs +6 -2
- data/sig/openai/models/responses/response_compaction_compacting_event.rbs +37 -0
- data/sig/openai/models/responses/response_create_params.rbs +7 -0
- data/sig/openai/models/responses/response_stream_event.rbs +1 -0
- data/sig/openai/models/responses/responses_client_event.rbs +7 -0
- data/sig/openai/models/responses/responses_server_event.rbs +32 -0
- data/sig/openai/models/webhooks/deleted_webhook_endpoint.rbs +28 -0
- data/sig/openai/models/webhooks/event_type_list_params.rbs +16 -0
- data/sig/openai/models/webhooks/webhook_create_params.rbs +83 -0
- data/sig/openai/models/webhooks/webhook_delete_params.rbs +25 -0
- data/sig/openai/models/webhooks/webhook_endpoint.rbs +59 -0
- data/sig/openai/models/webhooks/webhook_endpoint_list.rbs +42 -0
- data/sig/openai/models/webhooks/webhook_endpoint_test_result.rbs +42 -0
- data/sig/openai/models/webhooks/webhook_endpoint_with_secret.rbs +64 -0
- data/sig/openai/models/webhooks/webhook_event_type_list.rbs +17 -0
- data/sig/openai/models/webhooks/webhook_list_params.rbs +35 -0
- data/sig/openai/models/webhooks/webhook_retrieve_params.rbs +25 -0
- data/sig/openai/models/webhooks/webhook_rotate_secret_params.rbs +35 -0
- data/sig/openai/models/webhooks/webhook_test_params.rbs +78 -0
- data/sig/openai/models/webhooks/webhook_update_params.rbs +96 -0
- data/sig/openai/resources/beta/agents/sessions.rbs +1 -0
- data/sig/openai/resources/webhooks/event_types.rbs +13 -0
- data/sig/openai/resources/webhooks.rbs +45 -0
- metadata +61 -2
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Webhooks
|
|
7
|
+
|
|
8
|
+
class WebhookListParams < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
|
|
10
|
+
extend OpenAI::Internal::Type::RequestParameters::Converter
|
|
11
|
+
include OpenAI::Internal::Type::RequestParameters
|
|
12
|
+
|
|
13
|
+
OrHash = T.type_alias do
|
|
14
|
+
T.any(
|
|
15
|
+
OpenAI::Webhooks::WebhookListParams,
|
|
16
|
+
OpenAI::Internal::AnyHash
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# ID of the last webhook endpoint from the previous page.
|
|
21
|
+
sig { returns(T.nilable(String)) }
|
|
22
|
+
attr_accessor :after
|
|
23
|
+
|
|
24
|
+
# Maximum number of webhook endpoints to return. Defaults to 20.
|
|
25
|
+
sig { returns(T.nilable(Integer)) }
|
|
26
|
+
attr_reader :limit
|
|
27
|
+
|
|
28
|
+
sig { params(limit: Integer).void }
|
|
29
|
+
attr_writer :limit
|
|
30
|
+
|
|
31
|
+
sig do
|
|
32
|
+
params(
|
|
33
|
+
|
|
34
|
+
after: T.nilable(String),
|
|
35
|
+
|
|
36
|
+
limit: Integer,
|
|
37
|
+
|
|
38
|
+
request_options: OpenAI::RequestOptions::OrHash
|
|
39
|
+
)
|
|
40
|
+
.returns(T.attached_class)
|
|
41
|
+
end
|
|
42
|
+
def self.new(
|
|
43
|
+
|
|
44
|
+
# ID of the last webhook endpoint from the previous page.
|
|
45
|
+
after: nil,
|
|
46
|
+
|
|
47
|
+
# Maximum number of webhook endpoints to return. Defaults to 20.
|
|
48
|
+
limit: nil,
|
|
49
|
+
|
|
50
|
+
request_options: {}
|
|
51
|
+
)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
sig do
|
|
55
|
+
override.returns(
|
|
56
|
+
{after: T.nilable(String), limit: Integer, request_options: OpenAI::RequestOptions}
|
|
57
|
+
)
|
|
58
|
+
end
|
|
59
|
+
def to_hash
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Webhooks
|
|
7
|
+
|
|
8
|
+
class WebhookRetrieveParams < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
|
|
10
|
+
extend OpenAI::Internal::Type::RequestParameters::Converter
|
|
11
|
+
include OpenAI::Internal::Type::RequestParameters
|
|
12
|
+
|
|
13
|
+
OrHash = T.type_alias do
|
|
14
|
+
T.any(
|
|
15
|
+
OpenAI::Webhooks::WebhookRetrieveParams,
|
|
16
|
+
OpenAI::Internal::AnyHash
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
sig { returns(String) }
|
|
21
|
+
attr_accessor :webhook_endpoint_id
|
|
22
|
+
|
|
23
|
+
sig do
|
|
24
|
+
params(
|
|
25
|
+
|
|
26
|
+
webhook_endpoint_id: String,
|
|
27
|
+
|
|
28
|
+
request_options: OpenAI::RequestOptions::OrHash
|
|
29
|
+
)
|
|
30
|
+
.returns(T.attached_class)
|
|
31
|
+
end
|
|
32
|
+
def self.new(
|
|
33
|
+
|
|
34
|
+
webhook_endpoint_id:,
|
|
35
|
+
|
|
36
|
+
request_options: {}
|
|
37
|
+
)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
sig do
|
|
41
|
+
override.returns(
|
|
42
|
+
{webhook_endpoint_id: String, request_options: OpenAI::RequestOptions}
|
|
43
|
+
)
|
|
44
|
+
end
|
|
45
|
+
def to_hash
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Webhooks
|
|
7
|
+
|
|
8
|
+
class WebhookRotateSecretParams < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
|
|
10
|
+
extend OpenAI::Internal::Type::RequestParameters::Converter
|
|
11
|
+
include OpenAI::Internal::Type::RequestParameters
|
|
12
|
+
|
|
13
|
+
OrHash = T.type_alias do
|
|
14
|
+
T.any(
|
|
15
|
+
OpenAI::Webhooks::WebhookRotateSecretParams,
|
|
16
|
+
OpenAI::Internal::AnyHash
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
sig { returns(String) }
|
|
21
|
+
attr_accessor :webhook_endpoint_id
|
|
22
|
+
|
|
23
|
+
# Whether to keep the previous signing secret valid for 24 hours after rotation.
|
|
24
|
+
# Defaults to false, which invalidates the previous secret immediately.
|
|
25
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
26
|
+
attr_reader :keep_old_secret_active_for_24_hours
|
|
27
|
+
|
|
28
|
+
sig { params(keep_old_secret_active_for_24_hours: T::Boolean).void }
|
|
29
|
+
attr_writer :keep_old_secret_active_for_24_hours
|
|
30
|
+
|
|
31
|
+
sig do
|
|
32
|
+
params(
|
|
33
|
+
|
|
34
|
+
webhook_endpoint_id: String,
|
|
35
|
+
|
|
36
|
+
keep_old_secret_active_for_24_hours: T::Boolean,
|
|
37
|
+
|
|
38
|
+
request_options: OpenAI::RequestOptions::OrHash
|
|
39
|
+
)
|
|
40
|
+
.returns(T.attached_class)
|
|
41
|
+
end
|
|
42
|
+
def self.new(
|
|
43
|
+
|
|
44
|
+
webhook_endpoint_id:,
|
|
45
|
+
|
|
46
|
+
# Whether to keep the previous signing secret valid for 24 hours after rotation.
|
|
47
|
+
# Defaults to false, which invalidates the previous secret immediately.
|
|
48
|
+
keep_old_secret_active_for_24_hours: nil,
|
|
49
|
+
|
|
50
|
+
request_options: {}
|
|
51
|
+
)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
sig do
|
|
55
|
+
override.returns(
|
|
56
|
+
{
|
|
57
|
+
webhook_endpoint_id: String,
|
|
58
|
+
keep_old_secret_active_for_24_hours: T::Boolean,
|
|
59
|
+
request_options: OpenAI::RequestOptions
|
|
60
|
+
}
|
|
61
|
+
)
|
|
62
|
+
end
|
|
63
|
+
def to_hash
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Webhooks
|
|
7
|
+
|
|
8
|
+
class WebhookTestParams < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
|
|
10
|
+
extend OpenAI::Internal::Type::RequestParameters::Converter
|
|
11
|
+
include OpenAI::Internal::Type::RequestParameters
|
|
12
|
+
|
|
13
|
+
OrHash = T.type_alias do
|
|
14
|
+
T.any(
|
|
15
|
+
OpenAI::Webhooks::WebhookTestParams,
|
|
16
|
+
OpenAI::Internal::AnyHash
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
sig { returns(String) }
|
|
21
|
+
attr_accessor :webhook_endpoint_id
|
|
22
|
+
|
|
23
|
+
# The event type to send as a sample delivery.
|
|
24
|
+
sig { returns(OpenAI::Webhooks::WebhookTestParams::EventType::OrSymbol) }
|
|
25
|
+
attr_accessor :event_type
|
|
26
|
+
|
|
27
|
+
sig do
|
|
28
|
+
params(
|
|
29
|
+
|
|
30
|
+
webhook_endpoint_id: String,
|
|
31
|
+
|
|
32
|
+
event_type: OpenAI::Webhooks::WebhookTestParams::EventType::OrSymbol,
|
|
33
|
+
|
|
34
|
+
request_options: OpenAI::RequestOptions::OrHash
|
|
35
|
+
)
|
|
36
|
+
.returns(T.attached_class)
|
|
37
|
+
end
|
|
38
|
+
def self.new(
|
|
39
|
+
|
|
40
|
+
webhook_endpoint_id:,
|
|
41
|
+
|
|
42
|
+
# The event type to send as a sample delivery.
|
|
43
|
+
event_type:,
|
|
44
|
+
|
|
45
|
+
request_options: {}
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
sig do
|
|
50
|
+
override.returns(
|
|
51
|
+
{
|
|
52
|
+
webhook_endpoint_id: String,
|
|
53
|
+
event_type: OpenAI::Webhooks::WebhookTestParams::EventType::OrSymbol,
|
|
54
|
+
request_options: OpenAI::RequestOptions
|
|
55
|
+
}
|
|
56
|
+
)
|
|
57
|
+
end
|
|
58
|
+
def to_hash
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# The event type to send as a sample delivery.
|
|
62
|
+
module EventType
|
|
63
|
+
extend OpenAI::Internal::Type::Enum
|
|
64
|
+
|
|
65
|
+
TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Webhooks::WebhookTestParams::EventType) }
|
|
66
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
67
|
+
|
|
68
|
+
BATCH_COMPLETED = T.let(:"batch.completed", OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol)
|
|
69
|
+
BATCH_FAILED = T.let(:"batch.failed", OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol)
|
|
70
|
+
BATCH_EXPIRED = T.let(:"batch.expired", OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol)
|
|
71
|
+
BATCH_CANCELLED = T.let(:"batch.cancelled", OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol)
|
|
72
|
+
RESPONSE_COMPLETED = T.let(
|
|
73
|
+
:"response.completed",
|
|
74
|
+
OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol
|
|
75
|
+
)
|
|
76
|
+
RESPONSE_FAILED = T.let(:"response.failed", OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol)
|
|
77
|
+
RESPONSE_CANCELLED = T.let(
|
|
78
|
+
:"response.cancelled",
|
|
79
|
+
OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol
|
|
80
|
+
)
|
|
81
|
+
RESPONSE_INCOMPLETE = T.let(
|
|
82
|
+
:"response.incomplete",
|
|
83
|
+
OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol
|
|
84
|
+
)
|
|
85
|
+
EVAL_RUN_SUCCEEDED = T.let(
|
|
86
|
+
:"eval.run.succeeded",
|
|
87
|
+
OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol
|
|
88
|
+
)
|
|
89
|
+
EVAL_RUN_FAILED = T.let(:"eval.run.failed", OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol)
|
|
90
|
+
EVAL_RUN_CANCELED = T.let(:"eval.run.canceled", OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol)
|
|
91
|
+
FINE_TUNING_JOB_SUCCEEDED = T.let(
|
|
92
|
+
:"fine_tuning.job.succeeded",
|
|
93
|
+
OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol
|
|
94
|
+
)
|
|
95
|
+
FINE_TUNING_JOB_FAILED = T.let(
|
|
96
|
+
:"fine_tuning.job.failed",
|
|
97
|
+
OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol
|
|
98
|
+
)
|
|
99
|
+
FINE_TUNING_JOB_CANCELLED = T.let(
|
|
100
|
+
:"fine_tuning.job.cancelled",
|
|
101
|
+
OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol
|
|
102
|
+
)
|
|
103
|
+
REALTIME_CALL_INCOMING = T.let(
|
|
104
|
+
:"realtime.call.incoming",
|
|
105
|
+
OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol
|
|
106
|
+
)
|
|
107
|
+
VIDEO_COMPLETED = T.let(:"video.completed", OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol)
|
|
108
|
+
VIDEO_FAILED = T.let(:"video.failed", OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol)
|
|
109
|
+
SAFETY_ALERT_CREATED = T.let(
|
|
110
|
+
:"safety.alert.created",
|
|
111
|
+
OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
sig { override.returns(T::Array[OpenAI::Webhooks::WebhookTestParams::EventType::TaggedSymbol]) }
|
|
115
|
+
def self.values
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
end
|
|
124
|
+
end
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Webhooks
|
|
7
|
+
|
|
8
|
+
class WebhookUpdateParams < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
|
|
10
|
+
extend OpenAI::Internal::Type::RequestParameters::Converter
|
|
11
|
+
include OpenAI::Internal::Type::RequestParameters
|
|
12
|
+
|
|
13
|
+
OrHash = T.type_alias do
|
|
14
|
+
T.any(
|
|
15
|
+
OpenAI::Webhooks::WebhookUpdateParams,
|
|
16
|
+
OpenAI::Internal::AnyHash
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
sig { returns(String) }
|
|
21
|
+
attr_accessor :webhook_endpoint_id
|
|
22
|
+
|
|
23
|
+
# The complete set of event types that should trigger deliveries.
|
|
24
|
+
sig { returns(T.nilable(T::Array[OpenAI::Webhooks::WebhookUpdateParams::EventType::OrSymbol])) }
|
|
25
|
+
attr_reader :event_types
|
|
26
|
+
|
|
27
|
+
sig { params(event_types: T::Array[OpenAI::Webhooks::WebhookUpdateParams::EventType::OrSymbol]).void }
|
|
28
|
+
attr_writer :event_types
|
|
29
|
+
|
|
30
|
+
# A new human-readable name for the webhook endpoint.
|
|
31
|
+
sig { returns(T.nilable(String)) }
|
|
32
|
+
attr_reader :name
|
|
33
|
+
|
|
34
|
+
sig { params(name: String).void }
|
|
35
|
+
attr_writer :name
|
|
36
|
+
|
|
37
|
+
# A new HTTPS URL that receives webhook deliveries.
|
|
38
|
+
sig { returns(T.nilable(String)) }
|
|
39
|
+
attr_reader :url
|
|
40
|
+
|
|
41
|
+
sig { params(url: String).void }
|
|
42
|
+
attr_writer :url
|
|
43
|
+
|
|
44
|
+
sig do
|
|
45
|
+
params(
|
|
46
|
+
|
|
47
|
+
webhook_endpoint_id: String,
|
|
48
|
+
|
|
49
|
+
event_types: T::Array[OpenAI::Webhooks::WebhookUpdateParams::EventType::OrSymbol],
|
|
50
|
+
|
|
51
|
+
name: String,
|
|
52
|
+
|
|
53
|
+
url: String,
|
|
54
|
+
|
|
55
|
+
request_options: OpenAI::RequestOptions::OrHash
|
|
56
|
+
)
|
|
57
|
+
.returns(T.attached_class)
|
|
58
|
+
end
|
|
59
|
+
def self.new(
|
|
60
|
+
|
|
61
|
+
webhook_endpoint_id:,
|
|
62
|
+
|
|
63
|
+
# The complete set of event types that should trigger deliveries.
|
|
64
|
+
event_types: nil,
|
|
65
|
+
|
|
66
|
+
# A new human-readable name for the webhook endpoint.
|
|
67
|
+
name: nil,
|
|
68
|
+
|
|
69
|
+
# A new HTTPS URL that receives webhook deliveries.
|
|
70
|
+
url: nil,
|
|
71
|
+
|
|
72
|
+
request_options: {}
|
|
73
|
+
)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
sig do
|
|
77
|
+
override.returns(
|
|
78
|
+
{
|
|
79
|
+
webhook_endpoint_id: String,
|
|
80
|
+
event_types: T::Array[OpenAI::Webhooks::WebhookUpdateParams::EventType::OrSymbol],
|
|
81
|
+
name: String,
|
|
82
|
+
url: String,
|
|
83
|
+
request_options: OpenAI::RequestOptions
|
|
84
|
+
}
|
|
85
|
+
)
|
|
86
|
+
end
|
|
87
|
+
def to_hash
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# The event type to send as a sample delivery.
|
|
91
|
+
module EventType
|
|
92
|
+
extend OpenAI::Internal::Type::Enum
|
|
93
|
+
|
|
94
|
+
TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Webhooks::WebhookUpdateParams::EventType) }
|
|
95
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
96
|
+
|
|
97
|
+
BATCH_COMPLETED = T.let(:"batch.completed", OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol)
|
|
98
|
+
BATCH_FAILED = T.let(:"batch.failed", OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol)
|
|
99
|
+
BATCH_EXPIRED = T.let(:"batch.expired", OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol)
|
|
100
|
+
BATCH_CANCELLED = T.let(:"batch.cancelled", OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol)
|
|
101
|
+
RESPONSE_COMPLETED = T.let(
|
|
102
|
+
:"response.completed",
|
|
103
|
+
OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol
|
|
104
|
+
)
|
|
105
|
+
RESPONSE_FAILED = T.let(:"response.failed", OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol)
|
|
106
|
+
RESPONSE_CANCELLED = T.let(
|
|
107
|
+
:"response.cancelled",
|
|
108
|
+
OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol
|
|
109
|
+
)
|
|
110
|
+
RESPONSE_INCOMPLETE = T.let(
|
|
111
|
+
:"response.incomplete",
|
|
112
|
+
OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol
|
|
113
|
+
)
|
|
114
|
+
EVAL_RUN_SUCCEEDED = T.let(
|
|
115
|
+
:"eval.run.succeeded",
|
|
116
|
+
OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol
|
|
117
|
+
)
|
|
118
|
+
EVAL_RUN_FAILED = T.let(:"eval.run.failed", OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol)
|
|
119
|
+
EVAL_RUN_CANCELED = T.let(
|
|
120
|
+
:"eval.run.canceled",
|
|
121
|
+
OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol
|
|
122
|
+
)
|
|
123
|
+
FINE_TUNING_JOB_SUCCEEDED = T.let(
|
|
124
|
+
:"fine_tuning.job.succeeded",
|
|
125
|
+
OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol
|
|
126
|
+
)
|
|
127
|
+
FINE_TUNING_JOB_FAILED = T.let(
|
|
128
|
+
:"fine_tuning.job.failed",
|
|
129
|
+
OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol
|
|
130
|
+
)
|
|
131
|
+
FINE_TUNING_JOB_CANCELLED = T.let(
|
|
132
|
+
:"fine_tuning.job.cancelled",
|
|
133
|
+
OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol
|
|
134
|
+
)
|
|
135
|
+
REALTIME_CALL_INCOMING = T.let(
|
|
136
|
+
:"realtime.call.incoming",
|
|
137
|
+
OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol
|
|
138
|
+
)
|
|
139
|
+
VIDEO_COMPLETED = T.let(:"video.completed", OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol)
|
|
140
|
+
VIDEO_FAILED = T.let(:"video.failed", OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol)
|
|
141
|
+
SAFETY_ALERT_CREATED = T.let(
|
|
142
|
+
:"safety.alert.created",
|
|
143
|
+
OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
sig { override.returns(T::Array[OpenAI::Webhooks::WebhookUpdateParams::EventType::TaggedSymbol]) }
|
|
147
|
+
def self.values
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
end
|
|
156
|
+
end
|
|
@@ -130,11 +130,13 @@ module OpenAI
|
|
|
130
130
|
)
|
|
131
131
|
end
|
|
132
132
|
|
|
133
|
-
# Updates session metadata
|
|
133
|
+
# Updates session metadata, model, reasoning effort, or service tier. Model
|
|
134
|
+
# settings apply to subsequent turns. Omitted fields are unchanged. See
|
|
134
135
|
# [managing sessions](https://developers.openai.com/api/docs/guides/agents-api/sessions/manage).
|
|
135
136
|
sig {
|
|
136
137
|
params(
|
|
137
138
|
session_id: String,
|
|
139
|
+
agent: OpenAI::Beta::Agents::SessionUpdateParams::Agent::OrHash,
|
|
138
140
|
metadata: T.nilable(T::Hash[Symbol, String]),
|
|
139
141
|
request_options: OpenAI::RequestOptions::OrHash
|
|
140
142
|
)
|
|
@@ -143,6 +145,8 @@ module OpenAI
|
|
|
143
145
|
def update(
|
|
144
146
|
# The ID of the session.
|
|
145
147
|
session_id,
|
|
148
|
+
# Model settings for subsequent turns. Omitted fields stay unchanged.
|
|
149
|
+
agent: nil,
|
|
146
150
|
# Replaces all metadata. Omit to leave unchanged, or pass null or {} to clear it.
|
|
147
151
|
# Up to 16 string key-value pairs, with keys up to 64 and values up to 512
|
|
148
152
|
# characters.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Resources
|
|
5
|
+
|
|
6
|
+
class Webhooks
|
|
7
|
+
|
|
8
|
+
class EventTypes
|
|
9
|
+
|
|
10
|
+
# Returns webhook event types visible to the authenticated project.
|
|
11
|
+
sig { params(request_options: OpenAI::RequestOptions::OrHash).returns(OpenAI::Webhooks::WebhookEventTypeList) }
|
|
12
|
+
def list(request_options: {})
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# @api private
|
|
16
|
+
sig { params(client: OpenAI::Client).returns(T.attached_class) }
|
|
17
|
+
def self.new(client:)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -5,6 +5,132 @@ module OpenAI
|
|
|
5
5
|
|
|
6
6
|
class Webhooks
|
|
7
7
|
|
|
8
|
+
sig { returns(OpenAI::Resources::Webhooks::EventTypes) }
|
|
9
|
+
attr_reader :event_types
|
|
10
|
+
|
|
11
|
+
# Creates a webhook endpoint for the authenticated project.
|
|
12
|
+
sig {
|
|
13
|
+
params(
|
|
14
|
+
event_types: T::Array[OpenAI::Webhooks::WebhookCreateParams::EventType::OrSymbol],
|
|
15
|
+
name: String,
|
|
16
|
+
url: String,
|
|
17
|
+
request_options: OpenAI::RequestOptions::OrHash
|
|
18
|
+
)
|
|
19
|
+
.returns(OpenAI::Webhooks::WebhookEndpointWithSecret)
|
|
20
|
+
}
|
|
21
|
+
def create(
|
|
22
|
+
# The event types that trigger deliveries to this endpoint.
|
|
23
|
+
event_types:,
|
|
24
|
+
# A human-readable name for the webhook endpoint.
|
|
25
|
+
name:,
|
|
26
|
+
# The HTTPS URL that receives webhook deliveries.
|
|
27
|
+
url:,
|
|
28
|
+
request_options: {}
|
|
29
|
+
)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Retrieves a webhook endpoint for the authenticated project.
|
|
33
|
+
sig {
|
|
34
|
+
params(webhook_endpoint_id: String, request_options: OpenAI::RequestOptions::OrHash).returns(
|
|
35
|
+
OpenAI::Webhooks::WebhookEndpoint
|
|
36
|
+
)
|
|
37
|
+
}
|
|
38
|
+
def retrieve(
|
|
39
|
+
# The ID of the webhook endpoint to retrieve.
|
|
40
|
+
webhook_endpoint_id,
|
|
41
|
+
request_options: {}
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Updates a webhook endpoint for the authenticated project.
|
|
46
|
+
sig {
|
|
47
|
+
params(
|
|
48
|
+
webhook_endpoint_id: String,
|
|
49
|
+
event_types: T::Array[OpenAI::Webhooks::WebhookUpdateParams::EventType::OrSymbol],
|
|
50
|
+
name: String,
|
|
51
|
+
url: String,
|
|
52
|
+
request_options: OpenAI::RequestOptions::OrHash
|
|
53
|
+
)
|
|
54
|
+
.returns(OpenAI::Webhooks::WebhookEndpoint)
|
|
55
|
+
}
|
|
56
|
+
def update(
|
|
57
|
+
# The ID of the webhook endpoint to update.
|
|
58
|
+
webhook_endpoint_id,
|
|
59
|
+
# The complete set of event types that should trigger deliveries.
|
|
60
|
+
event_types: nil,
|
|
61
|
+
# A new human-readable name for the webhook endpoint.
|
|
62
|
+
name: nil,
|
|
63
|
+
# A new HTTPS URL that receives webhook deliveries.
|
|
64
|
+
url: nil,
|
|
65
|
+
request_options: {}
|
|
66
|
+
)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Returns webhook endpoints for the authenticated project in newest-first order.
|
|
70
|
+
sig {
|
|
71
|
+
params(after: T.nilable(String), limit: Integer, request_options: OpenAI::RequestOptions::OrHash).returns(
|
|
72
|
+
OpenAI::Internal::CursorPage[OpenAI::Webhooks::WebhookEndpoint]
|
|
73
|
+
)
|
|
74
|
+
}
|
|
75
|
+
def list(
|
|
76
|
+
# ID of the last webhook endpoint from the previous page.
|
|
77
|
+
after: nil,
|
|
78
|
+
# Maximum number of webhook endpoints to return. Defaults to 20.
|
|
79
|
+
limit: nil,
|
|
80
|
+
request_options: {}
|
|
81
|
+
)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# Deletes a webhook endpoint for the authenticated project.
|
|
85
|
+
sig {
|
|
86
|
+
params(webhook_endpoint_id: String, request_options: OpenAI::RequestOptions::OrHash).returns(
|
|
87
|
+
OpenAI::Webhooks::DeletedWebhookEndpoint
|
|
88
|
+
)
|
|
89
|
+
}
|
|
90
|
+
def delete(
|
|
91
|
+
# The ID of the webhook endpoint to delete.
|
|
92
|
+
webhook_endpoint_id,
|
|
93
|
+
request_options: {}
|
|
94
|
+
)
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Rotates the signing secret for a webhook endpoint in the authenticated project.
|
|
98
|
+
sig {
|
|
99
|
+
params(
|
|
100
|
+
webhook_endpoint_id: String,
|
|
101
|
+
keep_old_secret_active_for_24_hours: T::Boolean,
|
|
102
|
+
request_options: OpenAI::RequestOptions::OrHash
|
|
103
|
+
)
|
|
104
|
+
.returns(OpenAI::Webhooks::WebhookEndpointWithSecret)
|
|
105
|
+
}
|
|
106
|
+
def rotate_secret(
|
|
107
|
+
# The ID of the webhook endpoint whose signing secret will be rotated.
|
|
108
|
+
webhook_endpoint_id,
|
|
109
|
+
# Whether to keep the previous signing secret valid for 24 hours after rotation.
|
|
110
|
+
# Defaults to false, which invalidates the previous secret immediately.
|
|
111
|
+
keep_old_secret_active_for_24_hours: nil,
|
|
112
|
+
request_options: {}
|
|
113
|
+
)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# Sends a sample event to a webhook endpoint for the authenticated project.
|
|
117
|
+
sig {
|
|
118
|
+
params(
|
|
119
|
+
webhook_endpoint_id: String,
|
|
120
|
+
event_type: OpenAI::Webhooks::WebhookTestParams::EventType::OrSymbol,
|
|
121
|
+
request_options: OpenAI::RequestOptions::OrHash
|
|
122
|
+
)
|
|
123
|
+
.returns(OpenAI::Webhooks::WebhookEndpointTestResult)
|
|
124
|
+
}
|
|
125
|
+
def test_(
|
|
126
|
+
# The ID of the webhook endpoint to test.
|
|
127
|
+
webhook_endpoint_id,
|
|
128
|
+
# The event type to send as a sample delivery.
|
|
129
|
+
event_type:,
|
|
130
|
+
request_options: {}
|
|
131
|
+
)
|
|
132
|
+
end
|
|
133
|
+
|
|
8
134
|
# Validates that the given payload was sent by OpenAI and parses the payload.
|
|
9
135
|
sig {
|
|
10
136
|
params(
|