From b004254889146b00d528fb9cf163dd62b0c22345 Mon Sep 17 00:00:00 2001 From: apcha-oai <228803254+apcha-oai@users.noreply.github.com> Date: Tue, 25 Aug 2026 01:52:38 +0000 Subject: [PATCH] feat(api): share project residency and cost quantity-unit types Castiron-Internal-PR: https://github.com/openai/openai-ruby-internal/pull/46 Castiron-Source-SHA: ae878e574c99b9a1e4631468fa075794103f4738 Castiron-Public-Base-SHA: e7dd78b8c21a994edb2b9e94a3f2938cc5a2b17c --- .castiron.stats.yml | 14 ++--- api_reference/openapi.transformed.yml | 56 +++++++++++++++++-- lib/openai.rb | 2 + .../admin/organization/cost_quantity_unit.rb | 53 ++++++++++++++++++ .../models/admin/organization/project.rb | 10 +++- .../organization/project_create_params.rb | 19 ++++++- .../admin/organization/project_residency.rb | 29 ++++++++++ .../organization/project_update_params.rb | 8 ++- .../usage_audio_speeches_response.rb | 17 +++++- .../usage_audio_transcriptions_response.rb | 17 +++++- ...sage_code_interpreter_sessions_response.rb | 17 +++++- .../usage_completions_response.rb | 17 +++++- .../organization/usage_costs_response.rb | 17 +++++- .../organization/usage_embeddings_response.rb | 17 +++++- .../usage_file_search_calls_response.rb | 17 +++++- .../organization/usage_images_response.rb | 17 +++++- .../usage_moderations_response.rb | 17 +++++- .../usage_vector_stores_response.rb | 17 +++++- .../usage_web_search_calls_response.rb | 17 +++++- .../resources/admin/organization/projects.rb | 7 ++- .../admin/organization/cost_quantity_unit.rbi | 51 +++++++++++++++++ .../models/admin/organization/project.rbi | 13 +++++ .../organization/project_create_params.rbi | 24 +++++++- .../admin/organization/project_residency.rbi | 48 ++++++++++++++++ .../organization/project_update_params.rbi | 6 +- .../usage_audio_speeches_response.rbi | 14 ++++- .../usage_audio_transcriptions_response.rbi | 14 ++++- ...age_code_interpreter_sessions_response.rbi | 14 ++++- .../usage_completions_response.rbi | 14 ++++- .../organization/usage_costs_response.rbi | 14 ++++- .../usage_embeddings_response.rbi | 14 ++++- .../usage_file_search_calls_response.rbi | 14 ++++- .../organization/usage_images_response.rbi | 14 ++++- .../usage_moderations_response.rbi | 14 ++++- .../usage_vector_stores_response.rbi | 14 ++++- .../usage_web_search_calls_response.rbi | 14 ++++- .../resources/admin/organization/projects.rbi | 13 ++++- .../admin/organization/cost_quantity_unit.rbs | 33 +++++++++++ .../models/admin/organization/project.rbs | 9 +++ .../organization/project_create_params.rbs | 11 +++- .../admin/organization/project_residency.rbs | 40 +++++++++++++ .../usage_audio_speeches_response.rbs | 9 ++- .../usage_audio_transcriptions_response.rbs | 9 ++- ...age_code_interpreter_sessions_response.rbs | 9 ++- .../usage_completions_response.rbs | 9 ++- .../organization/usage_costs_response.rbs | 9 ++- .../usage_embeddings_response.rbs | 9 ++- .../usage_file_search_calls_response.rbs | 9 ++- .../organization/usage_images_response.rbs | 9 ++- .../usage_moderations_response.rbs | 9 ++- .../usage_vector_stores_response.rbs | 9 ++- .../usage_web_search_calls_response.rbs | 9 ++- .../resources/admin/organization/projects.rbs | 1 + .../admin/organization/projects_test.rb | 5 ++ 54 files changed, 824 insertions(+), 68 deletions(-) create mode 100644 lib/openai/models/admin/organization/cost_quantity_unit.rb create mode 100644 lib/openai/models/admin/organization/project_residency.rb create mode 100644 rbi/openai/models/admin/organization/cost_quantity_unit.rbi create mode 100644 rbi/openai/models/admin/organization/project_residency.rbi create mode 100644 sig/openai/models/admin/organization/cost_quantity_unit.rbs create mode 100644 sig/openai/models/admin/organization/project_residency.rbs diff --git a/.castiron.stats.yml b/.castiron.stats.yml index b6ca2a86d..bc0277f12 100644 --- a/.castiron.stats.yml +++ b/.castiron.stats.yml @@ -1,8 +1,8 @@ schema_version: 1 -generation_id: 5ab7c0df-1b0e-4726-b330-66fc16a4d92e -openapi_spec_hash: 92700e1a33a4f6174a01b46648c8186a -openapi_transformed_spec_hash: e37bbe0f04caa6093f1cb5d65d23ad03 -config_hash: beab4f058e80bab30085bb6c8467b65f -codegen_sha: ee84ff7196fb28135d30ebe7a1c9fb86097a0c6e -codegen_hash: 5d7050df9f0d5edfe18c060ff9755376b15be0ed7dabc1d09ddb0062dcdf8143 -public_codegen_sha: e0ac50e69382b43efbc0e605a37b56d10dd65e83 +generation_id: 8def2c80-1858-4c9d-9b9b-dc3c6676fea6 +openapi_spec_hash: b2c62b342b04685226037c980f2b5a7a +openapi_transformed_spec_hash: ba44bf31326f01a1d886b7510dd9da8a +config_hash: 1e11a5becf7bc1c2e9e07b8654872dc4 +codegen_sha: 5f2f7e6d049ccc5916ffd6fea8e0794ae3c0cbd9 +codegen_hash: 663402af14642770c879417eb667124b7f3d9737fd077e484448afc7a3962e78 +public_codegen_sha: 285ffa3e3e167b59861e8c5d88e9030b1ca6c9d4 diff --git a/api_reference/openapi.transformed.yml b/api_reference/openapi.transformed.yml index c12baba61..164fe8c28 100644 --- a/api_reference/openapi.transformed.yml +++ b/api_reference/openapi.transformed.yml @@ -9552,7 +9552,8 @@ paths: "line_item": null, "project_id": null, "api_key_id": null, - "quantity": null + "quantity": null, + "quantity_unit": null } ] } @@ -31011,6 +31012,21 @@ components: - type: number description: When `group_by=line_item`, this field provides the quantity of the grouped costs result. - type: 'null' + quantity_unit: + description: The unit of the `quantity` value. If no single supported unit applies to the result, this field is `null`. + anyOf: + - type: string + - type: string + enum: + - tokens + - 1000_tokens + - duration_seconds + - duration_minutes + - duration_hours + - gibibyte_hours + - images + - characters + - type: 'null' required: - object x-oaiMeta: @@ -31022,9 +31038,10 @@ components: "value": 0.06, "currency": "usd" }, - "line_item": "Image models", + "line_item": "input_tokens", "project_id": "proj_abc", - "quantity": 10000 + "quantity": 10000, + "quantity_unit": "tokens" } CreateAssistantRequest: type: object @@ -42278,6 +42295,9 @@ components: - type: string - type: 'null' description: The external key associated with the project. + residency: + $ref: '#/components/schemas/PublicProjectResidency' + description: The residency configuration for the project. required: - id - object @@ -42473,7 +42493,15 @@ components: anyOf: - type: string - type: 'null' - description: Create the project with the specified data residency region. Your organization must have access to Data residency functionality in order to use. See [data residency controls](https://platform.openai.com/docs/guides/your-data#data-residency-controls) to review the functionality and limitations of setting this field. + deprecated: true + description: |- + Create the project with the specified data residency region. Your organization must have access to Data residency functionality in order to use. See [data residency controls](https://platform.openai.com/docs/guides/your-data#data-residency-controls) to review the functionality and limitations of setting this field. + Deprecated: use `residency` instead. Do not provide both `geography` and `residency`. + residency: + anyOf: + - $ref: '#/components/schemas/PublicProjectResidency' + - type: 'null' + description: Create the project with the specified residency configuration. Your organization must have access to the requested residency configuration in order to use it. See [data residency controls](https://platform.openai.com/docs/guides/your-data#data-residency-controls) to review the functionality and limitations of setting this field. external_key_id: anyOf: - type: string @@ -43170,7 +43198,10 @@ components: anyOf: - type: string - type: 'null' - description: Geography for the project. + deprecated: true + description: |- + Geography for the project. + Deprecated: use `residency` when creating a project to configure data residency. This field is retained for backward compatibility. ProjectUser: type: object description: Represents an individual user in a project. @@ -64729,6 +64760,21 @@ components: - input_tokens_details title: Image generation usage description: For `gpt-image-1` only, the token usage information for the image generation. + PublicProjectResidency: + type: string + enum: + - GLOBAL + - US_STORAGE_PROCESSING + - EU_STORAGE_PROCESSING + - JP_STORAGE + - KR_STORAGE + - CA_STORAGE + - SG_STORAGE + - IN_STORAGE + - AU_STORAGE + - GB_STORAGE + - AE_STORAGE + - AE_STORAGE_PROCESSING SpecificProgrammaticToolCallingParam: properties: type: diff --git a/lib/openai.rb b/lib/openai.rb index 981bb4acc..6c7966987 100644 --- a/lib/openai.rb +++ b/lib/openai.rb @@ -234,6 +234,7 @@ require_relative "openai/models/admin/organization/certificate_list_response" require_relative "openai/models/admin/organization/certificate_retrieve_params" require_relative "openai/models/admin/organization/certificate_update_params" +require_relative "openai/models/admin/organization/cost_quantity_unit" require_relative "openai/models/admin/organization/data_retention_retrieve_params" require_relative "openai/models/admin/organization/data_retention_update_params" require_relative "openai/models/admin/organization/group" @@ -276,6 +277,7 @@ require_relative "openai/models/admin/organization/project_archive_params" require_relative "openai/models/admin/organization/project_create_params" require_relative "openai/models/admin/organization/project_list_params" +require_relative "openai/models/admin/organization/project_residency" require_relative "openai/models/admin/organization/project_retrieve_params" require_relative "openai/models/admin/organization/projects/api_key_delete_params" require_relative "openai/models/admin/organization/projects/api_key_delete_response" diff --git a/lib/openai/models/admin/organization/cost_quantity_unit.rb b/lib/openai/models/admin/organization/cost_quantity_unit.rb new file mode 100644 index 000000000..da384a5b8 --- /dev/null +++ b/lib/openai/models/admin/organization/cost_quantity_unit.rb @@ -0,0 +1,53 @@ +# frozen_string_literal: true + +module OpenAI + module Models + module Admin + module Organization + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + module CostQuantityUnit + extend OpenAI::Internal::Type::Union + + variant String + + variant const: -> { OpenAI::Models::Admin::Organization::CostQuantityUnit::TOKENS } + + variant const: -> { OpenAI::Models::Admin::Organization::CostQuantityUnit::COST_QUANTITY_UNIT_1000_TOKENS } + + variant const: -> { OpenAI::Models::Admin::Organization::CostQuantityUnit::DURATION_SECONDS } + + variant const: -> { OpenAI::Models::Admin::Organization::CostQuantityUnit::DURATION_MINUTES } + + variant const: -> { OpenAI::Models::Admin::Organization::CostQuantityUnit::DURATION_HOURS } + + variant const: -> { OpenAI::Models::Admin::Organization::CostQuantityUnit::GIBIBYTE_HOURS } + + variant const: -> { OpenAI::Models::Admin::Organization::CostQuantityUnit::IMAGES } + + variant const: -> { OpenAI::Models::Admin::Organization::CostQuantityUnit::CHARACTERS } + + # @!method self.variants + # @return [Array(String, Symbol)] + + define_sorbet_constant!(:Variants) do + T.type_alias { T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::TaggedSymbol) } + end + + # @!group + + TOKENS = :tokens + COST_QUANTITY_UNIT_1000_TOKENS = :"1000_tokens" + DURATION_SECONDS = :duration_seconds + DURATION_MINUTES = :duration_minutes + DURATION_HOURS = :duration_hours + GIBIBYTE_HOURS = :gibibyte_hours + IMAGES = :images + CHARACTERS = :characters + + # @!endgroup + end + end + end + end +end diff --git a/lib/openai/models/admin/organization/project.rb b/lib/openai/models/admin/organization/project.rb index 818c4b989..32093c795 100644 --- a/lib/openai/models/admin/organization/project.rb +++ b/lib/openai/models/admin/organization/project.rb @@ -42,13 +42,19 @@ class Project < OpenAI::Internal::Type::BaseModel # @return [String, nil] optional :name, String, nil?: true + # @!attribute residency + # The residency configuration for the project. + # + # @return [Symbol, OpenAI::Models::Admin::Organization::ProjectResidency, nil] + optional :residency, enum: -> { OpenAI::Admin::Organization::ProjectResidency } + # @!attribute status # `active` or `archived` # # @return [String, nil] optional :status, String, nil?: true - # @!method initialize(id:, created_at:, archived_at: nil, external_key_id: nil, name: nil, status: nil, object: :"organization.project") + # @!method initialize(id:, created_at:, archived_at: nil, external_key_id: nil, name: nil, residency: nil, status: nil, object: :"organization.project") # Represents an individual project. # # @param id [String] The identifier, which can be referenced in API endpoints @@ -61,6 +67,8 @@ class Project < OpenAI::Internal::Type::BaseModel # # @param name [String, nil] The name of the project. This appears in reporting. # + # @param residency [Symbol, OpenAI::Models::Admin::Organization::ProjectResidency] The residency configuration for the project. + # # @param status [String, nil] `active` or `archived` # # @param object [Symbol, :"organization.project"] The object type, which is always `organization.project` diff --git a/lib/openai/models/admin/organization/project_create_params.rb b/lib/openai/models/admin/organization/project_create_params.rb index ed7e8d711..b02725875 100644 --- a/lib/openai/models/admin/organization/project_create_params.rb +++ b/lib/openai/models/admin/organization/project_create_params.rb @@ -22,15 +22,28 @@ class ProjectCreateParams < OpenAI::Internal::Type::BaseModel optional :external_key_id, String, nil?: true # @!attribute geography + # @deprecated + # # Create the project with the specified data residency region. Your organization # must have access to Data residency functionality in order to use. See # [data residency controls](https://platform.openai.com/docs/guides/your-data#data-residency-controls) - # to review the functionality and limitations of setting this field. + # to review the functionality and limitations of setting this field. Deprecated: + # use `residency` instead. Do not provide both `geography` and `residency`. # # @return [String, nil] optional :geography, String, nil?: true - # @!method initialize(name:, external_key_id: nil, geography: nil, request_options: {}) + # @!attribute residency + # Create the project with the specified residency configuration. Your organization + # must have access to the requested residency configuration in order to use it. + # See + # [data residency controls](https://platform.openai.com/docs/guides/your-data#data-residency-controls) + # to review the functionality and limitations of setting this field. + # + # @return [Symbol, OpenAI::Models::Admin::Organization::ProjectResidency, nil] + optional :residency, enum: -> { OpenAI::Admin::Organization::ProjectResidency }, nil?: true + + # @!method initialize(name:, external_key_id: nil, geography: nil, residency: nil, request_options: {}) # Some parameter documentations has been truncated, see # {OpenAI::Models::Admin::Organization::ProjectCreateParams} for more details. # @@ -40,6 +53,8 @@ class ProjectCreateParams < OpenAI::Internal::Type::BaseModel # # @param geography [String, nil] Create the project with the specified data residency region. Your organization m # + # @param residency [Symbol, OpenAI::Models::Admin::Organization::ProjectResidency, nil] Create the project with the specified residency configuration. Your organization + # # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/openai/models/admin/organization/project_residency.rb b/lib/openai/models/admin/organization/project_residency.rb new file mode 100644 index 000000000..024b57cee --- /dev/null +++ b/lib/openai/models/admin/organization/project_residency.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +module OpenAI + module Models + module Admin + module Organization + module ProjectResidency + extend OpenAI::Internal::Type::Enum + + GLOBAL = :GLOBAL + US_STORAGE_PROCESSING = :US_STORAGE_PROCESSING + EU_STORAGE_PROCESSING = :EU_STORAGE_PROCESSING + JP_STORAGE = :JP_STORAGE + KR_STORAGE = :KR_STORAGE + CA_STORAGE = :CA_STORAGE + SG_STORAGE = :SG_STORAGE + IN_STORAGE = :IN_STORAGE + AU_STORAGE = :AU_STORAGE + GB_STORAGE = :GB_STORAGE + AE_STORAGE = :AE_STORAGE + AE_STORAGE_PROCESSING = :AE_STORAGE_PROCESSING + + # @!method self.values + # @return [Array] + end + end + end + end +end diff --git a/lib/openai/models/admin/organization/project_update_params.rb b/lib/openai/models/admin/organization/project_update_params.rb index d89a492db..6a4784f2d 100644 --- a/lib/openai/models/admin/organization/project_update_params.rb +++ b/lib/openai/models/admin/organization/project_update_params.rb @@ -21,7 +21,10 @@ class ProjectUpdateParams < OpenAI::Internal::Type::BaseModel optional :external_key_id, String, nil?: true # @!attribute geography - # Geography for the project. + # @deprecated + # + # Geography for the project. Deprecated: use `residency` when creating a project + # to configure data residency. This field is retained for backward compatibility. # # @return [String, nil] optional :geography, String, nil?: true @@ -33,6 +36,9 @@ class ProjectUpdateParams < OpenAI::Internal::Type::BaseModel optional :name, String, nil?: true # @!method initialize(project_id:, external_key_id: nil, geography: nil, name: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {OpenAI::Models::Admin::Organization::ProjectUpdateParams} for more details. + # # @param project_id [String] # # @param external_key_id [String, nil] External key ID to associate with the project. diff --git a/lib/openai/models/admin/organization/usage_audio_speeches_response.rb b/lib/openai/models/admin/organization/usage_audio_speeches_response.rb index 0c4e9708c..9d53c1ca9 100644 --- a/lib/openai/models/admin/organization/usage_audio_speeches_response.rb +++ b/lib/openai/models/admin/organization/usage_audio_speeches_response.rb @@ -969,7 +969,20 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # @return [Float, nil] optional :quantity, Float, nil?: true - # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, object: :"organization.costs.result") + # @!attribute quantity_unit + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + # + # @return [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] + optional( + :quantity_unit, + union: -> { + OpenAI::Admin::Organization::CostQuantityUnit + }, + nil?: true + ) + + # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, quantity_unit: nil, object: :"organization.costs.result") # Some parameter documentations has been truncated, see # {OpenAI::Models::Admin::Organization::UsageAudioSpeechesResponse::Data::Result::OrganizationCostsResult} # for more details. @@ -986,6 +999,8 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # # @param quantity [Float, nil] When `group_by=line_item`, this field provides the quantity of the grouped costs # + # @param quantity_unit [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] The unit of the `quantity` value. If no single supported unit applies to the res + # # @param object [Symbol, :"organization.costs.result"] # @see OpenAI::Models::Admin::Organization::UsageAudioSpeechesResponse::Data::Result::OrganizationCostsResult#amount diff --git a/lib/openai/models/admin/organization/usage_audio_transcriptions_response.rb b/lib/openai/models/admin/organization/usage_audio_transcriptions_response.rb index a4ab7dcc7..1c8ac2d2f 100644 --- a/lib/openai/models/admin/organization/usage_audio_transcriptions_response.rb +++ b/lib/openai/models/admin/organization/usage_audio_transcriptions_response.rb @@ -971,7 +971,20 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # @return [Float, nil] optional :quantity, Float, nil?: true - # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, object: :"organization.costs.result") + # @!attribute quantity_unit + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + # + # @return [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] + optional( + :quantity_unit, + union: -> { + OpenAI::Admin::Organization::CostQuantityUnit + }, + nil?: true + ) + + # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, quantity_unit: nil, object: :"organization.costs.result") # Some parameter documentations has been truncated, see # {OpenAI::Models::Admin::Organization::UsageAudioTranscriptionsResponse::Data::Result::OrganizationCostsResult} # for more details. @@ -988,6 +1001,8 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # # @param quantity [Float, nil] When `group_by=line_item`, this field provides the quantity of the grouped costs # + # @param quantity_unit [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] The unit of the `quantity` value. If no single supported unit applies to the res + # # @param object [Symbol, :"organization.costs.result"] # @see OpenAI::Models::Admin::Organization::UsageAudioTranscriptionsResponse::Data::Result::OrganizationCostsResult#amount diff --git a/lib/openai/models/admin/organization/usage_code_interpreter_sessions_response.rb b/lib/openai/models/admin/organization/usage_code_interpreter_sessions_response.rb index adf4169c4..a3025d625 100644 --- a/lib/openai/models/admin/organization/usage_code_interpreter_sessions_response.rb +++ b/lib/openai/models/admin/organization/usage_code_interpreter_sessions_response.rb @@ -971,7 +971,20 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # @return [Float, nil] optional :quantity, Float, nil?: true - # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, object: :"organization.costs.result") + # @!attribute quantity_unit + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + # + # @return [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] + optional( + :quantity_unit, + union: -> { + OpenAI::Admin::Organization::CostQuantityUnit + }, + nil?: true + ) + + # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, quantity_unit: nil, object: :"organization.costs.result") # Some parameter documentations has been truncated, see # {OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationCostsResult} # for more details. @@ -988,6 +1001,8 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # # @param quantity [Float, nil] When `group_by=line_item`, this field provides the quantity of the grouped costs # + # @param quantity_unit [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] The unit of the `quantity` value. If no single supported unit applies to the res + # # @param object [Symbol, :"organization.costs.result"] # @see OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationCostsResult#amount diff --git a/lib/openai/models/admin/organization/usage_completions_response.rb b/lib/openai/models/admin/organization/usage_completions_response.rb index d786f585d..2c65864e1 100644 --- a/lib/openai/models/admin/organization/usage_completions_response.rb +++ b/lib/openai/models/admin/organization/usage_completions_response.rb @@ -967,7 +967,20 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # @return [Float, nil] optional :quantity, Float, nil?: true - # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, object: :"organization.costs.result") + # @!attribute quantity_unit + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + # + # @return [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] + optional( + :quantity_unit, + union: -> { + OpenAI::Admin::Organization::CostQuantityUnit + }, + nil?: true + ) + + # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, quantity_unit: nil, object: :"organization.costs.result") # Some parameter documentations has been truncated, see # {OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationCostsResult} # for more details. @@ -984,6 +997,8 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # # @param quantity [Float, nil] When `group_by=line_item`, this field provides the quantity of the grouped costs # + # @param quantity_unit [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] The unit of the `quantity` value. If no single supported unit applies to the res + # # @param object [Symbol, :"organization.costs.result"] # @see OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationCostsResult#amount diff --git a/lib/openai/models/admin/organization/usage_costs_response.rb b/lib/openai/models/admin/organization/usage_costs_response.rb index 8a3faabe5..86de07175 100644 --- a/lib/openai/models/admin/organization/usage_costs_response.rb +++ b/lib/openai/models/admin/organization/usage_costs_response.rb @@ -965,7 +965,20 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # @return [Float, nil] optional :quantity, Float, nil?: true - # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, object: :"organization.costs.result") + # @!attribute quantity_unit + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + # + # @return [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] + optional( + :quantity_unit, + union: -> { + OpenAI::Admin::Organization::CostQuantityUnit + }, + nil?: true + ) + + # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, quantity_unit: nil, object: :"organization.costs.result") # Some parameter documentations has been truncated, see # {OpenAI::Models::Admin::Organization::UsageCostsResponse::Data::Result::OrganizationCostsResult} # for more details. @@ -982,6 +995,8 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # # @param quantity [Float, nil] When `group_by=line_item`, this field provides the quantity of the grouped costs # + # @param quantity_unit [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] The unit of the `quantity` value. If no single supported unit applies to the res + # # @param object [Symbol, :"organization.costs.result"] # @see OpenAI::Models::Admin::Organization::UsageCostsResponse::Data::Result::OrganizationCostsResult#amount diff --git a/lib/openai/models/admin/organization/usage_embeddings_response.rb b/lib/openai/models/admin/organization/usage_embeddings_response.rb index 195c06070..699aecb82 100644 --- a/lib/openai/models/admin/organization/usage_embeddings_response.rb +++ b/lib/openai/models/admin/organization/usage_embeddings_response.rb @@ -967,7 +967,20 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # @return [Float, nil] optional :quantity, Float, nil?: true - # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, object: :"organization.costs.result") + # @!attribute quantity_unit + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + # + # @return [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] + optional( + :quantity_unit, + union: -> { + OpenAI::Admin::Organization::CostQuantityUnit + }, + nil?: true + ) + + # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, quantity_unit: nil, object: :"organization.costs.result") # Some parameter documentations has been truncated, see # {OpenAI::Models::Admin::Organization::UsageEmbeddingsResponse::Data::Result::OrganizationCostsResult} # for more details. @@ -984,6 +997,8 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # # @param quantity [Float, nil] When `group_by=line_item`, this field provides the quantity of the grouped costs # + # @param quantity_unit [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] The unit of the `quantity` value. If no single supported unit applies to the res + # # @param object [Symbol, :"organization.costs.result"] # @see OpenAI::Models::Admin::Organization::UsageEmbeddingsResponse::Data::Result::OrganizationCostsResult#amount diff --git a/lib/openai/models/admin/organization/usage_file_search_calls_response.rb b/lib/openai/models/admin/organization/usage_file_search_calls_response.rb index e0b230099..e35b8d600 100644 --- a/lib/openai/models/admin/organization/usage_file_search_calls_response.rb +++ b/lib/openai/models/admin/organization/usage_file_search_calls_response.rb @@ -969,7 +969,20 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # @return [Float, nil] optional :quantity, Float, nil?: true - # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, object: :"organization.costs.result") + # @!attribute quantity_unit + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + # + # @return [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] + optional( + :quantity_unit, + union: -> { + OpenAI::Admin::Organization::CostQuantityUnit + }, + nil?: true + ) + + # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, quantity_unit: nil, object: :"organization.costs.result") # Some parameter documentations has been truncated, see # {OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationCostsResult} # for more details. @@ -986,6 +999,8 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # # @param quantity [Float, nil] When `group_by=line_item`, this field provides the quantity of the grouped costs # + # @param quantity_unit [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] The unit of the `quantity` value. If no single supported unit applies to the res + # # @param object [Symbol, :"organization.costs.result"] # @see OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationCostsResult#amount diff --git a/lib/openai/models/admin/organization/usage_images_response.rb b/lib/openai/models/admin/organization/usage_images_response.rb index 9e469cd9d..9eafa549b 100644 --- a/lib/openai/models/admin/organization/usage_images_response.rb +++ b/lib/openai/models/admin/organization/usage_images_response.rb @@ -965,7 +965,20 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # @return [Float, nil] optional :quantity, Float, nil?: true - # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, object: :"organization.costs.result") + # @!attribute quantity_unit + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + # + # @return [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] + optional( + :quantity_unit, + union: -> { + OpenAI::Admin::Organization::CostQuantityUnit + }, + nil?: true + ) + + # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, quantity_unit: nil, object: :"organization.costs.result") # Some parameter documentations has been truncated, see # {OpenAI::Models::Admin::Organization::UsageImagesResponse::Data::Result::OrganizationCostsResult} # for more details. @@ -982,6 +995,8 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # # @param quantity [Float, nil] When `group_by=line_item`, this field provides the quantity of the grouped costs # + # @param quantity_unit [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] The unit of the `quantity` value. If no single supported unit applies to the res + # # @param object [Symbol, :"organization.costs.result"] # @see OpenAI::Models::Admin::Organization::UsageImagesResponse::Data::Result::OrganizationCostsResult#amount diff --git a/lib/openai/models/admin/organization/usage_moderations_response.rb b/lib/openai/models/admin/organization/usage_moderations_response.rb index 8933782e8..8e37aa0fe 100644 --- a/lib/openai/models/admin/organization/usage_moderations_response.rb +++ b/lib/openai/models/admin/organization/usage_moderations_response.rb @@ -967,7 +967,20 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # @return [Float, nil] optional :quantity, Float, nil?: true - # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, object: :"organization.costs.result") + # @!attribute quantity_unit + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + # + # @return [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] + optional( + :quantity_unit, + union: -> { + OpenAI::Admin::Organization::CostQuantityUnit + }, + nil?: true + ) + + # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, quantity_unit: nil, object: :"organization.costs.result") # Some parameter documentations has been truncated, see # {OpenAI::Models::Admin::Organization::UsageModerationsResponse::Data::Result::OrganizationCostsResult} # for more details. @@ -984,6 +997,8 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # # @param quantity [Float, nil] When `group_by=line_item`, this field provides the quantity of the grouped costs # + # @param quantity_unit [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] The unit of the `quantity` value. If no single supported unit applies to the res + # # @param object [Symbol, :"organization.costs.result"] # @see OpenAI::Models::Admin::Organization::UsageModerationsResponse::Data::Result::OrganizationCostsResult#amount diff --git a/lib/openai/models/admin/organization/usage_vector_stores_response.rb b/lib/openai/models/admin/organization/usage_vector_stores_response.rb index 27c584510..1c3d5647b 100644 --- a/lib/openai/models/admin/organization/usage_vector_stores_response.rb +++ b/lib/openai/models/admin/organization/usage_vector_stores_response.rb @@ -969,7 +969,20 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # @return [Float, nil] optional :quantity, Float, nil?: true - # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, object: :"organization.costs.result") + # @!attribute quantity_unit + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + # + # @return [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] + optional( + :quantity_unit, + union: -> { + OpenAI::Admin::Organization::CostQuantityUnit + }, + nil?: true + ) + + # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, quantity_unit: nil, object: :"organization.costs.result") # Some parameter documentations has been truncated, see # {OpenAI::Models::Admin::Organization::UsageVectorStoresResponse::Data::Result::OrganizationCostsResult} # for more details. @@ -986,6 +999,8 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # # @param quantity [Float, nil] When `group_by=line_item`, this field provides the quantity of the grouped costs # + # @param quantity_unit [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] The unit of the `quantity` value. If no single supported unit applies to the res + # # @param object [Symbol, :"organization.costs.result"] # @see OpenAI::Models::Admin::Organization::UsageVectorStoresResponse::Data::Result::OrganizationCostsResult#amount diff --git a/lib/openai/models/admin/organization/usage_web_search_calls_response.rb b/lib/openai/models/admin/organization/usage_web_search_calls_response.rb index 0fb1d9d7f..758f8cab3 100644 --- a/lib/openai/models/admin/organization/usage_web_search_calls_response.rb +++ b/lib/openai/models/admin/organization/usage_web_search_calls_response.rb @@ -969,7 +969,20 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # @return [Float, nil] optional :quantity, Float, nil?: true - # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, object: :"organization.costs.result") + # @!attribute quantity_unit + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + # + # @return [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] + optional( + :quantity_unit, + union: -> { + OpenAI::Admin::Organization::CostQuantityUnit + }, + nil?: true + ) + + # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, quantity_unit: nil, object: :"organization.costs.result") # Some parameter documentations has been truncated, see # {OpenAI::Models::Admin::Organization::UsageWebSearchCallsResponse::Data::Result::OrganizationCostsResult} # for more details. @@ -986,6 +999,8 @@ class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel # # @param quantity [Float, nil] When `group_by=line_item`, this field provides the quantity of the grouped costs # + # @param quantity_unit [String, Symbol, OpenAI::Models::Admin::Organization::CostQuantityUnit, nil] The unit of the `quantity` value. If no single supported unit applies to the res + # # @param object [Symbol, :"organization.costs.result"] # @see OpenAI::Models::Admin::Organization::UsageWebSearchCallsResponse::Data::Result::OrganizationCostsResult#amount diff --git a/lib/openai/resources/admin/organization/projects.rb b/lib/openai/resources/admin/organization/projects.rb index 0f54f59cc..361bc619f 100644 --- a/lib/openai/resources/admin/organization/projects.rb +++ b/lib/openai/resources/admin/organization/projects.rb @@ -47,7 +47,7 @@ class Projects # Create a new project in the organization. Projects can be created and archived, # but cannot be deleted. # - # @overload create(name:, external_key_id: nil, geography: nil, request_options: {}) + # @overload create(name:, external_key_id: nil, geography: nil, residency: nil, request_options: {}) # # @param name [String] The friendly name of the project, this name appears in reports. # @@ -55,6 +55,8 @@ class Projects # # @param geography [String, nil] Create the project with the specified data residency region. Your organization m # + # @param residency [Symbol, OpenAI::Models::Admin::Organization::ProjectResidency, nil] Create the project with the specified residency configuration. Your organization + # # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [OpenAI::Models::Admin::Organization::Project] @@ -93,6 +95,9 @@ def retrieve(project_id, params = {}) ) end + # Some parameter documentations has been truncated, see + # {OpenAI::Models::Admin::Organization::ProjectUpdateParams} for more details. + # # Modifies a project in the organization. # # @overload update(project_id, external_key_id: nil, geography: nil, name: nil, request_options: {}) diff --git a/rbi/openai/models/admin/organization/cost_quantity_unit.rbi b/rbi/openai/models/admin/organization/cost_quantity_unit.rbi new file mode 100644 index 000000000..1eaf192be --- /dev/null +++ b/rbi/openai/models/admin/organization/cost_quantity_unit.rbi @@ -0,0 +1,51 @@ +# typed: strong + +module OpenAI + module Models + + module Admin + + module Organization + + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + module CostQuantityUnit + extend OpenAI::Internal::Type::Union + + Variants = T.type_alias do + T.any( + String, + OpenAI::Admin::Organization::CostQuantityUnit::TaggedSymbol + ) + end + + sig { override.returns(T::Array[OpenAI::Admin::Organization::CostQuantityUnit::Variants]) } + def self.variants + end + + TaggedSymbol = T.type_alias do + T.all(Symbol, OpenAI::Admin::Organization::CostQuantityUnit) + end + + OrSymbol = T.type_alias { T.any(Symbol, String) } + + TOKENS = T.let(:tokens, OpenAI::Admin::Organization::CostQuantityUnit::TaggedSymbol) + COST_QUANTITY_UNIT_1000_TOKENS = T.let( + :"1000_tokens", + OpenAI::Admin::Organization::CostQuantityUnit::TaggedSymbol + ) + DURATION_SECONDS = T.let(:duration_seconds, OpenAI::Admin::Organization::CostQuantityUnit::TaggedSymbol) + DURATION_MINUTES = T.let(:duration_minutes, OpenAI::Admin::Organization::CostQuantityUnit::TaggedSymbol) + DURATION_HOURS = T.let(:duration_hours, OpenAI::Admin::Organization::CostQuantityUnit::TaggedSymbol) + GIBIBYTE_HOURS = T.let(:gibibyte_hours, OpenAI::Admin::Organization::CostQuantityUnit::TaggedSymbol) + IMAGES = T.let(:images, OpenAI::Admin::Organization::CostQuantityUnit::TaggedSymbol) + CHARACTERS = T.let(:characters, OpenAI::Admin::Organization::CostQuantityUnit::TaggedSymbol) + + end + + end + + end + + end +end diff --git a/rbi/openai/models/admin/organization/project.rbi b/rbi/openai/models/admin/organization/project.rbi index c3d28a2f9..5f80ccea5 100644 --- a/rbi/openai/models/admin/organization/project.rbi +++ b/rbi/openai/models/admin/organization/project.rbi @@ -40,6 +40,13 @@ module OpenAI sig { returns(T.nilable(String)) } attr_accessor :name + # The residency configuration for the project. + sig { returns(T.nilable(OpenAI::Admin::Organization::ProjectResidency::TaggedSymbol)) } + attr_reader :residency + + sig { params(residency: OpenAI::Admin::Organization::ProjectResidency::OrSymbol).void } + attr_writer :residency + # `active` or `archived` sig { returns(T.nilable(String)) } attr_accessor :status @@ -58,6 +65,8 @@ module OpenAI name: T.nilable(String), + residency: OpenAI::Admin::Organization::ProjectResidency::OrSymbol, + status: T.nilable(String), object: Symbol @@ -81,6 +90,9 @@ module OpenAI # The name of the project. This appears in reporting. name: nil, + # The residency configuration for the project. + residency: nil, + # `active` or `archived` status: nil, @@ -99,6 +111,7 @@ module OpenAI archived_at: T.nilable(Integer), external_key_id: T.nilable(String), name: T.nilable(String), + residency: OpenAI::Admin::Organization::ProjectResidency::TaggedSymbol, status: T.nilable(String) } ) diff --git a/rbi/openai/models/admin/organization/project_create_params.rbi b/rbi/openai/models/admin/organization/project_create_params.rbi index 95fe39833..ba15e008e 100644 --- a/rbi/openai/models/admin/organization/project_create_params.rbi +++ b/rbi/openai/models/admin/organization/project_create_params.rbi @@ -30,10 +30,19 @@ module OpenAI # Create the project with the specified data residency region. Your organization # must have access to Data residency functionality in order to use. See # [data residency controls](https://platform.openai.com/docs/guides/your-data#data-residency-controls) - # to review the functionality and limitations of setting this field. + # to review the functionality and limitations of setting this field. Deprecated: + # use `residency` instead. Do not provide both `geography` and `residency`. sig { returns(T.nilable(String)) } attr_accessor :geography + # Create the project with the specified residency configuration. Your organization + # must have access to the requested residency configuration in order to use it. + # See + # [data residency controls](https://platform.openai.com/docs/guides/your-data#data-residency-controls) + # to review the functionality and limitations of setting this field. + sig { returns(T.nilable(OpenAI::Admin::Organization::ProjectResidency::OrSymbol)) } + attr_accessor :residency + sig do params( @@ -43,6 +52,8 @@ module OpenAI geography: T.nilable(String), + residency: T.nilable(OpenAI::Admin::Organization::ProjectResidency::OrSymbol), + request_options: OpenAI::RequestOptions::OrHash ) .returns(T.attached_class) @@ -58,9 +69,17 @@ module OpenAI # Create the project with the specified data residency region. Your organization # must have access to Data residency functionality in order to use. See # [data residency controls](https://platform.openai.com/docs/guides/your-data#data-residency-controls) - # to review the functionality and limitations of setting this field. + # to review the functionality and limitations of setting this field. Deprecated: + # use `residency` instead. Do not provide both `geography` and `residency`. geography: nil, + # Create the project with the specified residency configuration. Your organization + # must have access to the requested residency configuration in order to use it. + # See + # [data residency controls](https://platform.openai.com/docs/guides/your-data#data-residency-controls) + # to review the functionality and limitations of setting this field. + residency: nil, + request_options: {} ) end @@ -71,6 +90,7 @@ module OpenAI name: String, external_key_id: T.nilable(String), geography: T.nilable(String), + residency: T.nilable(OpenAI::Admin::Organization::ProjectResidency::OrSymbol), request_options: OpenAI::RequestOptions } ) diff --git a/rbi/openai/models/admin/organization/project_residency.rbi b/rbi/openai/models/admin/organization/project_residency.rbi new file mode 100644 index 000000000..c750e4f93 --- /dev/null +++ b/rbi/openai/models/admin/organization/project_residency.rbi @@ -0,0 +1,48 @@ +# typed: strong + +module OpenAI + module Models + + module Admin + + module Organization + + module ProjectResidency + extend OpenAI::Internal::Type::Enum + + TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Admin::Organization::ProjectResidency) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GLOBAL = T.let(:GLOBAL, OpenAI::Admin::Organization::ProjectResidency::TaggedSymbol) + US_STORAGE_PROCESSING = T.let( + :US_STORAGE_PROCESSING, + OpenAI::Admin::Organization::ProjectResidency::TaggedSymbol + ) + EU_STORAGE_PROCESSING = T.let( + :EU_STORAGE_PROCESSING, + OpenAI::Admin::Organization::ProjectResidency::TaggedSymbol + ) + JP_STORAGE = T.let(:JP_STORAGE, OpenAI::Admin::Organization::ProjectResidency::TaggedSymbol) + KR_STORAGE = T.let(:KR_STORAGE, OpenAI::Admin::Organization::ProjectResidency::TaggedSymbol) + CA_STORAGE = T.let(:CA_STORAGE, OpenAI::Admin::Organization::ProjectResidency::TaggedSymbol) + SG_STORAGE = T.let(:SG_STORAGE, OpenAI::Admin::Organization::ProjectResidency::TaggedSymbol) + IN_STORAGE = T.let(:IN_STORAGE, OpenAI::Admin::Organization::ProjectResidency::TaggedSymbol) + AU_STORAGE = T.let(:AU_STORAGE, OpenAI::Admin::Organization::ProjectResidency::TaggedSymbol) + GB_STORAGE = T.let(:GB_STORAGE, OpenAI::Admin::Organization::ProjectResidency::TaggedSymbol) + AE_STORAGE = T.let(:AE_STORAGE, OpenAI::Admin::Organization::ProjectResidency::TaggedSymbol) + AE_STORAGE_PROCESSING = T.let( + :AE_STORAGE_PROCESSING, + OpenAI::Admin::Organization::ProjectResidency::TaggedSymbol + ) + + sig { override.returns(T::Array[OpenAI::Admin::Organization::ProjectResidency::TaggedSymbol]) } + def self.values + end + end + + end + + end + + end +end diff --git a/rbi/openai/models/admin/organization/project_update_params.rbi b/rbi/openai/models/admin/organization/project_update_params.rbi index a86bf7373..993974879 100644 --- a/rbi/openai/models/admin/organization/project_update_params.rbi +++ b/rbi/openai/models/admin/organization/project_update_params.rbi @@ -26,7 +26,8 @@ module OpenAI sig { returns(T.nilable(String)) } attr_accessor :external_key_id - # Geography for the project. + # Geography for the project. Deprecated: use `residency` when creating a project + # to configure data residency. This field is retained for backward compatibility. sig { returns(T.nilable(String)) } attr_accessor :geography @@ -56,7 +57,8 @@ module OpenAI # External key ID to associate with the project. external_key_id: nil, - # Geography for the project. + # Geography for the project. Deprecated: use `residency` when creating a project + # to configure data residency. This field is retained for backward compatibility. geography: nil, # The updated name of the project, this name appears in reports. diff --git a/rbi/openai/models/admin/organization/usage_audio_speeches_response.rbi b/rbi/openai/models/admin/organization/usage_audio_speeches_response.rbi index 714ce6c56..2d77c9251 100644 --- a/rbi/openai/models/admin/organization/usage_audio_speeches_response.rbi +++ b/rbi/openai/models/admin/organization/usage_audio_speeches_response.rbi @@ -1392,6 +1392,11 @@ module OpenAI sig { returns(T.nilable(Float)) } attr_accessor :quantity + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + sig { returns(T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol))) } + attr_accessor :quantity_unit + # The aggregated costs details of the specific time bucket. sig do params( @@ -1406,6 +1411,8 @@ module OpenAI quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)), + object: Symbol ) .returns(T.attached_class) @@ -1431,6 +1438,10 @@ module OpenAI # result. quantity: nil, + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + quantity_unit: nil, + object: :"organization.costs.result" ) end @@ -1443,7 +1454,8 @@ module OpenAI api_key_id: T.nilable(String), line_item: T.nilable(String), project_id: T.nilable(String), - quantity: T.nilable(Float) + quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)) } ) end diff --git a/rbi/openai/models/admin/organization/usage_audio_transcriptions_response.rbi b/rbi/openai/models/admin/organization/usage_audio_transcriptions_response.rbi index 82ec858b0..65929d28b 100644 --- a/rbi/openai/models/admin/organization/usage_audio_transcriptions_response.rbi +++ b/rbi/openai/models/admin/organization/usage_audio_transcriptions_response.rbi @@ -1394,6 +1394,11 @@ module OpenAI sig { returns(T.nilable(Float)) } attr_accessor :quantity + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + sig { returns(T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol))) } + attr_accessor :quantity_unit + # The aggregated costs details of the specific time bucket. sig do params( @@ -1408,6 +1413,8 @@ module OpenAI quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)), + object: Symbol ) .returns(T.attached_class) @@ -1433,6 +1440,10 @@ module OpenAI # result. quantity: nil, + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + quantity_unit: nil, + object: :"organization.costs.result" ) end @@ -1445,7 +1456,8 @@ module OpenAI api_key_id: T.nilable(String), line_item: T.nilable(String), project_id: T.nilable(String), - quantity: T.nilable(Float) + quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)) } ) end diff --git a/rbi/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbi b/rbi/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbi index 124440370..74a514db0 100644 --- a/rbi/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbi +++ b/rbi/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbi @@ -1396,6 +1396,11 @@ module OpenAI sig { returns(T.nilable(Float)) } attr_accessor :quantity + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + sig { returns(T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol))) } + attr_accessor :quantity_unit + # The aggregated costs details of the specific time bucket. sig do params( @@ -1410,6 +1415,8 @@ module OpenAI quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)), + object: Symbol ) .returns(T.attached_class) @@ -1435,6 +1442,10 @@ module OpenAI # result. quantity: nil, + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + quantity_unit: nil, + object: :"organization.costs.result" ) end @@ -1447,7 +1458,8 @@ module OpenAI api_key_id: T.nilable(String), line_item: T.nilable(String), project_id: T.nilable(String), - quantity: T.nilable(Float) + quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)) } ) end diff --git a/rbi/openai/models/admin/organization/usage_completions_response.rbi b/rbi/openai/models/admin/organization/usage_completions_response.rbi index 7252c2e1b..53f3d8815 100644 --- a/rbi/openai/models/admin/organization/usage_completions_response.rbi +++ b/rbi/openai/models/admin/organization/usage_completions_response.rbi @@ -1392,6 +1392,11 @@ module OpenAI sig { returns(T.nilable(Float)) } attr_accessor :quantity + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + sig { returns(T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol))) } + attr_accessor :quantity_unit + # The aggregated costs details of the specific time bucket. sig do params( @@ -1406,6 +1411,8 @@ module OpenAI quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)), + object: Symbol ) .returns(T.attached_class) @@ -1431,6 +1438,10 @@ module OpenAI # result. quantity: nil, + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + quantity_unit: nil, + object: :"organization.costs.result" ) end @@ -1443,7 +1454,8 @@ module OpenAI api_key_id: T.nilable(String), line_item: T.nilable(String), project_id: T.nilable(String), - quantity: T.nilable(Float) + quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)) } ) end diff --git a/rbi/openai/models/admin/organization/usage_costs_response.rbi b/rbi/openai/models/admin/organization/usage_costs_response.rbi index 686f7587c..a8d311349 100644 --- a/rbi/openai/models/admin/organization/usage_costs_response.rbi +++ b/rbi/openai/models/admin/organization/usage_costs_response.rbi @@ -1388,6 +1388,11 @@ module OpenAI sig { returns(T.nilable(Float)) } attr_accessor :quantity + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + sig { returns(T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol))) } + attr_accessor :quantity_unit + # The aggregated costs details of the specific time bucket. sig do params( @@ -1402,6 +1407,8 @@ module OpenAI quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)), + object: Symbol ) .returns(T.attached_class) @@ -1427,6 +1434,10 @@ module OpenAI # result. quantity: nil, + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + quantity_unit: nil, + object: :"organization.costs.result" ) end @@ -1439,7 +1450,8 @@ module OpenAI api_key_id: T.nilable(String), line_item: T.nilable(String), project_id: T.nilable(String), - quantity: T.nilable(Float) + quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)) } ) end diff --git a/rbi/openai/models/admin/organization/usage_embeddings_response.rbi b/rbi/openai/models/admin/organization/usage_embeddings_response.rbi index 4e90726d6..a84b9d605 100644 --- a/rbi/openai/models/admin/organization/usage_embeddings_response.rbi +++ b/rbi/openai/models/admin/organization/usage_embeddings_response.rbi @@ -1392,6 +1392,11 @@ module OpenAI sig { returns(T.nilable(Float)) } attr_accessor :quantity + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + sig { returns(T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol))) } + attr_accessor :quantity_unit + # The aggregated costs details of the specific time bucket. sig do params( @@ -1406,6 +1411,8 @@ module OpenAI quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)), + object: Symbol ) .returns(T.attached_class) @@ -1431,6 +1438,10 @@ module OpenAI # result. quantity: nil, + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + quantity_unit: nil, + object: :"organization.costs.result" ) end @@ -1443,7 +1454,8 @@ module OpenAI api_key_id: T.nilable(String), line_item: T.nilable(String), project_id: T.nilable(String), - quantity: T.nilable(Float) + quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)) } ) end diff --git a/rbi/openai/models/admin/organization/usage_file_search_calls_response.rbi b/rbi/openai/models/admin/organization/usage_file_search_calls_response.rbi index 8433acb84..cece821f3 100644 --- a/rbi/openai/models/admin/organization/usage_file_search_calls_response.rbi +++ b/rbi/openai/models/admin/organization/usage_file_search_calls_response.rbi @@ -1394,6 +1394,11 @@ module OpenAI sig { returns(T.nilable(Float)) } attr_accessor :quantity + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + sig { returns(T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol))) } + attr_accessor :quantity_unit + # The aggregated costs details of the specific time bucket. sig do params( @@ -1408,6 +1413,8 @@ module OpenAI quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)), + object: Symbol ) .returns(T.attached_class) @@ -1433,6 +1440,10 @@ module OpenAI # result. quantity: nil, + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + quantity_unit: nil, + object: :"organization.costs.result" ) end @@ -1445,7 +1456,8 @@ module OpenAI api_key_id: T.nilable(String), line_item: T.nilable(String), project_id: T.nilable(String), - quantity: T.nilable(Float) + quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)) } ) end diff --git a/rbi/openai/models/admin/organization/usage_images_response.rbi b/rbi/openai/models/admin/organization/usage_images_response.rbi index ab8b5e4d3..ec66a99c8 100644 --- a/rbi/openai/models/admin/organization/usage_images_response.rbi +++ b/rbi/openai/models/admin/organization/usage_images_response.rbi @@ -1388,6 +1388,11 @@ module OpenAI sig { returns(T.nilable(Float)) } attr_accessor :quantity + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + sig { returns(T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol))) } + attr_accessor :quantity_unit + # The aggregated costs details of the specific time bucket. sig do params( @@ -1402,6 +1407,8 @@ module OpenAI quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)), + object: Symbol ) .returns(T.attached_class) @@ -1427,6 +1434,10 @@ module OpenAI # result. quantity: nil, + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + quantity_unit: nil, + object: :"organization.costs.result" ) end @@ -1439,7 +1450,8 @@ module OpenAI api_key_id: T.nilable(String), line_item: T.nilable(String), project_id: T.nilable(String), - quantity: T.nilable(Float) + quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)) } ) end diff --git a/rbi/openai/models/admin/organization/usage_moderations_response.rbi b/rbi/openai/models/admin/organization/usage_moderations_response.rbi index b8b638c97..00f6a9ccc 100644 --- a/rbi/openai/models/admin/organization/usage_moderations_response.rbi +++ b/rbi/openai/models/admin/organization/usage_moderations_response.rbi @@ -1392,6 +1392,11 @@ module OpenAI sig { returns(T.nilable(Float)) } attr_accessor :quantity + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + sig { returns(T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol))) } + attr_accessor :quantity_unit + # The aggregated costs details of the specific time bucket. sig do params( @@ -1406,6 +1411,8 @@ module OpenAI quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)), + object: Symbol ) .returns(T.attached_class) @@ -1431,6 +1438,10 @@ module OpenAI # result. quantity: nil, + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + quantity_unit: nil, + object: :"organization.costs.result" ) end @@ -1443,7 +1454,8 @@ module OpenAI api_key_id: T.nilable(String), line_item: T.nilable(String), project_id: T.nilable(String), - quantity: T.nilable(Float) + quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)) } ) end diff --git a/rbi/openai/models/admin/organization/usage_vector_stores_response.rbi b/rbi/openai/models/admin/organization/usage_vector_stores_response.rbi index edd3320cb..734f0ba21 100644 --- a/rbi/openai/models/admin/organization/usage_vector_stores_response.rbi +++ b/rbi/openai/models/admin/organization/usage_vector_stores_response.rbi @@ -1392,6 +1392,11 @@ module OpenAI sig { returns(T.nilable(Float)) } attr_accessor :quantity + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + sig { returns(T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol))) } + attr_accessor :quantity_unit + # The aggregated costs details of the specific time bucket. sig do params( @@ -1406,6 +1411,8 @@ module OpenAI quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)), + object: Symbol ) .returns(T.attached_class) @@ -1431,6 +1438,10 @@ module OpenAI # result. quantity: nil, + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + quantity_unit: nil, + object: :"organization.costs.result" ) end @@ -1443,7 +1454,8 @@ module OpenAI api_key_id: T.nilable(String), line_item: T.nilable(String), project_id: T.nilable(String), - quantity: T.nilable(Float) + quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)) } ) end diff --git a/rbi/openai/models/admin/organization/usage_web_search_calls_response.rbi b/rbi/openai/models/admin/organization/usage_web_search_calls_response.rbi index 22f119b23..abe3ed3f0 100644 --- a/rbi/openai/models/admin/organization/usage_web_search_calls_response.rbi +++ b/rbi/openai/models/admin/organization/usage_web_search_calls_response.rbi @@ -1394,6 +1394,11 @@ module OpenAI sig { returns(T.nilable(Float)) } attr_accessor :quantity + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + sig { returns(T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol))) } + attr_accessor :quantity_unit + # The aggregated costs details of the specific time bucket. sig do params( @@ -1408,6 +1413,8 @@ module OpenAI quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)), + object: Symbol ) .returns(T.attached_class) @@ -1433,6 +1440,10 @@ module OpenAI # result. quantity: nil, + # The unit of the `quantity` value. If no single supported unit applies to the + # result, this field is `null`. + quantity_unit: nil, + object: :"organization.costs.result" ) end @@ -1445,7 +1456,8 @@ module OpenAI api_key_id: T.nilable(String), line_item: T.nilable(String), project_id: T.nilable(String), - quantity: T.nilable(Float) + quantity: T.nilable(Float), + quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)) } ) end diff --git a/rbi/openai/resources/admin/organization/projects.rbi b/rbi/openai/resources/admin/organization/projects.rbi index 3fc163976..ba4f19775 100644 --- a/rbi/openai/resources/admin/organization/projects.rbi +++ b/rbi/openai/resources/admin/organization/projects.rbi @@ -52,6 +52,7 @@ module OpenAI name: String, external_key_id: T.nilable(String), geography: T.nilable(String), + residency: T.nilable(OpenAI::Admin::Organization::ProjectResidency::OrSymbol), request_options: OpenAI::RequestOptions::OrHash ) .returns(OpenAI::Admin::Organization::Project) @@ -64,8 +65,15 @@ module OpenAI # Create the project with the specified data residency region. Your organization # must have access to Data residency functionality in order to use. See # [data residency controls](https://platform.openai.com/docs/guides/your-data#data-residency-controls) - # to review the functionality and limitations of setting this field. + # to review the functionality and limitations of setting this field. Deprecated: + # use `residency` instead. Do not provide both `geography` and `residency`. geography: nil, + # Create the project with the specified residency configuration. Your organization + # must have access to the requested residency configuration in order to use it. + # See + # [data residency controls](https://platform.openai.com/docs/guides/your-data#data-residency-controls) + # to review the functionality and limitations of setting this field. + residency: nil, request_options: {} ) end @@ -99,7 +107,8 @@ module OpenAI project_id, # External key ID to associate with the project. external_key_id: nil, - # Geography for the project. + # Geography for the project. Deprecated: use `residency` when creating a project + # to configure data residency. This field is retained for backward compatibility. geography: nil, # The updated name of the project, this name appears in reports. name: nil, diff --git a/sig/openai/models/admin/organization/cost_quantity_unit.rbs b/sig/openai/models/admin/organization/cost_quantity_unit.rbs new file mode 100644 index 000000000..a9dd238cf --- /dev/null +++ b/sig/openai/models/admin/organization/cost_quantity_unit.rbs @@ -0,0 +1,33 @@ +module OpenAI + module Models + module Admin + module Organization + type cost_quantity_unit = + String + | :tokens + | :"1000_tokens" + | :duration_seconds + | :duration_minutes + | :duration_hours + | :gibibyte_hours + | :images + | :characters + + module CostQuantityUnit + extend OpenAI::Internal::Type::Union + + def self?.variants: -> ::Array[OpenAI::Models::Admin::Organization::cost_quantity_unit] + + TOKENS: :tokens + COST_QUANTITY_UNIT_1000_TOKENS: :"1000_tokens" + DURATION_SECONDS: :duration_seconds + DURATION_MINUTES: :duration_minutes + DURATION_HOURS: :duration_hours + GIBIBYTE_HOURS: :gibibyte_hours + IMAGES: :images + CHARACTERS: :characters + end + end + end + end +end diff --git a/sig/openai/models/admin/organization/project.rbs b/sig/openai/models/admin/organization/project.rbs index 7ddd1a0ba..dab0e3d6b 100644 --- a/sig/openai/models/admin/organization/project.rbs +++ b/sig/openai/models/admin/organization/project.rbs @@ -10,6 +10,7 @@ module OpenAI archived_at: Integer?, external_key_id: String?, name: String?, + residency: OpenAI::Models::Admin::Organization::project_residency, status: String? } @@ -26,6 +27,12 @@ module OpenAI attr_accessor name: String? + attr_reader residency: OpenAI::Models::Admin::Organization::project_residency? + + def residency=: ( + OpenAI::Models::Admin::Organization::project_residency + ) -> OpenAI::Models::Admin::Organization::project_residency + attr_accessor status: String? def initialize: ( @@ -34,6 +41,7 @@ module OpenAI ?archived_at: Integer?, ?external_key_id: String?, ?name: String?, + ?residency: OpenAI::Models::Admin::Organization::project_residency, ?status: String?, ?object: :"organization.project" ) -> void @@ -45,6 +53,7 @@ module OpenAI archived_at: Integer?, external_key_id: String?, name: String?, + residency: OpenAI::Models::Admin::Organization::project_residency, status: String? } end diff --git a/sig/openai/models/admin/organization/project_create_params.rbs b/sig/openai/models/admin/organization/project_create_params.rbs index 574e29326..5da2b3991 100644 --- a/sig/openai/models/admin/organization/project_create_params.rbs +++ b/sig/openai/models/admin/organization/project_create_params.rbs @@ -3,7 +3,12 @@ module OpenAI module Admin module Organization type project_create_params = - { name: String, external_key_id: String?, geography: String? } + { + name: String, + external_key_id: String?, + geography: String?, + residency: OpenAI::Models::Admin::Organization::project_residency? + } & OpenAI::Internal::Type::request_parameters class ProjectCreateParams < OpenAI::Internal::Type::BaseModel @@ -16,10 +21,13 @@ module OpenAI attr_accessor geography: String? + attr_accessor residency: OpenAI::Models::Admin::Organization::project_residency? + def initialize: ( name: String, ?external_key_id: String?, ?geography: String?, + ?residency: OpenAI::Models::Admin::Organization::project_residency?, ?request_options: OpenAI::request_opts ) -> void @@ -27,6 +35,7 @@ module OpenAI name: String, external_key_id: String?, geography: String?, + residency: OpenAI::Models::Admin::Organization::project_residency?, request_options: OpenAI::RequestOptions } end diff --git a/sig/openai/models/admin/organization/project_residency.rbs b/sig/openai/models/admin/organization/project_residency.rbs new file mode 100644 index 000000000..6fad9ebd9 --- /dev/null +++ b/sig/openai/models/admin/organization/project_residency.rbs @@ -0,0 +1,40 @@ +module OpenAI + module Models + module Admin + module Organization + type project_residency = + :GLOBAL + | :US_STORAGE_PROCESSING + | :EU_STORAGE_PROCESSING + | :JP_STORAGE + | :KR_STORAGE + | :CA_STORAGE + | :SG_STORAGE + | :IN_STORAGE + | :AU_STORAGE + | :GB_STORAGE + | :AE_STORAGE + | :AE_STORAGE_PROCESSING + + module ProjectResidency + extend OpenAI::Internal::Type::Enum + + GLOBAL: :GLOBAL + US_STORAGE_PROCESSING: :US_STORAGE_PROCESSING + EU_STORAGE_PROCESSING: :EU_STORAGE_PROCESSING + JP_STORAGE: :JP_STORAGE + KR_STORAGE: :KR_STORAGE + CA_STORAGE: :CA_STORAGE + SG_STORAGE: :SG_STORAGE + IN_STORAGE: :IN_STORAGE + AU_STORAGE: :AU_STORAGE + GB_STORAGE: :GB_STORAGE + AE_STORAGE: :AE_STORAGE + AE_STORAGE_PROCESSING: :AE_STORAGE_PROCESSING + + def self?.values: -> ::Array[OpenAI::Models::Admin::Organization::project_residency] + end + end + end + end +end diff --git a/sig/openai/models/admin/organization/usage_audio_speeches_response.rbs b/sig/openai/models/admin/organization/usage_audio_speeches_response.rbs index 16060ab3f..81192a5f9 100644 --- a/sig/openai/models/admin/organization/usage_audio_speeches_response.rbs +++ b/sig/openai/models/admin/organization/usage_audio_speeches_response.rbs @@ -626,7 +626,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel @@ -646,12 +647,15 @@ module OpenAI attr_accessor quantity: Float? + attr_accessor quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? + def initialize: ( ?amount: OpenAI::Models::Admin::Organization::UsageAudioSpeechesResponse::Data::Result::OrganizationCostsResult::Amount, ?api_key_id: String?, ?line_item: String?, ?project_id: String?, ?quantity: Float?, + ?quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit?, ?object: :"organization.costs.result" ) -> void @@ -661,7 +665,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } type amount = { currency: String, value: Float } diff --git a/sig/openai/models/admin/organization/usage_audio_transcriptions_response.rbs b/sig/openai/models/admin/organization/usage_audio_transcriptions_response.rbs index eae60bacf..25f13ea80 100644 --- a/sig/openai/models/admin/organization/usage_audio_transcriptions_response.rbs +++ b/sig/openai/models/admin/organization/usage_audio_transcriptions_response.rbs @@ -626,7 +626,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel @@ -646,12 +647,15 @@ module OpenAI attr_accessor quantity: Float? + attr_accessor quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? + def initialize: ( ?amount: OpenAI::Models::Admin::Organization::UsageAudioTranscriptionsResponse::Data::Result::OrganizationCostsResult::Amount, ?api_key_id: String?, ?line_item: String?, ?project_id: String?, ?quantity: Float?, + ?quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit?, ?object: :"organization.costs.result" ) -> void @@ -661,7 +665,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } type amount = { currency: String, value: Float } diff --git a/sig/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbs b/sig/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbs index 7b774341a..4113dddd8 100644 --- a/sig/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbs +++ b/sig/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbs @@ -626,7 +626,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel @@ -646,12 +647,15 @@ module OpenAI attr_accessor quantity: Float? + attr_accessor quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? + def initialize: ( ?amount: OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationCostsResult::Amount, ?api_key_id: String?, ?line_item: String?, ?project_id: String?, ?quantity: Float?, + ?quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit?, ?object: :"organization.costs.result" ) -> void @@ -661,7 +665,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } type amount = { currency: String, value: Float } diff --git a/sig/openai/models/admin/organization/usage_completions_response.rbs b/sig/openai/models/admin/organization/usage_completions_response.rbs index 34f2bea68..30849b962 100644 --- a/sig/openai/models/admin/organization/usage_completions_response.rbs +++ b/sig/openai/models/admin/organization/usage_completions_response.rbs @@ -626,7 +626,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel @@ -646,12 +647,15 @@ module OpenAI attr_accessor quantity: Float? + attr_accessor quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? + def initialize: ( ?amount: OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationCostsResult::Amount, ?api_key_id: String?, ?line_item: String?, ?project_id: String?, ?quantity: Float?, + ?quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit?, ?object: :"organization.costs.result" ) -> void @@ -661,7 +665,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } type amount = { currency: String, value: Float } diff --git a/sig/openai/models/admin/organization/usage_costs_response.rbs b/sig/openai/models/admin/organization/usage_costs_response.rbs index 693919b99..cafe430ce 100644 --- a/sig/openai/models/admin/organization/usage_costs_response.rbs +++ b/sig/openai/models/admin/organization/usage_costs_response.rbs @@ -626,7 +626,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel @@ -646,12 +647,15 @@ module OpenAI attr_accessor quantity: Float? + attr_accessor quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? + def initialize: ( ?amount: OpenAI::Models::Admin::Organization::UsageCostsResponse::Data::Result::OrganizationCostsResult::Amount, ?api_key_id: String?, ?line_item: String?, ?project_id: String?, ?quantity: Float?, + ?quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit?, ?object: :"organization.costs.result" ) -> void @@ -661,7 +665,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } type amount = { currency: String, value: Float } diff --git a/sig/openai/models/admin/organization/usage_embeddings_response.rbs b/sig/openai/models/admin/organization/usage_embeddings_response.rbs index f93181be0..91560177e 100644 --- a/sig/openai/models/admin/organization/usage_embeddings_response.rbs +++ b/sig/openai/models/admin/organization/usage_embeddings_response.rbs @@ -626,7 +626,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel @@ -646,12 +647,15 @@ module OpenAI attr_accessor quantity: Float? + attr_accessor quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? + def initialize: ( ?amount: OpenAI::Models::Admin::Organization::UsageEmbeddingsResponse::Data::Result::OrganizationCostsResult::Amount, ?api_key_id: String?, ?line_item: String?, ?project_id: String?, ?quantity: Float?, + ?quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit?, ?object: :"organization.costs.result" ) -> void @@ -661,7 +665,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } type amount = { currency: String, value: Float } diff --git a/sig/openai/models/admin/organization/usage_file_search_calls_response.rbs b/sig/openai/models/admin/organization/usage_file_search_calls_response.rbs index 2d5afadcc..505df58ad 100644 --- a/sig/openai/models/admin/organization/usage_file_search_calls_response.rbs +++ b/sig/openai/models/admin/organization/usage_file_search_calls_response.rbs @@ -626,7 +626,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel @@ -646,12 +647,15 @@ module OpenAI attr_accessor quantity: Float? + attr_accessor quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? + def initialize: ( ?amount: OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationCostsResult::Amount, ?api_key_id: String?, ?line_item: String?, ?project_id: String?, ?quantity: Float?, + ?quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit?, ?object: :"organization.costs.result" ) -> void @@ -661,7 +665,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } type amount = { currency: String, value: Float } diff --git a/sig/openai/models/admin/organization/usage_images_response.rbs b/sig/openai/models/admin/organization/usage_images_response.rbs index c95e99fcb..88bd08220 100644 --- a/sig/openai/models/admin/organization/usage_images_response.rbs +++ b/sig/openai/models/admin/organization/usage_images_response.rbs @@ -626,7 +626,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel @@ -646,12 +647,15 @@ module OpenAI attr_accessor quantity: Float? + attr_accessor quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? + def initialize: ( ?amount: OpenAI::Models::Admin::Organization::UsageImagesResponse::Data::Result::OrganizationCostsResult::Amount, ?api_key_id: String?, ?line_item: String?, ?project_id: String?, ?quantity: Float?, + ?quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit?, ?object: :"organization.costs.result" ) -> void @@ -661,7 +665,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } type amount = { currency: String, value: Float } diff --git a/sig/openai/models/admin/organization/usage_moderations_response.rbs b/sig/openai/models/admin/organization/usage_moderations_response.rbs index 34cba8634..2974349ab 100644 --- a/sig/openai/models/admin/organization/usage_moderations_response.rbs +++ b/sig/openai/models/admin/organization/usage_moderations_response.rbs @@ -626,7 +626,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel @@ -646,12 +647,15 @@ module OpenAI attr_accessor quantity: Float? + attr_accessor quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? + def initialize: ( ?amount: OpenAI::Models::Admin::Organization::UsageModerationsResponse::Data::Result::OrganizationCostsResult::Amount, ?api_key_id: String?, ?line_item: String?, ?project_id: String?, ?quantity: Float?, + ?quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit?, ?object: :"organization.costs.result" ) -> void @@ -661,7 +665,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } type amount = { currency: String, value: Float } diff --git a/sig/openai/models/admin/organization/usage_vector_stores_response.rbs b/sig/openai/models/admin/organization/usage_vector_stores_response.rbs index 242edad67..9e280e6cc 100644 --- a/sig/openai/models/admin/organization/usage_vector_stores_response.rbs +++ b/sig/openai/models/admin/organization/usage_vector_stores_response.rbs @@ -626,7 +626,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel @@ -646,12 +647,15 @@ module OpenAI attr_accessor quantity: Float? + attr_accessor quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? + def initialize: ( ?amount: OpenAI::Models::Admin::Organization::UsageVectorStoresResponse::Data::Result::OrganizationCostsResult::Amount, ?api_key_id: String?, ?line_item: String?, ?project_id: String?, ?quantity: Float?, + ?quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit?, ?object: :"organization.costs.result" ) -> void @@ -661,7 +665,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } type amount = { currency: String, value: Float } diff --git a/sig/openai/models/admin/organization/usage_web_search_calls_response.rbs b/sig/openai/models/admin/organization/usage_web_search_calls_response.rbs index 8aa64c38a..09de6e067 100644 --- a/sig/openai/models/admin/organization/usage_web_search_calls_response.rbs +++ b/sig/openai/models/admin/organization/usage_web_search_calls_response.rbs @@ -626,7 +626,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel @@ -646,12 +647,15 @@ module OpenAI attr_accessor quantity: Float? + attr_accessor quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? + def initialize: ( ?amount: OpenAI::Models::Admin::Organization::UsageWebSearchCallsResponse::Data::Result::OrganizationCostsResult::Amount, ?api_key_id: String?, ?line_item: String?, ?project_id: String?, ?quantity: Float?, + ?quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit?, ?object: :"organization.costs.result" ) -> void @@ -661,7 +665,8 @@ module OpenAI api_key_id: String?, line_item: String?, project_id: String?, - quantity: Float? + quantity: Float?, + quantity_unit: OpenAI::Models::Admin::Organization::cost_quantity_unit? } type amount = { currency: String, value: Float } diff --git a/sig/openai/resources/admin/organization/projects.rbs b/sig/openai/resources/admin/organization/projects.rbs index 46d0af637..b8508477c 100644 --- a/sig/openai/resources/admin/organization/projects.rbs +++ b/sig/openai/resources/admin/organization/projects.rbs @@ -31,6 +31,7 @@ module OpenAI name: String, ?external_key_id: String?, ?geography: String?, + ?residency: OpenAI::Models::Admin::Organization::project_residency?, ?request_options: OpenAI::request_opts ) -> OpenAI::Admin::Organization::Project diff --git a/test/openai/resources/admin/organization/projects_test.rb b/test/openai/resources/admin/organization/projects_test.rb index dc690314e..771a1f81a 100644 --- a/test/openai/resources/admin/organization/projects_test.rb +++ b/test/openai/resources/admin/organization/projects_test.rb @@ -18,6 +18,7 @@ def test_create_required_params archived_at: Integer | nil, external_key_id: String | nil, name: String | nil, + residency: OpenAI::Admin::Organization::ProjectResidency | nil, status: String | nil } end @@ -38,6 +39,7 @@ def test_retrieve archived_at: Integer | nil, external_key_id: String | nil, name: String | nil, + residency: OpenAI::Admin::Organization::ProjectResidency | nil, status: String | nil } end @@ -58,6 +60,7 @@ def test_update archived_at: Integer | nil, external_key_id: String | nil, name: String | nil, + residency: OpenAI::Admin::Organization::ProjectResidency | nil, status: String | nil } end @@ -85,6 +88,7 @@ def test_list archived_at: Integer | nil, external_key_id: String | nil, name: String | nil, + residency: OpenAI::Admin::Organization::ProjectResidency | nil, status: String | nil } end @@ -105,6 +109,7 @@ def test_archive archived_at: Integer | nil, external_key_id: String | nil, name: String | nil, + residency: OpenAI::Admin::Organization::ProjectResidency | nil, status: String | nil } end