openai 0.109.0 → 0.110.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 54cd64155cb1af2bb57a7c61bc15355979a7c0d9e50951ce7e893911fcfe473b
4
- data.tar.gz: 29101b3385b4be69545f1bd5516c90329c34d1e6f0bf303f28b5ea379b36fde8
3
+ metadata.gz: 31d71682626485e6fb27ecd72cd1d35bb2a3eb279e37b59e1e372345227a1c99
4
+ data.tar.gz: bc386aa30fb3e76d27e51eaa4892d668c55d1a91491b6d2477d06943308a5040
5
5
  SHA512:
6
- metadata.gz: b3d15cf0ee35ec3f58df82ea2f7249b62e63c02c1ee5351d0d6e95f50d1929c707a458225ee71e8568f816149a7c8346788286b22ba9ec38faeb42d3e511746c
7
- data.tar.gz: b0e8720cecf2f4f600f7ac05226a8cbbba2eae974a81e0312b9d8ac88bef0bc7e4883a591ec2ac0fa2e9b30de13a79607a23b4a904f03f945fc10a79bb4a3913
6
+ metadata.gz: 8004eea7d6c06815daea855a26cca2160fea55de5034030b3faf2cb93e5ac2bcd3545c0528b8aaa5a541521d844756401e6b09e9f6ef41247cd0a7890ebd7328
7
+ data.tar.gz: cfdbe5bb232b0272a269e8179f74333f94296bb8fafc251a425536567910c3b3230a946d5e59162cc5e15ab99c28f74f29a9deaeda53363193b935231349f68b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.110.0](https://github.com/openai/openai-ruby/compare/v0.109.0...v0.110.0) (2026-10-22)
4
+
5
+
6
+ ### Features
7
+
8
+ * **api:** add voice deletion ([#954](https://github.com/openai/openai-ruby/issues/954)) ([a6257f2](https://github.com/openai/openai-ruby/commit/a6257f2737b1b98d6bda684a4fed8e2726052a3a))
9
+
10
+
11
+ ### Chores
12
+
13
+ * **api:** clarify service-account API key deletion ([#956](https://github.com/openai/openai-ruby/issues/956)) ([fac910a](https://github.com/openai/openai-ruby/commit/fac910a671e53a7c5499e1cb323dffe23c9e247d))
14
+
3
15
  ## [0.109.0](https://github.com/openai/openai-ruby/compare/v0.108.0...v0.109.0) (2026-10-21)
4
16
 
5
17
 
data/README.md CHANGED
@@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
15
15
  <!-- x-release-please-start-version -->
16
16
 
17
17
  ```ruby
18
- gem "openai", "~> 0.109.0"
18
+ gem "openai", "~> 0.110.0"
19
19
  ```
20
20
 
21
21
  <!-- x-release-please-end -->
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Audio
6
+ # @see OpenAI::Resources::Audio::Voices#delete
7
+ class VoiceDeleteParams < OpenAI::Internal::Type::BaseModel
8
+ extend OpenAI::Internal::Type::RequestParameters::Converter
9
+ include OpenAI::Internal::Type::RequestParameters
10
+
11
+ # @!attribute voice_id
12
+ #
13
+ # @return [String]
14
+ required :voice_id, String
15
+
16
+ # @!method initialize(voice_id:, request_options: {})
17
+ # @param voice_id [String]
18
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Audio
6
+ # @see OpenAI::Resources::Audio::Voices#delete
7
+ class VoiceDeleted < OpenAI::Internal::Type::BaseModel
8
+ # @!attribute id
9
+ # The voice identifier.
10
+ #
11
+ # @return [String]
12
+ required :id, String
13
+
14
+ # @!attribute deleted
15
+ # Whether the voice was deleted.
16
+ #
17
+ # @return [Boolean]
18
+ required :deleted, OpenAI::Internal::Type::Boolean
19
+
20
+ # @!attribute object
21
+ # The object type, which is always `audio.voice.deleted`.
22
+ #
23
+ # @return [Symbol, :"audio.voice.deleted"]
24
+ required :object, const: :"audio.voice.deleted"
25
+
26
+ # @!method initialize(id:, deleted:, object: :"audio.voice.deleted")
27
+ # @param id [String]
28
+ # The voice identifier.
29
+ #
30
+ # @param deleted [Boolean]
31
+ # Whether the voice was deleted.
32
+ #
33
+ # @param object [Symbol, :"audio.voice.deleted"]
34
+ # The object type, which is always `audio.voice.deleted`.
35
+ end
36
+ end
37
+ end
38
+ end
@@ -140,10 +140,12 @@ module OpenAI
140
140
  )
141
141
  end
142
142
 
143
- # Deletes an API key from the project.
143
+ # Deletes an API key from the project, including keys owned by service accounts.
144
144
  #
145
- # Returns confirmation of the key deletion, or an error if the key belonged to a
146
- # service account.
145
+ # Requires permission to write project API keys. Deleting a service-account key
146
+ # does not delete the service account or its other keys.
147
+ #
148
+ # Returns confirmation of the key deletion.
147
149
  #
148
150
  # @overload delete(api_key_id, project_id:, request_options: {})
149
151
  #
@@ -41,6 +41,35 @@ module OpenAI
41
41
  )
42
42
  end
43
43
 
44
+ # Deletes a voice created from a text prompt or an audio sample.
45
+ #
46
+ # Requires voice write permission and access to the voice's project. Access to
47
+ # voices created from recordings is limited to eligible customers. See the
48
+ # [custom voices guide](https://developers.openai.com/api/docs/guides/custom-voices).
49
+ #
50
+ # Deleting a voice does not delete its consent recording. Deleting an already
51
+ # deleted voice returns a 404 error.
52
+ #
53
+ # @overload delete(voice_id, request_options: {})
54
+ #
55
+ # @param voice_id [String]
56
+ # The ID of the voice to delete.
57
+ #
58
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
59
+ #
60
+ # @return [OpenAI::Models::Audio::VoiceDeleted]
61
+ #
62
+ # @see OpenAI::Models::Audio::VoiceDeleteParams
63
+ def delete(voice_id, params = {})
64
+ @client.request(
65
+ method: :delete,
66
+ path: ["audio/voices/%1$s", voice_id],
67
+ model: OpenAI::Audio::VoiceDeleted,
68
+ security: {bearer_auth: true},
69
+ options: params[:request_options]
70
+ )
71
+ end
72
+
44
73
  # @api private
45
74
  #
46
75
  # @param client [OpenAI::Client]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.109.0"
4
+ VERSION = "0.110.0"
5
5
  end
data/lib/openai.rb CHANGED
@@ -471,6 +471,8 @@ require_relative "openai/models/audio/voice_consent_list_params"
471
471
  require_relative "openai/models/audio/voice_consent_retrieve_params"
472
472
  require_relative "openai/models/audio/voice_consent_update_params"
473
473
  require_relative "openai/models/audio/voice_create_params"
474
+ require_relative "openai/models/audio/voice_deleted"
475
+ require_relative "openai/models/audio/voice_delete_params"
474
476
  require_relative "openai/models/audio_model"
475
477
  require_relative "openai/models/audio_response_format"
476
478
  require_relative "openai/models/auto_file_chunking_strategy_param"
@@ -0,0 +1,53 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Audio
7
+
8
+ class VoiceDeleteParams < 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::Audio::VoiceDeleteParams,
16
+ OpenAI::Internal::AnyHash
17
+ )
18
+ end
19
+
20
+ sig { returns(String) }
21
+ attr_accessor :voice_id
22
+
23
+ sig do
24
+ params(
25
+
26
+ voice_id: String,
27
+
28
+ request_options: OpenAI::RequestOptions::OrHash
29
+ )
30
+ .returns(T.attached_class)
31
+ end
32
+ def self.new(
33
+
34
+ voice_id:,
35
+
36
+ request_options: {}
37
+ )
38
+ end
39
+
40
+ sig do
41
+ override.returns(
42
+ {voice_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,67 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Audio
7
+
8
+ class VoiceDeleted < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Audio::VoiceDeleted,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The voice identifier.
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ # Whether the voice was deleted.
22
+ sig { returns(T::Boolean) }
23
+ attr_accessor :deleted
24
+
25
+ # The object type, which is always `audio.voice.deleted`.
26
+ sig { returns(Symbol) }
27
+ attr_accessor :object
28
+
29
+ sig do
30
+ params(
31
+
32
+ id: String,
33
+
34
+ deleted: T::Boolean,
35
+
36
+ object: Symbol
37
+ )
38
+ .returns(T.attached_class)
39
+ end
40
+ def self.new(
41
+
42
+ # The voice identifier.
43
+ id:,
44
+
45
+ # Whether the voice was deleted.
46
+ deleted:,
47
+
48
+ # The object type, which is always `audio.voice.deleted`.
49
+
50
+ object: :"audio.voice.deleted"
51
+ )
52
+ end
53
+
54
+ sig do
55
+ override.returns(
56
+ {id: String, deleted: T::Boolean, object: Symbol}
57
+ )
58
+ end
59
+ def to_hash
60
+ end
61
+
62
+ end
63
+
64
+ end
65
+
66
+ end
67
+ end
@@ -106,10 +106,12 @@ module OpenAI
106
106
  )
107
107
  end
108
108
 
109
- # Deletes an API key from the project.
109
+ # Deletes an API key from the project, including keys owned by service accounts.
110
110
  #
111
- # Returns confirmation of the key deletion, or an error if the key belonged to a
112
- # service account.
111
+ # Requires permission to write project API keys. Deleting a service-account key
112
+ # does not delete the service account or its other keys.
113
+ #
114
+ # Returns confirmation of the key deletion.
113
115
  sig {
114
116
  params(api_key_id: String, project_id: String, request_options: OpenAI::RequestOptions::OrHash).returns(
115
117
  OpenAI::Models::Admin::Organization::Projects::APIKeyDeleteResponse
@@ -37,6 +37,24 @@ module OpenAI
37
37
  )
38
38
  end
39
39
 
40
+ # Deletes a voice created from a text prompt or an audio sample.
41
+ #
42
+ # Requires voice write permission and access to the voice's project. Access to
43
+ # voices created from recordings is limited to eligible customers. See the
44
+ # [custom voices guide](https://developers.openai.com/api/docs/guides/custom-voices).
45
+ #
46
+ # Deleting a voice does not delete its consent recording. Deleting an already
47
+ # deleted voice returns a 404 error.
48
+ sig {
49
+ params(voice_id: String, request_options: OpenAI::RequestOptions::OrHash).returns(OpenAI::Audio::VoiceDeleted)
50
+ }
51
+ def delete(
52
+ # The ID of the voice to delete.
53
+ voice_id,
54
+ request_options: {}
55
+ )
56
+ end
57
+
40
58
  # @api private
41
59
  sig { params(client: OpenAI::Client).returns(T.attached_class) }
42
60
  def self.new(client:)
@@ -0,0 +1,25 @@
1
+ module OpenAI
2
+ module Models
3
+ module Audio
4
+ type voice_delete_params =
5
+ { voice_id: String, ?request_options: OpenAI::request_opts }
6
+
7
+ class VoiceDeleteParams < OpenAI::Internal::Type::BaseModel
8
+ extend OpenAI::Internal::Type::RequestParameters::Converter
9
+ include OpenAI::Internal::Type::RequestParameters
10
+
11
+ attr_accessor voice_id: String
12
+
13
+ def initialize: (
14
+ voice_id: String,
15
+ ?request_options: OpenAI::request_opts
16
+ ) -> void
17
+
18
+ def to_hash: -> {
19
+ voice_id: String,
20
+ ?request_options: OpenAI::RequestOptions
21
+ }
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,37 @@
1
+ module OpenAI
2
+ module Models
3
+ module Audio
4
+ type voice_deleted =
5
+ { id: String, deleted: bool, ?object: :"audio.voice.deleted" }
6
+
7
+ class VoiceDeleted < OpenAI::Internal::Type::BaseModel
8
+ # The voice identifier.
9
+ attr_accessor id: String
10
+
11
+ # Whether the voice was deleted.
12
+ attr_accessor deleted: bool
13
+
14
+ # The object type, which is always `audio.voice.deleted`.
15
+ attr_accessor object: :"audio.voice.deleted"
16
+
17
+ # @param id
18
+ # The voice identifier.
19
+ # @param deleted
20
+ # Whether the voice was deleted.
21
+ # @param object
22
+ # The object type, which is always `audio.voice.deleted`.
23
+ def initialize: (
24
+ id: String,
25
+ deleted: bool,
26
+ ?object: :"audio.voice.deleted"
27
+ ) -> void
28
+
29
+ def to_hash: -> {
30
+ id: String,
31
+ deleted: bool,
32
+ ?object: :"audio.voice.deleted"
33
+ }
34
+ end
35
+ end
36
+ end
37
+ end
@@ -7,6 +7,11 @@ module OpenAI
7
7
  ?request_options: OpenAI::request_opts
8
8
  ) -> OpenAI::Audio::Voice
9
9
 
10
+ def delete: (
11
+ String voice_id,
12
+ ?request_options: OpenAI::request_opts
13
+ ) -> OpenAI::Audio::VoiceDeleted
14
+
10
15
  def initialize: (client: OpenAI::Client) -> void
11
16
  end
12
17
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.109.0
4
+ version: 0.110.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAI
@@ -453,6 +453,8 @@ files:
453
453
  - lib/openai/models/audio/voice_consent_retrieve_params.rb
454
454
  - lib/openai/models/audio/voice_consent_update_params.rb
455
455
  - lib/openai/models/audio/voice_create_params.rb
456
+ - lib/openai/models/audio/voice_delete_params.rb
457
+ - lib/openai/models/audio/voice_deleted.rb
456
458
  - lib/openai/models/audio_model.rb
457
459
  - lib/openai/models/audio_response_format.rb
458
460
  - lib/openai/models/auto_file_chunking_strategy_param.rb
@@ -2119,6 +2121,8 @@ files:
2119
2121
  - rbi/openai/models/audio/voice_consent_retrieve_params.rbi
2120
2122
  - rbi/openai/models/audio/voice_consent_update_params.rbi
2121
2123
  - rbi/openai/models/audio/voice_create_params.rbi
2124
+ - rbi/openai/models/audio/voice_delete_params.rbi
2125
+ - rbi/openai/models/audio/voice_deleted.rbi
2122
2126
  - rbi/openai/models/audio_model.rbi
2123
2127
  - rbi/openai/models/audio_response_format.rbi
2124
2128
  - rbi/openai/models/auto_file_chunking_strategy_param.rbi
@@ -3772,6 +3776,8 @@ files:
3772
3776
  - sig/openai/models/audio/voice_consent_retrieve_params.rbs
3773
3777
  - sig/openai/models/audio/voice_consent_update_params.rbs
3774
3778
  - sig/openai/models/audio/voice_create_params.rbs
3779
+ - sig/openai/models/audio/voice_delete_params.rbs
3780
+ - sig/openai/models/audio/voice_deleted.rbs
3775
3781
  - sig/openai/models/audio_model.rbs
3776
3782
  - sig/openai/models/audio_response_format.rbs
3777
3783
  - sig/openai/models/auto_file_chunking_strategy_param.rbs