# Get Storage instance

Get `https://app.mk.io/api/v1/projects/:project_name/media/storage/:storage_name`

Returns the details of a single Storage instance

RBAC Capability Required: `infra.storage.get`

## Authentication

Authorization Bearer

Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Path parameters

| Parameter          | Type   | Required | Description                               |
|--------------------|--------|----------|-------------------------------------------|
| project_name       | string | Yes      | The name of the project                   |
| storage_name       | string | Yes      | The name of the storage                   |

## Response

**200** A single Storage instance

| Property          | Type   | Required | Description                               |
|-------------------|--------|----------|-------------------------------------------|
| kind              | string | No       | The kind of record.                       |
| metadata          | object | Yes      | Metadata about the storage instance.      |
| created           | string | No       | The time when the resource was created.   |
| createdBy         | string | No       | ID of the user who created the resource.  |
| createdByEmail    | string | No       | Email of the user who created the resource.|
| id                | string | Yes      | The ID of the resource.                   |
| name              | string | No       | The name of the resource.                 |
| updated           | string | No       | The time when the resource was last updated.|
| updatedBy         | string | No       | ID of the user who last updated the resource.|
| updatedByEmail    | string | No       | Email of the user who last updated the resource.|
| spec              | object | Yes      | The specification of the storage instance.|

### Specifications

#### Microsoft.Storage

| Property          | Type   | Required | Description                               |
|-------------------|--------|----------|-------------------------------------------|
| credential        | object | No       | The credential for the Azure Storage Account|
| sasToken          | string | Yes      | SAS Token for Azure Storage Account, including leading ?|
| signedExpiry      | string | Yes      | The expiry time of the token.             |
| signedStart       | string | No       | The start time of the token.              |
| description       | string | No       | Description of the storage.                |
| privateLinkServiceConnection | object | No | Optional settings for a Private Link.      |

#### AWS.S3

| Property          | Type   | Required | Description                               |
|-------------------|--------|----------|-------------------------------------------|
| bucketName        | string | Yes      | The name of the AWS S3 bucket.           |
| credential        | object | No       | The credential for the AWS S3 bucket.     |

#### Google.Storage

| Property          | Type   | Required | Description                               |
|-------------------|--------|----------|-------------------------------------------|
| bucketName        | string | Yes      | The name of the Google Storage bucket.    |
| credential        | object | No       | The credential for the Google Storage bucket.|

## Errors

### 400 Bad Request

| Property          | Type   | Required | Description                               |
|-------------------|--------|----------|-------------------------------------------|
| error             | object | Yes      | Pertinent information about the error      |
| code              | string | Yes      | The error code.                          |
| detail            | string | Yes      | The error message.                       |
| ref               | string | Yes      | A reference to the request that caused the error.
| status            | integer| Yes      | The HTTP status code.

### Other Error Codes

- **401 Unauthorized**
- **403 Forbidden**
- **404 Not Found**
- **429 Too Many Requests**
- **500 Internal Server Error**
