# Rust API client for tapis-systems

The Tapis Systems API provides for management of Tapis Systems including permissions, credentials and Scheduler Profiles.

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.4.2
- 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-systems` and add the following to `Cargo.toml` under `[dependencies]`:

```
tapis-systems = { path = "./tapis-systems" }
```

## Documentation for API Endpoints

All URIs are relative to *http://localhost:8080*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*ChildSystemsApi* | [**create_child_system**](docs/ChildSystemsApi.md#create_child_system) | **POST** /v3/systems/{parentId}/createChildSystem | 
*ChildSystemsApi* | [**unlink_children**](docs/ChildSystemsApi.md#unlink_children) | **POST** /v3/systems/{parentSystemId}/unlinkChildren | 
*ChildSystemsApi* | [**unlink_from_parent**](docs/ChildSystemsApi.md#unlink_from_parent) | **POST** /v3/systems/{childSystemId}/unlinkFromParent | 
*CredentialsApi* | [**check_user_credential**](docs/CredentialsApi.md#check_user_credential) | **POST** /v3/systems/credential/{systemId}/user/{userName}/check | 
*CredentialsApi* | [**create_user_credential**](docs/CredentialsApi.md#create_user_credential) | **POST** /v3/systems/credential/{systemId}/user/{userName} | 
*CredentialsApi* | [**generate_globus_tokens**](docs/CredentialsApi.md#generate_globus_tokens) | **POST** /v3/systems/credential/{systemId}/user/{userName}/globus/tokens/{authCode}/{sessionId} | Use a Globus authorization code + Tapis session Id to generate tokens
*CredentialsApi* | [**get_globus_auth_url**](docs/CredentialsApi.md#get_globus_auth_url) | **GET** /v3/systems/credential/{systemId}/globus/authUrl | Retrieve a Globus URL that can be used to generate an authorization code for an OAuth2 flow.
*CredentialsApi* | [**get_user_credential**](docs/CredentialsApi.md#get_user_credential) | **GET** /v3/systems/credential/{systemId}/user/{userName} | 
*CredentialsApi* | [**remove_user_credential**](docs/CredentialsApi.md#remove_user_credential) | **DELETE** /v3/systems/credential/{systemId}/user/{userName} | 
*GeneralApi* | [**health_check**](docs/GeneralApi.md#health_check) | **GET** /v3/systems/healthcheck | 
*GeneralApi* | [**ready_check**](docs/GeneralApi.md#ready_check) | **GET** /v3/systems/readycheck | 
*PermissionsApi* | [**get_user_perms**](docs/PermissionsApi.md#get_user_perms) | **GET** /v3/systems/perms/{systemId}/user/{userName} | 
*PermissionsApi* | [**grant_user_perms**](docs/PermissionsApi.md#grant_user_perms) | **POST** /v3/systems/perms/{systemId}/user/{userName} | 
*PermissionsApi* | [**revoke_user_perm**](docs/PermissionsApi.md#revoke_user_perm) | **DELETE** /v3/systems/perms/{systemId}/user/{userName}/{permission} | 
*PermissionsApi* | [**revoke_user_perms**](docs/PermissionsApi.md#revoke_user_perms) | **POST** /v3/systems/perms/{systemId}/user/{userName}/revoke | 
*SchedulerProfilesApi* | [**create_scheduler_profile**](docs/SchedulerProfilesApi.md#create_scheduler_profile) | **POST** /v3/systems/schedulerProfile | 
*SchedulerProfilesApi* | [**delete_scheduler_profile**](docs/SchedulerProfilesApi.md#delete_scheduler_profile) | **DELETE** /v3/systems/schedulerProfile/{name} | 
*SchedulerProfilesApi* | [**get_scheduler_profile**](docs/SchedulerProfilesApi.md#get_scheduler_profile) | **GET** /v3/systems/schedulerProfile/{name} | 
*SchedulerProfilesApi* | [**get_scheduler_profiles**](docs/SchedulerProfilesApi.md#get_scheduler_profiles) | **GET** /v3/systems/schedulerProfile | 
*SharingApi* | [**get_share_info**](docs/SharingApi.md#get_share_info) | **GET** /v3/systems/share/{systemId} | Retrieve all sharing information for a system
*SharingApi* | [**share_system**](docs/SharingApi.md#share_system) | **POST** /v3/systems/share/{systemId} | Share a system with one or more users.
*SharingApi* | [**share_system_public**](docs/SharingApi.md#share_system_public) | **POST** /v3/systems/share_public/{systemId} | Share a system publicly with all users in the tenant.
*SharingApi* | [**un_share_system**](docs/SharingApi.md#un_share_system) | **POST** /v3/systems/unshare/{systemId} | Unshare a system with one or more users.
*SharingApi* | [**un_share_system_public**](docs/SharingApi.md#un_share_system_public) | **POST** /v3/systems/unshare_public/{systemId} | Remove public access for a system.
*SystemsApi* | [**change_system_owner**](docs/SystemsApi.md#change_system_owner) | **POST** /v3/systems/{systemId}/changeOwner/{userName} | 
*SystemsApi* | [**create_system**](docs/SystemsApi.md#create_system) | **POST** /v3/systems | 
*SystemsApi* | [**delete_system**](docs/SystemsApi.md#delete_system) | **POST** /v3/systems/{systemId}/delete | 
*SystemsApi* | [**disable_system**](docs/SystemsApi.md#disable_system) | **POST** /v3/systems/{systemId}/disable | 
*SystemsApi* | [**enable_system**](docs/SystemsApi.md#enable_system) | **POST** /v3/systems/{systemId}/enable | 
*SystemsApi* | [**get_history**](docs/SystemsApi.md#get_history) | **GET** /v3/systems/{systemId}/history | 
*SystemsApi* | [**get_system**](docs/SystemsApi.md#get_system) | **GET** /v3/systems/{systemId} | 
*SystemsApi* | [**get_systems**](docs/SystemsApi.md#get_systems) | **GET** /v3/systems | 
*SystemsApi* | [**host_eval**](docs/SystemsApi.md#host_eval) | **GET** /v3/systems/{systemId}/hostEval/{envVarName} | 
*SystemsApi* | [**is_enabled**](docs/SystemsApi.md#is_enabled) | **GET** /v3/systems/{systemId}/isEnabled | 
*SystemsApi* | [**match_constraints**](docs/SystemsApi.md#match_constraints) | **POST** /v3/systems/match/constraints | 
*SystemsApi* | [**patch_system**](docs/SystemsApi.md#patch_system) | **PATCH** /v3/systems/{systemId} | 
*SystemsApi* | [**put_system**](docs/SystemsApi.md#put_system) | **PUT** /v3/systems/{systemId} | 
*SystemsApi* | [**search_systems_query_parameters**](docs/SystemsApi.md#search_systems_query_parameters) | **GET** /v3/systems/search | 
*SystemsApi* | [**search_systems_request_body**](docs/SystemsApi.md#search_systems_request_body) | **POST** /v3/systems/search | 
*SystemsApi* | [**undelete_system**](docs/SystemsApi.md#undelete_system) | **POST** /v3/systems/{systemId}/undelete | 


## Documentation For Models

 - [AuthnEnum](docs/AuthnEnum.md)
 - [Capability](docs/Capability.md)
 - [CategoryEnum](docs/CategoryEnum.md)
 - [Credential](docs/Credential.md)
 - [DatatypeEnum](docs/DatatypeEnum.md)
 - [JobRuntime](docs/JobRuntime.md)
 - [KeyValueInputModeEnum](docs/KeyValueInputModeEnum.md)
 - [KeyValuePair](docs/KeyValuePair.md)
 - [ListTypeEnum](docs/ListTypeEnum.md)
 - [LogicalQueue](docs/LogicalQueue.md)
 - [ModuleLoadSpec](docs/ModuleLoadSpec.md)
 - [OperationTypeEnum](docs/OperationTypeEnum.md)
 - [ReqMatchConstraints](docs/ReqMatchConstraints.md)
 - [ReqPatchSystem](docs/ReqPatchSystem.md)
 - [ReqPerms](docs/ReqPerms.md)
 - [ReqPostChildSystem](docs/ReqPostChildSystem.md)
 - [ReqPostPutCredential](docs/ReqPostPutCredential.md)
 - [ReqPostSchedulerProfile](docs/ReqPostSchedulerProfile.md)
 - [ReqPostSystem](docs/ReqPostSystem.md)
 - [ReqPutSystem](docs/ReqPutSystem.md)
 - [ReqSearchSystems](docs/ReqSearchSystems.md)
 - [ReqShareUpdate](docs/ReqShareUpdate.md)
 - [ReqUnlinkChildren](docs/ReqUnlinkChildren.md)
 - [ReqUpdateCredential](docs/ReqUpdateCredential.md)
 - [RespBasic](docs/RespBasic.md)
 - [RespBoolean](docs/RespBoolean.md)
 - [RespChangeCount](docs/RespChangeCount.md)
 - [RespCredential](docs/RespCredential.md)
 - [RespGlobusAuthUrl](docs/RespGlobusAuthUrl.md)
 - [RespName](docs/RespName.md)
 - [RespNameArray](docs/RespNameArray.md)
 - [RespResourceUrl](docs/RespResourceUrl.md)
 - [RespSchedulerProfile](docs/RespSchedulerProfile.md)
 - [RespSchedulerProfiles](docs/RespSchedulerProfiles.md)
 - [RespShareInfo](docs/RespShareInfo.md)
 - [RespSystem](docs/RespSystem.md)
 - [RespSystemHistory](docs/RespSystemHistory.md)
 - [RespSystems](docs/RespSystems.md)
 - [RespSystemsMetadata](docs/RespSystemsMetadata.md)
 - [ResultBoolean](docs/ResultBoolean.md)
 - [ResultChangeCount](docs/ResultChangeCount.md)
 - [ResultGlobusAuthUrl](docs/ResultGlobusAuthUrl.md)
 - [ResultName](docs/ResultName.md)
 - [ResultNameArray](docs/ResultNameArray.md)
 - [ResultResourceUrl](docs/ResultResourceUrl.md)
 - [RuntimeTypeEnum](docs/RuntimeTypeEnum.md)
 - [SchedulerHiddenOptionEnum](docs/SchedulerHiddenOptionEnum.md)
 - [SchedulerProfile](docs/SchedulerProfile.md)
 - [SchedulerTypeEnum](docs/SchedulerTypeEnum.md)
 - [ShareInfo](docs/ShareInfo.md)
 - [SkShareRecord](docs/SkShareRecord.md)
 - [SysArgInputModeEnum](docs/SysArgInputModeEnum.md)
 - [SysArgSpec](docs/SysArgSpec.md)
 - [SystemHistory](docs/SystemHistory.md)
 - [SystemTypeEnum](docs/SystemTypeEnum.md)
 - [TapisSystem](docs/TapisSystem.md)


To get access to the crate's generated documentation, use:

```
cargo doc --open
```

## Author

cicsupport@tacc.utexas.edu

