# Rust API client for tapis-pods
The Pods Service is a web service and distributed computing platform providing pods-as-a-service (PaaS). The service
implements a message broker and processor model that requests pods, alongside a health module to poll for pod
data, including logs, status, and health. The primary use of this service is to have quick to deploy long-lived
services based on Docker images that are exposed via HTTP or TCP endpoints listed by the API.
**The Pods service provides functionality for two types of pod solutions:**
* **Templated Pods** for run-as-is popular images. Neo4J is one example, the template manages TCP ports, user creation, and permissions.
* **Custom Pods** for arbitrary docker images with less functionality. In this case we will expose port 5000 and do nothing else.
The live-docs act as the most up-to-date API reference. Visit the [documentation for more information](https://tapis.readthedocs.io/en/latest/technical/pods.html).
For more information, please visit [https://tapis-project.org/](https://tapis-project.org/)
## Overview
This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [openapi-spec](https://openapis.org) from a remote server, you can easily generate an API client.
- API version: 26Q1.1
- Package version: 0.3.1
- Generator version: 7.18.0
- Build package: `org.openapitools.codegen.languages.RustClientCodegen`
## Installation
Put the package under your project folder in a directory named `tapis-pods` and add the following to `Cargo.toml` under `[dependencies]`:
```
tapis-pods = { path = "./tapis-pods" }
```
## Documentation for API Endpoints
All URIs are relative to *http://localhost*
*ImagesApi* | [**add_image**](docs/ImagesApi.md#add_image) | **POST** /pods/images | add_image
*ImagesApi* | [**add_images**](docs/ImagesApi.md#add_images) | **POST** /pods/images/bulk | add_images
*ImagesApi* | [**delete_image**](docs/ImagesApi.md#delete_image) | **DELETE** /pods/images/{image_id} | delete_image
*ImagesApi* | [**get_image**](docs/ImagesApi.md#get_image) | **GET** /pods/images/{image_id} | get_image
*ImagesApi* | [**get_images**](docs/ImagesApi.md#get_images) | **GET** /pods/images | get_images
*ImagesApi* | [**update_image**](docs/ImagesApi.md#update_image) | **PUT** /pods/images/{image_id} | update_image
*JupyterApi* | [**ensure_jupyter_pod**](docs/JupyterApi.md#ensure_jupyter_pod) | **GET** /pods/jupyter/ensure | Ensure user has a running Jupyter pod, useful for starting up coding environment
*JupyterApi* | [**upload_to_jupyter**](docs/JupyterApi.md#upload_to_jupyter) | **POST** /pods/jupyter/{pod_id}/upload | Upload a document to the user's Jupyter pod
*MiscApi* | [**error_handler**](docs/MiscApi.md#error_handler) | **GET** /error-handler/{status} | error_handler
*MiscApi* | [**healthcheck**](docs/MiscApi.md#healthcheck) | **GET** /healthcheck | healthcheck
*MiscApi* | [**traefik_config**](docs/MiscApi.md#traefik_config) | **GET** /traefik-config | traefik_config
*PermissionsApi* | [**delete_pod_permission**](docs/PermissionsApi.md#delete_pod_permission) | **DELETE** /pods/{pod_id}/permissions/{user} | delete_pod_permission
*PermissionsApi* | [**delete_snapshot_permission**](docs/PermissionsApi.md#delete_snapshot_permission) | **DELETE** /pods/snapshots/{snapshot_id}/permissions/{user} | delete_snapshot_permission
*PermissionsApi* | [**delete_template_permission**](docs/PermissionsApi.md#delete_template_permission) | **DELETE** /pods/templates/{template_id}/permissions/{user} | delete_template_permission
*PermissionsApi* | [**delete_volume_permission**](docs/PermissionsApi.md#delete_volume_permission) | **DELETE** /pods/volumes/{volume_id}/permissions/{user} | delete_volume_permission
*PermissionsApi* | [**get_pod_permissions**](docs/PermissionsApi.md#get_pod_permissions) | **GET** /pods/{pod_id}/permissions | get_pod_permissions
*PermissionsApi* | [**get_snapshot_permissions**](docs/PermissionsApi.md#get_snapshot_permissions) | **GET** /pods/snapshots/{snapshot_id}/permissions | get_snapshot_permissions
*PermissionsApi* | [**get_template_permissions**](docs/PermissionsApi.md#get_template_permissions) | **GET** /pods/templates/{template_id}/permissions | get_template_permissions
*PermissionsApi* | [**get_volume_permissions**](docs/PermissionsApi.md#get_volume_permissions) | **GET** /pods/volumes/{volume_id}/permissions | get_volume_permissions
*PermissionsApi* | [**set_pod_permission**](docs/PermissionsApi.md#set_pod_permission) | **POST** /pods/{pod_id}/permissions | set_pod_permission
*PermissionsApi* | [**set_snapshot_permission**](docs/PermissionsApi.md#set_snapshot_permission) | **POST** /pods/snapshots/{snapshot_id}/permissions | set_snapshot_permission
*PermissionsApi* | [**set_template_permission**](docs/PermissionsApi.md#set_template_permission) | **POST** /pods/templates/{template_id}/permissions | set_template_permission
*PermissionsApi* | [**set_volume_permission**](docs/PermissionsApi.md#set_volume_permission) | **POST** /pods/volumes/{volume_id}/permissions | set_volume_permission
*PodsApi* | [**create_pod**](docs/PodsApi.md#create_pod) | **POST** /pods | create_pod
*PodsApi* | [**delete_pod**](docs/PodsApi.md#delete_pod) | **DELETE** /pods/{pod_id} | delete_pod
*PodsApi* | [**download_from_pod**](docs/PodsApi.md#download_from_pod) | **GET** /pods/{pod_id}/download_from_pod{url_path} | Download a file from the pod's filesystem
*PodsApi* | [**exec_pod_commands**](docs/PodsApi.md#exec_pod_commands) | **POST** /pods/{pod_id}/exec | exec_pod_commands
*PodsApi* | [**get_derived_pod**](docs/PodsApi.md#get_derived_pod) | **GET** /pods/{pod_id}/derived | get_derived_pod
*PodsApi* | [**get_pod**](docs/PodsApi.md#get_pod) | **GET** /pods/{pod_id} | get_pod
*PodsApi* | [**get_pod_credentials**](docs/PodsApi.md#get_pod_credentials) | **GET** /pods/{pod_id}/credentials | get_pod_credentials
*PodsApi* | [**get_pod_logs**](docs/PodsApi.md#get_pod_logs) | **GET** /pods/{pod_id}/logs | get_pod_logs
*PodsApi* | [**list_files_in_pod**](docs/PodsApi.md#list_files_in_pod) | **GET** /pods/{pod_id}/list_files{url_path} | List files in the pod's filesystem
*PodsApi* | [**list_pods**](docs/PodsApi.md#list_pods) | **GET** /pods | list_pods
*PodsApi* | [**pod_auth**](docs/PodsApi.md#pod_auth) | **GET** /pods/{pod_id_net}/auth | pod_auth
*PodsApi* | [**pod_auth_callback**](docs/PodsApi.md#pod_auth_callback) | **GET** /pods/{pod_id_net}/auth/callback | pod_auth_callback
*PodsApi* | [**restart_pod**](docs/PodsApi.md#restart_pod) | **GET** /pods/{pod_id}/restart | restart_pod
*PodsApi* | [**save_pod_as_template_tag**](docs/PodsApi.md#save_pod_as_template_tag) | **POST** /pods/{pod_id_net}/save_pod_as_template_tag | save_pod_as_template_tag
*PodsApi* | [**start_pod**](docs/PodsApi.md#start_pod) | **GET** /pods/{pod_id}/start | start_pod
*PodsApi* | [**stop_pod**](docs/PodsApi.md#stop_pod) | **GET** /pods/{pod_id}/stop | stop_pod
*PodsApi* | [**update_pod**](docs/PodsApi.md#update_pod) | **PUT** /pods/{pod_id} | update_pod
*PodsApi* | [**upload_to_pod**](docs/PodsApi.md#upload_to_pod) | **POST** /pods/{pod_id}/upload_to_pod | Upload a file directly into the pod's filesystem
*SecretsApi* | [**create_secret**](docs/SecretsApi.md#create_secret) | **POST** /pods/secrets | create_secret
*SecretsApi* | [**delete_secret**](docs/SecretsApi.md#delete_secret) | **DELETE** /pods/secrets/{secret_id} | delete_secret
*SecretsApi* | [**get_secret**](docs/SecretsApi.md#get_secret) | **GET** /pods/secrets/{secret_id} | get_secret
*SecretsApi* | [**get_secret_value**](docs/SecretsApi.md#get_secret_value) | **GET** /pods/secrets/{secret_id}/value | get_secret_value
*SecretsApi* | [**list_secrets**](docs/SecretsApi.md#list_secrets) | **GET** /pods/secrets | list_secrets
*SecretsApi* | [**update_secret**](docs/SecretsApi.md#update_secret) | **PUT** /pods/secrets/{secret_id} | update_secret
*SnapshotsApi* | [**create_snapshot**](docs/SnapshotsApi.md#create_snapshot) | **POST** /pods/snapshots | create_snapshot
*SnapshotsApi* | [**delete_snapshot**](docs/SnapshotsApi.md#delete_snapshot) | **DELETE** /pods/snapshots/{snapshot_id} | delete_snapshot
*SnapshotsApi* | [**download_snapshot_file**](docs/SnapshotsApi.md#download_snapshot_file) | **GET** /pods/snapshots/{snapshot_id}/download/{path} | download_snapshot_file
*SnapshotsApi* | [**get_snapshot**](docs/SnapshotsApi.md#get_snapshot) | **GET** /pods/snapshots/{snapshot_id} | get_snapshot
*SnapshotsApi* | [**get_snapshot_contents**](docs/SnapshotsApi.md#get_snapshot_contents) | **GET** /pods/snapshots/{snapshot_id}/contents/{path} | get_snapshot_contents
*SnapshotsApi* | [**list_snapshot_files**](docs/SnapshotsApi.md#list_snapshot_files) | **GET** /pods/snapshots/{snapshot_id}/list | list_snapshot_files
*SnapshotsApi* | [**list_snapshots**](docs/SnapshotsApi.md#list_snapshots) | **GET** /pods/snapshots | list_snapshots
*SnapshotsApi* | [**update_snapshot**](docs/SnapshotsApi.md#update_snapshot) | **PUT** /pods/snapshots/{snapshot_id} | update_snapshot
*TemplatesApi* | [**add_template**](docs/TemplatesApi.md#add_template) | **POST** /pods/templates | add_template
*TemplatesApi* | [**add_template_tag**](docs/TemplatesApi.md#add_template_tag) | **POST** /pods/templates/{template_id}/tags | add_template_tag
*TemplatesApi* | [**delete_template**](docs/TemplatesApi.md#delete_template) | **DELETE** /pods/templates/{template_id} | delete_template
*TemplatesApi* | [**delete_template_tag**](docs/TemplatesApi.md#delete_template_tag) | **DELETE** /pods/templates/{template_id}/tags/{tag_id} | delete_template_tag
*TemplatesApi* | [**get_template**](docs/TemplatesApi.md#get_template) | **GET** /pods/templates/{template_id} | get_template
*TemplatesApi* | [**get_template_tag**](docs/TemplatesApi.md#get_template_tag) | **GET** /pods/templates/{template_id}/tags/{tag_id} | get_template_tag
*TemplatesApi* | [**list_template_tags**](docs/TemplatesApi.md#list_template_tags) | **GET** /pods/templates/{template_id}/tags | list_template_tags
*TemplatesApi* | [**list_templates**](docs/TemplatesApi.md#list_templates) | **GET** /pods/templates | list_templates
*TemplatesApi* | [**list_templates_and_tags**](docs/TemplatesApi.md#list_templates_and_tags) | **GET** /pods/templates/tags | list_templates_and_tags
*TemplatesApi* | [**update_template**](docs/TemplatesApi.md#update_template) | **PUT** /pods/templates/{template_id} | update_template
*VolumesApi* | [**create_volume**](docs/VolumesApi.md#create_volume) | **POST** /pods/volumes | create_volume
*VolumesApi* | [**delete_volume**](docs/VolumesApi.md#delete_volume) | **DELETE** /pods/volumes/{volume_id} | delete_volume
*VolumesApi* | [**download_volume_file**](docs/VolumesApi.md#download_volume_file) | **GET** /pods/volumes/{volume_id}/download/{path} | download_volume_file
*VolumesApi* | [**get_volume**](docs/VolumesApi.md#get_volume) | **GET** /pods/volumes/{volume_id} | get_volume
*VolumesApi* | [**get_volume_contents**](docs/VolumesApi.md#get_volume_contents) | **GET** /pods/volumes/{volume_id}/contents/{path} | get_volume_contents
*VolumesApi* | [**list_volume_files**](docs/VolumesApi.md#list_volume_files) | **GET** /pods/volumes/{volume_id}/list | list_volume_files
*VolumesApi* | [**list_volumes**](docs/VolumesApi.md#list_volumes) | **GET** /pods/volumes | list_volumes
*VolumesApi* | [**update_volume**](docs/VolumesApi.md#update_volume) | **PUT** /pods/volumes/{volume_id} | update_volume
*VolumesApi* | [**upload_to_volume**](docs/VolumesApi.md#upload_to_volume) | **POST** /pods/volumes/{volume_id}/upload/{path} | upload_to_volume
## Documentation For Models
- [Commands](docs/Commands.md)
- [CredentialsModel](docs/CredentialsModel.md)
- [DeleteSnapshotResponse](docs/DeleteSnapshotResponse.md)
- [DeleteVolumeResponse](docs/DeleteVolumeResponse.md)
- [ExecutePodCommands](docs/ExecutePodCommands.md)
- [FileModel](docs/FileModel.md)
- [FilesListResponse](docs/FilesListResponse.md)
- [FilesUploadResponse](docs/FilesUploadResponse.md)
- [HttpValidationError](docs/HttpValidationError.md)
- [ImageDeleteResponse](docs/ImageDeleteResponse.md)
- [ImageResponse](docs/ImageResponse.md)
- [ImageResponseModel](docs/ImageResponseModel.md)
- [ImagesResponse](docs/ImagesResponse.md)
- [LogsModel](docs/LogsModel.md)
- [ModelsPodsResources](docs/ModelsPodsResources.md)
- [ModelsTemplatesTagsResources](docs/ModelsTemplatesTagsResources.md)
- [Networking](docs/Networking.md)
- [NewImage](docs/NewImage.md)
- [NewPod](docs/NewPod.md)
- [NewSecret](docs/NewSecret.md)
- [NewSnapshot](docs/NewSnapshot.md)
- [NewTemplate](docs/NewTemplate.md)
- [NewTemplateTag](docs/NewTemplateTag.md)
- [NewTemplateTagFromPod](docs/NewTemplateTagFromPod.md)
- [NewVolume](docs/NewVolume.md)
- [PermissionsModel](docs/PermissionsModel.md)
- [PodCredentialsResponse](docs/PodCredentialsResponse.md)
- [PodDeleteResponse](docs/PodDeleteResponse.md)
- [PodLogsResponse](docs/PodLogsResponse.md)
- [PodPermissionsResponse](docs/PodPermissionsResponse.md)
- [PodResponse](docs/PodResponse.md)
- [PodResponseModel](docs/PodResponseModel.md)
- [PodsResponse](docs/PodsResponse.md)
- [ResponseGetImage](docs/ResponseGetImage.md)
- [ResponseGetTemplate](docs/ResponseGetTemplate.md)
- [ResponseGetTemplateTag](docs/ResponseGetTemplateTag.md)
- [ResponseListTemplateTags](docs/ResponseListTemplateTags.md)
- [ResponseListTemplates](docs/ResponseListTemplates.md)
- [SecretDeleteResponse](docs/SecretDeleteResponse.md)
- [SecretResponse](docs/SecretResponse.md)
- [SecretResponseModel](docs/SecretResponseModel.md)
- [SecretValueResponse](docs/SecretValueResponse.md)
- [SecretsResponse](docs/SecretsResponse.md)
- [SetPermission](docs/SetPermission.md)
- [SnapshotPermissionsResponse](docs/SnapshotPermissionsResponse.md)
- [SnapshotResponse](docs/SnapshotResponse.md)
- [SnapshotResponseModel](docs/SnapshotResponseModel.md)
- [SnapshotsResponse](docs/SnapshotsResponse.md)
- [TemplateDeleteResponse](docs/TemplateDeleteResponse.md)
- [TemplatePermissionsResponse](docs/TemplatePermissionsResponse.md)
- [TemplateResponse](docs/TemplateResponse.md)
- [TemplateResponseModel](docs/TemplateResponseModel.md)
- [TemplateTag](docs/TemplateTag.md)
- [TemplateTagDeleteResponse](docs/TemplateTagDeleteResponse.md)
- [TemplateTagDependencyInfo](docs/TemplateTagDependencyInfo.md)
- [TemplateTagDependents](docs/TemplateTagDependents.md)
- [TemplateTagPodDefinition](docs/TemplateTagPodDefinition.md)
- [TemplateTagResponse](docs/TemplateTagResponse.md)
- [TemplateTagWithDependents](docs/TemplateTagWithDependents.md)
- [TemplateTagsResponse](docs/TemplateTagsResponse.md)
- [TemplateTagsWithDependentsResponse](docs/TemplateTagsWithDependentsResponse.md)
- [TemplateWithDependentsModel](docs/TemplateWithDependentsModel.md)
- [TemplateWithDependentsResponse](docs/TemplateWithDependentsResponse.md)
- [TemplatesResponse](docs/TemplatesResponse.md)
- [TemplatesWithDependentsResponse](docs/TemplatesWithDependentsResponse.md)
- [UpdateImage](docs/UpdateImage.md)
- [UpdatePod](docs/UpdatePod.md)
- [UpdateSecret](docs/UpdateSecret.md)
- [UpdateSnapshot](docs/UpdateSnapshot.md)
- [UpdateTemplate](docs/UpdateTemplate.md)
- [UpdateVolume](docs/UpdateVolume.md)
- [ValidationError](docs/ValidationError.md)
- [ValidationErrorLocInner](docs/ValidationErrorLocInner.md)
- [VolumeMount](docs/VolumeMount.md)
- [VolumeMountsValue](docs/VolumeMountsValue.md)
- [VolumePermissionsResponse](docs/VolumePermissionsResponse.md)
- [VolumeResponse](docs/VolumeResponse.md)
- [VolumeResponseModel](docs/VolumeResponseModel.md)
- [VolumesResponse](docs/VolumesResponse.md)
To get access to the crate's generated documentation, use:
```
cargo doc --open
```
## Author
cicsupport@tacc.utexas.edu