Bucket - Documentation

# Bucket

### Namespaces

alert
alert
application
billing
server
webcheck

### Members

#### (route) create

##### Route:

Method | Path
--- | ---
POST | /api/bucket/create_classic

Create a bucket

##### Authentication

A authentication is needed to access this endpoint

##### Body Parameters:

Name | Type | Attributes | Description
--- | --- | --- | ---
name | String |  | the name of the bucket
comment | String | optional | any comments that will be written under the bucket name
app_url | String | optional |

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Response:

Name | Type | Description
--- | --- | ---
bucket | Object | the created bucket

##### Response Code:

Type | Description
--- | ---
400 | missing parameters
403 | you cant create any more bucket
500 | database error
200 | succesfully created a bucket

#### (route) currentRole

##### Route:

Method | Path
--- | ---
GET | /api/bucket/:id/current_role

Retrieve the role of the user

##### Authentication

A authentication is needed to access this endpoint

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
role | String | the user role

##### Response Code:

Type | Description
--- | ---
200 | succesfully retrieved the use role

#### (route) getSubscription

Deprecated:
  - Yes

##### Route:

Method | Path
--- | ---
GET | /api/bucket/:id/subscription

Retrieve the subscription for the bucket

##### Authentication

A authentication is needed to access this endpoint

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
. | Object | subscription object

##### Response Code:

Type | Description
--- | ---
404 | the bucket doesnt have any subscription
500 | database error
200 | succesfully retrieved the subscription

#### (route) inviteUser

##### Route:

Method | Path
--- | ---
POST | /api/bucket/:id/add_user

Invite a specific user into the bucket

##### Authentication

A authentication is needed to access this endpoint

##### Body Parameters:

Name | Type | Description
--- | --- | ---
email | String | the email of the user

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
invitations | Array | the list of invitations actually active

##### Response Code:

Type | Description
--- | ---
400 | missing/invalid parameters
403 | you cant invit more users because you hit the bucket limit
200 | succesfully invited the user (either directly or by email)

#### (route) retrieve

##### Route:

Method | Path
--- | ---
GET | /api/bucket/:id

Retrieve bucket metadata

##### Authentication

A authentication is needed to access this endpoint

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
. | Object | bucket object

##### Response Code:

Type | Description
--- | ---
200 | succesfully retrieved the bucket

#### (route) retrieveAll

##### Route:

Method | Path
--- | ---
GET | /api/bucket/

Retrieve the bucket of which the user is the member

##### Authentication

A authentication is needed to access this endpoint

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Response:

Name | Type | Description
--- | --- | ---
. | Array | array of buckets

##### Response Code:

Type | Description
--- | ---
500 | database error
200 | succesfully fetched bucket

#### (route) retrieveServers

##### Route:

Method | Path
--- | ---
GET | /api/bucket/:id/meta_servers

Retrieve metadata about the servers connected to this bucket

##### Authentication

A authentication is needed to access this endpoint

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
. | Array | servers metadata

##### Response Code:

Type | Description
--- | ---
500 | database error
200 | succesfully retrieved the server's metadata

#### (route) retrieveUsers

##### Route:

Method | Path
--- | ---
GET | /api/bucket/:id/users_authorized

Retrieve bucket's members

##### Authentication

A authentication is needed to access this endpoint

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
. | Array | a array of user containing their email, username and roles

##### Response Code:

Type | Description
--- | ---
500 | database error
200 | succesfully retrieved bucket's members

#### (route) upgrade

Deprecated:
  - Yes

##### Route:

Method | Path
--- | ---
POST | /api/bucket/:id/upgrade

Upgrade bucket to a plan

##### Authentication

A authentication is needed to access this endpoint

##### Body Parameters:

Name | Type | Attributes | Description
--- | --- | --- | ---
plan | String |  | name of the plan to upgrade to
stripe_token | String | optional | a card token created by stripe
coupon_id | String | optional | the id of the stripe coupon

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
bucket | Object | the bucket object
subscription | Object | the subscription object attached to the subscription

##### Response Code:

Type | Description
--- | ---
400 | missing/invalid parameters
403 | need a credit card OR not allowed to subscribe to the plan
500 | stripe/database error
200 | succesfully upgraded

### Methods

#### (route) claimTrial(:id)

Deprecated:
  - Yes

##### Route:

Method | Path
--- | ---
PUT | /api/bucket/:id/start_trial

Launch a trial for the bucket

##### Authentication

A authentication is needed to access this endpoint

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
duration | String | the duration of the trial
plan | String | the plan of the trial

##### Response Code:

Type | Description
--- | ---
400 | can't claim trial
200 | trial launched

##### Parameters:

Name | Type | Description
--- | --- | ---
`:id` |  | bucket id

#### (route) destroy(:id)

##### Route:

Method | Path
--- | ---
DELETE | /api/bucket/:id

Delete a bucket

##### Authentication

A authentication is needed to access this endpoint

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
. | Object | the deleted bucket

##### Response Code:

Type | Description
--- | ---
500 | database error
200 | succesfully deleted the bucket

##### Parameters:

Name | Type | Description
--- | --- | ---
`:id` |  | bucket id

#### (route) removeInvitation(:id)

##### Route:

Method | Path
--- | ---
DELETE | /api/bucket/:id/invitation

Remove a invitation for a user

##### Authentication

A authentication is needed to access this endpoint

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Query Parameters:

Name | Type | Attributes | Description
--- | --- | --- | ---
email | String | optional | the email of the invitation you want to delete

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
invitations | Array | the list of invitations actually active

##### Response Code:

Type | Description
--- | ---
400 | invalid/missing parameters
500 | database error
200 | succesfully deleted the invitation

##### Parameters:

Name | Type | Description
--- | --- | ---
`:id` |  | bucket id

#### (route) removeUser(:id)

##### Route:

Method | Path
--- | ---
POST | /api/bucket/:id/remove_user

Remove a user from a bucket

##### Authentication

A authentication is needed to access this endpoint

##### Body Parameters:

Name | Type | Description
--- | --- | ---
email | String | the email of the user you want to remove

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
. | Array | a array of user containing their email, username and roles

##### Response Code:

Type | Description
--- | ---
400 | missing/invalid parameters
404 | user not found
403 | impossible to remove the owner from the bucket
500 | database error

##### Parameters:

Name | Type | Description
--- | --- | ---
`:id` |  | bucket id

#### (route) retrieveCharges(:id)

Deprecated:
  - Yes

##### Route:

Method | Path
--- | ---
GET | /api/bucket/:id/payment/charges

Retrieve the invoices for a given bucket

##### Authentication

A authentication is needed to access this endpoint

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
. | Array | array of invoices

##### Response Code:

Type | Description
--- | ---
400 | Missing/invalid parameters
200 | succesfully transfered the bucket, old owner is now admin

##### Parameters:

Name | Type | Description
--- | --- | ---
`:id` |  | bucket id

#### (route) sendFeedback(:id)

##### Route:

Method | Path
--- | ---
PUT | /api/bucket/:id/feedback

Send feedback about keymetrics

##### Authentication

A authentication is needed to access this endpoint

##### Body Parameters:

Name | Type | Description
--- | --- | ---
feedback | String | the feedback text

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
feedback | String | the feedback that hasn't been registered

##### Response Code:

Type | Description
--- | ---
500 | database error
400 | missing feedback field
200 | succesfully registered the feedback

##### Parameters:

Name | Type | Description
--- | --- | ---
`:id` |  | bucket id

#### (route) setNotificationState(:id)

##### Route:

Method | Path
--- | ---
POST | /api/bucket/:id/manage_notif

Set the notification state for a specific user

##### Authentication

A authentication is needed to access this endpoint

##### Body Parameters:

Name | Type | Description
--- | --- | ---
email | String | the user email
state | String | the notification state you want to set for that user (either 'email' or 'nonde)

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
. | Array | array of state for each user

##### Response Code:

Type | Description
--- | ---
500 | database error
404 | user not found

##### Parameters:

Name | Type | Description
--- | --- | ---
`:id` |  | bucket id

#### (route) setUserRole(:id)

##### Route:

Method | Path
--- | ---
POST | /api/bucket/:id/promote_user

Set the role of a specific user

##### Authentication

A authentication is needed to access this endpoint

##### Body Parameters:

Name | Type | Description
--- | --- | ---
email | String | the email of the user you want to change the role
role | String | the role you want to set

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
. | Array | a array of user containing their email, username and roles

##### Response Code:

Type | Description
--- | ---
400 | invalid/missing parameters
404 | user not found
403 | impossible to set the role of the owner

##### Parameters:

Name | Type | Description
--- | --- | ---
`:id` |  | bucket id

#### (route) transferOwnership(:id)

##### Route:

Method | Path
--- | ---
POST | /api/bucket/:id/transfer_ownership

Transfer the ownership of a bucket

##### Authentication

A authentication is needed to access this endpoint

##### Body Parameters:

Name | Type | Description
--- | --- | ---
new_owner | String | the wanted owner's email

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
. | Object | bucket object

##### Response Code:

Type | Description
--- | ---
400 | Missing/invalid parameters
404 | user not found
403 | the new owner need to have a active credit card
200 | succesfully transfered the bucket, old owner is now admin

##### Parameters:

Name | Type | Description
--- | --- | ---
`:id` |  | bucket id

#### (async, route) update(:id)

##### Route:

Method | Path
--- | ---
PUT | /api/bucket/:id

Update informations for the bucket

##### Authentication

A authentication is needed to access this endpoint

##### Body Parameters:

Name | Type | Attributes | Description
--- | --- | --- | ---
name | String | optional |
comment | String | optional |
app_url | String | optional |
configuration | String | optional |

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
. | Object | bucket object

##### Response Code:

Type | Description
--- | ---
500 | database error
400 | missing parameters

##### Parameters:

Name | Type | Description
--- | --- | ---
`:id` |  | bucket id

#### (route) updateUserOptions(:id)

##### Route:

Method | Path
--- | ---
PUT | /api/bucket/:id/user_options

Update user options

##### Authentication

A authentication is needed to access this endpoint

##### Body Parameters:

Name | Type | Description
--- | --- | ---
options | Object | user options

##### Header Parameters:

Name | Type | Description
--- | --- | ---
Authorization | String | bearer access token issued for the user

##### Route Parameters:

Name | Type | Description
--- | --- | ---
:id | String | bucket id

##### Response:

Name | Type | Description
--- | --- | ---
bucket | Object |

##### Response Code:

Type | Description
--- | ---
200 | succesfully update user options
400 | missing parameters

##### Parameters:

Name | Type | Description
--- | --- | ---
`:id` |  | bucket id