Metadata-Version: 2.4
Name: foxinternalclient
Version: 6.0.0
Summary: Fox API
Home-page: 
Author: OpenAPI Generator community
Author-email: OpenAPI Generator Community <admin@orangefox.tech>
Project-URL: Repository, https://github.com/GIT_USER_ID/GIT_REPO_ID
Keywords: OpenAPI,OpenAPI-Generator,Fox API
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: python-dateutil>=2.8.2
Requires-Dist: aiohttp>=3.8.4
Requires-Dist: aiohttp-retry>=2.8.3
Requires-Dist: pydantic>=2.11
Requires-Dist: typing-extensions>=4.7.1
Dynamic: author

# foxinternalclient
Warning: Please add a custom user agent header to your requests.
This would help us fighting against DDoS attacks in future, while keeping your application's access to the API.
In future, this may be a mandatory requirement.

To reduce the system load, the API endpoints are rate limited.
The default limit is 30 requests per minute. Contact admin@orangefox.tech if you need a higher limit.

The requests may be logged for analytics and development purposes.


This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: 6.0.0
- Package version: 6.0.0
- Generator version: 7.21.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen

## Requirements.

Python 3.9+

## Installation & Usage
### pip install

If the python package is hosted on a repository, you can install directly using:

```sh
pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git
```
(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git`)

Then import the package:
```python
import foxinternalclient
```

### Setuptools

Install via [Setuptools](http://pypi.python.org/pypi/setuptools).

```sh
python setup.py install --user
```
(or `sudo python setup.py install` to install the package for all users)

Then import the package:
```python
import foxinternalclient
```

### Tests

Execute `pytest` to run the tests.

## Getting Started

Please follow the [installation procedure](#installation--usage) and then run the following:

```python

import foxinternalclient
from foxinternalclient.rest import ApiException
from pprint import pprint

# Defining the host is optional and defaults to https://api.orangefox.download
# See configuration.py for a list of all supported configuration parameters.
configuration = foxinternalclient.Configuration(
    host = "https://api.orangefox.download"
)



# Enter a context with an instance of the API client
async with foxinternalclient.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = foxinternalclient.DeviceApi(api_client)
    device_id = 'device_id_example' # str |  (optional)
    codename = 'codename_example' # str |  (optional)
    id = 'id_example' # str |  (optional)

    try:
        # GET /devices/get - Get a single device by device_id, codename, or _id.
        api_response = await api_instance.get_device(device_id=device_id, codename=codename, id=id)
        print("The response of DeviceApi->get_device:\n")
        pprint(api_response)
    except ApiException as e:
        print("Exception when calling DeviceApi->get_device: %s\n" % e)

```

## Documentation for API Endpoints

All URIs are relative to *https://api.orangefox.download*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*DeviceApi* | [**get_device**](docs/DeviceApi.md#get_device) | **GET** /devices/get | GET /devices/get - Get a single device by device_id, codename, or _id.
*DeviceApi* | [**get_device_by_id**](docs/DeviceApi.md#get_device_by_id) | **GET** /devices/{device_id} | GET /devices/{device_id} - Get device by ID (deprecated).
*DeviceApi* | [**get_oems**](docs/DeviceApi.md#get_oems) | **GET** /oems | GET /oems - Get a list of all unique OEM names.
*DeviceApi* | [**list_devices**](docs/DeviceApi.md#list_devices) | **GET** /devices | GET /devices/ - List devices with filters.
*FoxFactoryApi* | [**cancel_task**](docs/FoxFactoryApi.md#cancel_task) | **POST** /factory/{task_id}/cancel | POST /internal/factory/{task_id}/cancel – Cancel a running build task.
*FoxFactoryApi* | [**create_task**](docs/FoxFactoryApi.md#create_task) | **POST** /factory | POST /internal/factory – Create a new build task.
*FoxFactoryApi* | [**delete_task**](docs/FoxFactoryApi.md#delete_task) | **DELETE** /factory/{task_id} | DELETE /internal/factory/{task_id} – Delete a build task and its artifact.
*FoxFactoryApi* | [**download_artifact**](docs/FoxFactoryApi.md#download_artifact) | **GET** /factory/{task_id}/artifact | GET /internal/factory/{task_id}/artifact – Download a build artifact.
*FoxFactoryApi* | [**get_factory_status**](docs/FoxFactoryApi.md#get_factory_status) | **GET** /factory/status | GET /internal/factory/status – Get the current FoxFactory worker status.
*FoxFactoryApi* | [**get_task**](docs/FoxFactoryApi.md#get_task) | **GET** /factory/{task_id} | GET /internal/factory/{task_id} – Get a single build task.
*FoxFactoryApi* | [**list_tasks**](docs/FoxFactoryApi.md#list_tasks) | **GET** /factory | GET /internal/factory – List build tasks.
*FoxFactoryApi* | [**update_task**](docs/FoxFactoryApi.md#update_task) | **PATCH** /factory/{task_id} | PATCH /internal/factory/{task_id} – Update task status / logs.
*FoxFactoryApi* | [**update_worker_status**](docs/FoxFactoryApi.md#update_worker_status) | **POST** /factory/update_status | POST /internal/factory/update_status – Worker heartbeat / status update.
*FoxFactoryApi* | [**upload_artifact**](docs/FoxFactoryApi.md#upload_artifact) | **POST** /factory/{task_id}/artifact | POST /internal/factory/{task_id}/artifact – Upload a build artifact.
*GitlabApi* | [**add_gitlab_repo**](docs/GitlabApi.md#add_gitlab_repo) | **POST** /gitlab/device/{device_id}/gitlab | POST /gitlab/device/{device_id}/gitlab?gl_project_url&#x3D;&lt;url&gt;
*InternalApi* | [**change_password**](docs/InternalApi.md#change_password) | **POST** /profile/change_password | POST /profile/change_password - Change the authenticated user&#39;s password.
*InternalApi* | [**create_device**](docs/InternalApi.md#create_device) | **POST** /internal/devices | POST /internal/devices/ - Create a new device.
*InternalApi* | [**delete_device**](docs/InternalApi.md#delete_device) | **DELETE** /internal/devices/{device_id} | DELETE /internal/devices/{device_id} - Delete a device (only if no releases exist).
*InternalApi* | [**delete_passkey**](docs/InternalApi.md#delete_passkey) | **DELETE** /profile/passkeys/{credential_id} | DELETE /profile/passkeys/{credential_id} - Revoke a passkey credential (requires password).
*InternalApi* | [**delete_paste**](docs/InternalApi.md#delete_paste) | **DELETE** /internal/paste/{paste_id} | DELETE /internal/paste/{paste_id} - Delete a paste (admin only).
*InternalApi* | [**delete_release**](docs/InternalApi.md#delete_release) | **DELETE** /internal/releases/{release_id} | DELETE /internal/releases/{release_id} - Delete a release.
*InternalApi* | [**delete_user**](docs/InternalApi.md#delete_user) | **DELETE** /internal/users/{user_id} | DELETE /internal/users/{user_id} - Delete a user.
*InternalApi* | [**edit_device**](docs/InternalApi.md#edit_device) | **PUT** /internal/devices/{device_id} | PUT /internal/devices/{device_id} - Update a device.
*InternalApi* | [**edit_release**](docs/InternalApi.md#edit_release) | **PUT** /internal/releases/{release_id} | PUT /internal/releases/{release_id} - Edit a release.
*InternalApi* | [**edit_user**](docs/InternalApi.md#edit_user) | **PUT** /internal/users/{user_id} | PUT /internal/users/{user_id} - Update a user (admin only).
*InternalApi* | [**get_device_info**](docs/InternalApi.md#get_device_info) | **GET** /internal/devices/{device_id} | GET /internal/devices/{device_id} - Get device with stats.
*InternalApi* | [**get_release_info**](docs/InternalApi.md#get_release_info) | **GET** /internal/releases/{release_id} | GET /internal/releases/{release_id} - Get release with stats and maintainer info.
*InternalApi* | [**get_user**](docs/InternalApi.md#get_user) | **GET** /internal/users/{user_id} | GET /internal/users/{user_id} - Get user with maintained devices.
*InternalApi* | [**list_logs**](docs/InternalApi.md#list_logs) | **GET** /internal/logs | GET /internal/logs/ - Get paginated audit logs.
*InternalApi* | [**list_passkeys**](docs/InternalApi.md#list_passkeys) | **GET** /profile/passkeys | GET /profile/passkeys - List the authenticated user&#39;s passkey credentials.
*InternalApi* | [**list_pastes**](docs/InternalApi.md#list_pastes) | **GET** /internal/paste | GET /internal/paste/ - List all pastes (admin only).
*InternalApi* | [**list_users**](docs/InternalApi.md#list_users) | **GET** /internal/users | GET /internal/users/ - List all users (short response).
*InternalApi* | [**login**](docs/InternalApi.md#login) | **POST** /auth/login | POST /auth/login
*InternalApi* | [**logout**](docs/InternalApi.md#logout) | **POST** /auth/logout | POST /auth/logout
*InternalApi* | [**passkey_login_options**](docs/InternalApi.md#passkey_login_options) | **POST** /auth/passkeys/login/options | POST /auth/passkeys/login/options
*InternalApi* | [**passkey_login_verify**](docs/InternalApi.md#passkey_login_verify) | **POST** /auth/passkeys/login/verify | POST /auth/passkeys/login/verify
*InternalApi* | [**passkey_register_options**](docs/InternalApi.md#passkey_register_options) | **POST** /auth/passkeys/register/options | POST /auth/passkeys/register/options
*InternalApi* | [**passkey_register_verify**](docs/InternalApi.md#passkey_register_verify) | **POST** /auth/passkeys/register/verify | POST /auth/passkeys/register/verify
*InternalApi* | [**rename_passkey**](docs/InternalApi.md#rename_passkey) | **POST** /profile/passkeys/{credential_id}/rename | POST /profile/passkeys/{credential_id}/rename - Rename a passkey credential.
*InternalApi* | [**renew**](docs/InternalApi.md#renew) | **POST** /auth/renew | POST /auth/renew
*InternalApi* | [**update_paste**](docs/InternalApi.md#update_paste) | **PUT** /internal/paste/{paste_id} | PUT /internal/paste/{paste_id} - Update paste content (admin only).
*InternalApi* | [**upload_new_release**](docs/InternalApi.md#upload_new_release) | **POST** /internal/releases | POST /internal/releases/ - Upload a new release.
*PasteApi* | [**create_paste**](docs/PasteApi.md#create_paste) | **POST** /paste | POST /paste/ - Create a new paste.
*PasteApi* | [**get_paste**](docs/PasteApi.md#get_paste) | **GET** /paste/{paste_id} | GET /paste/{paste_id} - Get a paste by ID.
*ReleaseApi* | [**get_release**](docs/ReleaseApi.md#get_release) | **GET** /releases/get | GET /releases/get - Get a single release.
*ReleaseApi* | [**get_release_by_id**](docs/ReleaseApi.md#get_release_by_id) | **GET** /releases/{release_id} | GET /releases/{release_id} - Get release by ID (deprecated).
*ReleaseApi* | [**get_updates_after**](docs/ReleaseApi.md#get_updates_after) | **GET** /updates/{last_known_id} | GET /updates/{last_known_id} - Get releases after a given release ID (deprecated).
*ReleaseApi* | [**list_releases**](docs/ReleaseApi.md#list_releases) | **GET** /releases | GET /releases/ - List releases with filters.
*ReportApi* | [**new_report**](docs/ReportApi.md#new_report) | **POST** /report/{release_id} | POST /report/{release_id} - Submit a bug report.
*StatsApi* | [**get_global_stats**](docs/StatsApi.md#get_global_stats) | **GET** /stats | GET /stats/ - Get global download statistics.


## Documentation For Models

 - [BuildTaskResponse](docs/BuildTaskResponse.md)
 - [BuildTaskShortResponse](docs/BuildTaskShortResponse.md)
 - [ChangePasswordBody](docs/ChangePasswordBody.md)
 - [DeletePasskeyBody](docs/DeletePasskeyBody.md)
 - [DeviceInternalResponse](docs/DeviceInternalResponse.md)
 - [DeviceResponse](docs/DeviceResponse.md)
 - [DeviceStatsResponse](docs/DeviceStatsResponse.md)
 - [DeviceUpdateBody](docs/DeviceUpdateBody.md)
 - [ErrorResponse](docs/ErrorResponse.md)
 - [FFStatusResponse](docs/FFStatusResponse.md)
 - [GlobalStatsResponse](docs/GlobalStatsResponse.md)
 - [ListResponseBuildTaskShortResponse](docs/ListResponseBuildTaskShortResponse.md)
 - [ListResponseBuildTaskShortResponseDataInner](docs/ListResponseBuildTaskShortResponseDataInner.md)
 - [ListResponsePasteResponse](docs/ListResponsePasteResponse.md)
 - [ListResponsePasteResponseDataInner](docs/ListResponsePasteResponseDataInner.md)
 - [ListResponseReleaseResponse](docs/ListResponseReleaseResponse.md)
 - [ListResponseReleaseResponseDataInner](docs/ListResponseReleaseResponseDataInner.md)
 - [ListResponseShortDeviceResponse](docs/ListResponseShortDeviceResponse.md)
 - [ListResponseShortDeviceResponseDataInner](docs/ListResponseShortDeviceResponseDataInner.md)
 - [ListResponseString](docs/ListResponseString.md)
 - [ListResponseUserShortResponse](docs/ListResponseUserShortResponse.md)
 - [ListResponseUserShortResponseDataInner](docs/ListResponseUserShortResponseDataInner.md)
 - [LogListResponse](docs/LogListResponse.md)
 - [LogResponse](docs/LogResponse.md)
 - [LoginForm](docs/LoginForm.md)
 - [MaintainerShortResponse](docs/MaintainerShortResponse.md)
 - [NewBuildTaskBody](docs/NewBuildTaskBody.md)
 - [NewDeviceBody](docs/NewDeviceBody.md)
 - [NewReportRequest](docs/NewReportRequest.md)
 - [PasskeyCredentialResponse](docs/PasskeyCredentialResponse.md)
 - [PasskeyRegisterOptionsRequest](docs/PasskeyRegisterOptionsRequest.md)
 - [PasskeyVerifyRequest](docs/PasskeyVerifyRequest.md)
 - [PasteInput](docs/PasteInput.md)
 - [PasteResponse](docs/PasteResponse.md)
 - [RecoveryImgResponse](docs/RecoveryImgResponse.md)
 - [ReleaseGroupsResponse](docs/ReleaseGroupsResponse.md)
 - [ReleaseInternalResponse](docs/ReleaseInternalResponse.md)
 - [ReleaseResponse](docs/ReleaseResponse.md)
 - [ReleaseStatsResponse](docs/ReleaseStatsResponse.md)
 - [ReleaseUpdateBody](docs/ReleaseUpdateBody.md)
 - [RenamePasskeyBody](docs/RenamePasskeyBody.md)
 - [ShortDeviceResponse](docs/ShortDeviceResponse.md)
 - [ShortReleaseResponse](docs/ShortReleaseResponse.md)
 - [TaskUpdateBody](docs/TaskUpdateBody.md)
 - [TokenResponse](docs/TokenResponse.md)
 - [UserInternalResponse](docs/UserInternalResponse.md)
 - [UserShortResponse](docs/UserShortResponse.md)
 - [UserUpdateBody](docs/UserUpdateBody.md)
 - [WorkerStatusBody](docs/WorkerStatusBody.md)


<a id="documentation-for-authorization"></a>
## Documentation For Authorization


Authentication schemes defined for the API:
<a id="bearer_auth"></a>
### bearer_auth

- **Type**: Bearer authentication (JWT)


## Author

admin@orangefox.tech


