NAV Navigation
Shell HTTP JavaScript Node.JS Ruby Python Java Go

Associations v0.4.1

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:

Terms of service

Email: Apiture Web: Apiture

Authentication

Scope Scope Description
data/read Read access to non-account, non-profile data.
data/write Write (update) access to non-account, non-profile data.
data/delete Delete access to non-account, non-profile data.
data/full Full access to non-account, non-profile data.

API

The Associations API

getApi

Code samples

# You can also use wget
curl -X GET /associations/ \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY'

GET /associations/ HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY'

};

$.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',
  'API-Key':'API_KEY'

};

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',
  'API-Key' => 'API_KEY'
}

result = RestClient.get '/associations/',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY'
}

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"},
        "API-Key": []string{"API_KEY"},
        
    }

    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.

Example responses

OK

{
  "id": "associations",
  "name": "Associations",
  "apiVersion": "0.1.0",
  "_profile": "https://api.apiture.com/schemas/common/root/v1.0.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/common/root/v1.0.0/profile.json",
  "_links": {}
}

Responses

StatusDescription
200 OK
OK
Schema: root

getApiDoc

Code samples

# You can also use wget
curl -X GET /associations/apiDoc \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

GET /associations/apiDoc HTTP/1.1

Accept: application/json

var headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY'

};

$.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',
  'API-Key':'API_KEY'

};

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',
  'API-Key' => 'API_KEY'
}

result = RestClient.get '/associations/apiDoc',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'API-Key': 'API_KEY'
}

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"},
        "API-Key": []string{"API_KEY"},
        
    }

    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.

Example responses

200 Response

{}

Responses

StatusDescription
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' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /associations/associations HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.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',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

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',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/associations/associations',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

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"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    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.
name
(query)
string
Subset the accounts or external accounts collection to those with this name value. Use
type
(query)
string
Subset the accounts or external accounts collection to those with this exact type value. Use
label
(query)
string
Subset the accounts or external accounts collection to those with this label value. Use

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/associations/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": "https://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": "https://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": "https://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": "https://api.apiture.com/schemas/accounts/v1.0.0/profile.json",
            "type": "account",
            "name": "Personal Checking"
          }
        }
      }
    ]
  }
}

Responses

StatusDescription
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' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

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',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/associations/associations',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "sourceUri": "string",
  "roleUri": "string",
  "roleName": "string",
  "targetUri": "string",
  "attributes": {},
  "_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"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "_profile": "https://api.apiture.com/schemas/common/errorResponse/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": []
    }
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

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',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/associations/associations',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

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"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    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": "string",
  "roleUri": "string",
  "roleName": "string",
  "targetUri": "string",
  "attributes": {},
  "_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"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "_profile": "https://api.apiture.com/schemas/common/errorResponse/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": []
    }
  }
}

Parameters

Parameter Description
body
(body)
createAssociation (required)
The data necessary to create a new association.

Example responses

201 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://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": "https://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": "https://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": "https://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

StatusDescription
201 Created
Created.

A representation of the new assocuation is returned, including the self link, the role, source and target of the association.

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

StatusDescription
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' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

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',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.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',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

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',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/associations/associations/{associationId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

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"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    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.

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://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": "https://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": "https://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": "https://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

StatusDescription
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

StatusDescription
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' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

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',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.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": "https://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',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

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',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

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',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

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"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    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": "https://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)

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://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": "https://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": "https://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": "https://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

StatusDescription
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

Response Headers

StatusDescription
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} \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

DELETE /associations/associations/{associationId} HTTP/1.1

Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/associations/associations/{associationId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/associations/associations/{associationId}',
{
  method: 'DELETE',

  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-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete '/associations/associations/{associationId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('/associations/associations/{associationId}', params={

}, headers = headers)

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() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    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
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
associationId
(path)
string (required)
The unique identifier of this association. This is an opaque string.

Example responses

412 Response

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "_profile": "https://api.apiture.com/schemas/common/errorResponse/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": {},
    "_links": {
      "describedby": {
        "href": "http://doc.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
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

Role

The Role of an Association

getRoles

Code samples

# You can also use wget
curl -X GET /associations/roles \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /associations/roles HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.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',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

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',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/associations/roles',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

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"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    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.
name
(query)
string
Subset the accounts or external accounts collection to those with this name value. Use
label
(query)
string
Subset the accounts or external accounts collection to those with this label value. Use

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/associations/roles/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": "https://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": "https://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

StatusDescription
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' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

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',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.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": "string",
  "_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"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "_profile": "https://api.apiture.com/schemas/common/errorResponse/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": []
    }
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

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',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/associations/roles',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

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"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    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": "string",
  "_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"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "_profile": "https://api.apiture.com/schemas/common/errorResponse/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": []
    }
  }
}

Parameters

Parameter Description
body
(body)
createRole (required)
The data necessary to create a new role.

Example responses

201 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://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

StatusDescription
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

StatusDescription
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' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

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',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.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',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

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',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/associations/roles/{roleId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

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"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    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.

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://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

StatusDescription
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
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

Response Headers

StatusDescription
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' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

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',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.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": "https://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',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

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',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

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',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

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"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    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": "https://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)

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://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

StatusDescription
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

Response Headers

StatusDescription
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' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

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',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.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": "https://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',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

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',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

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',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

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"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    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": "https://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)

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://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

StatusDescription
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

Response Headers

StatusDescription
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} \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

DELETE /associations/roles/{roleId} HTTP/1.1

Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/associations/roles/{roleId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/associations/roles/{roleId}',
{
  method: 'DELETE',

  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-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete '/associations/roles/{roleId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('/associations/roles/{roleId}', params={

}, headers = headers)

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() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    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
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
roleId
(path)
string (required)
The unique identifier of this role. This is an opaque string.

Example responses

412 Response

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "_profile": "https://api.apiture.com/schemas/common/errorResponse/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": {},
    "_links": {
      "describedby": {
        "href": "http://doc.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
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

Schemas

association

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://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": "https://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": "https://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": "https://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

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.

Properties

NameDescription
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.
_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
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.
_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.
_id string
The unique identifier for this association resource. This is an immutable opaque string.
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

updateAssociation

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/associations/associations/v1.0.0/profile.json"
}

Update Association

Representation used to update or patch an association.

Properties

NameDescription
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.
_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.
_id string
The unique identifier for this association resource. This is an immutable opaque string.

summaryAssociation

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/associations/associations/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/associations/associations/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Association Summary

Summary representation of an association resource in associations collections.

Properties

NameDescription
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.
_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.
_id string
The unique identifier for this association resource. This is an immutable opaque string.

createAssociation

{
  "sourceUri": "string",
  "roleUri": "string",
  "roleName": "string",
  "targetUri": "string",
  "attributes": {},
  "_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"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "_profile": "https://api.apiture.com/schemas/common/errorResponse/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": []
    }
  }
}

Create Association

Representation used to create a new association.

Properties

NameDescription
sourceUri string (required)
The URI of association source resource.
roleUri string (required)
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 (required)
The URI of association target resource.
attributes attributes
Data attribute associated with the error, such as values or constraints.
_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.

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

Core fields of the association resource used to build other model schema.

Properties

NameDescription
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

{
  "_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"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "_profile": "https://api.apiture.com/schemas/common/errorResponse/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": []
    }
  },
  "count": 0,
  "start": 0,
  "limit": 0,
  "name": "string"
}

Collection

A collection of resources.

Properties

NameDescription
_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.
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": "https://api.apiture.com/schemas/associations/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": "https://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": "https://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": "https://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": "https://api.apiture.com/schemas/accounts/v1.0.0/profile.json",
            "type": "account",
            "name": "Personal Checking"
          }
        }
      }
    ]
  }
}

Association Collection

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).

Properties

NameDescription
_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
» items [summaryAssociation]
An array containing a page of association items.
_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.
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.

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

Core fields of the role resource used to build other model schema.

Properties

NameDescription
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": "https://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

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.

Properties

NameDescription
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
_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.
_id string
The unique identifier for this role resource. This is an immutable opaque string.

createRole

{
  "name": "primaryUser",
  "label": "Primary User",
  "description": "string",
  "_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"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "_profile": "https://api.apiture.com/schemas/common/errorResponse/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": []
    }
  }
}

Create Role

Representation used to create a new role.

Properties

NameDescription
name string (required)
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 (required)
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
_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.

updateRole

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://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

Representation used to update or patch a role.

Properties

NameDescription
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
_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.
_id string
The unique identifier for this role resource. This is an immutable opaque string.

role

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://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

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.).

Properties

NameDescription
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
_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.
_id string
The unique identifier for this role resource. This is an immutable opaque string.
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": "https://api.apiture.com/schemas/associations/roles/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": "https://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": "https://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

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).

Properties

NameDescription
_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
» items [summaryRole]
An array containing a page of role items.
_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.
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.

abstractResource

{
  "_profile": "https://api.apiture.com/schemas/example/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "{uri of current resource}"
    }
  }
}

Abstract Resource

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.

Properties

NameDescription
_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/common/root/v1.0.0/profile.json",
  "_links": {}
}

API Root

A HAL response, with hypermedia _links for the top-level resources and operations in API.

Properties

NameDescription
_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.
_id string
This API's unique ID.
name string
This API's name.
apiVersion string
This API's version.

errorResponse

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "_profile": "https://api.apiture.com/schemas/common/errorResponse/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": {},
    "_links": {
      "describedby": {
        "href": "http://doc.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Error Response

Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error object contains the error details.

Properties

NameDescription
_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.

error

{
  "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/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

An error description. Nested source errors are contained in the _embedded object with the key "errors"; this is an array of nested error objects. For example, an API which validates its request body may find multiple errors in the request, which may be detailed here. The _links may contain a describedby link which refers to a web page with details about the error. The attributes field An optional map of name/value pairs which provide structured data about the error. For example, if the error is a value out of range, the attributes may specify the range values min and max. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier).

Properties

NameDescription
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

An optional map of name/value pairs which contains additional dynamic data about the resource.

Properties

No properties

{
  "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

An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

Properties

NameDescription
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.

{
  "href": "http://example.com",
  "type": "string",
  "templated": true,
  "title": "string",
  "deprecation": "http://example.com",
  "profile": "http://example.com"
}

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.

Properties

NameDescription
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.