Sources
A source represents a source of data from a service. For example, an iCloud account is a source of the iCloud service.
Sources can have child sources, such as a rirelay.instance
source having multiple rirelay.source
sources which can be targeted individually.
Attributes
name | type | description |
---|---|---|
id |
source ID | Resource identifier. |
resource |
string, always source |
Resource type specifier. |
user |
user ID | The user associated with this source. |
type |
string | The type of this source, for example icloud.account . |
identifier |
string | A unique identifier for the source within the scope of its service. |
parent |
optional, source ID | Populated if the source is a child of another. |
children |
list object containing source resources | Contains any sub-sources of the source. |
state |
string | One of: unvalidated , active , deactivated , blocked , locked . |
date_created |
datetime | When the resource was created. |
Types
Currently supported types include:
icloud.account
, the primary source on the iCloud service.rirelay.instance
, the primary source on the rirelay service. Corresponds to an instance of the Reincubate Relay application.rirelay.source
, a child source ofrirelay.instance
. Corresponds to a device that the parent Reincubate Relay app has access to.
Identifier
The value of a source's identifier
attribute identifies it uniquely within its service. For an iCloud account this would be the username. For a Reincubate Relay app instance it would be the instance ID.
Parent
If the source is a child source this field will point to its parent source object. The top source in this hierarchy is referred to as the primary source.
A child source cannot be created directly via the API, but are automatically created by the API when the appropriate poll is created.
States
unvalidated
- a session has never been successfully created against this source, therefore the API cannot tell if it is a valid source.
active
- the source has been validated and is ready for use.
deactivated
- access to the source has been forbidden by the owning organisation.
blocked
- access to the source has been forbidden by an API admin.
locked
- access to the source has been temporarily restricted by the external service.
Retrieve GET /sources/{source ID}
Using cURL
curl https://ricloud-api.reincubate.com/sources/<source ID> \ -H 'Authorization: Token <your key_token>'
Using ricloud-py
import ricloud source = ricloud.Source.create(<source ID>)
Sample response
{ "id": 1, "resource": "source", "user": 1, "type": "mocks.mock", "identifier": "john.appleseed@reincubate.com", "info": null, "parent": null, "children": { "data": [], "has_more": false, "total_count": 0, "url": "/sources/1/children" }, "state": "active", "date_created": "2020-02-20T11:59:03.195527Z" }
List GET /sources
name | type | description |
---|---|---|
organisation |
super, organisation ID | For API admins to filter by organisation. |
user |
user ID | Filter by associated user. |
type |
string | Filter by source type. |
identifier |
string | Filter by source identifier. |
state |
string | Filter by source state. |
date_created |
datetime filter | Filter by resource creation date. |
Using cURL
curl https://ricloud-api.reincubate.com/sources \ -H 'Authorization: Token <your key_token>'
Using ricloud-py
import ricloud sources = ricloud.Source.list()
Update POST /sources/{source ID}
name | type | description |
---|---|---|
state |
string | Update the source state. |
Using cURL
curl https://ricloud-api.reincubate.com/sources/<source ID> \ -X POST \ -H 'Authorization: Token <your key_token>' \ -H 'Content-Type: application/json' \ -d '{ "state": "deactivated" }'
Using ricloud-py
import ricloud source = ricloud.Source.update_with_id(<source ID>, state='deactivated') # OR source = ricloud.Source.retrieve(<source ID>) source.update(state='deactivated')
Changelog
2020-02-20
- Major The
children
attribute of the source object is now a nested list object, rather than a simple list attribute.
2019-10-16
- Adds two new source types:
rirelay.instance
andrirelay.source
.