Associations v0.1.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
The Associations API associates source resources to target resources using association roles.
Download OpenAPI Definition (YAML)
Base URLs:
API
The Associations API
getApi
Code samples
# You can also use wget
curl -X GET /associations/ \
-H 'Accept: application/hal+json'
GET /associations/ HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json'
};
$.ajax({
url: '/associations/',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json'
};
fetch('/associations/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json'
}
result = RestClient.get '/associations/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json'
}
r = requests.get('/associations/', params={
}, headers = headers)
print r.json()
URL obj = new URL("/associations/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/associations/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Top-level resources and operations in this API
GET /
Return links to the top-level resources and operations in this API. This API returns the following links: apiture:associations
: links to the collection of associations held at this financial institution. apiture:roles
: links to the collection of roles held at this financial institution.
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
OK
{
"id": "associations",
"name": "Associations",
"apiVersion": "0.1.0",
"_profile": "https://api.apiture.com/schemas/apiRoot/v.0.1.0/profile.json",
"_links": {
"apiture:associations": {
"href": "/associations/associations"
},
"apiture:roles": {
"href": "/associations/roles"
}
}
}
200 Response
{
"id": "apiName",
"name": "API name",
"apiVersion": "0.0.1-SNAPSHOT",
"_profile": "https://api.apiture.com/schemas/apiRoot/v1.0.0/profile.json",
"_links": {}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: root |
getApiDoc
Code samples
# You can also use wget
curl -X GET /associations/apiDoc \
-H 'Accept: application/json'
GET /associations/apiDoc HTTP/1.1
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: '/associations/apiDoc',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('/associations/apiDoc',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/associations/apiDoc',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/associations/apiDoc', params={
}, headers = headers)
print r.json()
URL obj = new URL("/associations/apiDoc");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/associations/apiDoc", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return API definition document
GET /apiDoc
Return the OpenAPI document that describes this API.
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: Inline |
Response Schema
Association
Association between Two Resources
getAssociations
Code samples
# You can also use wget
curl -X GET /associations/associations \
-H 'Accept: application/hal+json'
GET /associations/associations HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json'
};
$.ajax({
url: '/associations/associations',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json'
};
fetch('/associations/associations',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json'
}
result = RestClient.get '/associations/associations',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json'
}
r = requests.get('/associations/associations', params={
}, headers = headers)
print r.json()
URL obj = new URL("/associations/associations");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/associations/associations", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of associations.
GET /associations
Return a paginated sortable filterable searchable collection of associations. The links in the response include pagination links.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first association item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of association representations to return in this page. |
sortBy (query) |
string Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2 . |
filter (query) |
string Optional filter criteria. See filtering. |
q (query) |
string Optional search string. See searching. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "http://api.apiture.com/schemas/collection/accounts/association/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "associations",
"_links": {
"self": {
"href": "/associations/associations?start=10&limit=10"
},
"first": {
"href": "/associations/associations?start=0&limit=10"
},
"next": {
"href": "/associations/associations?start=20&limit=10"
},
"collection": {
"href": "/associations/associations"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/association/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/associations/associations/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"roleName": "primaryUser",
"_embedded": {
"role": {
"_id": "c83790c9-8bcb-4754-a989-7a45342697cb",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "primaryUser",
"description": "The account owner has full control across the account. For personal accounts, the orimary user is also known as the account owner. For organization accounts, the organization is the \"owner\"; the primary user is the person who is granted administration permissions on the account, which includes managing permissions and roles of other users associated with the account.\nThere may be only one primary user."
},
"target": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "http://api.apiture.com/schemas/user/v1.0.0/profile.json",
"type": "user",
"firstName": "Bobette",
"middleName": "",
"lastName": "Wellphunded"
},
"source": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "http://api.apiture.com/schemas/accounts/v1.0.0/profile.json",
"type": "account",
"name": "Personal Checking"
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: associations | |
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
createAssociation
Code samples
# You can also use wget
curl -X POST /associations/associations \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json'
POST /associations/associations HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json'
};
$.ajax({
url: '/associations/associations',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"sourceUri": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"roleUri": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd",
"roleName": "primaryUser",
"targetUri": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"_profile": "http://api.apiture.com/schemas/example/v1.0.0/profile.json",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json'
};
fetch('/associations/associations',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json'
}
result = RestClient.post '/associations/associations',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json'
}
r = requests.post('/associations/associations', params={
}, headers = headers)
print r.json()
URL obj = new URL("/associations/associations");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/associations/associations", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new association
POST /associations
Create a new association between two resources. The request must include a valid link (apiture:source
) to a source resource, (apiture:role
) to an association role instance and a link (apiture:target
) to a target resource.
Body parameter
{
"sourceUri": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"roleUri": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd",
"roleName": "primaryUser",
"targetUri": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"_profile": "http://api.apiture.com/schemas/example/v1.0.0/profile.json",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}
Parameters
Parameter | Description |
---|---|
body (body) |
createAssociation (required) The data necessary to create a new association. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
201 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/association/v1.0.0/profile.json",
"_links": {
"apiture:role": {
"href": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd"
},
"apiture:source": {
"href": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed"
},
"apiture:target": {
"href": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed"
}
},
"sourceUri": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"roleUri": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd",
"roleName": "primaryUser",
"targetUri": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"_embedded": {
"source": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "http://api.apiture.com/schemas/accounts/v1.0.0/profile.json",
"type": "account",
"name": "Personal Checking",
"TODO": "Refine this example when Accounts API is defined."
},
"role": {
"_id": "c83790c9-8bcb-4754-a989-7a45342697cb",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "Primary User",
"description": "The account owner has full control across the account. For personal accounts, the primary user is also known as the account owner. For organization accounts, the organization is the \"owner\"; the primary user is the person who is granted administration permissions on the account, which includes managing permissions and roles of other users associated with the account.\nThere may be only one primary user."
},
"target": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "http://api.apiture.com/schemas/user/v1.0.0/profile.json",
"type": "user",
"firstName": "Bobette",
"middleName": "",
"lastName": "Wellphunded",
"TODO": "Refine this example when Users API is defined."
}
}
}
Responses
Status | Description |
---|---|
201 | Created |
Created. A representation of the new assocuation is returned, including the | |
Schema: association | |
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
201 | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host | |
201 | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update the resource. |
getAssociation
Code samples
# You can also use wget
curl -X GET /associations/associations/{associationId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string'
GET /associations/associations/{associationId} HTTP/1.1
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string'
};
$.ajax({
url: '/associations/associations/{associationId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string'
};
fetch('/associations/associations/{associationId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string'
}
result = RestClient.get '/associations/associations/{associationId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string'
}
r = requests.get('/associations/associations/{associationId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/associations/associations/{associationId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/associations/associations/{associationId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this association
GET /associations/{associationId}
Return a HAL representation of this association resource.
Parameters
Parameter | Description |
---|---|
associationId (path) |
string (required) The unique identifier of this association. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/association/v1.0.0/profile.json",
"_links": {
"apiture:role": {
"href": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd"
},
"apiture:source": {
"href": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed"
},
"apiture:target": {
"href": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed"
}
},
"sourceUri": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"roleUri": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd",
"roleName": "primaryUser",
"targetUri": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"_embedded": {
"source": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "http://api.apiture.com/schemas/accounts/v1.0.0/profile.json",
"type": "account",
"name": "Personal Checking",
"TODO": "Refine this example when Accounts API is defined."
},
"role": {
"_id": "c83790c9-8bcb-4754-a989-7a45342697cb",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "Primary User",
"description": "The account owner has full control across the account. For personal accounts, the primary user is also known as the account owner. For organization accounts, the organization is the \"owner\"; the primary user is the person who is granted administration permissions on the account, which includes managing permissions and roles of other users associated with the account.\nThere may be only one primary user."
},
"target": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "http://api.apiture.com/schemas/user/v1.0.0/profile.json",
"type": "user",
"firstName": "Bobette",
"middleName": "",
"lastName": "Wellphunded",
"TODO": "Refine this example when Users API is defined."
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: association | |
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. | |
404 | Not Found |
Not Found. There is no such association resource at the specified {associationId} The _error field in the response will contain details about the request error. | |
Schema: error |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this association resource. |
patchAssociation
Code samples
# You can also use wget
curl -X PATCH /associations/associations/{associationId} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string'
PATCH /associations/associations/{associationId} HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string'
};
$.ajax({
url: '/associations/associations/{associationId}',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/associations/v1.0.0/profile.json"
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string'
};
fetch('/associations/associations/{associationId}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string'
}
result = RestClient.patch '/associations/associations/{associationId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string'
}
r = requests.patch('/associations/associations/{associationId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/associations/associations/{associationId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "/associations/associations/{associationId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this association
PATCH /associations/{associationId}
Perform a partial update of this association. Fields which are omitted are not updated.
Body parameter
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/associations/v1.0.0/profile.json"
}
Parameters
Parameter | Description |
---|---|
associationId (path) |
string (required) The unique identifier of this association. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. This must match the current entity tag of the resource. |
body (body) |
updateAssociation (required) |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/association/v1.0.0/profile.json",
"_links": {
"apiture:role": {
"href": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd"
},
"apiture:source": {
"href": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed"
},
"apiture:target": {
"href": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed"
}
},
"sourceUri": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"roleUri": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd",
"roleName": "primaryUser",
"targetUri": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"_embedded": {
"source": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "http://api.apiture.com/schemas/accounts/v1.0.0/profile.json",
"type": "account",
"name": "Personal Checking",
"TODO": "Refine this example when Accounts API is defined."
},
"role": {
"_id": "c83790c9-8bcb-4754-a989-7a45342697cb",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "Primary User",
"description": "The account owner has full control across the account. For personal accounts, the primary user is also known as the account owner. For organization accounts, the organization is the \"owner\"; the primary user is the person who is granted administration permissions on the account, which includes managing permissions and roles of other users associated with the account.\nThere may be only one primary user."
},
"target": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "http://api.apiture.com/schemas/user/v1.0.0/profile.json",
"type": "user",
"firstName": "Bobette",
"middleName": "",
"lastName": "Wellphunded",
"TODO": "Refine this example when Users API is defined."
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: association | |
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
404 | Not Found |
Not Found. There is no such association resource at the specified {associationId} The _error field in the response will contain details about the request error. | |
Schema: error | |
412 | Precondition Failed |
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
428 | Precondition Required |
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this association resource. |
deleteAssociation
Code samples
# You can also use wget
curl -X DELETE /associations/associations/{associationId}
DELETE /associations/associations/{associationId} HTTP/1.1
$.ajax({
url: '/associations/associations/{associationId}',
method: 'delete',
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
fetch('/associations/associations/{associationId}',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
result = RestClient.delete '/associations/associations/{associationId}',
params: {
}
p JSON.parse(result)
import requests
r = requests.delete('/associations/associations/{associationId}', params={
)
print r.json()
URL obj = new URL("/associations/associations/{associationId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/associations/associations/{associationId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this association resource
DELETE /associations/{associationId}
Delete this association resource and any resources that are owned by it. Deleting an association does not delete the source, role, or target resources.
Parameters
Parameter | Description |
---|---|
associationId (path) |
string (required) The unique identifier of this association. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. |
Role
The Role of an Association
getRoles
Code samples
# You can also use wget
curl -X GET /associations/roles \
-H 'Accept: application/hal+json'
GET /associations/roles HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json'
};
$.ajax({
url: '/associations/roles',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json'
};
fetch('/associations/roles',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json'
}
result = RestClient.get '/associations/roles',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json'
}
r = requests.get('/associations/roles', params={
}, headers = headers)
print r.json()
URL obj = new URL("/associations/roles");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/associations/roles", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of roles
GET /roles
Return a paginated sortable filterable searchable collection of roles. The links in the response include pagination links.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first role item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of role representations to return in this page. |
sortBy (query) |
string Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2 . |
filter (query) |
string Optional filter criteria. See filtering. |
q (query) |
string Optional search string. See searching. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "http://api.apiture.com/schemas/collection/role/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "roles",
"_links": {
"self": {
"href": "/associations/roles?start=10&limit=10"
},
"first": {
"href": "/associations/roles?start=0&limit=10"
},
"next": {
"href": "/associations/roles?start=20&limit=10"
},
"collection": {
"href": "/associations/roles"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "Primary User",
"description": "The primary user on the account.\nThere may be only one primary user on an account.",
"_links": {
"self": {
"href": "/associations/roles/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
},
{
"_id": "1e0c734d-f0e7-4204-942d-222a860eed03",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "beneficiary",
"label": "Beneficiary",
"description": "An account beneficiary.",
"_links": {
"self": {
"href": "/associations/roles/1e0c734d-f0e7-4204-942d-222a860eed03"
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: roles | |
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
createRole
Code samples
# You can also use wget
curl -X POST /associations/roles \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json'
POST /associations/roles HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json'
};
$.ajax({
url: '/associations/roles',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"name": "primaryUser",
"label": "Primary User",
"description": "The primary user on the account.\nThere may be only one primary user on an account.",
"_profile": "http://api.apiture.com/schemas/example/v1.0.0/profile.json",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json'
};
fetch('/associations/roles',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json'
}
result = RestClient.post '/associations/roles',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json'
}
r = requests.post('/associations/roles', params={
}, headers = headers)
print r.json()
URL obj = new URL("/associations/roles");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/associations/roles", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new role
POST /roles
Create a new role which is used to associate two resources.
Body parameter
{
"name": "primaryUser",
"label": "Primary User",
"description": "The primary user on the account.\nThere may be only one primary user on an account.",
"_profile": "http://api.apiture.com/schemas/example/v1.0.0/profile.json",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}
Parameters
Parameter | Description |
---|---|
body (body) |
createRole (required) The data necessary to create a new role. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
201 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/associations/roles/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"name": "primaryUser",
"label": "Primary User",
"createdAt": "2018-02-01T13:07:01.375Z",
"description": "The account owner has full control across the account.\n \nThere may be only one primary user. "
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: role | |
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
201 | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host | |
201 | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update the resource. |
getRole
Code samples
# You can also use wget
curl -X GET /associations/roles/{roleId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string'
GET /associations/roles/{roleId} HTTP/1.1
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string'
};
$.ajax({
url: '/associations/roles/{roleId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string'
};
fetch('/associations/roles/{roleId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string'
}
result = RestClient.get '/associations/roles/{roleId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string'
}
r = requests.get('/associations/roles/{roleId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/associations/roles/{roleId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/associations/roles/{roleId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this role
GET /roles/{roleId}
Return a HAL representation of this role resource.
Parameters
Parameter | Description |
---|---|
roleId (path) |
string (required) The unique identifier of this role. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/associations/roles/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"name": "primaryUser",
"label": "Primary User",
"createdAt": "2018-02-01T13:07:01.375Z",
"description": "The account owner has full control across the account.\n \nThere may be only one primary user. "
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: role | |
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. | |
404 | Not Found |
Not Found. There is no such role resource at the specified {roleId} The _error field in the response will contain details about the request error. | |
Schema: error |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this role resource. |
patchRole
Code samples
# You can also use wget
curl -X PATCH /associations/roles/{roleId} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string'
PATCH /associations/roles/{roleId} HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string'
};
$.ajax({
url: '/associations/roles/{roleId}',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"label": "primary user",
"name": "primaryUser",
"description": "The primary user for this account."
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string'
};
fetch('/associations/roles/{roleId}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string'
}
result = RestClient.patch '/associations/roles/{roleId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string'
}
r = requests.patch('/associations/roles/{roleId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/associations/roles/{roleId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "/associations/roles/{roleId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this role
PATCH /roles/{roleId}
Perform a partial update of this role. Fields which are omitted are not updated. Nested _embedded
and _links
are ignored if included.
Body parameter
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"label": "primary user",
"name": "primaryUser",
"description": "The primary user for this account."
}
Parameters
Parameter | Description |
---|---|
roleId (path) |
string (required) The unique identifier of this role. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. This must match the current entity tag of the resource. |
body (body) |
updateRole (required) |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/associations/roles/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"name": "primaryUser",
"label": "Primary User",
"createdAt": "2018-02-01T13:07:01.375Z",
"description": "The account owner has full control across the account.\n \nThere may be only one primary user. "
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: role | |
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
404 | Not Found |
Not Found. There is no such role resource at the specified {roleId} The _error field in the response will contain details about the request error. | |
Schema: error | |
412 | Precondition Failed |
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
428 | Precondition Required |
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this role resource. |
updateRole
Code samples
# You can also use wget
curl -X PUT /associations/roles/{roleId} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string'
PUT /associations/roles/{roleId} HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string'
};
$.ajax({
url: '/associations/roles/{roleId}',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"label": "primary user",
"name": "primaryUser",
"description": "The primary user for this account."
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string'
};
fetch('/associations/roles/{roleId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string'
}
result = RestClient.put '/associations/roles/{roleId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string'
}
r = requests.put('/associations/roles/{roleId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/associations/roles/{roleId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "/associations/roles/{roleId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this role
PUT /roles/{roleId}
Perform a complete replacement of this role.
Body parameter
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"label": "primary user",
"name": "primaryUser",
"description": "The primary user for this account."
}
Parameters
Parameter | Description |
---|---|
roleId (path) |
string (required) The unique identifier of this role. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. This must match the current entity tag of the resource. |
body (body) |
updateRole (required) |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/associations/roles/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"name": "primaryUser",
"label": "Primary User",
"createdAt": "2018-02-01T13:07:01.375Z",
"description": "The account owner has full control across the account.\n \nThere may be only one primary user. "
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: role | |
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
404 | Not Found |
Not Found. There is no such role resource at the specified {roleId} The _error field in the response will contain details about the request error. | |
Schema: error | |
412 | Precondition Failed |
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
428 | Precondition Required |
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this role resource. |
deleteRole
Code samples
# You can also use wget
curl -X DELETE /associations/roles/{roleId}
DELETE /associations/roles/{roleId} HTTP/1.1
$.ajax({
url: '/associations/roles/{roleId}',
method: 'delete',
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
fetch('/associations/roles/{roleId}',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
result = RestClient.delete '/associations/roles/{roleId}',
params: {
}
p JSON.parse(result)
import requests
r = requests.delete('/associations/roles/{roleId}', params={
)
print r.json()
URL obj = new URL("/associations/roles/{roleId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/associations/roles/{roleId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this role resource
DELETE /roles/{roleId}
Delete this role resource and any resources that are owned by it. A role cannot be deleted if it is in use in an association.
Parameters
Parameter | Description |
---|---|
roleId (path) |
string (required) The unique identifier of this role. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. |
Schemas
association
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/association/v1.0.0/profile.json",
"_links": {
"apiture:role": {
"href": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd"
},
"apiture:source": {
"href": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed"
},
"apiture:target": {
"href": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed"
}
},
"sourceUri": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"roleUri": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd",
"roleName": "primaryUser",
"targetUri": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"_embedded": {
"source": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "http://api.apiture.com/schemas/accounts/v1.0.0/profile.json",
"type": "account",
"name": "Personal Checking",
"TODO": "Refine this example when Accounts API is defined."
},
"role": {
"_id": "c83790c9-8bcb-4754-a989-7a45342697cb",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "Primary User",
"description": "The account owner has full control across the account. For personal accounts, the primary user is also known as the account owner. For organization accounts, the organization is the \"owner\"; the primary user is the person who is granted administration permissions on the account, which includes managing permissions and roles of other users associated with the account.\nThere may be only one primary user."
},
"target": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "http://api.apiture.com/schemas/user/v1.0.0/profile.json",
"type": "user",
"firstName": "Bobette",
"middleName": "",
"lastName": "Wellphunded",
"TODO": "Refine this example when Users API is defined."
}
}
}
Association
Properties
Schema Name | Description |
---|---|
Association | any Representation of an association between two resources. When used to create a new association, the request must contain links to the elements of the association: a role ( apiture:role ) a source resource (apiture:source ) and a target resource (apiture:target ). In many cases, the target resource is a person or user; a source or target may be any resource. |
allOf
Schema Name | Description |
---|---|
anonymous | updateAssociation Representation used to update or patch an association. |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
createdAt | string(date-time) The date-time when the association was created. This is in ISO 8601 format, UTC. This is derived and immutable. read-only |
_embedded | object The objects which participate in this association |
source | object The source resource for this association. |
role | role The role for this association |
target | object The target resource for this association. |
updateAssociation
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/associations/v1.0.0/profile.json"
}
Update Association
Properties
Schema Name | Description |
---|---|
Update Association | any Representation used to update or patch an association. |
allOf
Schema Name | Description |
---|---|
anonymous | associationFields Core fields of the association resource used to build other model schema. |
and
Schema Name | Description |
---|---|
anonymous | abstractResource An augmented HAL resource representation. This model contains hypermedia _links , and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error , but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links . |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
_id | string The unique identifier for this association resource. This is an immutable opaque string. |
summaryAssociation
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/associations/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/associations/associations/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Association Summary
Properties
Schema Name | Description |
---|---|
Association Summary | any Summary representation of an association resource in associations collections. |
allOf
Schema Name | Description |
---|---|
anonymous | createAssociation Representation used to create a new association. |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
_id | string The unique identifier for this association resource. This is an immutable opaque string. |
createAssociation
{
"sourceUri": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"roleUri": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd",
"roleName": "primaryUser",
"targetUri": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"_profile": "http://api.apiture.com/schemas/example/v1.0.0/profile.json",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}
Create Association
Properties
allOf
Schema Name | Description |
---|---|
anonymous | associationFields Core fields of the association resource used to build other model schema. |
and
Schema Name | Description |
---|---|
anonymous | abstractResource An augmented HAL resource representation. This model contains hypermedia _links , and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error , but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links . |
associationFields
{
"sourceUri": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"roleUri": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd",
"roleName": "primaryUser",
"targetUri": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed"
}
Association Fields
Properties
Schema Name | Description |
---|---|
sourceUri | string The URI of association source resource. |
roleUri | string The URI of association role resource. |
roleName | string The name of the role used to associate two resources. This is a derived value and is ignored on updates. |
targetUri | string The URI of association target resource. |
attributes | attributes Data attribute associated with the error, such as values or constraints. |
collection
{
"_profile": "http://api.apiture.com/schemas/example/v1.0.0/profile.json",
"_links": {
"self": {
"href": "{uri of current resource}"
}
},
"count": 0,
"start": 0,
"limit": 0,
"name": "string"
}
Collection
Properties
Schema Name | Description |
---|---|
Collection | any A collection of resources. |
allOf
Schema Name | Description |
---|---|
anonymous | abstractResource An augmented HAL resource representation. This model contains hypermedia _links , and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error , but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links . |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
count | integer The total number of items in the collection. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
associations
{
"_profile": "http://api.apiture.com/schemas/collection/accounts/association/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "associations",
"_links": {
"self": {
"href": "/associations/associations?start=10&limit=10"
},
"first": {
"href": "/associations/associations?start=0&limit=10"
},
"next": {
"href": "/associations/associations?start=20&limit=10"
},
"collection": {
"href": "/associations/associations"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/association/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/associations/associations/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"roleName": "primaryUser",
"_embedded": {
"role": {
"_id": "c83790c9-8bcb-4754-a989-7a45342697cb",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "primaryUser",
"description": "The account owner has full control across the account. For personal accounts, the orimary user is also known as the account owner. For organization accounts, the organization is the \"owner\"; the primary user is the person who is granted administration permissions on the account, which includes managing permissions and roles of other users associated with the account.\nThere may be only one primary user."
},
"target": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "http://api.apiture.com/schemas/user/v1.0.0/profile.json",
"type": "user",
"firstName": "Bobette",
"middleName": "",
"lastName": "Wellphunded"
},
"source": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "http://api.apiture.com/schemas/accounts/v1.0.0/profile.json",
"type": "account",
"name": "Personal Checking"
}
}
}
]
}
}
Association Collection
Properties
Schema Name | Description |
---|---|
Association Collection | any Collection of associations. The items in the collection are ordered in the _embedded object with name items . The top-level _links object may contain pagination links (self , next , prev , first , last , collection .) |
allOf
Schema Name | Description |
---|---|
anonymous | collection A collection of resources. |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
_embedded | object undefined |
items | [summaryAssociation] An array containing a page of association items. |
roleFields
{
"name": "primaryUser",
"label": "Primary User",
"description": "The primary user on the account.\nThere may be only one primary user on an account."
}
Role Fields
Properties
Schema Name | Description |
---|---|
name | string The name of this role, for identification purposes, such as primaryOwner , beneficiary , authorizedSigner . Some roles have well-known uses in the platform. minLength: 1 maxLength: 128 |
label | string The text label for this role, for use in human presentation. This field may be localized. minLength: 1 maxLength: 128 |
description | string A fuller description of this role. This field may be localized. minLength: 1 maxLength: 4096 |
summaryRole
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "Primary User",
"description": "The primary user on the account.\nThere may be only one primary user on an account.",
"_links": {
"self": {
"href": "/associations/roles/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Role Summary
Properties
Schema Name | Description |
---|---|
Role Summary | any Summary representation of a role resource in roles collections. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects. |
allOf
Schema Name | Description |
---|---|
anonymous | createRole Representation used to create a new role. |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
_id | string The unique identifier for this role resource. This is an immutable opaque string. |
createRole
{
"name": "primaryUser",
"label": "Primary User",
"description": "The primary user on the account.\nThere may be only one primary user on an account.",
"_profile": "http://api.apiture.com/schemas/example/v1.0.0/profile.json",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}
Create Role
Properties
allOf
Schema Name | Description |
---|---|
anonymous | roleFields Core fields of the role resource used to build other model schema. |
and
Schema Name | Description |
---|---|
anonymous | abstractResource An augmented HAL resource representation. This model contains hypermedia _links , and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error , but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links . |
updateRole
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"label": "primary user",
"name": "primaryUser",
"description": "The primary user for this account."
}
Update Role
Properties
Schema Name | Description |
---|---|
Update Role | summaryRole Representation used to update or patch a role. |
role
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/associations/roles/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"name": "primaryUser",
"label": "Primary User",
"createdAt": "2018-02-01T13:07:01.375Z",
"description": "The account owner has full control across the account.\n \nThere may be only one primary user. "
}
Role
Properties
Schema Name | Description |
---|---|
Role | any Representation of a role resource. Roles are used to associate resources. The most common roles may be related to entitlements(users) but can also be applied to organizations or non-users (such as beneficiaries, payees, etc.) |
allOf
Schema Name | Description |
---|---|
anonymous | updateRole Representation used to update or patch a role. |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
createdAt | string(date-time) The date-time when the role was created. This is in ISO 8601 format, UTC. This is derived and immutable. read-only |
roles
{
"_profile": "http://api.apiture.com/schemas/collection/role/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "roles",
"_links": {
"self": {
"href": "/associations/roles?start=10&limit=10"
},
"first": {
"href": "/associations/roles?start=0&limit=10"
},
"next": {
"href": "/associations/roles?start=20&limit=10"
},
"collection": {
"href": "/associations/roles"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "Primary User",
"description": "The primary user on the account.\nThere may be only one primary user on an account.",
"_links": {
"self": {
"href": "/associations/roles/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
},
{
"_id": "1e0c734d-f0e7-4204-942d-222a860eed03",
"_profile": "http://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "beneficiary",
"label": "Beneficiary",
"description": "An account beneficiary.",
"_links": {
"self": {
"href": "/associations/roles/1e0c734d-f0e7-4204-942d-222a860eed03"
}
}
}
]
}
}
Role Collection
Properties
Schema Name | Description |
---|---|
Role Collection | any Collection of roles. The items in the collection are ordered in the _embedded object with name items . The top-level _links object may contain pagination links (self , next , prev , first , last , collection .) |
allOf
Schema Name | Description |
---|---|
anonymous | collection A collection of resources. |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
_embedded | object undefined |
items | [summaryRole] An array containing a page of role items. |
abstractResource
{
"_profile": "http://api.apiture.com/schemas/example/v1.0.0/profile.json",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}
Abstract Resource
Properties
Schema Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. |
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
root
{
"id": "apiName",
"name": "API name",
"apiVersion": "0.0.1-SNAPSHOT",
"_profile": "https://api.apiture.com/schemas/apiRoot/v1.0.0/profile.json",
"_links": {}
}
API Root
Properties
Schema Name | Description |
---|---|
API Root | any A HAL response, with hypermedia _links for the top-level resources and operations in API. |
allOf
Schema Name | Description |
---|---|
anonymous | abstractResource An augmented HAL resource representation. This model contains hypermedia _links , and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error , but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links . |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
_id | string This API's unique ID. |
name | string This API's name. |
apiVersion | string This API's version. |
errorResponse
{
"_profile": "http://api.apiture.com/schemas/error/v1.0.0/.json",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"_profile": "https://api.apiture.com/schemas/error/v1.0.0/profile.json",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2019-01-31T13:31:40.587Z",
"_links": {
"describedby": {
"href": "http://doc.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
}
Error Response
Properties
Schema Name | Description |
---|---|
Error Response | abstractResource Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error object contains the error details. |
error
{
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"_profile": "https://api.apiture.com/schemas/error/v1.0.0/profile.json",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "http://doc.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
Error
Properties
Schema Name | Description |
---|---|
message | string (required) A localized message string describing the error condition. |
_id | string A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string. |
statusCode | integer The HTTP status code associate with this error. minimum: 100 maximum: 599 |
type | string An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to render an appropriate message or hint. This provides a finer level of granularity than the statusCode . For example, instead of just 400 Bad Request, the type may be much more specific. such as integerValueNotInAllowedRange or numericValueExceedsMaximum or stringValueNotInAllowedSet . |
occurredAt | string(date-time) An ISO 8601 UTC time stamp indicating when the error occurred. |
attributes | attributes Data attribute associated with the error, such as values or constraints. |
remediation | string An optional localized string which provides hints for how the user or client can resolve the error. |
_embedded | object Optional embedded array of errors. This field may not exist if the error does not have nested errors. |
items | [errorResponse] An array of error objects. |
attributes
{}
Attributes
Properties
No properties
links
{
"property1": {
"href": "http://example.com",
"type": "string",
"templated": true,
"title": "string",
"deprecation": "http://example.com",
"profile": "http://example.com"
},
"property2": {
"href": "http://example.com",
"type": "string",
"templated": true,
"title": "string",
"deprecation": "http://example.com",
"profile": "http://example.com"
}
}
Links
Properties
Schema Name | Description |
---|---|
additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property. |
link
{
"href": "http://example.com",
"type": "string",
"templated": true,
"title": "string",
"deprecation": "http://example.com",
"profile": "http://example.com"
}
Link
Properties
Schema Name | Description |
---|---|
href | string(uri) (required) The URI or URI template for the resource/operation this link refers to. |
type | string The media type for the resource. |
templated | boolean If true, the link's href is a URI template. |
title | string An optional human-readable localized title for the link. |
deprecation | string(uri) If present, the containing link is deprecated and the value is a URI which provides human-readable text information about the deprecation. |
profile | string(uri) The URI of a profile document, a JSON document which describes the target resource/operation. |