openai 0.63.0 → 0.64.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -0
- data/README.md +1 -1
- data/lib/openai/internal/transport/base_client.rb +2 -0
- data/lib/openai/models/admin/organization/data_retention_retrieve_params.rb +18 -0
- data/lib/openai/models/admin/organization/data_retention_update_params.rb +40 -0
- data/lib/openai/models/admin/organization/group.rb +16 -3
- data/lib/openai/models/admin/organization/group_retrieve_params.rb +24 -0
- data/lib/openai/models/admin/organization/groups/role_list_response.rb +27 -1
- data/lib/openai/models/admin/organization/groups/role_retrieve_params.rb +32 -0
- data/lib/openai/models/admin/organization/groups/role_retrieve_response.rb +134 -0
- data/lib/openai/models/admin/organization/groups/user_retrieve_params.rb +32 -0
- data/lib/openai/models/admin/organization/groups/user_retrieve_response.rb +79 -0
- data/lib/openai/models/admin/organization/invite_create_params.rb +2 -1
- data/lib/openai/models/admin/organization/organization_data_retention.rb +48 -0
- data/lib/openai/models/admin/organization/organization_spend_alert.rb +120 -0
- data/lib/openai/models/admin/organization/organization_spend_alert_deleted.rb +41 -0
- data/lib/openai/models/admin/organization/projects/data_retention_retrieve_params.rb +26 -0
- data/lib/openai/models/admin/organization/projects/data_retention_update_params.rb +51 -0
- data/lib/openai/models/admin/organization/projects/group_retrieve_params.rb +53 -0
- data/lib/openai/models/admin/organization/projects/groups/role_list_response.rb +27 -1
- data/lib/openai/models/admin/organization/projects/groups/role_retrieve_params.rb +40 -0
- data/lib/openai/models/admin/organization/projects/groups/role_retrieve_response.rb +136 -0
- data/lib/openai/models/admin/organization/projects/hosted_tool_permission_retrieve_params.rb +26 -0
- data/lib/openai/models/admin/organization/projects/hosted_tool_permission_update_params.rb +150 -0
- data/lib/openai/models/admin/organization/projects/model_permission_delete_params.rb +26 -0
- data/lib/openai/models/admin/organization/projects/model_permission_retrieve_params.rb +26 -0
- data/lib/openai/models/admin/organization/projects/model_permission_update_params.rb +54 -0
- data/lib/openai/models/admin/organization/projects/project_data_retention.rb +52 -0
- data/lib/openai/models/admin/organization/projects/project_group.rb +16 -3
- data/lib/openai/models/admin/organization/projects/project_hosted_tool_permissions.rb +133 -0
- data/lib/openai/models/admin/organization/projects/project_model_permissions.rb +56 -0
- data/lib/openai/models/admin/organization/projects/project_model_permissions_deleted.rb +35 -0
- data/lib/openai/models/admin/organization/projects/project_spend_alert.rb +122 -0
- data/lib/openai/models/admin/organization/projects/project_spend_alert_deleted.rb +43 -0
- data/lib/openai/models/admin/organization/projects/role_retrieve_params.rb +32 -0
- data/lib/openai/models/admin/organization/projects/service_account_update_params.rb +61 -0
- data/lib/openai/models/admin/organization/projects/spend_alert_create_params.rb +109 -0
- data/lib/openai/models/admin/organization/projects/spend_alert_delete_params.rb +32 -0
- data/lib/openai/models/admin/organization/projects/spend_alert_list_params.rb +76 -0
- data/lib/openai/models/admin/organization/projects/spend_alert_update_params.rb +116 -0
- data/lib/openai/models/admin/organization/projects/users/role_list_response.rb +27 -1
- data/lib/openai/models/admin/organization/projects/users/role_retrieve_params.rb +40 -0
- data/lib/openai/models/admin/organization/projects/users/role_retrieve_response.rb +136 -0
- data/lib/openai/models/admin/organization/role_retrieve_params.rb +24 -0
- data/lib/openai/models/admin/organization/spend_alert_create_params.rb +100 -0
- data/lib/openai/models/admin/organization/spend_alert_delete_params.rb +24 -0
- data/lib/openai/models/admin/organization/spend_alert_list_params.rb +66 -0
- data/lib/openai/models/admin/organization/spend_alert_update_params.rb +107 -0
- data/lib/openai/models/admin/organization/usage_audio_speeches_response.rb +148 -3
- data/lib/openai/models/admin/organization/usage_audio_transcriptions_response.rb +148 -3
- data/lib/openai/models/admin/organization/usage_code_interpreter_sessions_response.rb +148 -3
- data/lib/openai/models/admin/organization/usage_completions_response.rb +148 -3
- data/lib/openai/models/admin/organization/usage_costs_response.rb +148 -3
- data/lib/openai/models/admin/organization/usage_embeddings_response.rb +148 -3
- data/lib/openai/models/admin/organization/usage_file_search_calls_params.rb +136 -0
- data/lib/openai/models/admin/organization/usage_file_search_calls_response.rb +889 -0
- data/lib/openai/models/admin/organization/usage_images_response.rb +148 -3
- data/lib/openai/models/admin/organization/usage_moderations_response.rb +148 -3
- data/lib/openai/models/admin/organization/usage_vector_stores_response.rb +148 -3
- data/lib/openai/models/admin/organization/usage_web_search_calls_params.rb +157 -0
- data/lib/openai/models/admin/organization/usage_web_search_calls_response.rb +889 -0
- data/lib/openai/models/admin/organization/users/role_list_response.rb +27 -1
- data/lib/openai/models/admin/organization/users/role_retrieve_params.rb +32 -0
- data/lib/openai/models/admin/organization/users/role_retrieve_response.rb +134 -0
- data/lib/openai/models/conversations/conversation_create_params.rb +2 -2
- data/lib/openai/models/conversations/item_create_params.rb +2 -2
- data/lib/openai/models/responses/input_token_count_params.rb +3 -3
- data/lib/openai/models/responses/response.rb +3 -3
- data/lib/openai/models/responses/response_compact_params.rb +3 -3
- data/lib/openai/models/responses/response_create_params.rb +3 -3
- data/lib/openai/models/responses/response_input_item.rb +17 -1
- data/lib/openai/models/responses/responses_client_event.rb +3 -3
- data/lib/openai/resources/admin/organization/data_retention.rb +60 -0
- data/lib/openai/resources/admin/organization/groups/roles.rb +28 -0
- data/lib/openai/resources/admin/organization/groups/users.rb +28 -0
- data/lib/openai/resources/admin/organization/groups.rb +21 -0
- data/lib/openai/resources/admin/organization/projects/data_retention.rb +66 -0
- data/lib/openai/resources/admin/organization/projects/groups/roles.rb +34 -0
- data/lib/openai/resources/admin/organization/projects/groups.rb +32 -0
- data/lib/openai/resources/admin/organization/projects/hosted_tool_permissions.rb +75 -0
- data/lib/openai/resources/admin/organization/projects/model_permissions.rb +89 -0
- data/lib/openai/resources/admin/organization/projects/roles.rb +28 -0
- data/lib/openai/resources/admin/organization/projects/service_accounts.rb +33 -0
- data/lib/openai/resources/admin/organization/projects/spend_alerts.rb +153 -0
- data/lib/openai/resources/admin/organization/projects/users/roles.rb +34 -0
- data/lib/openai/resources/admin/organization/projects.rb +18 -0
- data/lib/openai/resources/admin/organization/roles.rb +21 -0
- data/lib/openai/resources/admin/organization/spend_alerts.rb +133 -0
- data/lib/openai/resources/admin/organization/usage.rb +94 -0
- data/lib/openai/resources/admin/organization/users/roles.rb +28 -0
- data/lib/openai/resources/admin/organization.rb +8 -0
- data/lib/openai/resources/conversations/items.rb +1 -1
- data/lib/openai/resources/conversations.rb +1 -1
- data/lib/openai/resources/responses/input_tokens.rb +1 -1
- data/lib/openai/resources/responses.rb +3 -3
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +51 -0
- data/rbi/openai/models/admin/organization/data_retention_retrieve_params.rbi +34 -0
- data/rbi/openai/models/admin/organization/data_retention_update_params.rbi +101 -0
- data/rbi/openai/models/admin/organization/group.rbi +39 -3
- data/rbi/openai/models/admin/organization/group_retrieve_params.rbi +42 -0
- data/rbi/openai/models/admin/organization/groups/role_list_response.rbi +58 -0
- data/rbi/openai/models/admin/organization/groups/role_retrieve_params.rbi +52 -0
- data/rbi/openai/models/admin/organization/groups/role_retrieve_response.rbi +186 -0
- data/rbi/openai/models/admin/organization/groups/user_retrieve_params.rbi +52 -0
- data/rbi/openai/models/admin/organization/groups/user_retrieve_response.rbi +128 -0
- data/rbi/openai/models/admin/organization/invite_create_params.rbi +4 -2
- data/rbi/openai/models/admin/organization/organization_data_retention.rbi +106 -0
- data/rbi/openai/models/admin/organization/organization_spend_alert.rbi +225 -0
- data/rbi/openai/models/admin/organization/organization_spend_alert_deleted.rbi +58 -0
- data/rbi/openai/models/admin/organization/projects/data_retention_retrieve_params.rbi +44 -0
- data/rbi/openai/models/admin/organization/projects/data_retention_update_params.rbi +119 -0
- data/rbi/openai/models/admin/organization/projects/group_retrieve_params.rbi +115 -0
- data/rbi/openai/models/admin/organization/projects/groups/role_list_response.rbi +58 -0
- data/rbi/openai/models/admin/organization/projects/groups/role_retrieve_params.rbi +64 -0
- data/rbi/openai/models/admin/organization/projects/groups/role_retrieve_response.rbi +188 -0
- data/rbi/openai/models/admin/organization/projects/hosted_tool_permission_retrieve_params.rbi +44 -0
- data/rbi/openai/models/admin/organization/projects/hosted_tool_permission_update_params.rbi +330 -0
- data/rbi/openai/models/admin/organization/projects/model_permission_delete_params.rbi +44 -0
- data/rbi/openai/models/admin/organization/projects/model_permission_retrieve_params.rbi +44 -0
- data/rbi/openai/models/admin/organization/projects/model_permission_update_params.rbi +107 -0
- data/rbi/openai/models/admin/organization/projects/project_data_retention.rbi +118 -0
- data/rbi/openai/models/admin/organization/projects/project_group.rbi +44 -3
- data/rbi/openai/models/admin/organization/projects/project_hosted_tool_permissions.rbi +281 -0
- data/rbi/openai/models/admin/organization/projects/project_model_permissions.rbi +106 -0
- data/rbi/openai/models/admin/organization/projects/project_model_permissions_deleted.rbi +50 -0
- data/rbi/openai/models/admin/organization/projects/project_spend_alert.rbi +227 -0
- data/rbi/openai/models/admin/organization/projects/project_spend_alert_deleted.rbi +59 -0
- data/rbi/openai/models/admin/organization/projects/role_retrieve_params.rbi +52 -0
- data/rbi/openai/models/admin/organization/projects/service_account_update_params.rbi +126 -0
- data/rbi/openai/models/admin/organization/projects/spend_alert_create_params.rbi +220 -0
- data/rbi/openai/models/admin/organization/projects/spend_alert_delete_params.rbi +52 -0
- data/rbi/openai/models/admin/organization/projects/spend_alert_list_params.rbi +146 -0
- data/rbi/openai/models/admin/organization/projects/spend_alert_update_params.rbi +226 -0
- data/rbi/openai/models/admin/organization/projects/users/role_list_response.rbi +58 -0
- data/rbi/openai/models/admin/organization/projects/users/role_retrieve_params.rbi +59 -0
- data/rbi/openai/models/admin/organization/projects/users/role_retrieve_response.rbi +188 -0
- data/rbi/openai/models/admin/organization/role_retrieve_params.rbi +42 -0
- data/rbi/openai/models/admin/organization/spend_alert_create_params.rbi +212 -0
- data/rbi/openai/models/admin/organization/spend_alert_delete_params.rbi +42 -0
- data/rbi/openai/models/admin/organization/spend_alert_list_params.rbi +138 -0
- data/rbi/openai/models/admin/organization/spend_alert_update_params.rbi +218 -0
- data/rbi/openai/models/admin/organization/usage_audio_speeches_response.rbi +186 -0
- data/rbi/openai/models/admin/organization/usage_audio_transcriptions_response.rbi +186 -0
- data/rbi/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbi +186 -0
- data/rbi/openai/models/admin/organization/usage_completions_response.rbi +186 -0
- data/rbi/openai/models/admin/organization/usage_costs_response.rbi +186 -0
- data/rbi/openai/models/admin/organization/usage_embeddings_response.rbi +186 -0
- data/rbi/openai/models/admin/organization/usage_file_search_calls_params.rbi +284 -0
- data/rbi/openai/models/admin/organization/usage_file_search_calls_response.rbi +1225 -0
- data/rbi/openai/models/admin/organization/usage_images_response.rbi +186 -0
- data/rbi/openai/models/admin/organization/usage_moderations_response.rbi +186 -0
- data/rbi/openai/models/admin/organization/usage_vector_stores_response.rbi +186 -0
- data/rbi/openai/models/admin/organization/usage_web_search_calls_params.rbi +360 -0
- data/rbi/openai/models/admin/organization/usage_web_search_calls_response.rbi +1225 -0
- data/rbi/openai/models/admin/organization/users/role_list_response.rbi +58 -0
- data/rbi/openai/models/admin/organization/users/role_retrieve_params.rbi +52 -0
- data/rbi/openai/models/admin/organization/users/role_retrieve_response.rbi +186 -0
- data/rbi/openai/models/conversations/conversation_create_params.rbi +3 -0
- data/rbi/openai/models/conversations/item_create_params.rbi +3 -0
- data/rbi/openai/models/responses/response_input_item.rbi +27 -0
- data/rbi/openai/resources/admin/organization/data_retention.rbi +40 -0
- data/rbi/openai/resources/admin/organization/groups/roles.rbi +19 -0
- data/rbi/openai/resources/admin/organization/groups/users.rbi +19 -0
- data/rbi/openai/resources/admin/organization/groups.rbi +14 -0
- data/rbi/openai/resources/admin/organization/invites.rbi +2 -1
- data/rbi/openai/resources/admin/organization/projects/data_retention.rbi +54 -0
- data/rbi/openai/resources/admin/organization/projects/groups/roles.rbi +22 -0
- data/rbi/openai/resources/admin/organization/projects/groups.rbi +21 -0
- data/rbi/openai/resources/admin/organization/projects/hosted_tool_permissions.rbi +80 -0
- data/rbi/openai/resources/admin/organization/projects/model_permissions.rbi +73 -0
- data/rbi/openai/resources/admin/organization/projects/roles.rbi +17 -0
- data/rbi/openai/resources/admin/organization/projects/service_accounts.rbi +26 -0
- data/rbi/openai/resources/admin/organization/projects/spend_alerts.rbi +135 -0
- data/rbi/openai/resources/admin/organization/projects/users/roles.rbi +22 -0
- data/rbi/openai/resources/admin/organization/projects.rbi +28 -0
- data/rbi/openai/resources/admin/organization/roles.rbi +14 -0
- data/rbi/openai/resources/admin/organization/spend_alerts.rbi +117 -0
- data/rbi/openai/resources/admin/organization/usage.rbi +116 -0
- data/rbi/openai/resources/admin/organization/users/roles.rbi +19 -0
- data/rbi/openai/resources/admin/organization.rbi +6 -0
- data/rbi/openai/resources/conversations/items.rbi +1 -0
- data/rbi/openai/resources/conversations.rbi +1 -0
- data/sig/openai/models/admin/organization/data_retention_retrieve_params.rbs +19 -0
- data/sig/openai/models/admin/organization/data_retention_update_params.rbs +47 -0
- data/sig/openai/models/admin/organization/group.rbs +15 -4
- data/sig/openai/models/admin/organization/group_retrieve_params.rbs +27 -0
- data/sig/openai/models/admin/organization/groups/role_list_response.rbs +21 -0
- data/sig/openai/models/admin/organization/groups/role_retrieve_params.rbs +34 -0
- data/sig/openai/models/admin/organization/groups/role_retrieve_response.rbs +97 -0
- data/sig/openai/models/admin/organization/groups/user_retrieve_params.rbs +34 -0
- data/sig/openai/models/admin/organization/groups/user_retrieve_response.rbs +62 -0
- data/sig/openai/models/admin/organization/organization_data_retention.rbs +48 -0
- data/sig/openai/models/admin/organization/organization_spend_alert.rbs +98 -0
- data/sig/openai/models/admin/organization/organization_spend_alert_deleted.rbs +36 -0
- data/sig/openai/models/admin/organization/projects/data_retention_retrieve_params.rbs +29 -0
- data/sig/openai/models/admin/organization/projects/data_retention_update_params.rbs +58 -0
- data/sig/openai/models/admin/organization/projects/group_retrieve_params.rbs +57 -0
- data/sig/openai/models/admin/organization/projects/groups/role_list_response.rbs +21 -0
- data/sig/openai/models/admin/organization/projects/groups/role_retrieve_params.rbs +40 -0
- data/sig/openai/models/admin/organization/projects/groups/role_retrieve_response.rbs +99 -0
- data/sig/openai/models/admin/organization/projects/hosted_tool_permission_retrieve_params.rbs +29 -0
- data/sig/openai/models/admin/organization/projects/hosted_tool_permission_update_params.rbs +107 -0
- data/sig/openai/models/admin/organization/projects/model_permission_delete_params.rbs +29 -0
- data/sig/openai/models/admin/organization/projects/model_permission_retrieve_params.rbs +29 -0
- data/sig/openai/models/admin/organization/projects/model_permission_update_params.rbs +53 -0
- data/sig/openai/models/admin/organization/projects/project_data_retention.rbs +54 -0
- data/sig/openai/models/admin/organization/projects/project_group.rbs +15 -4
- data/sig/openai/models/admin/organization/projects/project_hosted_tool_permissions.rbs +98 -0
- data/sig/openai/models/admin/organization/projects/project_model_permissions.rbs +49 -0
- data/sig/openai/models/admin/organization/projects/project_model_permissions_deleted.rbs +30 -0
- data/sig/openai/models/admin/organization/projects/project_spend_alert.rbs +100 -0
- data/sig/openai/models/admin/organization/projects/project_spend_alert_deleted.rbs +38 -0
- data/sig/openai/models/admin/organization/projects/role_retrieve_params.rbs +34 -0
- data/sig/openai/models/admin/organization/projects/service_account_update_params.rbs +64 -0
- data/sig/openai/models/admin/organization/projects/spend_alert_create_params.rbs +99 -0
- data/sig/openai/models/admin/organization/projects/spend_alert_delete_params.rbs +34 -0
- data/sig/openai/models/admin/organization/projects/spend_alert_list_params.rbs +73 -0
- data/sig/openai/models/admin/organization/projects/spend_alert_update_params.rbs +104 -0
- data/sig/openai/models/admin/organization/projects/users/role_list_response.rbs +21 -0
- data/sig/openai/models/admin/organization/projects/users/role_retrieve_params.rbs +40 -0
- data/sig/openai/models/admin/organization/projects/users/role_retrieve_response.rbs +99 -0
- data/sig/openai/models/admin/organization/role_retrieve_params.rbs +27 -0
- data/sig/openai/models/admin/organization/spend_alert_create_params.rbs +92 -0
- data/sig/openai/models/admin/organization/spend_alert_delete_params.rbs +27 -0
- data/sig/openai/models/admin/organization/spend_alert_list_params.rbs +66 -0
- data/sig/openai/models/admin/organization/spend_alert_update_params.rbs +97 -0
- data/sig/openai/models/admin/organization/usage_audio_speeches_response.rbs +96 -0
- data/sig/openai/models/admin/organization/usage_audio_transcriptions_response.rbs +96 -0
- data/sig/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbs +96 -0
- data/sig/openai/models/admin/organization/usage_completions_response.rbs +96 -0
- data/sig/openai/models/admin/organization/usage_costs_response.rbs +96 -0
- data/sig/openai/models/admin/organization/usage_embeddings_response.rbs +96 -0
- data/sig/openai/models/admin/organization/usage_file_search_calls_params.rbs +123 -0
- data/sig/openai/models/admin/organization/usage_file_search_calls_response.rbs +628 -0
- data/sig/openai/models/admin/organization/usage_images_response.rbs +96 -0
- data/sig/openai/models/admin/organization/usage_moderations_response.rbs +96 -0
- data/sig/openai/models/admin/organization/usage_vector_stores_response.rbs +96 -0
- data/sig/openai/models/admin/organization/usage_web_search_calls_params.rbs +145 -0
- data/sig/openai/models/admin/organization/usage_web_search_calls_response.rbs +628 -0
- data/sig/openai/models/admin/organization/users/role_list_response.rbs +21 -0
- data/sig/openai/models/admin/organization/users/role_retrieve_params.rbs +34 -0
- data/sig/openai/models/admin/organization/users/role_retrieve_response.rbs +97 -0
- data/sig/openai/models/responses/response_input_item.rbs +11 -0
- data/sig/openai/resources/admin/organization/data_retention.rbs +20 -0
- data/sig/openai/resources/admin/organization/groups/roles.rbs +6 -0
- data/sig/openai/resources/admin/organization/groups/users.rbs +6 -0
- data/sig/openai/resources/admin/organization/groups.rbs +5 -0
- data/sig/openai/resources/admin/organization/projects/data_retention.rbs +24 -0
- data/sig/openai/resources/admin/organization/projects/groups/roles.rbs +7 -0
- data/sig/openai/resources/admin/organization/projects/groups.rbs +7 -0
- data/sig/openai/resources/admin/organization/projects/hosted_tool_permissions.rbs +28 -0
- data/sig/openai/resources/admin/organization/projects/model_permissions.rbs +30 -0
- data/sig/openai/resources/admin/organization/projects/roles.rbs +6 -0
- data/sig/openai/resources/admin/organization/projects/service_accounts.rbs +8 -0
- data/sig/openai/resources/admin/organization/projects/spend_alerts.rbs +47 -0
- data/sig/openai/resources/admin/organization/projects/users/roles.rbs +7 -0
- data/sig/openai/resources/admin/organization/projects.rbs +8 -0
- data/sig/openai/resources/admin/organization/roles.rbs +5 -0
- data/sig/openai/resources/admin/organization/spend_alerts.rbs +41 -0
- data/sig/openai/resources/admin/organization/usage.rbs +29 -0
- data/sig/openai/resources/admin/organization/users/roles.rbs +6 -0
- data/sig/openai/resources/admin/organization.rbs +4 -0
- metadata +155 -2
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Admin
|
|
6
|
+
module Organization
|
|
7
|
+
module Projects
|
|
8
|
+
module Users
|
|
9
|
+
# @see OpenAI::Resources::Admin::Organization::Projects::Users::Roles#retrieve
|
|
10
|
+
class RoleRetrieveParams < OpenAI::Internal::Type::BaseModel
|
|
11
|
+
extend OpenAI::Internal::Type::RequestParameters::Converter
|
|
12
|
+
include OpenAI::Internal::Type::RequestParameters
|
|
13
|
+
|
|
14
|
+
# @!attribute project_id
|
|
15
|
+
#
|
|
16
|
+
# @return [String]
|
|
17
|
+
required :project_id, String
|
|
18
|
+
|
|
19
|
+
# @!attribute user_id
|
|
20
|
+
#
|
|
21
|
+
# @return [String]
|
|
22
|
+
required :user_id, String
|
|
23
|
+
|
|
24
|
+
# @!attribute role_id
|
|
25
|
+
#
|
|
26
|
+
# @return [String]
|
|
27
|
+
required :role_id, String
|
|
28
|
+
|
|
29
|
+
# @!method initialize(project_id:, user_id:, role_id:, request_options: {})
|
|
30
|
+
# @param project_id [String]
|
|
31
|
+
# @param user_id [String]
|
|
32
|
+
# @param role_id [String]
|
|
33
|
+
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Admin
|
|
6
|
+
module Organization
|
|
7
|
+
module Projects
|
|
8
|
+
module Users
|
|
9
|
+
# @see OpenAI::Resources::Admin::Organization::Projects::Users::Roles#retrieve
|
|
10
|
+
class RoleRetrieveResponse < OpenAI::Internal::Type::BaseModel
|
|
11
|
+
# @!attribute id
|
|
12
|
+
# Identifier for the role.
|
|
13
|
+
#
|
|
14
|
+
# @return [String]
|
|
15
|
+
required :id, String
|
|
16
|
+
|
|
17
|
+
# @!attribute assignment_sources
|
|
18
|
+
# Principals from which the role assignment is inherited, when available.
|
|
19
|
+
#
|
|
20
|
+
# @return [Array<OpenAI::Models::Admin::Organization::Projects::Users::RoleRetrieveResponse::AssignmentSource>, nil]
|
|
21
|
+
required :assignment_sources,
|
|
22
|
+
-> { OpenAI::Internal::Type::ArrayOf[OpenAI::Models::Admin::Organization::Projects::Users::RoleRetrieveResponse::AssignmentSource] },
|
|
23
|
+
nil?: true
|
|
24
|
+
|
|
25
|
+
# @!attribute created_at
|
|
26
|
+
# When the role was created.
|
|
27
|
+
#
|
|
28
|
+
# @return [Integer, nil]
|
|
29
|
+
required :created_at, Integer, nil?: true
|
|
30
|
+
|
|
31
|
+
# @!attribute created_by
|
|
32
|
+
# Identifier of the actor who created the role.
|
|
33
|
+
#
|
|
34
|
+
# @return [String, nil]
|
|
35
|
+
required :created_by, String, nil?: true
|
|
36
|
+
|
|
37
|
+
# @!attribute created_by_user_obj
|
|
38
|
+
# User details for the actor that created the role, when available.
|
|
39
|
+
#
|
|
40
|
+
# @return [Hash{Symbol=>Object}, nil]
|
|
41
|
+
required :created_by_user_obj,
|
|
42
|
+
OpenAI::Internal::Type::HashOf[OpenAI::Internal::Type::Unknown],
|
|
43
|
+
nil?: true
|
|
44
|
+
|
|
45
|
+
# @!attribute description
|
|
46
|
+
# Description of the role.
|
|
47
|
+
#
|
|
48
|
+
# @return [String, nil]
|
|
49
|
+
required :description, String, nil?: true
|
|
50
|
+
|
|
51
|
+
# @!attribute metadata
|
|
52
|
+
# Arbitrary metadata stored on the role.
|
|
53
|
+
#
|
|
54
|
+
# @return [Hash{Symbol=>Object}, nil]
|
|
55
|
+
required :metadata, OpenAI::Internal::Type::HashOf[OpenAI::Internal::Type::Unknown], nil?: true
|
|
56
|
+
|
|
57
|
+
# @!attribute name
|
|
58
|
+
# Name of the role.
|
|
59
|
+
#
|
|
60
|
+
# @return [String]
|
|
61
|
+
required :name, String
|
|
62
|
+
|
|
63
|
+
# @!attribute permissions
|
|
64
|
+
# Permissions associated with the role.
|
|
65
|
+
#
|
|
66
|
+
# @return [Array<String>]
|
|
67
|
+
required :permissions, OpenAI::Internal::Type::ArrayOf[String]
|
|
68
|
+
|
|
69
|
+
# @!attribute predefined_role
|
|
70
|
+
# Whether the role is predefined by OpenAI.
|
|
71
|
+
#
|
|
72
|
+
# @return [Boolean]
|
|
73
|
+
required :predefined_role, OpenAI::Internal::Type::Boolean
|
|
74
|
+
|
|
75
|
+
# @!attribute resource_type
|
|
76
|
+
# Resource type the role applies to.
|
|
77
|
+
#
|
|
78
|
+
# @return [String]
|
|
79
|
+
required :resource_type, String
|
|
80
|
+
|
|
81
|
+
# @!attribute updated_at
|
|
82
|
+
# When the role was last updated.
|
|
83
|
+
#
|
|
84
|
+
# @return [Integer, nil]
|
|
85
|
+
required :updated_at, Integer, nil?: true
|
|
86
|
+
|
|
87
|
+
# @!method initialize(id:, assignment_sources:, created_at:, created_by:, created_by_user_obj:, description:, metadata:, name:, permissions:, predefined_role:, resource_type:, updated_at:)
|
|
88
|
+
# Detailed information about a role assignment entry returned when listing
|
|
89
|
+
# assignments.
|
|
90
|
+
#
|
|
91
|
+
# @param id [String] Identifier for the role.
|
|
92
|
+
#
|
|
93
|
+
# @param assignment_sources [Array<OpenAI::Models::Admin::Organization::Projects::Users::RoleRetrieveResponse::AssignmentSource>, nil] Principals from which the role assignment is inherited, when available.
|
|
94
|
+
#
|
|
95
|
+
# @param created_at [Integer, nil] When the role was created.
|
|
96
|
+
#
|
|
97
|
+
# @param created_by [String, nil] Identifier of the actor who created the role.
|
|
98
|
+
#
|
|
99
|
+
# @param created_by_user_obj [Hash{Symbol=>Object}, nil] User details for the actor that created the role, when available.
|
|
100
|
+
#
|
|
101
|
+
# @param description [String, nil] Description of the role.
|
|
102
|
+
#
|
|
103
|
+
# @param metadata [Hash{Symbol=>Object}, nil] Arbitrary metadata stored on the role.
|
|
104
|
+
#
|
|
105
|
+
# @param name [String] Name of the role.
|
|
106
|
+
#
|
|
107
|
+
# @param permissions [Array<String>] Permissions associated with the role.
|
|
108
|
+
#
|
|
109
|
+
# @param predefined_role [Boolean] Whether the role is predefined by OpenAI.
|
|
110
|
+
#
|
|
111
|
+
# @param resource_type [String] Resource type the role applies to.
|
|
112
|
+
#
|
|
113
|
+
# @param updated_at [Integer, nil] When the role was last updated.
|
|
114
|
+
|
|
115
|
+
class AssignmentSource < OpenAI::Internal::Type::BaseModel
|
|
116
|
+
# @!attribute principal_id
|
|
117
|
+
#
|
|
118
|
+
# @return [String]
|
|
119
|
+
required :principal_id, String
|
|
120
|
+
|
|
121
|
+
# @!attribute principal_type
|
|
122
|
+
#
|
|
123
|
+
# @return [String]
|
|
124
|
+
required :principal_type, String
|
|
125
|
+
|
|
126
|
+
# @!method initialize(principal_id:, principal_type:)
|
|
127
|
+
# @param principal_id [String]
|
|
128
|
+
# @param principal_type [String]
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Admin
|
|
6
|
+
module Organization
|
|
7
|
+
# @see OpenAI::Resources::Admin::Organization::Roles#retrieve
|
|
8
|
+
class RoleRetrieveParams < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
extend OpenAI::Internal::Type::RequestParameters::Converter
|
|
10
|
+
include OpenAI::Internal::Type::RequestParameters
|
|
11
|
+
|
|
12
|
+
# @!attribute role_id
|
|
13
|
+
#
|
|
14
|
+
# @return [String]
|
|
15
|
+
required :role_id, String
|
|
16
|
+
|
|
17
|
+
# @!method initialize(role_id:, request_options: {})
|
|
18
|
+
# @param role_id [String]
|
|
19
|
+
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Admin
|
|
6
|
+
module Organization
|
|
7
|
+
# @see OpenAI::Resources::Admin::Organization::SpendAlerts#create
|
|
8
|
+
class SpendAlertCreateParams < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
extend OpenAI::Internal::Type::RequestParameters::Converter
|
|
10
|
+
include OpenAI::Internal::Type::RequestParameters
|
|
11
|
+
|
|
12
|
+
# @!attribute currency
|
|
13
|
+
# The currency for the threshold amount.
|
|
14
|
+
#
|
|
15
|
+
# @return [Symbol, OpenAI::Models::Admin::Organization::SpendAlertCreateParams::Currency]
|
|
16
|
+
required :currency, enum: -> { OpenAI::Admin::Organization::SpendAlertCreateParams::Currency }
|
|
17
|
+
|
|
18
|
+
# @!attribute interval
|
|
19
|
+
# The time interval for evaluating spend against the threshold.
|
|
20
|
+
#
|
|
21
|
+
# @return [Symbol, OpenAI::Models::Admin::Organization::SpendAlertCreateParams::Interval]
|
|
22
|
+
required :interval, enum: -> { OpenAI::Admin::Organization::SpendAlertCreateParams::Interval }
|
|
23
|
+
|
|
24
|
+
# @!attribute notification_channel
|
|
25
|
+
# Email notification settings for a spend alert.
|
|
26
|
+
#
|
|
27
|
+
# @return [OpenAI::Models::Admin::Organization::SpendAlertCreateParams::NotificationChannel]
|
|
28
|
+
required :notification_channel,
|
|
29
|
+
-> { OpenAI::Admin::Organization::SpendAlertCreateParams::NotificationChannel }
|
|
30
|
+
|
|
31
|
+
# @!attribute threshold_amount
|
|
32
|
+
# The alert threshold amount, in cents.
|
|
33
|
+
#
|
|
34
|
+
# @return [Integer]
|
|
35
|
+
required :threshold_amount, Integer
|
|
36
|
+
|
|
37
|
+
# @!method initialize(currency:, interval:, notification_channel:, threshold_amount:, request_options: {})
|
|
38
|
+
# @param currency [Symbol, OpenAI::Models::Admin::Organization::SpendAlertCreateParams::Currency] The currency for the threshold amount.
|
|
39
|
+
#
|
|
40
|
+
# @param interval [Symbol, OpenAI::Models::Admin::Organization::SpendAlertCreateParams::Interval] The time interval for evaluating spend against the threshold.
|
|
41
|
+
#
|
|
42
|
+
# @param notification_channel [OpenAI::Models::Admin::Organization::SpendAlertCreateParams::NotificationChannel] Email notification settings for a spend alert.
|
|
43
|
+
#
|
|
44
|
+
# @param threshold_amount [Integer] The alert threshold amount, in cents.
|
|
45
|
+
#
|
|
46
|
+
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
|
|
47
|
+
|
|
48
|
+
# The currency for the threshold amount.
|
|
49
|
+
module Currency
|
|
50
|
+
extend OpenAI::Internal::Type::Enum
|
|
51
|
+
|
|
52
|
+
USD = :USD
|
|
53
|
+
|
|
54
|
+
# @!method self.values
|
|
55
|
+
# @return [Array<Symbol>]
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# The time interval for evaluating spend against the threshold.
|
|
59
|
+
module Interval
|
|
60
|
+
extend OpenAI::Internal::Type::Enum
|
|
61
|
+
|
|
62
|
+
MONTH = :month
|
|
63
|
+
|
|
64
|
+
# @!method self.values
|
|
65
|
+
# @return [Array<Symbol>]
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
class NotificationChannel < OpenAI::Internal::Type::BaseModel
|
|
69
|
+
# @!attribute recipients
|
|
70
|
+
# Email addresses that receive the spend alert notification.
|
|
71
|
+
#
|
|
72
|
+
# @return [Array<String>]
|
|
73
|
+
required :recipients, OpenAI::Internal::Type::ArrayOf[String]
|
|
74
|
+
|
|
75
|
+
# @!attribute type
|
|
76
|
+
# The notification channel type. Currently only `email` is supported.
|
|
77
|
+
#
|
|
78
|
+
# @return [Symbol, :email]
|
|
79
|
+
required :type, const: :email
|
|
80
|
+
|
|
81
|
+
# @!attribute subject_prefix
|
|
82
|
+
# Optional subject prefix for alert emails.
|
|
83
|
+
#
|
|
84
|
+
# @return [String, nil]
|
|
85
|
+
optional :subject_prefix, String, nil?: true
|
|
86
|
+
|
|
87
|
+
# @!method initialize(recipients:, subject_prefix: nil, type: :email)
|
|
88
|
+
# Email notification settings for a spend alert.
|
|
89
|
+
#
|
|
90
|
+
# @param recipients [Array<String>] Email addresses that receive the spend alert notification.
|
|
91
|
+
#
|
|
92
|
+
# @param subject_prefix [String, nil] Optional subject prefix for alert emails.
|
|
93
|
+
#
|
|
94
|
+
# @param type [Symbol, :email] The notification channel type. Currently only `email` is supported.
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Admin
|
|
6
|
+
module Organization
|
|
7
|
+
# @see OpenAI::Resources::Admin::Organization::SpendAlerts#delete
|
|
8
|
+
class SpendAlertDeleteParams < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
extend OpenAI::Internal::Type::RequestParameters::Converter
|
|
10
|
+
include OpenAI::Internal::Type::RequestParameters
|
|
11
|
+
|
|
12
|
+
# @!attribute alert_id
|
|
13
|
+
#
|
|
14
|
+
# @return [String]
|
|
15
|
+
required :alert_id, String
|
|
16
|
+
|
|
17
|
+
# @!method initialize(alert_id:, request_options: {})
|
|
18
|
+
# @param alert_id [String]
|
|
19
|
+
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Admin
|
|
6
|
+
module Organization
|
|
7
|
+
# @see OpenAI::Resources::Admin::Organization::SpendAlerts#list
|
|
8
|
+
class SpendAlertListParams < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
extend OpenAI::Internal::Type::RequestParameters::Converter
|
|
10
|
+
include OpenAI::Internal::Type::RequestParameters
|
|
11
|
+
|
|
12
|
+
# @!attribute after
|
|
13
|
+
# Cursor for pagination. Provide the ID of the last spend alert from the previous
|
|
14
|
+
# response to fetch the next page.
|
|
15
|
+
#
|
|
16
|
+
# @return [String, nil]
|
|
17
|
+
optional :after, String
|
|
18
|
+
|
|
19
|
+
# @!attribute before
|
|
20
|
+
# Cursor for pagination. Provide the ID of the first spend alert from the previous
|
|
21
|
+
# response to fetch the previous page.
|
|
22
|
+
#
|
|
23
|
+
# @return [String, nil]
|
|
24
|
+
optional :before, String
|
|
25
|
+
|
|
26
|
+
# @!attribute limit
|
|
27
|
+
# A limit on the number of spend alerts to return. Defaults to 20.
|
|
28
|
+
#
|
|
29
|
+
# @return [Integer, nil]
|
|
30
|
+
optional :limit, Integer
|
|
31
|
+
|
|
32
|
+
# @!attribute order
|
|
33
|
+
# Sort order for the returned spend alerts.
|
|
34
|
+
#
|
|
35
|
+
# @return [Symbol, OpenAI::Models::Admin::Organization::SpendAlertListParams::Order, nil]
|
|
36
|
+
optional :order, enum: -> { OpenAI::Admin::Organization::SpendAlertListParams::Order }
|
|
37
|
+
|
|
38
|
+
# @!method initialize(after: nil, before: nil, limit: nil, order: nil, request_options: {})
|
|
39
|
+
# Some parameter documentations has been truncated, see
|
|
40
|
+
# {OpenAI::Models::Admin::Organization::SpendAlertListParams} for more details.
|
|
41
|
+
#
|
|
42
|
+
# @param after [String] Cursor for pagination. Provide the ID of the last spend alert from the previous
|
|
43
|
+
#
|
|
44
|
+
# @param before [String] Cursor for pagination. Provide the ID of the first spend alert from the previous
|
|
45
|
+
#
|
|
46
|
+
# @param limit [Integer] A limit on the number of spend alerts to return. Defaults to 20.
|
|
47
|
+
#
|
|
48
|
+
# @param order [Symbol, OpenAI::Models::Admin::Organization::SpendAlertListParams::Order] Sort order for the returned spend alerts.
|
|
49
|
+
#
|
|
50
|
+
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
|
|
51
|
+
|
|
52
|
+
# Sort order for the returned spend alerts.
|
|
53
|
+
module Order
|
|
54
|
+
extend OpenAI::Internal::Type::Enum
|
|
55
|
+
|
|
56
|
+
ASC = :asc
|
|
57
|
+
DESC = :desc
|
|
58
|
+
|
|
59
|
+
# @!method self.values
|
|
60
|
+
# @return [Array<Symbol>]
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Admin
|
|
6
|
+
module Organization
|
|
7
|
+
# @see OpenAI::Resources::Admin::Organization::SpendAlerts#update
|
|
8
|
+
class SpendAlertUpdateParams < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
extend OpenAI::Internal::Type::RequestParameters::Converter
|
|
10
|
+
include OpenAI::Internal::Type::RequestParameters
|
|
11
|
+
|
|
12
|
+
# @!attribute alert_id
|
|
13
|
+
#
|
|
14
|
+
# @return [String]
|
|
15
|
+
required :alert_id, String
|
|
16
|
+
|
|
17
|
+
# @!attribute currency
|
|
18
|
+
# The currency for the threshold amount.
|
|
19
|
+
#
|
|
20
|
+
# @return [Symbol, OpenAI::Models::Admin::Organization::SpendAlertUpdateParams::Currency]
|
|
21
|
+
required :currency, enum: -> { OpenAI::Admin::Organization::SpendAlertUpdateParams::Currency }
|
|
22
|
+
|
|
23
|
+
# @!attribute interval
|
|
24
|
+
# The time interval for evaluating spend against the threshold.
|
|
25
|
+
#
|
|
26
|
+
# @return [Symbol, OpenAI::Models::Admin::Organization::SpendAlertUpdateParams::Interval]
|
|
27
|
+
required :interval, enum: -> { OpenAI::Admin::Organization::SpendAlertUpdateParams::Interval }
|
|
28
|
+
|
|
29
|
+
# @!attribute notification_channel
|
|
30
|
+
# Email notification settings for a spend alert.
|
|
31
|
+
#
|
|
32
|
+
# @return [OpenAI::Models::Admin::Organization::SpendAlertUpdateParams::NotificationChannel]
|
|
33
|
+
required :notification_channel,
|
|
34
|
+
-> { OpenAI::Admin::Organization::SpendAlertUpdateParams::NotificationChannel }
|
|
35
|
+
|
|
36
|
+
# @!attribute threshold_amount
|
|
37
|
+
# The alert threshold amount, in cents.
|
|
38
|
+
#
|
|
39
|
+
# @return [Integer]
|
|
40
|
+
required :threshold_amount, Integer
|
|
41
|
+
|
|
42
|
+
# @!method initialize(alert_id:, currency:, interval:, notification_channel:, threshold_amount:, request_options: {})
|
|
43
|
+
# @param alert_id [String]
|
|
44
|
+
#
|
|
45
|
+
# @param currency [Symbol, OpenAI::Models::Admin::Organization::SpendAlertUpdateParams::Currency] The currency for the threshold amount.
|
|
46
|
+
#
|
|
47
|
+
# @param interval [Symbol, OpenAI::Models::Admin::Organization::SpendAlertUpdateParams::Interval] The time interval for evaluating spend against the threshold.
|
|
48
|
+
#
|
|
49
|
+
# @param notification_channel [OpenAI::Models::Admin::Organization::SpendAlertUpdateParams::NotificationChannel] Email notification settings for a spend alert.
|
|
50
|
+
#
|
|
51
|
+
# @param threshold_amount [Integer] The alert threshold amount, in cents.
|
|
52
|
+
#
|
|
53
|
+
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
|
|
54
|
+
|
|
55
|
+
# The currency for the threshold amount.
|
|
56
|
+
module Currency
|
|
57
|
+
extend OpenAI::Internal::Type::Enum
|
|
58
|
+
|
|
59
|
+
USD = :USD
|
|
60
|
+
|
|
61
|
+
# @!method self.values
|
|
62
|
+
# @return [Array<Symbol>]
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# The time interval for evaluating spend against the threshold.
|
|
66
|
+
module Interval
|
|
67
|
+
extend OpenAI::Internal::Type::Enum
|
|
68
|
+
|
|
69
|
+
MONTH = :month
|
|
70
|
+
|
|
71
|
+
# @!method self.values
|
|
72
|
+
# @return [Array<Symbol>]
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
class NotificationChannel < OpenAI::Internal::Type::BaseModel
|
|
76
|
+
# @!attribute recipients
|
|
77
|
+
# Email addresses that receive the spend alert notification.
|
|
78
|
+
#
|
|
79
|
+
# @return [Array<String>]
|
|
80
|
+
required :recipients, OpenAI::Internal::Type::ArrayOf[String]
|
|
81
|
+
|
|
82
|
+
# @!attribute type
|
|
83
|
+
# The notification channel type. Currently only `email` is supported.
|
|
84
|
+
#
|
|
85
|
+
# @return [Symbol, :email]
|
|
86
|
+
required :type, const: :email
|
|
87
|
+
|
|
88
|
+
# @!attribute subject_prefix
|
|
89
|
+
# Optional subject prefix for alert emails.
|
|
90
|
+
#
|
|
91
|
+
# @return [String, nil]
|
|
92
|
+
optional :subject_prefix, String, nil?: true
|
|
93
|
+
|
|
94
|
+
# @!method initialize(recipients:, subject_prefix: nil, type: :email)
|
|
95
|
+
# Email notification settings for a spend alert.
|
|
96
|
+
#
|
|
97
|
+
# @param recipients [Array<String>] Email addresses that receive the spend alert notification.
|
|
98
|
+
#
|
|
99
|
+
# @param subject_prefix [String, nil] Optional subject prefix for alert emails.
|
|
100
|
+
#
|
|
101
|
+
# @param type [Symbol, :email] The notification channel type. Currently only `email` is supported.
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|