# FilesManager
Reach these methods through the `files` field on `client::Client`.
## get
`GET /files/{file_id}`
| `file_id` | path | `String` | yes |
| `fields` | query | `Vec<String>` | no |
| `if-none-match` | header | `String` | no |
| `boxapi` | header | `String` | no |
| `x-rep-hints` | header | `String` | no |
**Returns:** `FileFull`
**Example**
```rust
let result = client.files.get("FILE_ID".to_string(), None).await?;
```
## update
`PUT /files/{file_id}`
| `file_id` | path | `String` | yes |
| `fields` | query | `Vec<String>` | no |
| `if-match` | header | `String` | no |
**Request body** (`application/json`): `FileUpdateRequest`
**Returns:** `FileFull`
**Example**
```rust
let result = client.files.update("FILE_ID".to_string(), schemas::FileUpdateRequest { /* … */ }, None).await?;
```
## delete
`DELETE /files/{file_id}`
| `file_id` | path | `String` | yes |
| `if-match` | header | `String` | no |
**Returns:** no content
**Example**
```rust
client.files.delete("FILE_ID".to_string(), None).await?;
```
## copy
`POST /files/{file_id}/copy`
| `file_id` | path | `String` | yes |
| `fields` | query | `Vec<String>` | no |
**Request body** (`application/json`): `FileCopyRequest`
**Returns:** `FileFull`
**Example**
```rust
let result = client.files.copy("FILE_ID".to_string(), schemas::FileCopyRequest { /* … */ }, None).await?;
```
## get_thumbnail
`GET /files/{file_id}/thumbnail.{extension}`
| `file_id` | path | `String` | yes |
| `extension` | path | `GetIdThumbnailIdExtension` | yes |
| `min_height` | query | `i64` | no |
| `min_width` | query | `i64` | no |
| `max_height` | query | `i64` | no |
| `max_width` | query | `i64` | no |
**Returns:** a binary stream (`runtime::Stream`)
**Example**
```rust
let result = client.files.get_thumbnail("FILE_ID".to_string(), Default::default(), None).await?;
```