gpuai-sdk 0.3.7__tar.gz → 0.3.9__tar.gz
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.
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/PKG-INFO +3 -2
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/README.md +2 -1
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/__init__.py +1 -1
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api/fine_tuning_api.py +276 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api_client.py +1 -1
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/configuration.py +1 -1
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/create_instance_request.py +3 -1
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/instance.py +6 -2
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/model.py +6 -2
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk.egg-info/PKG-INFO +3 -2
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/pyproject.toml +1 -1
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/setup.py +1 -1
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/LICENSE +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api/__init__.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api/billing_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api/community_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api/environments_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api/gpu_types_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api/inference_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api/instances_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api/meta_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api/operations_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api/pricing_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api/registry_credentials_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api/ssh_keys_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api/templates_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api/usage_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api/webhooks_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/api_response.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/exceptions.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/__init__.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/chat_choice.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/chat_completion_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/chat_completion_response.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/chat_message.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/community_earnings.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/community_earnings_entry.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/community_machine.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/community_machine_delist_result.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/community_machine_registration.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/community_supplier.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/create_crypto_deposit_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/create_fine_tuning_job_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/create_fine_tuning_job_request_gpuai.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/create_fine_tuning_job_request_method.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/create_fine_tuning_job_request_method_lora.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/create_instance_request_ports_inner.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/create_registry_credential_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/create_ssh_key_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/create_webhook_endpoint_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/crypto_deposit.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/environments.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/file_object.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/fine_tuning_job.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/fine_tuning_job_error.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/fine_tuning_job_event.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/fine_tuning_job_event_list.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/fine_tuning_job_list.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/fine_tuning_job_method.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/framework_version.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/get_health200_response.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/gpu_type.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/gpu_type_page.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/images_generations_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/images_response.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/images_response_data_inner.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/images_response_usage.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/include_item.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/instance_connection.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/instance_page.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/list_community_machines200_response.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/list_deposits200_response.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/list_registry_credentials200_response.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/model_list.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/model_parameters_inner.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/model_pricing.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/open_ai_error_envelope.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/open_ai_error_envelope_error.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/operation.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/operation_error.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/operation_result.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/pricing.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/pricing_page.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/problem.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/register_community_machine_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/registry_credential.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/spending_limit.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/ssh_key.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/ssh_key_page.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/stream_options.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/supplier_machine_view.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/template.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/template_env_inner.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/template_list.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/template_ports_inner.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/update_community_machine_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/update_instance_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/update_spending_limit_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/usage.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/usage_bucket.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/usage_page.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/video_create_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/video_job.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/video_list.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/vm_image.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/webhook_endpoint.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/webhook_endpoint_page.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/py.typed +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/rest.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk.egg-info/SOURCES.txt +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk.egg-info/dependency_links.txt +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk.egg-info/requires.txt +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk.egg-info/top_level.txt +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/setup.cfg +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_billing_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_chat_choice.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_chat_completion_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_chat_completion_response.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_chat_message.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_community_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_community_earnings.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_community_earnings_entry.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_community_machine.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_community_machine_delist_result.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_community_machine_registration.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_community_supplier.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_create_crypto_deposit_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_create_fine_tuning_job_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_create_fine_tuning_job_request_gpuai.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_create_fine_tuning_job_request_method.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_create_fine_tuning_job_request_method_lora.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_create_instance_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_create_instance_request_ports_inner.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_create_registry_credential_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_create_ssh_key_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_create_webhook_endpoint_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_crypto_deposit.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_environments.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_environments_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_file_object.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_fine_tuning_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_fine_tuning_job.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_fine_tuning_job_error.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_fine_tuning_job_event.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_fine_tuning_job_event_list.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_fine_tuning_job_list.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_fine_tuning_job_method.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_framework_version.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_get_health200_response.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_gpu_type.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_gpu_type_page.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_gpu_types_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_images_generations_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_images_response.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_images_response_data_inner.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_images_response_usage.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_include_item.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_inference_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_instance.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_instance_connection.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_instance_page.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_instances_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_list_community_machines200_response.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_list_deposits200_response.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_list_registry_credentials200_response.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_meta_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_model.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_model_list.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_model_parameters_inner.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_model_pricing.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_open_ai_error_envelope.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_open_ai_error_envelope_error.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_operation.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_operation_error.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_operation_result.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_operations_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_pricing.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_pricing_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_pricing_page.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_problem.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_register_community_machine_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_registry_credential.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_registry_credentials_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_spending_limit.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_ssh_key.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_ssh_key_page.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_ssh_keys_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_stream_options.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_supplier_machine_view.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_template.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_template_env_inner.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_template_list.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_template_ports_inner.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_templates_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_update_community_machine_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_update_instance_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_update_spending_limit_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_usage.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_usage_api.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_usage_bucket.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_usage_page.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_video_create_request.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_video_job.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_video_list.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_vm_image.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_webhook_endpoint.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_webhook_endpoint_page.py +0 -0
- {gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/test/test_webhooks_api.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gpuai-sdk
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.9
|
|
4
4
|
Summary: GPU.ai Public Developer API
|
|
5
5
|
Home-page:
|
|
6
6
|
Author: GPU.ai Support
|
|
@@ -26,7 +26,7 @@ the dashboard. See https://gpu.ai/docs for details.
|
|
|
26
26
|
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
|
27
27
|
|
|
28
28
|
- API version: 1.0.0
|
|
29
|
-
- Package version: 0.3.
|
|
29
|
+
- Package version: 0.3.9
|
|
30
30
|
- Generator version: 7.24.0
|
|
31
31
|
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
|
|
32
32
|
|
|
@@ -136,6 +136,7 @@ Class | Method | HTTP request | Description
|
|
|
136
136
|
*FineTuningApi* | [**get_fine_tuning_job**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/FineTuningApi.md#get_fine_tuning_job) | **GET** /fine_tuning/jobs/{id} | Retrieve a fine-tuning job (OpenAI-compatible)
|
|
137
137
|
*FineTuningApi* | [**list_fine_tuning_job_events**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/FineTuningApi.md#list_fine_tuning_job_events) | **GET** /fine_tuning/jobs/{id}/events | List fine-tuning job events (OpenAI-compatible)
|
|
138
138
|
*FineTuningApi* | [**list_fine_tuning_jobs**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/FineTuningApi.md#list_fine_tuning_jobs) | **GET** /fine_tuning/jobs | List fine-tuning jobs (OpenAI-compatible)
|
|
139
|
+
*FineTuningApi* | [**retrieve_file**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/FineTuningApi.md#retrieve_file) | **GET** /files/{id} | Retrieve a file (OpenAI-compatible)
|
|
139
140
|
*GpuTypesApi* | [**list_gpu_types**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/GpuTypesApi.md#list_gpu_types) | **GET** /gpu-types | List available GPU types (no auth required)
|
|
140
141
|
*InferenceApi* | [**cancel_video**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/InferenceApi.md#cancel_video) | **POST** /videos/{id}/cancel | Cancel a video generation job
|
|
141
142
|
*InferenceApi* | [**create_chat_completion**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/InferenceApi.md#create_chat_completion) | **POST** /chat/completions | Create a chat completion (OpenAI-compatible)
|
|
@@ -6,7 +6,7 @@ the dashboard. See https://gpu.ai/docs for details.
|
|
|
6
6
|
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
|
7
7
|
|
|
8
8
|
- API version: 1.0.0
|
|
9
|
-
- Package version: 0.3.
|
|
9
|
+
- Package version: 0.3.9
|
|
10
10
|
- Generator version: 7.24.0
|
|
11
11
|
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
|
|
12
12
|
|
|
@@ -116,6 +116,7 @@ Class | Method | HTTP request | Description
|
|
|
116
116
|
*FineTuningApi* | [**get_fine_tuning_job**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/FineTuningApi.md#get_fine_tuning_job) | **GET** /fine_tuning/jobs/{id} | Retrieve a fine-tuning job (OpenAI-compatible)
|
|
117
117
|
*FineTuningApi* | [**list_fine_tuning_job_events**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/FineTuningApi.md#list_fine_tuning_job_events) | **GET** /fine_tuning/jobs/{id}/events | List fine-tuning job events (OpenAI-compatible)
|
|
118
118
|
*FineTuningApi* | [**list_fine_tuning_jobs**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/FineTuningApi.md#list_fine_tuning_jobs) | **GET** /fine_tuning/jobs | List fine-tuning jobs (OpenAI-compatible)
|
|
119
|
+
*FineTuningApi* | [**retrieve_file**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/FineTuningApi.md#retrieve_file) | **GET** /files/{id} | Retrieve a file (OpenAI-compatible)
|
|
119
120
|
*GpuTypesApi* | [**list_gpu_types**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/GpuTypesApi.md#list_gpu_types) | **GET** /gpu-types | List available GPU types (no auth required)
|
|
120
121
|
*InferenceApi* | [**cancel_video**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/InferenceApi.md#cancel_video) | **POST** /videos/{id}/cancel | Cancel a video generation job
|
|
121
122
|
*InferenceApi* | [**create_chat_completion**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/InferenceApi.md#create_chat_completion) | **POST** /chat/completions | Create a chat completion (OpenAI-compatible)
|
|
@@ -1767,3 +1767,279 @@ class FineTuningApi:
|
|
|
1767
1767
|
)
|
|
1768
1768
|
|
|
1769
1769
|
|
|
1770
|
+
|
|
1771
|
+
|
|
1772
|
+
@validate_call
|
|
1773
|
+
def retrieve_file(
|
|
1774
|
+
self,
|
|
1775
|
+
id: Annotated[StrictStr, Field(description="The file id returned by the upload, e.g. `file-9f2c1a...`.")],
|
|
1776
|
+
_request_timeout: Union[
|
|
1777
|
+
None,
|
|
1778
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1779
|
+
Tuple[
|
|
1780
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1781
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1782
|
+
]
|
|
1783
|
+
] = None,
|
|
1784
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1785
|
+
_content_type: Optional[StrictStr] = None,
|
|
1786
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1787
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1788
|
+
) -> FileObject:
|
|
1789
|
+
"""Retrieve a file (OpenAI-compatible)
|
|
1790
|
+
|
|
1791
|
+
Returns the metadata for one of your uploaded files. The lookup is scoped to the organization the API key belongs to: a file id that does not exist and one that belongs to another organization both return the same 404, so this route cannot be used to probe for other tenants' ids. Use it to check that a `training_file` is present and usable BEFORE creating a fine-tuning job — the create path performs the identical ownership check, so a file this route returns is a file that create will accept.
|
|
1792
|
+
|
|
1793
|
+
:param id: The file id returned by the upload, e.g. `file-9f2c1a...`. (required)
|
|
1794
|
+
:type id: str
|
|
1795
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1796
|
+
number provided, it will be total request
|
|
1797
|
+
timeout. It can also be a pair (tuple) of
|
|
1798
|
+
(connection, read) timeouts.
|
|
1799
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1800
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1801
|
+
request; this effectively ignores the
|
|
1802
|
+
authentication in the spec for a single request.
|
|
1803
|
+
:type _request_auth: dict, optional
|
|
1804
|
+
:param _content_type: force content-type for the request.
|
|
1805
|
+
:type _content_type: str, Optional
|
|
1806
|
+
:param _headers: set to override the headers for a single
|
|
1807
|
+
request; this effectively ignores the headers
|
|
1808
|
+
in the spec for a single request.
|
|
1809
|
+
:type _headers: dict, optional
|
|
1810
|
+
:param _host_index: set to override the host_index for a single
|
|
1811
|
+
request; this effectively ignores the host_index
|
|
1812
|
+
in the spec for a single request.
|
|
1813
|
+
:type _host_index: int, optional
|
|
1814
|
+
:return: Returns the result object.
|
|
1815
|
+
""" # noqa: E501
|
|
1816
|
+
|
|
1817
|
+
_param = self._retrieve_file_serialize(
|
|
1818
|
+
id=id,
|
|
1819
|
+
_request_auth=_request_auth,
|
|
1820
|
+
_content_type=_content_type,
|
|
1821
|
+
_headers=_headers,
|
|
1822
|
+
_host_index=_host_index
|
|
1823
|
+
)
|
|
1824
|
+
|
|
1825
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1826
|
+
'200': "FileObject",
|
|
1827
|
+
'401': "OpenAIErrorEnvelope",
|
|
1828
|
+
'403': "OpenAIErrorEnvelope",
|
|
1829
|
+
'404': "OpenAIErrorEnvelope",
|
|
1830
|
+
'429': "OpenAIErrorEnvelope",
|
|
1831
|
+
'500': "OpenAIErrorEnvelope",
|
|
1832
|
+
}
|
|
1833
|
+
response_data = self.api_client.call_api(
|
|
1834
|
+
*_param,
|
|
1835
|
+
_request_timeout=_request_timeout
|
|
1836
|
+
)
|
|
1837
|
+
response_data.read()
|
|
1838
|
+
return self.api_client.response_deserialize(
|
|
1839
|
+
response_data=response_data,
|
|
1840
|
+
response_types_map=_response_types_map,
|
|
1841
|
+
).data
|
|
1842
|
+
|
|
1843
|
+
|
|
1844
|
+
@validate_call
|
|
1845
|
+
def retrieve_file_with_http_info(
|
|
1846
|
+
self,
|
|
1847
|
+
id: Annotated[StrictStr, Field(description="The file id returned by the upload, e.g. `file-9f2c1a...`.")],
|
|
1848
|
+
_request_timeout: Union[
|
|
1849
|
+
None,
|
|
1850
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1851
|
+
Tuple[
|
|
1852
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1853
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1854
|
+
]
|
|
1855
|
+
] = None,
|
|
1856
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1857
|
+
_content_type: Optional[StrictStr] = None,
|
|
1858
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1859
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1860
|
+
) -> ApiResponse[FileObject]:
|
|
1861
|
+
"""Retrieve a file (OpenAI-compatible)
|
|
1862
|
+
|
|
1863
|
+
Returns the metadata for one of your uploaded files. The lookup is scoped to the organization the API key belongs to: a file id that does not exist and one that belongs to another organization both return the same 404, so this route cannot be used to probe for other tenants' ids. Use it to check that a `training_file` is present and usable BEFORE creating a fine-tuning job — the create path performs the identical ownership check, so a file this route returns is a file that create will accept.
|
|
1864
|
+
|
|
1865
|
+
:param id: The file id returned by the upload, e.g. `file-9f2c1a...`. (required)
|
|
1866
|
+
:type id: str
|
|
1867
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1868
|
+
number provided, it will be total request
|
|
1869
|
+
timeout. It can also be a pair (tuple) of
|
|
1870
|
+
(connection, read) timeouts.
|
|
1871
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1872
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1873
|
+
request; this effectively ignores the
|
|
1874
|
+
authentication in the spec for a single request.
|
|
1875
|
+
:type _request_auth: dict, optional
|
|
1876
|
+
:param _content_type: force content-type for the request.
|
|
1877
|
+
:type _content_type: str, Optional
|
|
1878
|
+
:param _headers: set to override the headers for a single
|
|
1879
|
+
request; this effectively ignores the headers
|
|
1880
|
+
in the spec for a single request.
|
|
1881
|
+
:type _headers: dict, optional
|
|
1882
|
+
:param _host_index: set to override the host_index for a single
|
|
1883
|
+
request; this effectively ignores the host_index
|
|
1884
|
+
in the spec for a single request.
|
|
1885
|
+
:type _host_index: int, optional
|
|
1886
|
+
:return: Returns the result object.
|
|
1887
|
+
""" # noqa: E501
|
|
1888
|
+
|
|
1889
|
+
_param = self._retrieve_file_serialize(
|
|
1890
|
+
id=id,
|
|
1891
|
+
_request_auth=_request_auth,
|
|
1892
|
+
_content_type=_content_type,
|
|
1893
|
+
_headers=_headers,
|
|
1894
|
+
_host_index=_host_index
|
|
1895
|
+
)
|
|
1896
|
+
|
|
1897
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1898
|
+
'200': "FileObject",
|
|
1899
|
+
'401': "OpenAIErrorEnvelope",
|
|
1900
|
+
'403': "OpenAIErrorEnvelope",
|
|
1901
|
+
'404': "OpenAIErrorEnvelope",
|
|
1902
|
+
'429': "OpenAIErrorEnvelope",
|
|
1903
|
+
'500': "OpenAIErrorEnvelope",
|
|
1904
|
+
}
|
|
1905
|
+
response_data = self.api_client.call_api(
|
|
1906
|
+
*_param,
|
|
1907
|
+
_request_timeout=_request_timeout
|
|
1908
|
+
)
|
|
1909
|
+
response_data.read()
|
|
1910
|
+
return self.api_client.response_deserialize(
|
|
1911
|
+
response_data=response_data,
|
|
1912
|
+
response_types_map=_response_types_map,
|
|
1913
|
+
)
|
|
1914
|
+
|
|
1915
|
+
|
|
1916
|
+
@validate_call
|
|
1917
|
+
def retrieve_file_without_preload_content(
|
|
1918
|
+
self,
|
|
1919
|
+
id: Annotated[StrictStr, Field(description="The file id returned by the upload, e.g. `file-9f2c1a...`.")],
|
|
1920
|
+
_request_timeout: Union[
|
|
1921
|
+
None,
|
|
1922
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1923
|
+
Tuple[
|
|
1924
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1925
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1926
|
+
]
|
|
1927
|
+
] = None,
|
|
1928
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1929
|
+
_content_type: Optional[StrictStr] = None,
|
|
1930
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1931
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1932
|
+
) -> RESTResponseType:
|
|
1933
|
+
"""Retrieve a file (OpenAI-compatible)
|
|
1934
|
+
|
|
1935
|
+
Returns the metadata for one of your uploaded files. The lookup is scoped to the organization the API key belongs to: a file id that does not exist and one that belongs to another organization both return the same 404, so this route cannot be used to probe for other tenants' ids. Use it to check that a `training_file` is present and usable BEFORE creating a fine-tuning job — the create path performs the identical ownership check, so a file this route returns is a file that create will accept.
|
|
1936
|
+
|
|
1937
|
+
:param id: The file id returned by the upload, e.g. `file-9f2c1a...`. (required)
|
|
1938
|
+
:type id: str
|
|
1939
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1940
|
+
number provided, it will be total request
|
|
1941
|
+
timeout. It can also be a pair (tuple) of
|
|
1942
|
+
(connection, read) timeouts.
|
|
1943
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1944
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1945
|
+
request; this effectively ignores the
|
|
1946
|
+
authentication in the spec for a single request.
|
|
1947
|
+
:type _request_auth: dict, optional
|
|
1948
|
+
:param _content_type: force content-type for the request.
|
|
1949
|
+
:type _content_type: str, Optional
|
|
1950
|
+
:param _headers: set to override the headers for a single
|
|
1951
|
+
request; this effectively ignores the headers
|
|
1952
|
+
in the spec for a single request.
|
|
1953
|
+
:type _headers: dict, optional
|
|
1954
|
+
:param _host_index: set to override the host_index for a single
|
|
1955
|
+
request; this effectively ignores the host_index
|
|
1956
|
+
in the spec for a single request.
|
|
1957
|
+
:type _host_index: int, optional
|
|
1958
|
+
:return: Returns the result object.
|
|
1959
|
+
""" # noqa: E501
|
|
1960
|
+
|
|
1961
|
+
_param = self._retrieve_file_serialize(
|
|
1962
|
+
id=id,
|
|
1963
|
+
_request_auth=_request_auth,
|
|
1964
|
+
_content_type=_content_type,
|
|
1965
|
+
_headers=_headers,
|
|
1966
|
+
_host_index=_host_index
|
|
1967
|
+
)
|
|
1968
|
+
|
|
1969
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1970
|
+
'200': "FileObject",
|
|
1971
|
+
'401': "OpenAIErrorEnvelope",
|
|
1972
|
+
'403': "OpenAIErrorEnvelope",
|
|
1973
|
+
'404': "OpenAIErrorEnvelope",
|
|
1974
|
+
'429': "OpenAIErrorEnvelope",
|
|
1975
|
+
'500': "OpenAIErrorEnvelope",
|
|
1976
|
+
}
|
|
1977
|
+
response_data = self.api_client.call_api(
|
|
1978
|
+
*_param,
|
|
1979
|
+
_request_timeout=_request_timeout
|
|
1980
|
+
)
|
|
1981
|
+
return response_data.response
|
|
1982
|
+
|
|
1983
|
+
|
|
1984
|
+
def _retrieve_file_serialize(
|
|
1985
|
+
self,
|
|
1986
|
+
id,
|
|
1987
|
+
_request_auth,
|
|
1988
|
+
_content_type,
|
|
1989
|
+
_headers,
|
|
1990
|
+
_host_index,
|
|
1991
|
+
) -> RequestSerialized:
|
|
1992
|
+
|
|
1993
|
+
_host = None
|
|
1994
|
+
|
|
1995
|
+
_collection_formats: Dict[str, str] = {
|
|
1996
|
+
}
|
|
1997
|
+
|
|
1998
|
+
_path_params: Dict[str, str] = {}
|
|
1999
|
+
_query_params: List[Tuple[str, str]] = []
|
|
2000
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
2001
|
+
_form_params: List[Tuple[str, str]] = []
|
|
2002
|
+
_files: Dict[
|
|
2003
|
+
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
|
2004
|
+
] = {}
|
|
2005
|
+
_body_params: Optional[bytes] = None
|
|
2006
|
+
|
|
2007
|
+
# process the path parameters
|
|
2008
|
+
if id is not None:
|
|
2009
|
+
_path_params['id'] = id
|
|
2010
|
+
# process the query parameters
|
|
2011
|
+
# process the header parameters
|
|
2012
|
+
# process the form parameters
|
|
2013
|
+
# process the body parameter
|
|
2014
|
+
|
|
2015
|
+
|
|
2016
|
+
# set the HTTP header `Accept`
|
|
2017
|
+
if 'Accept' not in _header_params:
|
|
2018
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
2019
|
+
[
|
|
2020
|
+
'application/json'
|
|
2021
|
+
]
|
|
2022
|
+
)
|
|
2023
|
+
|
|
2024
|
+
|
|
2025
|
+
# authentication setting
|
|
2026
|
+
_auth_settings: List[str] = [
|
|
2027
|
+
'bearerAuth'
|
|
2028
|
+
]
|
|
2029
|
+
|
|
2030
|
+
return self.api_client.param_serialize(
|
|
2031
|
+
method='GET',
|
|
2032
|
+
resource_path='/files/{id}',
|
|
2033
|
+
path_params=_path_params,
|
|
2034
|
+
query_params=_query_params,
|
|
2035
|
+
header_params=_header_params,
|
|
2036
|
+
body=_body_params,
|
|
2037
|
+
post_params=_form_params,
|
|
2038
|
+
files=_files,
|
|
2039
|
+
auth_settings=_auth_settings,
|
|
2040
|
+
collection_formats=_collection_formats,
|
|
2041
|
+
_host=_host,
|
|
2042
|
+
_request_auth=_request_auth
|
|
2043
|
+
)
|
|
2044
|
+
|
|
2045
|
+
|
|
@@ -92,7 +92,7 @@ class ApiClient:
|
|
|
92
92
|
self.default_headers[header_name] = header_value
|
|
93
93
|
self.cookie = cookie
|
|
94
94
|
# Set default User-Agent.
|
|
95
|
-
self.user_agent = 'OpenAPI-Generator/0.3.
|
|
95
|
+
self.user_agent = 'OpenAPI-Generator/0.3.9/python'
|
|
96
96
|
self.client_side_validation = configuration.client_side_validation
|
|
97
97
|
|
|
98
98
|
def __enter__(self):
|
|
@@ -552,7 +552,7 @@ class Configuration:
|
|
|
552
552
|
"OS: {env}\n"\
|
|
553
553
|
"Python Version: {pyversion}\n"\
|
|
554
554
|
"Version of the API: 1.0.0\n"\
|
|
555
|
-
"SDK Package Version: 0.3.
|
|
555
|
+
"SDK Package Version: 0.3.9".\
|
|
556
556
|
format(env=sys.platform, pyversion=sys.version)
|
|
557
557
|
|
|
558
558
|
def get_host_settings(self) -> List[HostSetting]:
|
|
@@ -42,13 +42,14 @@ class CreateInstanceRequest(BaseModel):
|
|
|
42
42
|
environment: Optional[StrictStr] = Field(default=None, description="Launch environment. Omit for the provider default (the GPU.ai Certified Image where supported). Accepted values: `certified` (the GPU.ai Certified base image), `certified:<framework>` (a framework layer — see GET /v1/environments for the roster, e.g. `certified:pytorch`), `certified:<framework>@<version>` (a specific framework version, e.g. `certified:pytorch@2.13`), `raw_vm` (root VM, provider default OS), `raw_vm:<os>` (root VM with a chosen OS, e.g. `raw_vm:ubuntu-24.04`), or `provider_template` (the provider's own image). A well-formed value the placed machine can't serve returns 422 `environment_unavailable`.", json_schema_extra={"examples": ["certified:pytorch@2.13"]})
|
|
43
43
|
offering_id: Optional[StrictStr] = Field(default=None, description="Pin the launch to one exact offering (from GET /v1/pricing) so the engine never substitutes a pricier one. If that offering is gone, the launch fails explicitly rather than silently placing elsewhere.")
|
|
44
44
|
disk_gb: Optional[Annotated[int, Field(strict=True, ge=10)]] = Field(default=None, description="Requested instance filesystem size in GB. Omit for the platform default (100 GB), which never narrows placement. Setting it is a hard requirement: placement narrows to capacity that can honor it (see `disk_configurable` on GET /v1/pricing), and a request no offering of the gpu_type can honor returns 422 `disk_unavailable` rather than launching with a different size. When the launch also pins an exact `offering_id`, a disk_gb larger than that offering's displayed `storage_gb` returns 422 `disk_exceeds_offering` rather than launching with a clamped filesystem. Disk beyond the included allowance (100 GB) is billed at the offering's `disk_price_per_gb_hour` (GET /v1/pricing), folded into the instance's single hourly rate. Bounds: at least 10, at most the platform ceiling (currently 1000) — outside them returns 422 `validation_failed`.", json_schema_extra={"examples": [200]})
|
|
45
|
+
auto_terminate_hours: Optional[Annotated[int, Field(le=720, strict=True, ge=1)]] = Field(default=None, description="Terminate this instance automatically after this many hours of runtime. Omit for no limit (the default). The countdown starts when the instance reaches `running`, not when you call this — provisioning is neither billed nor counted against the limit — and the resolved deadline is returned as `auto_terminate_at` on every read. Enforcement is server-side and survives your process: this is the safety net for an unattended run whose client dies without cleaning up. When it fires the instance is terminated exactly as a DELETE would terminate it (billing stops, the `instance.terminated` webhook fires) and `status_reason` records that the limit was reached. Bounds: at least 1, at most 720 (30 days) — outside them returns 422 `validation_failed`. An explicit `0` is rejected rather than read as \"no limit\"; omit the field for that.", json_schema_extra={"examples": [8]})
|
|
45
46
|
env: Optional[Dict[str, StrictStr]] = Field(default=None, description="Environment variables. With `template_id`: per-deploy overrides — only keys the template marks user_overridable are accepted (others 422), and secret values are redacted from operation metadata. With `image`: plain container env vars — keys must be POSIX names and the platform's reserved namespace (`PUBLIC_KEY`, `GPUAI_*`) is refused (422).")
|
|
46
47
|
image: Optional[StrictStr] = Field(default=None, description="Launch from your own container image, e.g. `pytorch/pytorch:2.4.1-cuda12.4-cudnn9-devel` or `ghcr.io/acme/trainer:v1`. The image must be publicly pullable (private registries are not yet supported) and provide linux/amd64 — both are verified synchronously before anything is provisioned: an unknown image returns 422 `image_unavailable` and a registry outage 502 `registry_unreachable`, with no operation created and nothing billed. The launch is pinned to the exact manifest digest verified, so a tag re-push cannot change what boots. After SSH/tunnel setup the image's own ENTRYPOINT/CMD is started (its output is in /var/log/gpuai-entrypoint.log on the instance); an image with neither is a plain SSH environment. Placement prefers container-native capacity (the image runs natively; SSH lands inside it) and falls back to VM capacity (the image runs as a container beside the host's SSH — inspect with `docker logs gpuai-workload`); private images stay container-native. A gpu_type with no capable capacity returns 422 `image_unavailable`. Mutually exclusive with `template_id` and `environment` (422). A malformed reference (bad charset, localhost/private-IP registry) returns 400. On-demand only for now: `tier: spot` with `image` is refused (422 `validation_failed`) because a preemption re-route cannot yet carry a custom image.", json_schema_extra={"examples": ["ghcr.io/acme/trainer:v1"]})
|
|
47
48
|
registry_credential_id: Optional[StrictStr] = Field(default=None, description="Stored registry-credential id (POST /v1/registry-credentials) for pulling a PRIVATE `image`. The credential's registry must match the image's registry (422 otherwise); wrong logins fail the pre-flight with 422 `image_unavailable` before anything is provisioned. Requires `image`.")
|
|
48
49
|
entrypoint: Optional[List[StrictStr]] = Field(default=None, description="Override the image's ENTRYPOINT (docker semantics — also drops the image CMD unless `cmd` is given). Omit to use the image's own. At most 32 arguments / 4KB. Requires `image`.")
|
|
49
50
|
cmd: Optional[List[StrictStr]] = Field(default=None, description="Override the image's CMD. Omit to use the image's own (or none, when `entrypoint` is overridden). Requires `image`.")
|
|
50
51
|
ports: Optional[List[CreateInstanceRequestPortsInner]] = Field(default=None, description="Container ports to expose on a custom-image launch (at most 10; port 22 is reserved). At most one entry may be `primary` — it must be http and is served at the instance's app URL (`https://<id>.apps.gpu.ai`) behind the per-instance basic-auth login. Requires `image`.")
|
|
51
|
-
__properties: ClassVar[List[str]] = ["gpu_type", "gpu_count", "region", "tier", "ssh_key_ids", "name", "max_price_per_hour", "viewed_price_per_hour", "template_id", "environment", "offering_id", "disk_gb", "env", "image", "registry_credential_id", "entrypoint", "cmd", "ports"]
|
|
52
|
+
__properties: ClassVar[List[str]] = ["gpu_type", "gpu_count", "region", "tier", "ssh_key_ids", "name", "max_price_per_hour", "viewed_price_per_hour", "template_id", "environment", "offering_id", "disk_gb", "auto_terminate_hours", "env", "image", "registry_credential_id", "entrypoint", "cmd", "ports"]
|
|
52
53
|
|
|
53
54
|
@field_validator('tier')
|
|
54
55
|
def tier_validate_enum(cls, value):
|
|
@@ -127,6 +128,7 @@ class CreateInstanceRequest(BaseModel):
|
|
|
127
128
|
"environment": obj.get("environment"),
|
|
128
129
|
"offering_id": obj.get("offering_id"),
|
|
129
130
|
"disk_gb": obj.get("disk_gb"),
|
|
131
|
+
"auto_terminate_hours": obj.get("auto_terminate_hours"),
|
|
130
132
|
"env": obj.get("env"),
|
|
131
133
|
"image": obj.get("image"),
|
|
132
134
|
"registry_credential_id": obj.get("registry_credential_id"),
|
|
@@ -42,13 +42,15 @@ class Instance(BaseModel):
|
|
|
42
42
|
connection: Optional[InstanceConnection] = None
|
|
43
43
|
disk_gb: Optional[StrictInt] = Field(default=None, description="Instance filesystem size in GB that the platform configured for this launch. Present only where the placed capacity honors a configured disk size; absent means the machine's disk is provider-determined (its own flavor volume).")
|
|
44
44
|
image: Optional[StrictStr] = Field(default=None, description="The customer-supplied container image this instance was launched from, digest-pinned at verification time (e.g. `ghcr.io/acme/trainer:v1@sha256:…`). Present only on custom-image launches; template and certified launches never expose their images here.")
|
|
45
|
-
|
|
45
|
+
auto_terminate_hours: Optional[StrictInt] = Field(default=None, description="The runtime limit this instance was launched with, in hours (the `auto_terminate_hours` you sent). Absent means the instance runs until something stops it. It stays present after the limit has fired, so a terminated instance still explains itself.", json_schema_extra={"examples": [8]})
|
|
46
|
+
auto_terminate_at: Optional[datetime] = Field(default=None, description="When the runtime limit expires and the platform terminates this instance. Computed when the instance became running (ready_at + auto_terminate_hours), so the countdown covers usable runtime, not the time spent provisioning. Absent when no limit was set, when the instance is not running yet, or once the platform has begun acting on an elapsed limit.")
|
|
47
|
+
status_reason: Optional[StrictStr] = Field(default=None, description="Why the instance stopped or failed, e.g. \"provisioning stalled: the instance started but never became reachable\", or — when a runtime limit fired — \"Terminated: this instance reached the 8-hour runtime limit set at launch\". Present only when the platform has something to explain.")
|
|
46
48
|
created_at: datetime
|
|
47
49
|
ready_at: Optional[datetime] = None
|
|
48
50
|
terminated_at: Optional[datetime] = None
|
|
49
51
|
last_reachable_at: Optional[datetime] = Field(default=None, description="Last time the platform verified the SSH path to this instance end-to-end through the tunnel. Absent means the instance has not been probed yet (freshly launched, or no tunnel) — it does NOT mean unreachable. An instance whose status is still \"running\" while this timestamp stops advancing is one whose SSH has died even though the machine is up.")
|
|
50
52
|
unreachable_since: Optional[datetime] = Field(default=None, description="Start of the confirmed tunnel outage the instance is currently in. Present exactly when status is \"unreachable\", absent otherwise. It is the timestamp the auto-credit for the dead window is computed from, so a ledger credit can be reconciled against it.")
|
|
51
|
-
__properties: ClassVar[List[str]] = ["id", "name", "status", "gpu_type", "gpu_count", "region", "tier", "price_per_hour", "connection", "disk_gb", "image", "status_reason", "created_at", "ready_at", "terminated_at", "last_reachable_at", "unreachable_since"]
|
|
53
|
+
__properties: ClassVar[List[str]] = ["id", "name", "status", "gpu_type", "gpu_count", "region", "tier", "price_per_hour", "connection", "disk_gb", "image", "auto_terminate_hours", "auto_terminate_at", "status_reason", "created_at", "ready_at", "terminated_at", "last_reachable_at", "unreachable_since"]
|
|
52
54
|
|
|
53
55
|
@field_validator('status')
|
|
54
56
|
def status_validate_enum(cls, value):
|
|
@@ -129,6 +131,8 @@ class Instance(BaseModel):
|
|
|
129
131
|
"connection": InstanceConnection.from_dict(obj["connection"]) if obj.get("connection") is not None else None,
|
|
130
132
|
"disk_gb": obj.get("disk_gb"),
|
|
131
133
|
"image": obj.get("image"),
|
|
134
|
+
"auto_terminate_hours": obj.get("auto_terminate_hours"),
|
|
135
|
+
"auto_terminate_at": obj.get("auto_terminate_at"),
|
|
132
136
|
"status_reason": obj.get("status_reason"),
|
|
133
137
|
"created_at": obj.get("created_at"),
|
|
134
138
|
"ready_at": obj.get("ready_at"),
|
|
@@ -18,7 +18,7 @@ import pprint
|
|
|
18
18
|
import re # noqa: F401
|
|
19
19
|
import json
|
|
20
20
|
|
|
21
|
-
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr, field_validator
|
|
22
22
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
23
|
from gpuai_sdk.models.model_parameters_inner import ModelParametersInner
|
|
24
24
|
from gpuai_sdk.models.model_pricing import ModelPricing
|
|
@@ -42,8 +42,10 @@ class Model(BaseModel):
|
|
|
42
42
|
parameters: Optional[List[ModelParametersInner]] = Field(default=None, description="Typed parameter descriptors for media (image/video) models — name, type, enum/bounds/default. Playgrounds render input forms from these.")
|
|
43
43
|
pricing: ModelPricing
|
|
44
44
|
aliases: Optional[List[StrictStr]] = None
|
|
45
|
+
fine_tunable: Optional[StrictBool] = Field(default=None, description="Whether this model can be used as the base of a managed fine-tuning job. The tunable allowlist is operator-curated and much narrower than the serving catalog, so this is false for almost every model. Absent means false.")
|
|
46
|
+
fine_tune_base_model: Optional[StrictStr] = Field(default=None, description="The exact id to send as `model` when creating a fine-tuning job for this entry. Present only when `fine_tunable` is true, and deliberately distinct from `id`: the allowlist matches the customer-facing base id (e.g. `qwen2.5-7b-instruct`), which a served model normally carries as an alias rather than as its namespaced catalog id.")
|
|
45
47
|
status: StrictStr
|
|
46
|
-
__properties: ClassVar[List[str]] = ["id", "object", "created", "owned_by", "author", "modality", "category", "context_length", "supported_parameters", "parameters", "pricing", "aliases", "status"]
|
|
48
|
+
__properties: ClassVar[List[str]] = ["id", "object", "created", "owned_by", "author", "modality", "category", "context_length", "supported_parameters", "parameters", "pricing", "aliases", "fine_tunable", "fine_tune_base_model", "status"]
|
|
47
49
|
|
|
48
50
|
@field_validator('object')
|
|
49
51
|
def object_validate_enum(cls, value):
|
|
@@ -139,6 +141,8 @@ class Model(BaseModel):
|
|
|
139
141
|
"parameters": [ModelParametersInner.from_dict(_item) for _item in obj["parameters"]] if obj.get("parameters") is not None else None,
|
|
140
142
|
"pricing": ModelPricing.from_dict(obj["pricing"]) if obj.get("pricing") is not None else None,
|
|
141
143
|
"aliases": obj.get("aliases"),
|
|
144
|
+
"fine_tunable": obj.get("fine_tunable"),
|
|
145
|
+
"fine_tune_base_model": obj.get("fine_tune_base_model"),
|
|
142
146
|
"status": obj.get("status")
|
|
143
147
|
})
|
|
144
148
|
return _obj
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gpuai-sdk
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.9
|
|
4
4
|
Summary: GPU.ai Public Developer API
|
|
5
5
|
Home-page:
|
|
6
6
|
Author: GPU.ai Support
|
|
@@ -26,7 +26,7 @@ the dashboard. See https://gpu.ai/docs for details.
|
|
|
26
26
|
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
|
27
27
|
|
|
28
28
|
- API version: 1.0.0
|
|
29
|
-
- Package version: 0.3.
|
|
29
|
+
- Package version: 0.3.9
|
|
30
30
|
- Generator version: 7.24.0
|
|
31
31
|
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
|
|
32
32
|
|
|
@@ -136,6 +136,7 @@ Class | Method | HTTP request | Description
|
|
|
136
136
|
*FineTuningApi* | [**get_fine_tuning_job**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/FineTuningApi.md#get_fine_tuning_job) | **GET** /fine_tuning/jobs/{id} | Retrieve a fine-tuning job (OpenAI-compatible)
|
|
137
137
|
*FineTuningApi* | [**list_fine_tuning_job_events**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/FineTuningApi.md#list_fine_tuning_job_events) | **GET** /fine_tuning/jobs/{id}/events | List fine-tuning job events (OpenAI-compatible)
|
|
138
138
|
*FineTuningApi* | [**list_fine_tuning_jobs**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/FineTuningApi.md#list_fine_tuning_jobs) | **GET** /fine_tuning/jobs | List fine-tuning jobs (OpenAI-compatible)
|
|
139
|
+
*FineTuningApi* | [**retrieve_file**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/FineTuningApi.md#retrieve_file) | **GET** /files/{id} | Retrieve a file (OpenAI-compatible)
|
|
139
140
|
*GpuTypesApi* | [**list_gpu_types**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/GpuTypesApi.md#list_gpu_types) | **GET** /gpu-types | List available GPU types (no auth required)
|
|
140
141
|
*InferenceApi* | [**cancel_video**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/InferenceApi.md#cancel_video) | **POST** /videos/{id}/cancel | Cancel a video generation job
|
|
141
142
|
*InferenceApi* | [**create_chat_completion**](https://github.com/gpuai-dev/gpuai-python-sdk/blob/main/docs/InferenceApi.md#create_chat_completion) | **POST** /chat/completions | Create a chat completion (OpenAI-compatible)
|
|
@@ -6,7 +6,7 @@ name = "gpuai-sdk"
|
|
|
6
6
|
# injected tree. This file is ignore-protected (see .openapi-generator-ignore)
|
|
7
7
|
# so the placeholder survives regeneration; sdk/release/assert-placeholder.sh
|
|
8
8
|
# fails CI if a real version ever lands here.
|
|
9
|
-
version = "0.3.
|
|
9
|
+
version = "0.3.9"
|
|
10
10
|
description = "GPU.ai Public Developer API"
|
|
11
11
|
authors = [
|
|
12
12
|
{name = "GPU.ai Support",email = "support@gpu.ai"},
|
|
@@ -20,7 +20,7 @@ from setuptools import setup, find_packages # noqa: H301
|
|
|
20
20
|
# prerequisite: setuptools
|
|
21
21
|
# http://pypi.python.org/pypi/setuptools
|
|
22
22
|
NAME = "gpuai-sdk"
|
|
23
|
-
VERSION = "0.3.
|
|
23
|
+
VERSION = "0.3.9"
|
|
24
24
|
PYTHON_REQUIRES = ">= 3.10"
|
|
25
25
|
REQUIRES = [
|
|
26
26
|
"urllib3 >= 2.6.3, < 3.0.0",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/create_fine_tuning_job_request_gpuai.py
RENAMED
|
File without changes
|
{gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/create_fine_tuning_job_request_method.py
RENAMED
|
File without changes
|
{gpuai_sdk-0.3.7 → gpuai_sdk-0.3.9}/gpuai_sdk/models/create_fine_tuning_job_request_method_lora.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|