openai 0.116.0 → 0.118.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.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/admin/organization/projects/project_optional_service_tier.rb +24 -0
  5. data/lib/openai/models/admin/organization/projects/project_service_tier_settings.rb +88 -0
  6. data/lib/openai/models/admin/organization/projects/service_tier_setting_retrieve_params.rb +29 -0
  7. data/lib/openai/models/admin/organization/projects/service_tier_setting_update_params.rb +92 -0
  8. data/lib/openai/models/admin/organization/workload_identity_provider.rb +158 -0
  9. data/lib/openai/models/admin/organization/workload_identity_provider_create_params.rb +143 -0
  10. data/lib/openai/models/admin/organization/workload_identity_provider_delete_params.rb +24 -0
  11. data/lib/openai/models/admin/organization/workload_identity_provider_deleted.rb +32 -0
  12. data/lib/openai/models/admin/organization/workload_identity_provider_list_params.rb +58 -0
  13. data/lib/openai/models/admin/organization/workload_identity_provider_retrieve_params.rb +24 -0
  14. data/lib/openai/models/admin/organization/workload_identity_provider_update_params.rb +143 -0
  15. data/lib/openai/models/admin/organization/workload_identity_providers/federation_rule.rb +161 -0
  16. data/lib/openai/models/admin/organization/workload_identity_providers/federation_rule_create_params.rb +144 -0
  17. data/lib/openai/models/admin/organization/workload_identity_providers/federation_rule_delete_params.rb +32 -0
  18. data/lib/openai/models/admin/organization/workload_identity_providers/federation_rule_deleted.rb +34 -0
  19. data/lib/openai/models/admin/organization/workload_identity_providers/federation_rule_list_params.rb +85 -0
  20. data/lib/openai/models/admin/organization/workload_identity_providers/federation_rule_retrieve_params.rb +32 -0
  21. data/lib/openai/models/admin/organization/workload_identity_providers/federation_rule_update_params.rb +134 -0
  22. data/lib/openai/models/beta/beta_response.rb +1 -0
  23. data/lib/openai/models/beta/beta_response_usage.rb +33 -1
  24. data/lib/openai/models/beta/beta_responses_client_event.rb +10 -9
  25. data/lib/openai/models/beta/chatkit/chat_session_workflow_param.rb +5 -3
  26. data/lib/openai/models/beta/chatkit_workflow.rb +5 -3
  27. data/lib/openai/models/beta/response_compact_params.rb +3 -3
  28. data/lib/openai/models/beta/response_create_params.rb +10 -9
  29. data/lib/openai/models/chat/completion_create_params.rb +3 -3
  30. data/lib/openai/models/responses/response.rb +1 -0
  31. data/lib/openai/models/responses/response_compact_params.rb +3 -3
  32. data/lib/openai/models/responses/response_create_params.rb +10 -9
  33. data/lib/openai/models/responses/response_usage.rb +33 -1
  34. data/lib/openai/models/responses/responses_client_event.rb +10 -9
  35. data/lib/openai/resources/admin/organization/projects/service_tier_settings.rb +77 -0
  36. data/lib/openai/resources/admin/organization/projects.rb +6 -0
  37. data/lib/openai/resources/admin/organization/workload_identity_providers/federation_rules.rb +198 -0
  38. data/lib/openai/resources/admin/organization/workload_identity_providers.rb +148 -0
  39. data/lib/openai/resources/admin/organization.rb +6 -0
  40. data/lib/openai/resources/beta/responses.rb +6 -6
  41. data/lib/openai/resources/chat/completions.rb +2 -2
  42. data/lib/openai/resources/responses.rb +3 -3
  43. data/lib/openai/version.rb +1 -1
  44. data/lib/openai.rb +21 -0
  45. data/rbi/openai/models/admin/organization/projects/project_optional_service_tier.rbi +45 -0
  46. data/rbi/openai/models/admin/organization/projects/project_service_tier_settings.rbi +143 -0
  47. data/rbi/openai/models/admin/organization/projects/service_tier_setting_retrieve_params.rbi +63 -0
  48. data/rbi/openai/models/admin/organization/projects/service_tier_setting_update_params.rbi +183 -0
  49. data/rbi/openai/models/admin/organization/workload_identity_provider.rbi +288 -0
  50. data/rbi/openai/models/admin/organization/workload_identity_provider_create_params.rbi +311 -0
  51. data/rbi/openai/models/admin/organization/workload_identity_provider_delete_params.rbi +57 -0
  52. data/rbi/openai/models/admin/organization/workload_identity_provider_deleted.rbi +64 -0
  53. data/rbi/openai/models/admin/organization/workload_identity_provider_list_params.rbi +111 -0
  54. data/rbi/openai/models/admin/organization/workload_identity_provider_retrieve_params.rbi +57 -0
  55. data/rbi/openai/models/admin/organization/workload_identity_provider_update_params.rbi +317 -0
  56. data/rbi/openai/models/admin/organization/workload_identity_providers/federation_rule.rbi +276 -0
  57. data/rbi/openai/models/admin/organization/workload_identity_providers/federation_rule_create_params.rbi +282 -0
  58. data/rbi/openai/models/admin/organization/workload_identity_providers/federation_rule_delete_params.rbi +72 -0
  59. data/rbi/openai/models/admin/organization/workload_identity_providers/federation_rule_deleted.rbi +68 -0
  60. data/rbi/openai/models/admin/organization/workload_identity_providers/federation_rule_list_params.rbi +153 -0
  61. data/rbi/openai/models/admin/organization/workload_identity_providers/federation_rule_retrieve_params.rbi +72 -0
  62. data/rbi/openai/models/admin/organization/workload_identity_providers/federation_rule_update_params.rbi +281 -0
  63. data/rbi/openai/models/beta/beta_response.rbi +1 -0
  64. data/rbi/openai/models/beta/beta_response_usage.rbi +66 -3
  65. data/rbi/openai/models/beta/beta_responses_client_event.rbi +13 -9
  66. data/rbi/openai/models/beta/chatkit/chat_session_workflow_param.rbi +1 -1
  67. data/rbi/openai/models/beta/chatkit_workflow.rbi +1 -1
  68. data/rbi/openai/models/beta/response_compact_params.rbi +3 -3
  69. data/rbi/openai/models/beta/response_create_params.rbi +10 -9
  70. data/rbi/openai/models/chat/completion_create_params.rbi +3 -3
  71. data/rbi/openai/models/responses/response.rbi +1 -0
  72. data/rbi/openai/models/responses/response_compact_params.rbi +3 -3
  73. data/rbi/openai/models/responses/response_create_params.rbi +10 -9
  74. data/rbi/openai/models/responses/response_usage.rbi +66 -3
  75. data/rbi/openai/models/responses/responses_client_event.rbi +13 -9
  76. data/rbi/openai/resources/admin/organization/projects/service_tier_settings.rbi +67 -0
  77. data/rbi/openai/resources/admin/organization/projects.rbi +3 -0
  78. data/rbi/openai/resources/admin/organization/workload_identity_providers/federation_rules.rbi +148 -0
  79. data/rbi/openai/resources/admin/organization/workload_identity_providers.rbi +123 -0
  80. data/rbi/openai/resources/admin/organization.rbi +3 -0
  81. data/rbi/openai/resources/beta/responses.rbi +6 -6
  82. data/rbi/openai/resources/chat/completions.rbi +2 -2
  83. data/rbi/openai/resources/responses.rbi +3 -3
  84. data/sig/openai/models/admin/organization/external_key_create_params.rbs +9 -9
  85. data/sig/openai/models/admin/organization/projects/project_optional_service_tier.rbs +23 -0
  86. data/sig/openai/models/admin/organization/projects/project_service_tier_settings.rbs +72 -0
  87. data/sig/openai/models/admin/organization/projects/service_tier_setting_retrieve_params.rbs +32 -0
  88. data/sig/openai/models/admin/organization/projects/service_tier_setting_update_params.rbs +91 -0
  89. data/sig/openai/models/admin/organization/workload_identity_provider.rbs +136 -0
  90. data/sig/openai/models/admin/organization/workload_identity_provider_create_params.rbs +140 -0
  91. data/sig/openai/models/admin/organization/workload_identity_provider_delete_params.rbs +30 -0
  92. data/sig/openai/models/admin/organization/workload_identity_provider_deleted.rbs +34 -0
  93. data/sig/openai/models/admin/organization/workload_identity_provider_list_params.rbs +59 -0
  94. data/sig/openai/models/admin/organization/workload_identity_provider_retrieve_params.rbs +30 -0
  95. data/sig/openai/models/admin/organization/workload_identity_provider_update_params.rbs +145 -0
  96. data/sig/openai/models/admin/organization/workload_identity_providers/federation_rule.rbs +124 -0
  97. data/sig/openai/models/admin/organization/workload_identity_providers/federation_rule_create_params.rbs +126 -0
  98. data/sig/openai/models/admin/organization/workload_identity_providers/federation_rule_delete_params.rbs +37 -0
  99. data/sig/openai/models/admin/organization/workload_identity_providers/federation_rule_deleted.rbs +36 -0
  100. data/sig/openai/models/admin/organization/workload_identity_providers/federation_rule_list_params.rbs +73 -0
  101. data/sig/openai/models/admin/organization/workload_identity_providers/federation_rule_retrieve_params.rbs +37 -0
  102. data/sig/openai/models/admin/organization/workload_identity_providers/federation_rule_update_params.rbs +123 -0
  103. data/sig/openai/models/audio/transcription_create_params.rbs +3 -3
  104. data/sig/openai/models/audio/voice_create_params.rbs +6 -6
  105. data/sig/openai/models/beta/assistant_create_params.rbs +14 -2
  106. data/sig/openai/models/beta/beta_response.rbs +2 -1
  107. data/sig/openai/models/beta/beta_response_usage.rbs +40 -3
  108. data/sig/openai/models/beta/beta_responses_client_event.rbs +11 -10
  109. data/sig/openai/models/beta/chatkit/chat_session_workflow_param.rbs +1 -1
  110. data/sig/openai/models/beta/chatkit_workflow.rbs +1 -1
  111. data/sig/openai/models/beta/response_compact_params.rbs +2 -2
  112. data/sig/openai/models/beta/response_create_params.rbs +11 -10
  113. data/sig/openai/models/beta/thread_create_and_run_params.rbs +14 -2
  114. data/sig/openai/models/beta/thread_create_params.rbs +14 -2
  115. data/sig/openai/models/chat/completion_create_params.rbs +3 -3
  116. data/sig/openai/models/decision_create_params.rbs +42 -0
  117. data/sig/openai/models/eval_create_params.rbs +29 -2
  118. data/sig/openai/models/evals/run_create_params.rbs +53 -2
  119. data/sig/openai/models/responses/response.rbs +2 -1
  120. data/sig/openai/models/responses/response_compact_params.rbs +2 -2
  121. data/sig/openai/models/responses/response_create_params.rbs +11 -10
  122. data/sig/openai/models/responses/response_usage.rbs +40 -3
  123. data/sig/openai/models/responses/responses_client_event.rbs +11 -10
  124. data/sig/openai/resources/admin/organization/external_keys.rbs +3 -3
  125. data/sig/openai/resources/admin/organization/projects/service_tier_settings.rbs +25 -0
  126. data/sig/openai/resources/admin/organization/projects.rbs +2 -0
  127. data/sig/openai/resources/admin/organization/workload_identity_providers/federation_rules.rbs +61 -0
  128. data/sig/openai/resources/admin/organization/workload_identity_providers.rbs +58 -0
  129. data/sig/openai/resources/admin/organization.rbs +2 -0
  130. data/sig/openai/resources/audio/transcriptions.rbs +2 -2
  131. data/sig/openai/resources/audio/voices.rbs +2 -2
  132. data/sig/openai/resources/decisions.rbs +14 -0
  133. data/sig/openai/resources/evals.rbs +8 -1
  134. metadata +64 -1
@@ -240,7 +240,7 @@ module OpenAI
240
240
  # request can write up to four breakpoints. For cache matching, OpenAI considers
241
241
  # up to the latest 80 breakpoints in the conversation, without a content-block
242
242
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
243
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
243
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
244
244
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
245
245
  # for current details.
246
246
  #
@@ -595,7 +595,7 @@ module OpenAI
595
595
  # request can write up to four breakpoints. For cache matching, OpenAI considers
596
596
  # up to the latest 80 breakpoints in the conversation, without a content-block
597
597
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
598
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
598
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
599
599
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
600
600
  # for current details.
601
601
  #
@@ -1032,8 +1032,8 @@ module OpenAI
1032
1032
 
1033
1033
  # @!attribute ttl
1034
1034
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1035
- # written by the request. Defaults to `30m`, which is currently the only supported
1036
- # value. The backend may retain cache entries for longer.
1035
+ # written by the request. Supported values are `30m` (the default) and `12h`. The
1036
+ # backend may retain cache entries for longer.
1037
1037
  #
1038
1038
  # @return [Symbol, OpenAI::Models::Responses::ResponsesClientEvent::ResponseCreate::PromptCacheOptions::Ttl, nil]
1039
1039
  optional(
@@ -1048,7 +1048,7 @@ module OpenAI
1048
1048
  # request can write up to four breakpoints. For cache matching, OpenAI considers
1049
1049
  # up to the latest 80 breakpoints in the conversation, without a content-block
1050
1050
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
1051
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
1051
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
1052
1052
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
1053
1053
  # for current details.
1054
1054
  #
@@ -1070,8 +1070,8 @@ module OpenAI
1070
1070
  #
1071
1071
  # @param ttl [Symbol, OpenAI::Models::Responses::ResponsesClientEvent::ResponseCreate::PromptCacheOptions::Ttl]
1072
1072
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1073
- # written by the request. Defaults to `30m`, which is currently the only supported
1074
- # value. The backend may retain cache entries for longer.
1073
+ # written by the request. Supported values are `30m` (the default) and `12h`. The
1074
+ # backend may retain cache entries for longer.
1075
1075
 
1076
1076
  # Controls whether OpenAI automatically creates an implicit cache breakpoint.
1077
1077
  # Defaults to `implicit`. With `implicit`, OpenAI creates one implicit breakpoint
@@ -1092,14 +1092,15 @@ module OpenAI
1092
1092
  end
1093
1093
 
1094
1094
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1095
- # written by the request. Defaults to `30m`, which is currently the only supported
1096
- # value. The backend may retain cache entries for longer.
1095
+ # written by the request. Supported values are `30m` (the default) and `12h`. The
1096
+ # backend may retain cache entries for longer.
1097
1097
  #
1098
1098
  # @see OpenAI::Models::Responses::ResponsesClientEvent::ResponseCreate::PromptCacheOptions#ttl
1099
1099
  module Ttl
1100
1100
  extend OpenAI::Internal::Type::Enum
1101
1101
 
1102
1102
  TTL_30M = :"30m"
1103
+ TTL_12H = :"12h"
1103
1104
 
1104
1105
  # @!method self.values
1105
1106
  # @return [Array<Symbol>]
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Admin
6
+ class Organization
7
+ class Projects
8
+ class ServiceTierSettings
9
+ # Retrieve the configured default and enabled service tiers for a project.
10
+ #
11
+ # @overload retrieve(project_id, request_options: {})
12
+ #
13
+ # @param project_id [String]
14
+ # The ID of the project
15
+ #
16
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
17
+ #
18
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectServiceTierSettings]
19
+ #
20
+ # @see OpenAI::Models::Admin::Organization::Projects::ServiceTierSettingRetrieveParams
21
+ def retrieve(project_id, params = {})
22
+ @client.request(
23
+ method: :get,
24
+ path: ["organization/projects/%1$s/service_tier_settings", project_id],
25
+ model: OpenAI::Admin::Organization::Projects::ProjectServiceTierSettings,
26
+ security: {admin_api_key_auth: true},
27
+ options: params[:request_options]
28
+ )
29
+ end
30
+
31
+ # Update the default or enabled service tiers atomically. Supply at least one
32
+ # field. Omitted fields keep their current values.
33
+ #
34
+ # @overload update(project_id, default: nil, enabled_tiers: nil, request_options: {})
35
+ #
36
+ # @param project_id [String]
37
+ # The ID of the project
38
+ #
39
+ # @param default [Symbol, OpenAI::Models::Admin::Organization::Projects::ServiceTierSettingUpdateParams::Default]
40
+ # Default tier for requests that omit service_tier or use auto.
41
+ #
42
+ # @param enabled_tiers [Symbol, :all, Array<Symbol, OpenAI::Models::Admin::Organization::Projects::ProjectOptionalServiceTier>]
43
+ # Additional service tiers enabled for this project. "all" includes future tiers.
44
+ # An empty array allows only Standard. Organization policy and eligibility still
45
+ # apply.
46
+ #
47
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
48
+ #
49
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectServiceTierSettings]
50
+ #
51
+ # @see OpenAI::Models::Admin::Organization::Projects::ServiceTierSettingUpdateParams
52
+ def update(project_id, params = {})
53
+ parsed, options = OpenAI::Admin::Organization::Projects::ServiceTierSettingUpdateParams.dump_request(
54
+ params
55
+ )
56
+ @client.request(
57
+ method: :post,
58
+ path: ["organization/projects/%1$s/service_tier_settings", project_id],
59
+ body: parsed,
60
+ model: OpenAI::Admin::Organization::Projects::ProjectServiceTierSettings,
61
+ security: {admin_api_key_auth: true},
62
+ options: options
63
+ )
64
+ end
65
+
66
+ # @api private
67
+ #
68
+ # @param client [OpenAI::Client]
69
+ def initialize(client:)
70
+ @client = client
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -41,6 +41,9 @@ module OpenAI
41
41
  # @return [OpenAI::Resources::Admin::Organization::Projects::Certificates]
42
42
  attr_reader :certificates
43
43
 
44
+ # @return [OpenAI::Resources::Admin::Organization::Projects::ServiceTierSettings]
45
+ attr_reader :service_tier_settings
46
+
44
47
  # Create a new project in the organization. Projects can be created and archived,
45
48
  # but cannot be deleted.
46
49
  #
@@ -218,6 +221,9 @@ module OpenAI
218
221
  @spend_limit = OpenAI::Resources::Admin::Organization::Projects::SpendLimit.new(client: client)
219
222
  @spend_alerts = OpenAI::Resources::Admin::Organization::Projects::SpendAlerts.new(client: client)
220
223
  @certificates = OpenAI::Resources::Admin::Organization::Projects::Certificates.new(client: client)
224
+ @service_tier_settings = OpenAI::Resources::Admin::Organization::Projects::ServiceTierSettings.new(
225
+ client: client
226
+ )
221
227
  end
222
228
  end
223
229
  end
@@ -0,0 +1,198 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Admin
6
+ class Organization
7
+ class WorkloadIdentityProviders
8
+ class FederationRules
9
+ # Bind verified token attributes to an existing project service account.
10
+ #
11
+ # @overload create(workload_identity_provider_id, attribute_matchers:, project_id:, service_account_id:, description: nil, enabled: nil, name: nil, permissions: nil, request_options: {})
12
+ #
13
+ # @param workload_identity_provider_id [String]
14
+ # @param attribute_matchers [Hash{Symbol=>String, Boolean, Integer, Float}]
15
+ # @param project_id [String]
16
+ # @param service_account_id [String]
17
+ # @param description [String]
18
+ # @param enabled [Boolean]
19
+ # @param name [String]
20
+ # @param permissions [OpenAI::Models::Admin::Organization::WorkloadIdentityProviders::FederationRuleCreateParams::Permissions::ServiceAccountDefault, OpenAI::Models::Admin::Organization::WorkloadIdentityProviders::FederationRuleCreateParams::Permissions::Restricted]
21
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
22
+ #
23
+ # @return [OpenAI::Models::Admin::Organization::WorkloadIdentityProviders::FederationRule]
24
+ #
25
+ # @see OpenAI::Models::Admin::Organization::WorkloadIdentityProviders::FederationRuleCreateParams
26
+ def create(workload_identity_provider_id, params)
27
+ parsed, options = OpenAI::Admin::Organization::WorkloadIdentityProviders::FederationRuleCreateParams
28
+ .dump_request(params)
29
+ @client.request(
30
+ method: :post,
31
+ path: [
32
+ "organization/workload_identity_providers/%1$s/federation_rules",
33
+ workload_identity_provider_id
34
+ ],
35
+ body: parsed,
36
+ model: OpenAI::Admin::Organization::WorkloadIdentityProviders::FederationRule,
37
+ security: {admin_api_key_auth: true},
38
+ options: options
39
+ )
40
+ end
41
+
42
+ # Retrieve a federation rule owned by the authenticated organization and provider.
43
+ #
44
+ # @overload retrieve(workload_identity_federation_rule_id, workload_identity_provider_id:, request_options: {})
45
+ #
46
+ # @param workload_identity_federation_rule_id [String]
47
+ # @param workload_identity_provider_id [String]
48
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
49
+ #
50
+ # @return [OpenAI::Models::Admin::Organization::WorkloadIdentityProviders::FederationRule]
51
+ #
52
+ # @see OpenAI::Models::Admin::Organization::WorkloadIdentityProviders::FederationRuleRetrieveParams
53
+ def retrieve(workload_identity_federation_rule_id, params)
54
+ parsed, options = OpenAI::Admin::Organization::WorkloadIdentityProviders::FederationRuleRetrieveParams
55
+ .dump_request(params)
56
+ workload_identity_provider_id = parsed.delete(:workload_identity_provider_id) do
57
+ raise ArgumentError.new("missing required path argument #{_1}")
58
+ end
59
+
60
+ @client.request(
61
+ method: :get,
62
+ path: [
63
+ "organization/workload_identity_providers/%1$s/federation_rules/%2$s",
64
+ workload_identity_provider_id,
65
+ workload_identity_federation_rule_id
66
+ ],
67
+ model: OpenAI::Admin::Organization::WorkloadIdentityProviders::FederationRule,
68
+ security: {admin_api_key_auth: true},
69
+ options: options
70
+ )
71
+ end
72
+
73
+ # Update supplied matcher, permission, metadata, or enabled fields.
74
+ #
75
+ # @overload update(workload_identity_federation_rule_id, workload_identity_provider_id:, attribute_matchers: nil, description: nil, enabled: nil, name: nil, permissions: nil, request_options: {})
76
+ #
77
+ # @param workload_identity_federation_rule_id [String]
78
+ # Path param
79
+ #
80
+ # @param workload_identity_provider_id [String]
81
+ # Path param
82
+ #
83
+ # @param attribute_matchers [Hash{Symbol=>String, Boolean, Integer, Float}]
84
+ # Body param
85
+ #
86
+ # @param description [String, nil]
87
+ # Body param
88
+ #
89
+ # @param enabled [Boolean]
90
+ # Body param
91
+ #
92
+ # @param name [String, nil]
93
+ # Body param
94
+ #
95
+ # @param permissions [OpenAI::Models::Admin::Organization::WorkloadIdentityProviders::FederationRuleUpdateParams::Permissions::DefaultPermissionsParam, OpenAI::Models::Admin::Organization::WorkloadIdentityProviders::FederationRuleUpdateParams::Permissions::RestrictedPermissionsParam]
96
+ # Body param
97
+ #
98
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
99
+ #
100
+ # @return [OpenAI::Models::Admin::Organization::WorkloadIdentityProviders::FederationRule]
101
+ #
102
+ # @see OpenAI::Models::Admin::Organization::WorkloadIdentityProviders::FederationRuleUpdateParams
103
+ def update(workload_identity_federation_rule_id, params)
104
+ parsed, options = OpenAI::Admin::Organization::WorkloadIdentityProviders::FederationRuleUpdateParams
105
+ .dump_request(params)
106
+ workload_identity_provider_id = parsed.delete(:workload_identity_provider_id) do
107
+ raise ArgumentError.new("missing required path argument #{_1}")
108
+ end
109
+
110
+ @client.request(
111
+ method: :post,
112
+ path: [
113
+ "organization/workload_identity_providers/%1$s/federation_rules/%2$s",
114
+ workload_identity_provider_id,
115
+ workload_identity_federation_rule_id
116
+ ],
117
+ body: parsed,
118
+ model: OpenAI::Admin::Organization::WorkloadIdentityProviders::FederationRule,
119
+ security: {admin_api_key_auth: true},
120
+ options: options
121
+ )
122
+ end
123
+
124
+ # List the provider's federation rules to project service accounts.
125
+ #
126
+ # @overload list(workload_identity_provider_id, after: nil, limit: nil, order: nil, service_account_id: nil, request_options: {})
127
+ #
128
+ # @param workload_identity_provider_id [String]
129
+ # @param after [String]
130
+ # @param limit [Integer]
131
+ # @param order [Symbol, OpenAI::Models::Admin::Organization::WorkloadIdentityProviders::FederationRuleListParams::Order]
132
+ # @param service_account_id [String]
133
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
134
+ #
135
+ # @return [OpenAI::Internal::CursorPage<OpenAI::Models::Admin::Organization::WorkloadIdentityProviders::FederationRule>]
136
+ #
137
+ # @see OpenAI::Models::Admin::Organization::WorkloadIdentityProviders::FederationRuleListParams
138
+ def list(workload_identity_provider_id, params = {})
139
+ parsed, options = OpenAI::Admin::Organization::WorkloadIdentityProviders::FederationRuleListParams
140
+ .dump_request(params)
141
+ query = OpenAI::Internal::Util.encode_query_params(parsed)
142
+ @client.request(
143
+ method: :get,
144
+ path: [
145
+ "organization/workload_identity_providers/%1$s/federation_rules",
146
+ workload_identity_provider_id
147
+ ],
148
+ query: query,
149
+ page: OpenAI::Internal::CursorPage,
150
+ model: OpenAI::Admin::Organization::WorkloadIdentityProviders::FederationRule,
151
+ security: {admin_api_key_auth: true},
152
+ options: options
153
+ )
154
+ end
155
+
156
+ # Delete a federation rule to a project service account.
157
+ #
158
+ # @overload delete(workload_identity_federation_rule_id, workload_identity_provider_id:, request_options: {})
159
+ #
160
+ # @param workload_identity_federation_rule_id [String]
161
+ # @param workload_identity_provider_id [String]
162
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
163
+ #
164
+ # @return [OpenAI::Models::Admin::Organization::WorkloadIdentityProviders::FederationRuleDeleted]
165
+ #
166
+ # @see OpenAI::Models::Admin::Organization::WorkloadIdentityProviders::FederationRuleDeleteParams
167
+ def delete(workload_identity_federation_rule_id, params)
168
+ parsed, options = OpenAI::Admin::Organization::WorkloadIdentityProviders::FederationRuleDeleteParams
169
+ .dump_request(params)
170
+ workload_identity_provider_id = parsed.delete(:workload_identity_provider_id) do
171
+ raise ArgumentError.new("missing required path argument #{_1}")
172
+ end
173
+
174
+ @client.request(
175
+ method: :delete,
176
+ path: [
177
+ "organization/workload_identity_providers/%1$s/federation_rules/%2$s",
178
+ workload_identity_provider_id,
179
+ workload_identity_federation_rule_id
180
+ ],
181
+ model: OpenAI::Admin::Organization::WorkloadIdentityProviders::FederationRuleDeleted,
182
+ security: {admin_api_key_auth: true},
183
+ options: options
184
+ )
185
+ end
186
+
187
+ # @api private
188
+ #
189
+ # @param client [OpenAI::Client]
190
+ def initialize(client:)
191
+ @client = client
192
+ end
193
+ end
194
+ end
195
+ end
196
+ end
197
+ end
198
+ end
@@ -0,0 +1,148 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Admin
6
+ class Organization
7
+ class WorkloadIdentityProviders
8
+ # @return [OpenAI::Resources::Admin::Organization::WorkloadIdentityProviders::FederationRules]
9
+ attr_reader :federation_rules
10
+
11
+ # Register an OIDC provider for keyless project service-account authentication.
12
+ #
13
+ # @overload create(audience:, issuer:, name:, attribute_transformations: nil, description: nil, enabled: nil, verification: nil, type: :oidc, request_options: {})
14
+ #
15
+ # @param audience [String]
16
+ # @param issuer [String]
17
+ # @param name [String]
18
+ # @param attribute_transformations [Array<OpenAI::Models::Admin::Organization::WorkloadIdentityProviderCreateParams::AttributeTransformation>]
19
+ # @param description [String]
20
+ # @param enabled [Boolean]
21
+ # @param verification [OpenAI::Models::Admin::Organization::WorkloadIdentityProviderCreateParams::Verification::Discovery, OpenAI::Models::Admin::Organization::WorkloadIdentityProviderCreateParams::Verification::UploadedJwks]
22
+ # @param type [Symbol, :oidc]
23
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
24
+ #
25
+ # @return [OpenAI::Models::Admin::Organization::WorkloadIdentityProvider]
26
+ #
27
+ # @see OpenAI::Models::Admin::Organization::WorkloadIdentityProviderCreateParams
28
+ def create(params)
29
+ parsed, options = OpenAI::Admin::Organization::WorkloadIdentityProviderCreateParams.dump_request(params)
30
+ @client.request(
31
+ method: :post,
32
+ path: "organization/workload_identity_providers",
33
+ body: parsed,
34
+ model: OpenAI::Admin::Organization::WorkloadIdentityProvider,
35
+ security: {admin_api_key_auth: true},
36
+ options: options
37
+ )
38
+ end
39
+
40
+ # Retrieve an OIDC provider in the authenticated organization.
41
+ #
42
+ # @overload retrieve(workload_identity_provider_id, request_options: {})
43
+ #
44
+ # @param workload_identity_provider_id [String]
45
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
46
+ #
47
+ # @return [OpenAI::Models::Admin::Organization::WorkloadIdentityProvider]
48
+ #
49
+ # @see OpenAI::Models::Admin::Organization::WorkloadIdentityProviderRetrieveParams
50
+ def retrieve(workload_identity_provider_id, params = {})
51
+ @client.request(
52
+ method: :get,
53
+ path: ["organization/workload_identity_providers/%1$s", workload_identity_provider_id],
54
+ model: OpenAI::Admin::Organization::WorkloadIdentityProvider,
55
+ security: {admin_api_key_auth: true},
56
+ options: params[:request_options]
57
+ )
58
+ end
59
+
60
+ # Update supplied provider fields, preserving omitted fields.
61
+ #
62
+ # @overload update(workload_identity_provider_id, attribute_transformations: nil, audience: nil, description: nil, enabled: nil, issuer: nil, name: nil, verification: nil, request_options: {})
63
+ #
64
+ # @param workload_identity_provider_id [String]
65
+ # @param attribute_transformations [Array<OpenAI::Models::Admin::Organization::WorkloadIdentityProviderUpdateParams::AttributeTransformation>]
66
+ # @param audience [String]
67
+ # @param description [String, nil]
68
+ # @param enabled [Boolean]
69
+ # @param issuer [String]
70
+ # @param name [String]
71
+ # @param verification [OpenAI::Models::Admin::Organization::WorkloadIdentityProviderUpdateParams::Verification::DiscoveryVerificationParam, OpenAI::Models::Admin::Organization::WorkloadIdentityProviderUpdateParams::Verification::UploadedJwksVerificationParam]
72
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
73
+ #
74
+ # @return [OpenAI::Models::Admin::Organization::WorkloadIdentityProvider]
75
+ #
76
+ # @see OpenAI::Models::Admin::Organization::WorkloadIdentityProviderUpdateParams
77
+ def update(workload_identity_provider_id, params = {})
78
+ parsed, options = OpenAI::Admin::Organization::WorkloadIdentityProviderUpdateParams.dump_request(params)
79
+ @client.request(
80
+ method: :post,
81
+ path: ["organization/workload_identity_providers/%1$s", workload_identity_provider_id],
82
+ body: parsed,
83
+ model: OpenAI::Admin::Organization::WorkloadIdentityProvider,
84
+ security: {admin_api_key_auth: true},
85
+ options: options
86
+ )
87
+ end
88
+
89
+ # List OIDC providers in the authenticated Admin API key's organization.
90
+ #
91
+ # @overload list(after: nil, limit: nil, order: nil, request_options: {})
92
+ #
93
+ # @param after [String]
94
+ # @param limit [Integer]
95
+ # @param order [Symbol, OpenAI::Models::Admin::Organization::WorkloadIdentityProviderListParams::Order]
96
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
97
+ #
98
+ # @return [OpenAI::Internal::CursorPage<OpenAI::Models::Admin::Organization::WorkloadIdentityProvider>]
99
+ #
100
+ # @see OpenAI::Models::Admin::Organization::WorkloadIdentityProviderListParams
101
+ def list(params = {})
102
+ parsed, options = OpenAI::Admin::Organization::WorkloadIdentityProviderListParams.dump_request(params)
103
+ query = OpenAI::Internal::Util.encode_query_params(parsed)
104
+ @client.request(
105
+ method: :get,
106
+ path: "organization/workload_identity_providers",
107
+ query: query,
108
+ page: OpenAI::Internal::CursorPage,
109
+ model: OpenAI::Admin::Organization::WorkloadIdentityProvider,
110
+ security: {admin_api_key_auth: true},
111
+ options: options
112
+ )
113
+ end
114
+
115
+ # Delete a provider after deleting all its federation rules.
116
+ #
117
+ # @overload delete(workload_identity_provider_id, request_options: {})
118
+ #
119
+ # @param workload_identity_provider_id [String]
120
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
121
+ #
122
+ # @return [OpenAI::Models::Admin::Organization::WorkloadIdentityProviderDeleted]
123
+ #
124
+ # @see OpenAI::Models::Admin::Organization::WorkloadIdentityProviderDeleteParams
125
+ def delete(workload_identity_provider_id, params = {})
126
+ @client.request(
127
+ method: :delete,
128
+ path: ["organization/workload_identity_providers/%1$s", workload_identity_provider_id],
129
+ model: OpenAI::Admin::Organization::WorkloadIdentityProviderDeleted,
130
+ security: {admin_api_key_auth: true},
131
+ options: params[:request_options]
132
+ )
133
+ end
134
+
135
+ # @api private
136
+ #
137
+ # @param client [OpenAI::Client]
138
+ def initialize(client:)
139
+ @client = client
140
+ @federation_rules = OpenAI::Resources::Admin::Organization::WorkloadIdentityProviders::FederationRules.new(
141
+ client: client
142
+ )
143
+ end
144
+ end
145
+ end
146
+ end
147
+ end
148
+ end
@@ -47,6 +47,9 @@ module OpenAI
47
47
  # @return [OpenAI::Resources::Admin::Organization::Projects]
48
48
  attr_reader :projects
49
49
 
50
+ # @return [OpenAI::Resources::Admin::Organization::WorkloadIdentityProviders]
51
+ attr_reader :workload_identity_providers
52
+
50
53
  # @api private
51
54
  #
52
55
  # @param client [OpenAI::Client]
@@ -66,6 +69,9 @@ module OpenAI
66
69
  @spend_alerts = OpenAI::Resources::Admin::Organization::SpendAlerts.new(client: client)
67
70
  @certificates = OpenAI::Resources::Admin::Organization::Certificates.new(client: client)
68
71
  @projects = OpenAI::Resources::Admin::Organization::Projects.new(client: client)
72
+ @workload_identity_providers = OpenAI::Resources::Admin::Organization::WorkloadIdentityProviders.new(
73
+ client: client
74
+ )
69
75
  end
70
76
  end
71
77
  end
@@ -161,8 +161,8 @@ module OpenAI
161
161
  # `prompt_cache_breakpoint`. Each request can write up to four breakpoints. For
162
162
  # cache matching, OpenAI considers up to the latest 80 breakpoints in the
163
163
  # conversation, without a content-block lookback limit. Set `mode` to `explicit`
164
- # to disable the implicit breakpoint. The `ttl` defaults to `30m`, which is
165
- # currently the only supported value. See the
164
+ # to disable the implicit breakpoint. The `ttl` defaults to `30m`. Supported
165
+ # lifetimes depend on the API. See the
166
166
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
167
167
  # for current details.
168
168
  #
@@ -462,8 +462,8 @@ module OpenAI
462
462
  # `prompt_cache_breakpoint`. Each request can write up to four breakpoints. For
463
463
  # cache matching, OpenAI considers up to the latest 80 breakpoints in the
464
464
  # conversation, without a content-block lookback limit. Set `mode` to `explicit`
465
- # to disable the implicit breakpoint. The `ttl` defaults to `30m`, which is
466
- # currently the only supported value. See the
465
+ # to disable the implicit breakpoint. The `ttl` defaults to `30m`. Supported
466
+ # lifetimes depend on the API. See the
467
467
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
468
468
  # for current details.
469
469
  #
@@ -855,8 +855,8 @@ module OpenAI
855
855
  # `prompt_cache_breakpoint`. Each request can write up to four breakpoints. For
856
856
  # cache matching, OpenAI considers up to the latest 80 breakpoints in the
857
857
  # conversation, without a content-block lookback limit. Set `mode` to `explicit`
858
- # to disable the implicit breakpoint. The `ttl` defaults to `30m`, which is
859
- # currently the only supported value. See the
858
+ # to disable the implicit breakpoint. The `ttl` defaults to `30m`. Supported
859
+ # lifetimes depend on the API. See the
860
860
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
861
861
  # for current details.
862
862
  #
@@ -171,7 +171,7 @@ module OpenAI
171
171
  # request can write up to four breakpoints. For cache matching, OpenAI considers
172
172
  # up to the latest 80 breakpoints in the conversation, without a content-block
173
173
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
174
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
174
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
175
175
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
176
176
  # for current details.
177
177
  #
@@ -508,7 +508,7 @@ module OpenAI
508
508
  # request can write up to four breakpoints. For cache matching, OpenAI considers
509
509
  # up to the latest 80 breakpoints in the conversation, without a content-block
510
510
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
511
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
511
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
512
512
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
513
513
  # for current details.
514
514
  #
@@ -157,7 +157,7 @@ module OpenAI
157
157
  # request can write up to four breakpoints. For cache matching, OpenAI considers
158
158
  # up to the latest 80 breakpoints in the conversation, without a content-block
159
159
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
160
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
160
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
161
161
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
162
162
  # for current details.
163
163
  #
@@ -450,7 +450,7 @@ module OpenAI
450
450
  # request can write up to four breakpoints. For cache matching, OpenAI considers
451
451
  # up to the latest 80 breakpoints in the conversation, without a content-block
452
452
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
453
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
453
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
454
454
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
455
455
  # for current details.
456
456
  #
@@ -819,7 +819,7 @@ module OpenAI
819
819
  # request can write up to four breakpoints. For cache matching, OpenAI considers
820
820
  # up to the latest 80 breakpoints in the conversation, without a content-block
821
821
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
822
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
822
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
823
823
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
824
824
  # for current details.
825
825
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.116.0"
4
+ VERSION = "0.118.0"
5
5
  end