diff --git a/README.md b/README.md index 386c6e8..4c12d70 100644 --- a/README.md +++ b/README.md @@ -1,224 +1,78 @@ # hotdata -Powerful data platform API for datasets, queries, and analytics. -This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: +Official Python client for the [Hotdata](https://app.hotdata.dev) HTTP API: workspaces, connections, datasets, SQL queries, results, secrets, uploads, indexes, jobs, embedding providers, and workspace context. -- API version: 1.0.0 -- Package version: 1.0.0 -- Generator version: 7.20.0 -- Build package: org.openapitools.codegen.languages.PythonClientCodegen +The package is produced with [OpenAPI Generator](https://openapi-generator.tech) from the Hotdata OpenAPI spec. Regenerate via the **Regenerate Client** workflow in this repository when the API changes. -## Requirements. +## Requirements Python 3.9+ -## Installation & Usage -### pip install +## Install -If the python package is hosted on a repository, you can install directly using: +From the repository: ```sh -pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git +pip install "git+https://github.com/hotdata-dev/sdk-python.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 hotdata -``` +From a local checkout (editable): -### Setuptools +```sh +pip install -e . +``` -Install via [Setuptools](http://pypi.python.org/pypi/setuptools). +## Tests ```sh -python setup.py install --user +pytest ``` -(or `sudo python setup.py install` to install the package for all users) -Then import the package: +## Authentication + +The API uses **Bearer** JWTs and an **`X-Workspace-Id`** header on requests that are scoped to a workspace. + ```python import hotdata -``` -### Tests - -Execute `pytest` to run the tests. +configuration = hotdata.Configuration( + access_token="YOUR_ACCESS_TOKEN", + api_key={"WorkspaceId": "YOUR_WORKSPACE_ID"}, +) +``` -## Getting Started +`host` defaults to `https://app.hotdata.dev`. Override it if you target another environment. -Please follow the [installation procedure](#installation--usage) and then run the following: +## Usage ```python - import hotdata from hotdata.rest import ApiException -from pprint import pprint -# Defining the host is optional and defaults to https://app.hotdata.dev -# See configuration.py for a list of all supported configuration parameters. configuration = hotdata.Configuration( - host = "https://app.hotdata.dev" + access_token="YOUR_ACCESS_TOKEN", + api_key={"WorkspaceId": "YOUR_WORKSPACE_ID"}, ) - - -# Enter a context with an instance of the API client with hotdata.ApiClient(configuration) as api_client: - # Create an instance of the API class - api_instance = hotdata.ConnectionsApi(api_client) - connection_id = 'connection_id_example' # str | Connection ID - + workspaces = hotdata.WorkspacesApi(api_client) try: - # Check connection health - api_response = api_instance.check_connection_health_handler(connection_id) - print("The response of ConnectionsApi->check_connection_health_handler:\n") - pprint(api_response) + response = workspaces.list_workspaces() except ApiException as e: - print("Exception when calling ConnectionsApi->check_connection_health_handler: %s\n" % e) - + print(f"API error: {e.status} {e.reason}\n{e.body}") ``` -## Documentation for API Endpoints - -All URIs are relative to *https://app.hotdata.dev* - -Class | Method | HTTP request | Description ------------- | ------------- | ------------- | ------------- -*ConnectionsApi* | [**check_connection_health_handler**](docs/ConnectionsApi.md#check_connection_health_handler) | **GET** /v1/connections/{connection_id}/health | Check connection health -*ConnectionsApi* | [**create_connection_handler**](docs/ConnectionsApi.md#create_connection_handler) | **POST** /v1/connections | Create connection -*ConnectionsApi* | [**delete_connection_handler**](docs/ConnectionsApi.md#delete_connection_handler) | **DELETE** /v1/connections/{connection_id} | Delete connection -*ConnectionsApi* | [**get_connection_handler**](docs/ConnectionsApi.md#get_connection_handler) | **GET** /v1/connections/{connection_id} | Get connection -*ConnectionsApi* | [**get_table_profile_handler**](docs/ConnectionsApi.md#get_table_profile_handler) | **GET** /v1/connections/{connection_id}/tables/{schema}/{table}/profile | Get table profile -*ConnectionsApi* | [**list_connections_handler**](docs/ConnectionsApi.md#list_connections_handler) | **GET** /v1/connections | List connections -*ConnectionsApi* | [**purge_connection_cache_handler**](docs/ConnectionsApi.md#purge_connection_cache_handler) | **DELETE** /v1/connections/{connection_id}/cache | Purge connection cache -*ConnectionsApi* | [**purge_table_cache_handler**](docs/ConnectionsApi.md#purge_table_cache_handler) | **DELETE** /v1/connections/{connection_id}/tables/{schema}/{table}/cache | Purge table cache -*DatasetsApi* | [**create_dataset**](docs/DatasetsApi.md#create_dataset) | **POST** /v1/datasets | Create dataset -*DatasetsApi* | [**delete_dataset**](docs/DatasetsApi.md#delete_dataset) | **DELETE** /v1/datasets/{id} | Delete dataset -*DatasetsApi* | [**get_dataset**](docs/DatasetsApi.md#get_dataset) | **GET** /v1/datasets/{id} | Get dataset -*DatasetsApi* | [**list_datasets**](docs/DatasetsApi.md#list_datasets) | **GET** /v1/datasets | List datasets -*DatasetsApi* | [**update_dataset**](docs/DatasetsApi.md#update_dataset) | **PUT** /v1/datasets/{id} | Update dataset -*InformationSchemaApi* | [**information_schema_handler**](docs/InformationSchemaApi.md#information_schema_handler) | **GET** /v1/information_schema | List tables -*QueryApi* | [**query_handler**](docs/QueryApi.md#query_handler) | **POST** /v1/query | Execute SQL query -*QueryRunsApi* | [**list_query_runs_handler**](docs/QueryRunsApi.md#list_query_runs_handler) | **GET** /v1/query-runs | List query runs -*RefreshApi* | [**refresh_handler**](docs/RefreshApi.md#refresh_handler) | **POST** /v1/refresh | Refresh connection data -*ResultsApi* | [**get_result_handler**](docs/ResultsApi.md#get_result_handler) | **GET** /v1/results/{id} | Get result -*ResultsApi* | [**list_results_handler**](docs/ResultsApi.md#list_results_handler) | **GET** /v1/results | List results -*SavedQueriesApi* | [**create_saved_query**](docs/SavedQueriesApi.md#create_saved_query) | **POST** /v1/queries | Create saved query -*SavedQueriesApi* | [**delete_saved_query**](docs/SavedQueriesApi.md#delete_saved_query) | **DELETE** /v1/queries/{id} | Delete saved query -*SavedQueriesApi* | [**execute_saved_query**](docs/SavedQueriesApi.md#execute_saved_query) | **POST** /v1/queries/{id}/execute | Execute saved query -*SavedQueriesApi* | [**get_saved_query**](docs/SavedQueriesApi.md#get_saved_query) | **GET** /v1/queries/{id} | Get saved query -*SavedQueriesApi* | [**list_saved_queries**](docs/SavedQueriesApi.md#list_saved_queries) | **GET** /v1/queries | List saved queries -*SavedQueriesApi* | [**list_saved_query_versions**](docs/SavedQueriesApi.md#list_saved_query_versions) | **GET** /v1/queries/{id}/versions | List saved query versions -*SavedQueriesApi* | [**update_saved_query**](docs/SavedQueriesApi.md#update_saved_query) | **PUT** /v1/queries/{id} | Update saved query -*SecretsApi* | [**create_secret_handler**](docs/SecretsApi.md#create_secret_handler) | **POST** /v1/secrets | Create secret -*SecretsApi* | [**delete_secret_handler**](docs/SecretsApi.md#delete_secret_handler) | **DELETE** /v1/secrets/{name} | Delete secret -*SecretsApi* | [**get_secret_handler**](docs/SecretsApi.md#get_secret_handler) | **GET** /v1/secrets/{name} | Get secret -*SecretsApi* | [**list_secrets_handler**](docs/SecretsApi.md#list_secrets_handler) | **GET** /v1/secrets | List secrets -*SecretsApi* | [**update_secret_handler**](docs/SecretsApi.md#update_secret_handler) | **PUT** /v1/secrets/{name} | Update secret -*UploadsApi* | [**list_uploads**](docs/UploadsApi.md#list_uploads) | **GET** /v1/files | List uploads -*UploadsApi* | [**upload_file**](docs/UploadsApi.md#upload_file) | **POST** /v1/files | Upload file -*WorkspacesApi* | [**create_workspace**](docs/WorkspacesApi.md#create_workspace) | **POST** /v1/workspaces | Create a workspace -*WorkspacesApi* | [**list_workspaces**](docs/WorkspacesApi.md#list_workspaces) | **GET** /v1/workspaces | List workspaces - - -## Documentation For Models - - - [ApiErrorDetail](docs/ApiErrorDetail.md) - - [ApiErrorResponse](docs/ApiErrorResponse.md) - - [CategoryValueInfo](docs/CategoryValueInfo.md) - - [ColumnDefinition](docs/ColumnDefinition.md) - - [ColumnInfo](docs/ColumnInfo.md) - - [ColumnProfileDetail](docs/ColumnProfileDetail.md) - - [ColumnProfileDetailOneOf](docs/ColumnProfileDetailOneOf.md) - - [ColumnProfileDetailOneOf1](docs/ColumnProfileDetailOneOf1.md) - - [ColumnProfileDetailOneOf2](docs/ColumnProfileDetailOneOf2.md) - - [ColumnProfileDetailOneOf3](docs/ColumnProfileDetailOneOf3.md) - - [ColumnProfileDetailOneOf4](docs/ColumnProfileDetailOneOf4.md) - - [ColumnProfileInfo](docs/ColumnProfileInfo.md) - - [ColumnTypeSpec](docs/ColumnTypeSpec.md) - - [ConnectionHealthResponse](docs/ConnectionHealthResponse.md) - - [ConnectionInfo](docs/ConnectionInfo.md) - - [ConnectionRefreshResult](docs/ConnectionRefreshResult.md) - - [ConnectionSchemaError](docs/ConnectionSchemaError.md) - - [CreateConnectionRequest](docs/CreateConnectionRequest.md) - - [CreateConnectionResponse](docs/CreateConnectionResponse.md) - - [CreateDatasetRequest](docs/CreateDatasetRequest.md) - - [CreateDatasetResponse](docs/CreateDatasetResponse.md) - - [CreateSavedQueryRequest](docs/CreateSavedQueryRequest.md) - - [CreateSecretRequest](docs/CreateSecretRequest.md) - - [CreateSecretResponse](docs/CreateSecretResponse.md) - - [CreateWorkspace201Response](docs/CreateWorkspace201Response.md) - - [CreateWorkspaceRequest](docs/CreateWorkspaceRequest.md) - - [DatasetSource](docs/DatasetSource.md) - - [DatasetSourceOneOf](docs/DatasetSourceOneOf.md) - - [DatasetSourceOneOf1](docs/DatasetSourceOneOf1.md) - - [DatasetSummary](docs/DatasetSummary.md) - - [DiscoveryStatus](docs/DiscoveryStatus.md) - - [Error](docs/Error.md) - - [ExecuteSavedQueryRequest](docs/ExecuteSavedQueryRequest.md) - - [GetConnectionResponse](docs/GetConnectionResponse.md) - - [GetDatasetResponse](docs/GetDatasetResponse.md) - - [GetResultResponse](docs/GetResultResponse.md) - - [GetSecretResponse](docs/GetSecretResponse.md) - - [InformationSchemaResponse](docs/InformationSchemaResponse.md) - - [InlineData](docs/InlineData.md) - - [ListConnectionsResponse](docs/ListConnectionsResponse.md) - - [ListDatasetsResponse](docs/ListDatasetsResponse.md) - - [ListQueryRunsResponse](docs/ListQueryRunsResponse.md) - - [ListResultsResponse](docs/ListResultsResponse.md) - - [ListSavedQueriesResponse](docs/ListSavedQueriesResponse.md) - - [ListSavedQueryVersionsResponse](docs/ListSavedQueryVersionsResponse.md) - - [ListSecretsResponse](docs/ListSecretsResponse.md) - - [ListUploadsResponse](docs/ListUploadsResponse.md) - - [ListWorkspaces200Response](docs/ListWorkspaces200Response.md) - - [QueryRequest](docs/QueryRequest.md) - - [QueryResponse](docs/QueryResponse.md) - - [QueryRunInfo](docs/QueryRunInfo.md) - - [RefreshRequest](docs/RefreshRequest.md) - - [RefreshResponse](docs/RefreshResponse.md) - - [RefreshWarning](docs/RefreshWarning.md) - - [ResultInfo](docs/ResultInfo.md) - - [SavedQueryDetail](docs/SavedQueryDetail.md) - - [SavedQuerySummary](docs/SavedQuerySummary.md) - - [SavedQueryVersionInfo](docs/SavedQueryVersionInfo.md) - - [SchemaRefreshResult](docs/SchemaRefreshResult.md) - - [SecretMetadataResponse](docs/SecretMetadataResponse.md) - - [TableInfo](docs/TableInfo.md) - - [TableProfileResponse](docs/TableProfileResponse.md) - - [TableRefreshError](docs/TableRefreshError.md) - - [TableRefreshResult](docs/TableRefreshResult.md) - - [UpdateDatasetRequest](docs/UpdateDatasetRequest.md) - - [UpdateDatasetResponse](docs/UpdateDatasetResponse.md) - - [UpdateSavedQueryRequest](docs/UpdateSavedQueryRequest.md) - - [UpdateSecretRequest](docs/UpdateSecretRequest.md) - - [UpdateSecretResponse](docs/UpdateSecretResponse.md) - - [UploadInfo](docs/UploadInfo.md) - - [UploadResponse](docs/UploadResponse.md) - - [WorkspaceDetail](docs/WorkspaceDetail.md) - - [WorkspaceListItem](docs/WorkspaceListItem.md) - - - -## Documentation For Authorization - - -Authentication schemes defined for the API: - -### BearerAuth - -- **Type**: Bearer authentication - - -### WorkspaceId - -- **Type**: API key -- **API key parameter name**: X-Workspace-Id -- **Location**: HTTP header - - -## Author +Each `*Api` class groups endpoints by resource. Construct the client, then call the typed methods you need. + +## API reference + +Generated Markdown for every operation and model is in [`docs/`](docs/): +- Resource APIs: `docs/*Api.md` (for example [`docs/QueryApi.md`](docs/QueryApi.md)) +- Request and response models: `docs/.md` +Use your editor or GitHub file search there instead of duplicating large tables in this file. +## Support +Questions and issues: [github.com/hotdata-dev/sdk-python](https://github.com/hotdata-dev/sdk-python). diff --git a/git_push.sh b/git_push.sh deleted file mode 100644 index f53a75d..0000000 --- a/git_push.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh -# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ -# -# Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl "minor update" "gitlab.com" - -git_user_id=$1 -git_repo_id=$2 -release_note=$3 -git_host=$4 - -if [ "$git_host" = "" ]; then - git_host="github.com" - echo "[INFO] No command line input provided. Set \$git_host to $git_host" -fi - -if [ "$git_user_id" = "" ]; then - git_user_id="GIT_USER_ID" - echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id" -fi - -if [ "$git_repo_id" = "" ]; then - git_repo_id="GIT_REPO_ID" - echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id" -fi - -if [ "$release_note" = "" ]; then - release_note="Minor update" - echo "[INFO] No command line input provided. Set \$release_note to $release_note" -fi - -# Initialize the local directory as a Git repository -git init - -# Adds the files in the local repository and stages them for commit. -git add . - -# Commits the tracked changes and prepares them to be pushed to a remote repository. -git commit -m "$release_note" - -# Sets the new remote -git_remote=$(git remote) -if [ "$git_remote" = "" ]; then # git remote not defined - - if [ "$GIT_TOKEN" = "" ]; then - echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment." - git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git - else - git remote add origin https://${git_user_id}:"${GIT_TOKEN}"@${git_host}/${git_user_id}/${git_repo_id}.git - fi - -fi - -git pull origin master - -# Pushes (Forces) the changes in the local repository up to the remote repository -echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git" -git push origin master 2>&1 | grep -v 'To https' diff --git a/pyproject.toml b/pyproject.toml index 06bd2e6..a2c7812 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,13 +1,13 @@ [project] name = "hotdata" version = "1.0.0" -description = "Hotdata API" +description = "Official Python client for the Hotdata API" authors = [ {name = "Hotdata",email = "developers@hotdata.dev"}, ] license = { text = "MIT" } readme = "README.md" -keywords = ["OpenAPI", "OpenAPI-Generator", "Hotdata API"] +keywords = ["hotdata", "api-client", "data-platform"] requires-python = ">=3.9" dependencies = [ @@ -18,7 +18,7 @@ dependencies = [ ] [project.urls] -Repository = "https://github.com/GIT_USER_ID/GIT_REPO_ID" +Repository = "https://github.com/hotdata-dev/sdk-python" [tool.poetry] requires-poetry = ">=2.0" diff --git a/setup.py b/setup.py index 06e176e..5fbaf38 100644 --- a/setup.py +++ b/setup.py @@ -32,11 +32,11 @@ setup( name=NAME, version=VERSION, - description="Hotdata API", + description="Official Python client for the Hotdata API", author="Hotdata", author_email="developers@hotdata.dev", - url="", - keywords=["OpenAPI", "OpenAPI-Generator", "Hotdata API"], + url="https://github.com/hotdata-dev/sdk-python", + keywords=["hotdata", "api-client", "data-platform"], install_requires=REQUIRES, packages=find_packages(exclude=["test", "tests"]), include_package_data=True,