# IOMETE SDK
This is the IOMETE SDK for Python.
It provides convenient access to the IOMETE API from applications written in the Python language.
## Installation
Install the package with:
```bash
pip install iomete-sdk
```
## Usage - Spark Job API
### Import and initialize the client
```python
from iomete_sdk.spark import SparkJobApiClient
HOST = "<DATAPLANE_HOST>" # https://dataplane-endpoint.example.com
API_KEY = "<IOMETE_API_KEY>"
DOMAIN = "<IOMETE_DOMAIN>"
job_client = SparkJobApiClient(
host=HOST,
api_key=API_KEY,
domain=DOMAIN
)
```
### Create a new job
```python
response = job_client.create_job(payload={
"name": "job-name",
"namespace": "k8s-namespace",
"jobUser": "job-user",
"jobType": "MANUAL/SCHEDULED/STREAMING",
"template": {
"applicationType": "python",
"image": f"iomete/spark-py:3.5.3-v1",
"mainApplicationFile": "path/to/job.py",
"configMaps": [{
"key": "application.conf",
"content": "[SELECT 1]",
"mountPath": "/etc/configs"
}],
"deps": {
"pyFiles": ["path/to/dependencies.zip"]
},
"instanceConfig": {
"singleNodeDeployment": False, "driverType": "driver-x-small",
"executorType": "exec-x-small", "executorCount": 1
},
"restartPolicy": {"type": "Never"},
"maxExecutionDurationSeconds": "max-execution-duration",
"volumeId": "volume-id",
}
})
job_id = response["id"]
```
### Get jobs
```python
response = job_client.get_jobs()
```
### Get job
```python
response = job_client.get_job(job_id=job_id)
```
### Update job
```python
response = job_client.update_job(job_id=job_id, payload=updated_payload)
```
### Delete job
```python
response = job_client.delete_job(job_id=job_id)
```
### Submit job run
```python
response = job_client.submit_job_run(job_id=job_id, payload={})
```
### Cancel job run
```python
response = job_client.cancel_job_run(job_id=job_id, run_id=run_id)
```
### Get Job Runs
```python
response = job_client.get_job_runs(job_id=job_id)
```
### Get Job Run
```python
response = job_client.get_job_run(job_id=job_id, run_id=run_id)
```
### Get Job Run Logs
```python
response = job_client.get_job_run_logs(job_id=job_id, run_id=run_id, time_range="5m")
```
**Supported Time Range:** 5m, 15m, 30m, 1h, 3h, 6h, 12h, 24h, 2d, 7d, 14d, 30d
### Get Job Run Metrics
```python
response = job_client.get_job_run_metrics(job_id=job_id, run_id=run_id)
```
Raw data
{
"_id": null,
"home_page": "https://github.com/iomete/iomete-sdk",
"name": "iomete-sdk",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "iomete, sdk, spark-job, data-security-api",
"author": "IOMETE",
"author_email": "vusal@iomete.com",
"download_url": "https://files.pythonhosted.org/packages/a9/24/62b4d63dfbc2f212bc5fac91e5533043142ed3137a6338f26fe7fd7826ff/iomete_sdk-3.0.0.tar.gz",
"platform": null,
"description": "# IOMETE SDK\n\nThis is the IOMETE SDK for Python. \nIt provides convenient access to the IOMETE API from applications written in the Python language.\n\n## Installation\n\nInstall the package with:\n\n```bash\npip install iomete-sdk\n```\n\n## Usage - Spark Job API\n\n### Import and initialize the client\n```python\nfrom iomete_sdk.spark import SparkJobApiClient\n\nHOST = \"<DATAPLANE_HOST>\" # https://dataplane-endpoint.example.com\nAPI_KEY = \"<IOMETE_API_KEY>\"\nDOMAIN = \"<IOMETE_DOMAIN>\"\n\njob_client = SparkJobApiClient(\n host=HOST,\n api_key=API_KEY,\n domain=DOMAIN\n)\n```\n\n### Create a new job\n```python\nresponse = job_client.create_job(payload={\n \"name\": \"job-name\",\n \"namespace\": \"k8s-namespace\",\n \"jobUser\": \"job-user\",\n \"jobType\": \"MANUAL/SCHEDULED/STREAMING\",\n \"template\": {\n \"applicationType\": \"python\",\n \"image\": f\"iomete/spark-py:3.5.3-v1\",\n \"mainApplicationFile\": \"path/to/job.py\",\n \"configMaps\": [{\n \"key\": \"application.conf\",\n \"content\": \"[SELECT 1]\",\n \"mountPath\": \"/etc/configs\"\n }],\n \"deps\": {\n \"pyFiles\": [\"path/to/dependencies.zip\"]\n },\n \"instanceConfig\": {\n \"singleNodeDeployment\": False, \"driverType\": \"driver-x-small\",\n \"executorType\": \"exec-x-small\", \"executorCount\": 1\n },\n \"restartPolicy\": {\"type\": \"Never\"},\n \"maxExecutionDurationSeconds\": \"max-execution-duration\",\n \"volumeId\": \"volume-id\",\n }\n })\n\njob_id = response[\"id\"]\n```\n\n### Get jobs\n```python\nresponse = job_client.get_jobs()\n```\n\n### Get job\n```python\nresponse = job_client.get_job(job_id=job_id)\n```\n\n### Update job\n```python\nresponse = job_client.update_job(job_id=job_id, payload=updated_payload)\n```\n\n### Delete job\n```python\nresponse = job_client.delete_job(job_id=job_id)\n```\n\n\n### Submit job run\n```python\nresponse = job_client.submit_job_run(job_id=job_id, payload={})\n```\n\n### Cancel job run\n```python\nresponse = job_client.cancel_job_run(job_id=job_id, run_id=run_id)\n```\n\n### Get Job Runs\n```python\nresponse = job_client.get_job_runs(job_id=job_id)\n```\n\n### Get Job Run\n```python\nresponse = job_client.get_job_run(job_id=job_id, run_id=run_id)\n```\n\n### Get Job Run Logs\n```python\nresponse = job_client.get_job_run_logs(job_id=job_id, run_id=run_id, time_range=\"5m\")\n```\n**Supported Time Range:** 5m, 15m, 30m, 1h, 3h, 6h, 12h, 24h, 2d, 7d, 14d, 30d \n\n### Get Job Run Metrics\n```python\nresponse = job_client.get_job_run_metrics(job_id=job_id, run_id=run_id)\n```\n\n\n\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "IOMETE SDK for Python.",
"version": "3.0.0",
"project_urls": {
"Homepage": "https://github.com/iomete/iomete-sdk"
},
"split_keywords": [
"iomete",
" sdk",
" spark-job",
" data-security-api"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a92462b4d63dfbc2f212bc5fac91e5533043142ed3137a6338f26fe7fd7826ff",
"md5": "22b58d5af31d0e8280d68c2ed931f681",
"sha256": "5d7d0b257c6a15ad63ba1559472576187a599153a315c7de2b0e540feca23b80"
},
"downloads": -1,
"filename": "iomete_sdk-3.0.0.tar.gz",
"has_sig": false,
"md5_digest": "22b58d5af31d0e8280d68c2ed931f681",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 9096,
"upload_time": "2025-01-17T18:00:12",
"upload_time_iso_8601": "2025-01-17T18:00:12.188743Z",
"url": "https://files.pythonhosted.org/packages/a9/24/62b4d63dfbc2f212bc5fac91e5533043142ed3137a6338f26fe7fd7826ff/iomete_sdk-3.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-17 18:00:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "iomete",
"github_project": "iomete-sdk",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "iomete-sdk"
}