# 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*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*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

