
# Sideko REST API Rust SDK

## Overview
The Sideko API unlocks features including generating SDKs, setting up API Specifications with mock servers, creating documentation projects with generated API references and custom pages, managing roles and permissions, and more.

### Example Client Initialization

```rust
let client = sideko_rest_api::Client::default()
    .with_api_key_auth(&std::env::var("API_KEY").unwrap())
    .with_cookie_auth(&std::env::var("API_KEY").unwrap());
```

## Module Documentation and Snippets

### [api](src/resources/api/README.md)

* [create](src/resources/api/README.md#create) - Create a new API
* [delete](src/resources/api/README.md#delete) - Delete an API
* [get](src/resources/api/README.md#get) - Get one API
* [init](src/resources/api/README.md#init) - Create an API with an initial version
* [list](src/resources/api/README.md#list) - List your APIs
* [patch](src/resources/api/README.md#patch) - Update an existing API

### [api.spec](src/resources/api/spec/README.md)

* [create](src/resources/api/spec/README.md#create) - Add a new API specification
* [delete](src/resources/api/spec/README.md#delete) - Delete an API Specification and it's associated metadata
* [get](src/resources/api/spec/README.md#get) - Get API specification metadata
* [get_openapi](src/resources/api/spec/README.md#get_openapi) - Get OpenAPI specification
* [get_stats](src/resources/api/spec/README.md#get_stats) - Get Stats about the specification
* [list](src/resources/api/spec/README.md#list) - List specs of a collection
* [patch](src/resources/api/spec/README.md#patch) - Update an API Specification and/or metadata

### [api_link](src/resources/api_link/README.md)

* [create](src/resources/api_link/README.md#create) - Links API Version to Documentation project version with a specified update policy
* [delete](src/resources/api_link/README.md#delete) - Removes an API link
* [get](src/resources/api_link/README.md#get) - Retrieve single API link
* [list](src/resources/api_link/README.md#list) - List API links for doc version
* [patch](src/resources/api_link/README.md#patch) - Updates an API link
* [reorder](src/resources/api_link/README.md#reorder) - Reorder API links and groups

### [api_link.group](src/resources/api_link/group/README.md)

* [create](src/resources/api_link/group/README.md#create) - Create API group to organize API links
* [delete](src/resources/api_link/group/README.md#delete) - Deletes the api group and all its links
* [list](src/resources/api_link/group/README.md#list) - List API groups for doc version
* [patch](src/resources/api_link/group/README.md#patch) - Updates API link group

### [asset](src/resources/asset/README.md)

* [create](src/resources/asset/README.md#create) - Upload Assets
* [delete](src/resources/asset/README.md#delete) - Delete Asset
* [list](src/resources/asset/README.md#list) - List Assets
* [patch](src/resources/asset/README.md#patch) - Update Asset

### [auth](src/resources/auth/README.md)

* [exchange_code](src/resources/auth/README.md#exchange_code) - Exchange one-time auth key for api key

### [cli](src/resources/cli/README.md)

* [check_updates](src/resources/cli/README.md#check_updates) - Checks if current CLI has updates

### [doc](src/resources/doc/README.md)

* [check_preview](src/resources/doc/README.md#check_preview) - A simple check to see if the requesting user has access to the preview doc project
* [create](src/resources/doc/README.md#create) - Create a new Documentation Project
* [delete](src/resources/doc/README.md#delete) - Delete a specific Documentation Project
* [get](src/resources/doc/README.md#get) - Get a specific Documentation Project
* [list](src/resources/doc/README.md#list) - List Documentation Projects
* [patch](src/resources/doc/README.md#patch) - Update an existing Documentation Project

### [doc.deployment](src/resources/doc/deployment/README.md)

* [get](src/resources/doc/deployment/README.md#get) - Get a specific deployment for a specific documentation project
* [list](src/resources/doc/deployment/README.md#list) - List deployments for a specific documentation project
* [trigger](src/resources/doc/deployment/README.md#trigger) - Deploy a new generated version of documentation with linked guides & APIs

### [doc.theme](src/resources/doc/theme/README.md)

* [get](src/resources/doc/theme/README.md#get) - Get the theme attached to a documentation project
* [update](src/resources/doc/theme/README.md#update) - Update a document project theme

### [doc.version](src/resources/doc/version/README.md)

* [get](src/resources/doc/version/README.md#get) - Get a specific version of an Documentation Project
* [list](src/resources/doc/version/README.md#list) - List versions of a specific Documentation Project

### [doc.version.guide](src/resources/doc/version/guide/README.md)

* [create](src/resources/doc/version/guide/README.md#create) - Create a guide for a specific version of a documentation project
* [delete](src/resources/doc/version/guide/README.md#delete) - Delete a specific guide for a specific version of a documentation project
* [get](src/resources/doc/version/guide/README.md#get) - Get a specific guide for a specific version of a documentation project
* [get_content](src/resources/doc/version/guide/README.md#get_content) - Get content for a specific guide for a specific version of a documentation project
* [list](src/resources/doc/version/guide/README.md#list) - List guides for a specific version of a documentation project
* [patch](src/resources/doc/version/guide/README.md#patch) - Update a specific guide for a specific version of a documentation project
* [reorder](src/resources/doc/version/guide/README.md#reorder) - Reorder guides for a specific version of a documentation project

### [lint](src/resources/lint/README.md)

* [run](src/resources/lint/README.md#run) - Lint an OpenAPI spec

### [org](src/resources/org/README.md)

* [create](src/resources/org/README.md#create) - Create a new organization
* [get](src/resources/org/README.md#get) - Get Organization

### [org.theme](src/resources/org/theme/README.md)

* [get](src/resources/org/theme/README.md#get) - Get organization theme
* [update](src/resources/org/theme/README.md#update) - Update organization theme

### [role](src/resources/role/README.md)

* [create](src/resources/role/README.md#create) - Create a new role
* [delete](src/resources/role/README.md#delete) - Delete role and all associated permissions
* [list](src/resources/role/README.md#list) - List roles

### [sdk](src/resources/sdk/README.md)

* [generate](src/resources/sdk/README.md#generate) - Generate a new managed SDK from a Sideko configuration file
* [list](src/resources/sdk/README.md#list) - List all managed SDKs
* [update](src/resources/sdk/README.md#update) - Update an SDK to reflect the latest state of the API

### [sdk.config](src/resources/sdk/config/README.md)

* [init](src/resources/sdk/config/README.md#init) - Initialize an SDK configuration with all defaults applied
* [sync](src/resources/sdk/config/README.md#sync) - Sync an SDK configuration with the latest state of the API

### [service_account](src/resources/service_account/README.md)

* [create](src/resources/service_account/README.md#create) - Create a new service account with a set of project permissions
* [delete](src/resources/service_account/README.md#delete) - Delete a service account
* [get](src/resources/service_account/README.md#get) - Get service account by the ID
* [list](src/resources/service_account/README.md#list) - List all service accounts in organization

### [user](src/resources/user/README.md)

* [invite](src/resources/user/README.md#invite) - Invite a user to an organization with a specific role

### [user.me](src/resources/user/me/README.md)

* [get](src/resources/user/me/README.md#get) - Get current user profile
* [get_key](src/resources/user/me/README.md#get_key) - Get API key for the current user

<!-- MODULE DOCS END -->
